3 * This file is part of LyX, the document processor.
4 * Licence details can be found in the file COPYING.
6 * \author Matthias Ettrich
7 * \author Lars Gullik Bjønnes
10 * Full author contact details are available in file CREDITS.
17 #include "support/debug.h"
33 void TexRow::start(int id, int pos)
40 void TexRow::newline()
42 int const id = lastid;
43 RowList::value_type tmp(id, lastpos);
44 rowlist.push_back(tmp);
47 void TexRow::newlines(int num_lines)
49 for (int i = 0; i < num_lines; ++i) {
54 bool TexRow::getIdFromRow(int row, int & id, int & pos) const
56 if (row <= 0 || row > int(rowlist.size())) {
62 id = rowlist[row - 1].id();
63 pos = rowlist[row - 1].pos();
68 int TexRow::getRowFromIdPos(int id, int pos) const
72 //for (unsigned int i=0; i<rowlist.size(); i++)
73 //lyxerr<<i<<" (id,pos):\t"<<rowlist[i].id()<<" "<<rowlist[i].pos()<<"\n";
75 // this loop finds the last *nonempty* row with the same id
76 // and position <= pos
77 RowList::const_iterator bestrow = rowlist.begin();
78 RowList::const_iterator it = rowlist.begin();
79 RowList::const_iterator const end = rowlist.end();
80 for (; it != end; ++it) {
81 if (it->id() == id && it->pos() <= pos) {
83 if (bestrow->id() != id || it->pos() > bestrow->pos())
89 return rowlist.size();
90 return distance(rowlist.begin(), bestrow);