4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
7 * \author Matthias Ettrich
8 * \author Lars Gullik Bjønnes
10 * Full author contact details are available in file CREDITS
12 * Metrics for an on-screen text row.
18 #include "support/types.h"
26 Row(lyx::pos_type pos);
28 void pos(lyx::pos_type p);
30 lyx::pos_type pos() const;
32 void end(lyx::pos_type p);
34 lyx::pos_type end() const;
40 void height(unsigned short h);
42 unsigned short height() const;
44 void width(unsigned int w);
46 unsigned int width() const;
48 void ascent_of_text(unsigned short a);
50 unsigned short ascent_of_text() const;
52 void top_of_text(unsigned int top);
54 unsigned int top_of_text() const;
56 void baseline(unsigned int b);
58 unsigned int baseline() const;
59 /// return true if this row is the start of a paragraph
60 bool isParStart() const;
61 /// return the cached y position
62 unsigned int y() const;
63 /// cache the y position
64 void y(unsigned int newy);
65 /// current debugging only
66 void dump(const char * = "") const;
68 /// first pos covered by this row
70 /// one behind last pos covered by this row
72 /** what is missing to a full row. Can be negative.
73 Needed for hfills, flushright, block etc. */
76 unsigned short height_;
81 /// ascent from baseline including prelude space
82 unsigned short ascent_of_text_;
83 /// the top of the real text in the row
84 unsigned int top_of_text_;
86 unsigned int baseline_;