- switch( index )
- {
- case wxSYS_COLOUR_SCROLLBAR :
- case wxSYS_COLOUR_BACKGROUND:
- case wxSYS_COLOUR_ACTIVECAPTION:
- case wxSYS_COLOUR_INACTIVECAPTION:
- case wxSYS_COLOUR_MENU:
- case wxSYS_COLOUR_WINDOW:
- case wxSYS_COLOUR_WINDOWFRAME:
- case wxSYS_COLOUR_ACTIVEBORDER:
- case wxSYS_COLOUR_INACTIVEBORDER:
- case wxSYS_COLOUR_BTNFACE:
- return wxColor( 0xDD , 0xDD , 0xDD ) ;
- break ;
-
- case wxSYS_COLOUR_LISTBOX :
- return wxColor( 0xEE , 0xEE , 0xEE ) ;
- break ;
- case wxSYS_COLOUR_BTNSHADOW:
- return wxColor( 0x44 , 0x44 , 0x44 ) ;
- break ;
-
- case wxSYS_COLOUR_BTNTEXT:
- case wxSYS_COLOUR_MENUTEXT:
- case wxSYS_COLOUR_WINDOWTEXT:
- case wxSYS_COLOUR_CAPTIONTEXT:
- case wxSYS_COLOUR_INFOTEXT:
- case wxSYS_COLOUR_INACTIVECAPTIONTEXT:
- return *wxBLACK;
- break ;
- case wxSYS_COLOUR_HIGHLIGHT:
- {
- RGBColor hilite ;
- LMGetHiliteRGB(&hilite) ;
- return wxColor( hilite.red >> 8 , hilite.green >> 8 , hilite.blue >> 8 ) ;
- }
- break ;
- case wxSYS_COLOUR_BTNHIGHLIGHT:
- case wxSYS_COLOUR_GRAYTEXT:
- return wxColor( 0xCC , 0xCC , 0xCC ) ;
- break ;
-
- case wxSYS_COLOUR_3DDKSHADOW:
- return wxColor( 0x44 , 0x44 , 0x44 ) ;
- break ;
- case wxSYS_COLOUR_3DLIGHT:
- return wxColor( 0xCC , 0xCC , 0xCC ) ;
- break ;
- case wxSYS_COLOUR_HIGHLIGHTTEXT :
- {
- RGBColor hilite ;
- LMGetHiliteRGB(&hilite) ;
- if ( ( hilite.red + hilite.green + hilite.blue ) == 0 )
- return *wxWHITE ;
- else
- return *wxBLACK ;
- }
- break ;
- case wxSYS_COLOUR_INFOBK :
- case wxSYS_COLOUR_APPWORKSPACE:
- return *wxWHITE ;
- break ;
- }
- return *wxWHITE;
+ int major, minor;
+ wxColour resultColor;
+ RGBColor macRGB;
+ ThemeBrush colorBrushID;
+
+ wxGetOsVersion( &major, &minor );
+
+ switch ( index )
+ {
+ case wxSYS_COLOUR_WINDOW:
+ resultColor = *wxWHITE ;
+ break ;
+ case wxSYS_COLOUR_SCROLLBAR :
+ case wxSYS_COLOUR_BACKGROUND:
+ case wxSYS_COLOUR_ACTIVECAPTION:
+ case wxSYS_COLOUR_INACTIVECAPTION:
+ case wxSYS_COLOUR_MENU:
+ case wxSYS_COLOUR_WINDOWFRAME:
+ case wxSYS_COLOUR_ACTIVEBORDER:
+ case wxSYS_COLOUR_INACTIVEBORDER:
+ case wxSYS_COLOUR_BTNFACE:
+ case wxSYS_COLOUR_MENUBAR:
+ resultColor = wxColor( 0xDD, 0xDD, 0xDD );
+ break ;
+
+ case wxSYS_COLOUR_LISTBOX :
+ if (major >= 10)
+ resultColor = *wxWHITE ;
+ else
+ resultColor = wxColor( 0xEE, 0xEE, 0xEE );
+ break ;
+
+ case wxSYS_COLOUR_BTNSHADOW:
+ if (major >= 10)
+ resultColor = wxColor( 0xBE, 0xBE, 0xBE );
+ else
+ resultColor = wxColor( 0x44, 0x44, 0x44 );
+ break ;
+
+ case wxSYS_COLOUR_BTNTEXT:
+ case wxSYS_COLOUR_MENUTEXT:
+ case wxSYS_COLOUR_WINDOWTEXT:
+ case wxSYS_COLOUR_CAPTIONTEXT:
+ case wxSYS_COLOUR_INFOTEXT:
+ case wxSYS_COLOUR_INACTIVECAPTIONTEXT:
+ resultColor = *wxBLACK;
+ break ;
+
+ case wxSYS_COLOUR_HIGHLIGHT:
+
+#if 0 && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3)
+ // NB: enable this case as desired
+ colorBrushID = kThemeBrushAlternatePrimaryHighlightColor;
+#else
+ colorBrushID = kThemeBrushPrimaryHighlightColor;
+#endif
+
+ GetThemeBrushAsColor( colorBrushID, 32, true, &macRGB );
+ resultColor = wxColor( macRGB );
+ break ;
+
+ case wxSYS_COLOUR_BTNHIGHLIGHT:
+ case wxSYS_COLOUR_GRAYTEXT:
+ resultColor = wxColor( 0xCC, 0xCC, 0xCC );
+ break ;
+
+ case wxSYS_COLOUR_3DDKSHADOW:
+ resultColor = wxColor( 0x44, 0x44, 0x44 );
+ break ;
+
+ case wxSYS_COLOUR_3DLIGHT:
+ resultColor = wxColor( 0xCC, 0xCC, 0xCC );
+ break ;
+
+ case wxSYS_COLOUR_HIGHLIGHTTEXT :
+#if 0 && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3)
+ // NB: enable this case as desired
+ resultColor = *wxWHITE ;
+#else
+ GetThemeBrushAsColor( kThemeBrushPrimaryHighlightColor, 32, true, &macRGB );
+ if ((macRGB.red + macRGB.green + macRGB.blue) == 0)
+ resultColor = *wxWHITE ;
+ else
+ resultColor = *wxBLACK ;
+#endif
+ break ;
+
+ case wxSYS_COLOUR_INFOBK :
+ resultColor = *wxWHITE ;
+ break ;
+ case wxSYS_COLOUR_APPWORKSPACE:
+ resultColor = wxColor( 0x80, 0x80, 0x80 ); ;
+ break ;
+
+ case wxSYS_COLOUR_HOTLIGHT:
+ case wxSYS_COLOUR_GRADIENTACTIVECAPTION:
+ case wxSYS_COLOUR_GRADIENTINACTIVECAPTION:
+ case wxSYS_COLOUR_MENUHILIGHT:
+ // TODO:
+ resultColor = *wxBLACK;
+ break ;
+
+ // case wxSYS_COLOUR_MAX:
+ default:
+ resultColor = *wxWHITE;
+ // wxCHECK_MSG( index >= wxSYS_COLOUR_MAX, false, _T("unknown system colour index") );
+ break ;
+ }
+
+ return resultColor;