From 3a1ec44cf5aaac4de5a82c2c084b77e1c21cdaf7 Mon Sep 17 00:00:00 2001 From: Shaun McCance Date: Sun, 23 Feb 2014 13:48:45 -0500 Subject: Hooked up actions for new window and close window --- src/yelp-application.c | 39 +++++++++++---------------------------- src/yelp-window.c | 45 ++++++++++++++++++++++++++++++--------------- 2 files changed, 41 insertions(+), 43 deletions(-) (limited to 'src') diff --git a/src/yelp-application.c b/src/yelp-application.c index 7eb65c37..c9d6667d 100644 --- a/src/yelp-application.c +++ b/src/yelp-application.c @@ -141,34 +141,17 @@ yelp_application_init (YelpApplication *app) priv->docsettings = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, (GDestroyNotify) g_object_unref); - gtk_application_add_accelerator (GTK_APPLICATION (app), - "f", - "win.find", - NULL); - gtk_application_add_accelerator (GTK_APPLICATION (app), - "s", - "win.search", - NULL); - gtk_application_add_accelerator (GTK_APPLICATION (app), - "p", - "win.yelp-view-print", - NULL); - gtk_application_add_accelerator (GTK_APPLICATION (app), - "Left", - "win.yelp-view-go-back", - NULL); - gtk_application_add_accelerator (GTK_APPLICATION (app), - "Right", - "win.yelp-view-go-forward", - NULL); - gtk_application_add_accelerator (GTK_APPLICATION (app), - "Page_Up", - "win.yelp-view-go-previous", - NULL); - gtk_application_add_accelerator (GTK_APPLICATION (app), - "Page_Down", - "win.yelp-view-go-next", - NULL); + + gtk_application_add_accelerator (GTK_APPLICATION (app), "f", "win.yelp-window-find", NULL); + gtk_application_add_accelerator (GTK_APPLICATION (app), "s", "win.yelp-window-search", NULL); + gtk_application_add_accelerator (GTK_APPLICATION (app), "n", "win.yelp-window-new", NULL); + gtk_application_add_accelerator (GTK_APPLICATION (app), "w", "win.yelp-window-close", NULL); + + gtk_application_add_accelerator (GTK_APPLICATION (app), "p", "win.yelp-view-print", NULL); + gtk_application_add_accelerator (GTK_APPLICATION (app), "Left", "win.yelp-view-go-back", NULL); + gtk_application_add_accelerator (GTK_APPLICATION (app), "Right", "win.yelp-view-go-forward", NULL); + gtk_application_add_accelerator (GTK_APPLICATION (app), "Page_Up", "win.yelp-view-go-previous", NULL); + gtk_application_add_accelerator (GTK_APPLICATION (app), "Page_Down", "win.yelp-view-go-next", NULL); } static void diff --git a/src/yelp-window.c b/src/yelp-window.c index f05ae587..09274836 100644 --- a/src/yelp-window.c +++ b/src/yelp-window.c @@ -99,6 +99,9 @@ static void window_set_bookmark_buttons (YelpWindow *window); static void action_new_window (GSimpleAction *action, GVariant *parameter, gpointer userdata); +static void action_close_window (GSimpleAction *action, + GVariant *parameter, + gpointer userdata); static void action_print (GSimpleAction *action, GVariant *parameter, gpointer userdata); @@ -342,15 +345,15 @@ window_construct (YelpWindow *window) GtkAction *action; GtkWidget *box, *button, *sw; gchar *color, *text; - GMenu *menu; + GMenu *menu, *section; YelpWindowPrivate *priv = GET_PRIV (window); gboolean rtl; const GActionEntry entries[] = { - { "new-window", action_new_window, NULL, NULL, NULL }, - { "print", action_print, NULL, NULL, NULL }, - { "search", action_search, NULL, NULL, NULL }, - { "find", action_find, NULL, NULL, NULL }, + { "yelp-window-new", action_new_window, NULL, NULL, NULL }, + { "yelp-window-close", action_close_window, NULL, NULL, NULL }, + { "yelp-window-search", action_search, NULL, NULL, NULL }, + { "yelp-window-find", action_find, NULL, NULL, NULL }, }; rtl = gtk_widget_get_direction (GTK_WIDGET (window)) == GTK_TEXT_DIR_RTL; @@ -395,7 +398,7 @@ window_construct (YelpWindow *window) gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0); g_object_set (button, "action-name", "win.yelp-view-go-forward", NULL); - /** Menu **/ + /** Gear Menu **/ button = gtk_menu_button_new (); gtk_menu_button_set_use_popover (GTK_MENU_BUTTON (button), TRUE); gtk_widget_set_valign (button, GTK_ALIGN_CENTER); @@ -406,11 +409,22 @@ window_construct (YelpWindow *window) gtk_header_bar_pack_end (GTK_HEADER_BAR (priv->header), button); menu = g_menu_new (); - g_menu_append (menu, _("New Window"), "win.new-window"); - g_menu_append (menu, _("Find..."), "win.find"); - g_menu_append (menu, _("Print..."), "win.yelp-view-print"); - g_menu_append (menu, _("Previous Page"), "win.yelp-view-go-previous"); - g_menu_append (menu, _("Next Page"), "win.yelp-view-go-next"); + section = g_menu_new (); + g_menu_append (section, _("Find..."), "win.yelp-window-find"); + g_menu_append (section, _("Print..."), "win.yelp-view-print"); + g_menu_append_section (menu, NULL, section); + g_object_unref (section); + + section = g_menu_new (); + g_menu_append (section, _("New Window"), "win.yelp-window-new"); + g_menu_append_section (menu, NULL, section); + g_object_unref (section); + + section = g_menu_new (); + g_menu_append (section, _("Previous Page"), "win.yelp-view-go-previous"); + g_menu_append (section, _("Next Page"), "win.yelp-view-go-next"); + g_menu_append_section (menu, NULL, section); + g_object_unref (section); /* all documents */ /* larger/smaller text */ /* show text cursor */ @@ -623,11 +637,12 @@ action_new_window (GSimpleAction *action, } static void -action_print (GSimpleAction *action, - GVariant *parameter, - gpointer userdata) +action_close_window (GSimpleAction *action, + GVariant *parameter, + gpointer userdata) { - /* FIXME */ + g_signal_emit_by_name (userdata, "delete-event", NULL, NULL); + gtk_widget_destroy (GTK_WIDGET (userdata)); } static void -- cgit v1.2.1