[Xfce4-commits] [apps/xfce4-dict] 21/43: Rework menus preserving icons

noreply at xfce.org noreply at xfce.org
Tue Nov 1 00:31:34 CET 2016


This is an automated email from the git hooks/post-receive script.

andre pushed a commit to branch master
in repository apps/xfce4-dict.

commit 5433451c0f60ccb120b1a7bc65d3aa1af27d88b1
Author: Andre Miranda <andre42m at gmail.com>
Date:   Wed Jul 20 23:15:41 2016 -0300

    Rework menus preserving icons
---
 lib/gui.c | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 84 insertions(+), 19 deletions(-)

diff --git a/lib/gui.c b/lib/gui.c
index afb125a..ca9048e 100644
--- a/lib/gui.c
+++ b/lib/gui.c
@@ -356,20 +356,36 @@ static gboolean textview_is_hyperlink_at_cursor(DictData *dd)
 
 static void textview_populate_popup_cb(GtkTextView *textview, GtkMenu *menu, DictData *dd)
 {
-	GtkWidget *search = gtk_image_menu_item_new_from_stock(GTK_STOCK_FIND, NULL);
-	GtkWidget *copy_link = gtk_image_menu_item_new_with_label(_("Copy Link"));
+	GtkWidget *box, *icon, *label;
+
+	GtkWidget *search = gtk_menu_item_new ();
+	GtkWidget *copy_link = gtk_menu_item_new ();
 	GtkWidget *sep = gtk_separator_menu_item_new();
-	GtkWidget *copy_link_image = gtk_image_new_from_stock(GTK_STOCK_COPY, GTK_ICON_SIZE_MENU);
 
 	gtk_widget_show(sep);
 	gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), sep);
 
-	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(copy_link), copy_link_image);
-	gtk_widget_show(copy_link);
+	box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
+	icon = gtk_image_new_from_icon_name ("gtk-copy", GTK_ICON_SIZE_MENU);
+	label = gtk_label_new (_("Copy Link"));
+
+	gtk_container_add (GTK_CONTAINER (box), icon);
+	gtk_container_add (GTK_CONTAINER (box), label);
+	gtk_container_add (GTK_CONTAINER (copy_link), box);
+
+	gtk_widget_show_all(copy_link);
 	gtk_widget_set_sensitive(GTK_WIDGET(copy_link), textview_is_hyperlink_at_cursor(dd));
 	gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), copy_link);
 
-	gtk_widget_show(search);
+	box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
+	icon = gtk_image_new_from_icon_name ("gtk-find", GTK_ICON_SIZE_MENU);
+	label = gtk_label_new (_("Search"));
+
+	gtk_container_add (GTK_CONTAINER (box), icon);
+	gtk_container_add (GTK_CONTAINER (box), label);
+	gtk_container_add (GTK_CONTAINER (search), box);
+	
+	gtk_widget_show_all(search);
 	gtk_widget_set_sensitive(GTK_WIDGET(search), textview_is_text_at_cursor(dd));
 	gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), search);
 
@@ -683,46 +699,95 @@ static void speedreader_clicked_cb(GtkButton *button, DictData *dd)
 
 static GtkWidget *create_file_menu(DictData *dd)
 {
+	GtkWidget *box, *icon, *label;
 	GtkWidget *menubar, *file, *file_menu, *help, *help_menu, *menu_item;
-	GtkAccelGroup *accel_group;
 
-	accel_group = gtk_accel_group_new();
+	GtkAccelGroup *accel_group = gtk_accel_group_new();
 	gtk_window_add_accel_group(GTK_WINDOW(dd->window), accel_group);
 
 	menubar = gtk_menu_bar_new();
 
+	/* File Menu */
 	file = gtk_menu_item_new_with_mnemonic(_("_File"));
 
 	file_menu = gtk_menu_new();
 	gtk_menu_item_set_submenu(GTK_MENU_ITEM(file), file_menu);
 
-	menu_item = gtk_image_menu_item_new_with_mnemonic(_("Speed _Reader"));
-	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),
-		gtk_image_new_from_stock(GTK_STOCK_JUSTIFY_CENTER, GTK_ICON_SIZE_MENU));
-	gtk_widget_add_accelerator(menu_item, "activate", accel_group,
-			GDK_r, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
+	/* Speed Reader */
+	menu_item = gtk_menu_item_new();
+	box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
+	icon = gtk_image_new_from_icon_name ("gtk-justify-center", GTK_ICON_SIZE_MENU);
+	label = gtk_accel_label_new (_("Speed _Reader"));
+
+	gtk_label_set_use_underline (GTK_LABEL (label), TRUE);
+	gtk_label_set_xalign (GTK_LABEL (label), 0.0);
+	gtk_widget_add_accelerator (menu_item, "activate", accel_group,
+                                GDK_KEY_r, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
+	gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (label), menu_item);
+
+	gtk_box_pack_start (GTK_BOX (box), icon, FALSE, FALSE , 0);
+	gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0);
+	gtk_container_add (GTK_CONTAINER (menu_item), box);
+
 	g_signal_connect(menu_item, "activate", G_CALLBACK(speedreader_clicked_cb), dd);
 	gtk_container_add(GTK_CONTAINER(file_menu), menu_item);
 
+	/* Separator */
 	gtk_container_add(GTK_CONTAINER(file_menu), gtk_separator_menu_item_new());
 
-	dd->pref_menu_item = gtk_image_menu_item_new_from_stock("gtk-preferences", accel_group);
-	gtk_widget_add_accelerator(dd->pref_menu_item, "activate", accel_group,
-			GDK_p, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
+	/* Preferences */
+	dd->pref_menu_item = gtk_menu_item_new();
+	box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
+	icon = gtk_image_new_from_icon_name ("gtk-preferences", GTK_ICON_SIZE_MENU);
+	label = gtk_accel_label_new (_("_Preferences"));
+
+	gtk_label_set_use_underline (GTK_LABEL (label), TRUE);
+	gtk_label_set_xalign (GTK_LABEL (label), 0.0);
+	gtk_widget_add_accelerator (dd->pref_menu_item, "activate", accel_group,
+                                GDK_KEY_p, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
+	gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (label), dd->pref_menu_item);
+
+	gtk_box_pack_start (GTK_BOX (box), icon, FALSE, FALSE, 0);
+	gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0);
+	gtk_container_add (GTK_CONTAINER (dd->pref_menu_item), box);
 	gtk_container_add(GTK_CONTAINER(file_menu), dd->pref_menu_item);
 
+	/* Separator */
 	gtk_container_add(GTK_CONTAINER(file_menu), gtk_separator_menu_item_new());
 
-	dd->close_menu_item = gtk_image_menu_item_new_from_stock(
-			(dd->is_plugin) ? "gtk-close" : "gtk-quit", accel_group);
+	/* Close */
+	dd->close_menu_item = gtk_menu_item_new();
+	box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
+	icon = gtk_image_new_from_icon_name ((dd->is_plugin) ? "gtk-close" : "gtk-quit", GTK_ICON_SIZE_MENU);
+	label = gtk_accel_label_new (_("_Quit"));
+
+	gtk_label_set_use_underline (GTK_LABEL (label), TRUE);
+	gtk_label_set_xalign (GTK_LABEL (label), 0.0);
+	gtk_widget_add_accelerator (dd->close_menu_item, "activate", accel_group,
+                                GDK_KEY_q, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
+	gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (label), dd->close_menu_item);
+
+	gtk_box_pack_start (GTK_BOX (box), icon, FALSE, FALSE, 0);
+	gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0);
+	gtk_container_add (GTK_CONTAINER (dd->close_menu_item), box);
 	gtk_container_add(GTK_CONTAINER(file_menu), dd->close_menu_item);
 
+	/* Help Menu*/
 	help = gtk_menu_item_new_with_mnemonic(_("_Help"));
 
 	help_menu = gtk_menu_new();
 	gtk_menu_item_set_submenu(GTK_MENU_ITEM(help), help_menu);
 
-	menu_item = gtk_image_menu_item_new_from_stock("gtk-about", accel_group);
+	/* About */
+	menu_item = gtk_menu_item_new();
+	box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
+	icon = gtk_image_new_from_icon_name ("gtk-about", GTK_ICON_SIZE_MENU);
+	label = gtk_label_new (_("About"));
+
+	gtk_box_pack_start (GTK_BOX (box), icon, FALSE, FALSE, 0);
+	gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0);
+	gtk_container_add (GTK_CONTAINER (menu_item), box);
+
 	gtk_container_add(GTK_CONTAINER(help_menu), menu_item);
 	g_signal_connect(menu_item, "activate", G_CALLBACK(dict_gui_about_dialog), dd);
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list