X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9fce8d2eeea6879644acec98e1244516eb053b78..18128cbb47b5775f20fb449dd34f36fa31776d51:/src/msw/settings.cpp?ds=sidebyside diff --git a/src/msw/settings.cpp b/src/msw/settings.cpp index d17cc51c90..a621cc73e2 100644 --- a/src/msw/settings.cpp +++ b/src/msw/settings.cpp @@ -33,6 +33,10 @@ #include "wx/msw/private.h" +#ifndef SPI_GETFLATMENU +#define SPI_GETFLATMENU 0x1022 +#endif + #include "wx/module.h" #include "wx/fontutil.h" @@ -156,7 +160,17 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index) { // 5.1 is Windows XP useDefault = FALSE; - } + // Determine if we are using flat menus, only then allow wxSYS_COLOUR_MENUBAR + if ( index == wxSYS_COLOUR_MENUBAR ) + { + BOOL isFlat ; + if ( SystemParametersInfo( SPI_GETFLATMENU , 0 ,&isFlat, 0 ) ) + { + if ( !isFlat ) + index = wxSYS_COLOUR_MENU ; + } + } + } #else useDefault = TRUE; #endif // __WIN32__ @@ -173,7 +187,7 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index) } else // replace with default colour { - int n = index - wxSYS_COLOUR_BTNHIGHLIGHT; + unsigned int n = index - wxSYS_COLOUR_BTNHIGHLIGHT; wxASSERT_MSG( n < WXSIZEOF(s_defaultSysColors), _T("forgot tp update the default colours array") ); @@ -333,7 +347,8 @@ int wxSystemSettingsNative::GetMetric(wxSystemMetric index) // TODO: probably use wxUniv themes functionality return 0; #else // !__WXMICROWIN__ - wxCHECK_MSG( index < WXSIZEOF(gs_metricsMap), 0, _T("invalid metric") ); + wxCHECK_MSG( index > 0 && (size_t)index < WXSIZEOF(gs_metricsMap), 0, + _T("invalid metric") ); int indexMSW = gs_metricsMap[index]; if ( indexMSW == -1 ) @@ -353,41 +368,6 @@ int wxSystemSettingsNative::GetMetric(wxSystemMetric index) #endif // __WXMICROWIN__/!__WXMICROWIN__ } -wxString wxSystemSettingsNative::GetString(int index) -{ - wxString str; - wxChar buffer[256]; - size_t count; - buffer[0] = wxT('\0'); - switch (index) - { - case wxSYS_DECIMAL_SEPARATOR: - count = ::GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, buffer, 256); - if (!count) - str << "."; - else - str << buffer; - break; - case wxSYS_LIST_SEPARATOR: - count = ::GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SLIST, buffer, 256); - if (!count) - str << ","; - else - str << buffer; - break; - case wxSYS_LEADING_ZERO: // 0 means no leading zero, 1 means leading zero - count = ::GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_ILZERO, buffer, 256); - if (!count) - str << "0"; - else - str << buffer; - break; - default: - wxFAIL_MSG("Unknown System String !"); - } - return str; -} - bool wxSystemSettingsNative::HasFeature(wxSystemFeature index) { switch ( index )