X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3255bce3209598cda0e2eae91132aa0b90da950b..43f4e852a1b2ac37c3db6a2b87315192ac549191:/src/msw/uxtheme.cpp?ds=sidebyside diff --git a/src/msw/uxtheme.cpp b/src/msw/uxtheme.cpp index 328bb33bf2..15655dcee5 100644 --- a/src/msw/uxtheme.cpp +++ b/src/msw/uxtheme.cpp @@ -1,22 +1,18 @@ /////////////////////////////////////////////////////////////////////////////// // Name: src/msw/uxtheme.cpp // Purpose: implements wxUxThemeEngine class: support for XP themes -// Author: +// Author: John Platts, Vadim Zeitlin // Modified by: // Created: 2003 // RCS-ID: $Id$ -// Copyright: (c) 2003 wxWindows Dev-Team -// License: wxWindows license +// Copyright: (c) 2003 John Platts, Vadim Zeitlin +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// // ============================================================================ // declarations // ============================================================================ -#ifdef __GNUG__ - #pragma implementation "uxtheme.h" -#endif - // ---------------------------------------------------------------------------- // headers // ---------------------------------------------------------------------------- @@ -35,10 +31,9 @@ #include "wx/toplevel.h" #include "wx/string.h" #include "wx/log.h" + #include "wx/module.h" #endif //WX_PRECOMP -#include "wx/module.h" - #include "wx/msw/uxtheme.h" // ============================================================================ @@ -49,11 +44,11 @@ class wxUxThemeModule : public wxModule { public: - virtual bool OnInit() { return true; } - virtual void OnExit() - { - if ( wxUxThemeEngine::ms_themeEngine ) - { + virtual bool OnInit() { return true; } + virtual void OnExit() + { + if ( wxUxThemeEngine::ms_themeEngine ) + { // this is probably not necessary right now but try to be careful // and avoid the problems which we might have if someone ever // decides to show a message box using the theme engine from @@ -63,12 +58,12 @@ public: wxUxThemeEngine::ms_themeEngine = NULL; wxUxThemeEngine::ms_isThemeEngineAvailable = false; - delete themeEngine; - } - } + delete themeEngine; + } + } - DECLARE_DYNAMIC_CLASS(wxUxThemeModule) + DECLARE_DYNAMIC_CLASS(wxUxThemeModule) }; IMPLEMENT_DYNAMIC_CLASS(wxUxThemeModule, wxModule) @@ -108,14 +103,21 @@ wxUxThemeEngine* wxUxThemeEngine::Get() bool wxUxThemeEngine::Initialize() { + if ( wxApp::GetComCtl32Version() < 600 ) + { + // not using theme-aware comctl32.dll anyhow, don't even try to use + // themes + return false; + } + // we're prepared to handle the errors wxLogNull noLog; - if ( !m_dllUxTheme.Load(_T("uxtheme.dll")) ) + if ( !m_dllUxTheme.Load(wxT("uxtheme.dll")) ) return false; #define RESOLVE_UXTHEME_FUNCTION(type, funcname) \ - funcname = (type)m_dllUxTheme.GetSymbol(_T(#funcname)); \ + funcname = (type)m_dllUxTheme.GetSymbol(wxT(#funcname)); \ if ( !funcname ) \ return false @@ -172,21 +174,4 @@ bool wxUxThemeEngine::Initialize() 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 -