mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-28 00:16:15 +01:00
88 lines
1.8 KiB
C
88 lines
1.8 KiB
C
#include <gio/gio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
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)
|
|
{
|
|
g_action_map_add_action_entries (G_ACTION_MAP (app),
|
|
entries, G_N_ELEMENTS (entries),
|
|
NULL);
|
|
}
|
|
|
|
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_app_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;
|
|
}
|