[Glade-users] Reusing windows/dialogs after user closes them with 'X'

Dale Dale <bigperm71@gmail.com>
Thu, 25 Nov 2004 08:01:58 -0500


Keith...

Yes!!!!!

Thanks ever so much...I have been concentrating on destroy, destroy,
destroy, and never noticed that there was a delete event.

That worked perfectly, and that is a major problem solved.

Thanks again,
Dale



On Thu, 25 Nov 2004 12:00:22 +0000, Keith Sharp <kms@passback.co.uk> wrote:
> On Wed, 2004-11-24 at 21:34 -0500, Dale wrote:
> 
> 
> > I can't figure this one out.
> >
> > If a user closes a dialog or popup window with the 'X' in the
> > top-right of the window, it destroys the window.
> >
> > I have the destroy event signal, but I can't stop it from actually
> > destroying it (or can I?).  I've tried putting a ->hide_all in the
> > event loop to hide instead of destroy, but it's already destroyed.
> >
> > What I would like to know is, how can I reuse the window/dialog?
> 
> In the case of a window you would catch the "delete-event" signal on the
> window and in the callback you would hide the window and return TRUE.
> This will prevent the destroy event being emitted.  For example:
> 
> gint
> main (gint argc, gchar *argv[])
> {
>         GtkWidget *window;
> 
>         ...
> 
>         g_signal_connect (G_OBJECT (window), "delete-event",
>                 G_CALLBACK (delete_event_cb), NULL);
> 
>         ...
> }
> 
> gboolean
> delete_event_cb (GtkWidget *widget, GdkEvent *event, gpointer data)
> {
>         gtk_widget_hide (widget);
>         return TRUE;
> }
> 
> For a dialog you would normally use gtk_dialog_run and have
> responsibility for hiding or destroying the dialog yourself.  For
> example:
> 
> GtkWidget *dialog
> gint result;
> 
> ...
> 
> gtk_widget_show_all (dialog);
> 
> result = gtk_dialog_run (GTK_DIALOG (dialog));
> switch (result) {
>         case GTK_RESPONSE_ACCEPT:
>                 /* Do something here */
>                 break;
>         default:
>                 break;
> }
> gtk_widget_hide (dialog);
> 
> Hope this helps,
> 
> Keith.
> 
> _______________________________________________
> Glade-users maillist  -  Glade-users@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/glade-users
>