Ensure that a wxMenuItem's parent menu is updated if it is removed

from one and added to another menu.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@21027 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2003-06-10 23:48:46 +00:00
parent 6523dea767
commit 568abcbd3a
2 changed files with 4 additions and 0 deletions

View File

@@ -49,6 +49,7 @@ public:
// the menu we're in
wxMenu *GetMenu() const { return m_parentMenu; }
void SetMenu(wxMenu* menu) { m_parentMenu = menu; }
// get/set id
void SetId(int id) { m_id = id; }

View File

@@ -332,6 +332,7 @@ bool wxMenuBase::DoAppend(wxMenuItem *item)
wxCHECK_MSG( item, FALSE, wxT("invalid item in wxMenu::Append()") );
m_items.Append(item);
item->SetMenu((wxMenu*)this);
if ( item->IsSubMenu() )
{
AddSubMenu(item->GetSubMenu());
@@ -365,6 +366,7 @@ bool wxMenuBase::DoInsert(size_t pos, wxMenuItem *item)
wxCHECK_MSG( node, FALSE, wxT("invalid index in wxMenu::Insert()") );
m_items.Insert(node, item);
item->SetMenu((wxMenu*)this);
if ( item->IsSubMenu() )
{
AddSubMenu(item->GetSubMenu());
@@ -393,6 +395,7 @@ wxMenuItem *wxMenuBase::DoRemove(wxMenuItem *item)
m_items.DeleteNode(node);
// item isn't attached to anything any more
item->SetMenu((wxMenu *)NULL);
wxMenu *submenu = item->GetSubMenu();
if ( submenu )
{