]> git.saurik.com Git - wxWidgets.git/commitdiff
replaced gs_menuItems hack with a wxOwnerDrawn::m_isMenuItem field
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 25 Sep 2005 20:43:35 +0000 (20:43 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 25 Sep 2005 20:43:35 +0000 (20:43 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35695 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/ownerdrw.h
src/msw/ownerdrw.cpp

index 0e5a8f312f00f31e39b57e09bdb7dad4082355e9..55ec29893f678ff7fc41e0858818fc2ded426634 100644 (file)
@@ -153,7 +153,8 @@ private:
   static size_t ms_nLastMarginWidth;    // handy for aligning all items
 
   bool      m_bCheckable,   // used only for menu or check listbox items
   static size_t ms_nLastMarginWidth;    // handy for aligning all items
 
   bool      m_bCheckable,   // used only for menu or check listbox items
-            m_bOwnerDrawn;  // true if something is non standard
+            m_bOwnerDrawn,  // true if something is non standard
+            m_isMenuItem;   // true if this is a menu item
 
   wxFont    m_font;         // font to use for drawing
   wxColour  m_colText,      // color ----"---"---"----
 
   wxFont    m_font;         // font to use for drawing
   wxColour  m_colText,      // color ----"---"---"----
index 1931e8c11cdab6410ec9e2f7a722966aaeb21e84..5b3312796e58bcbac3c3e7f7dc65b2e046f26ce2 100644 (file)
@@ -93,12 +93,6 @@ bool wxMSWSystemMenuFontModule::ms_showCues = true;
 IMPLEMENT_DYNAMIC_CLASS(wxMSWSystemMenuFontModule, wxModule)
 
 
 IMPLEMENT_DYNAMIC_CLASS(wxMSWSystemMenuFontModule, wxModule)
 
 
-// temporary hack to implement wxOwnerDrawn::IsMenuItem() without breaking
-// backwards compatibility
-#if wxCHECK_VERSION(2, 7, 0)
-    #pragma warning "TODO: remove gs_menuItems hack"
-#endif
-
 // VC++ 6 gives a warning here:
 //
 //      return type for 'OwnerDrawnSet_wxImplementation_HashTable::iterator::
 // VC++ 6 gives a warning here:
 //
 //      return type for 'OwnerDrawnSet_wxImplementation_HashTable::iterator::
@@ -121,8 +115,6 @@ WX_DECLARE_HASH_SET(wxOwnerDrawn*, wxPointerHash, wxPointerEqual, OwnerDrawnSet)
     #pragma warning(pop)
 #endif
 
     #pragma warning(pop)
 #endif
 
-static OwnerDrawnSet gs_menuItems;
-
 // ============================================================================
 // implementation of wxOwnerDrawn class
 // ============================================================================
 // ============================================================================
 // implementation of wxOwnerDrawn class
 // ============================================================================
@@ -134,7 +126,7 @@ wxOwnerDrawn::wxOwnerDrawn(const wxString& str,
                            bool bMenuItem)
             : m_strName(str)
 {
                            bool bMenuItem)
             : m_strName(str)
 {
-    if (ms_nDefaultMarginWidth == 0)
+    if ( ms_nDefaultMarginWidth == 0 )
     {
        ms_nDefaultMarginWidth = ::GetSystemMetrics(SM_CXMENUCHECK) +
                                 wxSystemSettings::GetMetric(wxSYS_EDGE_X);
     {
        ms_nDefaultMarginWidth = ::GetSystemMetrics(SM_CXMENUCHECK) +
                                 wxSystemSettings::GetMetric(wxSYS_EDGE_X);
@@ -143,32 +135,19 @@ wxOwnerDrawn::wxOwnerDrawn(const wxString& str,
 
     m_bCheckable   = bCheckable;
     m_bOwnerDrawn  = false;
 
     m_bCheckable   = bCheckable;
     m_bOwnerDrawn  = false;
+    m_isMenuItem   = bMenuItem;
     m_nHeight      = 0;
     m_nMarginWidth = ms_nLastMarginWidth;
     m_nMinHeight   = wxMSWSystemMenuFontModule::ms_systemMenuHeight;
     m_nHeight      = 0;
     m_nMarginWidth = ms_nLastMarginWidth;
     m_nMinHeight   = wxMSWSystemMenuFontModule::ms_systemMenuHeight;
-
-    m_bmpDisabled = wxNullBitmap;
-
-    // TODO: we can't add new m_isMenuItem field in 2.6, so we use this hack
-    //       with the map, but do add m_isMenuItem in 2.7
-    if ( bMenuItem )
-    {
-        gs_menuItems.insert(this);
-    }
 }
 
 wxOwnerDrawn::~wxOwnerDrawn()
 {
 }
 
 wxOwnerDrawn::~wxOwnerDrawn()
 {
-    // TODO: remove this in 2.7
-    gs_menuItems.erase(this);
 }
 
 bool wxOwnerDrawn::IsMenuItem() const
 {
 }
 
 bool wxOwnerDrawn::IsMenuItem() const
 {
-    // TODO: in 2.7, replace this with simple "return m_isMenuItem"
-
-    // some versions of mingw have problems without const_cast when wxUSE_STL=1
-    return gs_menuItems.count(wx_const_cast(wxOwnerDrawn *, this)) == 1;
+    return m_isMenuItem;
 }
 
 
 }