Ejemplo n.º 1
0
static void
cb_gimmix_covers_plugin_plc_popup (GtkWidget *widget, GdkEventButton *event, gpointer data)
{
	GtkWidget 	*menu = NULL;
	GtkWidget 	*menu_item = NULL;
	GtkWidget	*image = NULL;

	if (event->button == 3) /* If right click */
	{
		menu = gtk_menu_new ();

		image = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_MENU);
		menu_item = gtk_image_menu_item_new_with_label (_("Set cover from file"));
		gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM(menu_item), image);
		g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (cb_gimmix_covers_plugin_set_cover_from_file), NULL);
		gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
		gtk_widget_show (menu_item);
		
		image = gtk_image_new_from_stock ("gtk-refresh", GTK_ICON_SIZE_MENU);
		menu_item = gtk_image_menu_item_new_with_label (_("Re-fetch cover"));
		gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM(menu_item), image);
		g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK(cb_gimmix_covers_plugin_refetch_cover), NULL);
		gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
		gtk_widget_show (menu_item);
		
		gtk_widget_show (menu);
		gtk_menu_popup (GTK_MENU(menu),
					NULL,
					NULL,
					NULL,
					NULL,
					3,
					gtk_get_current_event_time());
	}
}
Ejemplo n.º 2
0
static void remmina_ftp_client_popup_menu(RemminaFTPClient *client, GdkEventButton *event)
{
	GtkWidget *menu;
	GtkWidget *menuitem;
	GtkWidget *image;

	menu = gtk_menu_new();

	menuitem = gtk_image_menu_item_new_with_label(_("Download"));
	gtk_widget_show(menuitem);
	image = gtk_image_new_from_icon_name("document-save", GTK_ICON_SIZE_MENU);
	gtk_widget_show(image);
	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image);
	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
	g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(remmina_ftp_client_action_download), client);

	menuitem = gtk_image_menu_item_new_with_label(_("Upload"));
	gtk_widget_show(menuitem);
	image = gtk_image_new_from_icon_name("document-send", GTK_ICON_SIZE_MENU);
	gtk_widget_show(image);
	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image);
	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
	g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(remmina_ftp_client_action_upload), client);

	menuitem = gtk_image_menu_item_new_from_stock(GTK_STOCK_DELETE, NULL);
	gtk_widget_show(menuitem);
	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
	g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(remmina_ftp_client_action_delete), client);

	gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, event->button, event->time);
}
Ejemplo n.º 3
0
static GObject *constructor(GType gtype, guint n_properties, GObjectConstructParam *properties) {
	GObject *obj;
	PyraconfigWindow *window;
	PyraconfigWindowPrivate *priv;
	RoccatConfigWindow *roccat_window;
	PyraRMP *rmp;
	guint i;
	GtkMenuItem *menu_item;
	GtkWidget *profile_page;

	obj = G_OBJECT_CLASS(pyraconfig_window_parent_class)->constructor(gtype, n_properties, properties);
	window = PYRACONFIG_WINDOW(obj);
	priv = window->priv;
	roccat_window = ROCCAT_CONFIG_WINDOW(obj);

	priv->config = pyra_configuration_load();

	for (i = 0; i < PYRA_PROFILE_NUM; ++i) {
		profile_page = pyraconfig_profile_page_new();
		roccat_config_window_append_page(roccat_window, ROCCAT_PROFILE_PAGE(profile_page));

		rmp = pyra_rmp_load_actual(i);
		pyraconfig_profile_page_set_rmp(PYRACONFIG_PROFILE_PAGE(profile_page), rmp);
		pyra_rmp_free(rmp);

		g_signal_connect(G_OBJECT(profile_page), "load-from-file", G_CALLBACK(load_profile_from_file_cb), window);
		g_signal_connect(G_OBJECT(profile_page), "save-to-file", G_CALLBACK(save_profile_to_file_cb), window);
	}

	menu_item = GTK_MENU_ITEM(gtk_image_menu_item_new_from_stock(GTK_STOCK_PREFERENCES, NULL));
	g_signal_connect(G_OBJECT(menu_item), "activate", G_CALLBACK(menu_edit_preferences_cb), window);
	roccat_config_window_edit_menu_append(roccat_window, menu_item);

	menu_item = GTK_MENU_ITEM(gtk_image_menu_item_new_with_label(_("Reset")));
	g_signal_connect(G_OBJECT(menu_item), "activate", G_CALLBACK(menu_device_reset_cb), window);
	roccat_config_window_device_menu_append(roccat_window, menu_item);

	menu_item = GTK_MENU_ITEM(gtk_image_menu_item_new_with_label(_("Info")));
	g_signal_connect(G_OBJECT(menu_item), "activate", G_CALLBACK(menu_device_info_cb), window);
	roccat_config_window_device_menu_append(roccat_window, menu_item);

	g_signal_connect(G_OBJECT(roccat_window), "active-changed", G_CALLBACK(window_active_page_changed_cb), NULL);
	g_signal_connect(G_OBJECT(roccat_window), "delete-event", G_CALLBACK(delete_event_cb), NULL);
	g_signal_connect(G_OBJECT(roccat_window), "save-all", G_CALLBACK(save_all_cb), NULL);
	g_signal_connect(G_OBJECT(roccat_window), "device-added", G_CALLBACK(device_add_cb), NULL);
	g_signal_connect(G_OBJECT(roccat_window), "device-removed", G_CALLBACK(device_remove_cb), NULL);

	/* keep this order */
	priv->dbus_proxy = pyra_dbus_proxy_new();

	roccat_config_window_set_device_scanner(roccat_window, ROCCAT_DEVICE_SCANNER_INTERFACE(pyra_device_scanner_new()));

	gtk_widget_show(GTK_WIDGET(window));

	/* if a device is already plugged in, add_cb has already been executed */
	roccat_config_window_warn_if_no_device(roccat_window);

	return obj;
}
Ejemplo n.º 4
0
// 构造GUI函数。
// 输入:void
// 返回值:void
void construct_GUI()
{
    background = gdk_pixbuf_new_from_file("res/background.jpg",NULL);
    A_pic = gdk_pixbuf_new_from_file("res/A.png",NULL);
    B_pic = gdk_pixbuf_new_from_file("res/B.png",NULL);

    main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_widget_set_size_request(main_window,627,570);
    gtk_window_set_resizable(GTK_WINDOW(main_window),FALSE);
    gtk_window_set_title(GTK_WINDOW(main_window),("Tic Tac toe"));
    g_signal_connect(G_OBJECT(main_window),"destroy",G_CALLBACK(gtk_main_quit),NULL);

    GtkWidget * layout = gtk_layout_new(NULL,NULL);
    gtk_container_add(GTK_CONTAINER(main_window),layout);

    GtkWidget * menubar = gtk_menu_bar_new();
    GtkWidget * menu1 = gtk_menu_new();

    GtkWidget * option = gtk_menu_item_new_with_mnemonic("option");
    GtkWidget * player = gtk_image_menu_item_new_with_label("player first");
    GtkWidget * computer = gtk_image_menu_item_new_with_label("computer first");
    GtkWidget * sep = gtk_separator_menu_item_new();
    g_signal_connect(G_OBJECT(player),"activate",G_CALLBACK(player_first),NULL);
    g_signal_connect(G_OBJECT(computer),"activate",G_CALLBACK(computer_first),NULL);

    GtkWidget * quit = gtk_image_menu_item_new_with_label("quit");
    g_signal_connect(G_OBJECT(quit),"activate",G_CALLBACK(gtk_main_quit),NULL);

    GtkWidget * menu2 = gtk_menu_new();
    GtkWidget * help = gtk_menu_item_new_with_mnemonic("help");
    GtkWidget * about = gtk_image_menu_item_new_with_label("about..");
    g_signal_connect(G_OBJECT(about),"activate",G_CALLBACK(about_pressed),NULL);

    gtk_menu_item_set_submenu(GTK_MENU_ITEM(option),menu1);
    gtk_menu_shell_append(GTK_MENU_SHELL(menu1),player);
    gtk_menu_shell_append(GTK_MENU_SHELL(menu1),computer);
    gtk_menu_shell_append(GTK_MENU_SHELL(menu1),sep);
    gtk_menu_shell_append(GTK_MENU_SHELL(menu1),quit);

    gtk_menu_item_set_submenu(GTK_MENU_ITEM(help),menu2);
    gtk_menu_shell_append(GTK_MENU_SHELL(menu2),about);

    gtk_menu_shell_append(GTK_MENU_SHELL(menubar),option);
    gtk_menu_shell_append(GTK_MENU_SHELL(menubar),help);

    gtk_layout_put(GTK_LAYOUT(layout),menubar,0,0);
    gtk_widget_set_size_request(menubar,627,20);

    draw_window = gtk_drawing_area_new();
    gtk_layout_put(GTK_LAYOUT(layout),draw_window,0,20);
    gtk_widget_set_size_request(draw_window,627,570);
    g_signal_connect(draw_window,"expose-event",G_CALLBACK(window_drawing),NULL);

    gtk_widget_set_events(draw_window,gtk_widget_get_events(draw_window)|GDK_BUTTON_PRESS_MASK);
    g_signal_connect(G_OBJECT(draw_window),"button-press-event",G_CALLBACK(when_key_pressed),NULL);

    gtk_widget_show_all(main_window);
}
Ejemplo n.º 5
0
GtkWidget*
fm__make_context_menu()
{
	GtkWidget* menu = gtk_menu_new();

	//show the current directory name
	//FIXME initially the dir path is not set. We need to set it in a callback.
	AyyiFilemanager* fm = file_manager__get();
	const char* name = fm->real_path ? fm->real_path : "Directory";
	GtkWidget* title = gtk_menu_item_new_with_label(name);
	gtk_container_add(GTK_CONTAINER(menu), title);

	menu_separator_new(menu);

	GtkWidget* parent = menu;
	GtkWidget* a = NULL;

	int i; for(i=0;i<G_N_ELEMENTS(fm_menu_def);i++){
		MenuDef* item = &fm_menu_def[i];
		switch(item->label[0]){
			case '-':
				menu_separator_new(menu);
				break;
			case '<':
				gtk_menu_item_set_submenu(GTK_MENU_ITEM(a), parent);
				parent = menu;
				break;
			case '>':
				item = &fm_menu_def[++i]; // following item must be the submenu parent item.
				parent = gtk_menu_new();

				GtkWidget* sub = a = gtk_image_menu_item_new_with_label(item->label);
				//GtkWidget* ico = gtk_image_new_from_pixbuf(mime_type_get_pixbuf(inode_directory)); // TODO *****
				//gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(sub), ico);
				if(item->stock_id){
					fm_menu__item_image_from_stock(menu, a, item->stock_id);
				}
				gtk_container_add(GTK_CONTAINER(menu), sub);

				break;
			default:
				;GtkWidget* menu_item = gtk_image_menu_item_new_with_label (item->label);
				gtk_menu_shell_append (GTK_MENU_SHELL(parent), menu_item);
				if(item->stock_id){
					fm_menu__item_image_from_stock(menu, menu_item, item->stock_id);
				}
				if(item->callback) g_signal_connect (G_OBJECT(menu_item), "activate", G_CALLBACK(item->callback), GINT_TO_POINTER(item->callback_data));
		}
	}

	fm__menu_on_view_change(menu);

	g_signal_connect(file_manager__get(), "dir_changed", G_CALLBACK(menu_on_dir_changed), title);

	gtk_widget_show_all(menu);
	return menu;
}
Ejemplo n.º 6
0
static void
xmr_indicator_plugin_init(XmrIndicatorPlugin *plugin)
{
	GtkWidget *item;

	plugin->settings = g_settings_new("com.timxx.xmradio.plugins.indicator");

	plugin->hide_on_exit  = g_settings_get_boolean(plugin->settings, "hide-on-exit");

	plugin->indicator = NULL;
	plugin->popup_menu = gtk_menu_new();

	item = gtk_image_menu_item_new_with_label(_("Show"));
	gtk_menu_shell_append(GTK_MENU_SHELL(plugin->popup_menu), item);
	g_signal_connect(item, "activate", G_CALLBACK(on_menu_item_activate), plugin);

	item = gtk_separator_menu_item_new();
	gtk_menu_shell_append(GTK_MENU_SHELL(plugin->popup_menu), item);

	item = gtk_image_menu_item_new_from_stock(GTK_STOCK_MEDIA_PLAY, NULL);
	gtk_menu_shell_append(GTK_MENU_SHELL(plugin->popup_menu), item);
	g_signal_connect(item, "activate", G_CALLBACK(on_menu_item_activate), plugin);
	gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE);
	plugin->menu_item_play = item;

	item = gtk_image_menu_item_new_from_stock(GTK_STOCK_MEDIA_PAUSE, NULL);
	gtk_menu_shell_append(GTK_MENU_SHELL(plugin->popup_menu), item);
	g_signal_connect(item, "activate", G_CALLBACK(on_menu_item_activate), plugin);
	gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE);
	plugin->menu_item_pause = item;

	item = gtk_image_menu_item_new_from_stock(GTK_STOCK_MEDIA_NEXT, NULL);
	gtk_menu_shell_append(GTK_MENU_SHELL(plugin->popup_menu), item);
	g_signal_connect(item, "activate", G_CALLBACK(on_menu_item_activate), plugin);
	gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE);

	item = gtk_separator_menu_item_new();
	gtk_menu_shell_append(GTK_MENU_SHELL(plugin->popup_menu), item);

	item = gtk_image_menu_item_new_with_label(_("Love"));
	gtk_menu_shell_append(GTK_MENU_SHELL(plugin->popup_menu), item);
	g_signal_connect(item, "activate", G_CALLBACK(on_menu_item_activate), plugin);

	item = gtk_image_menu_item_new_with_label(_("Hate"));
	gtk_menu_shell_append(GTK_MENU_SHELL(plugin->popup_menu), item);
	g_signal_connect(item, "activate", G_CALLBACK(on_menu_item_activate), plugin);

	item = gtk_separator_menu_item_new();
	gtk_menu_shell_append(GTK_MENU_SHELL(plugin->popup_menu), item);

	item = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, NULL);
	gtk_menu_shell_append(GTK_MENU_SHELL(plugin->popup_menu), item);
	g_signal_connect(item, "activate", G_CALLBACK(on_menu_item_activate), plugin);

	gtk_widget_show_all(plugin->popup_menu);
}
Ejemplo n.º 7
0
static GtkWidget *linphone_gtk_create_call_log_menu(GtkWidget *call_log){
	GtkWidget *menu=gtk_menu_new();
	GtkWidget *menu_item;
	gchar *call_label=NULL;
	gchar *text_label=NULL;
	gchar *name=NULL;
	GtkWidget *image;
	GtkTreeSelection *select;
	GtkTreeIter iter;
	
	select=gtk_tree_view_get_selection(GTK_TREE_VIEW(call_log));
	if (select!=NULL){
		GtkTreeModel *model=NULL;
		if (gtk_tree_selection_get_selected (select,&model,&iter)){
			gpointer pcl;
			LinphoneAddress *la;
			LinphoneCallLog *cl;
			gtk_tree_model_get(model,&iter,2,&pcl,-1);
			cl = (LinphoneCallLog *)pcl;
			la = linphone_call_log_get_dir(cl)==LinphoneCallIncoming ? linphone_call_log_get_from(cl) : linphone_call_log_get_to(cl);
			name=linphone_address_as_string(la);
			call_label=g_strdup_printf(_("Call %s"),name);
			text_label=g_strdup_printf(_("Send text to %s"),name);
			g_free(name);
		}
	}
	if (call_label){
		menu_item=gtk_image_menu_item_new_with_label(call_label);
		image=gtk_image_new_from_stock(GTK_STOCK_NETWORK,GTK_ICON_SIZE_MENU);
		gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),image);
		gtk_widget_show(image);
		gtk_widget_show(menu_item);
		gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
		g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_call_selected,call_log);
	}
	if (text_label){
		menu_item=gtk_image_menu_item_new_with_label(text_label);
		image=gtk_image_new_from_stock(GTK_STOCK_NETWORK,GTK_ICON_SIZE_MENU);
		gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),image);
		gtk_widget_show(image);
		gtk_widget_show(menu_item);
		gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
		g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_call_log_chat_selected,call_log);
	}
	menu_item=gtk_image_menu_item_new_from_stock(GTK_STOCK_ADD,NULL);
	gtk_widget_show(menu_item);
	gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
	g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_call_log_add_contact,call_log);
	gtk_widget_show(menu);
	gtk_menu_attach_to_widget(GTK_MENU(menu),call_log, NULL);

	if (call_label) g_free(call_label);
	if (text_label) g_free(text_label);
	return menu;
}
Ejemplo n.º 8
0
static void *process_menu_item(struct menu_item *item, void *arg) {
    GtkMenu *menu = GTK_MENU(arg);

    GtkWidget *mitem;
    GtkWidget *submenu;
    GtkWidget *image;
    GtkWidget *separator;
    void *result = NULL;

    switch (item->type) {
    case MENU:
        submenu = gtk_menu_new();
        result = submenu;
        break;

    case MENUEND:
        submenu = item->prevarg;
        if (item->children) {
            mitem = gtk_image_menu_item_new_with_label(item->name);
            image =  get_image(item->icon);
            gtk_widget_show(image);
            gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mitem), image);
            gtk_menu_item_set_submenu(GTK_MENU_ITEM(mitem), submenu);
            gtk_menu_shell_append(GTK_MENU_SHELL(menu), mitem);
            gtk_widget_show(submenu);
            gtk_widget_show(mitem);
        } else {
            gtk_widget_destroy(submenu);
        }
        break;

    case SEPARATOR:
        separator = gtk_separator_menu_item_new();
        gtk_menu_shell_append(GTK_MENU_SHELL(menu), separator);
        gtk_widget_show(separator);
        break;

    case ENTRY:
        mitem = gtk_image_menu_item_new_with_label(item->name);
        image = get_image(item->icon);
        gtk_widget_show(image);
        gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mitem), image);
        gtk_menu_shell_append(GTK_MENU_SHELL(menu), mitem);
        g_signal_connect (G_OBJECT(mitem), "activate", G_CALLBACK (launcher_activated), g_strdup (item->command));
        gtk_widget_show(mitem);
        break;

    default:
        break;
    }


    return result;
}
static GtkMenu *
create_status_menu (void)
{
	GtkMenu *popup_menu = GTK_MENU (gtk_menu_new ());
	int i = 0;

	GtkMenu *groups_menu = GTK_MENU (gtk_menu_new ());
	gchar **current_name = gkbd_status_get_group_names ();

	GtkWidget *item = gtk_menu_item_new_with_mnemonic (_("_Layouts"));
	gtk_widget_show (item);
	gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), item);
	gtk_menu_item_set_submenu (GTK_MENU_ITEM (item),
				   GTK_WIDGET (groups_menu));

	item = gtk_menu_item_new_with_mnemonic (_("Show _Keyboard Layout..."));
	gtk_widget_show (item);
	g_signal_connect (item, "activate", popup_menu_show_layout, NULL);
	gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), item);

	/* translators note:
	 * This is the name of the sagarmatha-settings "region" panel */
	item = gtk_menu_item_new_with_mnemonic (_("Region and Language Settings"));
	gtk_widget_show (item);
	g_signal_connect (item, "activate", popup_menu_launch_capplet, NULL);
	gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), item);

	for (i = 0; current_name && *current_name; i++, current_name++) {

		gchar *image_file = gkbd_status_get_image_filename (i);

		if (image_file == NULL) {
			item =
			    gtk_menu_item_new_with_label (*current_name);
		} else {
			GdkPixbuf *pixbuf =
			    gdk_pixbuf_new_from_file_at_size (image_file,
							      24, 24,
							      NULL);
			GtkWidget *img =
			    gtk_image_new_from_pixbuf (pixbuf);
			item =
			    gtk_image_menu_item_new_with_label
			    (*current_name);
			gtk_widget_show (img);
			gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM
						       (item), img);
			gtk_image_menu_item_set_always_show_image
			    (GTK_IMAGE_MENU_ITEM (item), TRUE);
			g_free (image_file);
		}
		gtk_widget_show (item);
		gtk_menu_shell_append (GTK_MENU_SHELL (groups_menu), item);
		g_signal_connect (item, "activate",
				  G_CALLBACK (popup_menu_set_group_cb),
				  GINT_TO_POINTER (i));
	}

	return popup_menu;
}
Ejemplo n.º 10
0
static gboolean
gtk_tool_button_create_menu_proxy (GtkToolItem *item)
{
  GtkToolButton *button = GTK_TOOL_BUTTON (item);
  GtkWidget *menu_item;
  GtkWidget *menu_image = NULL;
  GtkStockItem stock_item;
  gboolean use_mnemonic = TRUE;
  const char *label;

  if (_gtk_tool_item_create_menu_proxy (item))
    return TRUE;
 
  if (GTK_IS_LABEL (button->priv->label_widget))
    {
      label = gtk_label_get_label (GTK_LABEL (button->priv->label_widget));
      use_mnemonic = gtk_label_get_use_underline (GTK_LABEL (button->priv->label_widget));
    }
  else if (button->priv->label_text)
    {
      label = button->priv->label_text;
      use_mnemonic = button->priv->use_underline;
    }
  else if (button->priv->stock_id && gtk_stock_lookup (button->priv->stock_id, &stock_item))
    {
      label = stock_item.label;
    }
  else
    {
      label = "";
    }
  
  if (use_mnemonic)
    menu_item = gtk_image_menu_item_new_with_mnemonic (label);
  else
    menu_item = gtk_image_menu_item_new_with_label (label);

  if (GTK_IS_IMAGE (button->priv->icon_widget))
    {
      menu_image = clone_image_menu_size (GTK_IMAGE (button->priv->icon_widget),
					  gtk_widget_get_settings (GTK_WIDGET (button)));
    }
  else if (button->priv->stock_id)
    {
      menu_image = gtk_image_new_from_stock (button->priv->stock_id, GTK_ICON_SIZE_MENU);
    }

  if (menu_image)
    gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), menu_image);

  g_signal_connect_closure_by_id (menu_item,
				  g_signal_lookup ("activate", G_OBJECT_TYPE (menu_item)), 0,
				  g_cclosure_new_object_swap (G_CALLBACK (gtk_button_clicked),
							      G_OBJECT (GTK_TOOL_BUTTON (button)->priv->button)),
				  FALSE);

  gtk_tool_item_set_proxy_menu_item (GTK_TOOL_ITEM (button), MENU_ID, menu_item);
  
  return TRUE;
}
Ejemplo n.º 11
0
int
clip_GTK_IMAGEMENUITEMNEWWITHLABEL(ClipMachine * cm)
{
	ClipVar        *cv = _clip_spar(cm, 1);
        gchar       *label = _clip_parc(cm, 2);
        C_widget   *cimage ;
        GtkWidget   *image ;

	CHECKOPT(1,MAP_t);
        CHECKARG(2, CHARACTER_t);

	LOCALE_TO_UTF(label);
	image = gtk_image_menu_item_new_with_label(label);

	if (image)
        {
        	cimage = _list_get_cwidget(cm, image);
                if (!cimage) cimage = _register_widget(cm, image, cv);
                if (cimage) _clip_mclone(cm, RETPTR(cm), &cimage->obj);
        }
        FREE_TEXT(label);
	return 0;
err:
	return 1;
}
Ejemplo n.º 12
0
static void         explorer_add_go_item      (Explorer *self, GList *node_link)
{
    GtkWidget *menu = glade_xml_get_widget(self->xml, "go_menu_menu");
    HistoryNode *node = node_link->data;
    GtkWidget *item, *image;
    gchar* label;

    /* Add the timestamp */
    label = explorer_strdup_time(&node->timestamp);
    item = gtk_image_menu_item_new_with_label(label);
    g_free(label);

    /* Add the thumbnail */
    image = gtk_image_new_from_pixbuf(node->thumbnail);
    gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);

    /* Set up a callback to activate this node.
     * Note that its data is our node_link, not the Explorer.
     */
    g_signal_connect(item, "activate", G_CALLBACK(on_go_menu_item), node_link);

    /* Add it to the menu */
    gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
    gtk_widget_show(item);
}
Ejemplo n.º 13
0
void create_inmd_switch()
{
  menu = gtk_menu_new ();

  int i;
  for(i=0; i < inmdN; i++) {
    if (!inmd[i].cname || !inmd[i].cname[0])
      continue;

    char tt[64];
    sprintf(tt, "%s ctrl-alt-%c", inmd[i].cname, inmd[i].key_ch);

    GtkWidget *item = gtk_image_menu_item_new_with_label (tt);
    if (inmd[i].icon) {
      char fname[512];
      get_icon_path(inmd[i].icon, fname);
      GtkWidget *img = gtk_image_new_from_file(fname);
      if (img)
        gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), img);
    }

    g_signal_connect (G_OBJECT (item), "activate",
                      G_CALLBACK (cb_update_menu_select), GINT_TO_POINTER(i));

    gtk_widget_show(item);

    gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
  }
}
Ejemplo n.º 14
0
static void
populate_popup(GtkTextView *textview, GtkMenu *menu, GtkSpell *spell) {
	GtkWidget *img, *mi;
	GtkTextBuffer *buffer = gtk_text_view_get_buffer(textview);
	GtkTextIter start, end;
	char *word;

	/* we need to figure out if they picked a misspelled word. */
	get_cur_word_extents(buffer, &start, &end);

	/* if our highlight algorithm ever messes up, 
	 * this isn't correct, either. */
	if (!gtk_text_iter_has_tag(&start, spell->tag_highlight))
		return; /* word wasn't misspelled. */

	/* menu separator comes first. */
	mi = gtk_menu_item_new();
	gtk_widget_show(mi);
	gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), mi);

	/* then, on top of it, the suggestions menu. */
	img = gtk_image_new_from_stock(GTK_STOCK_SPELL_CHECK, GTK_ICON_SIZE_MENU);
	mi = gtk_image_menu_item_new_with_label("Spelling Suggestions");
	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);

	word = gtk_text_buffer_get_text(buffer, &start, &end, FALSE);
	gtk_menu_item_set_submenu(GTK_MENU_ITEM(mi),
			build_suggestion_menu(spell, buffer, word));
	g_free(word);

	gtk_widget_show_all(mi);
	gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), mi);
}
Ejemplo n.º 15
0
GtkWidget *create_tray_menu(MITEM *mitems)
{
  GtkWidget *menu = gtk_menu_new ();

  int i;
  for(i=0; mitems[i].cb; i++) {
    GtkWidget *item;

    if (!mitems[i].name)
      continue;

    if (mitems[i].stock_id) {
      item = gtk_image_menu_item_new_with_label (_(mitems[i].name));
      gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), gtk_image_new_from_stock(mitems[i].stock_id, GTK_ICON_SIZE_MENU));
    }
    else
    if (mitems[i].check_dat) {
      item = gtk_check_menu_item_new_with_label (_(mitems[i].name));
      gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), *mitems[i].check_dat);
    } else
      item = gtk_menu_item_new_with_label (_(mitems[i].name));

    mitems[i].handler = g_signal_connect (G_OBJECT (item), "activate",
                      G_CALLBACK (mitems[i].cb), NULL);

    gtk_widget_show(item);
    mitems[i].item = item;

    gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
  }

  return menu;
}
Ejemplo n.º 16
0
static GtkWidget *
make_colored_menu_item (char const *label, GOColor c)
{
	GtkWidget *button;
	GdkPixbuf *pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8,
		COLOR_PREVIEW_WIDTH, COLOR_PREVIEW_HEIGHT);
	gdk_pixbuf_fill (pixbuf, c);

	if (label && 0 == strcmp (label, " ")) {
		/* color buttons are created with a label of " " */
		button = gtk_menu_item_new ();
		gtk_container_add (GTK_CONTAINER (button),
			gtk_image_new_from_pixbuf (pixbuf));
	} else {
		button = gtk_image_menu_item_new_with_label (label);
		gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (button),
			gtk_image_new_from_pixbuf (pixbuf));
	}
	g_object_unref (pixbuf);
	gtk_widget_show_all (button);

	g_object_set_data (G_OBJECT (button), "go_color", GINT_TO_POINTER (c));

	/* Workaround for bug http://bugzilla.gnome.org/show_bug.cgi?id=585421 */
	g_signal_connect (button, "toggle-size-request", G_CALLBACK (cb_menu_item_toggle_size_request), NULL);

	return button;
}
Ejemplo n.º 17
0
static VALUE
rg_initialize(int argc, VALUE *argv, VALUE self)
{
    VALUE label, use_underline_or_accel_group;
    GtkWidget *widget = NULL;

    if (rb_scan_args(argc, argv, "02", &label, &use_underline_or_accel_group) > 0) {
        if (TYPE(label) == T_STRING){
            if (NIL_P(use_underline_or_accel_group) || RVAL2CBOOL(use_underline_or_accel_group)){
                widget = gtk_image_menu_item_new_with_mnemonic(RVAL2CSTR(label));
            } else {
                widget = gtk_image_menu_item_new_with_label(RVAL2CSTR(label));
            }
        } else if (TYPE(label) == T_SYMBOL){
            widget = gtk_image_menu_item_new_from_stock(rb_id2name(SYM2ID(label)),
                                                        NIL_P(use_underline_or_accel_group) ? NULL :
                                                        GTK_ACCEL_GROUP(RVAL2GOBJ(use_underline_or_accel_group)));
        } else {
            rb_raise(rb_eArgError, "invalid argument %s (expect Symbol(Gtk::Stock constants) or String)", 
                     rb_class2name(CLASS_OF(label)));
        }
    } else {
        widget = gtk_image_menu_item_new();
    }

    RBGTK_INITIALIZE(self, widget);
    return Qnil;
}
Ejemplo n.º 18
0
void transfer_button_clicked(GtkWidget *button, gpointer call_ref) {
    GtkWidget *menu_item;
    GtkWidget *menu=gtk_menu_new();
    LinphoneCall *call=(LinphoneCall*)call_ref;
    LinphoneCore *lc=linphone_gtk_get_core();
    const MSList *elem=linphone_core_get_calls(lc);

    for(; elem!=NULL; elem=elem->next) {
        LinphoneCall *other_call=(LinphoneCall*)elem->data;
        GtkWidget *call_view=(GtkWidget*)linphone_call_get_user_pointer(other_call);
        if (other_call!=call) {
            int call_index=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(call_view),"call_index"));
            char *remote_uri=linphone_call_get_remote_address_as_string (other_call);
            char *text=g_strdup_printf(_("Transfer to call #%i with %s"),call_index,remote_uri);
            menu_item=gtk_image_menu_item_new_with_label(text);
            ms_free(remote_uri);
            g_free(text);
            gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),create_pixmap("status-green.png"));
            gtk_widget_show(menu_item);
            gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
            g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_transfer_call,other_call);
        }
    }
    gtk_menu_popup(GTK_MENU(menu),NULL,NULL,NULL,NULL,0,gtk_get_current_event_time());
    gtk_widget_show(menu);
}
GtkWidget *
util_image_menu_item(
	const gchar * icon_stock_id,
	const gchar * label_text,
	GCallback activate_cb,
	gpointer activate_user_data)
{
	GtkWidget * item_w;

	if(icon_stock_id) {
		item_w = gtk_image_menu_item_new_with_label("");
		gtk_image_menu_item_set_image(
			GTK_IMAGE_MENU_ITEM(item_w),
			gtk_image_new_from_stock(icon_stock_id, GTK_ICON_SIZE_MENU));
	} else {
		item_w = gtk_menu_item_new_with_label("");
	}

	gtk_label_set_markup_with_mnemonic(GTK_LABEL(GTK_BIN(item_w)->child), label_text);

	/* hook up signal callback */
	if(activate_cb)
		g_signal_connect(G_OBJECT(item_w), "activate", activate_cb, activate_user_data);

	return item_w;
}
Ejemplo n.º 20
0
static void
status_icon_popup_menu_cb (GtkStatusIcon * icon, guint button, guint time)
{
	GtkMenu *popup_menu = GTK_MENU (gtk_menu_new ());
	GtkMenu *groups_menu = GTK_MENU (gtk_menu_new ());
	int i = 0;
	gchar **current_name = gkbd_status_get_group_names ();

	GtkWidget *item = gtk_menu_item_new_with_mnemonic (_("_Groups"));
	gtk_widget_show (item);
	gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), item);
	gtk_menu_item_set_submenu (GTK_MENU_ITEM (item),
				   GTK_WIDGET (groups_menu));

	item =
	    gtk_menu_item_new_with_mnemonic (_("Keyboard _Preferences"));
	gtk_widget_show (item);
	g_signal_connect (item, "activate", popup_menu_launch_capplet,
			  NULL);
	gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), item);

	item = gtk_menu_item_new_with_mnemonic (_("Show Current _Layout"));
	gtk_widget_show (item);
	g_signal_connect (item, "activate", popup_menu_show_layout, NULL);
	gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), item);

	for (i = 0; *current_name; i++, current_name++) {
		gchar *image_file = gkbd_status_get_image_filename (i);

		if (image_file == NULL) {
			item =
			    gtk_menu_item_new_with_label (*current_name);
		} else {
			GdkPixbuf *pixbuf =
			    gdk_pixbuf_new_from_file_at_size (image_file,
							      24, 24,
							      NULL);
			GtkWidget *img =
			    gtk_image_new_from_pixbuf (pixbuf);
			item =
			    gtk_image_menu_item_new_with_label
			    (*current_name);
			gtk_widget_show (img);
			gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM
						       (item), img);
			gtk_image_menu_item_set_always_show_image
			    (GTK_IMAGE_MENU_ITEM (item), TRUE);
			g_free (image_file);
		}
		gtk_widget_show (item);
		gtk_menu_shell_append (GTK_MENU_SHELL (groups_menu), item);
		g_signal_connect (item, "activate",
				  G_CALLBACK (popup_menu_set_group),
				  GINT_TO_POINTER (i));
	}

	gtk_menu_popup (popup_menu, NULL, NULL,
			gtk_status_icon_position_menu,
			(gpointer) icon, button, time);
}
Ejemplo n.º 21
0
static void
presence_chooser_menu_add_item (GtkWidget   *menu,
				const gchar *str,
				McPresence   state)
{
	GtkWidget   *item;
	GtkWidget   *image;
	const gchar *icon_name;

	item = gtk_image_menu_item_new_with_label (str);
	icon_name = empathy_icon_name_for_presence (state);

	g_signal_connect (item, "activate",
			  G_CALLBACK (presence_chooser_noncustom_activate_cb),
			  NULL);

	image = gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_MENU);
	gtk_widget_show (image);

	gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
	gtk_widget_show (item);

	g_object_set_data_full (G_OBJECT (item),
				"status", g_strdup (str),
				(GDestroyNotify) g_free);

	g_object_set_data (G_OBJECT (item), "state", GINT_TO_POINTER (state));

	gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
}
Ejemplo n.º 22
0
	::GtkMenuItem* GtkMenuItem::CreateNative(bool registerNative)
	{
		::GtkMenuItem* newNativeItem;
		if (this->IsSeparator()) {
			return (::GtkMenuItem*) gtk_separator_menu_item_new();

		} else if (this->IsCheck()) {
			newNativeItem = (::GtkMenuItem*) gtk_check_menu_item_new_with_label(label.c_str());
			gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(newNativeItem), this->state);

		} else if (this->iconPath.empty()) {
			newNativeItem = (::GtkMenuItem*) gtk_menu_item_new_with_label(label.c_str());

		} else {
			newNativeItem = (::GtkMenuItem*) gtk_image_menu_item_new_with_label(label.c_str());
			GtkWidget* image = gtk_image_new_from_file(this->iconPath.c_str());
			gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(newNativeItem), image);
		}

		gtk_widget_set_sensitive(GTK_WIDGET(newNativeItem), this->enabled);
		this->SetNativeItemSubmenu(newNativeItem, this->submenu);
		g_signal_connect(G_OBJECT(newNativeItem),
			"activate", G_CALLBACK(GtkMenus::MenuCallback), this);

		if (registerNative)
				this->nativeItems.push_back(newNativeItem);
		return newNativeItem;
	}
static void
create_popup_menu (CajaEmblemSidebar *emblem_sidebar)
{
    GtkWidget *popup, *menu_item, *menu_image;

    popup = gtk_menu_new ();

    /* add the "rename" menu item */
    menu_image = gtk_image_new_from_stock (GTK_STOCK_PROPERTIES,
                                           GTK_ICON_SIZE_MENU);
    gtk_widget_show (menu_image);
    menu_item = gtk_image_menu_item_new_with_label (_("Rename"));
    gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item),
                                   menu_image);

    g_signal_connect (menu_item, "activate",
                      G_CALLBACK (caja_emblem_sidebar_rename_cb),
                      emblem_sidebar);
    gtk_widget_show (menu_item);
    gtk_menu_shell_append (GTK_MENU_SHELL (popup), menu_item);
    emblem_sidebar->details->popup_rename = menu_item;

    /* add "delete" menu item */
    menu_item = gtk_image_menu_item_new_from_stock (GTK_STOCK_DELETE,
                NULL);
    g_signal_connect (menu_item, "activate",
                      G_CALLBACK (caja_emblem_sidebar_delete_cb),
                      emblem_sidebar);
    gtk_widget_show (menu_item);
    gtk_menu_shell_append (GTK_MENU_SHELL (popup), menu_item);
    emblem_sidebar->details->popup_remove = menu_item;

    emblem_sidebar->details->popup = popup;
}
Ejemplo n.º 24
0
static int motSubmenuMapMethod(Ihandle* ih)
{
  int pos;

  if (!ih->parent)
    return IUP_ERROR;

#ifndef HILDON
  if (iupMenuIsMenuBar(ih->parent))
    ih->handle = gtk_menu_item_new_with_label("");
  else
#endif
    ih->handle = gtk_image_menu_item_new_with_label("");

  if (!ih->handle)
    return IUP_ERROR;

  ih->serial = iupMenuGetChildId(ih); 

  pos = IupGetChildPos(ih->parent, ih);
  gtk_menu_shell_insert((GtkMenuShell*)ih->parent->handle, ih->handle, pos);
  gtk_widget_show(ih->handle);

  g_signal_connect(G_OBJECT(ih->handle), "select", G_CALLBACK(gtkItemSelect), ih);

  iupUpdateStandardFontAttrib(ih);

  return IUP_NOERROR;
}
Ejemplo n.º 25
0
void configbuttonCreateMenu(CONFIGBUTTON *c) {
	struct PLUGIN_SUB_ENTRY *plugin_sub;
	int i;
	GtkWidget *image;
	GtkWidget *submenu;
	
	c->menu = gtk_menu_new();
	updatePlugins(c);
	gtk_status_icon_set_from_stock(c->icon, GTK_STOCK_PREFERENCES);

	for (i = 0; i < c->plugins; i++) {
		c->plugin[i].item = gtk_image_menu_item_new_with_label(c->plugin[i].info->label);
		if (c->plugin[i].info->icon_path != NULL) {
			image = gtk_image_new_from_file(c->plugin[i].info->icon_path);
			gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(c->plugin[i].item), image);
		}
		
		if (c->plugin[i].info->submenu == NULL)
			g_signal_connect(G_OBJECT(c->plugin[i].item), "activate", G_CALLBACK(configbuttonActivate), &c->plugin[i]);
		else {
			plugin_sub = c->plugin[i].info->submenu;
			submenu = gtk_menu_new();
			while (plugin_sub != NULL) {
				if (plugin_sub->visible == 0) {
					plugin_sub = plugin_sub->next;
					continue;
				}
				plugin_sub->item = gtk_image_menu_item_new_with_label(plugin_sub->label);
				if (plugin_sub->icon_path != NULL) {
					image = gtk_image_new_from_file(plugin_sub->icon_path);
					gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(plugin_sub->item), image);
				}
				g_signal_connect(G_OBJECT(plugin_sub->item), "activate", G_CALLBACK(configbuttonActivateSubmenu), plugin_sub);
				gtk_menu_shell_append(GTK_MENU_SHELL(submenu), plugin_sub->item);
				plugin_sub->activate = c->plugin[i].activate;
				plugin_sub = plugin_sub->next;
			}
			gtk_menu_item_set_submenu(GTK_MENU_ITEM(c->plugin[i].item), submenu);
		}
		gtk_menu_shell_append(GTK_MENU_SHELL(c->menu), c->plugin[i].item);
	}
			

	gtk_widget_show_all(c->menu);
	
	return;
}
Ejemplo n.º 26
0
GuMenuGui* menugui_init(GtkBuilder* builder)
{
  g_return_val_if_fail(GTK_IS_BUILDER(builder), NULL);

  GuMenuGui* m = g_new0(GuMenuGui, 1);

  m->menu_projcreate = GTK_MENU_ITEM(
                         gtk_builder_get_object(builder, "menu_projcreate"));
  m->menu_projopen = GTK_MENU_ITEM(
                       gtk_builder_get_object(builder, "menu_projopen"));
  m->menu_projclose = GTK_MENU_ITEM(
                        gtk_builder_get_object(builder, "menu_projclose"));
  m->menu_cut = GTK_MENU_ITEM(gtk_builder_get_object(builder, "menu_cut"));
  m->menu_copy = GTK_MENU_ITEM(gtk_builder_get_object(builder, "menu_copy"));

#ifdef WIN32
  // Please do NOT enable for nix, it has no place on a free OS ;)
  GtkWidget* donate =
    gtk_image_menu_item_new_with_label("Support this Project");
  gtk_image_menu_item_set_image
  (GTK_IMAGE_MENU_ITEM(donate),
   GTK_WIDGET(gtk_image_new_from_stock(
                GTK_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_MENU)));
  GtkWidget* helpmenu =
    GTK_WIDGET(gtk_builder_get_object(builder, "menu11"));
  gtk_menu_prepend(GTK_MENU(helpmenu), donate);
  gtk_signal_connect_object(GTK_OBJECT(donate), "activate",
                            GTK_SIGNAL_FUNC(on_menu_donate_activate),
                            NULL);
#endif

  /* TODO: There has to be a better way than this.. (bug 246)
  GtkSettings *settings = gtk_settings_get_default();
  gchar *iconsizes;
  g_object_get(settings, "gtk-icon-sizes", &iconsizes, NULL);
  if (iconsizes != NULL) {
      printf("%s\n", iconsizes);
  }*/

#ifdef WIN32
  // The 2 non-stock menu items have their pixel size values set
  // to the default 16x16 in GLADE. The normal icon-size value is
  // normally set by the GTK theme in gtkrc. For themes using
  // non-default icon sizes or Windows, this 16x16 value will be
  // wrong. This code sets it to match the gtkrc file that we
  // supply with the Windows builds:
  GtkWidget* export = gtk_image_menu_item_get_image(
                        GTK_IMAGE_MENU_ITEM(gtk_builder_get_object(builder, "menu_export")));
  GtkWidget* update = gtk_image_menu_item_get_image(
                        GTK_IMAGE_MENU_ITEM(gtk_builder_get_object(builder, "menu_update")));
  gtk_image_set_pixel_size(GTK_IMAGE(export), 13);
  gtk_image_set_pixel_size(GTK_IMAGE(update), 13);
#endif




  return m;
}
Ejemplo n.º 27
0
static void on_add_search_folder( GtkWidget* btn, FindFile* data )
{
    GtkWidget* menu = gtk_menu_new();
    GtkWidget* item;
    GtkWidget* img;
    const char* dir;

    item = gtk_image_menu_item_new_with_label( _("Browse...") );
    gtk_menu_shell_append( GTK_MENU_SHELL( menu ), item );
    g_signal_connect( item, "activate", G_CALLBACK(on_add_search_browse), data );

    item = gtk_separator_menu_item_new();
    gtk_menu_shell_append( GTK_MENU_SHELL( menu ), item );

    item = gtk_image_menu_item_new_with_label( g_get_home_dir() );
    //img = gtk_image_new_from_icon_name( "gnome-fs-directory", GTK_ICON_SIZE_MENU );
    img = xset_get_image( "gtk-directory", GTK_ICON_SIZE_MENU );
    gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM( item ), img );
    gtk_menu_shell_append( GTK_MENU_SHELL( menu ), item );
    g_signal_connect( item, "activate", G_CALLBACK(on_add_search_home), data );

    if( dir = vfs_get_desktop_dir() )
    {
        item = gtk_image_menu_item_new_with_label( dir );
        //img = gtk_image_new_from_icon_name( "gnome-fs-desktop", GTK_ICON_SIZE_MENU );
        img = xset_get_image( "gtk-directory", GTK_ICON_SIZE_MENU );
        gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM( item ), img );
        gtk_menu_shell_append( GTK_MENU_SHELL( menu ), item );
        g_signal_connect( item, "activate", G_CALLBACK(on_add_search_desktop), data );
    }

    item = gtk_image_menu_item_new_with_label( _("Local Volumes") );
    //img = gtk_image_new_from_icon_name( "gnome-dev-harddisk", GTK_ICON_SIZE_MENU );
    img = xset_get_image( "gtk-harddisk", GTK_ICON_SIZE_MENU );
    gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM( item ), img );
    gtk_menu_shell_append( GTK_MENU_SHELL( menu ), item );
    g_signal_connect( item, "activate", G_CALLBACK(on_add_search_volumes), data );

    /* FIXME: Add all volumes */

    /* FIXME: Add all bookmarks */

    gtk_widget_show_all( menu );
    gtk_menu_popup( GTK_MENU( menu ), NULL, NULL, (GtkMenuPositionFunc)menu_pos,
                                        btn, 0, gtk_get_current_event_time() );
}
Ejemplo n.º 28
0
GtkWidget *
empathy_smiley_menu_new (EmpathySmileyManager *manager,
			 EmpathySmileyMenuFunc func,
			 gpointer              user_data)
{
	EmpathySmileyManagerPriv *priv = GET_PRIV (manager);
	GSList                   *l;
	GtkWidget                *menu;
	gint                      x = 0;
	gint                      y = 0;

	g_return_val_if_fail (EMPATHY_IS_SMILEY_MANAGER (manager), NULL);
	g_return_val_if_fail (func != NULL, NULL);

	menu = gtk_menu_new ();

	for (l = priv->smileys; l; l = l->next) {
		EmpathySmiley *smiley;
		GtkWidget     *item;
		GtkWidget     *image;
		ActivateData  *data;

		smiley = l->data;
		image = gtk_image_new_from_pixbuf (smiley->pixbuf);

		item = gtk_image_menu_item_new_with_label ("");
		gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
		gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE);

		gtk_menu_attach (GTK_MENU (menu), item,
				 x, x + 1, y, y + 1);

		gtk_widget_set_tooltip_text (item, smiley->str);

		data = g_slice_new (ActivateData);
		data->manager = g_object_ref (manager);
		data->smiley = smiley;
		data->func = func;
		data->user_data = user_data;

		g_signal_connect_data (item, "activate",
				       G_CALLBACK (smiley_menu_activate_cb),
				       data,
				       smiley_menu_data_free,
				       0);

		if (x > 3) {
			y++;
			x = 0;
		} else {
			x++;
		}
	}

	gtk_widget_show_all (menu);

	return menu;
}
Ejemplo n.º 29
0
GtkWidget*
hybrid_create_menu(GtkWidget *parent, const gchar *title,
		const gchar *icon_name, gboolean sensitive,
		GCallback callback,
		gpointer user_data)
{
	GtkWidget *item;
	GdkPixbuf *pixbuf;
	GtkWidget *image;
	gchar *icon_path;

	g_return_val_if_fail(title != NULL, NULL);

	if (icon_name) {
		icon_path = g_strdup_printf(PIXMAPS_DIR"menus/%s.png", icon_name);
		item = gtk_image_menu_item_new_with_label(title);
		pixbuf = gdk_pixbuf_new_from_file_at_size(icon_path, 16, 16, NULL);

		if (pixbuf) {
			image = gtk_image_new_from_pixbuf(pixbuf);
			g_object_unref(pixbuf);
			gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
		}

		g_free(icon_path);

	} else {
		item = gtk_image_menu_item_new_with_label(title);
	}

	if (parent) {
		gtk_menu_shell_append(GTK_MENU_SHELL(parent), item);
	}

	if (!sensitive) {
		gtk_widget_set_sensitive(item, FALSE);
		return item;
	}

	if (callback) {
		g_signal_connect(item, "activate", G_CALLBACK(callback), user_data);
	}

	return item;
}
static GtkWidget *_terminal_build_menu (GtkWidget *pWidget, gchar *cReceivedData)
{
	static gpointer *my_data = NULL;
	if (my_data == NULL)
		my_data = g_new0 (gpointer, 2);
	my_data[0] = pWidget;
	my_data[1] = cReceivedData;
	GtkWidget *menu = gtk_menu_new ();

	GtkWidget *menu_item, *image;
	menu_item = gtk_image_menu_item_new_with_label (_("Copy"));
	image = gtk_image_new_from_stock (GTK_STOCK_JUSTIFY_LEFT, GTK_ICON_SIZE_MENU);
	gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image);
	gtk_menu_shell_append  (GTK_MENU_SHELL (menu), menu_item);
	g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK(_terminal_copy), my_data);

	menu_item = gtk_separator_menu_item_new ();
	gtk_menu_shell_append  (GTK_MENU_SHELL (menu), menu_item);

	menu_item = gtk_image_menu_item_new_with_label ("cd");
	image = gtk_image_new_from_stock (GTK_STOCK_JUMP_TO, GTK_ICON_SIZE_MENU);
	gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image);
	gtk_menu_shell_append  (GTK_MENU_SHELL (menu), menu_item);
	g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK(_terminal_cd), my_data);

	menu_item = gtk_image_menu_item_new_with_label ("cp");
	image = gtk_image_new_from_stock (GTK_STOCK_COPY, GTK_ICON_SIZE_MENU);
	gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image);
	gtk_menu_shell_append  (GTK_MENU_SHELL (menu), menu_item);
	g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK(_terminal_cp), my_data);

	menu_item = gtk_image_menu_item_new_with_label ("mv");
	image = gtk_image_new_from_stock (GTK_STOCK_GOTO_LAST, GTK_ICON_SIZE_MENU);
	gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image);
	gtk_menu_shell_append  (GTK_MENU_SHELL (menu), menu_item);
	g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK(_terminal_mv), my_data);

	menu_item = gtk_image_menu_item_new_with_label ("rm");
	image = gtk_image_new_from_stock (GTK_STOCK_DELETE, GTK_ICON_SIZE_MENU);
	gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image);
	gtk_menu_shell_append  (GTK_MENU_SHELL (menu), menu_item);
	g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK(_terminal_rm), my_data);

	return menu;
}