#include "example-application.h" #include "example-window.h" struct _ExampleApplication { DzlApplication parent_instance; }; G_DEFINE_TYPE (ExampleApplication, example_application, DZL_TYPE_APPLICATION) static void example_application_activate (GApplication *app) { GtkWindow *window; window = gtk_application_get_active_window (GTK_APPLICATION (app)); if (window == NULL) window = g_object_new (EXAMPLE_TYPE_WINDOW, "application", app, "default-width", 800, "default-height", 600, "title", "Example Window", NULL); gtk_window_present (window); } static void example_application_class_init (ExampleApplicationClass *klass) { GApplicationClass *app_class = G_APPLICATION_CLASS (klass); app_class->activate = example_application_activate; } static void about_activate (GSimpleAction *action, GVariant *variant, gpointer user_data) { GtkAboutDialog *dialog; dialog = g_object_new (GTK_TYPE_ABOUT_DIALOG, "copyright", "Copyright 2017 Christian Hergert", "logo-icon-name", "org.gnome.clocks", "website", "https://wiki.gnome.org/Apps/Builder", "version", DZL_VERSION_S, NULL); gtk_window_present (GTK_WINDOW (dialog)); } static void quit_activate (GSimpleAction *action, GVariant *variant, gpointer user_data) { g_application_quit (G_APPLICATION (user_data)); } static void shortcuts_activate (GSimpleAction *action, GVariant *variant, gpointer user_data) { DzlShortcutsWindow *window; DzlShortcutManager *manager; manager = dzl_application_get_shortcut_manager (user_data); window = g_object_new (DZL_TYPE_SHORTCUTS_WINDOW, NULL); dzl_shortcut_manager_add_shortcuts_to_window (manager, window); gtk_window_present (GTK_WINDOW (window)); } static void example_application_init (ExampleApplication *self) { static GActionEntry entries[] = { { "about", about_activate }, { "quit", quit_activate }, { "shortcuts", shortcuts_activate }, }; g_action_map_add_action_entries (G_ACTION_MAP (self), entries, G_N_ELEMENTS (entries), self); }