X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLyXAction.h;h=d3f8c51d47313c62add43adacab90c2e735191fb;hb=42aaa245db9e91713427053d14bda6f700e214ee;hp=4d66c0f76b593ea6c0cba96dafe6022a75b7a539;hpb=ebcb289b7ce736f63f743a5cd56e8d2e7cbd3254;p=lyx.git diff --git a/src/LyXAction.h b/src/LyXAction.h index 4d66c0f76b..d3f8c51d47 100644 --- a/src/LyXAction.h +++ b/src/LyXAction.h @@ -13,37 +13,55 @@ #ifndef LYXACTION_H #define LYXACTION_H -#include "lfuns.h" - -#include +#include "FuncCode.h" #include #include + +namespace lyx { + class FuncRequest; /** * This class is a container for LyX actions. It also * stores and managers "pseudo-actions". Pseudo-actions - * are not part of the kb_action enum, but are created + * are not part of the FuncCode enum, but are created * dynamically, for encapsulating a real action and an * argument. They are used for things like the menus. */ -class LyXAction : boost::noncopyable { +class LyXAction { +public: + /// category of an action, used in the Shortcuts dialog + enum func_type { + Hidden, //< Not listed for configuration + Edit, //< Cursor and mouse movement, copy/paste etc + Math, //< Mathematics + Buffer, //< Buffer and window related + Layout, //< Font, Layout and textclass related + System, //< Lyx preference, server etc + }; + private: /// information for an action - struct func_info { + struct FuncInfo { /// the action name std::string name; /// the func_attrib values set unsigned int attrib; + /// the category of this func + func_type type; }; public: + /// noncopyable + LyXAction(LyXAction const &); + void operator=(LyXAction const &); + /// type for map between a function name and its action - typedef std::map func_map; + typedef std::map func_map; /// type for map between an action and its info - typedef std::map info_map; + typedef std::map info_map; /// possible "permissions" for an action enum func_attrib { @@ -65,10 +83,12 @@ public: FuncRequest lookupFunc(std::string const & func_name) const; /// Return the name (and argument) associated with the given (pseudo) action - std::string const getActionName(kb_action action) const; + std::string const getActionName(FuncCode action) const; + + func_type const getActionType(FuncCode action) const; /// True if the command has `flag' set - bool funcHasFlag(kb_action action, func_attrib flag) const; + bool funcHasFlag(FuncCode action, func_attrib flag) const; /// iterator across all real actions typedef func_map::const_iterator const_func_iterator; @@ -83,7 +103,7 @@ private: /// populate the action container with our actions void init(); /// add the given action - void newFunc(kb_action, std::string const & name, unsigned int attrib); + void newFunc(FuncCode, std::string const & name, unsigned int attrib, func_type type); /** * This is a list of all the LyXFunc names with the @@ -103,4 +123,7 @@ private: /// singleton instance extern LyXAction lyxaction; + +} // namespace lyx + #endif // LYXACTION_H