]> git.lyx.org Git - lyx.git/blobdiff - src/BufferView_pimpl.h
revert recent change to development/FORMAT (don't change history)
[lyx.git] / src / BufferView_pimpl.h
index c6ac78f6f7af61561e1dd911ede071772871df26..14c4d52ba5740b6f6ccddcfd99264f071f1b951b 100644 (file)
 
 #include "BufferView.h"
 #include "cursor.h"
-#include "errorlist.h"
+#include "metricsinfo.h"
 
-#include "insets/inset.h"
-
-#include "frontends/key_state.h"
-#include "frontends/Timeout.h"
+#include "frontends/LyXKeySym.h"
 
 #include "support/types.h"
 
-#include <boost/scoped_ptr.hpp>
-#include <boost/shared_ptr.hpp>
-#include <boost/signals/trackable.hpp>
-
-
 class Change;
-class LyXKeySym;
 class LyXView;
-class WorkArea;
-class LyXScreen;
+
 class FuncRequest;
 class FuncStatus;
-class ViewMetricsInfo;
+
+namespace lyx {
+namespace frontend {
+class Gui;
+}
+}
 
 
 ///
-class BufferView::Pimpl : public boost::signals::trackable {
+class BufferView::Pimpl {
 public:
        ///
-       Pimpl(BufferView & bv, LyXView * owner, int width, int height);
-       ///
-       Painter & painter() const;
-       /// return the screen for this bview
-       LyXScreen & screen() const;
+       Pimpl(BufferView & bv, LyXView * owner);
        ///
        void setBuffer(Buffer * buf);
+       /// return the first layout of the Buffer.
+       std::string firstLayout();
        ///
        void resizeCurrentBuffer();
        //
@@ -62,30 +55,26 @@ public:
        //
        bool multiParSel();
        ///
-       void update(Update::flags flags = Update::Force);
-       ///
-       void newFile(std::string const &, std::string const &, bool);
-       ///
+       bool update(Update::flags flags = Update::Force);
+       /// load a buffer into the view
        bool loadLyXFile(std::string const &, bool);
        ///
-       void workAreaResize();
+       void workAreaResize(int width, int height);
        ///
        void updateScrollbar();
        ///
+       ScrollbarParameters const & scrollbarParameters() const;
+       ///
        void scrollDocView(int value);
+       ///
+       void setCursorFromScrollbar();
        /// Wheel mouse scroll, move by multiples of text->defaultRowHeight().
        void scroll(int lines);
        ///
-       typedef boost::shared_ptr<LyXKeySym> LyXKeySymPtr;
-       ///
-       void workAreaKeyPress(LyXKeySymPtr key, key_modifier::state state);
-       ///
        void selectionRequested();
        ///
        void selectionLost();
        ///
-       void cursorToggle();
-       ///
        bool available() const;
        /// get the change at the cursor position
        Change const getCurrentChange();
@@ -95,6 +84,8 @@ public:
        void restorePosition(unsigned int i);
        ///
        bool isSavedPosition(unsigned int i);
+       /// save bookmarks to .lyx/session
+       void saveSavedPositions();
        ///
        void switchKeyMap();
        ///
@@ -105,38 +96,36 @@ public:
        FuncStatus getStatus(FuncRequest const & cmd);
        /// a function should be executed
        bool dispatch(FuncRequest const & ev);
-       /// Flag: do a full redraw of inside text of inset
-       bool repaintAll() { return refresh_inside_; }
+
+       /// Width and height of the BufferView in Pixels
+       /**
+       This is set externally by the workAreaResize method.
+       */
+       int width() const;
+       /// Height of the BufferView in Pixels
+       /**
+       This is set externally by the workAreaResize method.
+       */
+       int height() const;
+
+       ///
+       ViewMetricsInfo const & viewMetricsInfo();
        ///
-       void repaintAll(bool r) {refresh_inside_ = r; }
+       void updateMetrics(bool singlepar = false);
+
 private:
-       /// An error list (replaces the error insets)
-       ErrorList errorlist_;
-       /// add an error to the list
-       void addError(ErrorItem const &);
-       /// buffer errors signal connection
-       boost::signals::connection errorConnection_;
-       /// buffer messages signal connection
-       boost::signals::connection messageConnection_;
-       /// buffer busy status signal connection
-       boost::signals::connection busyConnection_;
-       /// buffer title changed signal connection
-       boost::signals::connection titleConnection_;
-       /// buffer reset timers signal connection
-       boost::signals::connection timerConnection_;
-       /// buffer readonly status changed signal connection
-       boost::signals::connection readonlyConnection_;
-       /// buffer closing signal connection
-       boost::signals::connection closingConnection_;
-       /// connect to signals in the given buffer
-       void connectBuffer(Buffer & buf);
-       /// disconnect from signals in the given buffer
-       void disconnectBuffer();
+       ///
+       int width_;
+       ///
+       int height_;
+       ///
+       ScrollbarParameters scrollbarParameters_;
+
        /// track changes for the document
        void trackChanges();
-       /// notify readonly status
-       void showReadonly(bool);
 
+       ///
+       ViewMetricsInfo metrics_info_;
 
        ///
        friend class BufferView;
@@ -147,19 +136,10 @@ private:
        LyXView * owner_;
        ///
        Buffer * buffer_;
-       ///
-       boost::scoped_ptr<LyXScreen> screen_;
-       ///
-       boost::scoped_ptr<WorkArea> workarea_;
+
        /// Estimated average par height for scrollbar
        int wh_;
        ///
-       Timeout cursor_timeout;
-       ///
-       void stuffClipboard(std::string const &) const;
-       ///
-       bool using_xterm_cursor;
-       ///
        class Position {
        public:
                /// Filename
@@ -177,9 +157,8 @@ private:
        ///
        std::vector<Position> saved_positions;
        ///
-       void MenuInsertLyXFile(std::string const & filen);
-       /// our workarea
-       WorkArea & workarea() const;
+       void menuInsertLyXFile(std::string const & filen);
+
        /// this is used to handle XSelection events in the right manner
        struct {
                CursorSlice cursor;
@@ -194,10 +173,6 @@ private:
        lyx::pit_type anchor_ref_;
        ///
        int offset_ref_;
-       ///
-       ViewMetricsInfo metrics(bool singlepar = false);
-       /// Working variable indicating a full screen refresh
-       mutable bool refresh_inside_;
-       
+
 };
 #endif // BUFFERVIEW_PIMPL_H