X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Fcommon%2Fproxy-object.cpp;h=6d8603e5eaeccbb5b4c9362b72a856936da0f423;hb=339c654ebfb6edb654d47a837f51056bc4fcf671;hp=801a05530b9a4682eac9f1c0b2ec826370f2bba4;hpb=bc174b8fdc3ec5531690ded3c51ed43d015008cd;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/event/common/proxy-object.cpp b/dali/internal/event/common/proxy-object.cpp index 801a055..6d8603e 100644 --- a/dali/internal/event/common/proxy-object.cpp +++ b/dali/internal/event/common/proxy-object.cpp @@ -750,7 +750,99 @@ void ProxyObject::DeleteRemovedConstraints() ++iter; } } - } +} + +void ProxyObject::SetCustomProperty( Property::Index index, const CustomProperty& entry, const Property::Value& value ) +{ + switch ( entry.type ) + { + case Property::BOOLEAN: + { + AnimatableProperty* property = dynamic_cast< AnimatableProperty* >( entry.GetSceneGraphProperty() ); + DALI_ASSERT_DEBUG( NULL != property ); + + // property is being used in a separate thread; queue a message to set the property + BakeMessage( Stage::GetCurrent()->GetUpdateInterface(), *property, value.Get() ); + break; + } + + case Property::FLOAT: + { + AnimatableProperty* property = dynamic_cast< AnimatableProperty* >( entry.GetSceneGraphProperty() ); + DALI_ASSERT_DEBUG( NULL != property ); + + // property is being used in a separate thread; queue a message to set the property + BakeMessage( Stage::GetCurrent()->GetUpdateInterface(), *property, value.Get() ); + break; + } + + case Property::VECTOR2: + { + AnimatableProperty* property = dynamic_cast< AnimatableProperty* >( entry.GetSceneGraphProperty() ); + DALI_ASSERT_DEBUG( NULL != property ); + + // property is being used in a separate thread; queue a message to set the property + BakeMessage( Stage::GetCurrent()->GetUpdateInterface(), *property, value.Get() ); + break; + } + + case Property::VECTOR3: + { + AnimatableProperty* property = dynamic_cast< AnimatableProperty* >( entry.GetSceneGraphProperty() ); + DALI_ASSERT_DEBUG( NULL != property ); + + // property is being used in a separate thread; queue a message to set the property + BakeMessage( Stage::GetCurrent()->GetUpdateInterface(), *property, value.Get() ); + break; + } + + case Property::VECTOR4: + { + AnimatableProperty* property = dynamic_cast< AnimatableProperty* >( entry.GetSceneGraphProperty() ); + DALI_ASSERT_DEBUG( NULL != property ); + + // property is being used in a separate thread; queue a message to set the property + BakeMessage( Stage::GetCurrent()->GetUpdateInterface(), *property, value.Get() ); + break; + } + + case Property::ROTATION: + { + AnimatableProperty* property = dynamic_cast< AnimatableProperty* >( entry.GetSceneGraphProperty() ); + DALI_ASSERT_DEBUG( NULL != property ); + + // property is being used in a separate thread; queue a message to set the property + BakeMessage( Stage::GetCurrent()->GetUpdateInterface(), *property, value.Get() ); + break; + } + + case Property::MATRIX: + { + AnimatableProperty* property = dynamic_cast< AnimatableProperty* >( entry.GetSceneGraphProperty() ); + DALI_ASSERT_DEBUG( NULL != property ); + + // property is being used in a separate thread; queue a message to set the property + BakeMessage( Stage::GetCurrent()->GetUpdateInterface(), *property, value.Get() ); + break; + } + + case Property::MATRIX3: + { + AnimatableProperty* property = dynamic_cast< AnimatableProperty* >( entry.GetSceneGraphProperty() ); + DALI_ASSERT_DEBUG( NULL != property ); + + // property is being used in a separate thread; queue a message to set the property + BakeMessage( Stage::GetCurrent()->GetUpdateInterface(), *property, value.Get() ); + break; + } + + default: + { + DALI_ASSERT_ALWAYS(false && "Property type enumeration out of bounds"); // should not come here + break; + } + } +} CustomPropertyLookup& ProxyObject::GetCustomPropertyLookup() const {