Re: difference of the get_dest_row_at_pos and get_path_at_pos in treeview class
- From: Liangxu Wang <wlx mygis org>
- To: Chris Vine <chris cvine freeserve co uk>
- Cc: gtkmm-list gnome org
- Subject: Re: difference of the get_dest_row_at_pos and get_path_at_pos in treeview class
- Date: Fri, 05 Oct 2007 16:32:23 +0800
Thanks for your explanation, I understand this now.
And I could receive the gnome bugzilla confirmation email, so may
someone else file this bug on gtkmm bugzilla?
On 二, 2007-10-02 at 20:45 +0100, Chris Vine wrote:
> On Tue, 2007-10-02 at 22:34 +0800, Liangxu Wang wrote:
> > Hi,
> > Sorry if I misunderstanding of these two function in treeview class,
> > from my understanding, the two function should get the path result, but
> > if I set the headers visible(this is the default behavior), the two
> > function return different path. So is this a bug or feature?
> > Thanks.
> >
> > code example:
> > ++++++++++++++++++
> > Gtk::TreeModel::Path path;
> > Gtk::TreeViewColumn* c=0;
> > int cellx,celly;
> > get_path_at_pos(x,y,path,c,cellx,celly);
> > Gtk::TreeModel::iterator iter = refTreeModel->get_iter(path);
> > std::cout<<"x,y:"<<x<<","<<y<<std::endl;
> > if (iter)
> > {
> > std::cout<<(*iter)[columns.name]<<std::endl;
> > }
> > Gtk::TreeViewDropPosition pos;
> > get_dest_row_at_pos(x,y,path,pos);
> > iter = refTreeModel->get_iter(path);
> > std::cout<<"x,y:"<<x<<","<<y<<std::endl;
> > if (iter)
> > {
> > std::cout<<(*iter)[columns.name]<<std::endl;
>
> The GTK+ functions gtk_tree_view_get_dest_row_at_pos() takes widget
> co-ordinates, whereas gtk_tree_view_get_path_at_pos() takes GdkWindow
> (event) co-ordinates. They will be different if your tree view has
> headers, as you have found. If you want more information see
> file:///opt/gnome2/share/gtk-doc/html/gtk/GtkTreeView.html#gtk-tree-view-get-path-at-pos
>
> Assuming that Gtk::TreeView::get_path_at_pos() just wraps
> gtk_treeview_get_path_at_pos() without carrying out co-ordinate
> translation, then the gtkmm documentation is wrong in saying that it
> takes widget co-ordinates (that is,
> http://www.gtkmm.org/docs/gtkmm-2.4/docs/reference/html/classGtk_1_1TreeView.html#71e5b97b84689b0dfd48426f440313dd would be wrong). I suggest you put a documentation bug in Bugzilla.
>
> If you want widget co-ordinates in an event handler (such as when
> overriding Gtk::Widget::on_motion_notify_event() or attaching a callback
> to the Gtk::Widget::signal_motion_notify_event() signal) in order to
> call Gtk::TreeView::get_dest_row_at_pos(), you will need to use
> Gtk::Widget::get_pointer() in the handler to obtain them rather than use
> the co-ordinates passed as arguments to the callback. If you want
> GdkWindow co-ordinates, then you should use the arguments which are
> passed to the callback.
>
> Chris
>
>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]