static KeyboardInputSimulation() { var combos = new[] { ModifierKeys.None, ModifierKeys.Shift, ModifierKeys.Control, ModifierKeys.Alt, ModifierKeys.Alt | ModifierKeys.Shift }; var map = new Dictionary <KeyInput, KeyData>(); foreach (var c in KeyInputUtil.CharLettersLower) { foreach (var mod in combos) { var keyMod = AlternateKeyUtil.ConvertToKeyModifiers(mod); var keyInput = KeyInputUtil.ApplyKeyModifiersToChar(c, keyMod); var key = (Key)((c - 'a') + (int)Key.A); map[keyInput] = new KeyData(key, mod); } } map[KeyInputUtil.CharToKeyInput(' ')] = new KeyData(Key.Space, ModifierKeys.None); map[KeyInputUtil.CharToKeyInput('.')] = new KeyData(Key.OemPeriod, ModifierKeys.None); map[KeyInputUtil.CharToKeyInput(';')] = new KeyData(Key.OemSemicolon, ModifierKeys.None); map[KeyInputUtil.CharToKeyInput(':')] = new KeyData(Key.OemSemicolon, ModifierKeys.Shift); s_keyDataMap = map; }
private bool TryConvert(KeyInput keyInput, out Key key, out ModifierKeys modifierKeys) { if (AlternateKeyUtil.TrySpecialVimKeyToKey(keyInput.Key, out key)) { var keyModifiers = keyInput.KeyModifiers; modifierKeys = ModifierKeys.None; if (KeyModifiers.Control == (keyModifiers & KeyModifiers.Control)) { modifierKeys |= ModifierKeys.Control; } if (KeyModifiers.Shift == (keyModifiers & KeyModifiers.Shift)) { modifierKeys |= ModifierKeys.Shift; } if (KeyModifiers.Alt == (keyModifiers & KeyModifiers.Alt)) { modifierKeys |= ModifierKeys.Alt; } return(true); } if (keyInput.RawChar.IsSome()) { uint virtualKey; VirtualKeyModifiers virtualKeyModifiers; if (_virtualKeyboard.TryMapChar(keyInput.Char, out virtualKey, out virtualKeyModifiers)) { key = KeyInterop.KeyFromVirtualKey((int)virtualKey); modifierKeys = ModifierKeys.None; if (VirtualKeyModifiers.Control == (virtualKeyModifiers & VirtualKeyModifiers.Control)) { modifierKeys |= ModifierKeys.Control; } if (VirtualKeyModifiers.Shift == (virtualKeyModifiers & VirtualKeyModifiers.Shift)) { modifierKeys |= ModifierKeys.Shift; } if (VirtualKeyModifiers.Alt == (virtualKeyModifiers & VirtualKeyModifiers.Alt)) { modifierKeys |= ModifierKeys.Alt; } return(true); } } key = Key.None; modifierKeys = ModifierKeys.None; return(false); }
private bool TryConvert(KeyInput keyInput, out Key key, out ModifierKeys modifierKeys) { if (AlternateKeyUtil.TrySpecialVimKeyToKey(keyInput.Key, out key)) { var keyModifiers = keyInput.KeyModifiers; modifierKeys = ModifierKeys.None; if (VimKeyModifiers.Control == (keyModifiers & VimKeyModifiers.Control)) { modifierKeys |= ModifierKeys.Control; } if (VimKeyModifiers.Shift == (keyModifiers & VimKeyModifiers.Shift)) { modifierKeys |= ModifierKeys.Shift; } if (VimKeyModifiers.Alt == (keyModifiers & VimKeyModifiers.Alt)) { modifierKeys |= ModifierKeys.Alt; } return(true); } KeyData keyData; if (KeyDataMap.TryGetValue(keyInput, out keyData)) { key = keyData.Key; modifierKeys = keyData.ModifierKeys; return(true); } key = Key.None; modifierKeys = ModifierKeys.None; return(false); }
protected AlternateKeyUtilTest() { _keyUtilRaw = new AlternateKeyUtil(); _keyUtil = _keyUtilRaw; }