]> git.lyx.org Git - lyx.git/blobdiff - src/TextMetrics.h
Update it.po
[lyx.git] / src / TextMetrics.h
index d65618fc0cbf5401dc1d0a183079fc61738ba401..cf53faa13282407acd05c6f8278ea3bfed52958d 100644 (file)
@@ -39,7 +39,7 @@ class TextMetrics
        void operator=(TextMetrics const &);
 public:
        /// Default constructor (only here for STL containers).
-       TextMetrics() : bv_(0), text_(0), max_width_(0) {}
+       TextMetrics() : bv_(0), text_(0), max_width_(0), tight_(false) {}
        /// The only useful constructor.
        TextMetrics(BufferView *, Text *);
 
@@ -72,8 +72,7 @@ public:
        void newParMetricsUp();
 
        /// compute text metrics.
-       bool metrics(MetricsInfo const & mi, Dimension & dim, int min_width = 0,
-                    bool const expand_on_multipars = true);
+       bool metrics(MetricsInfo const & mi, Dimension & dim, int min_width = 0);
 
        /// The "nodraw" drawing stage for one single paragraph: set the
        /// positions of the insets contained in this paragraph in metrics
@@ -123,12 +122,14 @@ public:
        int height() const { return dim_.height(); }
 
        /**
-        * Returns the left beginning of the text.
+        * Returns the left beginning of a row starting at \c pos.
         * 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;
+       /// Return the left beginning of a row which is not the first one.
+       /// This is the left margin when there is no indentation.
        int leftMargin(pit_type pit) const;
 
        ///
@@ -147,13 +148,11 @@ private:
        /// the minimum space a manual label needs on the screen in pixels
        int labelFill(Row const & row) const;
 
-       /// FIXME??
-       int labelEnd(pit_type const pit) const;
+       // Turn paragraph oh index \c pit into a single row
+       Row tokenizeParagraph(pit_type pit) const;
 
-       /// sets row.end to the pos value *after* which a row should break.
-       /// for example, the pos after which isNewLine(pos) == true
-       /// \return true when another row is required (after a newline)
-       bool breakRow(Row & row, int right_margin) const;
+       // Break the row produced by tokenizeParagraph() into a list of rows.
+       RowList breakParagraph(Row const & row) const;
 
        // Expands the alignment of row \param row in paragraph \param par
        LyXAlignment getAlign(Paragraph const & par, Row const & row) const;
@@ -255,6 +254,8 @@ private:
        mutable ParMetricsCache par_metrics_;
        Dimension dim_;
        int max_width_;
+       /// if true, do not expand insets to max width artificially
+       bool tight_;
        mutable Point origin_;
 
 // temporary public: