public HotkeyManager(MainWindow win) { try { start_hotkey = new Hotkey(Modifiers.Ctrl | Modifiers.Shift, Keys.P, win, "start", false); stop_hotkey = new Hotkey(Modifiers.Ctrl | Modifiers.Shift, Keys.W, win, "stop", false); pause_hotkey = new Hotkey(Modifiers.Ctrl | Modifiers.Shift, Keys.L, win, "pause", false); hotkey_list = new List<Hotkey>(); m_main_window = win; InitializeHotkeyList(); } catch { } }
public void SetPauseKey(string input) { string[] pause_keys = input.Split('+'); if (pause_keys.Length <= 0) return; pause_hotkey.Unregister(); pause_hotkey = CreateHotkey(pause_keys, "pause"); string pauseString = String.Format("Pause ({0})", pause_hotkey.ToString()); m_main_window.contextPause.Header = pauseString; pause_hotkey.HotkeyPressed += m_main_window.PauseHotkeyEvent; pause_hotkey.IsEnabled = m_main_window.btnPause.IsEnabled; }
/// <summary> /// Creates a hotkey from the string array input given, registers the hotkey immediately, /// and assigns an action for the hotkey. /// </summary> /// <param name="i_keyboard_input"></param> /// <param name="action"></param> /// <returns></returns> public Hotkey CreateHotkey(string[] i_keyboard_input, string action) { Modifiers modifiers = Modifiers.NoMod; Keys keys = Keys.None; for (int i = 0; i < i_keyboard_input.Length - 1; i++) { switch (i_keyboard_input[i]) { case "Ctrl": modifiers |= Modifiers.Ctrl; break; case "Alt": modifiers |= Modifiers.Alt; break; case "Shift": modifiers |= Modifiers.Shift; break; default: modifiers |= Modifiers.NoMod; break; } } keys = (Keys)Enum.Parse(typeof(Keys), i_keyboard_input[i_keyboard_input.Length - 1], true); Hotkey newHotkey = new Hotkey(modifiers, keys, m_main_window, action, true); //newHotkey.HotkeyPressed += m_main_window.HotkeyPressed; return newHotkey; }