]> git.lyx.org Git - lyx.git/blobdiff - src/LyXFunc.h
Fix bug #4510: GuiInclude->Edit marks master as changed.
[lyx.git] / src / LyXFunc.h
index 60862dc406da8139f21aadbbe6940f054b0dd476..a8d76b182dcd0ecce2a2b13e38f1b4ed54d28a01 100644 (file)
@@ -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.
  */
 #ifndef LYXFUNC_H
 #define LYXFUNC_H
 
+#include "FuncCode.h"
 #include "KeySequence.h"
-#include "lfuns.h"
 
 #include "support/docstring.h"
 
-#include <boost/scoped_ptr.hpp>
-#include <boost/signals/trackable.hpp>
-
 namespace lyx {
 
+class Buffer;
 class BufferView;
+class DocumentClass;
 class FuncRequest;
 class FuncStatus;
 class KeySymbol;
 class Text;
-class LyXView;
 
+namespace support {
+class FileName;
+}
+
+namespace frontend {
+class LyXView;
+}
 
 /** This class encapsulates all the LyX command operations.
     This is the class of the LyX's "high level event handler".
@@ -39,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();
@@ -48,16 +54,16 @@ public:
        void dispatch(FuncRequest const &);
 
        ///
-       void setLyXView(LyXView * lv);
-
+       void setLyXView(frontend::LyXView * lv);
+       
        ///
        void initKeySequences(KeyMap * kb);
 
        /// return the status bar state string
-       docstring const viewStatusMessage();
+       docstring viewStatusMessage();
 
        ///
-       void processKeySym(KeySymbolPtr key, key_modifier::state state);
+       void processKeySym(KeySymbol const & key, KeyModifier state);
 
        ///
        FuncStatus getStatus(FuncRequest const & action) const;
@@ -74,29 +80,38 @@ 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;
 
        ///
-       LyXView * lyx_view_;
+       frontend::LyXView * lyx_view_;
 
        /// the last character added to the key sequence, in UCS4 encoded form
        char_type encoded_last_key;
 
        ///
-       boost::scoped_ptr<KeySequence> keyseq;
+       KeySequence keyseq;
        ///
-       boost::scoped_ptr<KeySequence> cancel_meta_seq;
+       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;
@@ -110,19 +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(DocumentClass const * const oldlayout, Buffer * buffer);
 };
 
 /// Implementation is in LyX.cpp