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
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:
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 )
{
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
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 );
}
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 ) ;
}
}
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;
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
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:
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 )
{
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
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 );
}
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 ) ;
}
}
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;