]> git.lyx.org Git - lyx.git/blobdiff - src/BufferView_pimpl.h
Applied Angus patch to compile on DEC C++ and to avoid name clashes
[lyx.git] / src / BufferView_pimpl.h
index 1a96bd100bf9be810caf7aaede70127f499a10c3..e7a9c8ba750b0108d3bd656c8ba707e28131b513 100644 (file)
@@ -3,9 +3,13 @@
 #ifndef BUFFERVIEW_PIMPL_H
 #define BUFFERVIEW_PIMPL_H
 
+#include <boost/smart_ptr.hpp>
+
 #include "BufferView.h"
 #include "UpdateInset.h"
-#include "Timeout.h"
+#include "commandtags.h"
+#include "frontends/Timeout.h"
+#include "WorkArea.h"
 
 #ifdef __GNUG__
 #pragma interface
@@ -15,12 +19,8 @@ class LyXView;
 class WorkArea;
 class LyXScreen;
 
-#ifdef SIGC_CXX_NAMESPACES
-using SigC::Object;
-#endif
-
 ///
-struct BufferView::Pimpl : public Object {
+struct BufferView::Pimpl : public SigC::Object {
        ///
        Pimpl(BufferView * i, LyXView * o,
              int xpos, int ypos, int width, int height);
@@ -43,7 +43,7 @@ struct BufferView::Pimpl : public Object {
        ///
        void update();
        //
-       void update(BufferView::UpdateCodes);
+       void update(LyXText *, BufferView::UpdateCodes);
        /// Update pixmap of screen
        void updateScreen();
        ///
@@ -84,7 +84,7 @@ struct BufferView::Pimpl : public Object {
        ///
        bool available() const;
        ///
-       void beforeChange();
+       void beforeChange(LyXText *);
        ///
        void savePosition(unsigned int i);
        ///
@@ -117,6 +117,12 @@ struct BufferView::Pimpl : public Object {
        void toggleToggle();
        ///
        void center();
+       ///
+       bool Dispatch(kb_action action, string const & argument);
+private:
+       ///
+       friend class BufferView;
+       
        ///
        BufferView * bv_;
        ///
@@ -124,7 +130,7 @@ struct BufferView::Pimpl : public Object {
        ///
        Buffer * buffer_;
        ///
-       LyXScreen * screen_;
+       boost::scoped_ptr<LyXScreen> screen_;
        ///
        long current_scrollbar_value;
        ///
@@ -136,30 +142,36 @@ struct BufferView::Pimpl : public Object {
        ///
        int last_click_y;
        ///
-       WorkArea workarea_;
+       WorkArea workarea_;
        ///
        UpdateInset updatelist;
        ///
        void pasteClipboard(bool asPara);
        ///
        void stuffClipboard(string const &) const;
-private:
        ///
        bool using_xterm_cursor;
-
+       ///
        struct Position {
                /// Filename
                 string filename;
                 /// Cursor paragraph Id
                 int par_id;
                 /// Cursor position
-                int par_pos;
+                LyXParagraph::size_type par_pos;
                ///
                Position() : par_id(0), par_pos(0) {}
                ///
-               Position(string const & f, int id, int pos)
+               Position(string const & f, int id, LyXParagraph::size_type pos)
                         : filename(f), par_id(id), par_pos(pos) {}
        };
+       ///
        std::vector<Position> saved_positions;
+       ///
+       void moveCursorUpdate(bool selecting);
+        /// Get next inset of this class from current cursor position  
+       Inset * getInsetByCode(Inset::Code code);
+       ///
+       void MenuInsertLyXFile(string const & filen);
 };
 #endif