// 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); }
// 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); }