Example #1
0
        public override bool HandleMouseInput(InputState input)
        {
            if (State == UIState.Inactive)
                return false;

            int before = value;
            isDragging &= input.CurrentMouseState.LeftButton == Microsoft.Xna.Framework.Input.ButtonState.Pressed
                          || input.CurrentMouseState.RightButton == Microsoft.Xna.Framework.Input.ButtonState.Pressed;

            var rect1 = new Rectangle((int)leftArrowPosition.X, (int)leftArrowPosition.Y - 10, 20, 20);
            var rect2 = new Rectangle((int)rightArrowPosition.X, (int)rightArrowPosition.Y - 10, 20, 20);

            bool click_in_slider = rect1.Right + 5 < input.CurrentMouseState.X && rect2.Left - 5 > input.CurrentMouseState.X &&
                                   rect1.Top < input.CurrentMouseState.Y && rect1.Bottom > input.CurrentMouseState.Y;

            if (input.IsNewLeftMouseClick() || input.IsNewRightMouseClick())
            {
                if (rect1.Contains(input.CurrentMouseState.X, input.CurrentMouseState.Y))
                    value -= 5;
                else if (rect2.Contains(input.CurrentMouseState.X, input.CurrentMouseState.Y))
                    value += 5;
                else if (click_in_slider )
                    value = (int)(input.CurrentMouseState.X - (rect1.Right + 5)) / 2;
            }
            else if (isDragging)
                value = (int)(input.CurrentMouseState.X - (rect1.Right + 5)) / 2;
            else if ((input.IsNewLeftMousePress() || input.IsNewRightMousePress()) && click_in_slider)
            {
                value = (int)(input.CurrentMouseState.X - (rect1.Right + 5)) / 2;
                isDragging = true;
            }
            else
                return base.HandleMouseInput(input);

            OnPressedElement(PlayerIndex.One, 0);
            return true;
        }