/// <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));
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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;
            }
        }