X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxrow.h;h=cc5ec0ed55c4a6e4dd62a7309ce94f8212047c34;hb=ae348f8af96100a154b3792d27732d621d44ec89;hp=585b46cb8b6479dc5459954d20fd8ab4acc00c4d;hpb=9ed14b41fa5a4775830f74e029a320e8bb93b10b;p=lyx.git diff --git a/src/lyxrow.h b/src/lyxrow.h index 585b46cb8b..cc5ec0ed55 100644 --- a/src/lyxrow.h +++ b/src/lyxrow.h @@ -17,7 +17,11 @@ #include "support/types.h" -/// +/** + * An on-screen row of text. A paragraph is broken into a + * RowList for display. Each Row contains position pointers + * into the first and last character positions of that row. + */ class Row { public: /// @@ -29,85 +33,52 @@ public: /// lyx::pos_type pos() const; /// - void end(lyx::pos_type p); - /// - lyx::pos_type end() const; - /// - void fill(int f); - /// - int fill() const; - /// - void height(unsigned int h) { height_ = h; } - /// - unsigned int height() const { return height_; } - /// - void width(unsigned int w); - /// - unsigned int width() const; - /// - void ascent_of_text(unsigned int a); - /// - unsigned int ascent_of_text() const; - /// - void top_of_text(unsigned int top); + void endpos(lyx::pos_type p); /// - unsigned int top_of_text() const; + lyx::pos_type endpos() const; /// - void baseline(unsigned int b); + int height() const { return ascent_ + descent_; } /// - unsigned int baseline() const; - /// return true if this row is the start of a paragraph - bool isParStart() const; - /// return the cached y position - unsigned int y_offset() const { return y_offset_; } - /// cache the y position - void y_offset(unsigned int newy) { y_offset_ = newy; } + void width(int w); /// - float x() const; + int width() const; /// - void x(float); + void ascent(int b); /// - float fill_separator() const; + int ascent() const; /// - void fill_separator(float); + void descent(int b) { descent_ = b; } /// - float fill_hfill() const; - /// - void fill_hfill(float); - /// - float fill_label_hfill() const; - /// - void fill_label_hfill(float); + int descent() const { return descent_; } /// current debugging only void dump(const char * = "") const; + private: /// first pos covered by this row lyx::pos_type pos_; /// one behind last pos covered by this row lyx::pos_type end_; - /** what is missing to a full row. Can be negative. - Needed for hfills, flushright, block etc. */ - mutable int fill_; - /// - unsigned int height_; - /// - unsigned int width_; - /// cached y position - unsigned int y_offset_; - /// ascent from baseline including prelude space - unsigned short ascent_of_text_; - /// the top of the real text in the row - unsigned int top_of_text_; /// - unsigned int baseline_; - /// offet from left border - float x_; + int ascent_; /// - float fill_separator_; + int descent_; /// - float fill_hfill_; - /// - float fill_label_hfill_; + int width_; +}; + + +class RowMetrics { +public: + RowMetrics(); + /// width of a separator (i.e. space) + double separator; + /// width of hfills in the body + double hfill; + /// width of hfills in the label + double label_hfill; + /// the x position of the row + double x; }; + #endif