On Jan 27, 2011, at 3:26 AM, Kiss Gabor (Bitman) wrote:

>>> What exactly are you trying to do? If you want to switch to a page you
>>> should use $notebook->set_current_page ($page_num).
> 
>> The page is already selected that is not a problem.
>> However I want to trigger the signal handler function.
>> I thought I don't call it directly.
> 
> I checked: set_current_page() does not emit switch-page signal
> if page is already selected. I should have switch to another
> page then back. I'm afraid this should be avoided.
> 
> Anyway the original question is: could somebody explain what
> gpointer mean in "switch-page(Gtk2::Notebook, gpointer, Glib::UInt)"? :-)


Long ago when gtk+ was new, many signal arguments were made a void* type 
because in C you can just cast the pointer to what it's supposed to be.  This 
was problematic for bindings, but only when people actually tried to use that 
functionailty, so many of them were overlooked.

For this signal, in git master, the gpointer argument is now a proper 
GTK_TYPE_WIDGET representing the new selected child, suggesting someone 
attempted to fix this.

You may be able to get a usable thing by doing

    $child = Glib::Object->new_from_pointer ($the_gpointer_value);

if you really want to try using it.  However, if it breaks, you get the keep 
the pieces.


One problem with the signal documentation is that we get the signal signatures 
by asking the library at runtime for the types of the parameters.  This 
information doesn't include parameter names, and doesn't explain which signals 
are private and which are public.  Many of the very old things in gtk+ have 
signals when they actually just wanted virtual functions, so they're not always 
intended for application usage.

--
Yvonne: Let's do that one again so i can win.
Zella: No.

_______________________________________________
gtk-perl-list mailing list
gtk-perl-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-perl-list

Reply via email to