/* 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);
		}
	}
}
示例#2
0
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);
    }
}
示例#3
0
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));
    }
}
示例#4
0
文件: menu.c 项目: amery/clip-angelo
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;
}