X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffuncrequest.h;h=118e4f45bfdeeccdbf12463affa64794dcbc40b8;hb=e7f4618bcce770369cf46335c2c7f0164b4b8857;hp=978eab20a98d75f4adecb1908ae01440215832d9;hpb=cb15371de3d24873417e16e9b68f815bfc3dff11;p=lyx.git diff --git a/src/funcrequest.h b/src/funcrequest.h index 978eab20a9..118e4f45bf 100644 --- a/src/funcrequest.h +++ b/src/funcrequest.h @@ -15,10 +15,14 @@ #include "lfuns.h" #include "frontends/mouse_state.h" -#include +#include "support/docstring.h" + #include +namespace lyx { + + /** * This class encapsulates a LyX action and its argument * in order to pass it around easily. @@ -27,10 +31,11 @@ class FuncRequest { public: /// Where the request came from enum Origin { - INTERNAL, - UI, // The menu or the toolbar + INTERNAL, + MENU, // A menu entry + TOOLBAR, // A toolbar icon KEYBOARD, // a keyboard binding - COMMANDBUFFER + COMMANDBUFFER }; /// just for putting these things in std::container @@ -38,13 +43,19 @@ public: /// actions without extra argument explicit FuncRequest(kb_action act, Origin o = INTERNAL); /// actions without extra argument - FuncRequest(kb_action act, int x, int y, mouse_button::state button, - Origin o = INTERNAL); + FuncRequest(kb_action act, int x, int y, mouse_button::state button, + Origin o = INTERNAL); /// actions with extra argument - FuncRequest(kb_action act, std::string const & arg, + FuncRequest(kb_action act, docstring const & arg, + Origin o = INTERNAL); + /// actions with extra argument. FIXME: remove this + FuncRequest(kb_action act, std::string const & arg, Origin o = INTERNAL); /// for changing requests a bit - FuncRequest(FuncRequest const & cmd, std::string const & arg, + FuncRequest(FuncRequest const & cmd, docstring const & arg, + Origin o = INTERNAL); + /// for changing requests a bit. FIXME: remove this + FuncRequest(FuncRequest const & cmd, std::string const & arg, Origin o = INTERNAL); /// access to button @@ -53,11 +64,16 @@ public: /// argument parsing, extract argument i as std::string std::string getArg(unsigned int i) const; + /// access the whole argument + docstring const & argument() const { return argument_; } + public: // should be private /// the action kb_action action; - /// the action's std::string argument - std::string argument; +private: + /// the action's string argument + docstring argument_; +public: // should be private /// who initiated the action Origin origin; /// the x coordinate of a mouse press @@ -73,4 +89,7 @@ bool operator==(FuncRequest const & lhs, FuncRequest const & rhs); std::ostream & operator<<(std::ostream &, FuncRequest const &); + +} // namespace lyx + #endif // FUNCREQUEST_H