Only draw borders if wxSP_3DBORDER specified, as before

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
This commit is contained in:
Julian Smart
2003-08-01 14:12:55 +00:00
parent d7dd1f1bc8
commit 3255bce320
4 changed files with 23 additions and 2 deletions

View File

@@ -310,6 +310,10 @@ public:
wxUX_THEME_DECLARE(PFNWXUDRAWTHEMEPARENTBACKGROUND, DrawThemeParentBackground) wxUX_THEME_DECLARE(PFNWXUDRAWTHEMEPARENTBACKGROUND, DrawThemeParentBackground)
wxUX_THEME_DECLARE(PFNWXUENABLETHEMING, EnableTheming) wxUX_THEME_DECLARE(PFNWXUENABLETHEMING, EnableTheming)
// This calls IsAppThemed but also checks the commctrl.dll version
// for a more reliable answer.
bool IsAppThemedEx() ;
private: private:
// construcor is private as only Get() can create us and is also trivial as // construcor is private as only Get() can create us and is also trivial as
// everything really happens in Initialize() // everything really happens in Initialize()

View File

@@ -428,7 +428,8 @@ int wxSplitterWindow::GetBorderSize() const
// Draw the sash // Draw the sash
void wxSplitterWindow::DrawSash(wxDC& dc) void wxSplitterWindow::DrawSash(wxDC& dc)
{ {
wxRendererNative::Get().DrawSplitterBorder if (HasFlag(wxSP_3DBORDER))
wxRendererNative::Get().DrawSplitterBorder
( (
this, this,
dc, dc,

View File

@@ -84,7 +84,7 @@ private:
wxRendererNative& wxRendererNative::GetDefault() wxRendererNative& wxRendererNative::GetDefault()
{ {
wxUxThemeEngine *themeEngine = wxUxThemeEngine::Get(); wxUxThemeEngine *themeEngine = wxUxThemeEngine::Get();
return themeEngine && themeEngine->IsThemeActive() ? wxRendererXP::Get() return themeEngine && themeEngine->IsAppThemedEx() ? wxRendererXP::Get()
: wxRendererMSW::Get(); : wxRendererMSW::Get();
} }

View File

@@ -172,5 +172,21 @@ bool wxUxThemeEngine::Initialize()
return true; 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 #endif // wxUSE_UXTHEME