#include "wx/gtk/private.h"
#include "wx/gtk/private/mnemonics.h"
-// FIXME: is this right? somehow I don't think so (VZ)
-
-#define gtk_accel_group_attach(g, o) gtk_window_add_accel_group((o), (g))
-#define gtk_accel_group_detach(g, o) gtk_window_remove_accel_group((o), (g))
-//#define gtk_menu_ensure_uline_accel_group(m) gtk_menu_get_accel_group(m)
-
-#define ACCEL_OBJECT GtkWindow
-#define ACCEL_OBJECTS(a) (a)->acceleratables
-#define ACCEL_OBJ_CAST(obj) ((GtkWindow*) obj)
-
// we use normal item but with a special id for the menu title
static const int wxGTK_TITLE_ID = -3;
void wxMenuBar::Init(size_t n, wxMenu *menus[], const wxString titles[], long style)
{
- m_style = style;
m_invokingWindow = NULL;
#if wxUSE_LIBHILDON
top_frame = top_frame->GetParent();
// support for native hot keys
- ACCEL_OBJECT *obj = ACCEL_OBJ_CAST(top_frame->m_widget);
- if ( menu->m_accel && g_slist_find( ACCEL_OBJECTS(menu->m_accel), obj ) )
- gtk_accel_group_detach( menu->m_accel, obj );
+ if (menu->m_accel && g_slist_find(menu->m_accel->acceleratables, top_frame->m_widget))
+ gtk_window_remove_accel_group(GTK_WINDOW(top_frame->m_widget), menu->m_accel);
wxMenuItemList::compatibility_iterator node = menu->GetMenuItems().GetFirst();
while (node)
top_frame = top_frame->GetParent();
// support for native hot keys
- ACCEL_OBJECT *obj = ACCEL_OBJ_CAST(top_frame->m_widget);
- if ( !g_slist_find( ACCEL_OBJECTS(menu->m_accel), obj ) )
- gtk_accel_group_attach( menu->m_accel, obj );
+ if (menu->m_accel && !g_slist_find(menu->m_accel->acceleratables, top_frame->m_widget))
+ gtk_window_add_accel_group(GTK_WINDOW(top_frame->m_widget), menu->m_accel);
wxMenuItemList::compatibility_iterator node = menu->GetMenuItems().GetFirst();
while (node)
if ( !menu )
return (wxMenu*) NULL;
- gtk_menu_item_remove_submenu( GTK_MENU_ITEM(menu->m_owner) );
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu->m_owner), NULL);
gtk_container_remove(GTK_CONTAINER(m_menubar), menu->m_owner);
gtk_widget_destroy( menu->m_owner );
{
// see wxMenu::Init
g_object_unref(m_menu);
- g_object_unref( m_accel );
// if the menu is inserted in another menu at this time, there was
// one more reference to it:
if ( m_owner )
gtk_widget_destroy( m_menu );
+
+ g_object_unref(m_accel);
}
}