public void Save() { Log.Info("Saving keyboard mappings"); try { var keyboardMappings = new KeyboardMappings(); foreach (var command in _commandManager.GetCommands()) { var keyboardMapping = new KeyboardMapping(); keyboardMapping.CommandName = command; keyboardMapping.InputGesture = _commandManager.GetInputGesture(command); keyboardMappings.Mappings.Add(keyboardMapping); } using (var fileStream = _fileService.Create(_fileName)) { _xmlSerializer.Serialize(keyboardMappings, fileStream, null); } } catch (Exception ex) { Log.Error(ex, "Failed to save the keyboard mappings"); } }
internal bool? ShouldMouseBeActive() { foreach (KeyValuePair<ActionKeys, Buttons> gamePadMapping in GamePadMappings) { for (int i = 0; i < 4; i++) { if (gamepadState[i].IsButtonDown(gamePadMapping.Value)) { return false; } } } if (KeyboardMappings.Any(keyboardMapping => keyboardState.IsKeyDown(keyboardMapping.Value))) { return false; } if (mouseState.LeftButton == ButtonState.Pressed) { return true; } return null; }
internal bool CheckPressed(ActionKeys key) { if (GamePadMappings.Any(x => x.Key == key)) { for (int i = 0; i < 4; i++) { if (gamepadState[i].IsConnected) { KeyValuePair<ActionKeys, Buttons> found = GamePadMappings.FirstOrDefault(x => x.Key == key); Buttons mapping = found.Value; if (gamepadState[i].IsButtonDown(mapping)) { return true; } } } } if (KeyboardMappings.ContainsKey(key)) { var keyToCheck = KeyboardMappings[key]; if (keyboardState.IsKeyDown(keyToCheck)) { return true; } } if (MouseButtonsMappings.ContainsKey(key)) { MouseButtons mouseButtonToCheck = MouseButtonsMappings[key]; if (mouseButtonToCheck == MouseButtons.LeftClick && mouseState.LeftButton == ButtonState.Pressed) return true; if (mouseButtonToCheck == MouseButtons.MiddleClick && mouseState.MiddleButton == ButtonState.Pressed) return true; if (mouseButtonToCheck == MouseButtons.RightClick && mouseState.RightButton == ButtonState.Pressed) return true; if (mouseButtonToCheck == MouseButtons.MouseWheelUp && ScrollPos > LastScrollPos) return true; if (mouseButtonToCheck == MouseButtons.MouseWheelDown && ScrollPos < LastScrollPos) return true; } return false; }
protected override async Task Initialize() { Title = string.Format(_languageService.GetString("ShortcutsForApplication"), AssemblyHelper.GetEntryAssembly().Title()); var mappingsByGroup = new Dictionary <string, KeyboardMappings>(); mappingsByGroup.Add(string.Empty, new KeyboardMappings { GroupName = string.Empty }); var commands = _commandManager.GetCommands(); var groups = (from command in commands select command.GetCommandGroup()).Distinct().OrderBy(x => x); foreach (var group in groups) { mappingsByGroup[group] = new KeyboardMappings { GroupName = group }; } foreach (var command in commands.OrderBy(x => x.GetCommandName())) { string groupName = command.GetCommandGroup(); var inputGesture = _commandManager.GetInputGesture(command); mappingsByGroup[groupName].Mappings.Add(new KeyboardMapping { CommandName = command, InputGesture = inputGesture }); } if (mappingsByGroup[string.Empty].Mappings.Count == 0) { mappingsByGroup.Remove(string.Empty); } KeyboardMappings = new List <KeyboardMappings>(mappingsByGroup.Values); }
protected override async Task InitializeAsync() { await base.InitializeAsync(); Title = string.Format(_languageService.GetString("Orchestra_ShortcutsForApplication"), AssemblyHelper.GetEntryAssembly().Title()); var mappingsByGroup = new Dictionary<string, KeyboardMappings>(); mappingsByGroup.Add(string.Empty, new KeyboardMappings { GroupName = string.Empty }); var commands = _commandManager.GetCommands(); var groups = (from command in commands select command.GetCommandGroup()).Distinct().OrderBy(x => x); foreach (var group in groups) { mappingsByGroup[group] = new KeyboardMappings { GroupName = group }; } foreach (var command in commands.OrderBy(x => x.GetCommandName())) { var commandInfo = _commandInfoService.GetCommandInfo(command); if (commandInfo.IsHidden) { Log.Debug("Command '{0}' is hidden, not showing in keyboard mappings overview", command); continue; } var groupName = command.GetCommandGroup(); var inputGesture = _commandManager.GetInputGesture(command); mappingsByGroup[groupName].Mappings.Add(new KeyboardMapping { CommandName = command, InputGesture = inputGesture }); } var additionalKeyboardMappings = _keyboardMappingsService.AdditionalKeyboardMappings; foreach (var additionalKeyboardMapping in additionalKeyboardMappings) { var groupName = additionalKeyboardMapping.CommandName.GetCommandGroup(); if (!mappingsByGroup.ContainsKey(groupName)) { mappingsByGroup[groupName] = new KeyboardMappings { GroupName = groupName }; } mappingsByGroup[groupName].Mappings.Add(additionalKeyboardMapping); } if (mappingsByGroup[string.Empty].Mappings.Count == 0) { mappingsByGroup.Remove(string.Empty); } var finalMappings = new Dictionary<string, KeyboardMappings>(); foreach (var mappingGroup in mappingsByGroup) { var keyboardMappings = new KeyboardMappings { GroupName = mappingGroup.Key }; keyboardMappings.Mappings.AddRange(mappingGroup.Value.Mappings.OrderBy(x => x.CommandName)); finalMappings[mappingGroup.Key] = keyboardMappings; } KeyboardMappings = new List<KeyboardMappings>(finalMappings.Values.OrderBy(x => x.GroupName)); }
protected override async Task InitializeAsync() { await base.InitializeAsync(); Title = string.Format(_languageService.GetString("Orchestra_ShortcutsForApplication"), AssemblyHelper.GetEntryAssembly().Title()); var mappingsByGroup = new Dictionary <string, KeyboardMappings>(); mappingsByGroup.Add(string.Empty, new KeyboardMappings { GroupName = string.Empty }); var commands = _commandManager.GetCommands(); var groups = (from command in commands select command.GetCommandGroup()).Distinct().OrderBy(x => x); foreach (var group in groups) { mappingsByGroup[group] = new KeyboardMappings { GroupName = group }; } foreach (var command in commands.OrderBy(x => x.GetCommandName())) { var commandInfo = _commandInfoService.GetCommandInfo(command); if (commandInfo.IsHidden) { Log.Debug("Command '{0}' is hidden, not showing in keyboard mappings overview", command); continue; } var groupName = command.GetCommandGroup(); var inputGesture = _commandManager.GetInputGesture(command); mappingsByGroup[groupName].Mappings.Add(new KeyboardMapping { CommandName = command, InputGesture = inputGesture }); } var additionalKeyboardMappings = _keyboardMappingsService.AdditionalKeyboardMappings; foreach (var additionalKeyboardMapping in additionalKeyboardMappings) { var groupName = additionalKeyboardMapping.CommandName.GetCommandGroup(); if (!mappingsByGroup.ContainsKey(groupName)) { mappingsByGroup[groupName] = new KeyboardMappings { GroupName = groupName }; } mappingsByGroup[groupName].Mappings.Add(additionalKeyboardMapping); } if (mappingsByGroup[string.Empty].Mappings.Count == 0) { mappingsByGroup.Remove(string.Empty); } var finalMappings = new Dictionary <string, KeyboardMappings>(); foreach (var mappingGroup in mappingsByGroup) { var keyboardMappings = new KeyboardMappings { GroupName = mappingGroup.Key }; keyboardMappings.Mappings.AddRange(mappingGroup.Value.Mappings.OrderBy(x => x.CommandName)); finalMappings[mappingGroup.Key] = keyboardMappings; } KeyboardMappings = new List <KeyboardMappings>(finalMappings.Values.OrderBy(x => x.GroupName)); }