| 12
 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;
} | 
Partager