]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/uxtheme.cpp
Fixed post-expand/collapse rendering
[wxWidgets.git] / src / msw / uxtheme.cpp
index e41159bad06da211b76310e9b8093ba2cc4bb32e..841b5156bb45aa9700b4201a18a434acd9845f8f 100644 (file)
@@ -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
+// License:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
 // declarations
 // ============================================================================
 
-#ifdef __GNUG__
-    #pragma implementation "uxtheme.h"
-#endif
-
 // ----------------------------------------------------------------------------
 // headers
 // ----------------------------------------------------------------------------
     #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/wrapwin.h"
-
 #include "wx/msw/uxtheme.h"
-#include "wx/msw/private.h"
 
 // ============================================================================
 // wxUxThemeModule
 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
@@ -66,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)
@@ -111,11 +103,21 @@ wxUxThemeEngine* wxUxThemeEngine::Get()
 
 bool wxUxThemeEngine::Initialize()
 {
-    if ( !m_dllUxTheme.Load(_T("uxtheme.dll")) )
+    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(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
 
@@ -173,4 +175,3 @@ bool wxUxThemeEngine::Initialize()
 }
 
 #endif // wxUSE_UXTHEME
-