Пример #1
0
        private void SetHotkey(KeyEventArgs e)
        {
            HotKeys.ModifierKeys modifierKeys = 0;
            var displayString = "";

            foreach (var pressedModifier in KeyboardWindowsAPI.GetPressedModifiers())
            {
                if ((pressedModifier & Keys.Modifiers) == Keys.Control)
                {
                    modifierKeys  |= HotKeys.ModifierKeys.Control;
                    displayString += "Ctrl+";
                }

                if ((pressedModifier & Keys.Modifiers) == Keys.Alt)
                {
                    modifierKeys  |= HotKeys.ModifierKeys.Alt;
                    displayString += "Alt+";
                }

                if ((pressedModifier & Keys.Modifiers) == Keys.Shift)
                {
                    modifierKeys  |= HotKeys.ModifierKeys.Shift;
                    displayString += "Shift+";
                }

                if (pressedModifier == Keys.LWin || pressedModifier == Keys.RWin)
                {
                    modifierKeys  |= HotKeys.ModifierKeys.Win;
                    displayString += "Win+";
                }
            }

            var normalPressedKeys = KeyboardWindowsAPI.GetNormalPressedKeys();
            var key = normalPressedKeys.FirstOrDefault();


            if (key == Keys.None)
            {
                hotkeysTextBox.Text      = displayString;
                hotkeysTextBox.ForeColor = Color.Crimson;
            }
            else
            {
                hotkeysTextBox.Text = displayString + key;
                var tuple    = (Tuple <DataFlow, HotKeys>)hotkeysTextBox.Tag;
                var newTuple = new Tuple <DataFlow, HotKeys>(tuple.Item1, new HotKeys(e.KeyCode, modifierKeys));
                hotkeysTextBox.Tag       = newTuple;
                hotkeysTextBox.ForeColor = AppModel.Instance.SetHotkeyCombination(newTuple.Item2, newTuple.Item1)
                    ? Color.Green
                    : Color.Red;
            }

            e.Handled = true;
        }
Пример #2
0
        private void SetHotkey(KeyEventArgs e)
        {
            HotKeys.ModifierKeys modifierKeys = 0;
            var displayString = "";

            if (e.Control)
            {
                modifierKeys  |= HotKeys.ModifierKeys.Control;
                displayString += "Ctrl+";
            }
            if (e.Alt)
            {
                modifierKeys  |= HotKeys.ModifierKeys.Alt;
                displayString += "Alt+";
            }
            if (e.Shift)
            {
                modifierKeys  |= HotKeys.ModifierKeys.Shift;
                displayString += "Shift+";
            }
            var keyCode = e.KeyCode.ToString();

            if (new[] { 8, 16, 17, 18, 46 }.Contains(e.KeyValue))
            {
                keyCode = "";
                hotkeyTextBox.ForeColor = Color.Crimson;
            }

            hotkeyTextBox.Text = $"{displayString}{keyCode}";
            if (!string.IsNullOrEmpty(keyCode))
            {
                var tuple    = (Tuple <AudioDeviceType, HotKeys>)hotkeyTextBox.Tag;
                var newTuple = new Tuple <AudioDeviceType, HotKeys>(tuple.Item1, new HotKeys(e.KeyCode, modifierKeys));
                hotkeyTextBox.Tag       = newTuple;
                hotkeyTextBox.ForeColor = AppModel.Instance.SetHotkeyCombination(newTuple.Item2,
                                                                                 newTuple.Item1)
                    ? Color.Green
                    : Color.Red;
            }
            e.Handled = true;
        }