10 static gboolean action3_added = FALSE;
13 on_app_action (GApplication *application,
14 const gchar *action_name,
15 GVariant *platform_data)
17 if (strcmp (action_name, "action1") == 0)
19 else if (strcmp (action_name, "action2") == 0)
22 g_application_remove_action (application, "action3");
24 g_application_add_action (application, "action3", "An extra action");
25 action3_added = !action3_added;
30 on_app_activated (GApplication *application,
32 GVariant *platform_data)
37 on_monitor_fd_io (GIOChannel *source,
38 GIOCondition condition,
46 main (int argc, char *argv[])
52 const char *slave_fd_env = g_getenv ("_G_TEST_SLAVE_FD");
55 int slave_fd = atoi (slave_fd_env);
56 fcntl (slave_fd, F_SETFD, FD_CLOEXEC);
57 g_io_add_watch (g_io_channel_unix_new (slave_fd), G_IO_HUP | G_IO_ERR,
58 on_monitor_fd_io, NULL);
63 app = g_application_new ("org.gtk.test.app");
64 if (!(argc > 1 && strcmp (argv[1], "--non-unique") == 0))
65 g_application_register_with_data (app, argc, argv, NULL);
67 if (g_application_is_remote (app))
69 g_application_invoke_action (app, "action1", 0);
73 g_application_add_action (app, "action1", "Action1");
74 g_application_add_action (app, "action2", "Action2");
75 g_signal_connect (app, "action-with-data",
76 G_CALLBACK (on_app_action), NULL);
77 g_signal_connect (app, "prepare-activation",
78 G_CALLBACK (on_app_activated), NULL);
79 g_application_run (app);