Esempio n. 1
0
 public InputMouseEvent(MouseEvent type, InputMouseEvent parent) : base(parent)
 {
     EventType = type;
     Button    = parent.Button;
     _clicks   = parent._clicks;
     X         = parent.X;
     Y         = parent.Y;
     _data     = parent._data;
 }
Esempio n. 2
0
        private void OnMouseDown(InputMouseEvent e)
        {
            if (e.Button == MouseButton.Left)
            {
                _leftButtonPressed = true;
                LeftDragPosition   = MousePosition;
            }

            _lastMouseDown     = e;
            _lastMouseDownTime = _time;
            AddEvent(e);
        }
Esempio n. 3
0
        private void OnMouseMove(InputMouseEvent e)
        {
            MousePosition = e.Position;
            AddEvent(new InputMouseEvent(MouseEvent.Move, e));

            if (!_mouseIsDragging && _lastMouseDown != null)
            {
                if (DistanceBetweenPoints(_lastMouseDown.Position, e.Position, MOUSE_DRAG_BEGIN_DISTANCE))
                {
                    AddEvent(new InputMouseEvent(MouseEvent.DragBegin, e));
                    _mouseIsDragging = true;
                }
            }
        }
Esempio n. 4
0
        private void OnMouseUp(InputMouseEvent e)
        {
            if (_mouseIsDragging)
            {
                AddEvent(new InputMouseEvent(MouseEvent.DragEnd, e));
                _mouseIsDragging = false;
            }
            else
            {
                if (_lastMouseDown != null)
                {
                    if (!DistanceBetweenPoints(_lastMouseDown.Position, e.Position, MOUSE_CLICK_MAX_DELTA))
                    {
                        AddEvent(new InputMouseEvent(MouseEvent.Click, e));

                        if (_time - _lastMouseClickTime <= MOUSE_DOUBLE_CLICK_TIME && _lastMouseClick != null && !DistanceBetweenPoints(_lastMouseClick.Position, e.Position, MOUSE_CLICK_MAX_DELTA))
                        {
                            _lastMouseClickTime = 0f;
                            AddEvent(new InputMouseEvent(MouseEvent.DoubleClick, e));
                        }
                        else
                        {
                            _lastMouseClickTime = _time;
                            _lastMouseClick     = e;
                        }
                    }
                }
            }

            if (e.Button == MouseButton.Left)
            {
                _leftButtonPressed = false;
            }
            AddEvent(new InputMouseEvent(MouseEvent.Up, e));
            _lastMouseDown = null;
        }
Esempio n. 5
0
 private void OnMouseWheel(InputMouseEvent e)
 {
     AddEvent(e);
     AddEvent(new InputMouseEvent(ConvertWheelDirection(e.X, e.Y), e));
 }