X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/442b35b53bf95f5c6c003ea9ddbefd17adbc2a00..7a0363dd04205d701f82912adac40453995636ef:/src/univ/colschem.cpp diff --git a/src/univ/colschem.cpp b/src/univ/colschem.cpp index a99b6bfe68..3339b53c21 100644 --- a/src/univ/colschem.cpp +++ b/src/univ/colschem.cpp @@ -31,12 +31,70 @@ #ifndef WX_PRECOMP #endif // WX_PRECOMP +#include "wx/settings.h" + #include "wx/univ/colschem.h" +#include "wx/univ/theme.h" // ============================================================================ // implementation // ============================================================================ +// ---------------------------------------------------------------------------- +// wxColourScheme +// ---------------------------------------------------------------------------- + wxColourScheme::~wxColourScheme() { } + +// ---------------------------------------------------------------------------- +// wxSystemSettings +// ---------------------------------------------------------------------------- + +wxColour wxSystemSettings::GetColour(wxSystemColour index) +{ + // the elements of this enum must be kept in sync with wxSystemColour + static const wxColourScheme::StdColour s_mapSysToThemeCol[] = + { + wxColourScheme::SCROLLBAR /* wxSYS_COLOUR_SCROLLBAR */, + wxColourScheme::WINDOW /* wxSYS_COLOUR_BACKGROUND */, + wxColourScheme::TITLEBAR_ACTIVE_TEXT /* wxSYS_COLOUR_ACTIVECAPTION */, + wxColourScheme::TITLEBAR_TEXT /* wxSYS_COLOUR_INACTIVECAPTION */, + wxColourScheme::MAX /* wxSYS_COLOUR_MENU */, + wxColourScheme::MAX /* wxSYS_COLOUR_WINDOW */, + wxColourScheme::MAX /* wxSYS_COLOUR_WINDOWFRAME */, + wxColourScheme::CONTROL_TEXT /* wxSYS_COLOUR_MENUTEXT */, + wxColourScheme::CONTROL_TEXT /* wxSYS_COLOUR_WINDOWTEXT */, + wxColourScheme::CONTROL_TEXT /* wxSYS_COLOUR_CAPTIONTEXT */, + wxColourScheme::MAX /* wxSYS_COLOUR_ACTIVEBORDER */, + wxColourScheme::MAX /* wxSYS_COLOUR_INACTIVEBORDER */, + wxColourScheme::MAX /* wxSYS_COLOUR_APPWORKSPACE */, + wxColourScheme::HIGHLIGHT /* wxSYS_COLOUR_HIGHLIGHT */, + wxColourScheme::HIGHLIGHT_TEXT /* wxSYS_COLOUR_HIGHLIGHTTEXT */, + wxColourScheme::CONTROL /* wxSYS_COLOUR_BTNFACE */, + wxColourScheme::SHADOW_DARK /* wxSYS_COLOUR_BTNSHADOW */, + wxColourScheme::CONTROL_TEXT_DISABLED /* wxSYS_COLOUR_GRAYTEXT */, + wxColourScheme::CONTROL_TEXT /* wxSYS_COLOUR_BTNTEXT */, + wxColourScheme::MAX /* wxSYS_COLOUR_INACTIVECAPTIONTEXT */, + wxColourScheme::SHADOW_HIGHLIGHT /* wxSYS_COLOUR_BTNHIGHLIGHT */, + wxColourScheme::SHADOW_DARK /* wxSYS_COLOUR_3DDKSHADOW */, + wxColourScheme::SHADOW_OUT /* wxSYS_COLOUR_3DLIGHT */, + wxColourScheme::MAX /* wxSYS_COLOUR_INFOTEXT */, + wxColourScheme::MAX /* wxSYS_COLOUR_INFOBK */, + wxColourScheme::WINDOW /* wxSYS_COLOUR_LISTBOX */, + }; + + wxCHECK_MSG( index < (int)WXSIZEOF(s_mapSysToThemeCol), wxNullColour, + _T("invalid wxSystemColour") ); + + wxColourScheme::StdColour col = s_mapSysToThemeCol[index]; + if ( col == wxColourScheme::MAX ) + { + // we don't have theme-equivalent for this colour + return wxSystemSettingsNative::GetColour(index); + } + + return wxTheme::Get()->GetColourScheme()->Get(col); +} +