]> git.lyx.org Git - lyx.git/blobdiff - src/lyxrow.h
Remove cached var from RenderPreview. Changes elsewhere to suit.
[lyx.git] / src / lyxrow.h
index cbb72cec7cba4170977a119cdd6e64a7c45855c2..d855d77e30942f745ed2698a2a20ac98c2084cfb 100644 (file)
@@ -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