gboolean menu_insert_delete(const GdkEventKey *event, const MenuInfo *menu_info, const char *insert_name, const char *delete_name) { const char *name; if (event->keyval == GDK_Insert || event->keyval == GDK_KP_Insert) name = insert_name; else if (event->keyval == GDK_Delete || event->keyval == GDK_KP_Delete) name = delete_name; else return FALSE; menu_item_execute(menu_info, menu_item_find(menu_info->items, name), FALSE); return TRUE; }
static void on_menu_item_activate(GtkMenuItem *menuitem, MenuInfo *menu_info) { if (!block_execute) { const MenuItem *menu_item; GtkWidget *widget = GTK_WIDGET(menuitem); for (menu_item = menu_info->items; menu_item->widget; menu_item++) if (menu_item->widget == widget) break; g_assert(menu_item->widget); if (!GTK_IS_RADIO_MENU_ITEM(menuitem) || gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menuitem))) { menu_item_execute(menu_info, menu_item, TRUE); } } }
static void on_toolbar_button_clicked(G_GNUC_UNUSED GtkToolButton *toolbutton, gpointer gdata) { menu_item_execute(&debug_menu_info, debug_menu_items + GPOINTER_TO_INT(gdata), TRUE); }
static void on_scope_key(guint key_id) { menu_item_execute(&debug_menu_info, debug_menu_items + key_id, FALSE); }
static void on_popup_key(guint key_id) { menu_item_execute(&popup_menu_info, popup_menu_items + key_id - popup_start, FALSE); }