[gnome-devel-docs] Sample C GMenu example.
- From: Tiffany Antopolski <antopolski src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-devel-docs] Sample C GMenu example.
- Date: Sun, 29 Apr 2012 05:27:12 +0000 (UTC)
commit 5267f70c0b5cf8800b2ee7e69b77cdf122067de9
Author: Ryan Lortie <desrt desrt ca>
Date: Sun Apr 29 00:13:38 2012 -0400
Sample C GMenu example.
platform-demos/C/samples/gmenu.c | 67 ++++++++++++++++++++++++++++++++++++++
1 files changed, 67 insertions(+), 0 deletions(-)
---
diff --git a/platform-demos/C/samples/gmenu.c b/platform-demos/C/samples/gmenu.c
new file mode 100644
index 0000000..2b9df00
--- /dev/null
+++ b/platform-demos/C/samples/gmenu.c
@@ -0,0 +1,67 @@
+#include <gtk/gtk.h>
+
+static void
+new_window (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
+{
+ g_print ("This does nothing. It is only a demonstration.\n");
+}
+
+static void
+quit (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
+{
+ GApplication *application = user_data;
+
+ g_application_quit (application);
+}
+
+static void
+startup (GtkApplication *application,
+ gpointer user_data)
+{
+ static const GActionEntry actions[] = {
+ { "new", new_window },
+ { "quit", quit }
+ };
+
+ GMenu *menu;
+
+ g_action_map_add_action_entries (G_ACTION_MAP (application), actions, G_N_ELEMENTS (actions), application);
+
+ menu = g_menu_new ();
+ g_menu_append (menu, "New", "app.new");
+ g_menu_append (menu, "Quit", "app.quit");
+ gtk_application_set_app_menu (application, G_MENU_MODEL (menu));
+ g_object_unref (menu);
+}
+
+static void
+activate (GtkApplication *app,
+ gpointer user_data)
+{
+ GtkWidget *window;
+
+ window = gtk_application_window_new (app);
+
+ gtk_window_set_application (GTK_WINDOW (window), GTK_APPLICATION (app));
+ gtk_window_set_title (GTK_WINDOW (window), "Hello GNOME");
+
+ gtk_widget_show_all (GTK_WIDGET (window));
+}
+
+int
+main (int argc, char **argv)
+{
+ GtkApplication *app;
+ int status;
+
+ app = gtk_application_new ("org.gtk.example",G_APPLICATION_FLAGS_NONE);
+ g_signal_connect (app, "startup", G_CALLBACK (startup), NULL);
+ g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
+ status = g_application_run (G_APPLICATION (app), argc, argv);
+ g_object_unref (app);
+ return status;
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]