X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FLyXAction.h;h=f61772c56c9239ebfc98f5712d4bfe1f05b8d7b6;hb=cc2835392294fb1e82a89b2ec3803f78c9183f18;hp=f818b8f2064b4ccde1d8f71b69b26073bab336d4;hpb=83b3e02f69971498cd8ad2e354f1bafbffaaae62;p=lyx.git diff --git a/src/LyXAction.h b/src/LyXAction.h index f818b8f206..f61772c56c 100644 --- a/src/LyXAction.h +++ b/src/LyXAction.h @@ -21,6 +21,9 @@ namespace lyx { +// current LFUN format +static unsigned int const LFUN_FORMAT = 4; // gm: tabular-feature + class FuncRequest; class LyXErr; @@ -37,7 +40,7 @@ public: Math, //< Mathematics Buffer, //< Buffer and window related Layout, //< Font, Layout and textclass related - System, //< Lyx preference, server etc + System //< Lyx preference, server etc }; private: @@ -45,7 +48,7 @@ private: struct FuncInfo { /// the action name std::string name; - /// the func_attrib values set + /// the FuncAttribs values set unsigned int attrib; /// the category of this func FuncType type; @@ -55,22 +58,17 @@ private: /// type for map between an action and its info typedef std::map InfoMap; - public: - /// noncopyable - LyXAction(LyXAction const &); - void operator=(LyXAction const &); - /// possible "permissions" for an action enum FuncAttribs { Noop = 0, //< Nothing special about this func - ReadOnly = 1, //< Can be used in RO mode (perhaps this should change); no automatic markDirty + ReadOnly = 1, //< Can be used in RO mode (perhaps this should change) NoBuffer = 2, //< Can be used when there is no document open Argument = 4, //< Requires argument NoUpdate = 8, //< Does not (usually) require update SingleParUpdate = 16, //< Usually only requires this par updated AtPoint = 32, //< dispatch first to inset at cursor if there is one - NoInternal = 64, //< Cannot be used for internal, non-document Buffers + NoInternal = 64 //< Cannot be used for internal, non-document Buffers }; LyXAction(); @@ -79,7 +77,7 @@ public: * Creates a FuncRequest from a string of the form: * lyx-function [argument] * where the argument is optional and "lyx-function" is in the form you'd - * enter it in the mini-buffer. + * enter it in the mini-buffer. */ FuncRequest lookupFunc(std::string const & func_name) const; @@ -92,32 +90,39 @@ public: /// True if the command has `flag' set bool funcHasFlag(FuncCode action, FuncAttribs flag) const; - /// iterator across all real actions + /// iterator across all LFUNs typedef FuncMap::const_iterator const_iterator; - /// return an iterator to the start of all real actions + /// return an iterator to the start of the list of LFUNs const_iterator func_begin() const; - /// return an iterator to the end of all real actions + /// return an iterator to one past the end of the list of LFUNs const_iterator func_end() const; private: + /// noncopyable + LyXAction(LyXAction const &); + void operator=(LyXAction const &); + /// populate the action container with our actions void init(); /// add the given action void newFunc(FuncCode, std::string const & name, unsigned int attrib, FuncType type); /** - * This is a list of all the LyXFunc names with the - * coresponding action number. It is usually only used by the - * minibuffer or when assigning commands to keys during init. + * This maps LyX function names to function codes, e.g.: + * lyx_func_map["ert-insert"] == LFUN_ERT_INSERT */ FuncMap lyx_func_map; /** - * This is a mapping from action number to an object holding - * info about this action. f.ex. command name (string), - * command attributes (ro) + * This maps function codes to objects holding info about the corresponding + * action. E.g., if + * FuncInfo const & ert = lyx_info_map[LFUN_ERT_INSERT]; + * then: + * ert.name == "ert-insert"' + * ert.attrib == Noop + * ert.type == Edit */ InfoMap lyx_info_map; };