Beispiel #1
0
 public static String Name(MouseOffset id)
 {
     var pair = AllNamesMouse.FirstOrDefault(n => n.Key == id);
     if (pair.Equals(new KeyValuePair<MouseOffset, String>()))
         return "Unknown";
     else
         return pair.Value;
 }
Beispiel #2
0
        protected MouseMove(int X, int Y, MouseOffset Offset)
        {
            this.X      = X;
            this.Y      = Y;
            this.Offset = Offset;

            Initialize(CreateChildren());
        }
Beispiel #3
0
        internal Mouse(System.Windows.Forms.Control owner, bool useWindowsCursor)
        {
            // This is needed to hide and show the Windows cursor
            mOwner = owner;



            mLastClickTime = new double[NumberOfButtons];
            mLastPushTime  = new double[NumberOfButtons];
            mDoubleClick   = new bool[NumberOfButtons];
            mDoublePush    = new bool[NumberOfButtons];

            mMouseButtonClicked = new bool[NumberOfButtons];
            mMouseButtonPushed  = new bool[NumberOfButtons];

            mMouseOffset = new MouseOffset[NumberOfButtons];

            mMouseOffset[(int)MouseButtons.LeftButton]   = MouseOffset.Button0;
            mMouseOffset[(int)MouseButtons.RightButton]  = MouseOffset.Button1;
            mMouseOffset[(int)MouseButtons.MiddleButton] = MouseOffset.Button2;
            mMouseOffset[(int)MouseButtons.XButton1]     = MouseOffset.Button3;
            mMouseOffset[(int)MouseButtons.XButton2]     = MouseOffset.Button4;

            mMouseDevice = new Device(SystemGuid.Mouse);
            mMouseDevice.SetDataFormat(DeviceDataFormat.Mouse);

            if (useWindowsCursor)
            {
                mWindowsCursorVisible = true;
                mMouseDevice.SetCooperativeLevel(owner, CooperativeLevelFlags.Foreground |
                                                 CooperativeLevelFlags.NonExclusive);
            }
            else
            {
                mWindowsCursorVisible = false;
                mMouseDevice.SetCooperativeLevel(owner, CooperativeLevelFlags.Foreground |
                                                 CooperativeLevelFlags.Exclusive);
            }

            try
            { mMouseDevice.Acquire(); }
            catch (InputLostException)
            {
                //				return;
            }
            catch (OtherApplicationHasPriorityException)
            {
                //				return;
            }
            catch (System.ArgumentException)
            {
            }

            // i don't know why this doesn't work, but input still works without it.
            mMouseDevice.Properties.BufferSize = 5;
        }
Beispiel #4
0
        public static MouseMove Create(int X, int Y, MouseOffset Offset)
        {
            MouseMove ret = Offset switch {
                MouseOffset.None => null,
                MouseOffset.Absolute => new MouseMoveAbsolute(X, Y),
                MouseOffset.Relative => new MouseMoveRelative(X, Y),
                MouseOffset.AbsoluteVirtual => new MouseMoveVirtual(X, Y),
                _ => throw new NotImplementedException()
            };

            return(ret);
        }
Beispiel #5
0
        public DMouseEventArgs(MouseUpdate state) : base(state)
        {
            Offset = state.Offset;
            Value  = state.Value;

            X = System.Windows.Forms.Control.MousePosition.X;
            Y = System.Windows.Forms.Control.MousePosition.Y;

            if (state.Value == 0)
            {
                Released = true;
                Pressed  = false;
            }
            else
            {
                Pressed  = false;
                Released = true;
            }
        }
        public static MouseFlag ToMouseFlags(this MouseOffset This)
        {
            var ret = default(MouseFlag);

            switch (This)
            {
            case MouseOffset.Relative:
                ret = MouseFlag.Move | MouseFlag.Relative;
                break;

            case MouseOffset.Absolute:
                ret = MouseFlag.Move | MouseFlag.Absolute;
                break;

            case MouseOffset.AbsoluteVirtual:
                ret = MouseFlag.Move | MouseFlag.Absolute | MouseFlag.VirtualDesk;
                break;

            default:
                throw new InvalidCastException($@"Unable to convert {This} to a valid {nameof(MouseFlag)}.  Accepted values are {MouseOffset.Relative}, {MouseOffset.Absolute}, and {MouseOffset.AbsoluteVirtual}.");
            }

            return(ret);
        }
        public void AddAction(MouseOffset key, Action<DirectInputData> action)
        {
            if (action == null)
                return;

            if (!_actionMap.Keys.Contains(key))
                _actionMap.Add(key, new HashSet<Action<DirectInputData>>());

            _actionMap[key].Add(action);
        }
 public void DeleteActions(MouseOffset key)
 {
     _actionMap.Remove(key);
 }
Beispiel #9
0
 public bool GetMouseButtonReleased(MouseOffset mouse)
 {
     return(input.prevMouseButtons[(int)mouse] && !input.currentMouseButtons[(int)mouse]);
 }
Beispiel #10
0
 public bool GetMouseButtonPressed(MouseOffset mouse)
 {
     return(!input.prevMouseButtons[(int)mouse] && input.currentMouseButtons[(int)mouse]);
 }
Beispiel #11
0
 public bool GetMouseButton(MouseOffset mouse)
 {
     return(input.currentMouseButtons[(int)mouse]);
 }
Beispiel #12
0
        private void UpdateMouseSensitivity(MouseOffset offset, int value)
        {
            if (_deviceManager == null || _deviceManager.Mouses == null )
                return;

            lock (lockMouses)
            {
                foreach (var mouse in _deviceManager.Mouses)
                {
                    if (value >= 1)
                        mouse.Sensitivity[offset] = value;
                }
            }
        }