From 50bfd8db727555628022ed0a78d5335cf0ec265b Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Wed, 28 Sep 2016 17:51:48 -0700 Subject: [PATCH] zoom: add plumbing for zoom to SpWindow This uses the new ZoomManager to wire up zoom controls for the main window. We had to switch away from GMenu to give ourselves the control we will need for the zoom label of 100% which still needs to be wired up. --- src/resources/gtk/menus.ui | 26 ---------- src/resources/ui/sp-window.ui | 92 +++++++++++++++++++++++++++++++++++ src/sp-window.c | 19 +------- 3 files changed, 94 insertions(+), 43 deletions(-) diff --git a/src/resources/gtk/menus.ui b/src/resources/gtk/menus.ui index bc31b0af..095f4d3b 100644 --- a/src/resources/gtk/menus.ui +++ b/src/resources/gtk/menus.ui @@ -28,30 +28,4 @@ - -
- - Open - win.open-capture - -
-
- - Save As - win.save-capture - -
-
- - Screenshot - win.screenshot - -
-
- - Close - win.close-capture - -
-
diff --git a/src/resources/ui/sp-window.ui b/src/resources/ui/sp-window.ui index 4d84b3f8..f95a93a8 100644 --- a/src/resources/ui/sp-window.ui +++ b/src/resources/ui/sp-window.ui @@ -72,6 +72,7 @@ + gear_popover true + + + zoom.zoom-out + true + true + + + + zoom-out-symbolic + true + + + + + + + zoom.zoom-one + 100% + true + + + + + zoom.zoom-in + true + true + + + + zoom-in-symbolic + true + + + + + + + + + win.open-capture + Open + true + + + + + win.save-capture + Save As + true + + + + + 12 + win.screenshot + Screenshot + true + + + + + 12 + win.close-capture + Close + true + + + + + diff --git a/src/sp-window.c b/src/sp-window.c index b8a7d962..f1840a19 100644 --- a/src/sp-window.c +++ b/src/sp-window.c @@ -51,6 +51,7 @@ struct _SpWindow GtkLabel *title; GtkStack *view_stack; SpVisualizerView *visualizers; + SpZoomManager *zoom_manager; guint stats_handler; @@ -796,9 +797,6 @@ sp_window_init (SpWindow *self) { "save-capture", sp_window_save_capture }, { "screenshot", sp_window_screenshot }, }; - GtkApplication *app; - GtkPopover *popover; - GMenu *menu; gtk_widget_init_template (GTK_WIDGET (self)); @@ -843,20 +841,7 @@ sp_window_init (SpWindow *self) action_entries, G_N_ELEMENTS (action_entries), self); - - /* - * Setup our gear (hamburger) menu. - */ - app = GTK_APPLICATION (g_application_get_default ()); - menu = gtk_application_get_menu_by_id (app, "gear-menu"); - gtk_menu_button_set_menu_model (self->gear_menu_button, G_MENU_MODEL (menu)); - - /* - * Set the min-width on the popover for the gear menu, which is rather - * small by default (since our wording is short). - */ - popover = gtk_menu_button_get_popover (self->gear_menu_button); - gtk_widget_set_size_request (GTK_WIDGET (popover), 200, -1); + gtk_widget_insert_action_group (GTK_WIDGET (self), "zoom", G_ACTION_GROUP (self->zoom_manager)); /* * Restore previous window settings.