QColor qcolorForTheme(ThemeBrush brush) { #ifndef QT_MAC_USE_COCOA # if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5) if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_5) { return leopardBrush(brush); } else # endif { RGBColor rgbcolor; GetThemeBrushAsColor(brush, 32, true, &rgbcolor); return QColor(rgbcolor.red / 256, rgbcolor.green / 256, rgbcolor.blue / 256); } #else return leopardBrush(brush); #endif }
wxColour wxSystemSettingsNative::GetColour(wxSystemColour index) { 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: case wxSYS_COLOUR_LISTBOXTEXT: 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.red >> 8, macRGB.green >> 8, macRGB.blue >> 8 ); 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 : // we don't have a way to detect tooltip color, so use the // standard value used at least on 10.4: resultColor = wxColour( 0xFF, 0xFF, 0xD3 ) ; 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; }