private Rectangle plus_minus_bounds = Rectangle.Empty;
private Rectangle checkbox_bounds = Rectangle.Empty;
private bool check;
+ private bool is_editing;
internal OwnerDrawPropertyBag prop_bag;
private object tag;
return;
check = value;
- // We should just be invalidating the node
if (TreeView != null)
- tree_view.Refresh ();
+ tree_view.UpdateNode (this);
}
}
set { tag = value; }
}
+ public bool IsSelected {
+ get {
+ if (TreeView == null)
+ return false;
+ return TreeView.SelectedNode == this;
+ }
+ }
+
+ public bool IsEditing {
+ get { return is_editing; }
+ }
+
+ public bool IsVisible {
+ get {
+ if (TreeView == null)
+ return false;
+
+ if (bounds.Y < 0 && bounds.Y > TreeView.ClientRectangle.Height)
+ return false;
+
+ TreeNode parent = Parent;
+ while (parent != null) {
+ if (!parent.IsExpanded)
+ return false;
+ parent = parent.Parent;
+ }
+ return true;
+ }
+ }
+
+ public void BeginEdit ()
+ {
+ is_editing = true;
+ }
+
+ public void EndEdit (bool cancel)
+ {
+ is_editing = false;
+ if (!cancel && TreeView != null)
+ text = TreeView.LabelEditText;
+ }
+
public void Expand ()
{
Expand(false);
is_expanded = true;
if (TreeView != null)
TreeView.OnAfterCollapse (new TreeViewEventArgs (this));
- if (IsNodeVisible () && TreeView != null)
+ if (IsVisible && TreeView != null)
TreeView.UpdateBelow (this);
}
}
is_expanded = false;
if (TreeView != null)
TreeView.OnAfterCollapse (new TreeViewEventArgs (this));
- if (IsNodeVisible () && TreeView != null)
+ if (IsVisible && TreeView != null)
TreeView.UpdateBelow (this);
if(!byInternal && TreeView != null && HasFocusInChildren ())
TreeView.SelectedNode = this;
Collapse ();
else
Expand ();
-
- if (TreeView != null)
- TreeView.Refresh ();
}
internal void SetNodes (TreeNodeCollection nodes)
this.index = index;
}
+ internal void SetIndex (int index)
+ {
+ this.index = index;
+ }
+
private bool IsInClippingRect
{
get {
return true;
}
}
-
- private bool IsNodeVisible ()
- {
- if (TreeView == null)
- return false;
-
- if (bounds.Y < 0 && bounds.Y > TreeView.ClientRectangle.Height)
- return false;
-
- TreeNode parent = Parent;
- while (parent != null) {
- if (!parent.IsExpanded)
- return false;
- parent = parent.Parent;
- }
- return true;
- }
}
}