public override void LoadContent() { base.LoadContent(); cam = new Camera(GraphicsDevice); uiManager = new UIManager(); //uiManager.EnableProfilling = true; var menuPanel = new UIPanel(); menuPanel.AddConstraint(Edge.CenterXY, null, Edge.CenterXY); menuPanel.Alpha = 0f; var testScenesButton = GetMenuEntry(menuPanel, "UI Test Scenes"); testScenesButton.InputReleased += testScenes; menuPanel.AddChild(testScenesButton); var transitionScenesButton = GetMenuEntry(menuPanel, "Transition Test Scenes"); transitionScenesButton.InputReleased += TransitionScenesButton_InputReleased; menuPanel.AddChild(transitionScenesButton); var exitButton = GetMenuEntry(menuPanel, "Exit"); exitButton.InputReleased += ExitButton_InputReleased; menuPanel.AddChild(exitButton); uiManager.Add(menuPanel); }
public override void LoadContent() { var menuBar = new UIPanel(); menuBar.AddConstraint(Edge.Top, null, Edge.Top, 10); menuBar.AddConstraint(Edge.Left, null, Edge.Left, 50); menuBar.Alpha = 0f; var homeItem = new UIButton(); homeItem.AddDecoration(new UILabel("Home Menu")); homeItem.AddConstraint(Edge.Left, menuBar, Edge.Left); homeItem.AddConstraint(Edge.CenterY, menuBar, Edge.CenterY); homeItem.InputReleased += HomeItem_InputReleased; menuBar.AddChild(homeItem); var debugCheckbox = new UILabelCheckBox("Draw UI Borders:"); debugCheckbox.AddConstraint(Edge.Left, homeItem, Edge.Right, -20); debugCheckbox.AddConstraint(Edge.CenterY, menuBar, Edge.CenterY); debugCheckbox.CheckBox.InputReleased += DebugCheckbox_InputReleased; debugCheckbox.CheckBox.Checked = UIManager.DrawDebug; menuBar.AddChild(debugCheckbox); testSceneUIManager = new UIManager(); testSceneUIManager.Add(menuBar); }
public UIScrollPanel() { this.AutoSize = false; this.Restriction = ScrollRestriction.Unrestricted; this.accel = new Accelerator2D(); this.ClipContent = true; this.ClampContent = true; this.InputDown += UIScrollPanel_MouseHeld; this.InputPressed += UIScrollPanel_MousePressed; this.InputReleasedAnywhere += UIScrollPanel_MouseReleasedAnywhere; contentPanel = new UIPanel(); contentPanel.AbsorbPointer = false; contentPanel.AutoSize = true; contentPanel.DrawBounds = false; contentPanel.AddConstraint(Edge.TopLeft, this, Edge.TopLeft); base.AddChild(contentPanel); }
public UIScrollBar(ScrollBarOrientation orientation = ScrollBarOrientation.Vertical) { Orientation = orientation; string arrowResource = string.Empty; Vector2 sliderSize = Vector2.Zero; switch (orientation) { case ScrollBarOrientation.Vertical: sliderSize = new Vector2(0, 20); arrowResource = "graphics/arrow_down"; break; case ScrollBarOrientation.Horizontal: sliderSize = new Vector2(20, 0); arrowResource = "graphics/arrow_left"; break; } AutoSize = false; scrollStep = 0.02f; Color = new Color(240, 240, 240); Alpha = 1f; DrawBounds = true; sliderBackground = new UIPanel(); sliderBackground.Color = new Color(240, 240, 240); sliderBackground.Alpha = 1f; sliderBackground.InputMoved += sliderBackground_MouseMoved; sliderBackground.InputPressed += sliderBackground_MousePressed; slider = new UIPanel(); slider.Color = new Color(205, 205, 205); slider.Alpha = 1f; slider.AutoSize = false; slider.AbsorbPointer = false; slider.Size = sliderSize; //slider.InputDown += sliderBackground_MousePressed; arrowA = new UIButton(); var arrowAImg = new UIImage(arrowResource); arrowAImg.Color = new Color(96, 96, 96); arrowAImg.AddConstraint(Edge.Dock, arrowA, Edge.Dock); arrowA.Tag = "bla"; arrowA.AddDecoration(arrowAImg); arrowA.PointedColor = new Color(190, 190, 190); arrowA.PressedColor = new Color(120, 120, 120); arrowA.HighlightZoom = false; arrowA.InputDown += arrowA_MouseHeld; arrowB = new UIButton(); var arrowBImg = new UIImage(arrowResource); arrowBImg.Color = new Color(96, 96, 96); arrowBImg.AddConstraint(Edge.Dock, arrowB, Edge.Dock); arrowB.AddDecoration(arrowBImg); arrowB.PointedColor = new Color(190, 190, 190); arrowB.PressedColor = new Color(120, 120, 120); arrowB.HighlightZoom = false; arrowB.InputDown += arrowB_MouseHeld; switch (orientation) { case ScrollBarOrientation.Vertical: arrowAImg.SpriteEffect = SpriteEffects.FlipVertically; arrowA.AddConstraint(Edge.Horizontal | Edge.Top, this, Edge.Horizontal | Edge.Top); arrowB.AddConstraint(Edge.Horizontal, this, Edge.Horizontal); arrowB.AddConstraint(Edge.Bottom, this, Edge.Bottom); sliderBackground.AddConstraint(Edge.Horizontal, this, Edge.Horizontal); sliderBackground.AddConstraint(Edge.Top, arrowA, Edge.Bottom); sliderBackground.AddConstraint(Edge.Bottom, arrowB, Edge.Top); slider.AddConstraint(Edge.Top, sliderBackground, Edge.Top, ConstraintCategory.Initialization); slider.AddConstraint(Edge.Horizontal, sliderBackground, Edge.Horizontal); break; case ScrollBarOrientation.Horizontal: arrowBImg.SpriteEffect = SpriteEffects.FlipHorizontally; arrowA.AddConstraint(Edge.Vertical | Edge.Left, this, Edge.Vertical | Edge.Left); arrowB.AddConstraint(Edge.Vertical, this, Edge.Vertical); arrowB.AddConstraint(Edge.Right, this, Edge.Right); sliderBackground.AddConstraint(Edge.Vertical, this, Edge.Vertical); sliderBackground.AddConstraint(Edge.Left, arrowA, Edge.Right); sliderBackground.AddConstraint(Edge.Right, arrowB, Edge.Left); slider.AddConstraint(Edge.Left, sliderBackground, Edge.Left, ConstraintCategory.Initialization); slider.AddConstraint(Edge.Vertical, sliderBackground, Edge.Vertical); break; } AbsorbPointer = false; //base.AbsorbPointer = true; //slider.AbsorbPointer = true; //arrowDown.AbsorbPointer = true; //arrowUp.AbsorbPointer = true; sliderBackground.AbsorbPointer = true; AddChild(arrowA); AddChild(arrowB); AddChild(sliderBackground); AddChild(slider); }
public UIScrollWindow(ScrollBarMode mode = ScrollBarMode.Vertical) { this.mode = mode; AutoSize = false; DebugColor = Color.White; ScrollPanel = new UIScrollPanel(); ScrollPanel.AutoSize = true; ScrollPanel.DrawBounds = false; ScrollPanel.AbsorbPointer = false; ScrollPanel.AllowInsideScrolling = false; ScrollPanel.ContentScrolled += scrollPanel_ContentScrolled; if (mode == ScrollBarMode.Both) { fillerPanel = new UIPanel(); fillerPanel.Color = new Color(240, 240, 240); fillerPanel.AutoSize = false; fillerPanel.Size = new Vector2(16, 16); fillerPanel.Alpha = 1f; fillerPanel.AddConstraint(Edge.BottomRight, this, Edge.BottomRight); base.AddChild(fillerPanel); } if (mode.ContainsFlag(ScrollBarMode.Vertical)) { VerticalScrollBar = new UIScrollBar(UIScrollBar.ScrollBarOrientation.Vertical); VerticalScrollBar.ValueChanged += scrollBar_ValueChanged; VerticalScrollBar.Width = 16f; VerticalScrollBar.AddConstraint(Edge.TopRight, this, Edge.TopRight); if (fillerPanel != null) { VerticalScrollBar.AddConstraint(Edge.Bottom, fillerPanel, Edge.Top); } else { VerticalScrollBar.AddConstraint(Edge.Bottom, this, Edge.Bottom, mode.ContainsFlag(ScrollBarMode.Horizontal) ? VerticalScrollBar.Width : 0); } ScrollPanel.AddConstraint(Edge.Left, this, Edge.Left, 1); ScrollPanel.AddConstraint(Edge.Right, VerticalScrollBar, Edge.Left, -1); base.AddChild(VerticalScrollBar); } else { ScrollPanel.AddConstraint(Edge.Left, this, Edge.Left, 1); ScrollPanel.AddConstraint(Edge.Right, this, Edge.Right, -1); } if (mode.ContainsFlag(ScrollBarMode.Horizontal)) { HorizontalScrollBar = new UIScrollBar(UIScrollBar.ScrollBarOrientation.Horizontal); HorizontalScrollBar.ValueChanged += scrollBar_ValueChanged; HorizontalScrollBar.Height = 16f; HorizontalScrollBar.AddConstraint(Edge.BottomLeft, this, Edge.BottomLeft); if (fillerPanel != null) { HorizontalScrollBar.AddConstraint(Edge.Right, fillerPanel, Edge.Left); } else { HorizontalScrollBar.AddConstraint(Edge.Right, this, Edge.Right, mode.ContainsFlag(ScrollBarMode.Vertical) ? HorizontalScrollBar.Height : 0); } ScrollPanel.AddConstraint(Edge.Top, this, Edge.Top, 1); ScrollPanel.AddConstraint(Edge.Bottom, HorizontalScrollBar, Edge.Top, -1); base.AddChild(HorizontalScrollBar); } else { ScrollPanel.AddConstraint(Edge.Top, this, Edge.Top, 1); ScrollPanel.AddConstraint(Edge.Bottom, this, Edge.Bottom, -1); } base.AddChild(ScrollPanel); }
public UIWindow() { AutoSize = false; Alpha = 0f; MinimumSize = new Vector2(200); Size = new Vector2(350, 250); TopPanel = new UIPanel(); BodyPanel = new UIPanel(); BottomPanel = new UIPanel(); // Top panel TopPanel.AddConstraint(Edge.Top, this, Edge.Top); TopPanel.AddConstraint(Edge.Horizontal, this, Edge.Horizontal); TopPanel.Color = Color.White; TopPanel.Alpha = 1f; TopPanel.Tag = nameof(TopPanel); TopPanel.InputMoved += TopPanel_InputMoved; TopPanel.InputReleasedAnywhere += TopPanel_InputReleasedAnywhere; titleLabel = new UILabel(nameof(UIWindow)); titleLabel.AddConstraint(Edge.Top, TopPanel, Edge.Top); titleLabel.AddConstraint(Edge.Left, TopPanel, Edge.Left, 5); titleLabel.Tag = "Titel label"; TopPanel.AddChild(titleLabel); btn_close = new UIButton(); btn_close.InputEnter += btn_close_InputEnter; btn_close.InputLeave += btn_close_InputLeave; btn_close.AddDecoration(new UIImage("graphics/btn_close") { Color = Color.Black }); btn_close.AddConstraint(Edge.TopRight, TopPanel, Edge.TopRight); btn_close.HighlightZoom = false; btn_close.InputReleased += Btn_close_InputReleased; TopPanel.AddChild(btn_close); btn_maximize = new UIButton(); btn_maximize.Color = Color.Transparent; btn_maximize.PointedColor = new Color(190, 190, 190); btn_maximize.PressedColor = new Color(120, 120, 120); btn_maximize.PointedAlpha = 0.5f; btn_maximize.PressedAlpha = 0.5f; btn_maximize.AddDecoration(new UIImage(RESOURCE_MAXIMIZE) { Color = Color.Black }); btn_maximize.AddConstraint(Edge.Top, btn_close, Edge.Top); btn_maximize.AddConstraint(Edge.Right, btn_close, Edge.Left, -1); btn_maximize.HighlightZoom = false; btn_maximize.InputReleased += Btn_maximize_InputReleased; TopPanel.AddChild(btn_maximize); btn_minimize = new UIButton(); btn_minimize.Color = Color.Transparent; btn_minimize.PointedColor = new Color(190, 190, 190); btn_minimize.PressedColor = new Color(120, 120, 120); btn_minimize.PointedAlpha = 0.5f; btn_minimize.PressedAlpha = 0.5f; btn_minimize.AddDecoration(new UIImage("graphics/btn_minimize") { Color = Color.Black }); btn_minimize.AddConstraint(Edge.Top, btn_maximize, Edge.Top); btn_minimize.AddConstraint(Edge.Right, btn_maximize, Edge.Left, -1); btn_minimize.HighlightZoom = false; btn_minimize.InputReleased += Btn_minimize_InputReleased; TopPanel.AddChild(btn_minimize); // Body panel BodyPanel.AddConstraint(Edge.Top, TopPanel, Edge.Bottom); BodyPanel.AddConstraint(Edge.Horizontal, this, Edge.Horizontal); BodyPanel.AddConstraint(Edge.Bottom, BottomPanel, Edge.Top); //BodyPanel.Color = Color.White; //BodyPanel.Alpha = 1f; BodyPanel.Tag = nameof(BodyPanel); // Bottom panel BottomPanel.AddConstraint(Edge.Bottom, this, Edge.Bottom); BottomPanel.AddConstraint(Edge.Horizontal, this, Edge.Horizontal); BottomPanel.Color = Color.White; BottomPanel.Alpha = 1f; BottomPanel.Tag = nameof(BottomPanel); BottomPanel.Size = new Vector2(0, 20); // Resize grip ResizeGrip = new UIImage("graphics/resizeGrip"); ResizeGrip.Color = Color.Black; ResizeGrip.AddConstraint(Edge.BottomRight, BottomPanel, Edge.BottomRight); ResizeGrip.Tag = nameof(ResizeGrip); ResizeGrip.InputPressed += ResizeGrip_InputPressed; ResizeGrip.InputReleasedAnywhere += ResizeGrip_InputReleasedAnywhere; BottomPanel.AddChild(ResizeGrip); AddChild(TopPanel); AddChild(BodyPanel); AddChild(BottomPanel); Resizable = true; }