X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBufferView.h;h=357e33e8cb9bfec0039f717ede69fb9cf693f278;hb=e7f4618bcce770369cf46335c2c7f0164b4b8857;hp=43b1c7455a4f69de6667e16001631eb16991f28b;hpb=fc30e9f6bb720a2f6fd9d06b50b4394d69eef574;p=lyx.git diff --git a/src/BufferView.h b/src/BufferView.h index 43b1c7455a..357e33e8cb 100644 --- a/src/BufferView.h +++ b/src/BufferView.h @@ -18,9 +18,12 @@ #include "coordcache.h" #include "cursor.h" #include "metricsinfo.h" +#include "TextMetrics.h" #include "UpdateFlags.h" + #include "support/types.h" +#include #include #include @@ -38,10 +41,10 @@ class DocIterator; class FuncRequest; class FuncStatus; class Intl; -class Language; class LCursor; class LyXText; class ParIterator; +class ParagraphMetrics; class ViewMetricsInfo; /// Scrollbar Parameters. @@ -90,8 +93,6 @@ public: /// resize the BufferView. void resize(); - /// redisplay the referenced buffer. - void reload(); /// load a buffer into the view. bool loadLyXFile(support::FileName const & name, bool tolastfiles = true); @@ -114,20 +115,16 @@ public: /// Save the current position as bookmark. /// if persistent=false, save to temp_bookmark void saveBookmark(bool persistent); - /// goto a specified position. - void moveToPosition( + /// goto a specified position, try par_id first, and then par_pit + /// return the par_pit and par_id of the new paragraph + boost::tuple moveToPosition( + pit_type par_pit, ///< Paragraph pit, used when par_id is zero or invalid. int par_id, ///< Paragraph ID, \sa Paragraph pos_type par_pos ///< Position in the \c Paragraph ); /// return the current change at the cursor. Change const getCurrentChange() const; - /// return the lyxtext we are using. - LyXText * getLyXText(); - - /// return the lyxtext we are using. - LyXText const * getLyXText() const; - /// move cursor to the named label. void gotoLabel(docstring const & label); @@ -154,7 +151,8 @@ public: /// return true for events that will handle. FuncStatus getStatus(FuncRequest const & cmd); /// execute the given function. - bool dispatch(FuncRequest const & argument); + /// \return the Update::flags for further metrics update. + Update::flags dispatch(FuncRequest const & argument); /// request an X11 selection. /// \return the selected string. @@ -182,6 +180,9 @@ public: /// sets cursor. /// This will also open all relevant collapsable insets. void setCursor(DocIterator const &); + /// Check deleteEmptyParagraphMechanism and update metrics if needed. + /// \retval true if an update was needed. + bool checkDepm(LCursor & cur, LCursor & old); /// sets cursor. /// This is used when handling LFUN_MOUSE_PRESS. bool mouseSetCursor(LCursor & cur); @@ -204,6 +205,12 @@ public: /// \param singlepar indicates wether void updateMetrics(bool singlepar = false); + /// + TextMetrics const & textMetrics(LyXText const * t) const; + TextMetrics & textMetrics(LyXText const * t); + /// + ParagraphMetrics const & parMetrics(LyXText const *, pit_type) const; + /// CoordCache & coordCache() { return coord_cache_; @@ -278,6 +285,13 @@ private: /// keyboard mapping object. boost::scoped_ptr const intl_; + + /// last visited inset (kept to send setMouseHover(false) ) + InsetBase * last_inset_; + + /// A map from a LyXText to the associated text metrics + typedef std::map TextMetricsCache; + mutable TextMetricsCache text_metrics_; };