X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffuncrequest.h;h=355499992da6bfc9961508dff37b45eaab9b1342;hb=87cd77d1fc819bc8f14982fc6b20091720c011f5;hp=2091ab0b466551c68dda4d07d74c9a9a8c8e93a6;hpb=44cd0fc9a1687cc63911c7f98d978594458e7813;p=lyx.git diff --git a/src/funcrequest.h b/src/funcrequest.h index 2091ab0b46..355499992d 100644 --- a/src/funcrequest.h +++ b/src/funcrequest.h @@ -16,8 +16,8 @@ #include "frontends/mouse_state.h" #include +#include -class BufferView; /** * This class encapsulates a LyX action and its argument @@ -25,49 +25,41 @@ class BufferView; */ class FuncRequest { public: - /// just for putting thes things in std::container - FuncRequest(); - /// actions without extra argument - explicit FuncRequest(kb_action act); + /// 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 - FuncRequest(kb_action act, int x, int y, mouse_button::state button); - /// actions with extra argument - FuncRequest(kb_action act, std::string const & arg); + explicit FuncRequest(kb_action act, Origin o = INTERNAL); /// actions without extra argument - FuncRequest(BufferView * bv, kb_action act); + FuncRequest(kb_action act, int x, int y, mouse_button::state button, + Origin o = INTERNAL); /// actions with extra argument - FuncRequest(BufferView * bv, kb_action act, std::string const & arg); - /// for mouse events - FuncRequest(BufferView * bv, kb_action act, - int x, int y, mouse_button::state button); + FuncRequest(kb_action act, std::string const & arg, + Origin o = INTERNAL); /// for changing requests a bit - FuncRequest(FuncRequest const & cmd, std::string const & arg); - /// for changing requests a bit - FuncRequest(FuncRequest const & cmd, BufferView * bv); + FuncRequest(FuncRequest const & cmd, std::string const & arg, + Origin o = INTERNAL); - /// access to the view - BufferView * view() const; - /// access to the view - void setView(BufferView * bv); /// 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; -private: - /// the BufferView we are talking to - BufferView * view_; -public: // should be private, too... +public: // should be private /// the action 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 @@ -77,10 +69,8 @@ public: // should be private, too... }; -inline -bool operator==(FuncRequest const & lhs, FuncRequest const & rhs) -{ - return lhs.action == rhs.action && lhs.argument == rhs.argument; -} +bool operator==(FuncRequest const & lhs, FuncRequest const & rhs); + +std::ostream & operator<<(std::ostream &, FuncRequest const &); #endif // FUNCREQUEST_H