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_; }
* 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
* 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);
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_;
};