[Gtk-sharp-list] Re: Getting selection for a NodeStore
Ecmel Ercan
ecmel@ercansoy.com
Wed, 28 Jan 2004 02:32:08 +0200
I have a workaround:
First some native declarations:
[DllImport("libgtk-win32-2.0-0.dll")]
static extern bool gtk_tree_selection_get_selected(IntPtr raw, out IntPtr model, out Gtk.TreeIter iter);
public static bool GetSelected(TreeSelection selection, out Gtk.TreeIter iter)
{
IntPtr model_handle;
bool raw_ret = gtk_tree_selection_get_selected(selection.Handle, out model_handle, out iter);
bool ret = raw_ret;
return ret;
}
[DllImport("libgtk-win32-2.0-0.dll")]
static extern IntPtr gtk_tree_model_get_path(IntPtr raw, ref Gtk.TreeIter iter);
public static Gtk.TreePath GetPath(NodeStore store, Gtk.TreeIter iter)
{
IntPtr raw_ret = gtk_tree_model_get_path(store.Handle, ref iter);
Gtk.TreePath ret = new Gtk.TreePath(raw_ret);
if (ret == null)
ret = new Gtk.TreePath(raw_ret);
return ret;
}
To get the selected node:
TreeIter iter;
GetSelected (view.Selection, out iter);
TreePath path = GetPath (store, iter);
ITreeNode node = store.GetNode (path);
Console.WriteLine (path.ToString ());
This works for me.
Ecmel