public KeyInputController(IKeyboardPlugin plugin, ISession session) { _plugin = plugin; _context = new KeyInputContext(UIAssistantAPI.Instance.KeyboardAPI.CreateHookHandlers(), UIAssistantAPI.Instance.KeyboardAPI.CreateKeybindManager()); _session = session; }
public void OnKeyDown(IKeyboardPluginContext context, object sender, LowLevelKeyEventArgs e) { e.Handled = true; try { var keysState = e.PressedKeys; var input = e.ConvertToCurrentLanguage(); if (context.Keybinds.Contains(keysState)) { context.Keybinds.Execute(keysState, e.CurrentKeyInfo.IsKeyHoldDown); _stateController.PrintState(); return; } if (input.Length > 0) { _stateController.FilterHints(input); } } catch (Exception ex) { UIAssistantAPI.LogAPI.WriteErrorMessage(ex); } }
public void LoadKeybinds(IKeyboardPluginContext context) { var keybinds = context.Keybinds; keybinds.Clear(); keybinds.Add(_settings.Quit, () => { _stateController.Cancel(); _stateController.Quit(); }); keybinds.Add(_settings.Back, () => UIAssistantAPI.ViewAPI.CurrentHUD.TextBox.Backspace(), KeyState.Down, true); keybinds.Add(_settings.Delete, () => UIAssistantAPI.ViewAPI.CurrentHUD.TextBox.Delete(), KeyState.Down, true); keybinds.Add(_settings.Clear, () => UIAssistantAPI.ViewAPI.CurrentHUD.TextBox.SetText("")); keybinds.Add(_settings.Left, () => UIAssistantAPI.ViewAPI.CurrentHUD.TextBox.MoveCaretToLeft(1), KeyState.Down, true); keybinds.Add(_settings.Right, () => UIAssistantAPI.ViewAPI.CurrentHUD.TextBox.MoveCaretToRight(1), KeyState.Down, true); keybinds.Add(_settings.Up, () => UIAssistantAPI.ViewAPI.CurrentHUD.FocusPreviousItem(), KeyState.Down, true); keybinds.Add(_settings.Down, () => UIAssistantAPI.ViewAPI.CurrentHUD.FocusNextItem(), KeyState.Down, true); keybinds.Add(_settings.PageUp, () => UIAssistantAPI.ViewAPI.CurrentHUD.PageUp(), KeyState.Down, true); keybinds.Add(_settings.PageDown, () => UIAssistantAPI.ViewAPI.CurrentHUD.PageDown(), KeyState.Down, true); keybinds.Add(_settings.Home, () => UIAssistantAPI.ViewAPI.CurrentHUD.TextBox.MoveCaretToHead()); keybinds.Add(_settings.End, () => UIAssistantAPI.ViewAPI.CurrentHUD.TextBox.MoveCaretToTail()); keybinds.Add(_settings.Execute, () => _stateController.Execute()); keybinds.Add(_settings.ShowExtraActions, () => _stateController.SwitchHUD()); keybinds.Add(SearchByText.Settings.Expand, () => { _stateController.Expand(); _disposables.Clear(); ObserveEvent(UIAssistantAPI.ViewAPI.DefaultHUD.TextBox); ObserveEvent(UIAssistantAPI.ViewAPI.DefaultContextHUD.TextBox); }); keybinds.Add(_settings.SwitchTheme, () => _stateController.SwitchNextTheme()); keybinds.Add(_settings.SwitchKeyboardLayout, () => { UIAssistantAPI.KeyboardAPI.LoadAnotherKeyboardLayout(); UIAssistantAPI.NotificationAPI.NotifyInfoMessage("Switch Keyboad Layout", string.Format(UIAssistantAPI.LocalizationAPI.Localize(TextID.SwitchKeyboardLayout), UIAssistantAPI.KeyboardAPI.KeyboardLayoutLanguage)); }); }
public void OnKeyDown(IKeyboardPluginContext context, object sender, LowLevelKeyEventArgs e) { e.Handled = true; var keysState = e.PressedKeys; var input = e.ConvertToCurrentLanguage(); if (context.Keybinds.Contains(keysState)) { context.Keybinds.Execute(keysState, e.CurrentKeyInfo.IsKeyHoldDown); return; } if (string.IsNullOrEmpty(input) || char.IsControl(input[0])) { return; } _stateController.Input(input); }
public void OnKeyUp(IKeyboardPluginContext context, object sender, LowLevelKeyEventArgs e) { var keybinds = _currentKeybinds.Keybinds; if (e.CurrentKeyInfo.IsInjected) { e.Handled = false; return; } e.Handled = true; var key = e.CurrentKeyInfo.Key; var oldKeysState = new KeySet(key); if (_currentKeybinds.OneShotKeybinds.Contains(oldKeysState)) { keybinds.Execute(oldKeysState, e.CurrentKeyInfo.IsKeyHoldDown, KeyState.Up); if (e.CurrentKeyInfo.IsOneShot) { _currentKeybinds.OneShotKeybinds.Execute(oldKeysState, e.CurrentKeyInfo.IsKeyHoldDown); } return; } var keysState = GenerateKeySet(key, e.PressedKeys); if (keybinds.Contains(keysState, KeyState.Up)) { var operation = keybinds.GetAction(keysState, KeyState.Up); ReleaseKeys(keysState); operation?.Invoke(); return; } e.Handled = !_currentKeybinds.IsEnabledWindowsKeybinds; return; }
public void OnKeyUp(IKeyboardPluginContext context, object sender, LowLevelKeyEventArgs e) { }
public void Initialize(IKeyboardPluginContext context) { context.HookHandlers.IgnoreInjected = true; ObserveEvent(UIAssistantAPI.ViewAPI.DefaultHUD.TextBox); ObserveEvent(UIAssistantAPI.ViewAPI.DefaultContextHUD.TextBox); }
public void Cleanup(IKeyboardPluginContext context) { }
public void LoadKeybinds(IKeyboardPluginContext context) { var keybinds = context.Keybinds; keybinds.Add(UIAssistantAPI.UIAssistantSettings.Quit, () => { _stateController.ActivateLastActiveWindow(); _stateController.Quit(); }); keybinds.Add(UIAssistantAPI.UIAssistantSettings.SwitchTheme, () => { if (_stateController.IsBusy) { return; } _stateController.SwitchNextTheme(); }); keybinds.Add(UIAssistantAPI.UIAssistantSettings.Back, () => _stateController.Back(), KeyState.Down, true); keybinds.Add(_settings.Reload, () => { if (_stateController.IsBusy) { return; } _stateController.Clear(); _stateController.Enumerate(); _stateController.PrintState(); }); keybinds.Add(_settings.Reverse, () => UIAssistantAPI.ViewAPI.DefaultHUD.Items = UIAssistantAPI.ViewAPI.DefaultHUD.Items.Reverse().ToList()); keybinds.Add(_settings.Click, () => _stateController.ChangeOperation(Consts.Click)); keybinds.Add(_settings.RightClick, () => _stateController.ChangeOperation(Consts.RightClick)); keybinds.Add(_settings.MiddleClick, () => _stateController.ChangeOperation(Consts.MiddleClick)); keybinds.Add(_settings.DoubleClick, () => _stateController.ChangeOperation(Consts.DoubleClick)); keybinds.Add(_settings.Hover, () => _stateController.ChangeOperation(Consts.Hover)); keybinds.Add(_settings.DragAndDrop, () => _stateController.ChangeOperation(Consts.DragAndDrop)); keybinds.Add(_settings.MouseEmulation, () => _stateController.ChangeOperation(Consts.MouseEmulation)); keybinds.Add(UIAssistantAPI.UIAssistantSettings.SwitchKeyboardLayout, () => { UIAssistantAPI.KeyboardAPI.LoadAnotherKeyboardLayout(); var layoutLanguage = UIAssistantAPI.KeyboardAPI.KeyboardLayoutLanguage; UIAssistantAPI.NotificationAPI.NotifyInfoMessage("Switch Keyboad Layout", string.Format(UIAssistantAPI.LocalizationAPI.Localize(TextID.SwitchKeyboardLayout), layoutLanguage)); _stateController.State.KeyboardLayoutName = layoutLanguage; }); keybinds.Add(UIAssistantAPI.UIAssistantSettings.Up, () => UIAssistantAPI.ViewAPI.DefaultHUD.FocusPreviousItem(), KeyState.Down, true); keybinds.Add(UIAssistantAPI.UIAssistantSettings.Down, () => UIAssistantAPI.ViewAPI.DefaultHUD.FocusNextItem(), KeyState.Down, true); keybinds.Add(UIAssistantAPI.UIAssistantSettings.Execute, () => { var selectedItem = UIAssistantAPI.ViewAPI.DefaultHUD.SelectedItem; if (selectedItem != null) { _stateController.Invoke(selectedItem); } else if (UIAssistantAPI.ViewAPI.DefaultHUD.Items.Count == 1) { _stateController.Invoke(UIAssistantAPI.ViewAPI.DefaultHUD.Items.ElementAt(0)); } }); }
public void Cleanup(IKeyboardPluginContext context) { //_keyController.Dispose(); }
public void Initialize(IKeyboardPluginContext context) { _stateController.State.KeyboardLayoutName = UIAssistantAPI.KeyboardAPI.KeyboardLayoutLanguage; }
public void LoadKeybinds(IKeyboardPluginContext context) { _keybindsDic.Clear(); foreach (var keybinds in _settings.KeybindsInMode) { var defaultKeybinds = context.Keybinds; defaultKeybinds = KeyboardAPI.CreateKeybindManager(); var keybindStorage = new KeybindStorage(); var oneShotDefined = new Dictionary <KeySet, bool>(); foreach (var keybind in keybinds.Value.Keybinds) { if (keybind.InputKeys == null) { continue; } var keyset = new KeySet(keybind.InputKeys); var canDefineOneShot = keybind.CanDefineOneShot; if (canDefineOneShot) { oneShotDefined.Add(keyset, canDefineOneShot); } switch (keybind.Type) { case CommandType.SwapKey: if (canDefineOneShot) { keybindStorage.OneShotKeybinds.Add(keyset, () => { var keys = keybind.OneShot; if (_stateController.Mode == Mode.Visual && ContainsMovingKey(keys)) { KeyboardAPI.KeyboardOperation.SendKeys(new[] { Key.RightShift }.Concat(keys).ToArray()); return; } KeyboardAPI.KeyboardOperation.SendKeys(keys); }, KeyState.Down, true); } defaultKeybinds.Add(keyset, () => { var keys = keybind.OutputKeys; var isVisual = _stateController.Mode == Mode.Visual && ContainsMovingKey(keys); if (isVisual) { keys = new[] { Key.RightShift }.Concat(keys).ToArray(); } KeyboardAPI.KeyboardOperation.KeyDown(keys); if (isVisual) { KeyboardAPI.KeyboardOperation.KeyUp(Key.RightShift); } }, KeyState.Down, true); defaultKeybinds.Add(keyset, () => { var keys = keybind.OutputKeys; KeyboardAPI.KeyboardOperation.KeyUp(keys); }, KeyState.Up, true); break; case CommandType.RunEmbeddedCommand: defaultKeybinds.Add(keyset, ParseCommand(keybind.CommandText, keybind.InputKeys), KeyState.Down, true); break; case CommandType.RunUIAssistantCommand: defaultKeybinds.Add(keyset, () => { var command = keybind.CommandText; if (KeybindsManiacs.UIAssistantAPI.PluginManager.Exists(command)) { KeybindsManiacs.UIAssistantAPI.PluginManager.Execute(command); } else { UIAssistantAPI.NotificationAPI.NotifyWarnMessage("Plugin Error", string.Format(KeybindsManiacs.UIAssistantAPI.LocalizationAPI.Localize(TextID.CommandNotFound), command)); } }, KeyState.Down, true); break; //case CommandType.RunExtensionCommand: // break; default: break; } } keybindStorage.IsEnabledWindowsKeybinds = keybinds.Value.IsEnabledWindowsKeybinds; keybindStorage.IsPrefix = keybinds.Value.IsPrefix; keybindStorage.OneShotDefined = oneShotDefined; keybindStorage.Keybinds = defaultKeybinds; _keybindsDic.Add(keybinds.Key, keybindStorage); } SwitchMode(_settings.Mode, true); }
public void OnKeyDown(IKeyboardPluginContext context, object sender, LowLevelKeyEventArgs e) { var keybinds = _currentKeybinds.Keybinds; if (e.CurrentKeyInfo.IsInjected) { e.Handled = false; return; } e.Handled = true; var keysState = e.PressedKeys; var key = e.CurrentKeyInfo.Key; _currentKeySet = keysState; if (keysState.Keys.Count == 1) { if (_currentKeybinds.OneShotDefined.ContainsKey(keysState)) { keybinds.Execute(keysState, e.CurrentKeyInfo.IsKeyHoldDown); return; } } var input = e.ConvertToCurrentLanguage(); if (input.Length > 0 && _command != null) { _command.Invoke(input, keysState); return; } if (keybinds.Contains(keysState)) { if (e.CurrentKeyInfo.IsKeyHoldDown && !keybinds.CanActWhenKeyRepeat(keysState)) { return; } var operation = keybinds.GetAction(keysState); ReleaseKeys(keysState); operation?.Invoke(); return; } //var keyset = new KeySet(key); var keyset = GenerateKeySet(key, keysState); if (keybinds.Contains(keyset)) { if (e.CurrentKeyInfo.IsKeyHoldDown && !keybinds.CanActWhenKeyRepeat(keyset)) { return; } var operation = keybinds.GetAction(keyset); ReleaseKeys(keysState); operation?.Invoke(); return; } e.Handled = !_currentKeybinds.IsEnabledWindowsKeybinds; return; }
public void Initialize(IKeyboardPluginContext context) { context.HookHandlers.IgnoreInjected = true; }