X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTexRow.h;h=a4edc6c544113b8ab6a4cf3f1c5969d20eba2ae5;hb=19478f3efa546378818af103be9c03cd63d9fc54;hp=24a61c0730817ee2745ee8da886b6c647d10c2be;hpb=f630be890494c849981e4fb52ea4740506e92bed;p=lyx.git diff --git a/src/TexRow.h b/src/TexRow.h index 24a61c0730..a4edc6c544 100644 --- a/src/TexRow.h +++ b/src/TexRow.h @@ -5,7 +5,7 @@ * Licence details can be found in the file COPYING. * * \author Matthias Ettrich - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjønnes * \author John Levon * * Full author contact details are available in file CREDITS. @@ -14,19 +14,19 @@ #ifndef TEXROW_H #define TEXROW_H -#include +#include namespace lyx { -/// Represents the correspondence between paragraphs and the generated LaTeX file +/// Represents the correspondence between paragraphs and the generated +/// LaTeX file + class TexRow { public: /// - TexRow() : count(0), lastid(-1), lastpos(-1) {} - - TexRow & operator+= (TexRow const &); + TexRow() : lastid(-1), lastpos(-1), started(false) {} /// Clears structure void reset(); @@ -37,6 +37,9 @@ public: /// Insert node when line is completed void newline(); + /// Insert multiple nodes when zero or more lines are completed + void newlines(int num_lines); + /** * getIdFromRow - find pid and position for a given row * @param row row number to find @@ -49,52 +52,46 @@ public: */ bool getIdFromRow(int row, int & id, int & pos) const; + /** + * getRowFromIdPos - find row containing a given id and pos + * @param id of the paragraph + * @param pos a given position in that paragraph + * @return the row number within the rowlist + */ + int getRowFromIdPos(int id, int pos) const; + /// Returns the number of rows contained - int rows() const { return count; } + int rows() const { return rowlist.size(); } /// an individual id/pos <=> row mapping class RowItem { public: - RowItem(int id, int pos, int row) - : id_(id), pos_(pos), rownumber_(row) + RowItem(int id, int pos) + : id_(id), pos_(pos) {} /// paragraph id - int id() const { - return id_; - } - + int id() const { return id_; } /// set paragraph position - void pos(int p) { - pos_ = p; - } - + void pos(int p) { pos_ = p; } /// paragraph position - int pos() const { - return pos_; - } - - /// row number - int rownumber() const { - return rownumber_; - } + int pos() const { return pos_; } private: RowItem(); int id_; int pos_; - int rownumber_; }; /// - typedef std::list RowList; + typedef std::vector RowList; private: - /// number of lines - unsigned int count; /// container of id/pos <=> row mapping RowList rowlist; /// Last paragraph int lastid; /// Last position int lastpos; + /// Is id/pos already registered for current row? + bool started; };