X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FKeyMap.h;h=849ba0cdad6ee5f089a0ff1b478cb76128a0fe1d;hb=dab71087cf2954b77d3d2c0e67b868f9be82fba9;hp=1a37a1fc99772fae1ded88eaaf5c86dee5950e86;hpb=375d1526bb07bfcd21dd5bb11f39a60a00119d57;p=lyx.git diff --git a/src/KeyMap.h b/src/KeyMap.h index 1a37a1fc99..849ba0cdad 100644 --- a/src/KeyMap.h +++ b/src/KeyMap.h @@ -19,15 +19,14 @@ #include "support/strfwd.h" -#include - +#include #include namespace lyx { namespace support { - class FileName; + class FileName; } /// Defines key maps and actions for key sequences @@ -43,7 +42,7 @@ public: }; enum BindReadType { MissingOK, //< It's OK if this file is missing. - Fallback, //< If missing, fallback to default "cua". This should only + Fallback, //< If missing, fallback to default "cua". This should only //< be used when attempting to read the user-secified bind file. Default //< Report error and return. }; @@ -66,7 +65,7 @@ public: unsigned int r = 0); - /// returns the function bound to this key sequence, or + /// returns the function bound to this key sequence, or /// FuncRequest::unknown if no binding exists for it. /// @param r an internal recursion counter // FIXME Surely there's a better way to do that? @@ -75,7 +74,7 @@ public: /// clear all bindings void clear(); - /** Parse a bind file. If a valid unbind_map is given, put \unbind + /** Parse a bind file. If a valid unbind_map is given, put \unbind * bindings to a separate KeyMap. This is used in the Shortcut preference * dialog where main and user bind files are loaded separately so \unbind * in user.bind can not nullify \bind in the master bind file. @@ -84,7 +83,7 @@ public: * @param unbind_map pointer to a KeyMap that holds \unbind bindings * @param rt how to respond if the file can't be found */ - bool read(std::string const & bind_file, KeyMap * unbind_map = 0, + bool read(std::string const & bind_file, KeyMap * unbind_map = 0, BindReadType rt = Default); /** write to a bind file. @@ -119,7 +118,8 @@ public: /// Given an action, print the keybindings. docstring printBindings(FuncRequest const & func, - KeySequence::outputFormat format) const; + KeySequence::outputFormat format, + bool const untranslated = false) const; struct Binding { Binding(FuncRequest const & r, KeySequence const & s, ItemType t) @@ -127,7 +127,7 @@ public: FuncRequest request; KeySequence sequence; KeyMap::ItemType tag; - }; + }; typedef std::vector BindingList; /** * Return all lfun and their associated bindings. @@ -163,13 +163,21 @@ private: /// Modifier masks ModifierPair mod; /// Keymap for prefix keys - boost::shared_ptr prefixes; + std::shared_ptr prefixes; /// Action for !prefix keys FuncRequest func; }; + enum ReturnValues { + ReadOK, + ReadError, + FileError, + FormatMismatch + }; /// bool read(support::FileName const & bind_file, KeyMap * unbind_map = 0); + /// + ReturnValues readWithoutConv(support::FileName const & bind_file, KeyMap * unbind_map = 0); /** * Given an action, find all keybindings @@ -178,7 +186,7 @@ private: */ Bindings findBindings(FuncRequest const & func, KeySequence const & prefix) const; - + void listBindings(BindingList & list, KeySequence const & prefix, ItemType tag) const;