Re: libunique3



Hello

Now, I have do it :

#include <gtk/gtk.h>

void command_line (GtkApplication *app, GApplicationCommandLine *cmdline,gpointer param);


int main (int argc, char *argv[])
{
  gpointer * param; /* pour le passage des paramètres */
[... plein de choses ...]
 GtkApplication *app;
 gboolean vrai;

 /* initialisation GTK */
 gtk_init (&argc, &argv);
 param=(void **)malloc(MAX_MAIN*sizeof(void *)) ; /* for the parameter */
 param[MAIN_FILS]=NULL;
 param[MAIN_NB_FILS]=(gpointer)malloc(sizeof(unsigned short));
 param[MAIN_WIN]=NULL;
 ((unsigned short **)param)[MAIN_NB_FILS][0]=0;

 app = gtk_application_new ("org.troumad.perso",
                           G_APPLICATION_HANDLES_COMMAND_LINE);
 g_application_register(G_APPLICATION(app),NULL,NULL);
 vrai=g_application_get_is_remote(G_APPLICATION(app));
 g_signal_connect (app, "command-line", G_CALLBACK (command_line), param);
 g_application_set_inactivity_timeout (G_APPLICATION(app), 10);

g_application_run (G_APPLICATION(app), argc, argv); /* attend un retour de l'application mère si elle existe */ if (vrai) /* wait the return off the mother appli */
 {
  g_object_unref (app);
  return 0;
 }

  gtk_widget_show_all (win);



  [... plein de choses ...]
  win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  param[MAIN_WIN]=(void *)win;
  [... plein de choses ...]

for (i=1;i<argc;i++) /* lors de l'appel de la première session de command_line, la fenêtre mère n'est pas encore connue, */ { /* on repousse ici la création des fenêtre fille en fonction des paramètres */
      faire_liste_fils(ouvre_fichier(win,param,argv[i],0),param);
} /* because the first timme we call "command_line" the mother window is not open */

  gtk_main ();
  g_object_unref (app);

  return 0;
}

void command_line (GtkApplication *app, GApplicationCommandLine *cmdline,gpointer param)
{
  gchar **argv;
  gint argc;
  unsigned short i;
/* because the first timme we call "command_line" the mother window is not open */ if (((gpointer *)param)[MAIN_WIN]==NULL) return; /* éviter lors de l'ouverture de la première session l'appel à une fenêtre mère inexistante */
  argv = g_application_command_line_get_arguments (cmdline, &argc);
  for (i=1;i<argc;i++)
  {
faire_liste_fils(ouvre_fichier(((GtkWidget **)param)[MAIN_WIN],param,argv[i],0),param);
  }
  (void)app;
  (void)cmdline;
}
It's good for Linux, but it's no good for Windows ! Why ?

--
Amicalement vOOotre              Troumad Alias Bernard SIAUD
mon site : http://troumad.org : AD&D maths WEB...
Pour la liberté http://www.developpez.net/forums/f17/systemes/linux/ N'envoyez que des documents avec des formats ouverts, comme http://fr.libreoffice.org

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]