Respect wxUSE_MENUS in toolbar base classes

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64854 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart 2010-07-08 17:35:04 +00:00
parent 7304f3850d
commit 4e8d90a7ce
2 changed files with 16 additions and 0 deletions

View File

@ -199,10 +199,12 @@ public:
virtual void Detach() { m_tbar = NULL; }
virtual void Attach(wxToolBarBase *tbar) { m_tbar = tbar; }
#if wxUSE_MENUS
// these methods are only for tools of wxITEM_DROPDOWN kind (but even such
// tools can have a NULL associated menu)
virtual void SetDropdownMenu(wxMenu *menu);
wxMenu *GetDropdownMenu() const { return m_dropdownMenu; }
#endif
protected:
// common part of all ctors
@ -222,7 +224,10 @@ protected:
m_toggled = false;
m_enabled = true;
#if wxUSE_MENUS
m_dropdownMenu = NULL;
#endif
}
wxToolBarBase *m_tbar; // the toolbar to which we belong (may be NULL)
@ -257,7 +262,9 @@ protected:
wxString m_shortHelpString;
wxString m_longHelpString;
#if wxUSE_MENUS
wxMenu *m_dropdownMenu;
#endif
DECLARE_DYNAMIC_CLASS_NO_COPY(wxToolBarToolBase)
};
@ -569,8 +576,10 @@ public:
// don't want toolbars to accept the focus
virtual bool AcceptsFocus() const { return false; }
#if wxUSE_MENUS
// Set dropdown menu
bool SetDropdownMenu(int toolid, wxMenu *menu);
#endif
protected:
// to implement in derived classes

View File

@ -61,7 +61,10 @@ IMPLEMENT_DYNAMIC_CLASS(wxToolBarToolBase, wxObject)
wxToolBarToolBase::~wxToolBarToolBase()
{
#if wxUSE_MENUS
delete m_dropdownMenu;
#endif
if ( IsControl() )
GetControl()->Destroy();
}
@ -121,11 +124,13 @@ bool wxToolBarToolBase::SetLongHelp(const wxString& help)
}
#if wxUSE_MENUS
void wxToolBarToolBase::SetDropdownMenu(wxMenu* menu)
{
delete m_dropdownMenu;
m_dropdownMenu = menu;
}
#endif
// ----------------------------------------------------------------------------
@ -729,6 +734,7 @@ void wxToolBarBase::UpdateWindowUI(long flags)
}
}
#if wxUSE_MENUS
bool wxToolBarBase::SetDropdownMenu(int toolid, wxMenu* menu)
{
wxToolBarToolBase * const tool = FindById(toolid);
@ -741,6 +747,7 @@ bool wxToolBarBase::SetDropdownMenu(int toolid, wxMenu* menu)
return true;
}
#endif
#if WXWIN_COMPATIBILITY_2_8