From d2430c70bd2166f086214880043258cf19bb3e8f Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 10 May 2020 21:26:19 -0400 Subject: Refresh the tutorial examples Redo this series of examples from 2013, and adapt it to modern way of doing things. The biggest differences are that we use a headerbar right from the start, and don't mention the app menu. Fixes: #2730 --- examples/application6/app-menu.ui | 16 ---------------- examples/application6/exampleapp.c | 7 ------- examples/application6/exampleapp.gresource.xml | 2 +- examples/application6/exampleappwin.c | 11 +++++++++++ examples/application6/gears-menu.ui | 17 +++++++++++++++++ examples/application6/prefs.ui | 14 +++++++------- examples/application6/window.ui | 25 ++++++++++++++++--------- 7 files changed, 52 insertions(+), 40 deletions(-) delete mode 100644 examples/application6/app-menu.ui create mode 100644 examples/application6/gears-menu.ui (limited to 'examples/application6') diff --git a/examples/application6/app-menu.ui b/examples/application6/app-menu.ui deleted file mode 100644 index 13bf8fd342..0000000000 --- a/examples/application6/app-menu.ui +++ /dev/null @@ -1,16 +0,0 @@ - - -
- - _Preferences - app.preferences - -
-
- - _Quit - app.quit - -
-
-
diff --git a/examples/application6/exampleapp.c b/examples/application6/exampleapp.c index 64a3ceb100..8ac0ebd529 100644 --- a/examples/application6/exampleapp.c +++ b/examples/application6/exampleapp.c @@ -46,8 +46,6 @@ static GActionEntry app_entries[] = static void example_app_startup (GApplication *app) { - GtkBuilder *builder; - GMenuModel *app_menu; const gchar *quit_accels[2] = { "Q", NULL }; G_APPLICATION_CLASS (example_app_parent_class)->startup (app); @@ -58,11 +56,6 @@ example_app_startup (GApplication *app) gtk_application_set_accels_for_action (GTK_APPLICATION (app), "app.quit", quit_accels); - - builder = gtk_builder_new_from_resource ("/org/gtk/exampleapp/app-menu.ui"); - app_menu = G_MENU_MODEL (gtk_builder_get_object (builder, "appmenu")); - gtk_application_set_app_menu (GTK_APPLICATION (app), app_menu); - g_object_unref (builder); } static void diff --git a/examples/application6/exampleapp.gresource.xml b/examples/application6/exampleapp.gresource.xml index 797688586b..c40f6419b7 100644 --- a/examples/application6/exampleapp.gresource.xml +++ b/examples/application6/exampleapp.gresource.xml @@ -2,7 +2,7 @@ window.ui - app-menu.ui + gears-menu.ui prefs.ui diff --git a/examples/application6/exampleappwin.c b/examples/application6/exampleappwin.c index 16d11f4c70..7f332181ea 100644 --- a/examples/application6/exampleappwin.c +++ b/examples/application6/exampleappwin.c @@ -9,6 +9,7 @@ struct _ExampleAppWindow GSettings *settings; GtkWidget *stack; + GtkWidget *gears; }; G_DEFINE_TYPE (ExampleAppWindow, example_app_window, GTK_TYPE_APPLICATION_WINDOW) @@ -16,7 +17,16 @@ G_DEFINE_TYPE (ExampleAppWindow, example_app_window, GTK_TYPE_APPLICATION_WINDOW static void example_app_window_init (ExampleAppWindow *win) { + GtkBuilder *builder; + GMenuModel *menu; + gtk_widget_init_template (GTK_WIDGET (win)); + + builder = gtk_builder_new_from_resource ("/org/gtk/exampleapp/gears-menu.ui"); + menu = G_MENU_MODEL (gtk_builder_get_object (builder, "menu")); + gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (win->gears), menu); + g_object_unref (builder); + win->settings = g_settings_new ("org.gtk.exampleapp"); g_settings_bind (win->settings, "transition", @@ -44,6 +54,7 @@ example_app_window_class_init (ExampleAppWindowClass *class) gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (class), "/org/gtk/exampleapp/window.ui"); gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), ExampleAppWindow, stack); + gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), ExampleAppWindow, gears); } ExampleAppWindow * diff --git a/examples/application6/gears-menu.ui b/examples/application6/gears-menu.ui new file mode 100644 index 0000000000..30e292ef9a --- /dev/null +++ b/examples/application6/gears-menu.ui @@ -0,0 +1,17 @@ + + + +
+ + _Preferences + app.preferences + +
+
+ + _Quit + app.quit + +
+
+
diff --git a/examples/application6/prefs.ui b/examples/application6/prefs.ui index 9551758c8f..c4cfcb621a 100644 --- a/examples/application6/prefs.ui +++ b/examples/application6/prefs.ui @@ -4,16 +4,16 @@ Preferences 0 1 - - + + - 6 - 6 - 6 - 6 + 12 + 12 + 12 + 12 12 - 6 + 12 _Font: diff --git a/examples/application6/window.ui b/examples/application6/window.ui index 595df79ef0..eee9127573 100644 --- a/examples/application6/window.ui +++ b/examples/application6/window.ui @@ -1,20 +1,27 @@ +