X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FLyXAction.h;h=5203bc4fcd62338098f481f240fb8e7283953e34;hb=823e44822e6638824900eee2f7e2e7165af97f8d;hp=4f7bc3cf3eccba57afa163b61b35c264ba909e7d;hpb=cc91c7e6ee8d6ac98959de86780169f446c23075;p=lyx.git diff --git a/src/LyXAction.h b/src/LyXAction.h index 4f7bc3cf3e..5203bc4fcd 100644 --- a/src/LyXAction.h +++ b/src/LyXAction.h @@ -4,7 +4,7 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjønnes * \author John Levon * * Full author contact details are available in file CREDITS. @@ -13,9 +13,7 @@ #ifndef LYXACTION_H #define LYXACTION_H -#include "lfuns.h" - -#include +#include "FuncCode.h" #include #include @@ -24,15 +22,13 @@ namespace lyx { class FuncRequest; +class LyXErr; /** - * 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 - * dynamically, for encapsulating a real action and an - * argument. They are used for things like the menus. + * This class is a container for LyX actions. It associates a name to + * most of them and describes some of their properties. */ -class LyXAction : boost::noncopyable { +class LyXAction { public: /// category of an action, used in the Shortcuts dialog enum func_type { @@ -46,7 +42,7 @@ public: private: /// information for an action - struct func_info { + struct FuncInfo { /// the action name std::string name; /// the func_attrib values set @@ -56,19 +52,24 @@ private: }; 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 { - Noop = 0, //< nothing special about this func - ReadOnly = 1, //< can be used in RO mode (perhaps this should change) + Noop = 0, //< Nothing special about this func + ReadOnly = 1, //< Can be used in RO mode (perhaps this should change); no automatic markDirty 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 + SingleParUpdate = 16, //< Usually only requires this par updated + AtPoint = 32, //< dispatch first to inset at cursor if there is one }; LyXAction(); @@ -81,12 +82,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(kb_action action) const; + func_type 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; @@ -101,7 +102,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, func_type type); + void newFunc(FuncCode, std::string const & name, unsigned int attrib, func_type type); /** * This is a list of all the LyXFunc names with the @@ -118,6 +119,8 @@ private: info_map lyx_info_map; }; +LyXErr & operator<<(LyXErr &, FuncCode); + /// singleton instance extern LyXAction lyxaction;