wxMenuBase changes:

1. GetMenuBar() tries GetParent()->GetMenuBar() first (traverse up hierarchy).
2. IsAttached() returns true if GetMenuBar() returns a menubar.
3. AddSubMenu() does not call Attach() on added submenus.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26477 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Elliott 2004-03-30 00:49:21 +00:00
parent 4224f05975
commit dbdf9a176f
2 changed files with 10 additions and 8 deletions

View File

@ -272,15 +272,15 @@ public:
void UpdateUI(wxEvtHandler* source = (wxEvtHandler*)NULL);
// get the menu bar this menu is attached to (may be NULL, always NULL for
// popup menus)
wxMenuBar *GetMenuBar() const { return m_menuBar; }
// popup menus). Traverse up the menu hierarchy to find it.
wxMenuBar *GetMenuBar() const;
// called when the menu is attached/detached to/from a menu bar
virtual void Attach(wxMenuBarBase *menubar);
virtual void Detach();
// is the menu attached to a menu bar (or is it a popup one)?
bool IsAttached() const { return m_menuBar != NULL; }
bool IsAttached() const { return GetMenuBar() != NULL; }
// set/get the parent of this menu
void SetParent(wxMenu *parent) { m_menuParent = parent; }

View File

@ -310,11 +310,6 @@ void wxMenuBase::AddSubMenu(wxMenu *submenu)
{
wxCHECK_RET( submenu, _T("can't add a NULL submenu") );
if ( m_menuBar )
{
submenu->Attach(m_menuBar);
}
submenu->SetParent((wxMenu *)this);
}
@ -629,6 +624,13 @@ bool wxMenuBase::SendEvent(int id, int checked)
// wxMenu attaching/detaching to/from menu bar
// ----------------------------------------------------------------------------
wxMenuBar* wxMenuBase::GetMenuBar() const
{
if(GetParent())
return GetParent()->GetMenuBar();
return m_menuBar;
}
void wxMenuBase::Attach(wxMenuBarBase *menubar)
{
// use Detach() instead!