Hey Peter,

sub button_pressed_event {
       my ($widget, $event) = @_;

       my $treeselection = $tview->get_selection;

       my ($x, $y)=$event->get_coords;
       my $mouse_path=$tview->get_path_at_pos($x, $y);
       if($mouse_path) {
               $tview->set_cursor($mouse_path);
               $treeselection->select_path($mouse_path);
       }

       my ($path, $column) = $tview->get_cursor;
       print $column->get_sort_column_id . "\n";
}

So the get_cursor has update the column if I have a left button
clicked. If I have only the right button (button 3) even if I use the
set_cursor it does not update the column. Is it a bug or a feature?

However I found a simple solution, just I was blind to find it earlier:

(path, column, cell_x, cell_y) = $tree_view->get_path_at_pos ($x, $y)


Cheers,
Attila

On Tue, Oct 12, 2010 at 2:54 PM, Peter Juhasz <peter.juhas...@gmail.com> wrote:
> my @columns = $tview->get_columns;
>
> sub button_pressed_event {
>    my ($widget, $event) = @_;
>    my ($path, $column) = $slist->get_cursor;
>
>    # do what you want with $column...
>
>    # or if you want to check for a specific column:
>    if ($column == $columns[0]) {
>        # do whatever with it
>    }
>
> Péter Juhász
>
> On Tue, Oct 12, 2010 at 1:11 PM, Attila bardi <attila.ba...@gmail.com> wrote:
>> Hey,
>>
>> maybe I missed something but I can't find the solution (if it exist):
>> I have a tree with several columns. When I have the selected row I
>> would like to know which column was under the mouse pointer.
>> Is it possible to have it? How?
>>
>> Thanks,
>> Attila
>>
>> sub button_pressed_event {
>>
>>        my ($widget, $event) = @_;
>>        my $treeselection = $tview->get_selection;
>>        my ($x, $y)=$event->get_coords;
>>        my $mouse_path=$tview->get_path_at_pos($x, $y);
>>        if($mouse_path) {
>>                $treeselection->select_path($mouse_path);
>>        }
>>
>>        my $treeiter = $treeselection->get_selected;
>>        if ( $treeiter ) {
>>                if ( $event->button == 3) {
>>                        my $value1 = $model->get($treeiter,0);
>>                        my $value2 = $model->get($treeiter,4);
>>                        printf "first: " . $value1 . " second: " .
>> $value2 . "\n";
>>                        my $menu = Gtk2::Menu->new();
>>                        my $menuitem1 =
>> Gtk2::ImageMenuItem->new_from_stock('gtk-copy');
>>                        $menuitem1->signal_connect(activate => sub {
>>                                printf "selected :" . $value1 . "\n";
>>                                $clipboard->set_text($value1);
>>                        });
>>                        my $menuitem2 = Gtk2::MenuItem->new("$value2");
>>
>>                        $menu->add($menuitem1);
>>                        $menu->add($menuitem2);
>>                        $menu->show_all;
>>                        $menu->popup(
>>                                undef, # parent menu shell
>>                                undef, # parent menu item
>>                                undef, # menu pos func
>>                                undef, # data
>>                                3,
>>                                $event->time
>>                        );
>>                        return TRUE;
>>                }
>>        } else {
>>                printf "No row selected\n";
>>        }
>>        return FALSE;
>> }
>>
>> _______________________________________________
>> gtk-perl-list mailing list
>> gtk-perl-list@gnome.org
>> http://mail.gnome.org/mailman/listinfo/gtk-perl-list
>>
>>
>
_______________________________________________
gtk-perl-list mailing list
gtk-perl-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-perl-list

Reply via email to