Richard wrote:
> 
> Could someone explain the reason for this function
> 
> "g_signal_connect_swapped"

For instance, you can do

  g_signal_connect (widget, "destroy", G_CALLBACK (null_pointer), &pointer);

  ...

  void
  null_pointer (GtkObject* object, gpointer pointer)
  {
     *pointer = NULL;
  }

Or

  g_signal_connect_swapped (widget, "destroy", G_CALLBACK (null_pointer), 
&pointer);

  ...

  void
  null_pointer (gpointer pointer)
  {
     *pointer = NULL;
  }

Note the absence of unneeded argument in the second case.  This is not
very important when you write a function yourself, but can save you
from writing an adaptor in case of ready functions.  For instance,
imagine this:

  g_signal_connect_swapped (widget, "destroy",
                            G_CALLBACK (gtk_widget_destroy), another_widget);

if you want `another_widget' leave no longer than `widget'.  Without
g_signal_connect_swapped(), you'd have to write a dummy function which
just rearranges its arguments and invokes gtk_widget_destroy().

Paul
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to