From: Matthias Clasen Date: Sun, 27 Nov 2011 07:16:51 +0000 (-0500) Subject: GApplication: Add a menu example to the docs X-Git-Tag: 2.31.4~84 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=41c19c7df8f13101a40e7df115efbb8cd8de3f67;p=platform%2Fupstream%2Fglib.git GApplication: Add a menu example to the docs --- diff --git a/gio/gapplication.c b/gio/gapplication.c index 0abdcfc..fe94183 100644 --- a/gio/gapplication.c +++ b/gio/gapplication.c @@ -146,6 +146,14 @@ * * * + * + * A GApplication with menus + * + * + * FIXME: MISSING XINCLUDE CONTENT + * + * + * */ struct _GApplicationPrivate diff --git a/gio/tests/Makefile.am b/gio/tests/Makefile.am index 7c7bded..3d87981 100644 --- a/gio/tests/Makefile.am +++ b/gio/tests/Makefile.am @@ -111,6 +111,7 @@ SAMPLE_PROGS = \ gapplication-example-cmdline2 \ gapplication-example-cmdline3 \ gapplication-example-actions \ + gapplication-example-menu \ $(NULL) @@ -427,6 +428,9 @@ gapplication_example_cmdline3_LDADD = $(progs_ldadd) gapplication_example_actions_SOURCES = gapplication-example-actions.c gapplication_example_actions_LDADD = $(progs_ldadd) +gapplication_example_menu_SOURCES = gapplication-example-menu.c +gapplication_example_menu_LDADD = $(progs_ldadd) + gmenumodel_LDADD = $(progs_ldadd) schema_tests = \ diff --git a/gio/tests/gapplication-example-menu.c b/gio/tests/gapplication-example-menu.c new file mode 100644 index 0000000..13c7e03 --- /dev/null +++ b/gio/tests/gapplication-example-menu.c @@ -0,0 +1,95 @@ +#include +#include +#include + +static void +activate (GApplication *application) +{ + g_application_hold (application); + g_print ("activated\n"); + g_application_release (application); +} + +static void +show_help (GSimpleAction *action, + GVariant *parameter, + gpointer data) +{ + g_print ("Want help, eh ?!\n"); +} + +static void +show_about (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + g_print ("Not much to say, really.\nJust a stupid example\n"); +} + +static void +quit_app (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + g_print ("Quitting...\n"); + g_application_release (g_application_get_default ()); +} + +static GActionEntry entries[] = { + { "help", show_help, NULL, NULL, NULL }, + { "about", show_about, NULL, NULL, NULL }, + { "quit", quit_app, NULL, NULL, NULL } +}; + +static void +add_actions (GApplication *app) +{ + GSimpleActionGroup *actions; + + actions = g_simple_action_group_new (); + + g_simple_action_group_add_entries (actions, + entries, G_N_ELEMENTS (entries), + NULL); + + g_application_set_action_group (app, G_ACTION_GROUP (actions)); + + g_object_unref (actions); +} + +static void +add_menu (GApplication *app) +{ + GMenu *menu; + + menu = g_menu_new (); + + g_menu_append (menu, "Help", "help"); + g_menu_append (menu, "About Example", "about"); + g_menu_append (menu, "Quit", "quit"); + + g_application_set_menu (app, G_MENU_MODEL (menu)); + + g_object_unref (menu); +} + +int +main (int argc, char **argv) +{ + GApplication *app; + int status; + + app = g_application_new ("org.gtk.TestApplication", 0); + g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); + + add_actions (app); + add_menu (app); + + g_application_hold (app); + + status = g_application_run (app, argc, argv); + + g_object_unref (app); + + return status; +}