public override void OnMouseScroll(MouseScrollDirection direction, int scrollValue, GameTime gameTime)
        {
            if (_menu.Focused)
            {
                _menu.OnMouseScroll(direction, scrollValue, gameTime);
                return;
            }

            if (direction == MouseScrollDirection.Down)
            {
                _currentZLevel += 1;

                if (_currentZLevel >= _zLevels.Count)
                {
                    _currentZLevel = _zLevels.Count - 1;
                }

                Camera.Z = _zLevels[_currentZLevel];
                Camera.CheckBoundingBox();
            }
            else
            {
                _currentZLevel -= 1;

                if (_currentZLevel < 0)
                {
                    _currentZLevel = 0;
                }

                Camera.Z = _zLevels[_currentZLevel];
                Camera.CheckBoundingBox();
            }
        }
Example #2
0
        public override bool MouseScrolled(Rectangle mouseBounds, MouseScrollDirection direction)
        {
            if (!mouseBounds.Intersects(Bounds))
            {
                return(base.MouseScrolled(mouseBounds, direction));
            }

            switch (direction)
            {
            case MouseScrollDirection.Up:

                ScrollLine(1);
                break;

            case MouseScrollDirection.Down:

                ScrollLine(-1);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(direction), direction, null);
            }

            return(base.MouseScrolled(mouseBounds, direction));
        }
Example #3
0
 /// <summary>
 /// Creates a new instance of <see cref="MouseInput"/>.
 /// </summary>
 public MouseInput()
 {
     this.heldTimeByButton = new Dictionary<MouseButton, double>();
     this.previousButtons = new HashSet<MouseButton>();
     this.currentScrollDirection = MouseScrollDirection.None;
     this.previousScrollValue = 0;
     this.mousePosition = new MPoint2(0, 0);
 }
Example #4
0
        private void BuildMouseEvent(MouseState state, MouseButton button, MouseScrollDirection direction,
                                     ref MouseEventArgs e)
        {
            BuildMouseEvent(state, button, ref e);


            e.ScrollDirection = direction;
        }
Example #5
0
        public void OnMouseScroll(MouseScrollDirection direction, int scrollValue, GameTime gameTime)
        {
            if (!Active)
            {
                return;
            }

            SceneFrames.OnMouseScroll(direction, scrollValue, gameTime);
        }
Example #6
0
        ////////////////////////////////////////////////////////////////////////////
        private void UpdateMouse(MouseState state, GameTime gameTime)
        {
#if (!XBOX && !XBOX_FAKE)
            if ((state.X != mouseState.X) || (state.Y != mouseState.Y))
            {
                MouseEventArgs e = new MouseEventArgs();

                MouseButton btn = MouseButton.None;
                if (state.LeftButton == ButtonState.Pressed)
                {
                    btn = MouseButton.Left;
                }
                else if (state.RightButton == ButtonState.Pressed)
                {
                    btn = MouseButton.Right;
                }
                else if (state.MiddleButton == ButtonState.Pressed)
                {
                    btn = MouseButton.Middle;
                }
                else if (state.XButton1 == ButtonState.Pressed)
                {
                    btn = MouseButton.XButton1;
                }
                else if (state.XButton2 == ButtonState.Pressed)
                {
                    btn = MouseButton.XButton2;
                }

                BuildMouseEvent(state, btn, ref e);
                if (MouseMove != null)
                {
                    MouseMove.Invoke(this, e);
                }
            }

            // Mouse wheel position changed
            if (state.ScrollWheelValue != mouseState.ScrollWheelValue)
            {
                MouseEventArgs       e         = new MouseEventArgs();
                MouseScrollDirection direction = state.ScrollWheelValue < mouseState.ScrollWheelValue ? MouseScrollDirection.Down : MouseScrollDirection.Up;

                BuildMouseEvent(state, MouseButton.None, direction, ref e);

                if (MouseScroll != null)
                {
                    MouseScroll.Invoke(this, e);
                }
            }

            UpdateButtons(state, gameTime);

            mouseState = state;
#endif
        }
Example #7
0
        public bool OnMouseScroll(MouseScrollDirection direction, int scrollValue, GameTime gameTime)
        {
            for (int i = 0; i < _widgets.Count; i++)
            {
                if (_widgets[i].OnMouseScroll(direction, scrollValue, gameTime))
                {
                    return(true);
                }
            }

            return(false);
        }
 public MouseScrollEventArgs(MouseScrollDirection direction)
 {
     Direction = direction;
 }
Example #9
0
 public virtual bool OnMouseScroll(MouseScrollDirection direction, int scrollValue, GameTime gameTime)
 {
     return(Widgets.OnMouseScroll(direction, scrollValue, gameTime));
 }
Example #10
0
 public virtual bool MouseScrolled(Rectangle mouseBounds, MouseScrollDirection direction) =>
 _children.Any(child => child.MouseScrolled(mouseBounds, direction));
Example #11
0
 public virtual bool OnMouseScroll(MouseScrollDirection direction, int scrollValue, GameTime gameTime)
 {
     return(false);
 }
Example #12
0
 /// <summary>
 ///     Invokes the <see cref="MouseScrollDataReceived" /> event which the <see cref="IInputService" /> listens to as long
 ///     as this provider is registered
 /// </summary>
 /// <param name="device">The device that triggered the event</param>
 /// <param name="direction">The direction in which was scrolled</param>
 /// <param name="delta">The scroll delta (can positive or negative)</param>
 protected virtual void OnMouseScrollDataReceived(ArtemisDevice?device, MouseScrollDirection direction, int delta)
 {
     MouseScrollDataReceived?.Invoke(this, new InputProviderMouseScrollEventArgs(device, direction, delta));
 }
Example #13
0
        /// <summary>
        /// Updates the component with the specified seconds since last update.
        /// </summary>
        /// <param name="seconds">The amount of seconds since last update.</param>
        public void Update(double seconds)
        {
            MouseState currentState = Mouse.GetState();

            // Buttons
            this.previousButtons.Clear();
            this.previousButtons.UnionWith(heldTimeByButton.Keys);
            this.UpdateButton(MouseButton.Left, currentState.LeftButton == ButtonState.Pressed, seconds);
            this.UpdateButton(MouseButton.Middle, currentState.MiddleButton == ButtonState.Pressed, seconds);
            this.UpdateButton(MouseButton.Right, currentState.RightButton == ButtonState.Pressed, seconds);
            this.UpdateButton(MouseButton.XButton1, currentState.XButton1 == ButtonState.Pressed, seconds);
            this.UpdateButton(MouseButton.XButton2, currentState.XButton2 == ButtonState.Pressed, seconds);

            // Scroll wheel
            if (currentState.ScrollWheelValue > previousScrollValue)
            {
                this.currentScrollDirection = MouseScrollDirection.Up;
            }
            else if (currentState.ScrollWheelValue < previousScrollValue)
            {
                this.currentScrollDirection = MouseScrollDirection.Down;
            }
            else
            {
                this.currentScrollDirection = MouseScrollDirection.None;
            }
            this.previousScrollValue = currentState.ScrollWheelValue;

            // Mouse position
            this.deltaPosition = this.mousePosition;
            if (this.VirtualMouseEnabled)
            {
                this.mousePosition += new MPoint2(currentState.X, currentState.Y);
                Mouse.SetPosition(this.ScreenSize.X / 2, ScreenSize.Y / 2);
                this.mousePosition = new MRectangleInt(ScreenSize.X, ScreenSize.Y).Clamp(this.mousePosition);
            }
            else
            {
                this.mousePosition = new MPoint2(currentState.X, currentState.Y);
            }
            this.deltaPosition = this.mousePosition - this.deltaPosition;
        }
Example #14
0
    ////////////////////////////////////////////////////////////////////////////

    /// <summary>
    /// Creates a new initialized instace of the MouseEventArgs class.
    /// <param name="state">Mouse state at the time of the event.</param>
    /// <param name="button">Mouse button state at the time of the event.</param>
    /// <param name="position">Mosue cursor position at the time of the event.</param>
    /// <param name="scrollDirection">Mouse scroll direction at the time of the event.</param>
    public MouseEventArgs(MouseState state, MouseButton button, Point position, MouseScrollDirection scrollDirection)
        : this(state, button, position)
    {
        ScrollDirection = scrollDirection;
    }
Example #15
0
        }     // OnMouseClicked

        public void OnMouseScroll(MouseScrollDirection direction, int scrollValue, GameTime gameTime)
        {
        }
Example #16
0
 public MouseEventArgs(MouseEventArgs e)
     : this(e.State, e.Button, e.Position)
 {
     Difference      = e.Difference;
     ScrollDirection = e.ScrollDirection;
 }
 /// <summary>
 /// </summary>
 /// <param name="device">The device that triggered the event</param>
 /// <param name="direction">The direction in which was scrolled</param>
 /// <param name="delta">The scroll delta (can positive or negative)</param>
 internal ArtemisMouseScrollEventArgs(ArtemisDevice?device, MouseScrollDirection direction, int delta)
 {
     Device    = device;
     Direction = direction;
     Delta     = delta;
 }
Example #18
0
 /// <summary>
 /// Creates a clone of an existing MouseEventArgs object.
 /// </summary>
 /// <param name="e"></param>
 public MouseEventArgs(MouseEventArgs e)
 {
     State = e.State;
     Button = e.Button;
     Position = e.Position;
     Difference = e.Difference;
     ScrollDirection = e.ScrollDirection;
 }
Example #19
0
 /// <summary>
 /// Creates a new initialized instace of the MouseEventArgs class.
 /// </summary>
 /// <param name="state">Mouse state at the time of the event.</param>
 /// <param name="button">Mouse button state at the time of the event.</param>
 /// <param name="position">Mosue cursor position at the time of the event.</param>
 /// <param name="scrollDirection">Mouse scroll direction at the time of the event.</param>
 public MouseEventArgs(MouseState state, MouseButton button, Point position, MouseScrollDirection scrollDirection)
 {
     State = state;
     Button = button;
     Position = position;
     ScrollDirection = scrollDirection;
 }
Example #20
0
 ////////////////////////////////////////////////////////////////////////////
 public MouseEventArgs(MouseEventArgs e)
     : this(e.State, e.Button, e.Position)
 {
   Difference = e.Difference;
   ScrollDirection = e.ScrollDirection;
 }
Example #21
0
 /// <param name="scrollDirection">Mouse scroll direction at the time of the event.</param>
 /// <param name="position">Mosue cursor position at the time of the event.</param>
 /// <param name="button">Mouse button state at the time of the event.</param>
 /// <param name="state">Mouse state at the time of the event.</param>
 /// Creates a new initialized instace of the MouseEventArgs class.
 /// </summary>
 public MouseEventArgs(MouseState state, MouseButton button, Point position, MouseScrollDirection scrollDirection)
     : this(state, button, position)
 {
     ScrollDirection = scrollDirection;
 }
Example #22
0
 /// <summary>
 /// </summary>
 /// <param name="device">The device that triggered the event</param>
 /// <param name="direction">The direction in which was scrolled</param>
 /// <param name="delta">The scroll delta (can positive or negative)</param>
 public InputProviderMouseScrollEventArgs(ArtemisDevice?device, MouseScrollDirection direction, int delta)
 {
     Device    = device;
     Direction = direction;
     Delta     = delta;
 }
 public override void OnMouseScroll(MouseScrollDirection direction, int scrollValue, GameTime gameTime)
 {
     _menu.OnMouseScroll(direction, scrollValue, gameTime);
 }
Example #24
0
 /// <summary>
 /// Returns whether the mouse was scrolled in the specified direction.
 /// </summary>
 /// <param name="direction">Enumerated value specifying the direction to query.</param>
 /// <returns>True if the specified direction was scrolled; false otherwise.</returns>
 public bool IsMouseScrolled(MouseScrollDirection direction)
 {
     return direction == this.currentScrollDirection;
 }
    ////////////////////////////////////////////////////////////////////////////    

    private void BuildMouseEvent(MouseState state, MouseButton button, MouseScrollDirection direction, ref MouseEventArgs e)
    {
        BuildMouseEvent(state, button, ref e);

        e.ScrollDirection = direction;
    }
Example #26
0
 public XMouseScrollArgs(int direction)
 {
     m_eScrollDirection = (MouseScrollDirection)direction;
 }