aboutsummaryrefslogtreecommitdiff
path: root/backends/keymapper/keymap-manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'backends/keymapper/keymap-manager.h')
-rw-r--r--backends/keymapper/keymap-manager.h35
1 files changed, 21 insertions, 14 deletions
diff --git a/backends/keymapper/keymap-manager.h b/backends/keymapper/keymap-manager.h
index 171da3ac5e..6bcb71c0f5 100644
--- a/backends/keymapper/keymap-manager.h
+++ b/backends/keymapper/keymap-manager.h
@@ -37,8 +37,11 @@ class KeymapManager {
public:
class Domain {
+ typedef HashMap<String, Keymap*,
+ IgnoreCase_Hash, IgnoreCase_EqualTo> KeymapMap;
+
public:
- Domain() : _defaultKeymap(0), _configDomain(0) {}
+ Domain() : _configDomain(0) {}
~Domain() {
deleteAllKeyMaps();
}
@@ -50,20 +53,22 @@ public:
return _configDomain;
}
- void setDefaultKeymap(Keymap *map);
- void addKeymap(const String& name, Keymap *map);
+ void addKeymap(Keymap *map);
void deleteAllKeyMaps();
- Keymap *getDefaultKeymap();
Keymap *getKeymap(const String& name);
-
+
+ typedef KeymapMap::iterator iterator;
+ typedef KeymapMap::const_iterator const_iterator;
+ iterator begin() { return _keymaps.begin(); }
+ const_iterator begin() const { return _keymaps.begin(); }
+ iterator end() { return _keymaps.end(); }
+ const_iterator end() const { return _keymaps.end(); }
+
+ uint32 count() { return _keymaps.size(); }
private:
- typedef HashMap<String, Keymap*,
- IgnoreCase_Hash, IgnoreCase_EqualTo> KeymapMap;
-
ConfigManager::Domain *_configDomain;
- Keymap *_defaultKeymap;
KeymapMap _keymaps;
};
@@ -71,19 +76,21 @@ public:
~KeymapManager();
void registerHardwareKeySet(HardwareKeySet *keys);
+ HardwareKeySet *getHardwareKeySet() { return _hardwareKeys; }
- void registerDefaultGlobalKeymap(Keymap *map);
- void registerGlobalKeymap(const String& name, Keymap *map);
+ void registerGlobalKeymap(Keymap *map);
void refreshGameDomain();
- void registerDefaultGameKeymap(Keymap *map);
- void registerGameKeymap(const String& name, Keymap *map);
+ void registerGameKeymap(Keymap *map);
Keymap *getKeymap(const String& name);
+ Domain& getGlobalDomain() { return _globalDomain; }
+ Domain& getGameDomain() { return _gameDomain; }
+
private:
- void initKeymap(ConfigManager::Domain *domain, const String& name, Keymap *keymap);
+ void initKeymap(ConfigManager::Domain *domain, Keymap *keymap);
void automaticMap(Keymap *map);
Domain _globalDomain;