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();
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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;
                        }
                    }
                }
            }
        }
Esempio n. 4
0
        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;
        }
Esempio n. 5
0
        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();
                }
            };
        }