Exemplo n.º 1
0
        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");
            }
        }
Exemplo n.º 2
0
            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;
            }
Exemplo n.º 3
0
            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));
        }