Пример #1
0
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
}
Пример #2
0
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;
}