It is currently Tue Oct 17, 2017 2:56 pm

All times are UTC




 Page 1 of 1 [ 1 post ] 
Author Message
 Post subject: HOWTO. Mantener el dialogo actual sin perder el foco.
PostPosted: Wed Nov 16, 2011 8:00 pm 

Joined: Thu Dec 30, 2010 8:46 pm
Posts: 92
A medida que mi programa va creciendo, van creciendo consigo necesidades que no habían tenido en cuenta,
y una de ellas muy molesta es que se solapen dialogos y no saber cual es el que esta activado.

Además, he notado que cuando se crea un dialogo , hay que decirle al gestor de ventanas, de que tipo de ventana
será, para que lo trate como tal.

Para ello despues de un DEFINE DIALOG oDlg hay que decirle que es;

gtk_window_set_type_hint( oDlg:pWidget , GDK_WINDOW_TYPE_HINT_DIALOG )

*Nota: Esto lo vamos hacer que lo haga la propia clase

De está manera, se mantendrá arriba , por encima de la ventana.
Ahora bien, supongamos que desde ese dialogo llamamos a otro dialog, y realizamos lo mismo, nos daremos cuenta, que
ya no funciona con solo definir que es un dialogo.
Esto consigue que podemos cambiar entre diálogos , pero uno es el que tiene el foco, y si este es más pequeño, queda por detrás,
vas a tener que desplazarlo para poder seleccionarlo.
Para que no ocurra esto, vamos a tener que definir QUIEN es el padre al dialogo que vamos a llamar, o ventana da igual;

Antes del ACTIVATE DIALOG oDlg, declaramos

gtk_window_set_transient_for( oDlg:pWidget, oParent:pWidget )

De esta manera conseguiremos que nuestro dialogo este POR ENCIMA del dialogo desde el cual fue llamado.

También, podemos hacerlo a través de la definición;
DEFINE DIALOG oDlg OF oParent


Offline
 Profile Send private message  
 
Display posts from previous:  Sort by  
 Page 1 of 1 [ 1 post ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  

cron