[NUI] Make all property setters in Shadow class to internal (#2812)
authorJiyun Yang <ji.yang@samsung.com>
Tue, 6 Apr 2021 07:14:37 +0000 (16:14 +0900)
committerbshsqa <32317749+bshsqa@users.noreply.github.com>
Wed, 14 Apr 2021 11:53:58 +0000 (20:53 +0900)
Instead in xaml, shadow can be a simple string such as,
"10.0 | #FF0000FFF", which means 10 blurRadius and red color.

Signed-off-by: Jiyun Yang <ji.yang@samsung.com>
src/Tizen.NUI.Components/res/Theme/Tizen.NUI.Components_Tizen.NUI.Theme.Common.xaml
src/Tizen.NUI/src/internal/XamlBinding/VectorTypeConverter.cs
src/Tizen.NUI/src/public/ViewProperty/ImageShadow.cs
src/Tizen.NUI/src/public/ViewProperty/Shadow.cs
src/Tizen.NUI/src/public/ViewProperty/ShadowBase.cs
src/Tizen.NUI/src/public/XamlBinding/ShadowTypeConverter.cs [new file with mode: 0644]
test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/AnimatedImageViewTest.cs
test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/ButtonSample.cs
test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/ControlSample.cs
test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/PopupSample.cs

index 4dc78a5..76ca878 100755 (executable)
         </c:ButtonStyle.Text>
     </c:ButtonStyle>
 
-    <!--DropDown-->
-    <c:DropDownStyle x:Key="Tizen.NUI.Components.DropDown" SpaceBetweenButtonTextAndIcon="10" ListPadding="5">
-        <c:DropDownStyle.Button>
-            <!--DropDown Button-->
-            <c:ButtonStyle BackgroundImageBorder="6, 6, 6, 6" IconPadding="6">
-                <c:ButtonStyle.BackgroundImage>
-                    <Selector x:TypeArguments="x:String" Pressed="{NUIResourcePath nui_component_default_checkbox_bg_p.png}" Other="{NUIResourcePath nui_component_default_checkbox_bg_n.png}"/>
-                </c:ButtonStyle.BackgroundImage>
-                <c:ButtonStyle.Text>
-                    <TextLabelStyle Text="Select an item" PointSize="12"/>
-                </c:ButtonStyle.Text>
-                <c:ButtonStyle.Icon>
-                    <ImageViewStyle Size="28, 28" ResourceUrl="{NUIResourcePath nui_component_default_dropdown_button_icon.png}"/>
-                </c:ButtonStyle.Icon>
-            </c:ButtonStyle>
-        </c:DropDownStyle.Button>
-        <c:DropDownStyle.ListBackgroundImage>
-            <!--DropDown ListBackgroundImage-->
-            <ImageViewStyle ResourceUrl="{NUIResourcePath nui_component_default_dropdown_list_bg.png}" Border="6, 6, 6, 6" Size="280, 360"/>
-        </c:DropDownStyle.ListBackgroundImage>
-    </c:DropDownStyle>
-
-    <!--DropDownDataItem-->
-    <c:DropDownItemStyle x:Key="Tizen.NUI.Components.DropDown.DropDownDataItem" Size="360, 50">
-        <c:DropDownItemStyle.BackgroundColor>
-            <Selector x:TypeArguments="Color" Pressed="0.05, 0.63, 0.9, 1" Selected="0.8, 0.8, 0.8, 1" Normal="1, 1, 1, 1"/>
-        </c:DropDownItemStyle.BackgroundColor>
-        <c:DropDownItemStyle.Text>
-            <TextLabelStyle PointSize="12" Position="28, 0"/>
-        </c:DropDownItemStyle.Text>
-    </c:DropDownItemStyle>
-
-    <!--DropDownDataItem (for legacy FH)-->
-    <c:DropDownItemStyle x:Key="Tizen.FH.NUI.Components.DropDownDataItem" Size="360, 50">
-        <c:DropDownItemStyle.BackgroundColor>
-            <Selector x:TypeArguments="Color" Pressed="0.05, 0.63, 0.9, 1" Selected="0.8, 0.8, 0.8, 1" Normal="1, 1, 1, 1"/>
-        </c:DropDownItemStyle.BackgroundColor>
-        <c:DropDownItemStyle.Text>
-            <TextLabelStyle PointSize="12" Position="28, 0"/>
-        </c:DropDownItemStyle.Text>
-    </c:DropDownItemStyle>
-
-    <!--DropDownDataItem (for legacy FH)-->
-    <c:DropDownItemStyle x:Key="DropDownDataItem" Size="360, 50">
-        <c:DropDownItemStyle.BackgroundColor>
-            <Selector x:TypeArguments="Color" Pressed="0.05, 0.63, 0.9, 1" Selected="0.8, 0.8, 0.8, 1" Normal="1, 1, 1, 1"/>
-        </c:DropDownItemStyle.BackgroundColor>
-        <c:DropDownItemStyle.Text>
-            <TextLabelStyle PointSize="12" Position="28, 0"/>
-        </c:DropDownItemStyle.Text>
-    </c:DropDownItemStyle>
-
     <!--Popup-->
-    <c:PopupStyle x:Key="Tizen.NUI.Components.Popup" Size="500, 280" BackgroundColor="0.9, 0.9, 0.9, 1">
+    <c:PopupStyle x:Key="Tizen.NUI.Components.Popup" Size="500, 280" BackgroundColor="0.9, 0.9, 0.9, 1" ImageShadow="">
         <c:PopupStyle.ImageShadow>
-            <ImageShadow Url="{NUIResourcePath nui_component_default_popup_shadow.png}" Border="24, 24, 24, 24" Extents="48, 48"/>
+            <ImageShadow>
+                <x:Arguments>
+                    <x:String>{NUIResourcePath nui_component_default_popup_shadow.png}</x:String>
+                    <Rectangle>24, 24, 24, 24</Rectangle>
+                    <Vector2>0, 0</Vector2>
+                    <Vector2>48, 48</Vector2>
+                </x:Arguments>
+            </ImageShadow>
         </c:PopupStyle.ImageShadow>
         <c:PopupStyle.Title>
             <TextLabelStyle PointSize="16" Padding="20" />
         </c:Switch.Text>
     </c:SwitchStyle>
 
-    <!--Tab-->
-    <c:TabStyle x:Key="Tizen.NUI.Components.Tab" Size="480, 80" BackgroundColor="Yellow">
-        <c:TabStyle.UnderLine>
-            <ViewStyle Size="0, 6" BackgroundColor="0.05, 0.63, 0.9, 1.0" />
-        </c:TabStyle.UnderLine>
-        <c:TabStyle.Text>
-            <TextLabelStyle PointSize="16">
-                <TextLabelStyle.TextColor>
-                    <Selector x:TypeArguments="Color" Normal="Black" Selected="0.05, 0.63, 0.9, 1" />
-                </TextLabelStyle.TextColor>
-            </TextLabelStyle>
-        </c:TabStyle.Text>
-    </c:TabStyle>
-
-    <!--Toast-->
-    <c:ToastStyle x:Key="Tizen.NUI.Components.Toast" BackgroundColor="0, 0, 0, 0.8">
-        <c:ToastStyle.Text>
-            <TextLabelStyle Padding="12, 12, 8, 8" />
-        </c:ToastStyle.Text>
-    </c:ToastStyle>
-
     <!--Loading-->
     <c:LoadingStyle x:Key="Tizen.NUI.Components.Loading" LoadingSize="100, 100" />
 
index e52a629..626eb45 100755 (executable)
@@ -30,12 +30,7 @@ namespace Tizen.NUI.Binding
         {
             if (value != null)
             {
-                string[] parts = value.Split(',');
-                if (parts.Length == 2)
-                {
-                    return new Vector2(Single.Parse(parts[0].Trim(), CultureInfo.InvariantCulture),
-                                       Single.Parse(parts[1].Trim(), CultureInfo.InvariantCulture));
-                }
+                return FromString(value);
             }
 
             throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(Vector2)}");
@@ -43,8 +38,24 @@ namespace Tizen.NUI.Binding
 
         public override string ConvertToString(object value)
         {
-            Vector2 vector = (Vector2)value;
-            return vector.X.ToString() + " " + vector.Y.ToString();
+            return ToString((Vector2)value);
+        }
+
+        internal static Vector2 FromString(string value)
+        {
+            var parts = value.Split(',');
+
+            if (parts.Length != 2)
+            {
+                throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(Vector2)}");
+            }
+
+            return new Vector2(Single.Parse(parts[0].Trim(), CultureInfo.InvariantCulture), Single.Parse(parts[1].Trim(), CultureInfo.InvariantCulture));
+        }
+
+        internal static string ToString(Vector2 value)
+        {
+            return value.X.ToString() + " " + value.Y.ToString();
         }
     }
 
index 6756a61..9feafaf 100755 (executable)
@@ -24,6 +24,7 @@ namespace Tizen.NUI
     /// <summary>
     /// The Shadow composed of image for View
     /// </summary>
+    [Tizen.NUI.Binding.TypeConverter(typeof(Tizen.NUI.Binding.ImageShadowTypeConverter))]
     [EditorBrowsable(EditorBrowsableState.Never)]
     public class ImageShadow : ShadowBase, ICloneable
     {
@@ -42,7 +43,15 @@ namespace Tizen.NUI
         /// Constructor
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
-        public ImageShadow(string url, Rectangle border, Vector2 offset, Vector2 extents) : base(offset, extents)
+        public ImageShadow(string url, Vector2 offset = null, Vector2 extents = null) : this(url, null, offset, extents)
+        {
+        }
+
+        /// <summary>
+        /// Constructor
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public ImageShadow(string url, Rectangle border, Vector2 offset = null, Vector2 extents = null) : base(offset, extents)
         {
             Url = url;
             Border = border == null ? null : new Rectangle(border);
@@ -90,7 +99,7 @@ namespace Tizen.NUI
         /// The url for the shadow image to load.
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
-        public string Url { get; set; }
+        public string Url { get; internal set; }
 
         /// <summary>
         /// Optional.<br />
@@ -98,7 +107,7 @@ namespace Tizen.NUI
         /// Set left, right, bottom, top length of the border you don't want to stretch in the image.
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
-        public Rectangle Border { get; set; }
+        public Rectangle Border { get; internal set; }
 
         /// <inheritdoc/>
         [EditorBrowsable(EditorBrowsableState.Never)]
@@ -160,7 +169,14 @@ namespace Tizen.NUI
 
             map[ImageVisualProperty.Border] = PropertyValue.CreateWithGuard(Border);
 
-            map[ImageVisualProperty.URL] = PropertyValue.CreateWithGuard(Url);
+            string urlString = Url;
+            if (Url.StartsWith("*Resource*"))
+            {
+                string resource = Tizen.Applications.Application.Current.DirectoryInfo.Resource;
+                urlString = Url.Replace("*Resource*", resource);
+            }
+
+            map[ImageVisualProperty.URL] = PropertyValue.CreateWithGuard(urlString);
 
             return map;
         }
index 586e2cc..372e4f1 100755 (executable)
@@ -24,6 +24,7 @@ namespace Tizen.NUI
     /// <summary>
     /// Represents a shadow with color and blur radius for a View.
     /// </summary>
+    [Tizen.NUI.Binding.TypeConverter(typeof(Tizen.NUI.Binding.ShadowTypeConverter))]
     [EditorBrowsable(EditorBrowsableState.Never)]
     public class Shadow : ShadowBase, ICloneable
     {
@@ -45,7 +46,7 @@ namespace Tizen.NUI
         /// Create a Shadow with custom values.
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
-        public Shadow(float blurRadius, Vector2 offset, Color color, Vector2 extents) : base(offset, extents)
+        public Shadow(float blurRadius, Color color, Vector2 offset = null, Vector2 extents = null) : base(offset, extents)
         {
             BlurRadius = blurRadius;
             Color = color == null ? new Color(defaultColor) : new Color(color);
@@ -56,7 +57,7 @@ namespace Tizen.NUI
         /// </summary>
         /// <exception cref="ArgumentNullException"> Thrown when other is null. </exception>
         [EditorBrowsable(EditorBrowsableState.Never)]
-        public Shadow(Shadow other) : this(other == null ? throw new ArgumentNullException(nameof(other)) : other.BlurRadius, other.Offset, other.Color, other.Extents)
+        public Shadow(Shadow other) : this(other == null ? throw new ArgumentNullException(nameof(other)) : other.BlurRadius, other.Color, other.Offset, other.Extents)
         {
         }
 
@@ -81,7 +82,7 @@ namespace Tizen.NUI
         /// The color for the shadow.
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
-        public Color Color { get; set; }
+        public Color Color { get; internal set; }
 
         /// <summary>
         /// The blur radius value for the shadow. Bigger value, much blurry.
@@ -90,7 +91,7 @@ namespace Tizen.NUI
         /// Negative value is ignored. (no blur)
         /// </remark>
         [EditorBrowsable(EditorBrowsableState.Never)]
-        public float BlurRadius { get; set; }
+        public float BlurRadius { get; internal set; }
 
         /// <inheritdoc/>
         [EditorBrowsable(EditorBrowsableState.Never)]
index 32bc8e1..c6e86d6 100755 (executable)
@@ -92,7 +92,7 @@ namespace Tizen.NUI
         /// The position offset value (x, y) from the top left corner.
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
-        public Vector2 Offset { get; set; }
+        public Vector2 Offset { get; internal set; }
 
         /// <summary>
         /// The shadow will extend its size by specified amount of length.<br />
@@ -101,7 +101,7 @@ namespace Tizen.NUI
         /// the output shadow will have size (105, 95).
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
-        public Vector2 Extents { get; set; }
+        public Vector2 Extents { get; internal set; }
 
         /// <summary>
         /// Equality operator.
diff --git a/src/Tizen.NUI/src/public/XamlBinding/ShadowTypeConverter.cs b/src/Tizen.NUI/src/public/XamlBinding/ShadowTypeConverter.cs
new file mode 100644 (file)
index 0000000..8605524
--- /dev/null
@@ -0,0 +1,156 @@
+/*
+ * Copyright(c) 2021 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+using System;
+using System.ComponentModel;
+using System.Diagnostics.CodeAnalysis;
+using System.Globalization;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Binding
+{
+    /// The shadow type converter
+    [EditorBrowsable(EditorBrowsableState.Never)]
+    [ProvideCompiled("Tizen.NUI.Xaml.Core.XamlC.ShadowTypeConverter")]
+    [TypeConversion(typeof(Shadow))]
+    public class ShadowTypeConverter : TypeConverter
+    {
+        /// <inheritdoc/>
+        [SuppressMessage("Microsoft.Design", "CA2000: Dispose objects before losing scope", Justification = "The ownership of created color, offset and extents are moved to a shadow object.")]
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override object ConvertFromInvariantString(string value)
+        {
+            // "blurRadius | color [| offset] [| extents]"
+            // Examples
+            // "1.0 | #AABBCCFF"
+            // "6.2 | #AABBCC | 5, 5"
+            // "8.0 | #AABBCC | 5, 5 | 7, 8"
+
+            if (string.IsNullOrEmpty(value))
+            {
+                return new Shadow(0.0f, Color.Transparent);
+            }
+
+            var items = value.Split('|');
+
+            if (items.Length < 2 || items.Length > 4)
+            {
+                return new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(Shadow)}");
+            }
+
+            var blurRadius = Single.Parse(items[0].Trim(), CultureInfo.InvariantCulture);
+            var color = new Color(items[1].Trim());
+            Vector2 offset = null;
+            Vector2 extents = null;
+
+            if (items.Length > 2)
+            {
+                offset = Vector2TypeConverter.FromString(items[2].Trim());
+            }
+
+            if (items.Length == 4)
+            {
+                extents = Vector2TypeConverter.FromString(items[3].Trim());
+            }
+
+            return new Shadow(blurRadius, color, offset, extents);
+        }
+
+        /// <inheritdoc/>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override string ConvertToString(object value)
+        {
+            if (value == null)
+            {
+                return string.Empty;
+            }
+
+            var shadow = (Shadow)value;
+            string result = shadow.BlurRadius.ToString() + " | " + shadow.Color.ToString();
+
+            result += " | " + (shadow.Offset == null ? "0, 0" : Vector2TypeConverter.ToString(shadow.Offset));
+            result += " | " + (shadow.Extents == null ? "0, 0" : Vector2TypeConverter.ToString(shadow.Extents));
+
+            return result;
+        }
+    }
+
+    /// The shadow type converter
+    [EditorBrowsable(EditorBrowsableState.Never)]
+    [ProvideCompiled("Tizen.NUI.Xaml.Core.XamlC.ImageShadowTypeConverter")]
+    [TypeConversion(typeof(ImageShadow))]
+    public class ImageShadowTypeConverter : TypeConverter
+    {
+        /// <inheritdoc/>
+        [SuppressMessage("Microsoft.Design", "CA2000: Dispose objects before losing scope", Justification = "The ownership of created offset and extents are moved to a shadow object.")]
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override object ConvertFromInvariantString(string value)
+        {
+            // "imageUrl [| offset] [| extents]"
+            // Examples
+            // "*Resource*/image.9.png"
+            // "*Resource*/image.9.png | 5, 5"
+            // "*Resource*/image.9.png | 5, 5 | 7, 8"
+
+            if (string.IsNullOrEmpty(value))
+            {
+                return new ImageShadow(String.Empty);
+            }
+
+            var items = value.Split('|');
+
+            if (items.Length < 1 || items.Length > 3)
+            {
+                return new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(ImageShadow)}");
+            }
+
+            var url = items[0].Trim();
+            Vector2 offset = null;
+            Vector2 extents = null;
+
+            if (items.Length > 1)
+            {
+                offset = Vector2TypeConverter.FromString(items[1].Trim());
+            }
+
+            if (items.Length == 3)
+            {
+                extents = Vector2TypeConverter.FromString(items[2].Trim());
+            }
+
+            return new ImageShadow(url, offset, extents);
+        }
+
+        /// <inheritdoc/>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override string ConvertToString(object value)
+        {
+            if (value == null)
+            {
+                return string.Empty;
+            }
+
+            var imageShadow = (ImageShadow)value;
+            string result = imageShadow.Url;
+
+            result += " / " + (imageShadow.Offset == null ? "0, 0" : Vector2TypeConverter.ToString(imageShadow.Offset));
+            result += " / " + (imageShadow.Extents == null ? "0, 0" : Vector2TypeConverter.ToString(imageShadow.Extents));
+
+            return result;
+        }
+    }
+}
index defb0c7..5921935 100755 (executable)
@@ -65,11 +65,7 @@ namespace Tizen.NUI.Samples
                     },
                     BackgroundImageBorder = new Selector<Rectangle> { All = new Rectangle(5, 5, 5, 5) },
 
-                    ImageShadow = new ImageShadow
-                    {
-                        Url = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png",
-                        Border = new Rectangle(5, 5, 5, 5)
-                    },
+                    ImageShadow = new ImageShadow(CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png", new Rectangle(5, 5, 5, 5)),
 
                     Overlay = new ImageViewStyle
                     {
index 517c7c9..417d685 100755 (executable)
@@ -140,11 +140,7 @@ namespace Tizen.NUI.Samples
             utilityBasicButton = new Button();
             utilityBasicButton.ApplyStyle(utilityBasicButtonStyle);
             utilityBasicButton.IsSelectable = true;
-            utilityBasicButton.ImageShadow = new ImageShadow
-            {
-                Url = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png",
-                Border = new Rectangle(5, 5, 5, 5)
-            };
+            utilityBasicButton.ImageShadow = new ImageShadow(CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png", new Rectangle(5, 5, 5, 5));
             utilityBasicButton.Size = new Size(300, 80);
             utilityBasicButton.IsEnabled = false;
             parent1.Add(utilityBasicButton);
@@ -177,11 +173,7 @@ namespace Tizen.NUI.Samples
             };
             utilityServiceButton = new Button();
             utilityServiceButton.ApplyStyle(utilityServiceButtonStyle);
-            utilityServiceButton.ImageShadow = new ImageShadow
-            {
-                Url = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png",
-                Border = new Rectangle(5, 5, 5, 5)
-            };
+            utilityServiceButton.ImageShadow = new ImageShadow(CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png", new Rectangle(5, 5, 5, 5));
 
             utilityServiceButton.Size = new Size(300, 80);
             parent1.Add(utilityServiceButton);
@@ -222,11 +214,7 @@ namespace Tizen.NUI.Samples
             utilityToggleButton.ApplyStyle(utilityToggleButtonStyle);
             utilityToggleButton.IsSelectable = true;
             utilityToggleButton.BackgroundImageBorder = new Rectangle(5, 5, 5, 5);
-            utilityToggleButton.ImageShadow = new ImageShadow
-            {
-                Url = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png",
-                Border = new Rectangle(5, 5, 5, 5)
-            };
+            utilityToggleButton.ImageShadow = new ImageShadow(CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png", new Rectangle(5, 5, 5, 5));
             utilityToggleButton.OverlayImage.Border = new Rectangle(5, 5, 5, 5);
 
             utilityToggleButton.Size = new Size(300, 80);
@@ -258,11 +246,7 @@ namespace Tizen.NUI.Samples
             utilityOvalButton.ApplyStyle(utilityOvalButtonStyle);
             utilityOvalButton.IsSelectable = true;
             utilityOvalButton.BackgroundImageBorder = new Rectangle(5, 5, 5, 5);
-            utilityOvalButton.ImageShadow = new ImageShadow
-            {
-                Url = CommonResource.GetFHResourcePath() + "3. Button/oval_toggle_btn_shadow.png",
-                Border = new Rectangle(5, 5, 5, 5)
-            };
+            utilityOvalButton.ImageShadow = new ImageShadow(CommonResource.GetFHResourcePath() + "3. Button/oval_toggle_btn_shadow.png", new Rectangle(5, 5, 5, 5));
             utilityOvalButton.OverlayImage.Border = new Rectangle(5, 5, 5, 5);
 
             utilityOvalButton.Size = new Size(104, 104);
@@ -276,11 +260,7 @@ namespace Tizen.NUI.Samples
                 IsSelectable = true,
                 BackgroundImage = new Selector<string> { All = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_normal.png" },
                 BackgroundImageBorder = new Selector<Rectangle> { All = new Rectangle(5, 5, 5, 5) },
-                ImageShadow = new ImageShadow
-                {
-                    Url = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png",
-                    Border = new Rectangle(5, 5, 5, 5)
-                },
+                ImageShadow = new ImageShadow(CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png", new Rectangle(5, 5, 5, 5)),
 
                 Overlay = new ImageViewStyle
                 {
@@ -317,11 +297,7 @@ namespace Tizen.NUI.Samples
                 BackgroundImage = new Selector<string> { All = CommonResource.GetFHResourcePath() + "3. Button/[Button] App Primary Color/rectangle_point_btn_normal_24c447.png" },
                 BackgroundImageBorder = new Selector<Rectangle> { All = new Rectangle(5, 5, 5, 5) },
 
-                ImageShadow = new ImageShadow
-                {
-                    Url = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png",
-                    Border = new Rectangle(5, 5, 5, 5)
-                },
+                ImageShadow = new ImageShadow(CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png", new Rectangle(5, 5, 5, 5)),
 
                 Overlay = new ImageViewStyle
                 {
@@ -361,11 +337,7 @@ namespace Tizen.NUI.Samples
                 },
                 BackgroundImageBorder = new Selector<Rectangle> { All = new Rectangle(5, 5, 5, 5) },
 
-                ImageShadow = new ImageShadow
-                {
-                    Url = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png",
-                    Border = new Rectangle(5, 5, 5, 5)
-                },
+                ImageShadow = new ImageShadow(CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png", new Rectangle(5, 5, 5, 5)),
 
                 Overlay = new ImageViewStyle
                 {
@@ -408,11 +380,7 @@ namespace Tizen.NUI.Samples
                 },
                 BackgroundImageBorder = new Selector<Rectangle> { All = new Rectangle(5, 5, 5, 5) },
 
-                ImageShadow = new ImageShadow
-                {
-                    Url = CommonResource.GetFHResourcePath() + "3. Button/oval_toggle_btn_shadow.png",
-                    Border = new Rectangle(5, 5, 5, 5)
-                },
+                ImageShadow = new ImageShadow(CommonResource.GetFHResourcePath() + "3. Button/oval_toggle_btn_shadow.png", new Rectangle(5, 5, 5, 5)),
 
                 Overlay = new ImageViewStyle
                 {
index a799955..0056b80 100644 (file)
@@ -30,11 +30,7 @@ namespace Tizen.NUI.Samples
                 ParentOrigin = ParentOrigin.Center,
                 PivotPoint = PivotPoint.Center,
                 PositionUsesPivotPoint = true,
-                BoxShadow = new Shadow()
-                {
-                    Color = new Color(0.2f, 0.2f, 0.2f, 0.3f),
-                    Offset = new Vector2(5, 5),
-                },
+                BoxShadow = new Shadow(0, new Color(0.2f, 0.2f, 0.2f, 0.3f), new Vector2(5, 5)),
                 CornerRadius = 0.5f,
                 CornerRadiusPolicy = VisualTransformPolicyType.Relative,
             };
index d33830b..d61c5b8 100755 (executable)
@@ -92,12 +92,7 @@ namespace Tizen.NUI.Samples
             popup.Title.Padding = 0;
 
             // Shadow
-            popup.ImageShadow = new ImageShadow
-            {
-                Url = CommonResource.GetFHResourcePath() + "11. Popup/popup_background_shadow.png",
-                Border = new Rectangle(24, 24, 24, 24),
-                Extents = new Vector2(48, 48)
-            };
+            popup.ImageShadow = new ImageShadow(CommonResource.GetFHResourcePath() + "11. Popup/popup_background_shadow.png", new Rectangle(24, 24, 24, 24), extents: new Vector2(48, 48));
 
             // Background
             popup.BackgroundImage = CommonResource.GetFHResourcePath() + "11. Popup/popup_background.png";
@@ -113,11 +108,7 @@ namespace Tizen.NUI.Samples
                 Normal = new Color(1.0f, 1.0f, 1.0f, 0.5f),
                 Pressed = new Color(0.0f, 0.0f, 0.0f, 0.5f)
             };
-            popup.ButtonImageShadow = new ImageShadow
-            {
-                Url = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png",
-                Border = new Rectangle(5, 5, 5, 5)
-            };
+            popup.ButtonImageShadow = new ImageShadow(CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png", new Rectangle(5, 5, 5, 5));
             popup.ButtonTextColor = color[0];
             popup.ButtonHeight = 132;
             popup.PopupButtonClickEvent += PopupButtonClickedEvent;
@@ -145,12 +136,7 @@ namespace Tizen.NUI.Samples
                 MinimumSize = new Size(1032, 184),
                 BackgroundImage = new Selector<string> { All = CommonResource.GetFHResourcePath() + "11. Popup/popup_background.png" },
                 BackgroundImageBorder = new Selector<Rectangle> { All = new Rectangle(0, 0, 81, 81) },
-                ImageShadow = new ImageShadow
-                {
-                    Url = CommonResource.GetFHResourcePath() + "11. Popup/popup_background_shadow.png",
-                    Border = new Rectangle(24, 24, 24, 24),
-                    Extents = new Vector2(48, 48),
-                },
+                ImageShadow = new ImageShadow(CommonResource.GetFHResourcePath() + "11. Popup/popup_background_shadow.png", new Rectangle(24, 24, 24, 24), extents: new Vector2(48, 48)),
                 Title = new TextLabelStyle
                 {
                     PointSize = new Selector<float?> { All = 25 },
@@ -171,11 +157,7 @@ namespace Tizen.NUI.Samples
                     PivotPoint = Tizen.NUI.PivotPoint.BottomLeft,
                     BackgroundImage = new Selector<string> { All = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_normal.png" },
                     BackgroundImageBorder = new Selector<Rectangle> { All = new Rectangle(5, 5, 5, 5) },
-                    ImageShadow = new ImageShadow
-                    {
-                        Url = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png",
-                        Border = new Rectangle(5, 5, 5, 5),
-                    },
+                    ImageShadow = new ImageShadow(CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png", new Rectangle(5, 5, 5, 5)),
                     Overlay = new ImageViewStyle
                     {
                         PositionUsesPivotPoint = true,