From 9f73e2e9dc5c5df5a137d64f7be5a6964e109256 Mon Sep 17 00:00:00 2001 From: twanvl Date: Thu, 19 Oct 2006 12:31:51 +0000 Subject: [PATCH] implemented all field types git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@29 0fc631ac-6414-0410-93d0-97cfa31319b6 --- src/data/field.cpp | 19 +++- src/data/field.hpp | 13 +-- src/data/field/boolean.cpp | 35 +++++++ src/data/field/boolean.hpp | 4 + src/data/field/choice.cpp | 183 ++++++++++++++++++++++++++++++++++++- src/data/field/choice.hpp | 48 +++++++--- src/data/field/color.cpp | 65 +++++++++++++ src/data/field/color.hpp | 8 +- src/data/field/image.cpp | 35 ++++++- src/data/field/image.hpp | 10 +- src/data/field/symbol.cpp | 42 +++++++++ src/data/field/symbol.hpp | 11 ++- src/data/field/text.cpp | 14 +-- src/data/field/text.hpp | 7 +- 14 files changed, 448 insertions(+), 46 deletions(-) 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