X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLyXAction.h;h=734969d5aab828f224f45f2ce42c42c914e812fb;hb=98c966c64594611e469313314abd1e59524adb4a;hp=a1e4f834e0618778c138f6d6e4b6a5aeb0e93e97;hpb=85798535a19919e82cc94a177a8414c542a9c5bf;p=lyx.git diff --git a/src/LyXAction.h b/src/LyXAction.h index a1e4f834e0..734969d5aa 100644 --- a/src/LyXAction.h +++ b/src/LyXAction.h @@ -10,41 +10,40 @@ #include "commandtags.h" #include "LString.h" - -using std::map; +#include /** This class encapsulates LyX action and user command operations. */ -class LyXAction { +class LyXAction : boost::noncopyable { private: /// struct func_info { + /// string name; + /// unsigned int attrib; + /// string helpText; }; /// struct pseudo_func { + /// kb_action action; + /// string arg; }; public: /// - typedef map func_map; - //typedef map > func_map; + typedef std::map func_map; /// - typedef map info_map; - //typedef map > info_map; + typedef std::map info_map; /// - typedef map pseudo_map; - //typedef map > pseudo_map; + typedef std::map pseudo_map; /// - typedef map arg_item; - //typedef map > arg_item; + typedef std::map arg_item; /// - typedef map arg_map; - //typedef map > arg_map; + typedef std::map arg_map; /// enum func_attrib { @@ -52,85 +51,76 @@ public: Noop = 0, /// can be used in RO mode (perhaps this should change) ReadOnly = 1, // , - /// Can be used when there is no document open - NoBuffer = 2, + /// Can be used when there is no document open + NoBuffer = 2, //Interactive = 2, // Is interactive (requires a GUI) - Argument=4 // Requires argument + /// + Argument = 4 // Requires argument //MathOnly = 8, // Only math mode //EtcEtc = ... // Or other attributes... }; - + /// LyXAction(); - - /** Returns an action tag from a string. Returns kb_action. - Include arguments in func_name ONLY if you - want to create new pseudo actions. */ - int LookupFunc(string const & func_name) const; - /** Returns an action tag which name is the most similar to a string. + /** Returns an pseudoaction from a string + If you include arguments in func_name, a new psedoaction will be + created if needed. */ + int LookupFunc(string const & func_name) const; + + /** Returns an action tag which name is the most similar to a string. Don't include arguments, they would be ignored. */ - int getApproxFunc(string const & func) const; + int getApproxFunc(string const & func) const; - /** Returns an action name the most similar to a string. + /** Returns an action name the most similar to a string. Don't include arguments, they would be ignored. */ - string getApproxFuncName(string const & func) const; + string const getApproxFuncName(string const & func) const; /// Returns a pseudo-action given an action and its argument. int getPseudoAction(kb_action action, string const & arg) const; /// Retrieves the real action and its argument. kb_action retrieveActionArg(int i, string & arg) const; - + /// Search for an existent pseudoaction, return -1 if it doesn't exist. int searchActionArg(kb_action action, string const & arg) const; - /// Check if a value is a pseudo-action. - bool isPseudoAction(int) const; - /// Return the name associated with command - string getActionName(int action) const; + string const getActionName(int action) const; /// Return one line help text associated with (pseudo)action - string helpText(int action) const; + string const helpText(int action) const; /// True if the command has `flag' set bool funcHasFlag(kb_action action, func_attrib flag) const; + typedef func_map::const_iterator const_func_iterator; + const_func_iterator func_begin() const; + const_func_iterator func_end() const; private: /// void init(); /// void newFunc(kb_action, string const & name, string const & helpText, unsigned int attrib); - + /** 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. */ func_map lyx_func_map; - + /** This is a mapping from action number to an object holding info about this action. f.ex. helptext, command name (string), command attributes (ro) */ info_map lyx_info_map; - + /** A mapping from the automatically created pseudo action number to the real action and its argument. */ mutable pseudo_map lyx_pseudo_map; - + /** A (multi) mapping from the lyx action to all the generated pseudofuncs and the arguments the action should use. */ mutable arg_map lyx_arg_map; }; - - -/* -------------------- Inlines ------------------ */ - - -inline -bool LyXAction::isPseudoAction(int a) const -{ - return a > int(LFUN_LASTACTION); -} - + #endif