/// <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; } }
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; }
/// <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; } } }
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; }
/// <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; } } } }
/// <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; } }
/// <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; } }
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; }
/// <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); }
private static IAction keyboardOrGamepadAction(Key key, string gamepadControl) { return(KeyboardKeyAction.FromKey(key) .Or(GamePadAction.FromString("gamepad0:" + gamepadControl))); }
private static IAction keyboardOrGamepadAction(Key key, Key key2, string gamepadControl) { return(ControlScheme.keyboardOrGamepadAction(key, gamepadControl) .Or(KeyboardKeyAction.FromKey(key2))); }
internal bool CanTrigger(KeyboardKeyAction action, Keys modifiers, Keys key) { return Action == action && Key == key && HasRequiredModifiers(modifiers); }
public KeyHook(KeyboardKeyAction action, Keys modifiers, Keys key) { Action = action; Modifiers = modifiers; Key = key; }
public KeyHook(KeyboardKeyAction action, Keys key) : this(action, Keys.None, key) { }
protected abstract bool CanInvoke(KeyboardKeyAction action, Keys modifiers, Keys key);