1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| #include <gtk/gtk.h>
void fonction(GtkApplication *app,int argc, char *argv[])
{
gint i;
GtkWidget *window;
for (i = 0; i < argc; i++)
printf("%s\n",argv[i]);
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_application (GTK_WINDOW (window), app);
gtk_widget_show_all (window);
}
void fin(GtkWidget *p_widget, gpointer param)
{
gtk_main_quit();
/* parametres inutilises */
(void)p_widget;
(void)param;
}
static void
command_line (GtkApplication *app,
GApplicationCommandLine *cmdline,gpointer user_data)
{
gchar **argv;
gint argc;
argv = g_application_command_line_get_arguments (cmdline, &argc);
fonction(app,argc,argv);
(void)app;
(void)cmdline;
(void)user_data;
}
int
main (int argc, char *argv[])
{
GtkApplication *app;
gint status;
gboolean vrai;
gtk_init (&argc, &argv);
printf("bon nom : %d\n",g_application_id_is_valid("org.troumad.perso"));
app = gtk_application_new ("org.troumad.perso",
G_APPLICATION_HANDLES_COMMAND_LINE);
vrai=g_application_register(G_APPLICATION(app),NULL,NULL);
printf("vrai = %d\n",vrai);
vrai=g_application_get_is_remote(G_APPLICATION(app));
printf("vrai = %d\n",vrai);
g_signal_connect (app, "command-line", G_CALLBACK (command_line), NULL);
g_application_set_inactivity_timeout (G_APPLICATION(app), 10);
status = g_application_run (G_APPLICATION(app), argc, argv); /* attend un retour de l'application mère si elle existe */
printf("status = %d\n",status); /* 0 si première, 1 sinon */
if (!vrai)
{
g_signal_connect (app, "destroy", G_CALLBACK (fin), NULL);
gtk_main ();
}
g_object_unref (app);
return status;
} |