Inheritance: IEnumerable, IEnumerator
Example #1
0
        internal FindResult FindTreeIndex(TreeNode_Old node)
        {
            FindResult res = new FindResult();

            for (int i = 0; i < Nodes.Count; i++)
            {
                if (node._id == Nodes[i]._id)
                {
                    return new FindResult()
                           {
                               Found = true, Index = res.Index + 1
                           }
                }
                ;

                var node_res = Nodes[i].FindTreeIndex(node);
                if (!_collapsed && !Nodes[i]._hidden)
                {
                    res.Index += node_res.Index + 1;
                }
                res.Found = node_res.Found;
                if (node_res.Found)
                {
                    return(res);
                }
            }
            return(new FindResult()
            {
                Found = false, Index = res.Index
            });
        }
Example #2
0
        public bool MoveNext()
        {
            if (_current == null)
            {
                _current = this;
            }
            if (_current.Nodes.Count > 0)
            {
                _current = _current.Nodes[0];
                return(true);
            }

            var parentNode = _current.Parent;

            while (parentNode != null && _current._id != this._id)
            {
                if (_current.Index + 1 > parentNode.Nodes.Count)
                {
                    _current   = parentNode;
                    parentNode = _current.Parent;
                }
                else
                {
                    _current = parentNode.Nodes[_current.Index];
                    return(true);
                }
            }

            return(false);
        }
Example #3
0
 public void AddNode(TreeNode_Old node)
 {
     Nodes.Add(node);
     node.Index  = Nodes.Count;
     node.Parent = this;
     //if (node.Self == null && node.CreateGO)
     //    node.Self = node.CreateNode();
     node.UpdateContent();
 }
Example #4
0
        protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);
            var mclient = PointToClient(MousePosition);

            // Scroll.
            Rectangle _scrollRect = new Rectangle(Width - _scrollWidth, _scrollY, _scrollWidth, _scrollHeight);

            if (_scrollRect.Contains(mclient))
            {
                _scroll       = true;
                _scrollStartY = mclient.Y - _scrollY;
            }
            else
            {
                _scroll = false;
            }

            // Drag items.
            if (!_scroll)
            {
                for (int i = 0; i < _renderList.Count; i++)
                {
                    Rectangle nodeRect = new Rectangle(0, i * NodeHeight, Width - _scrollWidth, NodeHeight);
                    if (nodeRect.Contains(mclient))
                    {
                        _selectedIndex = _renderList[i].Index;
                        if (!_renderList[i].Node.AllowDrag)
                        {
                            break;
                        }
                        _drag         = true;
                        _dragNode     = _renderList[i].Node;
                        _dragPosition = mclient;
                        break;
                    }
                }
            }
        }
Example #5
0
 internal void OnDoubleClickCall(MouseEventArgs e, TreeNode_Old self)
 {
     OnDoubleClick(e, self);
 }
Example #6
0
 public void Reset()
 {
     _current = this;
 }
Example #7
0
        internal int GetTreeIndex() // ? dunno.
        {
            TreeNode_Old parent_node = GetRootNode();

            return(parent_node.FindTreeIndex(this).Index);
        }
Example #8
0
 internal void OnDoubleClickCall(MouseEventArgs e, TreeNode_Old self)
 {
     OnDoubleClick(e, self);
 }
Example #9
0
 public void Reset()
 {
     _current = this;
 }
Example #10
0
        public bool MoveNext()
        {
            if (_current == null) _current = this;
            if (_current.Nodes.Count > 0)
            {
                _current = _current.Nodes[0];
                return true;
            }

            var parentNode = _current.Parent;
            while (parentNode != null && _current._id != this._id)
            {
                if (_current.Index + 1 > parentNode.Nodes.Count)
                {
                    _current = parentNode;
                    parentNode = _current.Parent;
                }
                else
                {
                    _current = parentNode.Nodes[_current.Index];
                    return true;
                }
            }

            return false;
        }
Example #11
0
 public void AddNode(TreeNode_Old node)
 {
     Nodes.Add(node);
     node.Index = Nodes.Count;
     node.Parent = this;
     //if (node.Self == null && node.CreateGO)
     //    node.Self = node.CreateNode();
     node.UpdateContent();
 }
Example #12
0
        internal FindResult FindTreeIndex(TreeNode_Old node)
        {
            FindResult res = new FindResult();
            for (int i = 0; i < Nodes.Count; i++)
            {
                if (node._id == Nodes[i]._id)
                    return new FindResult() { Found = true, Index = res.Index + 1 };

                var node_res = Nodes[i].FindTreeIndex(node);
                if (!_collapsed && !Nodes[i]._hidden)
                    res.Index += node_res.Index + 1;
                res.Found = node_res.Found;
                if (node_res.Found)
                    return res;
            }
            return new FindResult() { Found = false, Index = res.Index };
        }
Example #13
0
        protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);
            var mclient = PointToClient(MousePosition);

            // Scroll.
            Rectangle _scrollRect = new Rectangle(Width - _scrollWidth, _scrollY, _scrollWidth, _scrollHeight);
            if (_scrollRect.Contains(mclient))
            {
                _scroll = true;
                _scrollStartY = mclient.Y - _scrollY;
            }
            else
                _scroll = false;

            // Drag items.
            if (!_scroll)
                for (int i = 0; i < _renderList.Count; i++)
                {
                    Rectangle nodeRect = new Rectangle(0, i * NodeHeight, Width - _scrollWidth, NodeHeight);
                    if (nodeRect.Contains(mclient))
                    {
                        _selectedIndex = _renderList[i].Index;
                        if (!_renderList[i].Node.AllowDrag) break;
                        _drag = true;
                        _dragNode = _renderList[i].Node;
                        _dragPosition = mclient;
                        break;
                    }
                }
        }