Skip to content
Snippets Groups Projects
Commit 552de6c7 authored by Enrico Tröger's avatar Enrico Tröger
Browse files

Add file menu to make preferences dialog accessable when run as stand-alone application.

(Old svn revision: 4488)
parent baec966c
No related branches found
No related tags found
No related merge requests found
......@@ -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>
......
......@@ -61,6 +61,8 @@ typedef struct
GtkWidget *window;
GtkWidget *statusbar;
GtkWidget *close_button;
GtkWidget *close_menu_item;
GtkWidget *pref_menu_item;
GtkWidget *main_entry;
GtkWidget *panel_entry;
GtkWidget *main_textview;
......
......@@ -130,6 +130,43 @@ const guint8 *dict_get_icon_data(void)
}
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 @@ void dict_create_main_window(DictData *dd)
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 @@ void dict_create_main_window(DictData *dd)
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 @@ void dict_about_dialog(GtkWidget *widget, DictData *dd)
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));
......
......@@ -358,6 +358,10 @@ static void dict_plugin_construct(XfcePanelPlugin *plugin)
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);
......
......@@ -55,6 +55,15 @@ static void close_button_clicked(GtkWidget *button, DictData *dd)
}
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 @@ gint main(gint argc, gchar *argv[])
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."));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment