[gtk+] gtk-demo: Streamline application
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] gtk-demo: Streamline application
- Date: Sun, 14 Feb 2016 15:56:44 +0000 (UTC)
commit c0a61c2da3c358e71f0d29ceda2e761f5b6878af
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Feb 14 09:39:15 2016 -0500
gtk-demo: Streamline application
Avoid the odd #ifdef STANDALONE construction; we can show
multiple source files nowadays.
demos/gtk-demo/Makefile.am | 4 +-
demos/gtk-demo/application-standalone.c | 3 -
demos/gtk-demo/application.c | 101 +------------------------------
demos/gtk-demo/application_demo.c | 95 +++++++++++++++++++++++++++++
demos/gtk-demo/demo.gresource.xml | 5 +-
5 files changed, 102 insertions(+), 106 deletions(-)
---
diff --git a/demos/gtk-demo/Makefile.am b/demos/gtk-demo/Makefile.am
index efd06b2..80927d0 100644
--- a/demos/gtk-demo/Makefile.am
+++ b/demos/gtk-demo/Makefile.am
@@ -4,7 +4,7 @@ include $(top_srcdir)/Makefile.decl
## These should be in the order you want them to appear in the
## demo app, which means alphabetized by demo title, not filename
demos_base = \
- application.c \
+ application_demo.c \
assistant.c \
builder.c \
button_box.c \
@@ -143,7 +143,7 @@ gtk3_demo_LDADD = $(LDADDS)
gtk3_demo_LDFLAGS = -export-dynamic
gtk3_demo_application_SOURCES = \
- application-standalone.c \
+ application.c \
demo_resources.c
gtk3_demo_application_LDADD = $(LDADDS)
diff --git a/demos/gtk-demo/application.c b/demos/gtk-demo/application.c
index c85102d..289f73a 100644
--- a/demos/gtk-demo/application.c
+++ b/demos/gtk-demo/application.c
@@ -1,18 +1,8 @@
-/* Application Class
- *
- * Demonstrates a simple application.
- *
- * This examples uses GtkApplication, GtkApplicationWindow, GtkBuilder
- * as well as GMenu and GResource. Due to the way GtkApplication is structured,
- * it is run as a separate process.
- */
#include "config.h"
#include <gtk/gtk.h>
-#ifdef STANDALONE
-
typedef GtkApplication DemoApplication;
typedef GtkApplicationClass DemoApplicationClass;
@@ -356,7 +346,7 @@ startup (GApplication *app)
G_APPLICATION_CLASS (demo_application_parent_class)->startup (app);
builder = gtk_builder_new ();
- gtk_builder_add_from_resource (builder, "/application/menus.ui", NULL);
+ gtk_builder_add_from_resource (builder, "/application_demo/menus.ui", NULL);
appmenu = (GMenuModel *)gtk_builder_get_object (builder, "appmenu");
menubar = (GMenuModel *)gtk_builder_get_object (builder, "menubar");
@@ -528,7 +518,7 @@ demo_application_window_class_init (DemoApplicationWindowClass *class)
widget_class->window_state_event = demo_application_window_state_event;
widget_class->destroy = demo_application_window_destroy;
- gtk_widget_class_set_template_from_resource (widget_class, "/application/application.ui");
+ gtk_widget_class_set_template_from_resource (widget_class, "/application_demo/application.ui");
gtk_widget_class_bind_template_child (widget_class, DemoApplicationWindow, message);
gtk_widget_class_bind_template_child (widget_class, DemoApplicationWindow, infobar);
gtk_widget_class_bind_template_child (widget_class, DemoApplicationWindow, status);
@@ -552,90 +542,3 @@ main (int argc, char *argv[])
return g_application_run (G_APPLICATION (app), 0, NULL);
}
-
-#else /* !STANDALONE */
-
-static gboolean name_seen;
-static GtkWidget *placeholder;
-
-static void
-on_name_appeared (GDBusConnection *connection,
- const gchar *name,
- const gchar *name_owner,
- gpointer user_data)
-{
- name_seen = TRUE;
-}
-
-static void
-on_name_vanished (GDBusConnection *connection,
- const gchar *name,
- gpointer user_data)
-{
- if (!name_seen)
- return;
-
- if (placeholder)
- {
- gtk_widget_destroy (placeholder);
- g_object_unref (placeholder);
- placeholder = NULL;
- }
-}
-
-#ifdef G_OS_WIN32
-#define APP_EXTENSION ".exe"
-#else
-#define APP_EXTENSION
-#endif
-
-GtkWidget *
-do_application (GtkWidget *toplevel)
-{
- static guint watch = 0;
-
- if (watch == 0)
- watch = g_bus_watch_name (G_BUS_TYPE_SESSION,
- "org.gtk.Demo2",
- 0,
- on_name_appeared,
- on_name_vanished,
- NULL, NULL);
-
- if (placeholder == NULL)
- {
- const gchar *command;
- GError *error = NULL;
-
- if (g_file_test ("./gtk3-demo-application" APP_EXTENSION, G_FILE_TEST_IS_EXECUTABLE))
- command = "./gtk3-demo-application" APP_EXTENSION;
- else
- command = "gtk3-demo-application";
-
- if (!g_spawn_command_line_async (command, &error))
- {
- g_warning ("%s", error->message);
- g_error_free (error);
- }
-
- placeholder = gtk_label_new ("");
- g_object_ref_sink (placeholder);
- }
- else
- {
- g_dbus_connection_call_sync (g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL),
- "org.gtk.Demo2",
- "/org/gtk/Demo2",
- "org.gtk.Actions",
- "Activate",
- g_variant_new ("(sava{sv})", "quit", NULL, NULL),
- NULL,
- 0,
- G_MAXINT,
- NULL, NULL);
- }
-
- return placeholder;
-}
-
-#endif
diff --git a/demos/gtk-demo/application_demo.c b/demos/gtk-demo/application_demo.c
new file mode 100644
index 0000000..798fcad
--- /dev/null
+++ b/demos/gtk-demo/application_demo.c
@@ -0,0 +1,95 @@
+/* Application Class
+ *
+ * Demonstrates a simple application.
+ *
+ * This examples uses GtkApplication, GtkApplicationWindow, GtkBuilder
+ * as well as GMenu and GResource. Due to the way GtkApplication is structured,
+ * it is run as a separate process.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+
+static gboolean name_seen;
+static GtkWidget *placeholder;
+
+static void
+on_name_appeared (GDBusConnection *connection,
+ const gchar *name,
+ const gchar *name_owner,
+ gpointer user_data)
+{
+ name_seen = TRUE;
+}
+
+static void
+on_name_vanished (GDBusConnection *connection,
+ const gchar *name,
+ gpointer user_data)
+{
+ if (!name_seen)
+ return;
+
+ if (placeholder)
+ {
+ gtk_widget_destroy (placeholder);
+ g_object_unref (placeholder);
+ placeholder = NULL;
+ }
+}
+
+#ifdef G_OS_WIN32
+#define APP_EXTENSION ".exe"
+#else
+#define APP_EXTENSION
+#endif
+
+GtkWidget *
+do_application_demo (GtkWidget *toplevel)
+{
+ static guint watch = 0;
+
+ if (watch == 0)
+ watch = g_bus_watch_name (G_BUS_TYPE_SESSION,
+ "org.gtk.Demo2",
+ 0,
+ on_name_appeared,
+ on_name_vanished,
+ NULL, NULL);
+
+ if (placeholder == NULL)
+ {
+ const gchar *command;
+ GError *error = NULL;
+
+ if (g_file_test ("./gtk3-demo-application" APP_EXTENSION, G_FILE_TEST_IS_EXECUTABLE))
+ command = "./gtk3-demo-application" APP_EXTENSION;
+ else
+ command = "gtk3-demo-application";
+
+ if (!g_spawn_command_line_async (command, &error))
+ {
+ g_warning ("%s", error->message);
+ g_error_free (error);
+ }
+
+ placeholder = gtk_label_new ("");
+ g_object_ref_sink (placeholder);
+ }
+ else
+ {
+ g_dbus_connection_call_sync (g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL),
+ "org.gtk.Demo2",
+ "/org/gtk/Demo2",
+ "org.gtk.Actions",
+ "Activate",
+ g_variant_new ("(sava{sv})", "quit", NULL, NULL),
+ NULL,
+ 0,
+ G_MAXINT,
+ NULL, NULL);
+ }
+
+ return placeholder;
+}
diff --git a/demos/gtk-demo/demo.gresource.xml b/demos/gtk-demo/demo.gresource.xml
index 9ca8dad..b102649 100644
--- a/demos/gtk-demo/demo.gresource.xml
+++ b/demos/gtk-demo/demo.gresource.xml
@@ -3,7 +3,8 @@
<gresource prefix="/ui">
<file preprocess="xml-stripblanks">main.ui</file>
</gresource>
- <gresource prefix="/application">
+ <gresource prefix="/application_demo">
+ <file>application.c</file>
<file>application.ui</file>
<file>menus.ui</file>
</gresource>
@@ -117,7 +118,7 @@
<file>gnu-keys.png</file>
</gresource>
<gresource prefix="/sources">
- <file>application.c</file>
+ <file>application_demo.c</file>
<file>assistant.c</file>
<file>builder.c</file>
<file>button_box.c</file>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]