Exemple #1
0
        public HotkeyManager(IReadOnlyFileSystem fileSystem, Dictionary <string, Hotkey> settings, Manifest manifest)
        {
            this.settings = settings;

            var keyDefinitions = MiniYaml.Load(fileSystem, manifest.Hotkeys, null);

            foreach (var kd in keyDefinitions)
            {
                var definition = new HotkeyDefinition(kd.Key, kd.Value);
                definitions[kd.Key] = definition;
                keys[kd.Key]        = definition.Default;
            }

            foreach (var kv in settings)
            {
                if (definitions.ContainsKey(kv.Key))
                {
                    keys[kv.Key] = kv.Value;
                }
            }

            foreach (var hd in definitions)
            {
                hd.Value.HasDuplicates = GetFirstDuplicate(hd.Value.Name, this[hd.Value.Name].GetValue(), hd.Value) != null;
            }
        }
Exemple #2
0
        public HotkeyDefinition GetFirstDuplicate(string name, Hotkey value, HotkeyDefinition definition)
        {
            foreach (var kv in keys)
            {
                if (kv.Key == name)
                {
                    continue;
                }

                if (kv.Value == value && definitions[kv.Key].Types.Overlaps(definition.Types))
                {
                    return(definitions[kv.Key]);
                }
            }

            return(null);
        }
Exemple #3
0
        public HotkeyManager(IReadOnlyFileSystem fileSystem, Dictionary <string, Hotkey> settings, Manifest manifest)
        {
            this.settings = settings;

            var keyDefinitions = MiniYaml.Load(fileSystem, manifest.Hotkeys, null);

            foreach (var kd in keyDefinitions)
            {
                var definition = new HotkeyDefinition(kd.Key, kd.Value);
                definitions[kd.Key] = definition;
                keys[kd.Key]        = definition.Default;
            }

            foreach (var kv in settings)
            {
                keys[kv.Key] = kv.Value;
            }
        }
Exemple #4
0
        public HotkeyDefinition GetFirstDuplicate(HotkeyDefinition definition, Hotkey value)
        {
            if (definition == null)
            {
                return(null);
            }

            foreach (var kv in keys)
            {
                if (kv.Key == definition.Name)
                {
                    continue;
                }

                if (kv.Value == value && definitions[kv.Key].Contexts.Overlaps(definition.Contexts))
                {
                    return(definitions[kv.Key]);
                }
            }

            return(null);
        }