X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffuncrequest.h;h=a9afa49ce1a50233c53400536c48e5e2653377d5;hb=498f06d43a0f2000c3f704db1ea39fda3c819fe6;hp=e3f4ccf15d42d5ea6432c79d2ff2befc18e91b0c;hpb=ba29fec6bfb93b60d4c06ae923e9fdd944d4c914;p=lyx.git diff --git a/src/funcrequest.h b/src/funcrequest.h index e3f4ccf15d..a9afa49ce1 100644 --- a/src/funcrequest.h +++ b/src/funcrequest.h @@ -10,30 +10,63 @@ #define FUNCREQUEST_H #include "commandtags.h" +#include "frontends/mouse_state.h" #include "LString.h" -/** +class BufferView; + +/** * This class encapsulates a LyX action and its argument * in order to pass it around easily. */ -struct FuncRequest { - - FuncRequest() - : action(LFUN_UNKNOWN_ACTION) - {} +class FuncRequest { +public: + /// just for putting thes things in std::container + FuncRequest(); + /// actions without extra argument + explicit FuncRequest(kb_action act); + /// actions without extra argument + FuncRequest(kb_action act, int x, int y, mouse_button::state button); + /// actions with extra argument + FuncRequest(kb_action act, string const & arg); + /// actions without extra argument + FuncRequest(BufferView * bv, kb_action act); + /// actions with extra argument + FuncRequest(BufferView * bv, kb_action act, string const & arg); + /// for mouse events + FuncRequest(BufferView * bv, kb_action act, + int x, int y, mouse_button::state button); + /// for changing requests a bit + FuncRequest(FuncRequest const & cmd, string const & arg); + /// for changing requests a bit + FuncRequest(FuncRequest const & cmd, BufferView * bv); - FuncRequest(kb_action act) - : action(act) - {} + /// access to the view + BufferView * view() const; + /// access to the view + void setView(BufferView * bv); + /// access to button + mouse_button::state button() const; - FuncRequest(kb_action act, string const & arg) - : action(act), argument(arg) - {} + /// output a message + void message(string const & msg) const; + /// output an error message + void errorMessage(string const & msg) const; +private: + /// the BufferView we are talking to + BufferView * view_; +public: // should be private, too... /// the action kb_action action; /// the action's string argument string argument; + /// the x coordinate of a mouse press + int x; + /// the y coordinate of a mouse press + int y; + /// some extra information (like button number) + mouse_button::state button_; }; #endif // FUNCREQUEST_H