X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fbuilder%2Fbuilder-set-property.cpp;h=7cd45b6a80132308c1f2eb159d697b7a60323a6b;hb=d43575da616e1370372b1331f47dce36dc4ac145;hp=e02467a3fe261685be6023e13ec2c5ed6a4608ab;hpb=374ed264b6b6ffb8ab7867b135f633986a94b74a;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/builder/builder-set-property.cpp b/dali-toolkit/internal/builder/builder-set-property.cpp index e02467a..7cd45b6 100644 --- a/dali-toolkit/internal/builder/builder-set-property.cpp +++ b/dali-toolkit/internal/builder/builder-set-property.cpp @@ -1,24 +1,32 @@ -// -// Copyright (c) 2014 Samsung Electronics Co., Ltd. -// -// Licensed under the Flora License, Version 1.0 (the License); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://floralicense.org/license/ -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an AS IS BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// +/* + * 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// EXTERNAL INCLUDES +#include +#include +#include +#include // INTERNAL INCLUDES #include #include #include + namespace Dali { @@ -94,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 @@ -105,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()) ) @@ -200,18 +208,6 @@ bool SetPropertyFromNode( const TreeNode& node, Property::Type type, Property::V } break; } - case Property::UNSIGNED_INTEGER: - { - if( OptionalInteger v = replacer.IsInteger(node) ) - { - if( *v >= 0 ) // with a loss of resolution.... - { - value = *v; - done = true; - } - } - break; - } case Property::VECTOR2: { if( OptionalVector2 v = replacer.IsVector2(node) ) @@ -244,6 +240,12 @@ bool SetPropertyFromNode( const TreeNode& node, Property::Type type, Property::V value = HexStringToVector4( &(*s)[1] ); done = true; } + else if( Dali::ColorController::Get() ) + { + Vector4 color; + done = Dali::ColorController::Get().RetrieveColor( *s, color ); + value = color; + } } else if( TreeNode::OBJECT == node.GetType() ) { @@ -340,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; @@ -371,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; @@ -478,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; + } } } } @@ -502,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; + } } } }