コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: TestScene.cs プロジェクト: adamxi/SharpDXFramework
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
ファイル: UIWindow.cs プロジェクト: adamxi/SharpDXFramework
        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;
        }