Re: Gtk::GladeXML and Gtk::CList select-row callback prototype



I just found this in the archive, which explains the problem.

http://mail.gnome.org/archives/gtk-perl-list/2000-March/msg00023.html

René.


On Sat, Jan 25, 2003 at 09:54:06AM +0100, René Seindal wrote:
Hi,

I am fairly new to writing Gtk apps with perl, but I like it a lot.  I
have run into a problem, though.

I have an apps made with glade.  There is a Clist with a select-row
callback.  There is no data associated with the callback in glade.

I'd expect to see a callback prototype of (I use an OO approach, hence
the $this as the first argument)

sub on_list_select_row {
    my ($this, $list, $row, $column, $event, $user_data) = @_;
}

as per the C api.

It appears that I get:

sub on_list_select_row {
    my ($this, $list, $user_data, $row, $column, $event) = @_;
}

that is the $user_data has been shifted in front of the other parameters
to the callback.

If I attach the signal by hand I get the same result, more or less.

If I use
$clist->signal_connect('select-row'=>sub { $this->on_list_select_row(@_); });

the callback get these args:
($this, $clist, $row, $column, $event)

If I use
$clist->signal_connect('select-row'=>sub { $this->on_list_select_row(@_); },
                     $arg);

the callback gets
($this, $clist, $arg, $row, $column, $event)

I can add more arguments to signal_connect
$clist->signal_connect('select-row'=>sub { $this->on_list_select_row(@_); },
                     $arg1, $arg2, $arg3);

and the callback gets
($this, $clist, $arg1, $arg2, $arg3, $row, $column, $event)


Frankly, I find this rather confusing.  Why on earth are the user_data
arguments to signal_connect() stuck in the middle of the callback
arguments?   I'd definitely expect to see them at the end.

Is this a bug or an undocumented feature?


I use Debian testing with libgtk-perl and libgladexml-perl 0.7008-1.2.



-- 
René Seindal (rene seindal dk)              http://www.seindal.dk/rene/
 



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