diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-04-26 22:14:10 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-04-26 22:14:10 -0400 |
commit | 1ae898bf0b18748efe49cb53a975fea3bba405b2 (patch) | |
tree | beb6651e7f7cd2a1409b1d5f34109eb350f41bae /demos | |
parent | 91c7b24815f9a3eee6856f44c2565da0c5cdf278 (diff) | |
download | gtk+-1ae898bf0b18748efe49cb53a975fea3bba405b2.tar.gz |
gtk-demo: Add a shortcuts window
Its not very impressive here, but still good to have.
Diffstat (limited to 'demos')
-rw-r--r-- | demos/gtk-demo/demo.gresource.xml | 3 | ||||
-rw-r--r-- | demos/gtk-demo/help-overlay.ui | 25 | ||||
-rw-r--r-- | demos/gtk-demo/main.c | 11 | ||||
-rw-r--r-- | demos/gtk-demo/main.ui | 4 |
4 files changed, 43 insertions, 0 deletions
diff --git a/demos/gtk-demo/demo.gresource.xml b/demos/gtk-demo/demo.gresource.xml index 850750e5ef..19a2f8a168 100644 --- a/demos/gtk-demo/demo.gresource.xml +++ b/demos/gtk-demo/demo.gresource.xml @@ -309,4 +309,7 @@ <file>icons/16x16/status/battery-caution-charging-symbolic.symbolic.png</file> <file>icons/16x16/categories/applications-other.png</file> </gresource> + <gresource prefix="/org/gtk/Demo4/gtk"> + <file preprocess="xml-stripblanks">help-overlay.ui</file> + </gresource> </gresources> diff --git a/demos/gtk-demo/help-overlay.ui b/demos/gtk-demo/help-overlay.ui new file mode 100644 index 0000000000..ae172ee7a6 --- /dev/null +++ b/demos/gtk-demo/help-overlay.ui @@ -0,0 +1,25 @@ +<interface> + <object class="GtkShortcutsWindow" id="help_overlay"> + <child> + <object class="GtkShortcutsSection"> + <child> + <object class="GtkShortcutsGroup"> + <property name="title">General</property> + <child> + <object class="GtkShortcutsShortcut"> + <property name="accelerator">F1</property> + <property name="title">Show About Dialog</property> + </object> + </child> + <child> + <object class="GtkShortcutsShortcut"> + <property name="accelerator"><Control>q</property> + <property name="title">Quit</property> + </object> + </child> + </object> + </child> + </object> + </child> + </object> +</interface> diff --git a/demos/gtk-demo/main.c b/demos/gtk-demo/main.c index 53f2f04d9b..a31036d916 100644 --- a/demos/gtk-demo/main.c +++ b/demos/gtk-demo/main.c @@ -1186,6 +1186,14 @@ main (int argc, char **argv) { "quit", activate_quit, NULL, NULL, NULL }, { "inspector", activate_inspector, NULL, NULL, NULL }, }; + struct { + const gchar *action_and_target; + const gchar *accelerators[2]; + } accels[] = { + { "app.about", { "F1", NULL } }, + { "app.quit", { "<Control>q", NULL } }, + }; + int i; /* Most code in gtk-demo is intended to be exemplary, but not * these few lines, which are just a hack so gtk-demo will work @@ -1203,6 +1211,9 @@ main (int argc, char **argv) app_entries, G_N_ELEMENTS (app_entries), app); + for (i = 0; i < G_N_ELEMENTS (accels); i++) + gtk_application_set_accels_for_action (app, accels[i].action_and_target, accels[i].accelerators); + g_application_add_main_option (G_APPLICATION (app), "version", 0, 0, G_OPTION_ARG_NONE, "Show program version", NULL); g_application_add_main_option (G_APPLICATION (app), "run", 0, 0, G_OPTION_ARG_STRING, "Run an example", "EXAMPLE"); g_application_add_main_option (G_APPLICATION (app), "list", 0, 0, G_OPTION_ARG_NONE, "List examples", NULL); diff --git a/demos/gtk-demo/main.ui b/demos/gtk-demo/main.ui index d4cc88a96f..5256095fc6 100644 --- a/demos/gtk-demo/main.ui +++ b/demos/gtk-demo/main.ui @@ -7,6 +7,10 @@ <attribute name="action">app.inspector</attribute> </item> <item> + <attribute name="label" translatable="yes">_Keyboard Shortcuts</attribute> + <attribute name="action">win.show-help-overlay</attribute> + </item> + <item> <attribute name="label" translatable="yes">_About GTK Demo</attribute> <attribute name="action">app.about</attribute> </item> |