From 4e47fd5a1b5eecdd668fcbe96b8a64c39af1c196 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 25 Sep 2005 20:43:35 +0000 Subject: [PATCH] replaced gs_menuItems hack with a wxOwnerDrawn::m_isMenuItem field git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35695 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/ownerdrw.h | 3 ++- src/msw/ownerdrw.cpp | 27 +++------------------------ 2 files changed, 5 insertions(+), 25 deletions(-) diff --git a/include/wx/ownerdrw.h b/include/wx/ownerdrw.h index 0e5a8f312f..55ec29893f 100644 --- a/include/wx/ownerdrw.h +++ b/include/wx/ownerdrw.h @@ -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 - 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 ----"---"---"---- diff --git a/src/msw/ownerdrw.cpp b/src/msw/ownerdrw.cpp index 1931e8c11c..5b3312796e 100644 --- a/src/msw/ownerdrw.cpp +++ b/src/msw/ownerdrw.cpp @@ -93,12 +93,6 @@ bool wxMSWSystemMenuFontModule::ms_showCues = true; 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:: @@ -121,8 +115,6 @@ WX_DECLARE_HASH_SET(wxOwnerDrawn*, wxPointerHash, wxPointerEqual, OwnerDrawnSet) #pragma warning(pop) #endif -static OwnerDrawnSet gs_menuItems; - // ============================================================================ // implementation of wxOwnerDrawn class // ============================================================================ @@ -134,7 +126,7 @@ wxOwnerDrawn::wxOwnerDrawn(const wxString& str, bool bMenuItem) : m_strName(str) { - if (ms_nDefaultMarginWidth == 0) + if ( ms_nDefaultMarginWidth == 0 ) { 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_isMenuItem = bMenuItem; 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() { - // TODO: remove this in 2.7 - gs_menuItems.erase(this); } 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; }