[libdazzle] example: start on some more examples
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libdazzle] example: start on some more examples
- Date: Fri, 16 Jun 2017 21:37:50 +0000 (UTC)
commit 8b56ae29f74e91cab0e066a780e29b5987383ee7
Author: Christian Hergert <chergert redhat com>
Date: Fri Jun 16 14:35:34 2017 -0700
example: start on some more examples
This doesn't fully work yet, but that needs to be fixed and this is a
reasonable test case to ensure that happens.
examples/app/example-window.c | 46 +++++++++++++++++++++++++++++++
examples/app/example.gresources.xml | 1 +
examples/app/shortcuts/default.keytheme | 8 +++++
3 files changed, 55 insertions(+), 0 deletions(-)
---
diff --git a/examples/app/example-window.c b/examples/app/example-window.c
index 96af722..93756fb 100644
--- a/examples/app/example-window.c
+++ b/examples/app/example-window.c
@@ -1,4 +1,7 @@
+#include "config.h"
+
#include <dazzle.h>
+#include <glib/gi18n.h>
#include "example-window.h"
@@ -10,6 +13,27 @@ struct _ExampleWindow
G_DEFINE_TYPE (ExampleWindow, example_window, GTK_TYPE_WINDOW)
+static const DzlShortcutEntry shortcuts[] = {
+ { "com.example.window.NewDoc", "<control>n", N_("Editing"), N_("Documents"), N_("New Document"),
N_("Create a new document") },
+ { "com.example.window.CloseDoc", "<control>w", N_("Editing"), N_("Documents"), N_("Close Document"),
N_("Close the current document") },
+};
+
+static void
+new_document_cb (ExampleWindow *self,
+ gpointer user_data)
+{
+ g_assert (EXAMPLE_IS_WINDOW (self));
+
+}
+
+static void
+close_document_cb (ExampleWindow *self,
+ gpointer user_data)
+{
+ g_assert (EXAMPLE_IS_WINDOW (self));
+
+}
+
static void
example_window_class_init (ExampleWindowClass *klass)
{
@@ -22,7 +46,29 @@ example_window_class_init (ExampleWindowClass *klass)
static void
example_window_init (ExampleWindow *self)
{
+ DzlShortcutController *controller;
+
gtk_widget_init_template (GTK_WIDGET (self));
+ dzl_shortcut_manager_add_shortcut_entries (NULL, shortcuts, G_N_ELEMENTS (shortcuts), GETTEXT_PACKAGE);
+
+ controller = dzl_shortcut_controller_find (GTK_WIDGET (self));
+
+ dzl_shortcut_manager_set_theme_name (NULL, "default");
+
+ dzl_shortcut_controller_add_command_callback (controller,
+ "com.example.window.NewDoc",
+ "<control>n",
+ (GtkCallback) new_document_cb, NULL, NULL);
+
+ dzl_shortcut_controller_add_command_callback (controller,
+ "com.example.window.CloseDoc",
+ "<control>w",
+ (GtkCallback) close_document_cb, NULL, NULL);
+
+ g_signal_connect_swapped (self,
+ "key-press-event",
+ G_CALLBACK (dzl_shortcut_manager_handle_event),
+ dzl_shortcut_manager_get_default ());
}
GtkWidget *
diff --git a/examples/app/example.gresources.xml b/examples/app/example.gresources.xml
index 297c1db..955a67d 100644
--- a/examples/app/example.gresources.xml
+++ b/examples/app/example.gresources.xml
@@ -6,6 +6,7 @@
<gresource prefix="/org/gnome/example">
<file>gtk/menus.ui</file>
+ <file>shortcuts/default.keytheme</file>
<file>themes/shared.css</file>
</gresource>
</gresources>
diff --git a/examples/app/shortcuts/default.keytheme b/examples/app/shortcuts/default.keytheme
new file mode 100644
index 0000000..ca6ce0a
--- /dev/null
+++ b/examples/app/shortcuts/default.keytheme
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<keytheme name="default">
+ <property name="title" translatable="yes">Example Shortcuts</property>
+
+ <shortcut accelerator="<primary>n" command="com.example.window.NewDoc"/>
+ <shortcut accelerator="<primary>w" command="com.example.window.CloseDoc"/>
+
+</keytheme>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]