Esempio n. 1
0
            public override void OnHardwareMouseEvent(int iX, int iY, EHARDWAREMOUSEEVENT eHardwareMouseEvent, int wheelDelta)
            {
                MouseEvent mouseEvent = new MouseEvent(iX, iY, eHardwareMouseEvent, wheelDelta);

                _eventQueue.Enqueue(mouseEvent);
            }
Esempio n. 2
0
        internal void HandleMouseEvents(int iX, int iY, EHARDWAREMOUSEEVENT eHardwareMouseEvent, int wheelDelta)
        {
            if (wheelDelta != 0)
            {
                if (_touchTarget != null)
                {
                    _touchInfo.mouseWheelDelta = -wheelDelta;
                    _touchInfo.UpdateEvent();
                    _touchTarget.onMouseWheel.BubbleCall(_touchInfo.evt);
                    _touchInfo.mouseWheelDelta = 0;
                }
                return;
            }

            _touchPosition    = new Vector2(iX, iY);
            _touchTarget      = HitTest(_touchPosition, true);
            _touchInfo.target = _touchTarget;

            if (_touchInfo.x != _touchPosition.x || _touchInfo.y != _touchPosition.y)
            {
                _touchInfo.x = _touchPosition.x;
                _touchInfo.y = _touchPosition.y;
                _touchInfo.Move();
            }

            if (_touchInfo.lastRollOver != _touchInfo.target)
            {
                HandleRollOver(_touchInfo);
            }

            if (eHardwareMouseEvent == EHARDWAREMOUSEEVENT.HARDWAREMOUSEEVENT_LBUTTONDOWN ||
                eHardwareMouseEvent == EHARDWAREMOUSEEVENT.HARDWAREMOUSEEVENT_RBUTTONDOWN ||
                eHardwareMouseEvent == EHARDWAREMOUSEEVENT.HARDWAREMOUSEEVENT_MBUTTONDOWN ||
                eHardwareMouseEvent == EHARDWAREMOUSEEVENT.HARDWAREMOUSEEVENT_LBUTTONDOUBLECLICK)
            {
                if (!_touchInfo.began)
                {
                    _touchInfo.Begin();
                    _touchInfo.button = (eHardwareMouseEvent == EHARDWAREMOUSEEVENT.HARDWAREMOUSEEVENT_LBUTTONDOWN || eHardwareMouseEvent == EHARDWAREMOUSEEVENT.HARDWAREMOUSEEVENT_LBUTTONDOUBLECLICK) ? 0 : (eHardwareMouseEvent == EHARDWAREMOUSEEVENT.HARDWAREMOUSEEVENT_RBUTTONDOWN ? 1 : 2);
                    this.focus        = _touchInfo.target;

                    _touchInfo.UpdateEvent();
                    _touchInfo.target.BubbleEvent("onTouchBegin", _touchInfo.evt);
                }
            }
            if (eHardwareMouseEvent == EHARDWAREMOUSEEVENT.HARDWAREMOUSEEVENT_LBUTTONUP ||
                eHardwareMouseEvent == EHARDWAREMOUSEEVENT.HARDWAREMOUSEEVENT_RBUTTONUP ||
                eHardwareMouseEvent == EHARDWAREMOUSEEVENT.HARDWAREMOUSEEVENT_MBUTTONUP)
            {
                if (_touchInfo.began)
                {
                    _touchInfo.button = eHardwareMouseEvent == EHARDWAREMOUSEEVENT.HARDWAREMOUSEEVENT_LBUTTONUP ? 0 : (eHardwareMouseEvent == EHARDWAREMOUSEEVENT.HARDWAREMOUSEEVENT_RBUTTONUP ? 1 : 2);
                    _touchInfo.End();

                    DisplayObject clickTarget = _touchInfo.ClickTest();
                    if (clickTarget != null)
                    {
                        _touchInfo.UpdateEvent();

                        if (eHardwareMouseEvent == EHARDWAREMOUSEEVENT.HARDWAREMOUSEEVENT_RBUTTONUP)
                        {
                            clickTarget.BubbleEvent("onRightClick", _touchInfo.evt);
                        }
                        else
                        {
                            clickTarget.BubbleEvent("onClick", _touchInfo.evt);
                        }
                    }

                    _touchInfo.button = -1;
                }
            }
        }
Esempio n. 3
0
 public override void OnHardwareMouseEvent(int iX, int iY, EHARDWAREMOUSEEVENT eHardwareMouseEvent, int wheelDelta)
 {
     Stage.inst.HandleMouseEvents(iX, iY, eHardwareMouseEvent, wheelDelta);
 }
Esempio n. 4
0
 public override void OnHardwareMouseEvent(int iX, int iY, EHARDWAREMOUSEEVENT eHardwareMouseEvent)
 {
     OnHardwareMouseEvent(iX, iY, eHardwareMouseEvent, 0);
 }