X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FParagraphMetrics.h;h=53f5f4379a4c37b2121183e6c8fa26ee5c187bfe;hb=6b651f2ad9f698c01993dcc6e340682c279f1c55;hp=42f6d8720472fb629b4ba0705080fa7696e7a4ee;hpb=7d97e555fc9bc2be2d55e4c5fc61e1a7010dec5d;p=lyx.git diff --git a/src/ParagraphMetrics.h b/src/ParagraphMetrics.h index 42f6d87204..53f5f4379a 100644 --- a/src/ParagraphMetrics.h +++ b/src/ParagraphMetrics.h @@ -18,9 +18,11 @@ #define PARAGRAPH_METRICS_H #include "Dimension.h" -#include "Paragraph.h" #include "Row.h" +#include +#include + namespace lyx { /** @@ -30,16 +32,21 @@ namespace lyx { */ typedef std::vector RowList; +class Buffer; +class BufferParams; +class Font; +class Inset; +class Paragraph; class MetricsInfo; class PainterInfo; -/// Helper class for Paragraph Metrics. -class ParagraphMetrics { +/// Helper class for paragraph metrics. +class ParagraphMetrics { public: /// Default constructor (only here for STL containers). - ParagraphMetrics(): par_(0) {}; + ParagraphMetrics() : par_(0) {} /// The only useful constructor. - ParagraphMetrics(Paragraph const & par); + explicit ParagraphMetrics(Paragraph const & par); /// Copy operator. ParagraphMetrics & operator=(ParagraphMetrics const &); @@ -57,13 +64,13 @@ public: Dimension const & dim() const { return dim_; } Dimension & dim() { return dim_; } /// total height of paragraph - unsigned int height() const { return dim_.height(); } + int height() const { return dim_.height(); } /// total width of paragraph, may differ from workwidth - unsigned int width() const { return dim_.width(); } + int width() const { return dim_.width(); } /// ascend of paragraph above baseline - unsigned int ascent() const { return dim_.ascent(); } + int ascent() const { return dim_.ascent(); } /// descend of paragraph below baseline - unsigned int descent() const { return dim_.descent(); } + int descent() const { return dim_.descent(); } /// Text updates the rows using this access point RowList & rows() { return rows_; } /// The painter and others use this @@ -80,15 +87,30 @@ public: bool hfillExpansion(Row const & row, pos_type pos) const; /// - void computeRowSignature(Row &, BufferParams const & bparams); + size_t computeRowSignature(Row const &, BufferParams const & bparams) const; + + /// + int position() const { return position_; } + void setPosition(int position); + + /// + Dimension const & insetDimension(Inset const * inset) const; + /// + void setInsetDimension(Inset const *, Dimension const & dim); private: + /// + int position_; /// mutable RowList rows_; /// cached dimensions of paragraph Dimension dim_; /// Paragraph const * par_; + + typedef std::map InsetDims; + /// + InsetDims inset_dims_; }; } // namespace lyx