/* The show method */ static void deskmenu_show (DeskmenuObject *dm_object, Deskmenu *deskmenu, GError **error) { GSList *list = NULL, *iterator = NULL; list = dm_object->pin_items; g_hook_list_invoke (dm_object->show_hooks, FALSE); if (deskmenu->pinnable) { gtk_menu_set_tearoff_state (GTK_MENU (dm_object->menu), TRUE); for (iterator = list; iterator; iterator = iterator->next) { gtk_widget_show (iterator->data); gtk_widget_set_no_show_all (iterator->data, FALSE); } } else { gtk_menu_popup(GTK_MENU (dm_object->menu), NULL, NULL, NULL, NULL, 0, 0); for (iterator = list; iterator; iterator = iterator->next) { gtk_widget_hide (iterator->data); gtk_widget_set_no_show_all (iterator->data, TRUE); } } }
static void gtk_tearoff_menu_item_activate (GtkMenuItem *menu_item) { if (GTK_IS_MENU (GTK_WIDGET (menu_item)->parent)) { GtkMenu *menu = GTK_MENU (GTK_WIDGET (menu_item)->parent); gtk_widget_queue_resize (GTK_WIDGET (menu_item)); gtk_menu_set_tearoff_state (GTK_MENU (GTK_WIDGET (menu_item)->parent), !menu->torn_off); } }
static void gtk_tearoff_menu_item_activate (GtkMenuItem *menu_item) { GtkWidget *parent; parent = gtk_widget_get_parent (GTK_WIDGET (menu_item)); if (GTK_IS_MENU (parent)) { GtkMenu *menu = GTK_MENU (parent); gtk_widget_queue_resize (GTK_WIDGET (menu_item)); gtk_menu_set_tearoff_state (menu, !gtk_menu_get_tearoff_state (menu)); } }
int clip_GTK_MENUSETTEAROFFSTATE(ClipMachine * ClipMachineMemory) { C_widget *cmnu = _fetch_cw_arg(ClipMachineMemory); gboolean state = _clip_parl(ClipMachineMemory, 2); CHECKCWID(cmnu, GTK_IS_MENU); CHECKOPT(2, LOGICAL_type_of_ClipVarType); gtk_menu_set_tearoff_state(GTK_MENU(cmnu->widget), state); return 0; err: return 1; }