#include "commandtags.h"
#include "LString.h"
-
-using std::map;
+#include <boost/utility.hpp>
/** 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<string, kb_action> func_map;
- //typedef map<string, kb_action, less<string> > func_map;
+ typedef std::map<string, kb_action> func_map;
///
- typedef map<kb_action, func_info> info_map;
- //typedef map<kb_action, func_info, less<kb_action> > info_map;
+ typedef std::map<kb_action, func_info> info_map;
///
- typedef map<unsigned int, pseudo_func> pseudo_map;
- //typedef map<unsigned int, pseudo_func, less<unsigned int> > pseudo_map;
+ typedef std::map<unsigned int, pseudo_func> pseudo_map;
///
- typedef map<string, unsigned int> arg_item;
- //typedef map<string, unsigned int, less<string> > arg_item;
+ typedef std::map<string, unsigned int> arg_item;
///
- typedef map<kb_action, arg_item> arg_map;
- //typedef map<kb_action, arg_item, less<kb_action> > arg_map;
+ typedef std::map<kb_action, arg_item> arg_map;
///
enum func_attrib {
/// 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...
};
/** 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;
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();