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
);
48 bool TexRow::getIdFromRow(int row
, int & id
, int & pos
) const
50 if (row
<= 0 || row
> int(rowlist
.size())) {
56 id
= rowlist
[row
- 1].id();
57 pos
= rowlist
[row
- 1].pos();
62 int TexRow::getRowFromIdPos(int id
, int pos
) const
66 // this loop finds the last *nonempty* row with the same id
67 // and position <= pos
68 RowList::const_iterator bestrow
= rowlist
.begin();
69 RowList::const_iterator it
= rowlist
.begin();
70 RowList::const_iterator
const end
= rowlist
.end();
71 for (; it
!= end
; ++it
) {
72 if (it
->id() == id
&& it
->pos() <= pos
) {
74 if (bestrow
->id() != id
|| it
->pos() > bestrow
->pos())
80 return rowlist
.size();
81 return distance(rowlist
.begin(), bestrow
);