]> git.lyx.org Git - lyx.git/blobdiff - src/LyXFunc.h
Embedding: saving inzip name to .lyx file so that embedded files can always be found...
[lyx.git] / src / LyXFunc.h
index f532cc1073d936772e1a8c483818a783167a9dd9..3a0dd617dbc0f8ae776140e40dba1975b190a669 100644 (file)
 
 #include "KeySequence.h"
 #include "lfuns.h"
+#include "TextClassPtr.h"
 
 #include "support/docstring.h"
 
-#include <boost/scoped_ptr.hpp>
-#include <boost/signals/trackable.hpp>
-
 namespace lyx {
 
+class Buffer;
 class BufferView;
 class FuncRequest;
 class FuncStatus;
 class KeySymbol;
-class LyXText;
-class LyXView;
+class Text;
 
+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,7 +54,7 @@ public:
        void dispatch(FuncRequest const &);
 
        ///
-       void setLyXView(LyXView * lv);
+       void setLyXView(frontend::LyXView * lv);
 
        ///
        void initKeySequences(KeyMap * kb);
@@ -57,7 +63,7 @@ public:
        docstring const viewStatusMessage();
 
        ///
-       void processKeySym(KeySymbolPtr key, key_modifier::state state);
+       void processKeySym(KeySymbol const & key, KeyModifier state);
 
        ///
        FuncStatus getStatus(FuncRequest const & action) const;
@@ -77,26 +83,43 @@ public:
        void handleKeyFunc(kb_action 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 
+       /// switchToBuffer: whether or not switch to buffer if the buffer is
        ///             not the current buffer
        void gotoBookmark(unsigned int idx, bool openFile, bool switchToBuffer);
 
+       /// load a buffer into the current workarea.
+       Buffer * loadAndViewFile(support::FileName const &  name, ///< File to load.
+               bool tolastfiles = true);  ///< append to the "Open recent" menu?
+
+       /// 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,9 +133,6 @@ 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 &);
        ///
@@ -123,6 +143,8 @@ private:
        void reloadBuffer();
        ///
        bool ensureBufferClean(BufferView * bv);
+       ///
+       void updateLayout(TextClassPtr const & oldlayout, Buffer * buffer);
 };
 
 /// Implementation is in LyX.cpp