From aeec9ca9881bbd4fdc332b342b09a795ee3961b4 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 12 Jul 2013 20:11:09 +0300 Subject: add ability to show assigned keys in browserbox. Example: This is chat modifier key: ###ChatMod;. If chat mod key is left shift, it will show: "This is chat modifier key: left shift." --- src/inputmanager.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/inputmanager.cpp') diff --git a/src/inputmanager.cpp b/src/inputmanager.cpp index 4b5988a57..3b99c3498 100644 --- a/src/inputmanager.cpp +++ b/src/inputmanager.cpp @@ -66,7 +66,8 @@ static class KeyFunctor final InputManager::InputManager() : mSetupInput(nullptr), mNewKeyIndex(Input::KEY_NO_VALUE), - mMask(1) + mMask(1), + mNameMap() { } @@ -104,6 +105,7 @@ void InputManager::retrieve() const char *const cf = keyData[i].configField; if (*cf) { + mNameMap[cf] = i; KeyFunction &kf = mKey[i]; const std::string keyStr = config.getValue(cf, ""); if (keyStr.empty()) @@ -392,6 +394,16 @@ std::string InputManager::getKeyValueString(const int index) const return keyStr; } +std::string InputManager::getKeyValueByName(const std::string &keyName) +{ + const std::map::const_iterator + it = mNameMap.find(keyName); + + if (it == mNameMap.end()) + return std::string(); + return getKeyValueString((*it).second); +} + void InputManager::addActionKey(const int action, const int type, const int val) { -- cgit v1.2.3-60-g2f50