/// 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) {}
///
bool contains(pit_type pit) const;
///
- ParagraphMetrics const & parMetrics(pit_type) const;
- ///
std::pair<pit_type, ParagraphMetrics const *> first() const;
///
std::pair<pit_type, ParagraphMetrics const *> last() const;
+ /// is this row the last in the text?
+ 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 & dimension() const { return dim_; }
+ Dimension const & dim() const { return dim_; }
///
Point const & origin() const { return origin_; }
-
- /// compute text metrics.
- bool metrics(MetricsInfo & mi, Dimension & dim, int min_width = 0,
- bool const expand_on_multipars = true);
+ ///
+ 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 const expand_on_multipars = true);
+
/// The "nodraw" drawing stage for one single paragraph: set the
/// positions of the insets contained this paragraph in metrics
/// cache. Related to BufferView::updatePosCache.
///
void deleteLineForward(Cursor & cur);
- /// is this row the last in the text?
- bool isLastRow(Row const & row) const;
- /// is this row the first in the text?
- bool isFirstRow(Row const & row) const;
-
/// Returns an inset if inset was hit, or 0 if not.
/// \warning This method is not recursive! It will return the
/// outermost inset within this Text.
Dimension & dim) const;
private:
- friend class BufferView;
/// The BufferView owner.
BufferView * bv_;