X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffuncrequest.h;h=118e4f45bfdeeccdbf12463affa64794dcbc40b8;hb=e7f4618bcce770369cf46335c2c7f0164b4b8857;hp=a9afa49ce1a50233c53400536c48e5e2653377d5;hpb=13349032cb4dc8ef44146aa652ff6bbff6698249;p=lyx.git diff --git a/src/funcrequest.h b/src/funcrequest.h index a9afa49ce1..118e4f45bf 100644 --- a/src/funcrequest.h +++ b/src/funcrequest.h @@ -1,19 +1,27 @@ +// -*- C++ -*- /** * \file funcrequest.h - * Copyright 2002 the LyX Team - * Read the file COPYING + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * * \author André Pönitz + * + * Full author contact details are available in file CREDITS. */ #ifndef FUNCREQUEST_H #define FUNCREQUEST_H -#include "commandtags.h" +#include "lfuns.h" #include "frontends/mouse_state.h" -#include "LString.h" -class BufferView; +#include "support/docstring.h" + +#include + + +namespace lyx { + /** * This class encapsulates a LyX action and its argument @@ -21,46 +29,53 @@ 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, + MENU, // A menu entry + TOOLBAR, // A toolbar icon + 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, 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, 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); + FuncRequest(kb_action act, docstring const & arg, + Origin o = INTERNAL); + /// actions with extra argument. FIXME: remove this + FuncRequest(kb_action act, std::string const & arg, + Origin o = INTERNAL); /// for changing requests a bit - FuncRequest(FuncRequest const & cmd, BufferView * bv); + FuncRequest(FuncRequest const & cmd, docstring const & arg, + Origin o = INTERNAL); + /// for changing requests a bit. FIXME: remove this + 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(string const & msg) const; - /// output an error message - void errorMessage(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... + /// access the whole argument + docstring const & argument() const { return argument_; } + +public: // should be private /// the action kb_action action; +private: /// the action's string argument - string argument; + docstring argument_; +public: // should be private + /// who initiated the action + Origin origin; /// the x coordinate of a mouse press int x; /// the y coordinate of a mouse press @@ -69,4 +84,12 @@ public: // should be private, too... mouse_button::state button_; }; + +bool operator==(FuncRequest const & lhs, FuncRequest const & rhs); + +std::ostream & operator<<(std::ostream &, FuncRequest const &); + + +} // namespace lyx + #endif // FUNCREQUEST_H