Re: libunique3
- From: Troumad <troumad libertysurf fr>
- To: windows-devel-list gnome org
- Subject: Re: libunique3
- Date: Tue, 20 Mar 2012 11:06:41 +0100
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]