class Action\r
{\r
public:\r
- ///\r
- enum Type\r
- {\r
- Type_key, ///\r
- Type_keySeq, ///\r
- Type_function, ///\r
- };\r
+ ///\r
+ enum Type {\r
+ Type_key, ///\r
+ Type_keySeq, ///\r
+ Type_function, ///\r
+ };\r
\r
private:\r
- Action(const Action &i_action);\r
- \r
+ Action(const Action &i_action);\r
+\r
public:\r
- Action() { }\r
- ///\r
- virtual ~Action() { }\r
- ///\r
- virtual Type getType() const = 0;\r
- /// create clone\r
- virtual Action *clone() const = 0;\r
- /// stream output\r
- virtual tostream &output(tostream &i_ost) const = 0;\r
+ Action() { }\r
+ ///\r
+ virtual ~Action() { }\r
+ ///\r
+ virtual Type getType() const = 0;\r
+ /// create clone\r
+ virtual Action *clone() const = 0;\r
+ /// stream output\r
+ virtual tostream &output(tostream &i_ost) const = 0;\r
};\r
\r
///\r
class ActionKey : public Action\r
{\r
public:\r
- ///\r
- const ModifiedKey m_modifiedKey;\r
+ ///\r
+ const ModifiedKey m_modifiedKey;\r
\r
private:\r
- ActionKey(const ActionKey &i_actionKey);\r
- \r
+ ActionKey(const ActionKey &i_actionKey);\r
+\r
public:\r
- ///\r
- ActionKey(const ModifiedKey &i_mk);\r
- ///\r
- virtual Type getType() const;\r
- /// create clone\r
- virtual Action *clone() const;\r
- /// stream output\r
- virtual tostream &output(tostream &i_ost) const;\r
+ ///\r
+ ActionKey(const ModifiedKey &i_mk);\r
+ ///\r
+ virtual Type getType() const;\r
+ /// create clone\r
+ virtual Action *clone() const;\r
+ /// stream output\r
+ virtual tostream &output(tostream &i_ost) const;\r
};\r
\r
\r
class ActionKeySeq : public Action\r
{\r
public:\r
- KeySeq * const m_keySeq; ///\r
+ KeySeq * const m_keySeq; ///\r
\r
private:\r
- ActionKeySeq(const ActionKeySeq &i_actionKeySeq);\r
- \r
+ ActionKeySeq(const ActionKeySeq &i_actionKeySeq);\r
+\r
public:\r
- ///\r
- ActionKeySeq(KeySeq *i_keySeq);\r
- ///\r
- virtual Type getType() const;\r
- /// create clone\r
- virtual Action *clone() const;\r
- /// stream output\r
- virtual tostream &output(tostream &i_ost) const;\r
+ ///\r
+ ActionKeySeq(KeySeq *i_keySeq);\r
+ ///\r
+ virtual Type getType() const;\r
+ /// create clone\r
+ virtual Action *clone() const;\r
+ /// stream output\r
+ virtual tostream &output(tostream &i_ost) const;\r
};\r
\r
\r
class ActionFunction : public Action\r
{\r
public:\r
- FunctionData * const m_functionData; /// function data\r
- const Modifier m_modifier; /// modifier for &Sync\r
+ FunctionData * const m_functionData; /// function data\r
+ const Modifier m_modifier; /// modifier for &Sync\r
\r
private:\r
- ActionFunction(const ActionFunction &i_actionFunction);\r
- \r
+ ActionFunction(const ActionFunction &i_actionFunction);\r
+\r
public:\r
- ///\r
- ActionFunction(FunctionData *i_functionData,\r
- Modifier i_modifier = Modifier());\r
- ///\r
- virtual ~ActionFunction();\r
- ///\r
- virtual Type getType() const;\r
- /// create clone\r
- virtual Action *clone() const;\r
- /// stream output\r
- virtual tostream &output(tostream &i_ost) const;\r
+ ///\r
+ ActionFunction(FunctionData *i_functionData,\r
+ Modifier i_modifier = Modifier());\r
+ ///\r
+ virtual ~ActionFunction();\r
+ ///\r
+ virtual Type getType() const;\r
+ /// create clone\r
+ virtual Action *clone() const;\r
+ /// stream output\r
+ virtual tostream &output(tostream &i_ost) const;\r
};\r
\r
\r
class KeySeq\r
{\r
public:\r
- typedef std::vector<Action *> Actions; /// \r
+ typedef std::vector<Action *> Actions; ///\r
\r
private:\r
- Actions m_actions; ///\r
- tstringi m_name; ///\r
- Modifier::Type m_mode; /** Either Modifier::Type_KEYSEQ\r
+ Actions m_actions; ///\r
+ tstringi m_name; ///\r
+ Modifier::Type m_mode; /** Either Modifier::Type_KEYSEQ\r
or Modifier::Type_ASSIGN */\r
\r
private:\r
- ///\r
- void copy();\r
- ///\r
- void clear();\r
- \r
+ ///\r
+ void copy();\r
+ ///\r
+ void clear();\r
+\r
public:\r
- ///\r
- KeySeq(const tstringi &i_name);\r
- ///\r
- KeySeq(const KeySeq &i_ks);\r
- ///\r
- ~KeySeq();\r
- \r
- ///\r
- const Actions &getActions() const { return m_actions; }\r
- \r
- ///\r
- KeySeq &operator=(const KeySeq &i_ks);\r
- \r
- /// add\r
- KeySeq &add(const Action &i_action);\r
-\r
- /// get the first modified key of this key sequence\r
- ModifiedKey getFirstModifiedKey() const;\r
- \r
- ///\r
- const tstringi &getName() const { return m_name; }\r
- \r
- /// stream output\r
- friend tostream &operator<<(tostream &i_ost, const KeySeq &i_ks);\r
-\r
- ///\r
- bool isCorrectMode(Modifier::Type i_mode) { return m_mode <= i_mode; }\r
-\r
- ///\r
- void setMode(Modifier::Type i_mode)\r
- {\r
- if (m_mode < i_mode)\r
- m_mode = i_mode;\r
- ASSERT( m_mode == Modifier::Type_KEYSEQ ||\r
- m_mode == Modifier::Type_ASSIGN);\r
- }\r
-\r
- ///\r
- Modifier::Type getMode() const { return m_mode; }\r
+ ///\r
+ KeySeq(const tstringi &i_name);\r
+ ///\r
+ KeySeq(const KeySeq &i_ks);\r
+ ///\r
+ ~KeySeq();\r
+\r
+ ///\r
+ const Actions &getActions() const {\r
+ return m_actions;\r
+ }\r
+\r
+ ///\r
+ KeySeq &operator=(const KeySeq &i_ks);\r
+\r
+ /// add\r
+ KeySeq &add(const Action &i_action);\r
+\r
+ /// get the first modified key of this key sequence\r
+ ModifiedKey getFirstModifiedKey() const;\r
+\r
+ ///\r
+ const tstringi &getName() const {\r
+ return m_name;\r
+ }\r
+\r
+ /// stream output\r
+ friend tostream &operator<<(tostream &i_ost, const KeySeq &i_ks);\r
+\r
+ ///\r
+ bool isCorrectMode(Modifier::Type i_mode) {\r
+ return m_mode <= i_mode;\r
+ }\r
+\r
+ ///\r
+ void setMode(Modifier::Type i_mode) {\r
+ if (m_mode < i_mode)\r
+ m_mode = i_mode;\r
+ ASSERT( m_mode == Modifier::Type_KEYSEQ ||\r
+ m_mode == Modifier::Type_ASSIGN);\r
+ }\r
+\r
+ ///\r
+ Modifier::Type getMode() const {\r
+ return m_mode;\r
+ }\r
};\r
\r
\r
class Keymap\r
{\r
public:\r
- ///\r
- enum Type\r
- {\r
- Type_keymap, /// this is keymap\r
- Type_windowAnd, /// this is window &&\r
- Type_windowOr, /// this is window ||\r
- };\r
- ///\r
- enum AssignOperator\r
- {\r
- AO_new, /// =\r
- AO_add, /// +=\r
- AO_sub, /// -=\r
- AO_overwrite, /// !, !!\r
- };\r
- ///\r
- enum AssignMode\r
- {\r
- AM_notModifier, /// not modifier\r
- AM_normal, /// normal modifier\r
- AM_true, /** ! true modifier(doesn't\r
+ ///\r
+ enum Type {\r
+ Type_keymap, /// this is keymap\r
+ Type_windowAnd, /// this is window &&\r
+ Type_windowOr, /// this is window ||\r
+ };\r
+ ///\r
+ enum AssignOperator {\r
+ AO_new, /// =\r
+ AO_add, /// +=\r
+ AO_sub, /// -=\r
+ AO_overwrite, /// !, !!\r
+ };\r
+ ///\r
+ enum AssignMode {\r
+ AM_notModifier, /// not modifier\r
+ AM_normal, /// normal modifier\r
+ AM_true, /** ! true modifier(doesn't\r
generate scan code) */\r
- AM_oneShot, /// !! one shot modifier\r
- AM_oneShotRepeatable, /// !!! one shot modifier\r
- };\r
- \r
- /// key assignment\r
- class KeyAssignment\r
- {\r
- public:\r
- ModifiedKey m_modifiedKey; ///\r
- KeySeq *m_keySeq; ///\r
-\r
- public:\r
- ///\r
- KeyAssignment(const ModifiedKey &i_modifiedKey, KeySeq *i_keySeq)\r
- : m_modifiedKey(i_modifiedKey), m_keySeq(i_keySeq) { }\r
- ///\r
- KeyAssignment(const KeyAssignment &i_o)\r
- : m_modifiedKey(i_o.m_modifiedKey), m_keySeq(i_o.m_keySeq) { }\r
- ///\r
- bool operator<(const KeyAssignment &i_o) const\r
- { return m_modifiedKey < i_o.m_modifiedKey; }\r
- };\r
-\r
- /// modifier assignments\r
- class ModAssignment\r
- {\r
- public:\r
- AssignOperator m_assignOperator; ///\r
- AssignMode m_assignMode; ///\r
- Key *m_key; ///\r
- };\r
- typedef std::list<ModAssignment> ModAssignments; ///\r
-\r
- /// parameter for describe();\r
- class DescribeParam\r
- {\r
- private:\r
- typedef std::list<ModifiedKey> DescribedKeys;\r
- typedef std::list<const Keymap *> DescribedKeymap;\r
- friend class Keymap;\r
-\r
- private:\r
- DescribedKeys m_dk;\r
- DescribedKeymap m_dkeymap;\r
- bool m_doesDescribeModifiers;\r
-\r
- public:\r
- DescribeParam() : m_doesDescribeModifiers(true) { }\r
- };\r
- \r
+ AM_oneShot, /// !! one shot modifier\r
+ AM_oneShotRepeatable, /// !!! one shot modifier\r
+ };\r
+\r
+ /// key assignment\r
+ class KeyAssignment\r
+ {\r
+ public:\r
+ ModifiedKey m_modifiedKey; ///\r
+ KeySeq *m_keySeq; ///\r
+\r
+ public:\r
+ ///\r
+ KeyAssignment(const ModifiedKey &i_modifiedKey, KeySeq *i_keySeq)\r
+ : m_modifiedKey(i_modifiedKey), m_keySeq(i_keySeq) { }\r
+ ///\r
+ KeyAssignment(const KeyAssignment &i_o)\r
+ : m_modifiedKey(i_o.m_modifiedKey), m_keySeq(i_o.m_keySeq) { }\r
+ ///\r
+ bool operator<(const KeyAssignment &i_o) const {\r
+ return m_modifiedKey < i_o.m_modifiedKey;\r
+ }\r
+ };\r
+\r
+ /// modifier assignments\r
+ class ModAssignment\r
+ {\r
+ public:\r
+ AssignOperator m_assignOperator; ///\r
+ AssignMode m_assignMode; ///\r
+ Key *m_key; ///\r
+ };\r
+ typedef std::list<ModAssignment> ModAssignments; ///\r
+\r
+ /// parameter for describe();\r
+ class DescribeParam\r
+ {\r
+ private:\r
+ typedef std::list<ModifiedKey> DescribedKeys;\r
+ typedef std::list<const Keymap *> DescribedKeymap;\r
+ friend class Keymap;\r
+\r
+ private:\r
+ DescribedKeys m_dk;\r
+ DescribedKeymap m_dkeymap;\r
+ bool m_doesDescribeModifiers;\r
+\r
+ public:\r
+ DescribeParam() : m_doesDescribeModifiers(true) { }\r
+ };\r
+\r
private:\r
- /// key assignments (hashed by first scan code)\r
- typedef std::list<KeyAssignment> KeyAssignments;\r
- enum {\r
- HASHED_KEY_ASSIGNMENT_SIZE = 32, ///\r
- };\r
+ /// key assignments (hashed by first scan code)\r
+ typedef std::list<KeyAssignment> KeyAssignments;\r
+ enum {\r
+ HASHED_KEY_ASSIGNMENT_SIZE = 32, ///\r
+ };\r
\r
private:\r
- KeyAssignments m_hashedKeyAssignments[HASHED_KEY_ASSIGNMENT_SIZE]; ///\r
- \r
- /// modifier assignments\r
- ModAssignments m_modAssignments[Modifier::Type_ASSIGN];\r
-\r
- Type m_type; /// type\r
- tstringi m_name; /// keymap name\r
- tregex m_windowClass; /// window class name regexp\r
- tregex m_windowTitle; /// window title name regexp\r
-\r
- KeySeq *m_defaultKeySeq; /// default keySeq\r
- Keymap *m_parentKeymap; /// parent keymap\r
- \r
+ KeyAssignments m_hashedKeyAssignments[HASHED_KEY_ASSIGNMENT_SIZE]; ///\r
+\r
+ /// modifier assignments\r
+ ModAssignments m_modAssignments[Modifier::Type_ASSIGN];\r
+\r
+ Type m_type; /// type\r
+ tstringi m_name; /// keymap name\r
+ tregex m_windowClass; /// window class name regexp\r
+ tregex m_windowTitle; /// window title name regexp\r
+\r
+ KeySeq *m_defaultKeySeq; /// default keySeq\r
+ Keymap *m_parentKeymap; /// parent keymap\r
+\r
private:\r
- ///\r
- KeyAssignments &getKeyAssignments(const ModifiedKey &i_mk);\r
- ///\r
- const KeyAssignments &getKeyAssignments(const ModifiedKey &i_mk) const;\r
+ ///\r
+ KeyAssignments &getKeyAssignments(const ModifiedKey &i_mk);\r
+ ///\r
+ const KeyAssignments &getKeyAssignments(const ModifiedKey &i_mk) const;\r
\r
public:\r
- ///\r
- Keymap(Type i_type,\r
- const tstringi &i_name,\r
- const tstringi &i_windowClass,\r
- const tstringi &i_windowTitle,\r
- KeySeq *i_defaultKeySeq,\r
- Keymap *i_parentKeymap);\r
- \r
- /// add a key assignment;\r
- void addAssignment(const ModifiedKey &i_mk, KeySeq *i_keySeq);\r
-\r
- /// add modifier\r
- void addModifier(Modifier::Type i_mt, AssignOperator i_ao,\r
- AssignMode i_am, Key *i_key);\r
- \r
- /// search\r
- const KeyAssignment *searchAssignment(const ModifiedKey &i_mk) const;\r
-\r
- /// get\r
- const KeySeq *getDefaultKeySeq() const { return m_defaultKeySeq; }\r
- ///\r
- Keymap *getParentKeymap() const { return m_parentKeymap; }\r
- ///\r
- const tstringi &getName() const { return m_name; }\r
-\r
- /// does same window\r
- bool doesSameWindow(const tstringi i_className,\r
- const tstringi &i_titleName);\r
- \r
- /// adjust modifier\r
- void adjustModifier(Keyboard &i_keyboard);\r
-\r
- /// get modAssignments\r
- const ModAssignments &getModAssignments(Modifier::Type i_mt) const\r
- { return m_modAssignments[i_mt]; }\r
-\r
- /// describe\r
- void describe(tostream &i_ost, DescribeParam *i_dp) const;\r
- \r
- /// set default keySeq and parent keymap if default keySeq has not been set\r
- bool setIfNotYet(KeySeq *i_keySeq, Keymap *i_parentKeymap);\r
+ ///\r
+ Keymap(Type i_type,\r
+ const tstringi &i_name,\r
+ const tstringi &i_windowClass,\r
+ const tstringi &i_windowTitle,\r
+ KeySeq *i_defaultKeySeq,\r
+ Keymap *i_parentKeymap);\r
+\r
+ /// add a key assignment;\r
+ void addAssignment(const ModifiedKey &i_mk, KeySeq *i_keySeq);\r
+\r
+ /// add modifier\r
+ void addModifier(Modifier::Type i_mt, AssignOperator i_ao,\r
+ AssignMode i_am, Key *i_key);\r
+\r
+ /// search\r
+ const KeyAssignment *searchAssignment(const ModifiedKey &i_mk) const;\r
+\r
+ /// get\r
+ const KeySeq *getDefaultKeySeq() const {\r
+ return m_defaultKeySeq;\r
+ }\r
+ ///\r
+ Keymap *getParentKeymap() const {\r
+ return m_parentKeymap;\r
+ }\r
+ ///\r
+ const tstringi &getName() const {\r
+ return m_name;\r
+ }\r
+\r
+ /// does same window\r
+ bool doesSameWindow(const tstringi i_className,\r
+ const tstringi &i_titleName);\r
+\r
+ /// adjust modifier\r
+ void adjustModifier(Keyboard &i_keyboard);\r
+\r
+ /// get modAssignments\r
+ const ModAssignments &getModAssignments(Modifier::Type i_mt) const {\r
+ return m_modAssignments[i_mt];\r
+ }\r
+\r
+ /// describe\r
+ void describe(tostream &i_ost, DescribeParam *i_dp) const;\r
+\r
+ /// set default keySeq and parent keymap if default keySeq has not been set\r
+ bool setIfNotYet(KeySeq *i_keySeq, Keymap *i_parentKeymap);\r
};\r
\r
\r
class Keymaps\r
{\r
public:\r
- typedef std::list<Keymap *> KeymapPtrList; /// \r
- \r
+ typedef std::list<Keymap *> KeymapPtrList; ///\r
+\r
private:\r
- typedef std::list<Keymap> KeymapList; /// \r
+ typedef std::list<Keymap> KeymapList; ///\r
\r
private:\r
- KeymapList m_keymapList; /** pointer into keymaps may\r
+ KeymapList m_keymapList; /** pointer into keymaps may\r
exist */\r
- \r
+\r
public:\r
- ///\r
- Keymaps();\r
- \r
- /// search by name\r
- Keymap *searchByName(const tstringi &i_name);\r
-\r
- /// search window\r
- void searchWindow(KeymapPtrList *o_keymapPtrList,\r
- const tstringi &i_className,\r
- const tstringi &i_titleName);\r
- \r
- /// add keymap\r
- Keymap *add(const Keymap &i_keymap);\r
- \r
- /// adjust modifier\r
- void adjustModifier(Keyboard &i_keyboard);\r
+ ///\r
+ Keymaps();\r
+\r
+ /// search by name\r
+ Keymap *searchByName(const tstringi &i_name);\r
+\r
+ /// search window\r
+ void searchWindow(KeymapPtrList *o_keymapPtrList,\r
+ const tstringi &i_className,\r
+ const tstringi &i_titleName);\r
+\r
+ /// add keymap\r
+ Keymap *add(const Keymap &i_keymap);\r
+\r
+ /// adjust modifier\r
+ void adjustModifier(Keyboard &i_keyboard);\r
};\r
\r
\r
class KeySeqs\r
{\r
private:\r
- typedef std::list<KeySeq> KeySeqList; ///\r
+ typedef std::list<KeySeq> KeySeqList; ///\r
\r
private:\r
- KeySeqList m_keySeqList; ///\r
- \r
+ KeySeqList m_keySeqList; ///\r
+\r
public:\r
- /// add a named keyseq (name can be empty)\r
- KeySeq *add(const KeySeq &i_keySeq);\r
- \r
- /// search by name\r
- KeySeq *searchByName(const tstringi &i_name);\r
+ /// add a named keyseq (name can be empty)\r
+ KeySeq *add(const KeySeq &i_keySeq);\r
+\r
+ /// search by name\r
+ KeySeq *searchByName(const tstringi &i_name);\r
};\r
\r
\r