X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxrow.h;h=e7c1183958acb70fb816be65a10b42b937bee228;hb=2e57f2ff0ae7cd4a6efbf634ffe6d2f4379d9cfc;hp=fb53c7d4540236b1493c539b312005ae2606540f;hpb=2f71b9d2352543f8c6a891cc7c6d84378eb0387d;p=lyx.git diff --git a/src/lyxrow.h b/src/lyxrow.h index fb53c7d454..e7c1183958 100644 --- a/src/lyxrow.h +++ b/src/lyxrow.h @@ -4,7 +4,8 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author unknown + * \author Matthias Ettrich + * \author Lars Gullik Bjønnes * * Full author contact details are available in file CREDITS * @@ -14,22 +15,22 @@ #ifndef LYXROW_H #define LYXROW_H +#include "ParagraphList.h" #include "support/types.h" -class Paragraph; - /// class Row { public: /// Row(); - /// - void par(Paragraph * p); + Row(ParagraphList::iterator pit, lyx::pos_type pos); /// - Paragraph * par(); + void par(ParagraphList::iterator pit); /// - Paragraph * par() const; + ParagraphList::iterator par(); + /// + ParagraphList::iterator par() const; /// void pos(lyx::pos_type p); /// @@ -58,98 +59,32 @@ public: void baseline(unsigned int b); /// unsigned int baseline() const; - /// - void next(Row * r); - /// - Row * next() const; - /// - void previous(Row * r); - /// - Row * previous() const; - /// return true if this row is the start of a paragraph bool isParStart() const; - - /// return true if this row is the end of a paragraph - bool isParEnd() const; - - /// return the position of the last character in this row - lyx::pos_type lastPos() const; - /// return the position of the last normal, printable character in this row - lyx::pos_type lastPrintablePos() const; - - /** - * Returns the number of separators. - * The separator on the very last column doesnt count. - */ - int numberOfSeparators() const; - - /** - * Returns the number of hfills. It works like a LaTeX \hfill: - * the hfills at the beginning and at the end are ignored. - * This is much more useful than not to ignore! - */ - int numberOfHfills() const; - - /// Returns the number of hfills in the manual label. See numberOfHfills(). - int numberOfLabelHfills() const; - - /** - * Returns true if a expansion is needed at the given position. - * Rules are given by LaTeX - */ - bool hfillExpansion(lyx::pos_type pos) const; - + /// return the cached y position + unsigned int y() const; + /// cache the y position + void y(unsigned int newy); private: /// - Paragraph * par_; + ParagraphList::iterator pit_; /// lyx::pos_type pos_; - /** what is missing to a full row can be negative. + /** what is missing to a full row. Can be negative. Needed for hfills, flushright, block etc. */ mutable int fill_; /// unsigned short height_; /// unsigned int width_; + /// cached y position + unsigned int y_; /// 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_; - /// - Row * next_; - /// - Row * previous_; }; - -inline -Paragraph * Row::par() -{ - return par_; -} - - -inline -Paragraph * Row::par() const -{ - return par_; -} - - -inline -unsigned short Row::height() const -{ - return height_; -} - - -inline -Row * Row::next() const -{ - return next_; -} - #endif