X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffuncrequest.h;h=355499992da6bfc9961508dff37b45eaab9b1342;hb=87cd77d1fc819bc8f14982fc6b20091720c011f5;hp=8224d29460e857cdc41e92648cec43c2f0ad9fb2;hpb=70d0ba900118ac7e253c1e1969fd7a3d64ec8e03;p=lyx.git diff --git a/src/funcrequest.h b/src/funcrequest.h index 8224d29460..355499992d 100644 --- a/src/funcrequest.h +++ b/src/funcrequest.h @@ -18,31 +18,38 @@ #include #include + /** * This class encapsulates a LyX action and its argument * in order to pass it around easily. */ class FuncRequest { public: - /// just for putting thes things in std::container - FuncRequest(); + /// Where the request came from + enum Origin { + INTERNAL, + UI, // The menu or the toolbar + KEYBOARD, // a keyboard binding + COMMANDBUFFER + }; + + /// just for putting these things in std::container + explicit FuncRequest(Origin o = INTERNAL); /// actions without extra argument - explicit FuncRequest(kb_action act); + explicit FuncRequest(kb_action act, Origin o = INTERNAL); /// actions without extra argument - FuncRequest(kb_action act, int x, int y, mouse_button::state button); + 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, std::string const & arg, + Origin o = INTERNAL); /// for changing requests a bit - FuncRequest(FuncRequest const & cmd, std::string const & arg); + FuncRequest(FuncRequest const & cmd, std::string const & arg, + Origin o = INTERNAL); /// access to button mouse_button::state button() const; - /// output a message - void message(std::string const & msg) const; - /// output an error message - void errorMessage(std::string const & msg) const; - /// argument parsing, extract argument i as std::string std::string getArg(unsigned int i) const; @@ -51,6 +58,8 @@ public: // should be private kb_action action; /// the action's std::string argument std::string argument; + /// who initiated the action + Origin origin; /// the x coordinate of a mouse press int x; /// the y coordinate of a mouse press