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
This commit is contained in:
parent
81f6ea4a29
commit
4e47fd5a1b
@ -153,7 +153,8 @@ private:
|
|||||||
static size_t ms_nLastMarginWidth; // handy for aligning all items
|
static size_t ms_nLastMarginWidth; // handy for aligning all items
|
||||||
|
|
||||||
bool m_bCheckable, // used only for menu or check listbox 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
|
wxFont m_font; // font to use for drawing
|
||||||
wxColour m_colText, // color ----"---"---"----
|
wxColour m_colText, // color ----"---"---"----
|
||||||
|
@ -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:
|
// VC++ 6 gives a warning here:
|
||||||
//
|
//
|
||||||
// return type for 'OwnerDrawnSet_wxImplementation_HashTable::iterator::
|
// return type for 'OwnerDrawnSet_wxImplementation_HashTable::iterator::
|
||||||
@ -121,8 +115,6 @@ WX_DECLARE_HASH_SET(wxOwnerDrawn*, wxPointerHash, wxPointerEqual, OwnerDrawnSet)
|
|||||||
#pragma warning(pop)
|
#pragma warning(pop)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static OwnerDrawnSet gs_menuItems;
|
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// implementation of wxOwnerDrawn class
|
// implementation of wxOwnerDrawn class
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
@ -134,7 +126,7 @@ wxOwnerDrawn::wxOwnerDrawn(const wxString& str,
|
|||||||
bool bMenuItem)
|
bool bMenuItem)
|
||||||
: m_strName(str)
|
: m_strName(str)
|
||||||
{
|
{
|
||||||
if (ms_nDefaultMarginWidth == 0)
|
if ( ms_nDefaultMarginWidth == 0 )
|
||||||
{
|
{
|
||||||
ms_nDefaultMarginWidth = ::GetSystemMetrics(SM_CXMENUCHECK) +
|
ms_nDefaultMarginWidth = ::GetSystemMetrics(SM_CXMENUCHECK) +
|
||||||
wxSystemSettings::GetMetric(wxSYS_EDGE_X);
|
wxSystemSettings::GetMetric(wxSYS_EDGE_X);
|
||||||
@ -143,32 +135,19 @@ wxOwnerDrawn::wxOwnerDrawn(const wxString& str,
|
|||||||
|
|
||||||
m_bCheckable = bCheckable;
|
m_bCheckable = bCheckable;
|
||||||
m_bOwnerDrawn = false;
|
m_bOwnerDrawn = false;
|
||||||
|
m_isMenuItem = bMenuItem;
|
||||||
m_nHeight = 0;
|
m_nHeight = 0;
|
||||||
m_nMarginWidth = ms_nLastMarginWidth;
|
m_nMarginWidth = ms_nLastMarginWidth;
|
||||||
m_nMinHeight = wxMSWSystemMenuFontModule::ms_systemMenuHeight;
|
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"
|
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user