X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fbuilder%2Fbuilder-set-property.cpp;h=7cd45b6a80132308c1f2eb159d697b7a60323a6b;hp=cd90217f120a534b2cc67c62f6333d39e7b12d12;hb=f3da11c2818c6d17706fbb2417f21b602b3190f5;hpb=df5c192e17a7f8be8df32489111f5e6d09974680 diff --git a/dali-toolkit/internal/builder/builder-set-property.cpp b/dali-toolkit/internal/builder/builder-set-property.cpp index cd90217..7cd45b6 100644 --- a/dali-toolkit/internal/builder/builder-set-property.cpp +++ b/dali-toolkit/internal/builder/builder-set-property.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2015 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,6 +17,8 @@ // EXTERNAL INCLUDES #include +#include +#include #include // INTERNAL INCLUDES @@ -100,7 +102,7 @@ Vector4 HexStringToVector4( const char* s ) /** * A property value type can be forced when its unknown by a disambiguation convention in the json * ie "myarray": [1,2,3,4] ; would be a vector but - * "myarray": {'type-cast':'array', 'value':[1,2,3,4]} would be an array + * "myarray": {"typeCast":"array", "value":[1,2,3,4]} would be an array * @param child The node whos string to search for a disambiguated type * @param value The value to set * @param overrideMap The user overriding constant map @@ -111,7 +113,7 @@ bool Disambiguated(const TreeNode& child, // ConstantLut& constantLut, Dali::Property::Value& value, const Replacement& replacement ) { - OptionalString childType = IsString( IsChild(child, "type-cast") ); + OptionalString childType = IsString( IsChild(child, "typeCast") ); OptionalChild childValue = IsChild(child, "value"); if( childType && childValue && (2 == child.Size()) ) @@ -206,18 +208,6 @@ bool SetPropertyFromNode( const TreeNode& node, Property::Type type, Property::V } break; } - case Property::UNSIGNED_INTEGER: - { - if( OptionalUnsignedInt v = replacer.IsUnsignedInteger( node) ) - { - if( *v >= 0 ) // with a loss of resolution.... - { - value = *v; - done = true; - } - } - break; - } case Property::VECTOR2: { if( OptionalVector2 v = replacer.IsVector2(node) ) @@ -352,24 +342,30 @@ bool SetPropertyFromNode( const TreeNode& node, Property::Type type, Property::V else if(node.Size()) { value = Property::Value(Property::ARRAY); + Property::Array* array = value.GetArray(); + unsigned int i = 0; TreeNode::ConstIterator iter(node.CBegin()); - for( ; i < node.Size(); ++i, ++iter) + + if( array ) { - Property::Value v; - if( SetPropertyFromNode( (*iter).second, v, replacer ) ) + for( ; i < node.Size(); ++i, ++iter) { - value.AppendItem(v); + Property::Value childValue; + if( SetPropertyFromNode( (*iter).second, childValue, replacer ) ) + { + array->PushBack( childValue ); + } } - } - if( value.GetSize() == static_cast(node.Size()) ) - { - done = true; - } - else - { - done = false; + if( array->Count() == node.Size() ) + { + done = true; + } + else + { + done = false; + } } } break; @@ -383,29 +379,34 @@ bool SetPropertyFromNode( const TreeNode& node, Property::Type type, Property::V else if(node.Size()) { value = Property::Value(Property::MAP); + Property::Map* map = value.GetMap(); + unsigned int i = 0; TreeNode::ConstIterator iter(node.CBegin()); - for( ; i < node.Size(); ++i, ++iter) + + if( map ) { - Property::Value v; - if( SetPropertyFromNode( (*iter).second, v, replacer ) ) + for( ; i < node.Size(); ++i, ++iter) { - value.SetValue( (*iter).first, v ); + Property::Value childValue; + if( SetPropertyFromNode( (*iter).second, childValue, replacer ) ) + { + map->Insert( (*iter).first, childValue ); + } } - } - if( value.GetSize() == static_cast(node.Size()) ) - { - done = true; - } - else - { - done = false; + if( map->Count() == node.Size() ) + { + done = true; + } + else + { + done = false; + } } } break; } - case Property::TYPE_COUNT: case Property::NONE: { break; @@ -490,14 +491,18 @@ bool SetPropertyFromNode( const TreeNode& node, Property::Value& value, else { value = Property::Value(Property::ARRAY); - Property::Value v; + Property::Array* array = value.GetArray(); - for(TreeConstIter iter = node.CBegin(); iter != node.CEnd(); ++iter) + if( array ) { - if( SetPropertyFromNode( (*iter).second, v, replacer ) ) + for(TreeConstIter iter = node.CBegin(); iter != node.CEnd(); ++iter) { - value.AppendItem(v); - done = true; + Property::Value childValue; + if( SetPropertyFromNode( (*iter).second, childValue, replacer ) ) + { + array->PushBack( childValue ); + done = true; + } } } } @@ -514,26 +519,36 @@ bool SetPropertyFromNode( const TreeNode& node, Property::Value& value, if( ((*iter).first) == 0 ) { value = Property::Value(Property::ARRAY); - Property::Value v; - for(unsigned int i = 0; i < node.Size(); ++i, ++iter) + Property::Array* array = value.GetArray(); + + if( array ) { - if( SetPropertyFromNode( (*iter).second, v, replacer ) ) + for(unsigned int i = 0; i < node.Size(); ++i, ++iter) { - value.AppendItem(v); - done = true; + Property::Value childValue; + if( SetPropertyFromNode( (*iter).second, childValue, replacer ) ) + { + array->PushBack( childValue ); + done = true; + } } } } else { value = Property::Value(Property::MAP); - Property::Value v; - for(unsigned int i = 0; i < node.Size(); ++i, ++iter) + Property::Map* map = value.GetMap(); + + if( map ) { - if( SetPropertyFromNode( (*iter).second, v, replacer ) ) + for(unsigned int i = 0; i < node.Size(); ++i, ++iter) { - value.SetValue((*iter).first, v); - done = true; + Property::Value childValue; + if( SetPropertyFromNode( (*iter).second, childValue, replacer ) ) + { + map->Insert( (*iter).first, childValue ); + done = true; + } } } }