X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fkbmap.h;h=029a4e1b4eafcf406187ddd9b9eb132a77629a3d;hb=ca6838b288daf07eec7d7a381d74c639c0de3a46;hp=a5ea729b49340d7be4897d402a341344b9cc20cf;hpb=025f30b36150bdbe404687a5d9656d3b7fab8445;p=lyx.git diff --git a/src/kbmap.h b/src/kbmap.h index a5ea729b49..029a4e1b4e 100644 --- a/src/kbmap.h +++ b/src/kbmap.h @@ -17,14 +17,19 @@ #include "funcrequest.h" #include "frontends/key_state.h" +#include "frontends/LyXKeySym.h" + +#include "support/docstream.h" #include #include #include + +namespace lyx { + class kb_sequence; -class LyXKeySym; /// Defines key maps and actions for key sequences class kb_keymap { @@ -41,16 +46,14 @@ public: bool read(std::string const & bind_file); /// print all available keysyms - std::string const print() const; + docstring const print() const; - /// - typedef boost::shared_ptr 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, @@ -63,7 +66,16 @@ public: Bindings findbindings(FuncRequest const & func) const; /// Given an action, print the keybindings. - std::string const printbindings(FuncRequest const & func) const; + docstring 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 + find1keybinding(FuncRequest const & func) const; + /** * Returns a string of the given keysym, with modifiers. @@ -99,7 +111,7 @@ private: unsigned int r = 0); /// Returns a string of the given key - std::string const printKey(kb_key const & key) const; + docstring const printKey(kb_key const & key) const; /** * Given an action, find all keybindings @@ -119,4 +131,10 @@ private: Table table; }; +/// Implementation is in lyx_main.C +extern kb_keymap & theTopLevelKeymap(); + + +} // namespace lyx + #endif // KBMAP_H