private void InvokeEvents()
 {
     foreach (var key in Enum.GetValues(typeof(Keys)).Cast <Keys>())
     {
         if (IsKeyDown(key))
         {
             OnKeyDown?.Invoke(key);
             if (IsKeyPressed(key))
             {
                 OnKeyPressed?.Invoke(key);
             }
             if (IsKeyClicked(key))
             {
                 OnKeyClicked?.Invoke(key);
             }
         }
         else
         {
             OnKeyUp?.Invoke(key);
             if (IsKeyReleased(key))
             {
                 OnKeyReleased?.Invoke(key);
             }
         }
     }
 }
Exemplo n.º 2
0
 internal protected virtual void TriggerOnKeyReleased(Component sender, Keys key)
 {
     if (OnKeyReleased != null)
     {
         OnKeyReleased.Invoke(new KeyEventArgs(sender, key));
     }
 }
    private IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
    {
        if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN || wParam == (IntPtr)WM_SYSKEYDOWN)
        {
            int vkCode     = Marshal.ReadInt32(lParam);
            Key keyPressed = KeyInterop.KeyFromVirtualKey(vkCode);
            if (!AllKeyPressed.Contains(keyPressed))
            {
                AllKeyPressed.Add(keyPressed);
            }

            if (OnKeyPressed != null)
            {
                OnKeyPressed.Invoke(new KeyPressedArgs(keyPressed));
            }
        }

        if (nCode >= 0 && wParam == (IntPtr)WM_KEYUP || wParam == (IntPtr)WM_SYSKEYUP)
        {
            int vkCode     = Marshal.ReadInt32(lParam);
            Key keyPressed = KeyInterop.KeyFromVirtualKey(vkCode);
            if (AllKeyPressed.Contains(keyPressed))
            {
                AllKeyPressed.Remove(keyPressed);
            }

            if (OnKeyReleased != null)
            {
                OnKeyReleased.Invoke(new KeyReleasedArgs(keyPressed));
            }
        }

        return(WinApi.CallNextHookEx(_hookID, nCode, wParam, lParam));
    }
Exemplo n.º 4
0
 public override bool keyReleased(KeyboardEvent evt)
 {
     OnKeyReleased?.Invoke(this, new KeyboardEventArgs()
     {
         KeyboardEvent = evt
     });
     return(false); // propgate further;
 }
Exemplo n.º 5
0
        private void OnKeyRelease(Keys key)
        {
            KeyEventArgs args = new KeyEventArgs(key);

            Task.Run(() =>
            {
                OnKeyReleased?.Invoke(this, args);
            });
        }
        internal void InitKeyboardHandlers()
        {
            _keyboardHandler = new KeyboardHandler();

            _keyboardHandler.OnKeyDown     += (key) => OnKeyDown?.Invoke(key);
            _keyboardHandler.OnKeyUp       += (key) => OnKeyUp?.Invoke(key);
            _keyboardHandler.OnKeyPressed  += (key) => OnKeyPressed?.Invoke(key);
            _keyboardHandler.OnKeyClicked  += (key) => OnKeyClicked?.Invoke(key);
            _keyboardHandler.OnKeyReleased += (key) => OnKeyReleased?.Invoke(key);
        }
Exemplo n.º 7
0
        private void CheckButton(BcmPin pin, Dictionary <BcmPin, bool> buttonState)
        {
            if (!Pi.Gpio[pin].Read() && !buttonState[pin])
            {
                buttonState[pin] = true;
                OnKeyPressed.Invoke((int)pin);
            }

            if (Pi.Gpio[pin].Read() && buttonState[pin])
            {
                OnKeyReleased.Invoke((int)pin);
                buttonState[pin] = false;
            }
        }
Exemplo n.º 8
0
 public static void InvokeEvents()
 {
     if (OnKeyDown != null && GetDownKeys().Count() > 0)
     {
         OnKeyDown.Invoke(currentState, GetDownKeys());
     }
     if (OnKeyPressed != null && GetPressedKeys().Count() > 0)
     {
         OnKeyPressed.Invoke(currentState, GetPressedKeys());
     }
     if (OnKeyReleased != null && GetReleasedKeys().Count() > 0)
     {
         OnKeyReleased.Invoke(currentState, GetReleasedKeys());
     }
 }
Exemplo n.º 9
0
        private void MessageLoop()
        {
            foreach (HookMessage message in hooker.MessageQueue.GetConsumingEnumerable())
            {
                /*  ProcessNewTagReceivedLogic(tag);
                 * Console.WriteLine("Process Buffer #Tag {0}. Buffer Count #{1}", tag.NewLoopId, LogicBuffer.Count);*/
                if (message.messageType == HookMessageType.KeyDown)
                {
                    OnKeyReleased?.Invoke(this, new KeyEventArgs(message.key));
                }
                else if (message.messageType == HookMessageType.KeyUp)
                {
                    OnKeyPressed?.Invoke(this, new KeyEventArgs(message.key));
                }
                else if (message.messageType == HookMessageType.MouseDown)
                {
                    OnMouseClicked?.Invoke(this, new MouseEventArgs(message.mouseButton, 1, message.mouseX, message.mouseY, 0));
                }
            }

            /* while (true)
             * {
             *   if (cancelToken.IsCancellationRequested)
             *       return;
             *
             *
             *
             *   /*if (hooker.HasMessageAvailable)
             *   {
             *       HookMessage message = hooker.NextMessage;
             *       if (message.messageType == HookMessageType.KeyDown)
             *       {
             *           OnKeyReleased?.Invoke(this, new KeyEventArgs(message.key));
             *       }
             *       else if (message.messageType == HookMessageType.KeyUp)
             *       {
             *           OnKeyPressed?.Invoke(this, new KeyEventArgs(message.key));
             *       }
             *       else if (message.messageType == HookMessageType.MouseDown)
             *       {
             *           OnMouseClicked?.Invoke(this, new MouseEventArgs(message.mouseButton, 1, message.mouseX, message.mouseY, 0));
             *       }
             *   }
             *   await Task.Delay(10);
             * }*/
        }
Exemplo n.º 10
0
        public void Update(GameTime gameTime)
        {
            CurrentKeyState.Clear();
            _currentState = Keyboard.GetState();

            _keysArray = _currentState.GetPressedKeys();

            if (_keysArray != null)
            {
                for (int i = 0; i < _keysArray.Length; i++)
                {
                    if (!CurrentKeyState.HeldKeys.Contains(_keysArray[i]))
                    {
                        CurrentKeyState.HeldKeys.Add(_keysArray[i]);
                    }

                    if (_previousState.IsKeyUp(_keysArray[i]))
                    {
                        OnKeyPressed?.Invoke(_keysArray[i], gameTime, CurrentKeyState);
                    }
                    else
                    {
                        OnKeyDown?.Invoke(_keysArray[i], gameTime, CurrentKeyState);
                    }
                }
            }

            _keysArray = _previousState.GetPressedKeys();

            if (_keysArray != null)
            {
                for (int i = 0; i < _keysArray.Length; i++)
                {
                    if (_currentState.IsKeyUp(_keysArray[i]))
                    {
                        CurrentKeyState.HeldKeys.RemoveAll(k => { return(k == _keysArray[i]); });
                        OnKeyReleased?.Invoke(_keysArray[i], gameTime, CurrentKeyState);
                    }
                }
            }

            _previousState = _currentState;
        }
        private IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
        {
            if (nCode >= 0 && wParam == (IntPtr)WM_KEYUP || wParam == (IntPtr)WM_SYSKEYUP)
            {
                int vkCode = Marshal.ReadInt32(lParam);
                if (OnKeyReleased != null)
                {
                    OnKeyReleased.Invoke(this, new KeyReleasedArgs(KeyInterop.KeyFromVirtualKey(vkCode)));
                }
            }
            if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN || wParam == (IntPtr)WM_SYSKEYDOWN)
            {
                int vkCode = Marshal.ReadInt32(lParam);

                if (OnKeyPressed != null)
                {
                    OnKeyPressed(this, new KeyPressedArgs(KeyInterop.KeyFromVirtualKey(vkCode)));
                }
            }

            return(CallNextHookEx(_hookID, nCode, wParam, lParam));
        }
Exemplo n.º 12
0
        public void KeyReleased(Keys key)
        {
            _keyStates[key] = false;

            OnKeyReleased?.Invoke(key);
        }
Exemplo n.º 13
0
 private void OnKeyRelease(object sender, KeyEventArgs e)
 {
     OnKeyReleased?.Invoke(sender, e);
 }
Exemplo n.º 14
0
 internal void InvokeKeyReleased(KeyConstant key, Scancode scancode)
 {
     OnKeyReleased?.Invoke(key, scancode);
     KeyReleased(key, scancode);
 }