private void FlagToggleOnKeyDown(object sender, KeyEventArgs e) { var hotkey = ResolveHotkey(e); if (hotkey.Invalid) { return; } if (hotkey.Clear) { flagToggle.Text = ""; metroLabel9.Focus(); return; } flagToggle.Text = hotkey.HotkeyString; if (_flagToggle.Id > 0) { HotKeyManager.UnregisterHotKey(_flagToggle.Id); } _flagToggle = hotkey; _flagToggle.Name = "FlagToggle"; _flagToggle.Id = HotKeyManager.RegisterHotKey(hotkey.Key, hotkey.Modifiers); metroLabel9.Focus(); SaveHotkeys(); }
private void SetHotkeyInTextBoxes() { HotkeyStruct hks = Hotkey.GetHotkey(Hotkey.Type.Next); if (hks.id == Hotkey.Type.Next) { UpdateTextBoxWithHotkey(hks, nextTextBox, Hotkey.Type.None); } hks = Hotkey.GetHotkey(Hotkey.Type.Prev); if (hks.id == Hotkey.Type.Prev) { UpdateTextBoxWithHotkey(hks, prevTextBox, Hotkey.Type.None); } hks = Hotkey.GetHotkey(Hotkey.Type.Lock); if (hks.id == Hotkey.Type.Lock) { UpdateTextBoxWithHotkey(hks, lockTextBox, Hotkey.Type.None); } hks = Hotkey.GetHotkey(Hotkey.Type.show); if (hks.id == Hotkey.Type.show) { UpdateTextBoxWithHotkey(hks, ShowTextBox, Hotkey.Type.None); } }
protected void UpdateTextBoxWithHotkey(HotkeyStruct hks, TextBox tb, Hotkey.Type oldType) { if (hks.id == Hotkey.Type.None) { return; } if ((int)Keys.Alt == hks.modifier) { tb.Text = "Alt + "; } else if ((int)Keys.Control == hks.modifier) { tb.Text = "Ctrl + "; } else if ((int)Keys.Shift == hks.modifier) { tb.Text = "Shift + "; } if (hks.keyCode != (int)Keys.ControlKey && hks.keyCode != (int)Keys.ShiftKey && hks.keyCode != (int)Keys.Menu && hks.keyCode != (int)Keys.Alt) { string keyChar = KeyCodeToUnicode((Keys)hks.keyCode); if (keyChar == "None") { } if (keyChar == "") { tb.Text += (Keys)hks.keyCode; } else { tb.Text += keyChar; } } Hotkey.Type id = (Hotkey.Type)Convert.ToInt32(tb.Tag); if (oldType != hks.id && oldType != Hotkey.Type.None) { // clear other textBox foreach (Control x in this.Controls) { if (x is TextBox) { Hotkey.Type subId = (Hotkey.Type)Convert.ToInt32(x.Tag); if (oldType == subId) { ((TextBox)x).Text = String.Empty; break; } } } } }
private void Capture_KeyDown(object sender, KeyEventArgs e) { if ((int)e.KeyCode <= 6) { e.SuppressKeyPress = true; return; } TextBox tb = (TextBox)sender; tb.Text = ""; Hotkey.Type id = (Hotkey.Type)Convert.ToInt32(tb.Tag); if (e.KeyCode == Keys.Escape) { Hotkey.SetHotkey(id, 0, 0); //this.del.UpdateHotkeySetup(); e.SuppressKeyPress = true; return; } int modifier = 0; if (e.Alt) { modifier = (int)Keys.Alt; } else if (e.Control) { modifier = (int)Keys.Control; } else if (e.Shift) { modifier = (int)Keys.Shift; } HotkeyStruct ohk = Hotkey.GetHotkeyWithKey((int)e.KeyCode, modifier); HotkeyStruct nhk = Hotkey.SetHotkey(id, (int)e.KeyCode, modifier); UpdateTextBoxWithHotkey(nhk, tb, ohk.id); e.SuppressKeyPress = true; }
public void GlobalHookKeyPress(object sender, KeyEventArgs e) { if (settings.Visible || !Hotkey.HasHotkeys()) { return; } HotkeyStruct hks = Hotkey.GetHotkeyWithKey((int)e.KeyCode, (int)e.Modifiers); if (hks.id != Hotkey.Type.None) { if (hks.id == Hotkey.Type.Next) { CaptureNextHotkey(); return; } if (hks.id == Hotkey.Type.Prev) { CapturePrevHotkey(); return; } if (hks.id == Hotkey.Type.show) { CaptureShowHotkey(); return; } if (hks.id == Hotkey.Type.Lock) { CaptureLockHotkey(); return; } } }
private static HotkeyStruct ResolveHotkey(KeyEventArgs e) { var converter = new KeysConverter(); var keyString = converter.ConvertToString(e.KeyCode); if (keyString == null) { return new HotkeyStruct { Invalid = true } } ; if (keyString.Contains("Shift") || keyString.Contains("Menu") || keyString.Contains("Control") || keyString.Contains("Alt")) { return new HotkeyStruct() { Invalid = true } } ; if (e.KeyCode == Keys.Escape) { return new HotkeyStruct { Clear = true } } ; var hotkey = new HotkeyStruct() { Key = e.KeyCode }; switch (e.Modifiers) { case Keys.Shift: hotkey.HotkeyString = $"Shift+{keyString}"; hotkey.Modifiers = KeyModifiers.Shift; break; case Keys.Control: hotkey.HotkeyString = $"Ctrl+{keyString}"; hotkey.Modifiers = KeyModifiers.Control; break; case Keys.Alt: hotkey.HotkeyString = $"Alt+{keyString}"; hotkey.Modifiers = KeyModifiers.Alt; break; case Keys.Control | Keys.Shift: hotkey.HotkeyString = $"Ctrl+Shift+{keyString}"; hotkey.Modifiers = KeyModifiers.Control & KeyModifiers.Shift; break; case Keys.Control | Keys.Alt: hotkey.HotkeyString = $"Ctrl+Alt+{keyString}"; hotkey.Modifiers = KeyModifiers.Control & KeyModifiers.Alt; break; case Keys.Shift | Keys.Alt: hotkey.HotkeyString = $"Shift+Alt+{keyString}"; hotkey.Modifiers = KeyModifiers.Shift & KeyModifiers.Alt; break; case Keys.Shift | Keys.Alt | Keys.Control: hotkey.HotkeyString = $"Ctrl+Alt+Shift+{keyString}"; hotkey.Modifiers = KeyModifiers.Shift & KeyModifiers.Alt & KeyModifiers.Control; break; default: hotkey.HotkeyString = keyString; break; } return(hotkey); }
public void InitHotkeys2() { var hotkeyFile = "hotkeys.json"; if (File.Exists($"{Utils.DataDir()}/hotkeys.json")) { hotkeyFile = $"{Utils.DataDir()}/hotkeys.json"; } var loadHotkeys = JsonConvert.DeserializeObject <HotkeyStruct[]>(File.ReadAllText(hotkeyFile)); foreach (var hotkeyStruct in loadHotkeys) { switch (hotkeyStruct.Name) { case "SaveCurrentCoordinates": _saveCurrentCoordinates = hotkeyStruct; _saveCurrentCoordinates.Id = HotKeyManager.RegisterHotKey(hotkeyStruct.Key, hotkeyStruct.Modifiers); hotkeySaveCurrentCoordinates.InvokeIfRequired(() => { hotkeySaveCurrentCoordinates.Text = hotkeyStruct.HotkeyString; }); break; case "TeleportToCoordinates": _teleportToCoordinates = hotkeyStruct; _teleportToCoordinates.Id = HotKeyManager.RegisterHotKey(hotkeyStruct.Key, hotkeyStruct.Modifiers); hotkeyTeleportToCoordinates.InvokeIfRequired(() => { hotkeyTeleportToCoordinates.Text = hotkeyStruct.HotkeyString; }); break; case "LoadSave": _loadSave = hotkeyStruct; _loadSave.Id = HotKeyManager.RegisterHotKey(hotkeyStruct.Key, hotkeyStruct.Modifiers); hotkeyLoadSave.InvokeIfRequired(() => { hotkeyLoadSave.Text = hotkeyStruct.HotkeyString; }); break; case "BackupSave": _backupSave = hotkeyStruct; _backupSave.Id = HotKeyManager.RegisterHotKey(hotkeyStruct.Key, hotkeyStruct.Modifiers); hotkeyBackupSave.InvokeIfRequired(() => { hotkeyBackupSave.Text = hotkeyStruct.HotkeyString; }); break; case "LoadLastQuickSave": _loadQuick = hotkeyStruct; _loadQuick.Id = HotKeyManager.RegisterHotKey(hotkeyStruct.Key, hotkeyStruct.Modifiers); hotkeyLoadQuick.InvokeIfRequired(() => { hotkeyLoadQuick.Text = hotkeyStruct.HotkeyString; }); break; case "ForceQuit": _forceQuit = hotkeyStruct; _forceQuit.Id = HotKeyManager.RegisterHotKey(hotkeyStruct.Key, hotkeyStruct.Modifiers); hotkeyQuit.InvokeIfRequired(() => { hotkeyQuit.Text = hotkeyStruct.HotkeyString; }); break; /*case "FlagToggle": * _flagToggle = hotkeyStruct; * _flagToggle.Id = HotKeyManager.RegisterHotKey(hotkeyStruct.Key, hotkeyStruct.Modifiers); * flagToggle.InvokeIfRequired(() => { * flagToggle.Text = hotkeyStruct.HotkeyString; * }); * break;*/ } } hotkeySaveCurrentCoordinates.KeyDown += HotkeySaveCurrentCoordinatesOnKeyDown; hotkeyTeleportToCoordinates.KeyDown += HotkeyTeleportToCoordinatesOnKeyDown; hotkeyBackupSave.KeyDown += HotkeyBackupSaveOnKeyDown; hotkeyLoadSave.KeyDown += HotkeyLoadSaveOnKeyDown; hotkeyLoadQuick.KeyDown += HotkeyLoadQuickOnKeyDown; hotkeyQuit.KeyDown += HotkeyQuitOnKeyDown; //flagToggle.KeyDown += FlagToggleOnKeyDown; HotKeyManager.HotKeyPressed += (sender, e) => { mainTabControl.InvokeIfRequired(() => { if (mainTabControl.SelectedTab == pageHotkeys) { return; } HotkeyPressed(sender, e); }); }; FormClosing += (sender, args) => { if (_saveCurrentCoordinates.Id > 0) { HotKeyManager.UnregisterHotKey(_saveCurrentCoordinates.Id); } }; flagToggleList.DoubleClick += (sender, args) => { if (flagToggleList.SelectedItems.Count > 0) { flagToggleList.SelectedItems[0].BeginEdit(); } }; }