From 11d1adbfda13e56736ef62d07a7220134e62c5e5 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Sun, 25 Jan 2004 15:15:12 +0000 Subject: [PATCH] rendering adjustments for OSX git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25373 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/mac/carbon/renderer.cpp | 66 +++++++++++++++++++++++++-------- src/mac/carbon/settings.cpp | 5 ++- src/mac/carbon/statbrma.cpp | 73 ++++++++++++++++++++++--------------- src/mac/carbon/window.cpp | 49 +++++++++++++++++-------- src/mac/renderer.cpp | 66 +++++++++++++++++++++++++-------- src/mac/settings.cpp | 5 ++- src/mac/statbrma.cpp | 73 ++++++++++++++++++++++--------------- src/mac/window.cpp | 49 +++++++++++++++++-------- 8 files changed, 266 insertions(+), 120 deletions(-) diff --git a/src/mac/carbon/renderer.cpp b/src/mac/carbon/renderer.cpp index 07ae99090a..fbe365ab67 100644 --- a/src/mac/carbon/renderer.cpp +++ b/src/mac/carbon/renderer.cpp @@ -139,23 +139,59 @@ wxRendererMac::DrawHeaderButton(wxWindow *win, w = rect.width, h = rect.height; - dc.SetBrush( *wxTRANSPARENT_BRUSH ); - - dc.SetPen( wxPen( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNSHADOW ) , 1 , wxSOLID ) ); - dc.DrawLine( x+w-CORNER+1, y, x+w, y+h ); // right (outer) - dc.DrawRectangle( x, y+h, w+1, 1 ); // bottom (outer) + int major,minor; + wxGetOsVersion( &major, &minor ); - wxPen pen( wxColour( 0x88 , 0x88 , 0x88 ), 1, wxSOLID ); - - dc.SetPen( pen ); - dc.DrawLine( x+w-CORNER, y, x+w-1, y+h ); // right (inner) - dc.DrawRectangle( x+1, y+h-1, w-2, 1 ); // bottom (inner) + dc.SetBrush( *wxTRANSPARENT_BRUSH ); - dc.SetPen( *wxWHITE_PEN ); - dc.DrawRectangle( x, y, w-CORNER+1, 1 ); // top (outer) - dc.DrawRectangle( x, y, 1, h ); // left (outer) - dc.DrawLine( x, y+h-1, x+1, y+h-1 ); - dc.DrawLine( x+w-1, y, x+w-1, y+1 ); + if (major >= 10) + { + dc.SetPen( wxPen( wxColour( 0xC5 , 0xC5 , 0xC5 ) , 1 , wxSOLID ) ); + dc.DrawRectangle( x, y+CORNER, 1, h-CORNER ); // left + // The right border is overdrawn by the left border of the right neighbouring + // header (to maintain a proper single pixel border). Except for the + // rightmost header of the listctrl. + dc.DrawRectangle( x+w+(CORNER*2), y+CORNER, 1, h-CORNER ); // right + dc.SetPen( wxPen( wxColour( 0xB1 , 0xB1 , 0xB1 ) , 1 , wxSOLID ) ); + dc.DrawRectangle( x, y+h, w+(CORNER*3), 1 ); // bottom + dc.DrawRectangle( x, y, w+(CORNER*3), 1 ); // top + + // Do a fill of the interior for background: + dc.SetPen( wxPen( wxColour( 0xF6 , 0xF6 , 0xF6 ) , 1 , wxSOLID ) ); + dc.DrawRectangle( x+CORNER, y+CORNER, w+CORNER, h-CORNER ); + + // Do the gradient fill: + static int grayValues[] = + { + 0xF6, 0xF2, 0xEF, 0xED, 0xED, 0xEB, 0xEA, 0xEA, 0xE8, + 0xE8, 0xE2, 0xE5, 0xE8, 0xEB, 0xEF, 0xF2, 0xFD + }; + int i; + for (i=0; i < h && i < (int)WXSIZEOF(grayValues); i++) + { + dc.SetPen( wxPen( wxColour( grayValues[i] , grayValues[i] , grayValues[i] ), + 1 , wxSOLID ) ); + dc.DrawRectangle( x+CORNER, y+CORNER+i, w+CORNER, 1 ); + } + } + else + { + dc.SetPen( wxPen( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNSHADOW ) , 1 , wxSOLID ) ); + dc.DrawLine( x+w-CORNER+1, y, x+w, y+h ); // right (outer) + dc.DrawRectangle( x, y+h, w+1, 1 ); // bottom (outer) + + wxPen pen( wxColour( 0x88 , 0x88 , 0x88 ), 1, wxSOLID ); + + dc.SetPen( pen ); + dc.DrawLine( x+w-CORNER, y, x+w-1, y+h ); // right (inner) + dc.DrawRectangle( x+1, y+h-1, w-2, 1 ); // bottom (inner) + + dc.SetPen( *wxWHITE_PEN ); + dc.DrawRectangle( x, y, w-CORNER+1, 1 ); // top (outer) + dc.DrawRectangle( x, y, 1, h ); // left (outer) + dc.DrawLine( x, y+h-1, x+1, y+h-1 ); + dc.DrawLine( x+w-1, y, x+w-1, y+1 ); + } } void diff --git a/src/mac/carbon/settings.cpp b/src/mac/carbon/settings.cpp index eebf21927b..4ddb2a4582 100644 --- a/src/mac/carbon/settings.cpp +++ b/src/mac/carbon/settings.cpp @@ -57,7 +57,10 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index) break ; } case wxSYS_COLOUR_BTNSHADOW: - return wxColor( 0x44 , 0x44 , 0x44 ) ; + if (major >= 10) + return wxColor( 0xBE , 0xBE , 0xBE ) ; + else + return wxColor( 0x44 , 0x44 , 0x44 ) ; break ; case wxSYS_COLOUR_BTNTEXT: diff --git a/src/mac/carbon/statbrma.cpp b/src/mac/carbon/statbrma.cpp index dcd60b8588..b2dba2135d 100644 --- a/src/mac/carbon/statbrma.cpp +++ b/src/mac/carbon/statbrma.cpp @@ -102,35 +102,50 @@ void wxStatusBarMac::SetStatusText(const wxString& text, int number) void wxStatusBarMac::OnPaint(wxPaintEvent& WXUNUSED(event) ) { - wxPaintDC dc(this); - dc.Clear() ; - - if ( IsWindowHilited( MAC_WXHWND( MacGetRootWindow() ) ) ) - { - wxPen black( wxBLACK , 1 , wxSOLID ) ; - wxPen white( wxWHITE , 1 , wxSOLID ) ; - - dc.SetPen(black); - dc.DrawLine(0, 0 , - m_width , 0); - dc.SetPen(white); - dc.DrawLine(0, 1 , - m_width , 1); - } - else - { - dc.SetPen(wxPen(wxColour(0x80,0x80,0x80),1,wxSOLID)); - dc.DrawLine(0, 0 , - m_width , 0); - } - - int i; - if ( GetFont().Ok() ) - dc.SetFont(GetFont()); - dc.SetBackgroundMode(wxTRANSPARENT); - - for ( i = 0; i < m_nFields; i ++ ) - DrawField(dc, i); + wxPaintDC dc(this); + dc.Clear() ; + + int major,minor; + wxGetOsVersion( &major, &minor ); + + if ( IsWindowHilited( MAC_WXHWND( MacGetRootWindow() ) ) ) + { + wxPen white( wxWHITE , 1 , wxSOLID ) ; + if (major >= 10) + { + //Finder statusbar border color: (Project builder similar is 9B9B9B) + dc.SetPen(wxPen(wxColour(0xB1,0xB1,0xB1),1,wxSOLID)); + } + else + { + wxPen black( wxBLACK , 1 , wxSOLID ) ; + dc.SetPen(black); + } + dc.DrawLine(0, 0 , + m_width , 0); + dc.SetPen(white); + dc.DrawLine(0, 1 , + m_width , 1); + } + else + { + if (major >= 10) + //Finder statusbar border color: (Project builder similar is 9B9B9B) + dc.SetPen(wxPen(wxColour(0xB1,0xB1,0xB1),1,wxSOLID)); + else + dc.SetPen(wxPen(wxColour(0x80,0x80,0x80),1,wxSOLID)); + + dc.DrawLine(0, 0 , + m_width , 0); + } + + int i; + if ( GetFont().Ok() ) + dc.SetFont(GetFont()); + dc.SetBackgroundMode(wxTRANSPARENT); + + for ( i = 0; i < m_nFields; i ++ ) + DrawField(dc, i); } void wxStatusBarMac::MacSuperEnabled( bool enabled ) diff --git a/src/mac/carbon/window.cpp b/src/mac/carbon/window.cpp index e75ae84a2f..8357a177d2 100644 --- a/src/mac/carbon/window.cpp +++ b/src/mac/carbon/window.cpp @@ -1067,23 +1067,38 @@ void wxWindowMac::MacPaintBorders( int left , int top ) { if( IsTopLevel() ) return ; + + int major,minor; + wxGetOsVersion( &major, &minor ); RGBColor white = { 0xFFFF, 0xFFFF , 0xFFFF } ; - RGBColor black = { 0x0000, 0x0000 , 0x0000 } ; RGBColor face = { 0xDDDD, 0xDDDD , 0xDDDD } ; - RGBColor shadow = { 0x4444, 0x4444 , 0x4444 } ; + + RGBColor darkShadow = { 0x0000, 0x0000 , 0x0000 } ; + RGBColor lightShadow = { 0x4444, 0x4444 , 0x4444 } ; + // OS X has lighter border edges than classic: + if (major >= 10) + { + darkShadow.red = 0x8E8E; + darkShadow.green = 0x8E8E; + darkShadow.blue = 0x8E8E; + lightShadow.red = 0xBDBD; + lightShadow.green = 0xBDBD; + lightShadow.blue = 0xBDBD; + } + PenNormal() ; if (HasFlag(wxRAISED_BORDER) || HasFlag( wxSUNKEN_BORDER) || HasFlag(wxDOUBLE_BORDER) ) { #if wxMAC_USE_THEME_BORDER - Rect rect = { top , left , m_height + top , m_width + left } ; - SInt32 border = 0 ; - /* - GetThemeMetric( kThemeMetricListBoxFrameOutset , &border ) ; - InsetRect( &rect , border , border ); - DrawThemeListBoxFrame(&rect,IsEnabled() ? kThemeStateActive : kThemeStateInactive) ; - */ + Rect rect = { top , left , m_height + top , m_width + left } ; + SInt32 border = 0 ; + /* + GetThemeMetric( kThemeMetricListBoxFrameOutset , &border ) ; + InsetRect( &rect , border , border ); + DrawThemeListBoxFrame(&rect,IsEnabled() ? kThemeStateActive : kThemeStateInactive) ; + */ DrawThemePrimaryGroup(&rect ,IsEnabled() ? kThemeStateActive : kThemeStateInactive) ; #else @@ -1097,22 +1112,22 @@ void wxWindowMac::MacPaintBorders( int left , int top ) LineTo( left + m_width - 3 , top + m_height - 3 ); LineTo( left + m_width - 3 , top + 2 ); - RGBForeColor( sunken ? &face : &black ); + RGBForeColor( sunken ? &face : &darkShadow ); MoveTo( left + 0 , top + m_height - 1 ); LineTo( left + m_width - 1 , top + m_height - 1 ); LineTo( left + m_width - 1 , top + 0 ); - RGBForeColor( sunken ? &shadow : &white ); + RGBForeColor( sunken ? &lightShadow : &white ); MoveTo( left + 1 , top + m_height - 3 ); LineTo( left + 1, top + 1 ); LineTo( left + m_width - 3 , top + 1 ); - RGBForeColor( sunken ? &white : &shadow ); + RGBForeColor( sunken ? &white : &lightShadow ); MoveTo( left + 1 , top + m_height - 2 ); LineTo( left + m_width - 2 , top + m_height - 2 ); LineTo( left + m_width - 2 , top + 1 ); - RGBForeColor( sunken ? &black : &face ); + RGBForeColor( sunken ? &darkShadow : &face ); MoveTo( left + 2 , top + m_height - 4 ); LineTo( left + 2 , top + 2 ); LineTo( left + m_width - 4 , top + 2 ); @@ -1120,8 +1135,8 @@ void wxWindowMac::MacPaintBorders( int left , int top ) } else if (HasFlag(wxSIMPLE_BORDER)) { - Rect rect = { top , left , m_height + top , m_width + left } ; - RGBForeColor( &black ) ; + Rect rect = { top , left , m_height + top , m_width + left } ; + RGBForeColor( &darkShadow ) ; FrameRect( &rect ) ; } } @@ -1453,6 +1468,10 @@ bool wxWindowMac::MacSetupCursor( const wxPoint& pt) bool wxWindowMac::MacDispatchMouseEvent(wxMouseEvent& event) { + //In case a third-party component changed the port... + wxMacPortStateHelper help( (GrafPtr) GetWindowPort( (WindowRef) MacGetRootWindow()) ) ; + wxMacWindowClipper clip (this); + if ((event.m_x < m_x) || (event.m_y < m_y) || (event.m_x > (m_x + m_width)) || (event.m_y > (m_y + m_height))) return FALSE; diff --git a/src/mac/renderer.cpp b/src/mac/renderer.cpp index 07ae99090a..fbe365ab67 100644 --- a/src/mac/renderer.cpp +++ b/src/mac/renderer.cpp @@ -139,23 +139,59 @@ wxRendererMac::DrawHeaderButton(wxWindow *win, w = rect.width, h = rect.height; - dc.SetBrush( *wxTRANSPARENT_BRUSH ); - - dc.SetPen( wxPen( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNSHADOW ) , 1 , wxSOLID ) ); - dc.DrawLine( x+w-CORNER+1, y, x+w, y+h ); // right (outer) - dc.DrawRectangle( x, y+h, w+1, 1 ); // bottom (outer) + int major,minor; + wxGetOsVersion( &major, &minor ); - wxPen pen( wxColour( 0x88 , 0x88 , 0x88 ), 1, wxSOLID ); - - dc.SetPen( pen ); - dc.DrawLine( x+w-CORNER, y, x+w-1, y+h ); // right (inner) - dc.DrawRectangle( x+1, y+h-1, w-2, 1 ); // bottom (inner) + dc.SetBrush( *wxTRANSPARENT_BRUSH ); - dc.SetPen( *wxWHITE_PEN ); - dc.DrawRectangle( x, y, w-CORNER+1, 1 ); // top (outer) - dc.DrawRectangle( x, y, 1, h ); // left (outer) - dc.DrawLine( x, y+h-1, x+1, y+h-1 ); - dc.DrawLine( x+w-1, y, x+w-1, y+1 ); + if (major >= 10) + { + dc.SetPen( wxPen( wxColour( 0xC5 , 0xC5 , 0xC5 ) , 1 , wxSOLID ) ); + dc.DrawRectangle( x, y+CORNER, 1, h-CORNER ); // left + // The right border is overdrawn by the left border of the right neighbouring + // header (to maintain a proper single pixel border). Except for the + // rightmost header of the listctrl. + dc.DrawRectangle( x+w+(CORNER*2), y+CORNER, 1, h-CORNER ); // right + dc.SetPen( wxPen( wxColour( 0xB1 , 0xB1 , 0xB1 ) , 1 , wxSOLID ) ); + dc.DrawRectangle( x, y+h, w+(CORNER*3), 1 ); // bottom + dc.DrawRectangle( x, y, w+(CORNER*3), 1 ); // top + + // Do a fill of the interior for background: + dc.SetPen( wxPen( wxColour( 0xF6 , 0xF6 , 0xF6 ) , 1 , wxSOLID ) ); + dc.DrawRectangle( x+CORNER, y+CORNER, w+CORNER, h-CORNER ); + + // Do the gradient fill: + static int grayValues[] = + { + 0xF6, 0xF2, 0xEF, 0xED, 0xED, 0xEB, 0xEA, 0xEA, 0xE8, + 0xE8, 0xE2, 0xE5, 0xE8, 0xEB, 0xEF, 0xF2, 0xFD + }; + int i; + for (i=0; i < h && i < (int)WXSIZEOF(grayValues); i++) + { + dc.SetPen( wxPen( wxColour( grayValues[i] , grayValues[i] , grayValues[i] ), + 1 , wxSOLID ) ); + dc.DrawRectangle( x+CORNER, y+CORNER+i, w+CORNER, 1 ); + } + } + else + { + dc.SetPen( wxPen( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNSHADOW ) , 1 , wxSOLID ) ); + dc.DrawLine( x+w-CORNER+1, y, x+w, y+h ); // right (outer) + dc.DrawRectangle( x, y+h, w+1, 1 ); // bottom (outer) + + wxPen pen( wxColour( 0x88 , 0x88 , 0x88 ), 1, wxSOLID ); + + dc.SetPen( pen ); + dc.DrawLine( x+w-CORNER, y, x+w-1, y+h ); // right (inner) + dc.DrawRectangle( x+1, y+h-1, w-2, 1 ); // bottom (inner) + + dc.SetPen( *wxWHITE_PEN ); + dc.DrawRectangle( x, y, w-CORNER+1, 1 ); // top (outer) + dc.DrawRectangle( x, y, 1, h ); // left (outer) + dc.DrawLine( x, y+h-1, x+1, y+h-1 ); + dc.DrawLine( x+w-1, y, x+w-1, y+1 ); + } } void diff --git a/src/mac/settings.cpp b/src/mac/settings.cpp index eebf21927b..4ddb2a4582 100644 --- a/src/mac/settings.cpp +++ b/src/mac/settings.cpp @@ -57,7 +57,10 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index) break ; } case wxSYS_COLOUR_BTNSHADOW: - return wxColor( 0x44 , 0x44 , 0x44 ) ; + if (major >= 10) + return wxColor( 0xBE , 0xBE , 0xBE ) ; + else + return wxColor( 0x44 , 0x44 , 0x44 ) ; break ; case wxSYS_COLOUR_BTNTEXT: diff --git a/src/mac/statbrma.cpp b/src/mac/statbrma.cpp index dcd60b8588..b2dba2135d 100644 --- a/src/mac/statbrma.cpp +++ b/src/mac/statbrma.cpp @@ -102,35 +102,50 @@ void wxStatusBarMac::SetStatusText(const wxString& text, int number) void wxStatusBarMac::OnPaint(wxPaintEvent& WXUNUSED(event) ) { - wxPaintDC dc(this); - dc.Clear() ; - - if ( IsWindowHilited( MAC_WXHWND( MacGetRootWindow() ) ) ) - { - wxPen black( wxBLACK , 1 , wxSOLID ) ; - wxPen white( wxWHITE , 1 , wxSOLID ) ; - - dc.SetPen(black); - dc.DrawLine(0, 0 , - m_width , 0); - dc.SetPen(white); - dc.DrawLine(0, 1 , - m_width , 1); - } - else - { - dc.SetPen(wxPen(wxColour(0x80,0x80,0x80),1,wxSOLID)); - dc.DrawLine(0, 0 , - m_width , 0); - } - - int i; - if ( GetFont().Ok() ) - dc.SetFont(GetFont()); - dc.SetBackgroundMode(wxTRANSPARENT); - - for ( i = 0; i < m_nFields; i ++ ) - DrawField(dc, i); + wxPaintDC dc(this); + dc.Clear() ; + + int major,minor; + wxGetOsVersion( &major, &minor ); + + if ( IsWindowHilited( MAC_WXHWND( MacGetRootWindow() ) ) ) + { + wxPen white( wxWHITE , 1 , wxSOLID ) ; + if (major >= 10) + { + //Finder statusbar border color: (Project builder similar is 9B9B9B) + dc.SetPen(wxPen(wxColour(0xB1,0xB1,0xB1),1,wxSOLID)); + } + else + { + wxPen black( wxBLACK , 1 , wxSOLID ) ; + dc.SetPen(black); + } + dc.DrawLine(0, 0 , + m_width , 0); + dc.SetPen(white); + dc.DrawLine(0, 1 , + m_width , 1); + } + else + { + if (major >= 10) + //Finder statusbar border color: (Project builder similar is 9B9B9B) + dc.SetPen(wxPen(wxColour(0xB1,0xB1,0xB1),1,wxSOLID)); + else + dc.SetPen(wxPen(wxColour(0x80,0x80,0x80),1,wxSOLID)); + + dc.DrawLine(0, 0 , + m_width , 0); + } + + int i; + if ( GetFont().Ok() ) + dc.SetFont(GetFont()); + dc.SetBackgroundMode(wxTRANSPARENT); + + for ( i = 0; i < m_nFields; i ++ ) + DrawField(dc, i); } void wxStatusBarMac::MacSuperEnabled( bool enabled ) diff --git a/src/mac/window.cpp b/src/mac/window.cpp index e75ae84a2f..8357a177d2 100644 --- a/src/mac/window.cpp +++ b/src/mac/window.cpp @@ -1067,23 +1067,38 @@ void wxWindowMac::MacPaintBorders( int left , int top ) { if( IsTopLevel() ) return ; + + int major,minor; + wxGetOsVersion( &major, &minor ); RGBColor white = { 0xFFFF, 0xFFFF , 0xFFFF } ; - RGBColor black = { 0x0000, 0x0000 , 0x0000 } ; RGBColor face = { 0xDDDD, 0xDDDD , 0xDDDD } ; - RGBColor shadow = { 0x4444, 0x4444 , 0x4444 } ; + + RGBColor darkShadow = { 0x0000, 0x0000 , 0x0000 } ; + RGBColor lightShadow = { 0x4444, 0x4444 , 0x4444 } ; + // OS X has lighter border edges than classic: + if (major >= 10) + { + darkShadow.red = 0x8E8E; + darkShadow.green = 0x8E8E; + darkShadow.blue = 0x8E8E; + lightShadow.red = 0xBDBD; + lightShadow.green = 0xBDBD; + lightShadow.blue = 0xBDBD; + } + PenNormal() ; if (HasFlag(wxRAISED_BORDER) || HasFlag( wxSUNKEN_BORDER) || HasFlag(wxDOUBLE_BORDER) ) { #if wxMAC_USE_THEME_BORDER - Rect rect = { top , left , m_height + top , m_width + left } ; - SInt32 border = 0 ; - /* - GetThemeMetric( kThemeMetricListBoxFrameOutset , &border ) ; - InsetRect( &rect , border , border ); - DrawThemeListBoxFrame(&rect,IsEnabled() ? kThemeStateActive : kThemeStateInactive) ; - */ + Rect rect = { top , left , m_height + top , m_width + left } ; + SInt32 border = 0 ; + /* + GetThemeMetric( kThemeMetricListBoxFrameOutset , &border ) ; + InsetRect( &rect , border , border ); + DrawThemeListBoxFrame(&rect,IsEnabled() ? kThemeStateActive : kThemeStateInactive) ; + */ DrawThemePrimaryGroup(&rect ,IsEnabled() ? kThemeStateActive : kThemeStateInactive) ; #else @@ -1097,22 +1112,22 @@ void wxWindowMac::MacPaintBorders( int left , int top ) LineTo( left + m_width - 3 , top + m_height - 3 ); LineTo( left + m_width - 3 , top + 2 ); - RGBForeColor( sunken ? &face : &black ); + RGBForeColor( sunken ? &face : &darkShadow ); MoveTo( left + 0 , top + m_height - 1 ); LineTo( left + m_width - 1 , top + m_height - 1 ); LineTo( left + m_width - 1 , top + 0 ); - RGBForeColor( sunken ? &shadow : &white ); + RGBForeColor( sunken ? &lightShadow : &white ); MoveTo( left + 1 , top + m_height - 3 ); LineTo( left + 1, top + 1 ); LineTo( left + m_width - 3 , top + 1 ); - RGBForeColor( sunken ? &white : &shadow ); + RGBForeColor( sunken ? &white : &lightShadow ); MoveTo( left + 1 , top + m_height - 2 ); LineTo( left + m_width - 2 , top + m_height - 2 ); LineTo( left + m_width - 2 , top + 1 ); - RGBForeColor( sunken ? &black : &face ); + RGBForeColor( sunken ? &darkShadow : &face ); MoveTo( left + 2 , top + m_height - 4 ); LineTo( left + 2 , top + 2 ); LineTo( left + m_width - 4 , top + 2 ); @@ -1120,8 +1135,8 @@ void wxWindowMac::MacPaintBorders( int left , int top ) } else if (HasFlag(wxSIMPLE_BORDER)) { - Rect rect = { top , left , m_height + top , m_width + left } ; - RGBForeColor( &black ) ; + Rect rect = { top , left , m_height + top , m_width + left } ; + RGBForeColor( &darkShadow ) ; FrameRect( &rect ) ; } } @@ -1453,6 +1468,10 @@ bool wxWindowMac::MacSetupCursor( const wxPoint& pt) bool wxWindowMac::MacDispatchMouseEvent(wxMouseEvent& event) { + //In case a third-party component changed the port... + wxMacPortStateHelper help( (GrafPtr) GetWindowPort( (WindowRef) MacGetRootWindow()) ) ; + wxMacWindowClipper clip (this); + if ((event.m_x < m_x) || (event.m_y < m_y) || (event.m_x > (m_x + m_width)) || (event.m_y > (m_y + m_height))) return FALSE; -- 2.45.2