From 8e63320a1c347ade814e27a256176538cde3aadd Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Thu, 16 May 2019 12:06:37 -0700 Subject: [PATCH] sysprof: wire up window menu --- src/sysprof/gtk/menus.ui | 35 +++++++++++++++++++++++++++++++ src/sysprof/sysprof-window.c | 18 +++++++++++++++- src/sysprof/sysprof.gresource.xml | 1 + src/sysprof/ui/sysprof-window.ui | 14 +++++++++++++ 4 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 src/sysprof/gtk/menus.ui diff --git a/src/sysprof/gtk/menus.ui b/src/sysprof/gtk/menus.ui new file mode 100644 index 00000000..30b2e5b5 --- /dev/null +++ b/src/sysprof/gtk/menus.ui @@ -0,0 +1,35 @@ + + + +
+ + New Tab + win.new-tab + + + New Window + app.new-window + +
+
+ + Open Capture… + app.open-capture + +
+
+ + Keyboard Shortcuts + app.show-help-overlay + + + Help + app.help + + + Quit + app.quit + +
+
+
diff --git a/src/sysprof/sysprof-window.c b/src/sysprof/sysprof-window.c index d47eff9b..7885434a 100644 --- a/src/sysprof/sysprof-window.c +++ b/src/sysprof/sysprof-window.c @@ -31,6 +31,7 @@ struct _SysprofWindow { GtkApplicationWindow parent_instance; SysprofNotebook *notebook; + GtkMenuButton *menu_button; }; G_DEFINE_TYPE (SysprofWindow, sysprof_window, GTK_TYPE_APPLICATION_WINDOW) @@ -104,6 +105,19 @@ close_tab_cb (GSimpleAction *action, sysprof_notebook_close_current (self->notebook); } +static void +sysprof_window_constructed (GObject *object) +{ + SysprofWindow *self = (SysprofWindow *)object; + GApplication *app = g_application_get_default (); + GMenu *menu; + + G_OBJECT_CLASS (sysprof_window_parent_class)->constructed (object); + + menu = gtk_application_get_menu_by_id (GTK_APPLICATION (app), "win-menu"); + gtk_menu_button_set_menu_model (self->menu_button, G_MENU_MODEL (menu)); +} + static void sysprof_window_finalize (GObject *object) { @@ -116,10 +130,12 @@ sysprof_window_class_init (SysprofWindowClass *klass) GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + object_class->constructed = sysprof_window_constructed; object_class->finalize = sysprof_window_finalize; gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/sysprof/ui/sysprof-window.ui"); - gtk_widget_class_bind_template_child (widget_class, SysprofWindow , notebook); + gtk_widget_class_bind_template_child (widget_class, SysprofWindow, menu_button); + gtk_widget_class_bind_template_child (widget_class, SysprofWindow, notebook); g_type_ensure (SYSPROF_TYPE_PROFILER_MENU_BUTTON); g_type_ensure (SYSPROF_TYPE_NOTEBOOK); diff --git a/src/sysprof/sysprof.gresource.xml b/src/sysprof/sysprof.gresource.xml index 331f4d54..cdab05c7 100644 --- a/src/sysprof/sysprof.gresource.xml +++ b/src/sysprof/sysprof.gresource.xml @@ -3,6 +3,7 @@ gtk/help-overlay.ui + gtk/menus.ui theme/shared.css diff --git a/src/sysprof/ui/sysprof-window.ui b/src/sysprof/ui/sysprof-window.ui index a5e85dbc..109f877f 100644 --- a/src/sysprof/ui/sysprof-window.ui +++ b/src/sysprof/ui/sysprof-window.ui @@ -10,6 +10,20 @@ true true Sysprof + + + true + + + open-menu-symbolic + true + + + + + end + + vertical