internal void OnNodesChanged(TreeModelEventArgs args) { if (NodesChanged != null) NodesChanged(this, args); }
private void ClearNodesSize(TreeModelEventArgs e, TreeNodeAdv parent) { if (e.Indices != null) { foreach (int index in e.Indices) { if (index >= 0 && index < parent.Nodes.Count) { TreeNodeAdv node = parent.Nodes[index]; node.Height = node.RightBounds = null; } else throw new ArgumentOutOfRangeException("Index out of range"); } } else { foreach (TreeNodeAdv node in parent.Nodes) { foreach (object obj in e.Children) if (node.Tag == obj) { node.Height = node.RightBounds = null; } } } }
internal void OnNodeRemoved(Node parent, int index, Node node) { if (NodesRemoved != null) { TreeModelEventArgs args = new TreeModelEventArgs(GetPath(parent), new int[] { index }, new object[] { node }); NodesRemoved(this, args); } }
private void _model_NodesInserted(object sender, TreeModelEventArgs e) { if (e.Indices == null) throw new ArgumentNullException("Indices"); TreeNodeAdv parent = FindNode(e.Path); if (parent != null) { for (int i = 0; i < e.Children.Length; i++) AddNewNode(parent, e.Children[i], e.Indices[i]); } SmartFullUpdate(); }
private void _model_NodesRemoved(object sender, TreeModelEventArgs e) { TreeNodeAdv parent = FindNode(e.Path); if (parent != null) { if (e.Indices != null) { List<int> list = new List<int>(e.Indices); list.Sort(); for (int n = list.Count - 1; n >= 0; n--) { int index = list[n]; if (index >= 0 && index <= parent.Nodes.Count) parent.Nodes.RemoveAt(index); else throw new ArgumentOutOfRangeException("Index out of range"); } } else { for (int i = parent.Nodes.Count - 1; i >= 0; i--) { for (int n = 0; n < e.Children.Length; n++) if (parent.Nodes[i].Tag == e.Children[n]) { parent.Nodes.RemoveAt(i); break; } } } } UpdateSelection(); SmartFullUpdate(); }
private void _model_NodesChanged(object sender, TreeModelEventArgs e) { TreeNodeAdv parent = FindNode(e.Path); if (parent != null && parent.IsVisible && parent.IsExpanded) { if (InvokeRequired) Invoke(new UpdateContentWidthDelegate(ClearNodesSize), e, parent); else ClearNodesSize(e, parent); SmartFullUpdate(); } }
void _innerModel_NodesRemoved(object sender, TreeModelEventArgs e) { OnStructureChanged(new TreePathEventArgs(e.Path)); }
private void _model_NodesChanged(object sender, TreeModelEventArgs e) { TreeNodeAdv parent = FindNode(e.Path); if (parent != null) { if (e.Indices != null) { foreach (int index in e.Indices) { if (index >= 0 && index < parent.Nodes.Count) { TreeNodeAdv node = parent.Nodes[index]; Rectangle rect = GetNodeBounds(node); _contentWidth = Math.Max(_contentWidth, rect.Right); } else throw new ArgumentOutOfRangeException("Index out of range"); } } else { foreach (TreeNodeAdv node in parent.Nodes) { foreach (object obj in e.Children) if (node.Tag == obj) { Rectangle rect = GetNodeBounds(node); _contentWidth = Math.Max(_contentWidth, rect.Right); } } } } SafeUpdateScrollBars(); UpdateView(); }
public void OnNodeRemoved(TreeModelEventArgs args) { if (NodesRemoved != null) NodesRemoved(this, args); }
public void OnNodeInserted(TreeModelEventArgs args) { if (NodesInserted != null) NodesInserted(this, args); }