summaryrefslogtreecommitdiff
path: root/src/cat/TPTSTypes.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/cat/TPTSTypes.cpp')
-rw-r--r--src/cat/TPTSTypes.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/cat/TPTSTypes.cpp b/src/cat/TPTSTypes.cpp
index 87d1097..0a3e940 100644
--- a/src/cat/TPTSTypes.cpp
+++ b/src/cat/TPTSTypes.cpp
@@ -48,6 +48,13 @@ AnyType::operator StringType()
{
return StringType(*((std::string*)value));
}
+ else if (type == TypePoint && value)
+ {
+ ui::Point thisPoint = *((ui::Point*)value);
+ std::stringstream pointStream;
+ pointStream << thisPoint.X << "," << thisPoint.Y;
+ return StringType(pointStream.str());
+ }
else
throw InvalidConversionException(type, TypeString);
@@ -61,10 +68,13 @@ AnyType::operator PointType()
}
else if(type == TypeString)
{
- ui::Point thisPoint = *((ui::Point*)value);
- std::stringstream pointStream;
- pointStream << thisPoint.X << "," << thisPoint.Y;
- return StringType(pointStream.str());
+ std::stringstream pointStream(*((std::string*)value));
+ int x, y;
+ char comma;
+ pointStream >> x >> comma >> y;
+ if (pointStream.fail() || comma != ',')
+ throw InvalidConversionException(type, TypePoint);
+ return PointType(ui::Point(x, y));
}
else
throw InvalidConversionException(type, TypePoint);