Beispiel #1
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        public virtual bool Detach(ConsoleContainer child)
        {
            bool result = childrenContainers.Remove(child);

            if (result)
            {
                child.parentContainer = null;
            }

            return(result);
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
 public override bool Detach(ConsoleContainer child)
 {
     return(false);
 }
Beispiel #10
0
 // TODO: finish
 protected virtual bool Move(ConsoleContainer child, int left, int top)
 {
     return(false);
 }