X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=plugins%2Fdali-script-v8%2Fsrc%2Fobject%2Fproperty-value-wrapper.cpp;h=b1606423d920519fa9a193904fbd3b0aaad6aefc;hb=1dbb50c7c99eef4f1771787bbf97bbb023a49c91;hp=8469d7f1e106577ac07db496c233e7c9768f25d1;hpb=9dc39e046394875d17ed30cddcc47572feb924c3;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 8469d7f..b160642 100644 --- a/plugins/dali-script-v8/src/object/property-value-wrapper.cpp +++ b/plugins/dali-script-v8/src/object/property-value-wrapper.cpp @@ -785,6 +785,62 @@ Dali::Property::Value PropertyValueWrapper::ExtractPropertyValue( v8::Isolate* i return daliPropertyValue; } +Dali::Property::Value PropertyValueWrapper::ExtractPropertyValue( v8::Isolate* isolate, v8::Local< v8::Value> v8Value) +{ + v8::HandleScope handleScope( isolate); + + Dali::Property::Value daliPropertyValue; + + // Check if it's a javascript Array + Dali::Property::Value array = VectorOrMatrixFromV8Array( isolate, v8Value ); + + if( V8Utils::IsBooleanPrimitiveOrObject( v8Value ) ) + { + daliPropertyValue = Dali::Property::Value( V8Utils::GetBooleanValue( isolate, v8Value)); + } + else if( V8Utils::IsNumberPrimitiveOrObject( v8Value ) ) + { + daliPropertyValue = Dali::Property::Value( V8Utils::GetNumberValue( isolate, v8Value) ); + } + else if( v8Value->IsInt32() ) + { + daliPropertyValue = Dali::Property::Value( v8Value->Int32Value() ) ; + } + else if( V8Utils::IsStringPrimitiveOrObject( v8Value) ) + { + daliPropertyValue = Dali::Property::Value( V8Utils::GetStringValue( isolate, v8Value) ); + } + else if( array.GetType() == Dali::Property::VECTOR2 + || array.GetType() == Dali::Property::VECTOR3 + || array.GetType() == Dali::Property::VECTOR4 ) + { + daliPropertyValue = array; + } + else if( array.GetType() == Dali::Property::MATRIX ) + { + Dali::Matrix mat = array.Get(); + daliPropertyValue = mat; + } + else if( array.GetType() == Dali::Property::MATRIX3 ) + { + Dali::Matrix3 mat = array.Get(); + daliPropertyValue = mat; + } + else if( array.GetType() == Dali::Property::ARRAY ) + { + daliPropertyValue = ArrayFromV8Array( isolate, v8Value ); + } + else if( v8Value->IsObject() ) + { + // Assume this is a property map + v8::Local object = v8::Handle::Cast(v8Value); + Dali::Property::Map propertyMap = V8Utils::GetPropertyMapFromObject(isolate, object); + daliPropertyValue = Dali::Property::Value( propertyMap ); + } + + return daliPropertyValue; +} + void PropertyValueWrapper::NewRotation( const v8::FunctionCallbackInfo< v8::Value >& args) { v8::Isolate* isolate = args.GetIsolate();