]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/uxtheme.cpp
Hopefully fixed library names generated by wx-config for OS/2's PM port.
[wxWidgets.git] / src / msw / uxtheme.cpp
index e41159bad06da211b76310e9b8093ba2cc4bb32e..5289d22495468f2e55ae23f6474c6ef1c48c7a9a 100644 (file)
@@ -1,19 +1,19 @@
 ///////////////////////////////////////////////////////////////////////////////
 // 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__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma implementation "uxtheme.h"
 #endif
 
 
 #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 +63,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,6 +108,16 @@ 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")) )
         return false;