Beispiel #1
0
        protected void UpdateMouseKeyStatus(MouseKey key, bool down)
        {
            if (key == MouseKey.Unknown)
            {
                return;
            }
            int keyIndex = (short)key - 1;

            if (keyIndex > _mouseKeys.Length - 1)
            {
                return;
            }

            // If it was down, but no longer is - it was let go.
            if (_mouseKeys[keyIndex] && !down)
            {
                OnMouseKey.Invoke(key, KeyStatus.Up);
            }

            // If it was up, and now is down - it was pressed.
            if (!_mouseKeys[keyIndex] && down)
            {
                OnMouseKey.Invoke(key, KeyStatus.Down);
            }
            _mouseKeys[keyIndex] = down;
        }
Beispiel #2
0
        public void RunAction()
        {
            Thread.Sleep(DelayBefore);

            var key = new MouseKey(Key);

            switch (InputType)
            {
            case InputType.Down:
                mouse_event(key.MouseEventDown, 0, 0, 0, 0);
                break;

            case InputType.Up:
                mouse_event(key.MouseEventUp, 0, 0, 0, 0);
                break;

            case InputType.Press:
                mouse_event(key.MouseEventDown, 0, 0, 0, 0);
                mouse_event(key.MouseEventUp, 0, 0, 0, 0);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            Thread.Sleep(DelayAfter);
        }
Beispiel #3
0
 /// <summary>
 /// Listens for mouse button release events.
 /// </summary>
 /// <param name="key">Released key.</param>
 private void OnInputMouseReleased(MouseKey key)
 {
     if (!this.Transitioning)
     {
         this.Interface.OnInputMouseRelease(this.input.Mouse.Position, key);
     }
 }
Beispiel #4
0
        private void GetMouseKey(object sender, MouseEventArgs e)
        {
            if (e.MouseKey == MouseKey.Left || e.MouseKey == MouseKey.Right)
            {
                this.keyValue = Key.None;
                this.MouseKey = MouseKey.None;
            }
            else
            {
                this.keyValue = Key.None;
                this.MouseKey = e.MouseKey;
            }

            e.Process = false;

            this.InputManager.KeyUp      -= this.GetKey;
            this.InputManager.MouseKeyUp -= this.GetMouseKey;

            if (this.MouseKey != MouseKey.None)
            {
                this.InputManager.MouseKeyUp += this.MouseKeyUp;
            }

            this.changingKey = false;
        }
Beispiel #5
0
 public InteractionKey(MouseKey ButtonMouse, string ButtonKeyboard, string ButtonXbox, string ButtonSpacepilot)
 {
     this.ButtonMouse      = ButtonMouse;
     this.ButtonKeyboard   = ButtonKeyboard;
     this.ButtonXbox       = ButtonXbox;
     this.ButtonSpacepilot = ButtonSpacepilot;
 }
Beispiel #6
0
 public InteractionKey(MouseKey ButtonMouse, string ButtonKeyboard, string ButtonXbox, string ButtonSpacepilot)
 {
     this.ButtonMouse = ButtonMouse;
     this.ButtonKeyboard = ButtonKeyboard;
     this.ButtonXbox = ButtonXbox;
     this.ButtonSpacepilot = ButtonSpacepilot;
 }
Beispiel #7
0
        private void EnqueueMouseButtonEvent(MouseKey mouseKey, VK_State state)
        {
            VirtualKeyParameter lParam = ParameterPool.GetParameter <VirtualKeyParameter>();

            lParam.key = GetVirtualKeyMapData(mouseKey);
            GlobalEventQueue.EnQueueEvent(state, lParam);
        }
Beispiel #8
0
 private void MouseDown(System.Drawing.Point pt, Double2 xy, MouseKey buttons)
 {
     if (buttons == MouseKey.Left && enabled)
     {
         Select(xy);
     }
 }
Beispiel #9
0
 private void InputHandler_MouseMove(Point p, Double2 xy, MouseKey button)
 {
     if (button == MouseKey.Left)
     {
         _mousePos = xy;
     }
 }
Beispiel #10
0
        protected override LResult WindowProcedure(WindowHandle window, MessageType message, WParam wParam, LParam lParam)
        {
            switch (message)
            {
            case MessageType.Size:
                int cxClient = lParam.LowWord;
                int cyClient = lParam.HighWord;

                _apt[0].X = cxClient / 4;
                _apt[0].Y = cyClient / 2;
                _apt[1].X = cxClient / 2;
                _apt[1].Y = cyClient / 4;
                _apt[2].X = cxClient / 2;
                _apt[2].Y = 3 * cyClient / 4;
                _apt[3].X = 3 * cxClient / 4;
                _apt[3].Y = cyClient / 2;

                return(0);

            case MessageType.LeftButtonDown:
            case MessageType.RightButtonDown:
            case MessageType.MouseMove:
                MouseKey mk = (MouseKey)wParam.LowWord;
                if ((mk & (MouseKey.LeftButton | MouseKey.RightButton)) != 0)
                {
                    using (DeviceContext dc = window.GetDeviceContext())
                    {
                        dc.SelectObject(StockPen.White);
                        DrawBezier(dc, _apt);

                        if ((mk & MouseKey.LeftButton) != 0)
                        {
                            _apt[1].X = lParam.LowWord;
                            _apt[1].Y = lParam.HighWord;
                        }

                        if ((mk & MouseKey.RightButton) != 0)
                        {
                            _apt[2].X = lParam.LowWord;
                            _apt[2].Y = lParam.HighWord;
                        }

                        dc.SelectObject(StockPen.Black);
                        DrawBezier(dc, _apt);
                    }
                }
                return(0);

            case MessageType.Paint:
                window.Invalidate(true);
                using (DeviceContext dc = window.BeginPaint())
                {
                    DrawBezier(dc, _apt);
                }
                return(0);
            }

            return(base.WindowProcedure(window, message, wParam, lParam));
        }
Beispiel #11
0
 private static void OnMouseKeyDown(MouseKey key)
 {
     mouse.keys[key] = KeyState.DOWN;
     foreach (var l in listeners)
     {
         l.OnMouseKeyDown(key);
     }
 }
Beispiel #12
0
 private void MouseDown(Point p, Double2 xy, MouseKey button)
 {
     if (button == _selectButton && Enabled)
     {
         mouseDownXY    = xy;
         mouseDownPoint = p;
     }
 }
Beispiel #13
0
 private static void OnMouseKeyUp(MouseKey key)
 {
     mouse.keys[key] = KeyState.UP;
     foreach (var l in listeners)
     {
         l.OnMouseKeyUp(key);
     }
 }
Beispiel #14
0
 public MouseHookEventArgs(MSLLHOOKSTRUCT data, CURSORINFO info, MouseKey keys, int param, int lastX, int lastY)
 {
     _data  = data;
     _info  = info;
     _keys  = keys;
     _Param = param;
     _LastX = lastX;
     _LastY = lastY;
 }
Beispiel #15
0
 public MouseHookEventArgs(MSLLHOOKSTRUCT data, CURSORINFO info, MouseKey keys, int param, int lastX, int lastY)
 {
     _data = data;
     _info = info;
     _keys = keys;
     _Param = param;
     _LastX = lastX;
     _LastY = lastY;
 }
Beispiel #16
0
        /// <inheritdoc />
        public bool IsMouseKeyUp(MouseKey key)
        {
            if (key == MouseKey.Unknown)
            {
                return(false);
            }
            int keyIndex = (short)key - 1;

            return(!_mouseKeysIM[keyIndex] && _mouseKeysPreviousIM[keyIndex]);
        }
Beispiel #17
0
 private void MouseUp(System.Drawing.Point pt, Double2 xy, MouseKey buttons)
 {
     if (buttons == MouseKey.Left && enabled && shifting)
     {
         shifting = false;
         if (selectionHandler.Count > 0 && PositionChanged != null)
         {
             PositionChanged();
         }
     }
 }
        /// <inheritdoc />
        public bool IsMouseKeyDown(MouseKey key)
        {
            bool down = _mouseStatus[key] && !_mouseStatusShadow[key];

            if (down)
            {
                Engine.Log.Trace($"Mouse button {key} is pressed down.", MessageSource.Input);
            }

            return(down);
        }
        /// <inheritdoc />
        public bool IsMouseKeyUp(MouseKey key)
        {
            bool up = !_mouseStatus[key] && _mouseStatusShadow[key];

            if (up)
            {
                Engine.Log.Trace($"Mouse button {key} is released.", MessageSource.Input);
            }

            return(up);
        }
Beispiel #20
0
        public static void SendMouse(IntPtr windows, MouseKey type, int x, int y)
        {
            Rect rct = new Rect();

            if (!GetWindowRect(windows, ref rct))
            {
                return;
            }
            if (type == MouseKey.LEFT_CLICK)
            {
                PostMessage(windows, (uint)MouseHook.MouseMessages.WM_LBUTTONDOWN, (int)Keys.LButton,
                            MakeLParam(x - rct.Left, y - rct.Top));
                PostMessage(windows, (uint)MouseHook.MouseMessages.WM_LBUTTONUP, (int)Keys.LButton,
                            MakeLParam(x - rct.Left, y - rct.Top));
            }
            if (type == MouseKey.LEFT_DBCLICK)
            {
                PostMessage(windows, (uint)MouseHook.MouseMessages.WM_LBUTTONDBLCLK, 0,
                            MakeLParam(x - rct.Left, y - rct.Top));
            }
            if (type == MouseKey.LEFT_DOWN)
            {
                PostMessage(windows, (uint)MouseHook.MouseMessages.WM_LBUTTONDOWN, (int)Keys.LButton,
                            MakeLParam(x - rct.Left, y - rct.Top));
            }
            if (type == MouseKey.LEFT_UP)
            {
                PostMessage(windows, (uint)MouseHook.MouseMessages.WM_LBUTTONUP, (int)Keys.LButton,
                            MakeLParam(x - rct.Left, y - rct.Top));
            }
            if (type == MouseKey.RIGHT_CLICK)
            {
                PostMessage(windows, (uint)MouseHook.MouseMessages.WM_RBUTTONDOWN, (int)Keys.RButton,
                            MakeLParam(x - rct.Left, y - rct.Top));
                PostMessage(windows, (uint)MouseHook.MouseMessages.WM_RBUTTONUP, (int)Keys.RButton,
                            MakeLParam(x - rct.Left, y - rct.Top));
            }
            if (type == MouseKey.RIGHT_DBCLICK)
            {
                PostMessage(windows, (uint)MouseHook.MouseMessages.WM_RBUTTONDBLCLK, 0,
                            MakeLParam(x - rct.Left, y - rct.Top));
            }
            if (type == MouseKey.RIGHT_DOWN)
            {
                PostMessage(windows, (uint)MouseHook.MouseMessages.WM_RBUTTONDOWN, (int)Keys.RButton,
                            MakeLParam(x - rct.Left, y - rct.Top));
            }
            if (type == MouseKey.RIGHT_UP)
            {
                PostMessage(windows, (uint)MouseHook.MouseMessages.WM_RBUTTONUP, (int)Keys.RButton,
                            MakeLParam(x - rct.Left, y - rct.Top));
            }
        }
Beispiel #21
0
        private void MouseUp(Point p, Double2 xy, MouseKey button)
        {
            if (button == _selectButton && Enabled)
            {
                if (p.X != mouseDownPoint.X || p.Y != mouseDownPoint.Y)
                {
                    Select(mouseDownXY, xy);
                }

                selectionRectangleNode.Visible = false;
            }
        }
Beispiel #22
0
        private void MouseMove(Point p, Double2 xy, MouseKey button)
        {
            if (button == _selectButton && enabled)
            {
                selectionRectangle.Origin = new Double2((Math.Min(mouseDownXY.X, xy.X) + 1) * 0.5, (Math.Min(mouseDownXY.Y, xy.Y) + 1) * 0.5);
                double sizeX = Math.Max(mouseDownXY.X, xy.X) - Math.Min(mouseDownXY.X, xy.X);
                double sizeY = Math.Max(mouseDownXY.Y, xy.Y) - Math.Min(mouseDownXY.Y, xy.Y);
                selectionRectangle.Scaling = new Double2(0.5 * sizeX, 0.5 * sizeY);

                selectionRectangleNode.Visible = true;
            }
        }
Beispiel #23
0
 //private SelectableSceneNode node = null;
 private void MouseDown(System.Drawing.Point pt, Double2 xy, MouseKey buttons)
 {
     if (buttons == MouseKey.Left && enabled)
     {
         lastPos = xy;
         PickingResult r;
         shifting = selectionHandler.Select(xy, out r);
         if (r != null && r.Node is IInteractiveDirectionSceneNode)
         {
             shifting = false;
         }
     }
 }
Beispiel #24
0
        VK_Enum GetVirtualKeyMapData(MouseKey mouseKey)
        {
            for (int i = 0; i < mouseMappingList.Count; i++)
            {
                if (mouseKey == mouseMappingList[i].input)
                {
                    return(mouseMappingList[i].vk);
                }
            }

            Debug.LogErrorFormat("MouseInput=> 매핑 데이터를 찾지 못했습니다. {0}", mouseKey);
            return(VK_Enum.None);
        }
Beispiel #25
0
        public static bool IsPressed(MouseKey key)
        {
            switch (key)
            {
            case MouseKey.LeftButton: return(currentMouseState.LeftButton == ButtonState.Pressed);

            case MouseKey.MiddleButton: return(currentMouseState.MiddleButton == ButtonState.Pressed);

            case MouseKey.RightButton: return(currentMouseState.RightButton == ButtonState.Pressed);

            default: return(false);
            }
        }
Beispiel #26
0
        public static bool HasBeenPressed(MouseKey key)
        {
            previousMouseState = currentMouseState;
            currentMouseState  = Microsoft.Xna.Framework.Input.Mouse.GetState();
            switch (key)
            {
            case MouseKey.LeftButton: return((currentMouseState.LeftButton == ButtonState.Pressed) && !(previousMouseState.LeftButton == ButtonState.Pressed));

            case MouseKey.MiddleButton: return((currentMouseState.MiddleButton == ButtonState.Pressed) && !(previousMouseState.MiddleButton == ButtonState.Pressed));

            case MouseKey.RightButton: return((currentMouseState.RightButton == ButtonState.Pressed) && !(previousMouseState.RightButton == ButtonState.Pressed));

            default: return(false);
            }
        }
Beispiel #27
0
        private void GetKey(object sender, Input.EventArgs.KeyEventArgs e)
        {
            this.Key           = e.Key == Key.Escape ? Key.None : e.Key;
            this.mouseKeyValue = MouseKey.None;
            e.Process          = false;

            this.InputManager.KeyUp      -= this.GetKey;
            this.InputManager.MouseKeyUp -= this.GetMouseKey;

            if (this.Key != Key.None)
            {
                this.InputManager.KeyUp += this.OnKeyUp;
            }

            this.changingKey = false;
        }
Beispiel #28
0
 public static void SendMouseEx(IntPtr windows, MouseKey type, int x, int y)
 {
     if (type == MouseKey.LEFT_CLICK)
     {
         PostMessage(windows, (uint)MouseHook.MouseMessages.WM_LBUTTONDOWN, (int)Keys.LButton,
                     MakeLParam(x, y));
         PostMessage(windows, (uint)MouseHook.MouseMessages.WM_LBUTTONUP, (int)Keys.LButton,
                     MakeLParam(x, y));
     }
     if (type == MouseKey.LEFT_DBCLICK)
     {
         PostMessage(windows, (uint)MouseHook.MouseMessages.WM_LBUTTONDBLCLK, 0,
                     MakeLParam(x, y));
     }
     if (type == MouseKey.LEFT_DOWN)
     {
         PostMessage(windows, (uint)MouseHook.MouseMessages.WM_LBUTTONDOWN, (int)Keys.LButton,
                     MakeLParam(x, y));
     }
     if (type == MouseKey.LEFT_UP)
     {
         PostMessage(windows, (uint)MouseHook.MouseMessages.WM_LBUTTONUP, (int)Keys.LButton,
                     MakeLParam(x, y));
     }
     if (type == MouseKey.RIGHT_CLICK)
     {
         PostMessage(windows, (uint)MouseHook.MouseMessages.WM_RBUTTONDOWN, (int)Keys.RButton,
                     MakeLParam(x, y));
         PostMessage(windows, (uint)MouseHook.MouseMessages.WM_RBUTTONUP, (int)Keys.RButton,
                     MakeLParam(x, y));
     }
     if (type == MouseKey.RIGHT_DBCLICK)
     {
         PostMessage(windows, (uint)MouseHook.MouseMessages.WM_RBUTTONDBLCLK, 0,
                     MakeLParam(x, y));
     }
     if (type == MouseKey.RIGHT_DOWN)
     {
         PostMessage(windows, (uint)MouseHook.MouseMessages.WM_RBUTTONDOWN, (int)Keys.RButton,
                     MakeLParam(x, y));
     }
     if (type == MouseKey.RIGHT_UP)
     {
         PostMessage(windows, (uint)MouseHook.MouseMessages.WM_RBUTTONUP, (int)Keys.RButton,
                     MakeLParam(x, y));
     }
 }
Beispiel #29
0
        private void GetKey(Divine.KeyEventArgs e)
        {
            this.Key           = e.Key == Key.Escape ? Key.None : e.Key;
            this.mouseKeyValue = MouseKey.None;
            e.Process          = false;

            InputManager.KeyUp      -= this.GetKey;
            InputManager.MouseKeyUp -= this.GetMouseKey;

            if (this.Key != Key.None)
            {
                InputManager.KeyDown += this.OnKeyDown;
                InputManager.KeyUp   += this.OnKeyUp;
            }

            this.changingKey = false;
        }
Beispiel #30
0
        public void SimulateMouseUp(MouseKey key, int x, int y)
        {
            inputSimulator.Mouse.MoveMouseTo(NormalizePixelX(x), NormalizePixelY(y));

            if (key == MouseKey.LEFT)
            {
                inputSimulator.Mouse.LeftButtonUp();
            }
            else if (key == MouseKey.RIGHT)
            {
                inputSimulator.Mouse.RightButtonUp();
            }
            else if (key == MouseKey.MIDDLE)
            {
                inputSimulator.Mouse.MiddleButtonUp();
            }
        }
Beispiel #31
0
        /// <summary>
        /// Called when a mouse button is released.
        /// </summary>
        /// <param name="position">The position.</param>
        /// <param name="key">The key.</param>
        internal void OnInputMouseRelease(Vector2 position, MouseKey key)
        {
            if (this.isMouseDown.ContainsKey(key.Key))
            {
                if (this.isMouseDown[key.Key])
                {
                    this.MouseClick(this, new MouseEventArgs(AlmiranteEngine.Time.Total, key));

                    if (AlmiranteEngine.Time.Total - this.lastMouseUp <= (SystemInformation.DoubleClickTime / 1000.0f) &&
                        Math.Abs(this.lastMouseUpPosition.X - position.X) <= SystemInformation.DoubleClickSize.Width &&
                        Math.Abs(this.lastMouseUpPosition.Y - position.Y) <= SystemInformation.DoubleClickSize.Height &&
                        this.lastMouseKeyUp == key.Key)
                    {
                        this.lastMouseUp = 0.0;
                        this.MouseDoubleClick(this, new MouseEventArgs(AlmiranteEngine.Time.Total, key));
                    }
                    else
                    {
                        this.lastMouseKeyUp      = key.Key;
                        this.lastMouseUp         = AlmiranteEngine.Time.Total;
                        this.lastMouseUpPosition = position;
                    }

                    this.isMouseDown[key.Key] = false;
                    this.MouseUp(this, new MouseEventArgs(AlmiranteEngine.Time.Total, key));

                    if (!this.IsPointInside(position))
                    {
                        this.isMouseOver = false;
                        this.MouseLeave(this, new EventArgs());
                    }
                }
            }

            var relative = position - this.position;

            foreach (var control in this.Controls)
            {
                control.OnInputMouseRelease(relative, key);
            }
        }
Beispiel #32
0
 /// <summary>
 /// Listens for mouse button press events.
 /// </summary>
 /// <param name="key">Pressed key.</param>
 private void OnInputMousePressed(MouseKey key)
 {
     if (!this.Transitioning)
     {
         var control = this.Interface.GetControlAt(this.input.Mouse.Position);
         if (control != null)
         {
             if (key.Key == MouseButton.Left)
             {
                 if (control.CanFocus)
                 {
                     if (this.focus != control)
                     {
                         this.Focus(control);
                     }
                 }
             }
             control.OnInputMousePress(this.input.Mouse.Position - control.RealPosition, key);
         }
     }
 }
Beispiel #33
0
 private void SetPressed(ButtonState state, ButtonState lastState, MouseKey key)
 {
     if ((ButtonState.Pressed == lastState) && (ButtonState.Released == state) && (null != this.inputKey))
     {
         this.inputMode = InputMode.Menu;
         this.inputKey.SetKey(key);
         this.inputKey = null;
     }
 }
Beispiel #34
0
 public Bind(X360Keys xboxKey, MouseKey key)
 {
     this.xboxKey = xboxKey;
     this.mouseKey = key;
     this.keyType = KeyType.Mouse;
 }
Beispiel #35
0
 private void Map(MouseKey key, ref byte stick, byte value)
 {
     switch (key)
     {
         case MouseKey.MouseLeft:
             Map(Mouse.GetState().LeftButton, ref stick, value);
             break;
         case MouseKey.MouseRight:
             Map(Mouse.GetState().RightButton, ref stick, value);
             break;
         case MouseKey.MouseMiddle:
             Map(Mouse.GetState().MiddleButton, ref stick, value);
             break;
         case MouseKey.MouseWheelUp:
             Map((Mouse.GetState().ScrollWheelValue - prevW > 0) ? ButtonState.Pressed : ButtonState.Released, ref stick, value);
             break;
         case MouseKey.MouseWheelDown:
             Map((Mouse.GetState().ScrollWheelValue - prevW < 0) ? ButtonState.Pressed : ButtonState.Released, ref stick, value);
             break;
         default:
             throw new NotSupportedException();
     }
 }
        /// 模拟鼠标按键
        public static void MouseKeyEvent(MouseKey vKeyCoad, bool doubleClick)
        {
            mouse_event((int)vKeyCoad, 0, 0, 0, 0);
            if (vKeyCoad == MouseKey.MOUSEEVENTF_LEFTDOWN)
            {
                Mouse.LeftKey = true;
            }
            else if (vKeyCoad == MouseKey.MOUSEEVENTF_MIDDLEUP)
            {
                Mouse.LeftKey = false;
            }

            if (vKeyCoad == MouseKey.MOUSEEVENTF_MIDDLEDOWN)
            {
                Mouse.MiddleKey = true;
            }
            else if (vKeyCoad == MouseKey.MOUSEEVENTF_MIDDLEUP)
            {
                Mouse.MiddleKey = false;
            }

            if (vKeyCoad == MouseKey.MOUSEEVENTF_RIGHTDOWN)
            {
                Mouse.RightKey = true;
            }
            else if (vKeyCoad == MouseKey.MOUSEEVENTF_RIGHTUP)
            {
                Mouse.RightKey = false;
            }

            if (doubleClick)
            {
                mouse_event((int)vKeyCoad, 0, 0, 0, 0);
            }
        }
Beispiel #37
0
 internal void SetKey(MouseKey key)
 {
     this.Border = BorderStyle.None;
     this.BackColor = Colors.None;
     this.Value = key;
 }
 public MouseEventArgs(MouseKey mouseKey)
 {
     PressedKey = mouseKey;
 }