Exemplo n.º 1
0
        /// <summary>
        /// Add a new listener to the specific action passed in.
        /// </summary>
        /// <param name="action">The action to listen for.</param>
        /// <param name="listener">The listener to alert.</param>
        public void AddListener(KeyboardKeyAction action, KeyboardKeyListener listener)
        {
            switch (action)
            {
            case KeyboardKeyAction.Down:
                if (downListeners == null)
                {
                    downListeners = new List <KeyboardKeyListener>();
                }

                downListeners.Add(listener);
                break;

            case KeyboardKeyAction.Pressed:
                if (pressedListeners == null)
                {
                    pressedListeners = new List <KeyboardKeyListener>();
                }

                pressedListeners.Add(listener);
                break;

            case KeyboardKeyAction.Up:
                if (upListeners == null)
                {
                    upListeners = new List <KeyboardKeyListener>();
                }

                upListeners.Add(listener);
                break;
            }
        }
Exemplo n.º 2
0
 internal bool TryInvoke(KeyboardKeyAction action, Keys modifiers, Keys key)
 {
     if (CanInvoke(action, modifiers, key))
     {
         Debug.WriteLine("Invoking method for Action: {0}, Modifiers: {1}, Key: {2}", action, modifiers, key);
         Task.Run((Action)Invoke);
         return true;
     }
     return false;
 }
Exemplo n.º 3
0
 /// <summary>
 /// Remove every single listener from a speciifc key, and a specific
 /// action of it.
 /// </summary>
 /// <param name="key">The key to remove listeners from.</param>
 /// <param name="action">The action to clear listeners from.</param>
 public void RemoveAllListeners(KeyboardKey key, KeyboardKeyAction action)
 {
     for (int i = 0, keyCount = keyHandlers.Count; i < keyCount; i++)
     {
         if (keyHandlers[i].Key == key)
         {
             keyHandlers[i].RemoveAllListeners(action);
             break;
         }
     }
 }
Exemplo n.º 4
0
        public MusicSettingsHud(GameState game)
        {
            this.game         = game;
            this.lightnessBar = new Scrollbar(new Vector3(-16, 2, 0), 0.6f, f => { },
                                              KeyboardKeyAction.FromKey(Key.Number1), KeyboardKeyAction.FromKey(Key.Number2));

            this.tensionBar = new Scrollbar(new Vector3(-16, 4.5f, 0), 0.8f, f => { },
                                            KeyboardKeyAction.FromKey(Key.Number3), KeyboardKeyAction.FromKey(Key.Number4));

            this.healthBar = new Scrollbar(new Vector3(-16, 7f, 0), 0.8f, f => { },
                                           KeyboardKeyAction.FromKey(Key.Number5), KeyboardKeyAction.FromKey(Key.Number6));

            this.Parameters = MusicParameters.Default;
        }
Exemplo n.º 5
0
 /// <summary>
 /// Remove a specific listener from a key and a certain action
 /// of it.
 /// </summary>
 /// <param name="key">The key to remove a listener from.</param>
 /// <param name="action">The action to remove from.</param>
 /// <param name="listener">The listener to remove.</param>
 public void RemoveListener(KeyboardKey key, KeyboardKeyAction action, KeyboardKeyListener listener)
 {
     if (keyHandlers != null)
     {
         for (int i = 0, keyHandlerCount = keyHandlers.Count; i < keyHandlerCount; i++)
         {
             if (keyHandlers[i].Key == key)
             {
                 keyHandlers[i].RemoveListener(action, listener);
                 return;
             }
         }
     }
 }
Exemplo n.º 6
0
        /// <summary>
        /// Remove an existing listener from an action.
        /// </summary>
        /// <param name="action">The action to remove a listener from.</param>
        /// <param name="listener">The listener to remove.</param>
        public void RemoveListener(KeyboardKeyAction action, KeyboardKeyListener listener)
        {
            switch (action)
            {
            case KeyboardKeyAction.Down:
                if (downListeners != null)
                {
                    for (int i = 0, downCount = downListeners.Count; i < downCount; i++)
                    {
                        if (downListeners[i] == listener)
                        {
                            downListeners.RemoveAt(i);
                            break;
                        }
                    }
                }
                break;

            case KeyboardKeyAction.Pressed:
                if (pressedListeners != null)
                {
                    for (int i = 0, pressedCount = pressedListeners.Count; i < pressedCount; i++)
                    {
                        if (pressedListeners[i] == listener)
                        {
                            pressedListeners.RemoveAt(i);
                            break;
                        }
                    }
                }
                break;

            case KeyboardKeyAction.Up:
                if (upListeners != null)
                {
                    for (int i = 0, upCount = upListeners.Count; i < upCount; i++)
                    {
                        if (upListeners[i] == listener)
                        {
                            upListeners.RemoveAt(i);
                            break;
                        }
                    }
                }
                break;
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// Remove all listeners from a specific action of
        /// the key handler.
        /// </summary>
        /// <param name="action">The action to remove listeners from.</param>
        public void RemoveAllListeners(KeyboardKeyAction action)
        {
            switch (action)
            {
            case KeyboardKeyAction.Down:
                downListeners = null;
                break;

            case KeyboardKeyAction.Pressed:
                pressedListeners = null;
                break;

            case KeyboardKeyAction.Up:
                upListeners = null;
                break;
            }
        }
Exemplo n.º 8
0
 internal bool TrySatisfy(KeyboardKeyAction action, Keys modifiers, Keys key)
 {
     var hook = _hooks[_currentStep];
     if (hook.Action == action)
     {
         if (hook.CanTrigger(action, modifiers, key))
         {
             GoToNextStep();
             if (IsChordSatisfied())
             {
                 Debug.WriteLine("KeyChord satisfied");
                 ResetChord();
                 return true;
             }
             StartTimer();
         }
         else
         {
             ResetChord();
         }
     }
     return false;
 }
Exemplo n.º 9
0
        /// <summary>
        /// Add a new event listener to the specific key, and action.
        /// </summary>
        /// <param name="key">The key to listen for.</param>
        /// <param name="action">It's life cycle event to listen for.</param>
        /// <param name="listener">The method to call back.</param>
        public void AddListener(KeyboardKey key, KeyboardKeyAction action, KeyboardKeyListener listener)
        {
            if (keyHandlers != null)
            {
                for (int i = 0, keyHandlerCount = keyHandlers.Count; i < keyHandlerCount; i++)
                {
                    if (keyHandlers[i].Key == key)
                    {
                        keyHandlers[i].AddListener(action, listener);
                        return;
                    }
                }
            }
            else
            {
                keyHandlers = new List <KeyboardKeyHandler>();
            }

            KeyboardKeyHandler keyHandler = new KeyboardKeyHandler(key);

            keyHandler.AddListener(action, listener);
            keyHandlers.Add(keyHandler);
        }
 protected override bool CanInvoke(KeyboardKeyAction action, Keys modifiers, Keys key)
 {
     return !WinApiKeyboard.IsModifier(key) && KeyChord.TrySatisfy(action, modifiers, key);
 }
Exemplo n.º 11
0
 private static IAction keyboardOrGamepadAction(Key key, string gamepadControl)
 {
     return(KeyboardKeyAction.FromKey(key)
            .Or(GamePadAction.FromString("gamepad0:" + gamepadControl)));
 }
Exemplo n.º 12
0
 private static IAction keyboardOrGamepadAction(Key key, Key key2, string gamepadControl)
 {
     return(ControlScheme.keyboardOrGamepadAction(key, gamepadControl)
            .Or(KeyboardKeyAction.FromKey(key2)));
 }
Exemplo n.º 13
0
 internal bool CanTrigger(KeyboardKeyAction action, Keys modifiers, Keys key)
 {
     return Action == action && Key == key && HasRequiredModifiers(modifiers);
 }
Exemplo n.º 14
0
 public KeyHook(KeyboardKeyAction action, Keys modifiers, Keys key)
 {
     Action = action;
     Modifiers = modifiers;
     Key = key;
 }
Exemplo n.º 15
0
 public KeyHook(KeyboardKeyAction action, Keys key) : this(action, Keys.None, key)
 {
 }
Exemplo n.º 16
0
 protected abstract bool CanInvoke(KeyboardKeyAction action, Keys modifiers, Keys key);