protected bool RemoveAt(int index) { if (0 <= index && index < children.Count) { UIVisual child = children[index]; children.RemoveAt(index); child.Parent = null; OnChildRemoved(child); return(true); } else { return(false); } }
protected void Add(UIVisual item) { if (item == null) { return; } int zOrder = item.ZOrder; for (int i = children.Count - 1; i >= 0; i--) { if (zOrder >= children[i].ZOrder) { Insert(i + 1, item); return; } } Insert(0, item); }
private void Insert(int index, UIVisual item) { index = MathExtension.Clamp(index, 0, children.Count); if (item.Parent != null) { item.Parent.Remove(item); } Debug.Assert(item.Parent == null); item.Parent = this; if (index < children.Count) { children.Insert(index, item); } else { children.Add(item); } OnChildAdded(item); }
protected bool Remove(UIVisual item) { return(RemoveAt(children.IndexOf(item))); }
internal void BringChildToFront(UIVisual child) { }
internal void SendChildToBack(UIVisual child) { }
internal void OnChildZOrderChanged(UIVisual child, int old) { }
protected virtual void OnChildrenRemoved(UIVisual item) { }
protected virtual void OnChildAdded(UIVisual item) { }
public void RemoveChild(UIVisual item) { Remove(item); }
public void AddChild(UIVisual item) { Add(item); }