X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffuncrequest.h;h=037cbb32ed81ff5f2e62815b8054181801a5c391;hb=c0eb43a927a49e054afbdf37e50387065c3d99a4;hp=7f701ac202ab57c3e9c868250b96e572ccf01119;hpb=a9e93befaa4c5ff47c5d31786bf790914b13b31d;p=lyx.git diff --git a/src/funcrequest.h b/src/funcrequest.h index 7f701ac202..037cbb32ed 100644 --- a/src/funcrequest.h +++ b/src/funcrequest.h @@ -10,31 +10,53 @@ #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) - {} - - FuncRequest(kb_action act) - : action(act) - {} +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, string const & arg) - : action(act), argument(arg) - {} + /// access to the view + BufferView * view() const; + /// access to the view + void setView(BufferView * bv); + /// access to button + mouse_button::state button() const; - /// for mouse events - FuncRequest(kb_action act, int ax, int ay, int aextra) - : action(act), argument(), x(ax), y(ay), extra(aextra) - {} + /// 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 @@ -44,7 +66,7 @@ struct FuncRequest { /// the y coordinate of a mouse press int y; /// some extra information (like button number) - int extra; + mouse_button::state button_; }; #endif // FUNCREQUEST_H