/// <summary> /// Use reflection to get the TreePath of the Graphs node. This is kind of ugly... /// </summary> /// <param name="tree">Instance of a Gtk.TreeView.</param> /// <param name="treeModel">Instance of a Gtk.TreeModel.</param> /// <param name="path">Path string - e.g. ".Simulations.ContinuousWheat.Paddock"</param> private Gtk.TreePath GetTreePath(TreeView tree, string path) { Gtk.TreeModel treeModel = (Gtk.TreeModel)ReflectionUtilities.GetValueOfFieldOrProperty("treemodel", tree); MethodInfo findNode = typeof(TreeView).GetMethod("FindNode", BindingFlags.NonPublic | BindingFlags.Instance); Gtk.TreeIter iter = (Gtk.TreeIter)findNode.Invoke(tree, new[] { path }); return(treeModel.GetPath(iter)); }
bool IsRowSeparator(Gtk.TreeModel model, Gtk.TreeIter iter) { Gtk.TreePath path = model.GetPath(iter); bool res = false; ApplicationContext.InvokeUserCode(delegate { res = EventSink.RowIsSeparator(path.Indices[0]); }); return(res); }
bool IsRowSeparator(Gtk.TreeModel model, Gtk.TreeIter iter) { Gtk.TreePath path = model.GetPath(iter); bool res = false; Toolkit.Invoke(delegate { res = EventSink.RowIsSeparator(path.Indices[0]); }); return(res); }
private void RenderAssemblyDefinition(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { object curObject = model.GetValue(iter, 0); switch (model.GetPath(iter).Depth) { // Assemblies case 1: AssemblyDefinition aDef = curObject as AssemblyDefinition; Debug.Assert(aDef != null, "Must have assembly."); (cell as Gtk.CellRendererText).Text = aDef.Name.Name; break; // Modules case 2: ModuleDefinition modDef = curObject as ModuleDefinition; Debug.Assert(modDef != null, "Must have module."); (cell as Gtk.CellRendererText).Text = modDef.Name; break; // Types case 3: TypeDefinition tDef = curObject as TypeDefinition; Debug.Assert(tDef != null, "Must have type (definition)."); (cell as Gtk.CellRendererText).Text = tDef.Name; break; // Methods case 4: IMemberDefinition memberDef = curObject as IMemberDefinition; Debug.Assert(memberDef != null, "Must have member."); (cell as Gtk.CellRendererText).Text = memberDef.Name; break; } }