[Glade-users] Strange differences with gtk and libglade



On Wed, 2004-10-06 at 19:25, antongiulio wrote:
Hi,
(sorry for my bad english)
(for my mistake this mail sent gtk-list too:( sorry)

I'm learning to use gtk and libglade libraries.

I have made a simple GtkWindow manually and with glade-2.6.0 program (just .glade file to use with 
libglade).
In manual-window I have added a 'close-button' with this signal:

g_signal_connect (G_OBJECT (button_close), "clicked",
                      G_CALLBACK (do_things_and_exit), (gpointer) window);

and relative callback handler:

void
do_things_and_exit (GtkButton * button, gpointer user_data)
{
      /* various things */
      .................

      gtk_widget_destroy (GTK_WIDGET (user_data));

}

This code works properly (press close button: do various things and close window).

With glade program I have edited a window.glade file and added to 'close-button' property this signal:

signal: clicked
handler: do_things_and_exit
object: window

launch signals with:

glade_xml_signal_autoconnect(window_xml_glade);

but when I press close-button, just close-button is deleted and window is on again... WHY???

If you set the 'object:' field, that object becomes the first argument
to the callback.

So if you did this it would work:

        gtk_widget_destroy (GTK_WIDGET (button));

Lots of people are confused by the 'object:' field, so it is best to
just not use it.



Last question:

How is it possibile pass a constant value with libglade?

In manual-gtk I have:

g_signal_connect (G_OBJECT (my_button_widget), "clicked",
                  G_CALLBACK (my_handler), GINT_TO_POINTER (1000));

and with libglade???

You can use glade_xml_signal_connect_data(). See:

http://developer.gnome.org/doc/API/2.0/libglade/GladeXML.html#glade-xml-signal-connect-data

Damon






[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]