]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/menuitem.cpp
Add wxDataViewRendererBase::PrepareForItem() helper.
[wxWidgets.git] / src / msw / menuitem.cpp
index 8ebf138ace42cc51fe8c22d4f51ffd1651717c73..a5233965bf452ffd04ff483ea6033ebb648c279c 100644 (file)
@@ -30,6 +30,8 @@
 #include "wx/stockitem.h"
 
 #ifndef WX_PRECOMP
+    #include "wx/app.h"
+    #include "wx/dcmemory.h"
     #include "wx/font.h"
     #include "wx/bitmap.h"
     #include "wx/settings.h"
@@ -239,6 +241,15 @@ public:
 
     static const MenuDrawData* Get()
     {
+        // notice that s_menuData can't be created as a global variable because
+        // it needs a window to initialize and no windows exist at the time of
+        // globals initialization yet
+        if ( !ms_instance )
+        {
+            static MenuDrawData s_menuData;
+            ms_instance = &s_menuData;
+        }
+
     #if wxUSE_UXTHEME
         bool theme = MenuLayout() == FullTheme;
         if ( ms_instance->Theme != theme )
@@ -249,7 +260,6 @@ public:
 
     MenuDrawData()
     {
-        ms_instance = this;
         Init();
     }
 
@@ -297,8 +307,6 @@ private:
 
 MenuDrawData* MenuDrawData::ms_instance = NULL;
 
-MenuDrawData s_menuData;
-
 void MenuDrawData::Init()
 {
 #if wxUSE_UXTHEME