]> git.lyx.org Git - lyx.git/blobdiff - src/KeyMap.h
Comment.
[lyx.git] / src / KeyMap.h
index f52fabb425d9bbeeb831cea8bf172745bb3b3856..acb0c22110ccdd0093a52aadd9e4a0802dfee1a0 100644 (file)
 #define KEYMAP_H
 
 #include "FuncRequest.h"
-
-#include "frontends/KeyModifier.h"
-#include "frontends/KeySymbol.h"
+#include "KeySequence.h"
 
 #include "support/strfwd.h"
 
 #include <boost/shared_ptr.hpp>
-#include <boost/tuple/tuple.hpp>
 
 #include <vector>
-#include <deque>
 
 
 namespace lyx {
 
-class KeySequence;
-
 /// Defines key maps and actions for key sequences
 class KeyMap {
 public:
@@ -96,15 +90,21 @@ public:
        lookup(KeySymbol const & key, KeyModifier mod, KeySequence * seq) const;
 
        ///
-       typedef std::deque<KeySequence> Bindings;
+       typedef std::vector<KeySequence> Bindings;
 
        /// Given an action, find all keybindings.
-       Bindings findbindings(FuncRequest const & func) const;
+       Bindings findBindings(FuncRequest const & func) const;
 
        /// Given an action, print the keybindings.
-       docstring const printbindings(FuncRequest const & func) const;
-
-       typedef boost::tuple<FuncRequest, KeySequence, int> Binding; 
+       docstring printBindings(FuncRequest const & func) const;
+
+       struct Binding {
+               Binding(FuncRequest const & r, KeySequence const & s, int t)
+                       : request(r), sequence(s), tag(t) {}
+               FuncRequest request;
+               KeySequence sequence;
+               int tag;
+       }; 
        typedef std::vector<Binding> BindingList;
        /**
         * Return all lfun and their associated bindings.
@@ -138,13 +138,10 @@ private:
        struct Key {
                /// Keysym
                KeySymbol code;
-
                /// Modifier masks
                ModifierPair mod;
-
                /// Keymap for prefix keys
                boost::shared_ptr<KeyMap> table;
-
                /// Action for !prefix keys
                FuncRequest func;
        };
@@ -154,7 +151,7 @@ private:
         * @param func the action
         * @param prefix a sequence to prepend the results
         */
-       Bindings findbindings(FuncRequest const & func,
+       Bindings findBindings(FuncRequest const & func,
                              KeySequence const & prefix) const;
        
        void listBindings(BindingList & list, KeySequence const & prefix,