]> git.lyx.org Git - lyx.git/blobdiff - src/kbmap.h
hopefully fix tex2lyx linking.
[lyx.git] / src / kbmap.h
index b8eabff92d5db56af79b0c4c992b48f942e3711e..edadfaa9c641881f5e57f3c4b95f853561b5ed2e 100644 (file)
 #include "funcrequest.h"
 
 #include "frontends/key_state.h"
+#include "frontends/LyXKeySym.h"
 
 #include <boost/shared_ptr.hpp>
 
 #include <vector>
+#include <deque>
+
+
+namespace lyx {
 
 class kb_sequence;
-class LyXKeySym;
 
 /// Defines key maps and actions for key sequences
 class kb_keymap {
@@ -42,22 +46,34 @@ public:
        /// print all available keysyms
        std::string const print() const;
 
-       ///
-       typedef boost::shared_ptr<LyXKeySym> LyXKeySymPtr;
        /**
         * Look up a key press in the keymap.
         * @param key the keysym
         * @param mod the modifiers
         * @param seq the current key sequence so far
-        * @return the action / LFUN_PREFIX / LFUN_UNKNOWN_ACTION
+        * @return the action / LFUN_COMMAND_PREFIX / LFUN_UNKNOWN_ACTION
         */
        FuncRequest const &
        lookup(LyXKeySymPtr key,
               key_modifier::state mod, kb_sequence * seq) const;
 
+       ///
+       typedef std::deque<kb_sequence> Bindings;
+
        /// Given an action, find all keybindings.
-       std::string const findbinding(FuncRequest const & func,
-                                std::string const & prefix = std::string()) const;
+       Bindings findbindings(FuncRequest const & func) const;
+
+       /// Given an action, print the keybindings.
+       std::string const printbindings(FuncRequest const & func) const;
+
+       /**
+        *  Given an action, find the first 1-key binding (if it exists).
+        *  The LyXKeySym pointer is 0 is no key is found.
+        *  [only used by the Qt/Mac frontend]
+        */
+       std::pair<LyXKeySym const *, key_modifier::state>
+       find1keybinding(FuncRequest const & func) const;
+
 
        /**
         * Returns a string of the given keysym, with modifiers.
@@ -95,6 +111,14 @@ private:
        ///  Returns a string of the given key
        std::string const printKey(kb_key const & key) const;
 
+       /**
+        * Given an action, find all keybindings
+        * @param func the action
+        * @param prefix a sequence to prepend the results
+        */
+       Bindings findbindings(FuncRequest const & func,
+                             kb_sequence const & prefix) const;
+
        /// is the table empty ?
        bool empty() const {
                return table.empty();
@@ -105,4 +129,10 @@ private:
        Table table;
 };
 
+/// Implementation is in lyx_main.C
+extern kb_keymap & theTopLevelKeymap();
+
+
+} // namespace lyx
+
 #endif // KBMAP_H