diff --git a/src/Tizen.NUI.Extension/Tizen.NUI.Extension.csproj b/src/Tizen.NUI.Extension/Tizen.NUI.Extension.csproj index 4d078cb95e2..d9a4bc185dd 100644 --- a/src/Tizen.NUI.Extension/Tizen.NUI.Extension.csproj +++ b/src/Tizen.NUI.Extension/Tizen.NUI.Extension.csproj @@ -14,4 +14,7 @@ + + + diff --git a/src/Tizen.NUI/src/internal/Common/PropertyHelper.cs b/src/Tizen.NUI/src/internal/Common/PropertyHelper.cs index 2d890516139..2084d6f8822 100755 --- a/src/Tizen.NUI/src/internal/Common/PropertyHelper.cs +++ b/src/Tizen.NUI/src/internal/Common/PropertyHelper.cs @@ -158,7 +158,7 @@ private static object ObjectColorToVector4(object value) return new Vector4(colorValue.R, colorValue.G, colorValue.B, colorValue.A); } - return null; + return value is UIColor ? value : null; } private static PropertyValue PropertyValueColorToVector4(PropertyValue value) diff --git a/src/Tizen.NUI/src/public/Common/PropertyValue.cs b/src/Tizen.NUI/src/public/Common/PropertyValue.cs index ca5f076d2de..ae5cf5c5b8c 100755 --- a/src/Tizen.NUI/src/public/Common/PropertyValue.cs +++ b/src/Tizen.NUI/src/public/Common/PropertyValue.cs @@ -312,7 +312,7 @@ public bool NotEqualTo(PropertyValue rhs) /// /// Hidden API (Inhouse API). - /// Dispose. + /// Dispose. /// /// /// Following the guide of https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/implementing-dispose. @@ -451,6 +451,32 @@ static public PropertyValue CreateFromObject(System.Object obj) { value = new PropertyValue((PropertyMap)obj); } + else if (type.Equals(typeof(UIColor))) + { + UIColor color = ((UIColor)obj); + value = new PropertyValue(color.R, color.G, color.B, color.A); + } + else if (type.Equals(typeof(UICorner))) + { + UICorner corner = ((UICorner)obj); + value = new PropertyValue(corner.TopLeft, corner.TopRight, corner.BottomRight, corner.BottomLeft); + } + else if (type.Equals(typeof(UIExtents))) + { + // TODO Do not create Extents instance + using Extents extents = ((UIExtents)obj).ToReferenceType(); + value = new PropertyValue(extents); + } + else if (type.Equals(typeof(UIVector2))) + { + UIVector2 vector2 = ((UIVector2)obj); + value = new PropertyValue(vector2.X, vector2.Y); + } + else if (type.Equals(typeof(UIVector3))) + { + UIVector3 vector3 = ((UIVector3)obj); + value = new PropertyValue(vector3.X, vector3.Y, vector3.Z); + } else { throw new global::System.InvalidOperationException("Unimplemented type for Property Value :" + type.Name); @@ -564,6 +590,32 @@ static public PropertyValue CreateFromObject(System.Object obj) { value = Interop.PropertyValue.NewPropertyValueMap(PropertyMap.getCPtr((PropertyMap)(obj))); } + else if (type.Equals(typeof(UIColor))) + { + UIColor color = ((UIColor)obj); + value = Interop.PropertyValue.NewPropertyValueVector4Componentwise(color.R, color.G, color.B, color.A); + } + else if (type.Equals(typeof(UICorner))) + { + UICorner corner = ((UICorner)obj); + value = Interop.PropertyValue.NewPropertyValueVector4Componentwise(corner.TopLeft, corner.TopRight, corner.BottomRight, corner.BottomLeft); + } + else if (type.Equals(typeof(UIExtents))) + { + // TODO Do not create Extents instance + using Extents extents = ((UIExtents)obj).ToReferenceType(); + value = Interop.PropertyValue.NewPropertyValueExtents(Extents.getCPtr(extents)); + } + else if (type.Equals(typeof(UIVector2))) + { + UIVector2 vector2 = ((UIVector2)obj); + value = Interop.PropertyValue.NewPropertyValueVector2Componentwise(vector2.X, vector2.Y); + } + else if (type.Equals(typeof(UIVector3))) + { + UIVector3 vector3 = ((UIVector3)obj); + value = Interop.PropertyValue.NewPropertyValueVector3Componentwise(vector3.X, vector3.Y, vector3.Z); + } else { throw new global::System.InvalidOperationException("Unimplemented type for Property Value :" + type.Name);