[Goodies-commits] r4488 - in xfce4-dict/trunk: . lib panel-plugin src

Enrico Troeger enrico at xfce.org
Sun Mar 30 17:51:03 CEST 2008


Author: enrico
Date: 2008-03-30 15:51:03 +0000 (Sun, 30 Mar 2008)
New Revision: 4488

Modified:
   xfce4-dict/trunk/ChangeLog
   xfce4-dict/trunk/lib/common.h
   xfce4-dict/trunk/lib/gui.c
   xfce4-dict/trunk/panel-plugin/xfce4-dict-plugin.c
   xfce4-dict/trunk/src/xfce4-dict.c
Log:
Add file menu to make preferences dialog accessable when run as stand-alone application.


Modified: xfce4-dict/trunk/ChangeLog
===================================================================
--- xfce4-dict/trunk/ChangeLog	2008-03-14 19:12:01 UTC (rev 4487)
+++ xfce4-dict/trunk/ChangeLog	2008-03-30 15:51:03 UTC (rev 4488)
@@ -4,6 +4,8 @@
 	* Redesign preferences dialog: use a GtkNotebook and use a XfceDialog.
 	* Update POTFILES.in.
 	* Remove debug messages.
+	* Add file menu to make preferences dialog accessable when run as
+	  stand-alone application.
 
 
 2008-03-27  Enrico Tröger  <enrico(dot)troeger(at)uvena(dot)de>

Modified: xfce4-dict/trunk/lib/common.h
===================================================================
--- xfce4-dict/trunk/lib/common.h	2008-03-14 19:12:01 UTC (rev 4487)
+++ xfce4-dict/trunk/lib/common.h	2008-03-30 15:51:03 UTC (rev 4488)
@@ -61,6 +61,8 @@
 	GtkWidget *window;
 	GtkWidget *statusbar;
 	GtkWidget *close_button;
+	GtkWidget *close_menu_item;
+	GtkWidget *pref_menu_item;
 	GtkWidget *main_entry;
 	GtkWidget *panel_entry;
 	GtkWidget *main_textview;

Modified: xfce4-dict/trunk/lib/gui.c
===================================================================
--- xfce4-dict/trunk/lib/gui.c	2008-03-14 19:12:01 UTC (rev 4487)
+++ xfce4-dict/trunk/lib/gui.c	2008-03-30 15:51:03 UTC (rev 4488)
@@ -130,6 +130,43 @@
 }
 
 
+static GtkWidget *create_file_menu(DictData *dd)
+{
+	GtkWidget *menubar, *file, *file_menu, *help, *help_menu, *menu_item;
+
+	menubar = gtk_menu_bar_new();
+
+	file = gtk_menu_item_new_with_mnemonic(_("_File"));
+
+	file_menu = gtk_menu_new();
+	gtk_menu_item_set_submenu(GTK_MENU_ITEM(file), file_menu);
+
+	dd->pref_menu_item = gtk_image_menu_item_new_from_stock("gtk-preferences", NULL);
+	gtk_container_add(GTK_CONTAINER(file_menu), dd->pref_menu_item);
+
+	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", NULL);
+	gtk_container_add(GTK_CONTAINER(file_menu), dd->close_menu_item);
+
+	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", NULL);
+	gtk_container_add(GTK_CONTAINER(help_menu), menu_item);
+	g_signal_connect(menu_item, "activate", G_CALLBACK(dict_about_dialog), dd);
+
+	gtk_container_add(GTK_CONTAINER(menubar), file);
+	gtk_container_add(GTK_CONTAINER(menubar), help);
+
+	gtk_widget_show_all(menubar);
+
+	return menubar;
+}
+
+
 void dict_create_main_window(DictData *dd)
 {
 	GtkWidget *main_box;
@@ -150,6 +187,8 @@
 	gtk_widget_show(main_box);
 	gtk_container_add(GTK_CONTAINER(dd->window), main_box);
 
+	gtk_box_pack_start(GTK_BOX(main_box), create_file_menu(dd), FALSE, TRUE, 0);
+
 	/* entry box (label, entry, buttons) */
 	entry_box = gtk_hbox_new(FALSE, 10);
 	gtk_widget_show(entry_box);
@@ -192,7 +231,7 @@
 	gtk_container_add(GTK_CONTAINER(align), gtk_label_new(""));
 	gtk_box_pack_start(GTK_BOX(entry_box), align, FALSE, FALSE, 0);
 
-	dd->close_button = gtk_button_new_from_stock("gtk-close");
+	dd->close_button = gtk_button_new_from_stock((dd->is_plugin) ? "gtk-close" : "gtk-quit");
 	gtk_widget_show(dd->close_button);
 	gtk_box_pack_end(GTK_BOX(entry_box), dd->close_button, FALSE, FALSE, 2);
 
@@ -271,7 +310,8 @@
 	xfce_about_info_add_credit(info, "Enrico Tröger", "enrico(dot)troeger(at)uvena(dot)de", _("Developer"));
 	xfce_about_info_set_homepage(info, "http://goodies.xfce.org");
 
-	dialog = xfce_about_dialog_new_with_values(GTK_WINDOW(widget), info, dd->icon);
+	dialog = xfce_about_dialog_new_with_values(
+		GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(widget))), info, dd->icon);
 	g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(gtk_widget_destroy), NULL);
 	gtk_window_set_title(GTK_WINDOW(dialog), "Xfce Dictionary");
 	gtk_dialog_run(GTK_DIALOG(dialog));

Modified: xfce4-dict/trunk/panel-plugin/xfce4-dict-plugin.c
===================================================================
--- xfce4-dict/trunk/panel-plugin/xfce4-dict-plugin.c	2008-03-14 19:12:01 UTC (rev 4487)
+++ xfce4-dict/trunk/panel-plugin/xfce4-dict-plugin.c	2008-03-30 15:51:03 UTC (rev 4488)
@@ -358,6 +358,10 @@
 	xfce_panel_plugin_menu_show_configure(plugin);
 	xfce_panel_plugin_menu_show_about(plugin);
 
+	/* file menu */
+	g_signal_connect(dpd->dd->close_menu_item, "activate", G_CALLBACK(dict_plugin_close_button_clicked), dpd);
+	g_signal_connect(dpd->dd->pref_menu_item, "activate", G_CALLBACK(dict_plugin_properties_dialog), dpd);
+
 	/* panel entry */
 	dpd->dd->panel_entry = gtk_entry_new();
 	gtk_entry_set_width_chars(GTK_ENTRY(dpd->dd->panel_entry), 15);

Modified: xfce4-dict/trunk/src/xfce4-dict.c
===================================================================
--- xfce4-dict/trunk/src/xfce4-dict.c	2008-03-14 19:12:01 UTC (rev 4487)
+++ xfce4-dict/trunk/src/xfce4-dict.c	2008-03-30 15:51:03 UTC (rev 4488)
@@ -55,6 +55,15 @@
 }
 
 
+void pref_dialog_activated(GtkMenuItem *menuitem, DictData *dd)
+{
+	GtkWidget *dlg;
+
+	dlg = dict_prefs_dialog_show(gtk_widget_get_toplevel(GTK_WIDGET(menuitem)), dd);
+	gtk_widget_show(dlg);
+}
+
+
 gint main(gint argc, gchar *argv[])
 {
 	DictData *dd;
@@ -83,6 +92,9 @@
 
 	g_signal_connect(dd->window, "delete-event", G_CALLBACK(main_quit), dd);
 	g_signal_connect(dd->close_button, "clicked", G_CALLBACK(close_button_clicked), dd);
+	/* file menu */
+	g_signal_connect(dd->close_menu_item, "activate", G_CALLBACK(close_button_clicked), dd);
+	g_signal_connect(dd->pref_menu_item, "activate", G_CALLBACK(pref_dialog_activated), dd);
 
 	dict_status_add(dd, _("Ready."));
 




More information about the Goodies-commits mailing list