mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-12 13:37:00 -04:00
59 lines
2.4 KiB
C++
59 lines
2.4 KiB
C++
//+----------------------------------------------------------------------------+
|
|
//| Description: Magic Set Editor - Program to make Magic (tm) cards |
|
|
//| Copyright: (C) 2001 - 2010 Twan van Laarhoven and Sean Hunt |
|
|
//| License: GNU General Public License 2 or later (see file COPYING) |
|
|
//+----------------------------------------------------------------------------+
|
|
|
|
// ----------------------------------------------------------------------------- : Includes
|
|
|
|
#include <util/prec.hpp>
|
|
#include <render/text/element.hpp>
|
|
|
|
// ----------------------------------------------------------------------------- : CompoundTextElement
|
|
|
|
void CompoundTextElement::draw(RotatedDC& dc, double scale, const RealRect& rect, const double* xs, DrawWhat what, size_t start, size_t end) const {
|
|
elements.draw(dc, scale, rect, xs, what, start, end);
|
|
}
|
|
void CompoundTextElement::getCharInfo(RotatedDC& dc, double scale, vector<CharInfo>& out) const {
|
|
elements.getCharInfo(dc, scale, start, end, out);
|
|
}
|
|
double CompoundTextElement::minScale() const {
|
|
return elements.minScale();
|
|
}
|
|
double CompoundTextElement::scaleStep() const {
|
|
return elements.scaleStep();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------- : AtomTextElement
|
|
|
|
void AtomTextElement::draw(RotatedDC& dc, double scale, const RealRect& rect, const double* xs, DrawWhat what, size_t start, size_t end) const {
|
|
if (what & DRAW_ACTIVE) {
|
|
dc.SetPen(*wxTRANSPARENT_PEN);
|
|
dc.SetBrush(Color(210,210,210));
|
|
dc.DrawRectangle(rect);
|
|
}
|
|
CompoundTextElement::draw(dc, scale, rect, xs, what, start, end);
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------- : ErrorTextElement
|
|
|
|
void ErrorTextElement::draw(RotatedDC& dc, double scale, const RealRect& rect, const double* xs, DrawWhat what, size_t start, size_t end) const {
|
|
// Draw wavy underline
|
|
if (what & DRAW_ERRORS) {
|
|
dc.SetPen(*wxRED_PEN);
|
|
RealPoint pos = rect.bottomLeft() - dc.trInvS(RealSize(0,2));
|
|
RealSize dx(dc.trInvS(2), 0), dy(0, dc.trInvS(1));
|
|
while (pos.x + 1 < rect.right()) {
|
|
dc.DrawLine(pos - dy, pos + dx + dy);
|
|
pos += dx;
|
|
dy = -dy;
|
|
}
|
|
if (pos.x < rect.right()) {
|
|
// final piece
|
|
dc.DrawLine(pos - dy, pos + dx * 0.5);
|
|
}
|
|
}
|
|
// Draw the contents
|
|
CompoundTextElement::draw(dc, scale, rect, xs, what, start, end);
|
|
}
|