Add operator<< for Row::Elements

This is useful for debugging.
This commit is contained in:
Jean-Marc Lasgouttes 2021-09-20 17:32:18 +02:00
parent 4b69f5efa7
commit 71c2e2fda6
2 changed files with 17 additions and 4 deletions

View File

@ -275,6 +275,17 @@ ostream & operator<<(ostream & os, Row::Element const & e)
}
ostream & operator<<(ostream & os, Row::Elements const & elts)
{
double x = 0;
for (Row::Element const & e : elts) {
os << "x=" << x << " => " << e << endl;
x += e.full_width();
}
return os;
}
ostream & operator<<(ostream & os, Row const & row)
{
os << " pos: " << row.pos_ << " end: " << row.end_
@ -286,11 +297,11 @@ ostream & operator<<(ostream & os, Row const & row)
<< " separator: " << row.separator
<< " label_hfill: " << row.label_hfill
<< " row_boundary: " << row.right_boundary() << "\n";
// We cannot use the operator above, unfortunately
double x = row.left_margin;
Row::Elements::const_iterator it = row.elements_.begin();
for ( ; it != row.elements_.end() ; ++it) {
os << "x=" << x << " => " << *it << endl;
x += it->full_width();
for (Row::Element const & e : row.elements_) {
os << "x=" << x << " => " << e << endl;
x += e.full_width();
}
return os;
}

View File

@ -378,6 +378,8 @@ private:
bool changebar_ = false;
};
std::ostream & operator<<(std::ostream & os, Row::Elements const & elts);
/**
* Each paragraph is broken up into a number of rows on the screen.