diff --git a/src/data/field/text.cpp b/src/data/field/text.cpp index 4fdf2ae2..314af951 100644 --- a/src/data/field/text.cpp +++ b/src/data/field/text.cpp @@ -59,7 +59,9 @@ TextStyle::TextStyle(const TextFieldP& field) bool TextStyle::update(Context& ctx) { return Style ::update(ctx) | font .update(ctx) - | symbol_font.update(ctx); + | symbol_font.update(ctx) + | alignment .update(ctx) + | angle .update(ctx); } void TextStyle::initDependencies(Context& ctx, const Dependency& dep) const { Style ::initDependencies(ctx, dep); diff --git a/src/data/field/text.hpp b/src/data/field/text.hpp index c11f3d7c..1b00eb1d 100644 --- a/src/data/field/text.hpp +++ b/src/data/field/text.hpp @@ -66,8 +66,8 @@ class TextStyle : public Style { SymbolFontRef symbol_font; ///< Symbol font for symbols in the text bool always_symbol; ///< Should everything be drawn as symbols? bool allow_formating; ///< Is formating (bold/italic/..) allowed? - Alignment alignment; ///< Alignment inside the box - int angle; ///< Angle of the text inside the box + Scriptable alignment; ///< Alignment inside the box + Scriptable angle; ///< Angle of the text inside the box double padding_left, padding_left_min; ///< Padding double padding_right, padding_right_min; ///< Padding double padding_top, padding_top_min; ///< Padding diff --git a/src/data/keyword.cpp b/src/data/keyword.cpp index 76f44f45..49144775 100644 --- a/src/data/keyword.cpp +++ b/src/data/keyword.cpp @@ -637,6 +637,7 @@ String KeywordDatabase::expand(const String& text, ScriptType KeywordParamValue::type() const { return SCRIPT_STRING; } String KeywordParamValue::typeName() const { return _("keyword parameter"); } + KeywordParamValue::operator String() const { String safe_type = replace_all(replace_all(replace_all(type_name, _("("),_("-")), @@ -644,6 +645,12 @@ KeywordParamValue::operator String() const { _(" "),_("-")); return _("") + value + _(""); } + +KeywordParamValue::operator int() const { return *to_script(value); } // a bit of a hack +KeywordParamValue::operator double() const { return *to_script(value); } +KeywordParamValue::operator Color() const { return *to_script(value); } +int KeywordParamValue::itemCount() const { return to_script(value)->itemCount(); } + ScriptValueP KeywordParamValue::getMember(const String& name) const { if (name == _("type")) return to_script(type_name); if (name == _("separator before")) return to_script(separator_before); diff --git a/src/data/keyword.hpp b/src/data/keyword.hpp index c2628f57..9a5ee689 100644 --- a/src/data/keyword.hpp +++ b/src/data/keyword.hpp @@ -163,6 +163,10 @@ class KeywordParamValue : public ScriptValue { virtual ScriptType type() const; virtual String typeName() const; virtual operator String() const; + virtual operator int() const; + virtual operator double() const; + virtual operator Color() const; + virtual int itemCount() const; virtual ScriptValueP getMember(const String& name) const; }; diff --git a/src/script/scriptable.cpp b/src/script/scriptable.cpp index f576f118..166959f9 100644 --- a/src/script/scriptable.cpp +++ b/src/script/scriptable.cpp @@ -12,6 +12,8 @@ #include