extra(0), font(f), change(ch), final(false) {}
// Return total width of element, including separator overhead
+ // FIXME: Cache this value or the number of separators?
double full_width() const { return dim.wid + extra * countSeparators(); }
// Return the number of separator in the element (only STRING type)
int countSeparators() const;
void setSelectionAndMargins(DocIterator const & beg,
DocIterator const & end) const;
+ ///
+ void pit(pit_type p) { pit_ = p; }
+ ///
+ pit_type pit() const { return pit_; }
///
void pos(pos_type p) { pos_ = p; }
///
* 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
+ * \return true if the row has been shortened.
*/
- void shortenIfNeeded(pos_type const body_pos, int const width);
+ bool shortenIfNeeded(pos_type const body_pos, int const width);
/**
* If last element of the row is a string, compute its width
mutable bool changed_;
/// CRC of row contents.
mutable size_type crc_;
+ /// Index of the paragraph that contains this row
+ pit_type pit_;
/// first pos covered by this row
pos_type pos_;
/// one behind last pos covered by this row