Affichage décalé d'une serie de fenêtres
Bonjour
J'ouvre un série de fenêtres avec une boucle :
Code:
1 2 3 4 5 6 7 8 9 10
| for (rep=0;rep<node1->fils;rep++)
{
sprintf(ch,"%s.pers",node1->child[rep].content->texte);
gr_tmp=ouvrir_perso_groupe(ch,debut,GTK_WINDOW(param),param_t);
if (gr_tmp!=NULL)
{
debut=gr_tmp;
param_t[4]=(gpointer)debut;
}
} |
Les fenêtres ainsi crées sont bien ouvertes lors de l'appel de la fonction ouvrir_perso_groupe par un gtk_widget_show_all (win);.
Je voudrais les placer décalées les une parrapport aux autres pour toutes les voir. J'ai donc penser par la suite les décaller avec
Code:
1 2 3 4 5
| gtk_window_move(GTK_WINDOW(gr_tmp->fils),x,y);
gtk_window_get_size(GTK_WINDOW(gr_tmp->fils),&l,&h);
x+=(3*l)/5;y+=h/5;
if ((x+l/2)>gdk_screen_width()) x-=(gdk_screen_width()-30);
if ((y+h/2)>gdk_screen_height()) y-=(gdk_screen_height()-30); |
Mais, le problème est que gtk_windows_get_size renvoie toujours 16 et 16 comme taille sûrement parce que la fenêtre n'est pas encore ouverte ( voir http://library.gnome.org/devel/gtk/2...indow-get-size )
J'ai remplacé momentanément l'incrémentation de la position parÇa marche, mais ça me convient guère...
Que faire ? Je ne veux pas bouger l'ensemble des fenêtres si je bouge la première.
nb : en écrivant ce mesage, je me suis dit qu'il faurait peut-être attendre que la fenêtre soit présente. Je vais chercher !
J'ai fait un essai bloquant (les fenêtres sont ouvertes => taille différentes de 16 alors, mais, elles ne sont pas remplies) en prenant en compte que les dimensions sont par défaut de 16 :
Code:
1 2 3 4 5 6
| /*do
{
gtk_window_get_size(GTK_WINDOW(gr_tmp->fils),&l,&h);
}
while (l==16 && h==16);
x+=(3*l)/5;y+=h/5;*/ |