public NodeController Add(NodeController node) { node = node.GetRoot(); Children.Add(node); node.Parent = this; return(node); }
public NodeController GetPosition(int x, int y) { if (X <= x && x <= X + Width && Y <= y && y <= Y + Height) { return(this); } foreach (NodeController n in Children) { NodeController nodePosition = n.GetPosition(x, y); if (nodePosition != null) { return(nodePosition); } } return(null); }
public NodeController GetRoot() { NodeController current = this; while (true) { if (current.Parent != null) { current = current.Parent; } else { break; } } return(current); }
public NodeController Add() { int addNodeX = X + Width + NodeX; int addNodeY = Y; foreach (var n in children) { addNodeY = Math.Max(addNodeY, n.Y + n.Height + NodeY); } NodeController node = new NodeController(addNodeX, addNodeY, Width, Height) { Parent = this }; Children.Add(node); return(node); }
public NodeController Remove(NodeController node) { node.Parent.Children.Remove(node); node.Parent = this; return(node); }