namespace lyx {
class BufferView;
-class LyXText;
+class Text;
class MetricsInfo;
-/// A map from a LyXText to the map of paragraphs metrics
+/// A map from a Text to the map of paragraphs metrics
class TextMetrics
{
public:
/// Default constructor (only here for STL containers).
TextMetrics(): text_(0) {}
/// The only useful constructor.
- TextMetrics(BufferView *, LyXText *);
+ TextMetrics(BufferView *, Text *);
///
ParagraphMetrics const & parMetrics(pit_type) const;
///
/// \retval true if a full screen redraw is needed.
/// \retval false if a single paragraph redraw is enough.
bool redoParagraph(pit_type const pit);
+ /// Clear cache of paragraph metrics
+ void clear() { par_metrics_.clear(); }
///
int ascent() const { return dim_.asc; }
private:
- ///
+ ///
ParagraphMetrics & parMetrics(pit_type, bool redo_paragraph);
/// the minimum space a manual label needs on the screen in pixels
/// Calculate and set the height of the row
void setHeightOfRow(pit_type, Row & row);
+// Temporary public:
+public:
/// returns the column near the specified x-coordinate of the row.
/// x is an absolute screen coord, it is set to the real beginning
/// of this column.
pos_type getColumnNearX(pit_type pit, Row const & row, int & x,
bool & boundary) const;
+ /// returns pos in given par at given x coord.
+ pos_type x2pos(pit_type pit, int row, int x) const;
+
+ // FIXME: is there a need for this?
+ //int pos2x(pit_type pit, pos_type pos) const;
+
+private:
+
/// The BufferView owner.
BufferView * bv_;
/// The text contents (the model).
/// \todo FIXME: this should be const.
- LyXText * text_;
+ Text * text_;
bool main_text_;
/// A map from paragraph index number to paragraph metrics
/*
/// A map from paragraph index number to screen point
typedef std::map<pit_type, Point> InnerParPosCache;
- /// A map from a LyXText to the map of paragraphs to screen points
- typedef std::map<LyXText const *, InnerParPosCache> ParPosCache;
+ /// A map from a Text to the map of paragraphs to screen points
+ typedef std::map<Text const *, InnerParPosCache> ParPosCache;
/// Paragraph grouped by owning text
ParPosCache pars_;
*/