[NUI] Apply CornerRadius to ImageView (#1571)
authorJiyun Yang <ji.yang@samsung.com>
Wed, 29 Apr 2020 02:47:42 +0000 (11:47 +0900)
committerGitHub <noreply@github.com>
Wed, 29 Apr 2020 02:47:42 +0000 (11:47 +0900)
Signed-off-by: Jiyun Yang <ji.yang@samsung.com>
src/Tizen.NUI/src/public/BaseComponents/ImageView.cs
src/Tizen.NUI/src/public/BaseComponents/View.cs
src/Tizen.NUI/src/public/BaseComponents/ViewInternal.cs

index a6108bf..0d6d39b 100755 (executable)
@@ -928,6 +928,13 @@ namespace Tizen.NUI.BaseComponents
             return ret;
         }
 
+        internal override void UpdateCornerRadius(float value, bool needToListenStateChanged)
+        {
+            base.UpdateCornerRadius(value, needToListenStateChanged);
+
+            UpdateImage(0, null);
+        }
+
         internal ResourceLoadingStatusType GetResourceStatus()
         {
             return (ResourceLoadingStatusType)Interop.View.View_GetVisualResourceStatus(this.swigCPtr, Property.IMAGE);
@@ -1062,6 +1069,11 @@ namespace Tizen.NUI.BaseComponents
 
             temp.Insert(NpatchImageVisualProperty.SynchronousLoading, new PropertyValue(_synchronosLoading));
 
+            if (backgroundExtraData != null && backgroundExtraData.CornerRadius > 0)
+            {
+                temp.Insert(Visual.Property.CornerRadius, new PropertyValue(backgroundExtraData.CornerRadius));
+            }
+
             if (value != null)
             {
                 temp.Insert(key, value);
index 668902c..c82ae83 100755 (executable)
@@ -59,10 +59,10 @@ namespace Tizen.NUI.BaseComponents
         private bool _backgroundImageSynchronosLoading = false;
         private Dictionary<string, Transition> transDictionary = new Dictionary<string, Transition>();
         private string[] transitionNames;
-        private BackgroundExtraData backgroundExtraData;
         private bool controlStatePropagation = false;
 
         internal Size2D sizeSetExplicitly = new Size2D(); // Store size set by API, will be used in place of NaturalSize if not set.
+        internal BackgroundExtraData backgroundExtraData;
 
         static View() {}
 
index 96cd06d..72a9c17 100755 (executable)
@@ -1005,6 +1005,32 @@ namespace Tizen.NUI.BaseComponents
             return (ResourceLoadingStatusType)Interop.View.View_GetVisualResourceStatus(this.swigCPtr, Property.BACKGROUND);
         }
 
+        internal virtual void UpdateCornerRadius(float value, bool needToListenStateChanged)
+        {
+            ControlStateChangeEventInternal -= OnControlStateChangedForCornerRadius;
+
+            if (needToListenStateChanged)
+            {
+                ControlStateChangeEventInternal += OnControlStateChangedForCornerRadius;
+            }
+
+            if (value != 0)
+            {
+                (backgroundExtraData ?? (backgroundExtraData = new BackgroundExtraData())).CornerRadius = value;
+            }
+
+            Tizen.NUI.PropertyMap backgroundMap = new Tizen.NUI.PropertyMap();
+            Tizen.NUI.Object.GetProperty(swigCPtr, View.Property.BACKGROUND).Get(backgroundMap);
+
+            if (!backgroundMap.Empty())
+            {
+                backgroundMap[Visual.Property.CornerRadius] = new PropertyValue(value);
+                Tizen.NUI.Object.SetProperty(swigCPtr, View.Property.BACKGROUND, new Tizen.NUI.PropertyValue(backgroundMap));
+            }
+
+            UpdateShadowCornerRadius(value);
+        }
+
         /// <summary>
         /// you can override it to clean-up your own resources.
         /// </summary>
@@ -1332,32 +1358,6 @@ namespace Tizen.NUI.BaseComponents
             }
         }
 
-        private void UpdateCornerRadius(float value, bool needToListenStateChanged)
-        {
-            ControlStateChangeEventInternal -= OnControlStateChangedForCornerRadius;
-
-            if (needToListenStateChanged)
-            {
-                ControlStateChangeEventInternal += OnControlStateChangedForCornerRadius;
-            }
-
-            if (value != 0)
-            {
-                (backgroundExtraData ?? (backgroundExtraData = new BackgroundExtraData())).CornerRadius = value;
-            }
-
-            Tizen.NUI.PropertyMap backgroundMap = new Tizen.NUI.PropertyMap();
-            Tizen.NUI.Object.GetProperty(swigCPtr, View.Property.BACKGROUND).Get(backgroundMap);
-
-            if (!backgroundMap.Empty())
-            {
-                backgroundMap[Visual.Property.CornerRadius] = new PropertyValue(value);
-                Tizen.NUI.Object.SetProperty(swigCPtr, View.Property.BACKGROUND, new Tizen.NUI.PropertyValue(backgroundMap));
-            }
-
-            UpdateShadowCornerRadius(value);
-        }
-
         private void UpdateShadowCornerRadius(float value)
         {
             // TODO Update corner radius property only whe DALi supports visual property update.