X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLyXAction.h;h=4411b16269cac11da73ca67dd286ac563787e4bc;hb=969ab85d985485f503790cb13f98a582d4e1cdb5;hp=a2672a07eb8b310673b6ebbfc4b19c643911a585;hpb=0472bb3509ba7c39928e6a20540fd02616598753;p=lyx.git diff --git a/src/LyXAction.h b/src/LyXAction.h index a2672a07eb..4411b16269 100644 --- a/src/LyXAction.h +++ b/src/LyXAction.h @@ -1,21 +1,29 @@ // -*- C++ -*- /** * \file LyXAction.h - * Copyright 1995-2002 the LyX Team - * Read the file COPYING + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author Lars Gullik Bjønnes + * \author John Levon + * + * Full author contact details are available in file CREDITS. */ #ifndef LYXACTION_H #define LYXACTION_H -#ifdef __GNUG__ -#pragma interface -#endif +#include "lfuns.h" + +#include #include +#include -#include "funcrequest.h" -#include + +namespace lyx { + +class FuncRequest; /** * This class is a container for LyX actions. It also @@ -29,31 +37,25 @@ private: /// information for an action struct func_info { /// the action name - string name; + std::string name; /// the func_attrib values set unsigned int attrib; - /// the help text for this action - string helpText; }; public: /// 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; - /// type for a map between a pseudo-action and its stored action/arg - typedef std::map pseudo_map; - /// map from argument to pseudo-action - typedef std::map arg_item; - /// map from an action to all its dependent pseudo-actions - typedef std::map arg_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) NoBuffer = 2, //< Can be used when there is no document open - Argument = 4 //< Requires argument + Argument = 4, //< Requires argument + NoUpdate = 8, //< Does not (usually) require update + SingleParUpdate = 16 //< Usually only requires this par updated }; LyXAction(); @@ -63,25 +65,10 @@ public: * If you include arguments in func_name, a new pseudoaction * will be created if needed. */ - int LookupFunc(string const & func_name); - - /// Returns a pseudo-action given an action and its argument. - int getPseudoAction(kb_action action, string const & arg); - - /** - * Given a pseudo-action, return the real action and - * associated argument - */ - std::pair retrieveActionArg(int pseudo) const; - - /// Search for an existent pseudoaction, return -1 if it doesn't exist. - int searchActionArg(kb_action action, string const & arg) const; + FuncRequest lookupFunc(std::string const & func_name) const; /// Return the name (and argument) associated with the given (pseudo) action - string const getActionName(int action) const; - - /// Return one line help text associated with (pseudo)action - string const helpText(int action) const; + std::string const getActionName(kb_action action) const; /// True if the command has `flag' set bool funcHasFlag(kb_action action, func_attrib flag) const; @@ -99,8 +86,7 @@ private: /// populate the action container with our actions void init(); /// add the given action - void newFunc(kb_action, string const & name, - string const & helpText, unsigned int attrib); + void newFunc(kb_action, std::string const & name, unsigned int attrib); /** * This is a list of all the LyXFunc names with the @@ -111,25 +97,16 @@ private: /** * This is a mapping from action number to an object holding - * info about this action. f.ex. helptext, command name (string), + * info about this action. f.ex. 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. - */ - pseudo_map lyx_pseudo_map; - - /** - * A (multi) mapping from the lyx action to all the generated - * pseudofuncs and the arguments the action should use. - */ - arg_map lyx_arg_map; }; /// singleton instance extern LyXAction lyxaction; - + + +} // namespace lyx + #endif // LYXACTION_H