summaryrefslogtreecommitdiff
path: root/demos
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-04-26 22:14:10 -0400
committerMatthias Clasen <mclasen@redhat.com>2020-04-26 22:14:10 -0400
commit1ae898bf0b18748efe49cb53a975fea3bba405b2 (patch)
treebeb6651e7f7cd2a1409b1d5f34109eb350f41bae /demos
parent91c7b24815f9a3eee6856f44c2565da0c5cdf278 (diff)
downloadgtk+-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.xml3
-rw-r--r--demos/gtk-demo/help-overlay.ui25
-rw-r--r--demos/gtk-demo/main.c11
-rw-r--r--demos/gtk-demo/main.ui4
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">&lt;Control&gt;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>