Added IsAppThemedEx which _really_ tells you if the app is
themed, and used it in wxRendererNative::GetDefault()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22432
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
wxUX_THEME_DECLARE(PFNWXUDRAWTHEMEPARENTBACKGROUND, DrawThemeParentBackground)
wxUX_THEME_DECLARE(PFNWXUENABLETHEMING, EnableTheming)
+ // This calls IsAppThemed but also checks the commctrl.dll version
+ // for a more reliable answer.
+ bool IsAppThemedEx() ;
+
private:
// construcor is private as only Get() can create us and is also trivial as
// everything really happens in Initialize()
// Draw the sash
void wxSplitterWindow::DrawSash(wxDC& dc)
{
- wxRendererNative::Get().DrawSplitterBorder
+ if (HasFlag(wxSP_3DBORDER))
+ wxRendererNative::Get().DrawSplitterBorder
(
this,
dc,
wxRendererNative& wxRendererNative::GetDefault()
{
wxUxThemeEngine *themeEngine = wxUxThemeEngine::Get();
- return themeEngine && themeEngine->IsThemeActive() ? wxRendererXP::Get()
+ return themeEngine && themeEngine->IsAppThemedEx() ? wxRendererXP::Get()
: wxRendererMSW::Get();
}
return true;
}
+// This calls IsAppThemed but also checks the commctrl.dll version
+// for a more reliable answer.
+bool wxUxThemeEngine::IsAppThemedEx()
+{
+ static bool g_TestedForTheme = FALSE;
+ static bool g_UseTheme = FALSE;
+ if (!g_TestedForTheme)
+ {
+ int commCtrlVersion = wxTheApp->GetComCtl32Version() ;
+
+ g_UseTheme = (commCtrlVersion >= 600);
+ g_TestedForTheme = TRUE;
+ }
+ return IsAppThemed() && g_UseTheme;
+}
+
#endif // wxUSE_UXTHEME