]> git.lyx.org Git - features.git/blobdiff - src/TextMetrics.h
Clean includes using the output of iwyu tool
[features.git] / src / TextMetrics.h
index ba1371fd878409de693d55189e1fdd694faa9ded..f7f30fa08ec865c1ef23fd6f25b3aea2ea1532c0 100644 (file)
 
 #include "support/types.h"
 
+#include <map>
+
 namespace lyx {
 
 class BufferView;
 class Cursor;
 class CursorSlice;
-class DocIterator;
 class MetricsInfo;
 class Text;
 
 /// A map from a Text to the map of paragraphs metrics
 class TextMetrics
 {
+       /// noncopyable
+       TextMetrics(TextMetrics const &);
+       void operator=(TextMetrics const &);
 public:
        /// Default constructor (only here for STL containers).
        TextMetrics() : bv_(0), text_(0), max_width_(0) {}
@@ -49,22 +53,26 @@ public:
        bool isLastRow(Row const & row) const;
        /// is this row the first in the text?
        bool isFirstRow(Row const & row) const;
+       ///
+       void setRowChanged(pit_type pit, pos_type pos);
 
        ///
        Dimension const & dim() const { return dim_; }
        ///
        Point const & origin() const { return origin_; }
 
-
        ///
        ParagraphMetrics const & parMetrics(pit_type) const;
+       ///
+       ParagraphMetrics & parMetrics(pit_type);
+
        ///
        void newParMetricsDown();
        ///
        void newParMetricsUp();
 
        /// compute text metrics.
-       bool metrics(MetricsInfo & mi, Dimension & dim, int min_width = 0,
+       bool metrics(MetricsInfo const & mi, Dimension & dim, int min_width = 0,
                     bool const expand_on_multipars = true);
 
        /// The "nodraw" drawing stage for one single paragraph: set the
@@ -116,6 +124,15 @@ public:
        /// current text height.
        int height() const { return dim_.height(); }
 
+       /**
+        * Returns the left beginning of the text.
+        * This information cannot be taken from the layout object, because
+        * in LaTeX the beginning of the text fits in some cases
+        * (for example sections) exactly the label-width.
+        */
+       int leftMargin(pit_type pit, pos_type pos) const;
+       int leftMargin(pit_type pit) const;
+
        ///
        int rightMargin(ParagraphMetrics const & pm) const;
        int rightMargin(pit_type const pit) const;
@@ -129,15 +146,6 @@ private:
        ///
        ParagraphMetrics & parMetrics(pit_type, bool redo_paragraph);
 
-       /**
-        * Returns the left beginning of the text.
-        * This information cannot be taken from the layout object, because
-        * in LaTeX the beginning of the text fits in some cases
-        * (for example sections) exactly the label-width.
-        */
-       int leftMargin(pit_type pit, pos_type pos) const;
-       int leftMargin(pit_type pit) const;
-
        /// the minimum space a manual label needs on the screen in pixels
        int labelFill(Row const & row) const;
 
@@ -235,7 +243,6 @@ public:
                Dimension & dim) const;
 
 private:
-       friend class BufferView;
 
        /// The BufferView owner.
        BufferView * bv_;