Re: g_signal_connect_swapped



Richard Riley wrote:
"Matt Hoosier" <matt hoosier gmail com> writes:

On 11/25/06, Richard <rileyrg googlemail com> wrote:

Could someone explain the reason for this function

"g_signal_connect_swapped"

I have read the manual here:

http://www.gtk.org/tutorial/x159.html

where it says:

,----
| g_signal_connect_swapped() is the same as g_signal_connect() except that
| the instance on which the signal is emitted and data will be swapped
| when calling the handler. So when using this function to connect
| signals, the callback should be of the form
|
|
| void callback_func( gpointer   callback_data,
|                     ... /* other signal arguments */
|                     GtkWidget *widget);
|
| where the object is usually a widget.
`----

Could anyone express this a little clearer? I (as a gtk beginner) can
see no reason for it.

This just means that the "widget" and "callback_data" pointers will be
pushed onto the call stack in the opposite order from their ordering
if hooked up with g_signal_connect(). If you're designing your own
callback function, this probably isn't useful; just use
g_signal_connnect() with a callback that has GObject* and gpointer
parameters [in that order].

I can see the order has changed - it was the reason I was looking for. I
don't currently see the point. Maybe it will become clearer as I learn
more.

The point is being able to connect a signal to a method that you
didn't write, but one that's already defined. If you wouldn't have
g_signal_connect_after you'd need to create methods that do nothing
but modify argument order.

-- 
Michael 'Mickey' Lauer | IT-Freelancer | http://www.vanille-media.de




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