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 }); }
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); }
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(); }
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; } } } }
internal void OnDoubleClickCall(MouseEventArgs e, TreeNode_Old self) { OnDoubleClick(e, self); }
public void Reset() { _current = this; }
internal int GetTreeIndex() // ? dunno. { TreeNode_Old parent_node = GetRootNode(); return(parent_node.FindTreeIndex(this).Index); }
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; }
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 }; }
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; } } }