summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerkeyboard.h
diff options
context:
space:
mode:
authorOz Linden <oz@lindenlab.com>2011-01-24 11:44:43 -0500
committerOz Linden <oz@lindenlab.com>2011-01-24 11:44:43 -0500
commitf57aa3e83f1b4286b1d6b5cc8bca20fb924cb002 (patch)
tree12dae11397876ce10d75eeabe5b1656ea18cd6ac /indra/newview/llviewerkeyboard.h
parentb429ff8ec3e1aebc60ff7f4d3376cfc8b9f2e669 (diff)
parentf9b9c7a5816cf0b9627a4a50e73a663667937145 (diff)
merge changes for i18n fixes
Diffstat (limited to 'indra/newview/llviewerkeyboard.h')
-rw-r--r--indra/newview/llviewerkeyboard.h37
1 files changed, 31 insertions, 6 deletions
diff --git a/indra/newview/llviewerkeyboard.h b/indra/newview/llviewerkeyboard.h
index 2fa5d5dfa6..925244e89b 100644
--- a/indra/newview/llviewerkeyboard.h
+++ b/indra/newview/llviewerkeyboard.h
@@ -55,26 +55,51 @@ typedef enum e_keyboard_mode
void bind_keyboard_functions();
-
class LLViewerKeyboard
{
public:
+ struct KeyBinding : public LLInitParam::Block<KeyBinding>
+ {
+ Mandatory<std::string> key,
+ mask,
+ command;
+
+ KeyBinding();
+ };
+
+ struct KeyMode : public LLInitParam::Block<KeyMode>
+ {
+ Multiple<KeyBinding> bindings;
+ EKeyboardMode mode;
+ KeyMode(EKeyboardMode mode);
+ };
+
+ struct Keys : public LLInitParam::Block<Keys>
+ {
+ Optional<KeyMode> first_person,
+ third_person,
+ edit,
+ sitting,
+ edit_avatar;
+
+ Keys();
+ };
+
LLViewerKeyboard();
BOOL handleKey(KEY key, MASK mask, BOOL repeated);
- void bindNamedFunction(const std::string& name, LLKeyFunc func);
-
S32 loadBindings(const std::string& filename); // returns number bound, 0 on error
+ S32 loadBindingsXML(const std::string& filename); // returns number bound, 0 on error
EKeyboardMode getMode();
BOOL modeFromString(const std::string& string, S32 *mode); // False on failure
void scanKey(KEY key, BOOL key_down, BOOL key_up, BOOL key_level);
-protected:
+
+private:
+ S32 loadBindingMode(const LLViewerKeyboard::KeyMode& keymode);
BOOL bindKey(const S32 mode, const KEY key, const MASK mask, const std::string& function_name);
- S32 mNamedFunctionCount;
- LLNamedFunction mNamedFunctions[MAX_NAMED_FUNCTIONS];
// Hold all the ugly stuff torn out to make LLKeyboard non-viewer-specific here
S32 mBindingCount[MODE_COUNT];