Re: Scrolling to the row in TreeView when selected?
- From: Yu Wang <xiaohuwang hotmail com>
- To: gtk-perl-list gnome org
- Subject: Re: Scrolling to the row in TreeView when selected?
- Date: Tue, 13 Sep 2005 20:42:40 +0000 (UTC)
muppet <scott <at> asofyet.org> writes:
On Sep 13, 2005, at 1:19 AM, Yu Wang wrote:
However, if the number of entries is large and the found entry is
in a row not
displayed in current ScrolledWindow, i.e could be very buttom or
very top, the
window cannot scroll to this entry automatically, once this entry
is selected.
Any one has any ideas?
$treeview->scroll_to_cell ($path, $column=undef, $use_align=FALSE,
$row_align=0.0, $col_align=0.0);
http://developer.gnome.org/doc/API/2.0/gtk/GtkTreeView.html#gtk-tree-
view-scroll-to-cell
For a fully-automatic "always make the selected item visible"
behavior, you can connect to the tree's selection's "changed" signal
and scroll to the selected path, like this:
$treeview->get_selection->signal_connect (changed => sub {
my ($selection) = <at> _;
my ($model, $iter) = $selection->get_selected;
if ($iter) {
$selection->get_tree_view->scroll_to_cell ($model->get_path
($iter));
}
});
I tried your code, it gives me:
Gtk-CRITICAL **: gtk_tree_selection_get_selected: assertion `selection->type !=
GTK_SELECTION_MULTIPLE' failed at /home/wangy22/trunk/destcnltr line 670.
I modified it and it works again:
$treeview->get_selection->signal_connect (changed => sub {
my ($selection) = @_;
my $path = $selection->get_selected_rows;
$selection->get_tree_view->scroll_to_cell ($path) if ($path);
});
Any comments?
Thanks!
Yu
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]