X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FFuncRequest.h;h=42829ae8de26302df1f0e4702296953679e0dae7;hb=8663a371f31dc7bb888071c15a0b2cd4c3669c60;hp=a5822f4b967b5708a4573343024f4216db64c922;hpb=4b64aaf4ce026aacce02cfda58dcb1cd954f4adb;p=lyx.git diff --git a/src/FuncRequest.h b/src/FuncRequest.h index a5822f4b96..42829ae8de 100644 --- a/src/FuncRequest.h +++ b/src/FuncRequest.h @@ -24,6 +24,10 @@ namespace lyx { class LyXErr; +namespace frontend { + class GuiView; +} + /** * This class encapsulates a LyX action and its argument * in order to pass it around easily. @@ -37,7 +41,7 @@ public: MENU, // A menu entry TOOLBAR, // A toolbar icon KEYBOARD, // a keyboard binding - COMMANDBUFFER, + COMMANDBUFFER, LYXSERVER, TOC }; @@ -58,7 +62,7 @@ public: /// for changing requests a bit FuncRequest(FuncRequest const & cmd, docstring const & arg, Origin o = INTERNAL); - + /// access the whole argument docstring const & argument() const { return argument_; } /// @@ -70,12 +74,16 @@ public: /// void setOrigin(Origin o) { origin_ = o; } /// + frontend::GuiView* view_origin() const { return view_origin_; } + /// + void setViewOrigin(frontend::GuiView* o) { view_origin_ = o; } + /// int x() const { return x_; } /// int y() const { return y_; } /// void set_y(int y) { y_ = y; } - /// + /// mouse_button::state button() const { return button_; } /// KeyModifier modifier() { return modifier_; } @@ -86,10 +94,15 @@ public: /// eating all characters up to the end of the command line std::string getLongArg(unsigned int i) const; - /// + /// static FuncRequest const unknown; - /// + /// static FuncRequest const noaction; + /// + bool allowAsync() const { return allow_async_; } + /// + void allowAsync(bool allow_async) { allow_async_ = allow_async; } + private: /// the action FuncCode action_; @@ -97,6 +110,9 @@ private: docstring argument_; /// who initiated the action Origin origin_; + /// to which view should be this command sent (see bug #11004) + /// NULL=current view + frontend::GuiView* view_origin_; /// the x coordinate of a mouse press int x_; /// the y coordinate of a mouse press @@ -105,6 +121,9 @@ private: mouse_button::state button_; /// KeyModifier modifier_; + /// Commands should be run synchronously when they + /// are launched via "command-sequence" or "repeat" or "buffer-forall" + bool allow_async_; };