X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxrow.h;h=d855d77e30942f745ed2698a2a20ac98c2084cfb;hb=005545f28100fd30afa22313d6e3b1b67aa9a857;hp=cbb72cec7cba4170977a119cdd6e64a7c45855c2;hpb=c543071cb30fe6c179d72045062918fb46893181;p=lyx.git diff --git a/src/lyxrow.h b/src/lyxrow.h index cbb72cec7c..d855d77e30 100644 --- a/src/lyxrow.h +++ b/src/lyxrow.h @@ -7,7 +7,7 @@ * \author Matthias Ettrich * \author Lars Gullik Bjønnes * - * Full author contact details are available in file CREDITS + * Full author contact details are available in file CREDITS. * * Metrics for an on-screen text row. */ @@ -15,7 +15,6 @@ #ifndef LYXROW_H #define LYXROW_H -#include "ParagraphList.h" #include "support/types.h" /// @@ -24,33 +23,27 @@ public: /// Row(); /// - Row(ParagraphList::iterator pit, lyx::pos_type po); - /// - void par(ParagraphList::iterator pit); - /// - ParagraphList::iterator par(); - /// - ParagraphList::iterator par() const; + Row(lyx::pos_type pos); /// void pos(lyx::pos_type p); /// lyx::pos_type pos() const; /// - void fill(int f); + void endpos(lyx::pos_type p); /// - int fill() const; + lyx::pos_type endpos() const; /// - void height(unsigned short h); + void height(unsigned int h) { height_ = h; } /// - unsigned short height() const; + unsigned int height() const { return height_; } /// void width(unsigned int w); /// unsigned int width() const; /// - void ascent_of_text(unsigned short a); + void ascent_of_text(unsigned int a); /// - unsigned short ascent_of_text() const; + unsigned int ascent_of_text() const; /// void top_of_text(unsigned int top); /// @@ -61,18 +54,24 @@ public: 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; } + /// current debugging only + void dump(const char * = "") const; + private: - /// - ParagraphList::iterator pit_; - /// + /// first pos covered by this row lyx::pos_type pos_; - /** what is missing to a full row can be negative. - Needed for hfills, flushright, block etc. */ - mutable int fill_; + /// one behind last pos covered by this row + lyx::pos_type end_; /// - unsigned short height_; + 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 @@ -81,4 +80,19 @@ private: unsigned int baseline_; }; + +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