mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-10 04:57:00 -04:00
changed <line> semantics, usage is now <line>\n</line>
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@149 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
@@ -53,10 +53,10 @@ double TextElements::minScale() const {
|
||||
struct TextElementsFromString {
|
||||
// What formatting is enabled?
|
||||
int bold, italic, symbol;
|
||||
int soft, kwpph;
|
||||
int soft, kwpph, line;
|
||||
|
||||
TextElementsFromString()
|
||||
: bold(0), italic(0), symbol(0), soft(0), kwpph(0) {}
|
||||
: bold(0), italic(0), symbol(0), soft(0), kwpph(0), line(0) {}
|
||||
|
||||
// read TextElements from a string
|
||||
void fromString(TextElements& te, const String& text, size_t start, size_t end, const TextStyle& style, Context& ctx) {
|
||||
@@ -77,16 +77,9 @@ struct TextElementsFromString {
|
||||
else if (is_substr(text, tag_start, _("</sep-soft"))) soft -= 1;
|
||||
else if (is_substr(text, tag_start, _( "<atom-kwpph"))) kwpph += 1;
|
||||
else if (is_substr(text, tag_start, _("</atom-kwpph"))) kwpph -= 1;
|
||||
else if (is_substr(text, tag_start, _("<line"))) {
|
||||
// horizontal line
|
||||
te.elements.push_back(new_shared3<HorizontalLineTextElement>(text, tag_start, pos));
|
||||
/* } else if (is_substr(text, start, _("<error"))) {
|
||||
// underline with wavy 'error' indicator
|
||||
size_t end = match_close_tag(text, tag_start);
|
||||
shared_ptr<ErrorTextElement> e(new ErrorTextElement(text, pos, end));
|
||||
fromString(e->elements, text, pos, end, style, ctx);
|
||||
pos = skip_tag(text, end);
|
||||
*/ } else if (is_substr(text, tag_start, _("<atom"))) {
|
||||
else if (is_substr(text, tag_start, _( "<line"))) line += 1;
|
||||
else if (is_substr(text, tag_start, _("</line"))) line -= 1;
|
||||
else if (is_substr(text, tag_start, _("<atom"))) {
|
||||
// 'atomic' indicator
|
||||
size_t end = match_close_tag(text, tag_start);
|
||||
shared_ptr<AtomTextElement> e(new AtomTextElement(text, pos, end));
|
||||
@@ -107,7 +100,7 @@ struct TextElementsFromString {
|
||||
if (symbol > 0 && style.symbol_font.valid()) {
|
||||
te.elements.push_back(new_shared5<SymbolTextElement>(text, pos, pos + 1, style.symbol_font, &ctx));
|
||||
} else {
|
||||
te.elements.push_back(new_shared4<FontTextElement> (text, pos, pos + 1, style.font.make(bold > 0, italic > 0)));
|
||||
te.elements.push_back(new_shared5<FontTextElement> (text, pos, pos + 1, style.font.make(bold > 0, italic > 0), line > 0 ? BREAK_LINE : BREAK_HARD));
|
||||
}
|
||||
}
|
||||
pos += 1;
|
||||
|
||||
@@ -126,17 +126,18 @@ class SimpleTextElement : public TextElement {
|
||||
/// A text element that uses a normal font
|
||||
class FontTextElement : public SimpleTextElement {
|
||||
public:
|
||||
FontTextElement(const String& text, size_t start ,size_t end, const FontP& font)
|
||||
FontTextElement(const String& text, size_t start ,size_t end, const FontP& font, LineBreak break_style)
|
||||
: SimpleTextElement(text, start, end)
|
||||
, font(font)
|
||||
, font(font), break_style(break_style)
|
||||
{}
|
||||
|
||||
virtual void draw (RotatedDC& dc, double scale, const RealRect& rect, const double* xs, DrawWhat what, size_t start, size_t end) const;
|
||||
virtual void getCharInfo(RotatedDC& dc, double scale, vector<CharInfo>& out) const;
|
||||
virtual double minScale() const;
|
||||
private:
|
||||
FontP font;
|
||||
DrawWhat draw_as;
|
||||
FontP font;
|
||||
DrawWhat draw_as;
|
||||
LineBreak break_style;
|
||||
};
|
||||
|
||||
/// A text element that uses a symbol font
|
||||
@@ -179,7 +180,7 @@ class AtomTextElement : public CompoundTextElement {
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------- : Other text elements
|
||||
|
||||
/*
|
||||
/// A text element that displays a horizontal separator line
|
||||
class HorizontalLineTextElement : public TextElement {
|
||||
public:
|
||||
@@ -189,21 +190,7 @@ class HorizontalLineTextElement : public TextElement {
|
||||
virtual void getCharInfo(RotatedDC& dc, double scale, vector<CharInfo>& out) const;
|
||||
virtual double minScale() const;
|
||||
};
|
||||
|
||||
/*
|
||||
// ----------------------------------------------------------------------------- : CompoundTextElement
|
||||
|
||||
/// A TextElement consisting of sub elements
|
||||
class CompoundTextElement : public TextElement {
|
||||
public:
|
||||
CompoundTextElement(const String& text, size_t start ,size_t end) : TextElement(text, start, end) {}
|
||||
|
||||
virtual void draw (RotatedDC& dc, double scale, const RealRect& rect, const double* xs, DrawWhat what, size_t start, size_t end) const;
|
||||
virtual RealSize charSize(RotatedDC& dc, double scale, size_t index) const;
|
||||
|
||||
private:
|
||||
TextElements elements;
|
||||
};
|
||||
*/
|
||||
|
||||
// ----------------------------------------------------------------------------- : EOF
|
||||
#endif
|
||||
|
||||
@@ -44,7 +44,7 @@ void FontTextElement::getCharInfo(RotatedDC& dc, double scale, vector<CharInfo>&
|
||||
Char c = text.GetChar(i);
|
||||
RealSize s = dc.GetTextExtent(text.substr(start, i - start + 1));
|
||||
out.push_back(CharInfo(RealSize(s.width - prev_width, s.height),
|
||||
c == _('\n') ? BREAK_HARD :
|
||||
c == _('\n') ? break_style :
|
||||
c == _(' ') ? BREAK_SOFT : BREAK_NO
|
||||
));
|
||||
prev_width = s.width;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//+----------------------------------------------------------------------------+
|
||||
/*//+----------------------------------------------------------------------------+
|
||||
//| Description: Magic Set Editor - Program to make Magic (tm) cards |
|
||||
//| Copyright: (C) 2001 - 2006 Twan van Laarhoven |
|
||||
//| License: GNU General Public License 2 or later (see file COPYING) |
|
||||
@@ -21,4 +21,4 @@ void HorizontalLineTextElement::getCharInfo(RotatedDC& dc, double scale, vector<
|
||||
double HorizontalLineTextElement::minScale() const {
|
||||
return 0; // we don't care about scaling
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user