X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c980c992630e94e71139660631a77ffbca8ed958..48b1d0ff4ff220d8f2994723f936a1ffa60addce:/src/gtk1/menu.cpp diff --git a/src/gtk1/menu.cpp b/src/gtk1/menu.cpp index e56b4632f7..1fec1d74fc 100644 --- a/src/gtk1/menu.cpp +++ b/src/gtk1/menu.cpp @@ -39,7 +39,12 @@ wxMenuBar::wxMenuBar( long style ) m_needParent = FALSE; m_style = style; - PreCreation( (wxWindow *) NULL, -1, wxDefaultPosition, wxDefaultSize, style, "menu" ); + if (!PreCreation( (wxWindow*) NULL, wxDefaultPosition, wxDefaultSize ) || + !CreateBase( (wxWindow*) NULL, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, _T("menubar") )) + { + wxFAIL_MSG( _T("wxMenuBar creation failed") ); + return; + } m_menus.DeleteContents( TRUE ); @@ -72,8 +77,13 @@ wxMenuBar::wxMenuBar() m_needParent = FALSE; m_style = 0; - PreCreation( (wxWindow *) NULL, -1, wxDefaultPosition, wxDefaultSize, 0, "menu" ); - + if (!PreCreation( (wxWindow*) NULL, wxDefaultPosition, wxDefaultSize ) || + !CreateBase( (wxWindow*) NULL, -1, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("menubar") )) + { + wxFAIL_MSG( _T("wxMenuBar creation failed") ); + return; + } + m_menus.DeleteContents( TRUE ); /* GTK 1.2.0 doesn't have gtk_item_factory_get_item(), but GTK 1.2.1 has. */ @@ -501,15 +511,6 @@ static void gtk_menu_hilight_callback( GtkWidget *widget, wxMenu *menu ) wxMenuEvent event( wxEVT_MENU_HIGHLIGHT, id ); event.SetEventObject( menu ); -/* wxMSW doesn't call callback here either - - if (menu->m_callback) - { - (void) (*(menu->m_callback)) (*menu, event); - return; - } -*/ - if (menu->GetEventHandler()->ProcessEvent(event)) return; @@ -635,18 +636,11 @@ bool wxMenuItem::IsChecked() const IMPLEMENT_DYNAMIC_CLASS(wxMenu,wxEvtHandler) -wxMenu::wxMenu( const wxString& title, const wxFunction func, long style ) -{ - Init(title, func, style); -} - -wxMenu::wxMenu(long style) -{ - Init(wxEmptyString, (wxFunction) NULL, style); -} - void -wxMenu::Init( const wxString& title, const wxFunction func, long style ) +wxMenu::Init( const wxString& title, + long style, + const wxFunction func + ) { m_title = title; m_items.DeleteContents( TRUE ); @@ -662,6 +656,7 @@ wxMenu::Init( const wxString& title, const wxFunction func, long style ) #endif m_callback = func; + m_eventHandler = this; m_clientData = (void*) NULL; @@ -694,7 +689,9 @@ wxMenu::Init( const wxString& title, const wxFunction func, long style ) wxMenu::~wxMenu() { - /* how do we delete an item-factory ? */ + /* how do we delete an item-factory ? */ + gtk_widget_destroy( m_menu ); + } void wxMenu::SetTitle( const wxString& title )