git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4344
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
void MyFrame::OnAppendSubMenu(wxCommandEvent& WXUNUSED(event))
{
wxMenuBar *menubar = GetMenuBar();
void MyFrame::OnAppendSubMenu(wxCommandEvent& WXUNUSED(event))
{
wxMenuBar *menubar = GetMenuBar();
wxMenu *menu = menubar->GetMenu(menubar->GetMenuCount() - 1);
wxMenu *menu = menubar->GetMenu(menubar->GetMenuCount() - 1);
-
- menu->Append(Menu_Dummy_Last, "Dummy sub menu\tCtrl-F12",
+
+ menu->Append(Menu_Dummy_Last, "Dummy sub menu\tCtrl-F2",
wxMenuItemBase::~wxMenuItemBase()
{
wxMenuItemBase::~wxMenuItemBase()
{
+ if (m_subMenu)
+ delete m_subMenu;
wxMenuBase::~wxMenuBase()
{
wxMenuBase::~wxMenuBase()
{
- // nothing to do, wxMenuItemList dtor will delete the menu items
+ // nothing to do, wxMenuItemList dtor will delete the menu items.
+ // Actually, in GTK, the submenus have to get deleted first.
}
// ----------------------------------------------------------------------------
}
// ----------------------------------------------------------------------------
gtk_widget_destroy( m_menu );
gtk_object_unref( GTK_OBJECT(m_factory) );
gtk_widget_destroy( m_menu );
gtk_object_unref( GTK_OBJECT(m_factory) );
-
- // the menu items are deleted by the base class dtor
}
bool wxMenu::DoAppend(wxMenuItem *mitem)
}
bool wxMenu::DoAppend(wxMenuItem *mitem)
entry.callback = (GtkItemFactoryCallback) 0;
entry.callback_action = 0;
entry.item_type = "<Branch>";
entry.callback = (GtkItemFactoryCallback) 0;
entry.callback_action = 0;
entry.item_type = "<Branch>";
+ entry.accelerator = (gchar*) NULL;
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
entry.item_type = "<CheckItem>";
else
entry.item_type = "<Item>";
entry.item_type = "<CheckItem>";
else
entry.item_type = "<Item>";
+ entry.accelerator = (gchar*) NULL;
#if wxUSE_ACCEL
// due to an apparent bug in GTK+, we have to use a static buffer here -
#if wxUSE_ACCEL
// due to an apparent bug in GTK+, we have to use a static buffer here -
gtk_widget_destroy( m_menu );
gtk_object_unref( GTK_OBJECT(m_factory) );
gtk_widget_destroy( m_menu );
gtk_object_unref( GTK_OBJECT(m_factory) );
-
- // the menu items are deleted by the base class dtor
}
bool wxMenu::DoAppend(wxMenuItem *mitem)
}
bool wxMenu::DoAppend(wxMenuItem *mitem)
entry.callback = (GtkItemFactoryCallback) 0;
entry.callback_action = 0;
entry.item_type = "<Branch>";
entry.callback = (GtkItemFactoryCallback) 0;
entry.callback_action = 0;
entry.item_type = "<Branch>";
+ entry.accelerator = (gchar*) NULL;
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
entry.item_type = "<CheckItem>";
else
entry.item_type = "<Item>";
entry.item_type = "<CheckItem>";
else
entry.item_type = "<Item>";
+ entry.accelerator = (gchar*) NULL;
#if wxUSE_ACCEL
// due to an apparent bug in GTK+, we have to use a static buffer here -
#if wxUSE_ACCEL
// due to an apparent bug in GTK+, we have to use a static buffer here -