]> git.lyx.org Git - lyx.git/blobdiff - src/Row.h
Try another way to signal a false positive to coverity
[lyx.git] / src / Row.h
index 7ae9c11b1e3850adc16ccaddf129edd7b382e5cd..c840698f1c071b00bd1980197a8537270afe8f3a 100644 (file)
--- a/src/Row.h
+++ b/src/Row.h
@@ -80,12 +80,13 @@ public:
                /** Return position in pixels (from the left) of position
                 * \param i in the row element.
                 */
-               double pos2x(pos_type const i) const;
+               double pos2x(pos_type i) const;
                /** Return character position that is the closest to
                 *  pixel position \param x. The value \param x is
                 *  adjusted to the actual pixel position.
-               */
-               pos_type x2pos(int &x) const;
+                *  \param select if true, return the right edge when closer.
+                */
+               pos_type x2pos(int & x, bool select = false) const;
                /** Break the element if possible, so that its width is less
                 * than \param w. Returns true on success. When \param force
                 * is true, the string is cut at any place, other wise it
@@ -171,6 +172,10 @@ public:
        void right_boundary(bool b) { right_boundary_ = b; }
        ///
        bool right_boundary() const { return right_boundary_; }
+       ///
+       void flushed(bool b) { flushed_ = b; }
+       ///
+       bool flushed() const { return flushed_; }
 
        ///
        Dimension const & dimension() const { return dim_; }
@@ -243,10 +248,11 @@ public:
         * separator and update endpos if necessary. If all that
         * remains is a large word, cut it to \param width.
         * \param body_pos minimum amount of text to keep.
-        * \param width maximum width of the row
+        * \param width maximum width of the row.
+        * \param available width on next row.
         * \return true if the row has been shortened.
         */
-       bool shortenIfNeeded(pos_type const body_pos, int const width);
+       bool shortenIfNeeded(pos_type const body_pos, int const width, int const next_width);
 
        /**
         * If last element of the row is a string, compute its width
@@ -259,6 +265,10 @@ public:
         * This should be called once the row is completely built.
         */
        void reverseRTL(bool rtl_par);
+       ///
+       bool isRTL() const { return rtl_; }
+       /// Find row element that contains \c pos, and compute x offset.
+       const_iterator const findElement(pos_type pos, bool boundary, double & x) const;
 
        friend std::ostream & operator<<(std::ostream & os, Row const & row);
 
@@ -309,10 +319,14 @@ private:
        pos_type pos_;
        /// one behind last pos covered by this row
        pos_type end_;
-       // Is there is a boundary at the end of the row (display inset...)
+       // Is there a boundary at the end of the row (display inset...)
        bool right_boundary_;
+       // Shall the row be flushed when it is supposed to be justified?
+       bool flushed_;
        /// Row dimension.
        Dimension dim_;
+       /// true when this row lives in a right-to-left paragraph
+       bool rtl_;
 };