X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=plugins%2Fdali-script-v8%2Fsrc%2Fobject%2Fproperty-value-wrapper.cpp;h=8469d7f1e106577ac07db496c233e7c9768f25d1;hb=ef5357cfd908303f109e1e0b0648e8997efe1a2f;hp=0b70084a33043dc361c8e4d07012062ac8bf8f9f;hpb=456a3e43364ba389325170d8355384bbd3f6dd6c;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/plugins/dali-script-v8/src/object/property-value-wrapper.cpp b/plugins/dali-script-v8/src/object/property-value-wrapper.cpp index 0b70084..8469d7f 100644 --- a/plugins/dali-script-v8/src/object/property-value-wrapper.cpp +++ b/plugins/dali-script-v8/src/object/property-value-wrapper.cpp @@ -562,7 +562,7 @@ Dali::Property::Value PropertyValueWrapper::VectorOrMatrixFromV8Array( v8::Isola } if(16 == len ) { - ret = Dali::Matrix( out[0] ); + ret = Dali::Matrix( out ); } else if ( 9 == len ) { @@ -675,6 +675,10 @@ Dali::Property::Value PropertyValueWrapper::ExtractPropertyValue( v8::Isolate* i { daliPropertyValue = Dali::Property::Value( v8Value->Int32Value() ) ;//static_cast( V8Utils::GetNumberValue( isolate, v8Value) )); } + else if( V8Utils::IsStringPrimitiveOrObject( v8Value) ) // Take string as value for properties that internally convert the string to an enum + { + daliPropertyValue = Dali::Property::Value( V8Utils::GetStringValue( isolate, v8Value) ); + } break; } case Dali::Property::STRING: @@ -754,14 +758,31 @@ Dali::Property::Value PropertyValueWrapper::ExtractPropertyValue( v8::Isolate* i daliPropertyValue = ArrayFromV8Array( isolate, v8Value ); break; } + case Dali::Property::MAP: + { + if( v8Value->IsObject() ) + { + v8::Local object = v8::Handle::Cast(v8Value); + Dali::Property::Map propertyMap = V8Utils::GetPropertyMapFromObject(isolate, object); + daliPropertyValue = Dali::Property::Value( propertyMap ); + } + else if( V8Utils::IsStringPrimitiveOrObject( v8Value) ) + { + // There are special cases where a property with property map type can accept a string value, + // so we do the additional check here. + daliPropertyValue = Dali::Property::Value( V8Utils::GetStringValue( isolate, v8Value) ); + } + + break; + } case Dali::Property::NONE: default: { break; } - } // switch type + } // switch type - return daliPropertyValue; + return daliPropertyValue; } void PropertyValueWrapper::NewRotation( const v8::FunctionCallbackInfo< v8::Value >& args)