diff --git a/src/data/field.cpp b/src/data/field.cpp index 84577424..58365253 100644 --- a/src/data/field.cpp +++ b/src/data/field.cpp @@ -53,10 +53,13 @@ shared_ptr read_new(Reader& reader) { // there must be a type specified String type; reader.handle(_("type"), type); - if (type == _("text")) { - return new_shared(); - } else { - //return new_shared(); + if (type == _("text")) return new_shared(); + else if (type == _("choice")) return new_shared(); + else if (type == _("boolean")) return new_shared(); + else if (type == _("image")) return new_shared(); + else if (type == _("symbol")) return new_shared(); + else if (type == _("color")) return new_shared(); + else { throw ParseError(_("Unsupported field type: '") + type + _("'")); } } @@ -68,6 +71,12 @@ shared_ptr read_new(Reader& reader) { Style::~Style() {} IMPLEMENT_REFLECTION(Style) { + REFLECT(z_index); + REFLECT(left); + REFLECT(top); + REFLECT(width); + REFLECT(height); + REFLECT(visible); } void initObject(const FieldP& field, StyleP& style) { @@ -78,7 +87,7 @@ void initObject(const FieldP& field, StyleP& style) { Value::~Value() {} -IMPLEMENT_REFLECTION(Value) { +IMPLEMENT_REFLECTION_NAMELESS(Value) { } void initObject(const FieldP& field, ValueP& value) { diff --git a/src/data/field.hpp b/src/data/field.hpp index c05bb967..b55b58c1 100644 --- a/src/data/field.hpp +++ b/src/data/field.hpp @@ -12,6 +12,7 @@ #include #include #include +#include