+/**
+ * \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 <config.h>
+
#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), ' ')
{}
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';
+ }
}