]> git.lyx.org Git - lyx.git/blobdiff - src/BufferView.h
Second Locale patch.
[lyx.git] / src / BufferView.h
index a3be74981dd6b9f4baa17a5294a0ec38732eef17..531b38f08bc67830f7d52b5695970440bbacab78 100644 (file)
@@ -35,6 +35,27 @@ class LyXView;
 class Painter;
 class ParIterator;
 
+
+namespace Update {
+       enum flags {
+               FitCursor = 1,
+               Force = 2,
+               SinglePar = 4
+       };
+
+inline flags operator|(flags const f, flags const g)
+{
+       return static_cast<flags>(int(f) | int(g));
+}
+
+inline flags operator&(flags const f, flags const g)
+{
+       return static_cast<flags>(int(f) & int(g));
+}
+
+} // namespace
+
+
 /**
  * A buffer view encapsulates a view onto a particular
  * buffer, and allows access to operate upon it. A view
@@ -65,12 +86,6 @@ public:
        /// return the owning main view
        LyXView * owner() const;
 
-       /// return the visible top y
-       int top_y() const;
-
-       /// set the visible top y
-       void top_y(int);
-
        /// resize event has happened
        void resize();
 
@@ -82,14 +97,18 @@ public:
        /// load a buffer into the view
        bool loadLyXFile(std::string const & name, bool tolastfiles = true);
 
-       /// fit the user cursor within the visible view
+       /** perform pending painting updates. \c fitcursor means first
+        *  to do a fitcursor, and to force an update if screen
+        *  position changes. \c forceupdate means to force an update
+        *  in any case.
+        */
+
+       void update(Update::flags flags = Update::FitCursor | Update::Force);
+       /// move the screen to fit the cursor. Only to be called with
+       /// good y coordinates (after a bv::metrics)
        bool fitCursor();
-       /// perform pending painting updates
-       void update();
        /// reset the scrollbar to reflect current view position
        void updateScrollbar();
-       /// FIXME
-       void redoCurrentBuffer();
 
        /// FIXME
        bool available() const;
@@ -105,7 +124,10 @@ public:
        Change const getCurrentChange();
 
        /// return the lyxtext we are using
-       LyXText * getLyXText() const;
+       LyXText * getLyXText();
+
+       /// return the lyxtext we are using
+       LyXText const * getLyXText() const;
 
        /// simple replacing. Use the font of the first selected character
        void replaceSelectionWithString(std::string const & str);
@@ -153,6 +175,11 @@ public:
        /// clear the X selection
        void unsetXSel();
 
+       /// access to offset
+       int offset_ref() const;
+       /// access to anchor
+       lyx::pit_type anchor_ref() const;
+
        /// access to full cursor
        LCursor & cursor();
        /// access to full cursor
@@ -160,7 +187,7 @@ public:
        ///
        LyXText * text() const;
        ///
-       void setCursor(ParIterator const & par, lyx::pos_type pos);
+       void setCursor(DocIterator const &);
        /* Sets the selection. When \c backwards == false, set anchor
         * to \c cur and cursor to \c cur + \c length. When \c
         * backwards == true, set anchor to \c cur and cursor to \c
@@ -169,11 +196,12 @@ public:
        void putSelectionAt(DocIterator const & cur,
                int length, bool backwards);
 
+
 private:
        ///
-       struct Pimpl;
+       class Pimpl;
        ///
-       friend struct BufferView::Pimpl;
+       friend class BufferView::Pimpl;
        ///
        Pimpl * pimpl_;
 };