protected bool CheckPlace(ConsoleContainer newChild) { bool result = true; if (!ContainerIsInContainer(newChild)) { return(false); } foreach (ConsoleContainer child in childrenContainers) { if (child == newChild) { continue; } bool collision = ((child.left <= newChild.left && newChild.left <= child.left + child.width - 1) || (newChild.left <= child.left && child.left <= newChild.left + newChild.width - 1)) && ((child.top <= newChild.top && newChild.top <= child.top + child.height - 1) || (newChild.top <= child.top && child.top <= newChild.top + newChild.height - 1)); if (collision) { result = false; break; } } return(result); }
public override bool Detach(ConsoleContainer child) { bool result = innerContainers.Remove(child); innerSpace.Detach(child); return(result); }
public VerticalStack(int width, int height, int left, int top) : base(width, height, left, top) { innerContainers = new List <ConsoleContainer>(); innerSpace = new ConsoleContainer(width, height, 0, 0); base.Attach(innerSpace); }
protected bool ChildSetCursorPosition(ConsoleContainer child, int left, int top) { if (!childrenContainers.Contains(child)) { return(false); } return(SetCursorPosition(child.left + left, child.top + top)); }
public override bool Attach(ConsoleContainer child) { if (FreeHeight >= child.Height && child.Width <= width) { innerContainers.Add(child); return(true); } return(false); }
protected bool ContainerIsInContainer(ConsoleContainer child) { if (PositionIsInContainer(child.left, child.top) && PositionIsInContainer(child.left + child.width - 1, child.top + child.height - 1)) { return(true); } return(false); }
public virtual bool Detach(ConsoleContainer child) { bool result = childrenContainers.Remove(child); if (result) { child.parentContainer = null; } return(result); }
public virtual bool Attach(ConsoleContainer child) { bool result = false; if (child == this) { return(false); } if (CheckPlace(child)) { childrenContainers.Add(child); child.parentContainer = this; result = true; } return(result); }
public override bool Detach(ConsoleContainer child) { return(false); }
// TODO: finish protected virtual bool Move(ConsoleContainer child, int left, int top) { return(false); }