X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Ftextpainter.C;h=224cca9cec5ab3cb4d80f03a524dfa1de2a52f6c;hb=57501b93064a6deed43e415beed45606054d86ad;hp=b1ecc52cab7868d43ab28e6a80d5733ab5698ecf;hpb=99cb25781ac599f3aeefb5b391b95ed26b74405f;p=lyx.git diff --git a/src/mathed/textpainter.C b/src/mathed/textpainter.C index b1ecc52cab..224cca9cec 100644 --- a/src/mathed/textpainter.C +++ b/src/mathed/textpainter.C @@ -1,8 +1,21 @@ +/** + * \file textpainter.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author André Pönitz + * + * Full author contact details are available in file CREDITS. + */ + +#include + #include "textpainter.h" +#include "support/std_ostream.h" TextPainter::TextPainter(int xmax, int ymax) - : xmax_(xmax), ymax_(ymax), data_((xmax_ + 1) * (ymax_ + 1)) + : xmax_(xmax), ymax_(ymax), data_(xmax_ * (ymax_ + 1), ' ') {} @@ -20,6 +33,43 @@ char TextPainter::at(int x, int y) const void TextPainter::draw(int x, int y, char const * str) { - for (int i = 0; *str; ++i, ++str) + //cerr << "drawing string '" << str << "' at " << x << ',' << y << endl; + for (int i = 0; *str && x + i < xmax_; ++i, ++str) at(x + i, y) = *str; + //show(); +} + + +void TextPainter::horizontalLine(int x, int y, int n, char c) +{ + for (int i = 0; i < n && i + x < xmax_; ++i) + at(x + i, y) = c; +} + + +void TextPainter::verticalLine(int x, int y, int n, char c) +{ + for (int i = 0; i < n && i + y < ymax_; ++i) + at(x, y + i) = c; +} + + +void TextPainter::draw(int x, int y, char c) +{ + //cerr << "drawing char '" << c << "' at " << x << ',' << y << endl; + at(x, y) = c; + //show(); +} + + +void TextPainter::show(std::ostream & os, int offset) const +{ + os << '\n'; + for (int j = 0; j <= ymax_; ++j) { + for (int i = 0; i < offset; ++i) + os << ' '; + for (int i = 0; i < xmax_; ++i) + os << at(i, j); + os << '\n'; + } }