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
|