From a8170e10f0342226f3f1d2b9878fa3242d95d17e Mon Sep 17 00:00:00 2001 From: cxl Date: Sat, 10 Mar 2012 15:31:06 +0000 Subject: [PATCH] Core: some Xmlization moved to rich Value types git-svn-id: svn://ultimatepp.org/upp/trunk@4674 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/Core/Color.cpp | 13 +++++++++++++ uppsrc/Core/Color.h | 1 + uppsrc/Core/Gtypes.h | 7 +++++-- uppsrc/Core/JSON.cpp | 8 -------- uppsrc/Core/JSON.h | 1 - uppsrc/Core/ValueUtil.cpp | 2 +- uppsrc/Core/Xmlize.cpp | 2 +- uppsrc/Core/Xmlize.h | 2 +- 8 files changed, 22 insertions(+), 14 deletions(-) diff --git a/uppsrc/Core/Color.cpp b/uppsrc/Core/Color.cpp index c0cd439b2..16aaf91fd 100644 --- a/uppsrc/Core/Color.cpp +++ b/uppsrc/Core/Color.cpp @@ -97,6 +97,19 @@ void Color::Jsonize(JsonIO& jio) *this = Color(r, g, b); } +void Color::Xmlize(XmlIO& xio) +{ + int r = GetR(); + int g = GetG(); + int b = GetB(); + xio + .Attr("red", r) + .Attr("green", g) + .Attr("blue", b) + ; + *this = Color(r, g, b); +} + RGBA operator*(int alpha, Color c) { RGBA r; diff --git a/uppsrc/Core/Color.h b/uppsrc/Core/Color.h index bf162f2ff..60cdf89b6 100644 --- a/uppsrc/Core/Color.h +++ b/uppsrc/Core/Color.h @@ -46,6 +46,7 @@ public: void Serialize(Stream& s) { s % color; } void Jsonize(JsonIO& jio); + void Xmlize(XmlIO& xio); Color() { SetNull(); } Color(int r, int g, int b) { color = RGB(r, g, b); } diff --git a/uppsrc/Core/Gtypes.h b/uppsrc/Core/Gtypes.h index 8956a0b5c..d3c1191d0 100644 --- a/uppsrc/Core/Gtypes.h +++ b/uppsrc/Core/Gtypes.h @@ -82,6 +82,7 @@ struct Size_ : Moveable< Size_ > { void Serialize(Stream& s) { s % cx % cy; } void Jsonize(JsonIO& jio) { jio("cx", cx)("cy", cy); } + void Xmlize(XmlIO& xio) { xio.Attr("cx", cx).Attr("cy", cy); } #ifdef PLATFORM_WIN32 operator SIZE*() { ASSERT(sizeof(*this) == sizeof(SIZE)); return (SIZE*)this; } @@ -190,6 +191,7 @@ struct Point_ : Moveable< Point_ > { void Serialize(Stream& s) { s % x % y; } void Jsonize(JsonIO& jio) { jio("x", x)("y", y); } + void Xmlize(XmlIO& xio) { xio.Attr("x", x).Attr("y", y); } #ifdef PLATFORM_WIN32 operator POINT*() { ASSERT(sizeof(*this) == sizeof(POINT)); return (POINT*)this; } @@ -368,8 +370,9 @@ struct Rect_ : Moveable< Rect_ > { operator Value() const { return RichValue(*this); } /*explicit */Rect_(const Value& src) { *this = RichValue::Extract(src); } - void Serialize(Stream& s) { s % left % top % right % bottom; } - void Jsonize(JsonIO& jio) { jio("left", left)("top", top)("right", right)("bottom", bottom); } + void Serialize(Stream& s) { s % left % top % right % bottom; } + void Jsonize(JsonIO& jio) { jio("left", left)("top", top)("right", right)("bottom", bottom); } + void Xmlize(XmlIO& xio) { xio.Attr("left", left).Attr("top", top).Attr("right", right).Attr("bottom", bottom); } #ifdef PLATFORM_WIN32 operator const RECT*() const { ASSERT(sizeof(*this) == sizeof(RECT)); return (RECT*)this; } diff --git a/uppsrc/Core/JSON.cpp b/uppsrc/Core/JSON.cpp index 9edc5a035..6923113a2 100644 --- a/uppsrc/Core/JSON.cpp +++ b/uppsrc/Core/JSON.cpp @@ -304,12 +304,4 @@ template<> void Jsonize(JsonIO& io, Time& var) var.year, var.month, var.day, var.hour, var.minute, var.second)); } -template<> void Jsonize(JsonIO& io, Complex& var) -{ - double r = var.real(); - double i = var.imag(); - io("real", r)("imag", i); - var = Complex(r, i); -} - END_UPP_NAMESPACE diff --git a/uppsrc/Core/JSON.h b/uppsrc/Core/JSON.h index d1a6fd2e9..63ae408fd 100644 --- a/uppsrc/Core/JSON.h +++ b/uppsrc/Core/JSON.h @@ -182,7 +182,6 @@ template<> void Jsonize(JsonIO& io, String& var); template<> void Jsonize(JsonIO& io, WString& var); template<> void Jsonize(JsonIO& io, Date& var); template<> void Jsonize(JsonIO& io, Time& var); -template<> void Jsonize(JsonIO& io, Complex& var); template void JsonizeArray(JsonIO& io, T& array) diff --git a/uppsrc/Core/ValueUtil.cpp b/uppsrc/Core/ValueUtil.cpp index e9d679b60..587ddae49 100644 --- a/uppsrc/Core/ValueUtil.cpp +++ b/uppsrc/Core/ValueUtil.cpp @@ -538,7 +538,7 @@ void Complex::Xmlize(XmlIO& xio) { double r, i; r = real(); i = imag(); - xio.Attr("real", r).Attr("image", i); + xio.Attr("real", r).Attr("imag", i); *this = C(r, i); } diff --git a/uppsrc/Core/Xmlize.cpp b/uppsrc/Core/Xmlize.cpp index eeeaa7035..5187eaca5 100644 --- a/uppsrc/Core/Xmlize.cpp +++ b/uppsrc/Core/Xmlize.cpp @@ -153,6 +153,7 @@ VALUE_XMLIZE(byte); VALUE_XMLIZE(Time); VALUE_XMLIZE(Date); +#ifndef SVO_VALUE template void XmlizePoint_(XmlIO& xml, T& p) { @@ -211,7 +212,6 @@ void Xmlize(XmlIO& xml, Color& c) c = Color(r, g, b); } -#ifndef SVO_VALUE typedef void (*ValueXmlizer)(XmlIO& xml, Value& v); VectorMap& ValueXmlizeMap() diff --git a/uppsrc/Core/Xmlize.h b/uppsrc/Core/Xmlize.h index e36cfea9e..89b18931b 100644 --- a/uppsrc/Core/Xmlize.h +++ b/uppsrc/Core/Xmlize.h @@ -125,6 +125,7 @@ template<> void Xmlize(XmlIO& xml, int16& var); template<> void Xmlize(XmlIO& xml, int64& var); template<> void Xmlize(XmlIO& xml, byte& var); +#ifndef SVO_VALUE template<> void Xmlize(XmlIO& xml, Point& p); template<> void Xmlize(XmlIO& xml, Point16& p); template<> void Xmlize(XmlIO& xml, Point64& p); @@ -142,7 +143,6 @@ template<> void Xmlize(XmlIO& xml, Rectf& r); template<> void Xmlize(XmlIO& xml, Color& c); -#ifndef SVO_VALUE template<> void Xmlize(XmlIO& xml, Value& v); #endif