X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FFuncRequest.h;h=2f25d0ade3b899420c191e3994924b73199122b3;hb=cb351665f432671eb263eec76164aa546abd7151;hp=e5c7afadad54287751bdfb61981506d12eeef7ec;hpb=f630be890494c849981e4fb52ea4740506e92bed;p=lyx.git diff --git a/src/FuncRequest.h b/src/FuncRequest.h index e5c7afadad..2f25d0ade3 100644 --- a/src/FuncRequest.h +++ b/src/FuncRequest.h @@ -4,7 +4,7 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author André Pönitz + * \author André Pönitz * * Full author contact details are available in file CREDITS. */ @@ -12,22 +12,23 @@ #ifndef FUNCREQUEST_H #define FUNCREQUEST_H -#include "lfuns.h" -#include "frontends/mouse_state.h" +#include "FuncCode.h" #include "support/docstring.h" -#include +#include "frontends/mouse_state.h" namespace lyx { +class LyXErr; /** * This class encapsulates a LyX action and its argument * in order to pass it around easily. */ -class FuncRequest { +class FuncRequest +{ public: /// Where the request came from enum Origin { @@ -35,21 +36,23 @@ public: MENU, // A menu entry TOOLBAR, // A toolbar icon KEYBOARD, // a keyboard binding - COMMANDBUFFER + COMMANDBUFFER, + LYXSERVER, + TOC }; /// just for putting these things in std::container explicit FuncRequest(Origin o = INTERNAL); /// actions without extra argument - explicit FuncRequest(kb_action act, Origin o = INTERNAL); + explicit FuncRequest(FuncCode act, Origin o = INTERNAL); /// actions without extra argument - FuncRequest(kb_action act, int x, int y, mouse_button::state button, + FuncRequest(FuncCode act, int x, int y, mouse_button::state button, Origin o = INTERNAL); /// actions with extra argument - FuncRequest(kb_action act, docstring const & arg, + FuncRequest(FuncCode act, docstring const & arg, Origin o = INTERNAL); /// actions with extra argument. FIXME: remove this - FuncRequest(kb_action act, std::string const & arg, + FuncRequest(FuncCode act, std::string const & arg, Origin o = INTERNAL); /// for changing requests a bit FuncRequest(FuncRequest const & cmd, docstring const & arg, @@ -58,28 +61,46 @@ public: FuncRequest(FuncRequest const & cmd, std::string const & arg, Origin o = INTERNAL); - /// access to button - mouse_button::state button() const; - - /// argument parsing, extract argument i as std::string - std::string getArg(unsigned int i) const; - /// access the whole argument docstring const & argument() const { return argument_; } + /// + FuncCode action() const { return action_ ; } + /// + void setAction(FuncCode act) { action_ = act; } + /// + Origin origin() const { return origin_; } + /// + void setOrigin(Origin o) { 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_; } -public: // should be private - /// the action - kb_action action; + /// argument parsing, extract argument i as std::string + std::string getArg(unsigned int i) const; + /// argument parsing, extract argument i as std::string, + /// 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; private: + /// the action + FuncCode action_; /// the action's string argument docstring argument_; -public: // should be private /// who initiated the action - Origin origin; + Origin origin_; /// the x coordinate of a mouse press - int x; + int x_; /// the y coordinate of a mouse press - int y; + int y_; /// some extra information (like button number) mouse_button::state button_; }; @@ -89,6 +110,8 @@ bool operator==(FuncRequest const & lhs, FuncRequest const & rhs); std::ostream & operator<<(std::ostream &, FuncRequest const &); +LyXErr & operator<<(LyXErr &, FuncRequest const &); + } // namespace lyx