/// <summary> /// Clones the hotkey. /// </summary> /// <returns>A clone of the hotkey.</returns> public override Hotkey Clone(Boolean copyCallBackFunction = false) { lock (this.AccessLock) { KeyboardHotkey hotkey = new KeyboardHotkey(copyCallBackFunction ? this.CallBackFunction : null); hotkey.ActivationKeys = new HashSet <Key>(this.ActivationKeys); return(hotkey); } }
/// <summary> /// Copies the hotkey to another hotkey. A new hotkey is created if null is provided. /// </summary> /// <returns>A copy of the hotkey.</returns> public override Hotkey CopyTo(Hotkey hotkey, Boolean copyCallBackFunction = false) { lock (this.AccessLock) { KeyboardHotkey keyboardHotkey = hotkey as KeyboardHotkey; if (keyboardHotkey == null) { return(this.Clone(copyCallBackFunction)); } keyboardHotkey.ActivationKeys = new HashSet <Key>(this.ActivationKeys); if (copyCallBackFunction) { keyboardHotkey.SetCallBackFunction(this.CallBackFunction); } return(keyboardHotkey); } }
public void SetHotkey(KeyboardHotkey keyboardHotkey) { this.KeyboardHotkey = (keyboardHotkey?.CopyTo(this.KeyboardHotkey) as KeyboardHotkey) ?? new KeyboardHotkey(); }
/// <summary> /// Initializes a new instance of the <see cref="KeyboardHotkeyBuilder" /> class. /// </summary> /// <param name="callBackFunction">The callback function for this hotkey.</param> /// <param name="keyboardHotkey">The keyboard hotkey to edit.</param> public KeyboardHotkeyBuilder(Action callBackFunction, KeyboardHotkey keyboardHotkey = null) : base(callBackFunction) { this.SetHotkey(keyboardHotkey); this.Subscription = InputManager.GetInstance().GetKeyboardCapture().WeakSubscribe(this); }