Re: [gtk-list] Re: Notebook and listbox problems.
- From: Owen Taylor <owt1 cornell edu>
- To: gtk-list redhat com
- Subject: Re: [gtk-list] Re: Notebook and listbox problems.
- Date: 13 May 1997 12:47:17 -0400
Otto Hammersmith <otto@redhat.com> writes:
> [snipage]
> > /* This doesn't seem to work either..... must have typed wrong */
> > gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc)
> > gtk_widget_destroy, GTK_OBJECT(window));
>
> Replace that bit with,
>
> gtk_signal_connect(GTK_OBJECT(button), "clicked",
> (GtkSignalFunc) gtk_exit, NULL);
Another way to do this is:
gtk_signal_connect_object(GTK_OBJECT, "clicked",
(GtkSignalFunc) gtk_widget_destroy,
GTK_OBJECT(window))
If you look carefully at the examples, I think you'll find that this
is what is done. To explain: a signal function has the form in
general of
foo(GtkWidget *widget, [ some more args ] , gpointer data)
And can return either int or void. In the case of "clicked",
widget and data are the only two arguments and it returns void.
If you call gtk_signal_connect, then on a callback, widget is
set to the object to which you are connecting the object, and
data is whatever you specify as the fourth argument.
(That's why the first try with gtk_signal_connect destroyed
the button.)
If you call gtk_signal_connect_object, then regardless of the
object you are connecting to, the widget argument to the callback
is set to the _fourth_ argument of gtk_signal_connect_object.
.
.
.
> I do know that GtkSignalFunc is typedefed to void, so the return value
> is right. :)
Actually, GtkSignalFunc is just a placeholder (sort of a void* for
functions) - depending on the signal, the signal handler may be
expected to return non-void (for instance, event
functions must return int, though I'm still a bit uncertain about
what that return value means...)
Regards,
Owen
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]