+private:
+ /// noncopyable
+ BufferView(BufferView const &);
+ void operator=(BufferView const &);
+
+ /// the position relative to (0, baseline) of outermost paragraph
+ Point coordOffset(DocIterator const & dit) const;
+ /// Update current paragraph metrics.
+ /// \return true if no further update is needed.
+ bool singleParUpdate();
+
+ // Set the row on which the cursor lives.
+ void setCurrentRowSlice(CursorSlice const & rowSlice);
+
+ // Check whether the row where the cursor lives needs to be scrolled.
+ // Update the drawing strategy if needed.
+ void checkCursorScrollOffset(PainterInfo & pi);
+
+ /// The minimal size of the document that is visible. Used
+ /// when it is allowed to scroll below the document.
+ int minVisiblePart();
+
+ /// Search recursively for the innermost inset that covers (x, y) position.
+ /// \retval 0 if no inset is found.
+ Inset const * getCoveringInset(
+ Text const & text, //< The Text where we start searching.
+ int x, //< x-coordinate on screen
+ int y //< y-coordinate on screen
+ ) const;
+
+ /// Update the hovering status of the insets. This is called when
+ /// either the screen is updated or when the buffer has scolled.
+ void updateHoveredInset() const;