From ab46ce01dc62ba150aa99c0c8d6ea2acec1dba4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Lucas=20Golini?= Date: Thu, 21 Dec 2017 00:27:39 -0300 Subject: [PATCH] Added some XML properties to UIWidget. --HG-- branch : dev --- src/eepp/ui/uiwidget.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/eepp/ui/uiwidget.cpp b/src/eepp/ui/uiwidget.cpp index 83090151c..c1e195b7d 100644 --- a/src/eepp/ui/uiwidget.cpp +++ b/src/eepp/ui/uiwidget.cpp @@ -401,6 +401,32 @@ void UIWidget::endPropertiesTransaction() { } } +static OriginPoint toOriginPoint( std::string val ) { + String::toLowerInPlace( val ); + + if ( "center" == val ) { + return OriginPoint::OriginCenter; + } else if ( "topleft" == val ) { + return OriginPoint::OriginTopLeft; + } else { + std::vector parts = String::split( val, ',' ); + + if ( parts.size() == 2 ) { + Float x = 0; + Float y = 0; + + bool Res1 = String::fromString( x, parts[0] ); + bool Res2 = String::fromString( y, parts[1] ); + + if ( Res1 && Res2 ) { + return OriginPoint( x, y ); + } + } + } + + return OriginPoint::OriginCenter; +} + void UIWidget::loadFromXmlNode( const pugi::xml_node& node ) { beginPropertiesTransaction(); @@ -599,6 +625,14 @@ void UIWidget::loadFromXmlNode( const pugi::xml_node& node ) { setFlags( UI_CLIP_ENABLE ); else unsetFlags( UI_CLIP_ENABLE ); + } else if ( "rotation" == name ) { + setRotation( ait->as_float() ); + } else if ( "scale" == name ) { + setScale( ait->as_float() ); + } else if ( "rotationoriginpoint" == name ) { + setRotationOriginPoint( toOriginPoint( ait->as_string() ) ); + } else if ( "scaleoriginpoint" == name ) { + setScaleOriginPoint( toOriginPoint( ait->as_string() ) ); } }