From f6afa3d03fc5889fc7cd36ba99c993f1e64888ba Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 16 Apr 2019 20:34:59 -0400 Subject: [PATCH] gtk-demo: Add a gear menu Modernize the about dialog, and make it available from a gear menu, together with a way to bring up the inspector. --- demos/gtk-demo/main.c | 42 ++++++++++++++++++++++++++++++++++++------ demos/gtk-demo/main.ui | 19 +++++++++++++++++++ 2 files changed, 55 insertions(+), 6 deletions(-) diff --git a/demos/gtk-demo/main.c b/demos/gtk-demo/main.c index dd9754d4bc..f37ca001bb 100644 --- a/demos/gtk-demo/main.c +++ b/demos/gtk-demo/main.c @@ -45,22 +45,43 @@ activate_about (GSimpleAction *action, "The GTK Team", NULL }; + char *version; + GString *s; + + s = g_string_new (""); + + g_string_append (s, "System libraries\n"); + g_string_append_printf (s, "\tGLib\t%d.%d.%d\n", + glib_major_version, + glib_minor_version, + glib_micro_version); + g_string_append_printf (s, "\tGTK\t%d.%d.%d\n", + gtk_get_major_version (), + gtk_get_minor_version (), + gtk_get_micro_version ()); + g_string_append_printf (s, "\nA link can apppear here: "); + + version = g_strdup_printf ("%s\nRunning against GTK %d.%d.%d", + PACKAGE_VERSION, + gtk_get_major_version (), + gtk_get_minor_version (), + gtk_get_micro_version ()); gtk_show_about_dialog (GTK_WINDOW (gtk_application_get_active_window (app)), "program-name", "GTK Demo", - "version", g_strdup_printf ("%s,\nRunning against GTK %d.%d.%d", - PACKAGE_VERSION, - gtk_get_major_version (), - gtk_get_minor_version (), - gtk_get_micro_version ()), - "copyright", "(C) 1997-2013 The GTK Team", + "version", version, + "copyright", "© 1997—2019 The GTK Team", "license-type", GTK_LICENSE_LGPL_2_1, "website", "http://www.gtk.org", "comments", "Program to demonstrate GTK widgets", "authors", authors, "logo-icon-name", "org.gtk.Demo4", "title", "About GTK Demo", + "system-information", s->str, NULL); + + g_string_free (s, TRUE); + g_free (version); } static void @@ -84,6 +105,14 @@ activate_quit (GSimpleAction *action, } } +static void +activate_inspector (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + gtk_window_set_interactive_debugging (TRUE); +} + static void window_closed_cb (GtkWidget *window, gpointer data) { @@ -1200,6 +1229,7 @@ main (int argc, char **argv) static GActionEntry app_entries[] = { { "about", activate_about, NULL, NULL, NULL }, { "quit", activate_quit, NULL, NULL, NULL }, + { "inspector", activate_inspector, NULL, NULL, NULL }, }; /* Most code in gtk-demo is intended to be exemplary, but not diff --git a/demos/gtk-demo/main.ui b/demos/gtk-demo/main.ui index 59310762a9..bf70a37be6 100644 --- a/demos/gtk-demo/main.ui +++ b/demos/gtk-demo/main.ui @@ -1,5 +1,17 @@ + +
+ + _Inspector + app.inspector + + + _About GTK Demo + app.about + +
+
@@ -35,6 +47,13 @@ + + + center + gear_menu + open-menu-symbolic + +