X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLyXFunc.h;h=a8d76b182dcd0ecce2a2b13e38f1b4ed54d28a01;hb=0de1e7730fe798b95b9a9bd92d8bd2853ab5c997;hp=56c5f7cf7e471e694a604569d06936e1adf8e594;hpb=978f65391e03cf36710527145c6c99d10474a1cd;p=lyx.git diff --git a/src/LyXFunc.h b/src/LyXFunc.h index 56c5f7cf7e..a8d76b182d 100644 --- a/src/LyXFunc.h +++ b/src/LyXFunc.h @@ -4,10 +4,10 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjønnes * \author Jean-Marc Lasgouttes * \author John Levon - * \author André Pönitz + * \author André Pönitz * * Full author contact details are available in file CREDITS. */ @@ -15,23 +15,25 @@ #ifndef LYXFUNC_H #define LYXFUNC_H +#include "FuncCode.h" #include "KeySequence.h" -#include "lfuns.h" -#include "TextClass.h" #include "support/docstring.h" -#include - namespace lyx { class Buffer; class BufferView; +class DocumentClass; class FuncRequest; class FuncStatus; class KeySymbol; class Text; +namespace support { +class FileName; +} + namespace frontend { class LyXView; } @@ -42,7 +44,8 @@ class LyXView; keyboard or from the GUI. All GUI objects, including buttons and menus should use this class and never call kernel functions directly. */ -class LyXFunc : public boost::signals::trackable { +class LyXFunc +{ public: /// explicit LyXFunc(); @@ -52,15 +55,15 @@ public: /// void setLyXView(frontend::LyXView * lv); - + /// void initKeySequences(KeyMap * kb); /// return the status bar state string - docstring const viewStatusMessage(); + docstring viewStatusMessage(); /// - void processKeySym(KeySymbol const & key, key_modifier::state state); + void processKeySym(KeySymbol const & key, KeyModifier state); /// FuncStatus getStatus(FuncRequest const & action) const; @@ -77,13 +80,18 @@ public: /// Buffer to store result messages docstring const getMessage() const { return dispatch_buffer; } /// Handle a accented char key sequence - void handleKeyFunc(kb_action action); + void handleKeyFunc(FuncCode action); /// goto a bookmark /// openFile: whether or not open a file if the file is not opened /// switchToBuffer: whether or not switch to buffer if the buffer is /// not the current buffer void gotoBookmark(unsigned int idx, bool openFile, bool switchToBuffer); + /// cursor x position before dispatch started + int cursorBeforeDispatchX() const { return cursorPosBeforeDispatchX_; } + /// cursor y position before dispatch started + int cursorBeforeDispatchY() const { return cursorPosBeforeDispatchY_; } + private: /// BufferView * view() const; @@ -99,7 +107,11 @@ private: /// KeySequence cancel_meta_seq; /// - key_modifier::state meta_fake_bit; + KeyModifier meta_fake_bit; + + /// cursor position before dispatch started + int cursorPosBeforeDispatchX_; + int cursorPosBeforeDispatchY_; /// Error status, only Dispatch can change this flag mutable bool errorstat; @@ -113,21 +125,12 @@ private: void sendDispatchMessage(docstring const & msg, FuncRequest const & ev); - // I think the following should be moved to BufferView. (Asger) - /// - void menuNew(std::string const & argument, bool fromTemplate); - /// - void open(std::string const &); - /// - void doImport(std::string const &); - /// - void closeBuffer(); /// void reloadBuffer(); - /// + /// make sure the document is saved bool ensureBufferClean(BufferView * bv); /// - void updateLayout(TextClassPtr const & oldlayout, Buffer * buffer); + void updateLayout(DocumentClass const * const oldlayout, Buffer * buffer); }; /// Implementation is in LyX.cpp