private void RemoveChild(NiHierarchy item) { RemoveFromChildren(item); item.SetSite(null); _connectionPoint.ForAll(p => p.OnChildRemoved(item)); }
private void AddChild(NiHierarchy item) { item.SetSite(this); AddToChildren(item); _connectionPoint.ForAll(p => p.OnChildAdded(item)); }
private void AddToChildren(NiHierarchy item) { var current = _children.First; while (current != null) { // Copy to suppress warning CS1690: Accessing a member // on * may cause a runtime exception because it is a field of // a marshal-by-reference class. int?currentSortPriority = current.Value._sortPriority; int compare = _sortPriority.GetValueOrDefault().CompareTo( currentSortPriority.GetValueOrDefault() ); if (compare == 0) { compare = String.Compare(_name, current.Value._name, NameComparison); } if (compare < 0) { break; } current = current.Next; } item._position = current == null ? _children.AddLast(item) : _children.AddBefore(current, item); }
private HResult ProcessParentChange(NiHierarchy parent) { if (_parent != null) { _parent.RemoveChild(this); } _parent = parent; if (_parent != null) { _parent.AddChild(this); } return(HResult.OK); }
private void Reposition(NiHierarchy item) { RemoveFromChildren(item); AddToChildren(item); }
private void RemoveFromChildren(NiHierarchy item) { _children.Remove(item._position); item._position = null; }
private HResult ProcessParentChange(NiHierarchy parent) { if (_parent != null) _parent.RemoveChild(this); _parent = parent; if (_parent != null) _parent.AddChild(this); return HResult.OK; }
private void AddToChildren(NiHierarchy item) { var current = _children.First; while (current != null) { // Copy to suppress warning CS1690: Accessing a member // on * may cause a runtime exception because it is a field of // a marshal-by-reference class. int? currentSortPriority = current.Value._sortPriority; int compare = _sortPriority.GetValueOrDefault().CompareTo( currentSortPriority.GetValueOrDefault() ); if (compare == 0) compare = String.Compare(_name, current.Value._name, NameComparison); if (compare < 0) break; current = current.Next; } item._position = current == null ? _children.AddLast(item) : _children.AddBefore(current, item); }