OSDN Git Service

use boost_1_56_0 and build by VS2013
[yamy/yamy.git] / keymap.h
index 74eb1ca..0452e66 100644 (file)
--- a/keymap.h
+++ b/keymap.h
 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
@@ -44,21 +43,21 @@ tostream &operator<<(tostream &i_ost, const Action &i_action);
 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
@@ -67,20 +66,20 @@ class KeySeq;
 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
@@ -88,24 +87,24 @@ public:
 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
@@ -113,60 +112,67 @@ public:
 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
@@ -174,147 +180,152 @@ public:
 class Keymap\r
 {\r
 public:\r
-  ///\r
-  enum Type\r
-  {\r
-    Type_keymap,                               /// this is keymap\r
-    Type_windowAnd,                            /// this is window &amp;&amp;\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 &amp;&amp;\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
@@ -326,32 +337,32 @@ extern tostream &operator<<(tostream &i_ost, const Keymap *i_keymap);
 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
@@ -359,17 +370,17 @@ public:
 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