Exemple #1
0
        // Decide window position
        public void SetWindowPosition(Window window)
        {
            Dimension pos = new Dimension();

            switch (window.WindowSpawnPosition)
            {
                case Corner.NONE:
                    goto default;
                case Corner.MIDDLE:
                    pos = new Dimension((Renderer.Instance.RenderSize.Width / 2) - (window.Bound.Width/2), (Renderer.Instance.RenderSize.Height / 2) - (window.Bound.Height/2));
                    window.Position = pos;
                    break;
                case Corner.TOPLEFT:
                    window.Position = new Dimension();
                    break;
                case Corner.TOPRIGHT:
                    pos = new Dimension(Renderer.Instance.device.Viewport.Width - window.Bound.Width, 0);
                    window.Position = pos;
                    break;
                case Corner.BOTLEFT:
                    pos = new Dimension(0, Renderer.Instance.device.Viewport.Height - window.Bound.Height);
                    window.Position = pos;
                    break;
                case Corner.BOTRIGHT:
                    pos = new Dimension(Renderer.Instance.device.Viewport.Width - window.Bound.Width, Renderer.Instance.device.Viewport.Height - window.Bound.Height);
                    window.Position = pos;
                    break;
                case Corner.TOP:
                    pos = new Dimension((Renderer.Instance.device.Viewport.Width / 2) - (window.Bound.Width / 2), 0);
                    window.Position = pos;
                    break;
                case Corner.BOT:
                    pos = new Dimension((Renderer.Instance.device.Viewport.Width / 2) - (window.Bound.Width / 2), Renderer.Instance.device.Viewport.Height - window.Bound.Height);
                    window.Position = pos;
                    break;
                case Corner.LEFT:
                    pos = new Dimension(0, (Renderer.Instance.device.Viewport.Height / 2) - (window.Bound.Height / 2));
                    window.Position = pos;
                    break;
                case Corner.RIGHT:
                    pos = new Dimension(Renderer.Instance.device.Viewport.Width - window.Bound.Width, (Renderer.Instance.device.Viewport.Height / 2) - (window.Bound.Height / 2));
                    window.Position = pos;
                    break;
                default:
                    window.Position = nextPosition;
                    // Check if next position exceeds screen
                    if (nextPosition.X + window.Size.Width > Renderer.Instance.device.Viewport.Width)
                    {
                        // reset x
                        nextPosition.X = 70;
                    }
                    if (nextPosition.Y + window.Size.Height > Renderer.Instance.device.Viewport.Height)
                    {
                        // reset Y
                        nextPosition.Y = 70;
                    }
                    nextPosition += new Dimension(30, 30);

                    break;

            }
            window.LayoutUpdate(true);
        }
Exemple #2
0
 // Add windows to display and positions it according to its needs.
 public void AddWindow(Window window)
 {
     window.Zvalue = nextZvalue++;
     SetWindowPosition(window);
     window.LayoutUpdate(false);
     Windows.Add(window);
 }