[Glade-users] Closing a dialog window
Chris Morrison
chris-morrison@rassalom-technology.co.uk
Wed, 02 Feb 2005 15:41:48 +0000
On Sun, 2005-01-30 at 15:58 +0000, Keith Sharp wrote:
> On Sun, 2005-01-30 at 15:55 +0000, Keith Sharp wrote:
> > On Sun, 2005-01-30 at 14:06 +0000, Chris Morrison wrote:
> > > On Sat, 2005-01-29 at 20:52 +0000, Keith Sharp wrote:
> > > > On Sat, 2005-01-29 at 12:34 +0000, Chris Morrison wrote:
> > > > >
> > > > > I have placed the following code in the signal handler for the Close
> > > > > button's click event.
> > > > >
> > > > > void on_closebutton_clicked(GtkButton *button, gpointer window_ptr)
> > > > > {
> > > > > GtkDialog *window = GTK_DIALOG(window_ptr);
> > > > > gtk_widget_destroy(GTK_WIDGET(window));
> > > > > }
> > > > >
> > > > > However, when I click on the Close button nothing happens and the
> > > > > following message is displayed in the terminal window.
> > > > >
> > > > > (my-program:5534): Gtk-CRITICAL **: file gtkwidget.c: line 1911
> > > > > (gtk_widget_destroy): assertion `GTK_IS_WIDGET (widget)' failed
> > > >
> > > > 1) How are you connecting the callback, which you show above, to the
> > > > object and the signal? I assume you have a call to g_signal_connect
> > > > somewhere in your code. Can you show us some more of your code?
> > >
> > > g_signal_connect ((gpointer) closebutton, "clicked", G_CALLBACK
> > > (on_closebutton_clicked), NULL);
> >
> > The last parameter of this function is for extra data you want to pass
> > to the callback, in your case this would the pointer to your window.
> > You need to change this code to somethings like:
> >
> > GtkDialog *dialog;
> >
> > /* Create and setup dialog here */
> >
> > g_signal_connect (closebutton, "clicked", G_CALLBACK (on_closebutton_clicked), window);
>
> This should of course be:
>
> g_signal_connect (closebutton, "clicked", G_CALLBACK (on_closebutton_clicked), dialog);
>
> Keith.
Cheers,
I suppose I should stop being lazy and get used to using libglade,
especially as Glade 3 will (hopefully) be out soon, and is supposed to
be able to plug into Anjuta 2 which will (hopefully) be out soon as
well.
The only reason I used Glade is because I cannot figure out how the
autoconf monster works.
Chris