From 1541d57c1ab7d9f814b58911bccd6aafafeeb61d Mon Sep 17 00:00:00 2001 From: twanvl Date: Thu, 8 Jan 2009 14:19:17 +0000 Subject: [PATCH] use font settings for drawing multiple choice text labels, spacing and direction are scriptable. git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1298 0fc631ac-6414-0410-93d0-97cfa31319b6 --- src/data/field/multiple_choice.cpp | 6 ++++++ src/data/field/multiple_choice.hpp | 6 ++++-- src/mse.vcproj | 13 ++++++++++--- src/render/value/multiple_choice.cpp | 5 +++-- src/script/scriptable.cpp | 2 ++ src/script/scriptable.hpp | 1 + 6 files changed, 26 insertions(+), 7 deletions(-) diff --git a/src/data/field/multiple_choice.cpp b/src/data/field/multiple_choice.cpp index 4eef6a9e..8564d2ce 100644 --- a/src/data/field/multiple_choice.cpp +++ b/src/data/field/multiple_choice.cpp @@ -39,6 +39,12 @@ IMPLEMENT_REFLECTION(MultipleChoiceStyle) { REFLECT(spacing); } +int MultipleChoiceStyle::update(Context& ctx) { + return ChoiceStyle::update(ctx) + | direction.update(ctx) * CHANGE_OTHER + | spacing.update(ctx) * CHANGE_OTHER; +} + // ----------------------------------------------------------------------------- : MultipleChoiceValue IMPLEMENT_REFLECTION_NAMELESS(MultipleChoiceValue) { diff --git a/src/data/field/multiple_choice.hpp b/src/data/field/multiple_choice.hpp index 25e544b0..2e0daeb3 100644 --- a/src/data/field/multiple_choice.hpp +++ b/src/data/field/multiple_choice.hpp @@ -36,8 +36,10 @@ class MultipleChoiceStyle : public ChoiceStyle { MultipleChoiceStyle(const MultipleChoiceFieldP& field); DECLARE_STYLE_TYPE(MultipleChoice); - Direction direction; ///< In what direction are choices layed out? - double spacing; ///< Spacing between choices (images) in pixels + Scriptable direction; ///< In what direction are choices layed out? + Scriptable spacing; ///< Spacing between choices (images) in pixels + + virtual int update(Context&); }; // ----------------------------------------------------------------------------- : MultipleChoiceValue diff --git a/src/mse.vcproj b/src/mse.vcproj index 46d5bcd7..cca89ff4 100644 --- a/src/mse.vcproj +++ b/src/mse.vcproj @@ -3950,9 +3950,6 @@ - - @@ -3990,6 +3987,16 @@ RelativePath="..\data\magic.mse-game\word_lists"> + + + + + + diff --git a/src/render/value/multiple_choice.cpp b/src/render/value/multiple_choice.cpp index 1afad23c..5843fb1e 100644 --- a/src/render/value/multiple_choice.cpp +++ b/src/render/value/multiple_choice.cpp @@ -74,9 +74,10 @@ void MultipleChoiceValueViewer::drawChoice(RotatedDC& dc, RealPoint& pos, const if (style().render_style & RENDER_TEXT) { // draw text String text = tr(getStylePackage(), choice, capitalize_sentence); + dc.SetFont(style().font,1); RealSize text_size = dc.GetTextExtent(text); - dc.DrawText(text, align_in_rect(ALIGN_MIDDLE_LEFT, text_size, - RealRect(pos + RealSize(size.width + 1, 0), RealSize(0,size.height)))); + RealPoint text_pos = align_in_rect(ALIGN_MIDDLE_LEFT, text_size, RealRect(pos.x + size.width + 1, pos.y, 0,size.height)); + dc.DrawTextWithShadow(text, style().font, pos); size = add_horizontal(size, text_size); } // next position diff --git a/src/script/scriptable.cpp b/src/script/scriptable.cpp index 6f343063..64105fac 100644 --- a/src/script/scriptable.cpp +++ b/src/script/scriptable.cpp @@ -15,6 +15,7 @@ #include Alignment from_string(const String&); +bool parse_enum(const String&,Direction&); DECLARE_TYPEOF_COLLECTION(ScriptParseError); @@ -30,6 +31,7 @@ void store(const ScriptValueP& val, Defaultable& var) { var.assign(*val) void store(const ScriptValueP& val, Defaultable& var) { var.assign((AColor)*val); } void store(const ScriptValueP& val, Defaultable& var) { var.assign(*val); } void store(const ScriptValueP& val, Alignment& var) { var = from_string(val->toString()); } +void store(const ScriptValueP& val, Direction& var) { parse_enum(val->toString(),var); } // ----------------------------------------------------------------------------- : OptionalScript diff --git a/src/script/scriptable.hpp b/src/script/scriptable.hpp index 22310e78..c8231940 100644 --- a/src/script/scriptable.hpp +++ b/src/script/scriptable.hpp @@ -33,6 +33,7 @@ void store(const ScriptValueP& val, AColor& var); void store(const ScriptValueP& val, Defaultable& var); void store(const ScriptValueP& val, Defaultable& var); void store(const ScriptValueP& val, Alignment& var); +void store(const ScriptValueP& val, Direction& var); // ----------------------------------------------------------------------------- : OptionalScript