[NUI] CheckBox, RadioButton and Switch can place text without setting text size ...
authorJiyun Yang <ji.yang@samsung.com>
Mon, 22 Mar 2021 03:55:43 +0000 (12:55 +0900)
committerdongsug-song <35130733+dongsug-song@users.noreply.github.com>
Tue, 30 Mar 2021 06:51:02 +0000 (15:51 +0900)
Signed-off-by: Jiyun Yang <ji.yang@samsung.com>
src/Tizen.NUI.Components/Controls/Button.Internal.cs
src/Tizen.NUI.Components/Controls/Button.cs
src/Tizen.NUI.Components/Controls/CheckBox.cs
src/Tizen.NUI.Components/Controls/Extension/LottieButtonExtension.cs
src/Tizen.NUI.Components/Controls/Extension/LottieSwitchExtension.cs
src/Tizen.NUI.Components/Controls/RadioButton.cs
src/Tizen.NUI.Components/Controls/Switch.cs
src/Tizen.NUI.Components/Theme/DefaultThemeCommon.cs
src/Tizen.NUI/src/public/Layouting/LinearLayout.cs

index 295bffa..c6ef247 100755 (executable)
@@ -67,11 +67,6 @@ namespace Tizen.NUI.Components
         {
             return new TextLabel
             {
-                PositionUsesPivotPoint = true,
-                ParentOrigin = NUI.ParentOrigin.Center,
-                PivotPoint = NUI.PivotPoint.Center,
-                WidthResizePolicy = ResizePolicyType.FillToParent,
-                HeightResizePolicy = ResizePolicyType.FillToParent,
                 HorizontalAlignment = HorizontalAlignment.Center,
                 VerticalAlignment = VerticalAlignment.Center,
                 AccessibilityHighlightable = false
@@ -87,9 +82,6 @@ namespace Tizen.NUI.Components
         {
             return new ImageView
             {
-                PositionUsesPivotPoint = true,
-                ParentOrigin = NUI.ParentOrigin.Center,
-                PivotPoint = NUI.PivotPoint.Center,
                 AccessibilityHighlightable = false
             };
         }
@@ -136,8 +128,6 @@ namespace Tizen.NUI.Components
         protected override void OnUpdate()
         {
             base.OnUpdate();
-            UpdateUIContent();
-
             Extension?.OnRelayout(this);
         }
 
@@ -236,157 +226,6 @@ namespace Tizen.NUI.Components
         }
 
         /// <summary>
-        /// Measure text, it can be override.
-        /// </summary>
-        /// <since_tizen> 6 </since_tizen>
-        /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        protected virtual void MeasureText()
-        {
-            if (buttonIcon == null || buttonText == null)
-            {
-                return;
-            }
-            buttonText.WidthResizePolicy = ResizePolicyType.Fixed;
-            buttonText.HeightResizePolicy = ResizePolicyType.Fixed;
-
-            var textPadding = TextPadding;
-            int textPaddingStart = textPadding.Start;
-            int textPaddingEnd = textPadding.End;
-            int textPaddingTop = textPadding.Top;
-            int textPaddingBottom = textPadding.Bottom;
-
-            var iconPadding = IconPadding;
-            int iconPaddingStart = iconPadding.Start;
-            int iconPaddingEnd = iconPadding.End;
-            int iconPaddingTop = iconPadding.Top;
-            int iconPaddingBottom = iconPadding.Bottom;
-
-            if (IconRelativeOrientation == IconOrientation.Top || IconRelativeOrientation == IconOrientation.Bottom)
-            {
-                buttonText.SizeWidth = SizeWidth - textPaddingStart - textPaddingEnd;
-                buttonText.SizeHeight = SizeHeight - textPaddingTop - textPaddingBottom - iconPaddingTop - iconPaddingBottom - buttonIcon.SizeHeight;
-            }
-            else
-            {
-                buttonText.SizeWidth = SizeWidth - textPaddingStart - textPaddingEnd - iconPaddingStart - iconPaddingEnd - buttonIcon.SizeWidth;
-                buttonText.SizeHeight = SizeHeight - textPaddingTop - textPaddingBottom;
-            }
-        }
-
-        /// <summary>
-        /// Layout child, it can be override.
-        /// </summary>
-        /// <since_tizen> 6 </since_tizen>
-        /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        protected virtual void LayoutChild()
-        {
-            if (buttonIcon == null || buttonText == null)
-            {
-                return;
-            }
-
-            var textPadding = TextPadding;
-            int textPaddingStart = textPadding.Start;
-            int textPaddingEnd = textPadding.End;
-            int textPaddingTop = textPadding.Top;
-            int textPaddingBottom = textPadding.Bottom;
-
-            var iconPadding = IconPadding;
-            int iconPaddingStart = iconPadding.Start;
-            int iconPaddingEnd = iconPadding.End;
-            int iconPaddingTop = iconPadding.Top;
-            int iconPaddingBottom = iconPadding.Bottom;
-
-            switch (IconRelativeOrientation)
-            {
-                case IconOrientation.Top:
-                    buttonIcon.PositionUsesPivotPoint = true;
-                    buttonIcon.ParentOrigin = NUI.ParentOrigin.TopCenter;
-                    buttonIcon.PivotPoint = NUI.PivotPoint.TopCenter;
-                    buttonIcon.Position2D = new Position2D(0, iconPaddingTop);
-
-                    buttonText.PositionUsesPivotPoint = true;
-                    buttonText.ParentOrigin = NUI.ParentOrigin.BottomCenter;
-                    buttonText.PivotPoint = NUI.PivotPoint.BottomCenter;
-                    buttonText.Position2D = new Position2D(0, -textPaddingBottom);
-                    break;
-                case IconOrientation.Bottom:
-                    buttonIcon.PositionUsesPivotPoint = true;
-                    buttonIcon.ParentOrigin = NUI.ParentOrigin.BottomCenter;
-                    buttonIcon.PivotPoint = NUI.PivotPoint.BottomCenter;
-                    buttonIcon.Position2D = new Position2D(0, -iconPaddingBottom);
-
-                    buttonText.PositionUsesPivotPoint = true;
-                    buttonText.ParentOrigin = NUI.ParentOrigin.TopCenter;
-                    buttonText.PivotPoint = NUI.PivotPoint.TopCenter;
-                    buttonText.Position2D = new Position2D(0, textPaddingTop);
-                    break;
-                case IconOrientation.Left:
-                    if (LayoutDirection == ViewLayoutDirectionType.LTR)
-                    {
-                        buttonIcon.PositionUsesPivotPoint = true;
-                        buttonIcon.ParentOrigin = NUI.ParentOrigin.CenterLeft;
-                        buttonIcon.PivotPoint = NUI.PivotPoint.CenterLeft;
-                        buttonIcon.Position2D = new Position2D(iconPaddingStart, 0);
-
-                        buttonText.PositionUsesPivotPoint = true;
-                        buttonText.ParentOrigin = NUI.ParentOrigin.CenterRight;
-                        buttonText.PivotPoint = NUI.PivotPoint.CenterRight;
-                        buttonText.Position2D = new Position2D(-textPaddingEnd, 0);
-                    }
-                    else
-                    {
-                        buttonIcon.PositionUsesPivotPoint = true;
-                        buttonIcon.ParentOrigin = NUI.ParentOrigin.CenterRight;
-                        buttonIcon.PivotPoint = NUI.PivotPoint.CenterRight;
-                        buttonIcon.Position2D = new Position2D(-iconPaddingStart, 0);
-
-                        buttonText.PositionUsesPivotPoint = true;
-                        buttonText.ParentOrigin = NUI.ParentOrigin.CenterLeft;
-                        buttonText.PivotPoint = NUI.PivotPoint.CenterLeft;
-                        buttonText.Position2D = new Position2D(textPaddingEnd, 0);
-                    }
-
-                    break;
-                case IconOrientation.Right:
-                    if (LayoutDirection == ViewLayoutDirectionType.RTL)
-                    {
-                        buttonIcon.PositionUsesPivotPoint = true;
-                        buttonIcon.ParentOrigin = NUI.ParentOrigin.CenterLeft;
-                        buttonIcon.PivotPoint = NUI.PivotPoint.CenterLeft;
-                        buttonIcon.Position2D = new Position2D(iconPaddingEnd, 0);
-
-                        buttonText.PositionUsesPivotPoint = true;
-                        buttonText.ParentOrigin = NUI.ParentOrigin.CenterRight;
-                        buttonText.PivotPoint = NUI.PivotPoint.CenterRight;
-                        buttonText.Position2D = new Position2D(-textPaddingStart, 0);
-                    }
-                    else
-                    {
-                        buttonIcon.PositionUsesPivotPoint = true;
-                        buttonIcon.ParentOrigin = NUI.ParentOrigin.CenterRight;
-                        buttonIcon.PivotPoint = NUI.PivotPoint.CenterRight;
-                        buttonIcon.Position2D = new Position2D(-iconPaddingEnd, 0);
-
-                        buttonText.PositionUsesPivotPoint = true;
-                        buttonText.ParentOrigin = NUI.ParentOrigin.CenterLeft;
-                        buttonText.PivotPoint = NUI.PivotPoint.CenterLeft;
-                        buttonText.Position2D = new Position2D(textPaddingStart, 0);
-                    }
-                    break;
-                default:
-                    break;
-            }
-            if (string.IsNullOrEmpty(buttonText.Text))
-            {
-                buttonIcon.ParentOrigin = NUI.ParentOrigin.Center;
-                buttonIcon.PivotPoint = NUI.PivotPoint.Center;
-            }
-        }
-
-        /// <summary>
         /// Dispose Button and all children on it.
         /// </summary>
         /// <param name="type">Dispose type.</param>
@@ -430,10 +269,13 @@ namespace Tizen.NUI.Components
 
             AccessibilityHighlightable = true;
             EnableControlStatePropagation = true;
-            LayoutDirectionChanged += OnLayoutDirectionChanged;
 
             AccessibilityManager.Instance.SetAccessibilityAttribute(this, AccessibilityManager.AccessibilityAttribute.Trait, "Button");
 
+            buttonText = CreateText();
+            buttonIcon = CreateIcon();
+            LayoutItems();
+
 #if PROFILE_MOBILE
             Feedback = true;
 #endif
@@ -460,18 +302,71 @@ namespace Tizen.NUI.Components
             }
         }
 
-        private void UpdateUIContent()
+        /// <summary>
+        /// Put sub items (e.g. buttonText, buttonIcon) to the right place.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        protected virtual void LayoutItems()
         {
-            MeasureText();
-            LayoutChild();
+            if (buttonIcon == null || buttonText == null)
+            {
+                return;
+            }
 
-            Sensitive = IsEnabled;
-        }
+            buttonIcon.Unparent();
+            buttonText.Unparent();
+            overlayImage?.Unparent();
 
-        private void OnLayoutDirectionChanged(object sender, LayoutDirectionChangedEventArgs e)
-        {
-            MeasureText();
-            LayoutChild();
+            if (IconRelativeOrientation == IconOrientation.Left)
+            {
+                Layout = new LinearLayout()
+                {
+                    LinearOrientation = LinearLayout.Orientation.Horizontal,
+                    LinearAlignment = LinearLayout.Alignment.Center,
+                };
+
+                Add(buttonIcon);
+                Add(buttonText);
+            }
+            else if (IconRelativeOrientation == IconOrientation.Right)
+            {
+                Layout = new LinearLayout()
+                {
+                    LinearOrientation = LinearLayout.Orientation.Horizontal,
+                    LinearAlignment = LinearLayout.Alignment.Center,
+                };
+
+                Add(buttonText);
+                Add(buttonIcon);
+            }
+            else if (IconRelativeOrientation == IconOrientation.Top)
+            {
+                Layout = new LinearLayout()
+                {
+                    LinearOrientation = LinearLayout.Orientation.Vertical,
+                    LinearAlignment = LinearLayout.Alignment.Center,
+                };
+
+                Add(buttonIcon);
+                Add(buttonText);
+            }
+            else if (IconRelativeOrientation == IconOrientation.Bottom)
+            {
+                Layout = new LinearLayout()
+                {
+                    LinearOrientation = LinearLayout.Orientation.Vertical,
+                    LinearAlignment = LinearLayout.Alignment.Center,
+                };
+
+                Add(buttonText);
+                Add(buttonIcon);
+            }
+
+            if (overlayImage != null)
+            {
+                overlayImage.ExcludeLayouting = true;
+                Add(overlayImage);
+            }
         }
 
         private void OnClickedInternal(ClickedEventArgs eventArgs)
@@ -485,12 +380,6 @@ namespace Tizen.NUI.Components
             Clicked?.Invoke(this, eventArgs);
         }
 
-        private void OnIconRelayout(object sender, EventArgs e)
-        {
-            MeasureText();
-            LayoutChild();
-        }
-
         internal override bool OnAccessibilityActivated()
         {
             using (var key = new Key())
index beda59a..65ae83f 100755 (executable)
@@ -16,6 +16,7 @@
  */
 using System;
 using System.ComponentModel;
+using System.Diagnostics;
 using Tizen.NUI.BaseComponents;
 using Tizen.NUI.Binding;
 using Tizen.NUI.Accessibility;
@@ -57,7 +58,7 @@ namespace Tizen.NUI.Components
             if (instance.iconRelativeOrientation != newIconOrientation)
             {
                 instance.iconRelativeOrientation = newIconOrientation;
-                instance.UpdateUIContent();
+                instance.LayoutItems();
             }
         },
         defaultValueCreator: (bindable) => ((Button)bindable).iconRelativeOrientation
@@ -74,6 +75,7 @@ namespace Tizen.NUI.Components
                 if (instance.isEnabled != newEnabled)
                 {
                     instance.isEnabled = newEnabled;
+                    instance.Sensitive = newEnabled;
                     instance.UpdateState();
                 }
             }
@@ -126,7 +128,10 @@ namespace Tizen.NUI.Components
         {
             var instance = (Button)bindable;
             instance.iconPadding = (Extents)((Extents)newValue).Clone();
-            instance.UpdateUIContent();
+            if (instance.buttonIcon != null)
+            {
+                instance.buttonIcon.Margin = instance.iconPadding;
+            }
         },
         defaultValueCreator: (bindable) => ((Button)bindable).iconPadding);
 
@@ -136,11 +141,14 @@ namespace Tizen.NUI.Components
         {
             var instance = (Button)bindable;
             instance.textPadding = (Extents)((Extents)newValue).Clone();
-            instance.UpdateUIContent();
+            if (instance.buttonText != null)
+            {
+                instance.buttonText.Margin = instance.textPadding;
+            }
         },
         defaultValueCreator: (bindable) => ((Button)bindable).textPadding);
 
-        private IconOrientation? iconRelativeOrientation;
+        private IconOrientation? iconRelativeOrientation = IconOrientation.Left;
         private bool isSelected = false;
         private bool isSelectable = false;
         private bool isEnabled = true;
@@ -250,23 +258,7 @@ namespace Tizen.NUI.Components
         /// <since_tizen> 8 </since_tizen>
         public ImageView Icon
         {
-            get
-            {
-                if (null == buttonIcon)
-                {
-                    buttonIcon = CreateIcon();
-                    if (null != Extension)
-                    {
-                        buttonIcon = Extension.OnCreateIcon(this, buttonIcon);
-                    }
-                    if (null != buttonIcon)
-                    {
-                        Add(buttonIcon);
-                        buttonIcon.Relayout += OnIconRelayout;
-                    }
-                }
-                return buttonIcon;
-            }
+            get => buttonIcon;
             internal set
             {
                 buttonIcon = value;
@@ -290,6 +282,7 @@ namespace Tizen.NUI.Components
                     }
                     if (null != overlayImage)
                     {
+                        overlayImage.ExcludeLayouting = true;
                         Add(overlayImage);
                     }
                 }
@@ -307,22 +300,7 @@ namespace Tizen.NUI.Components
         /// <since_tizen> 8 </since_tizen>
         public TextLabel TextLabel
         {
-            get
-            {
-                if (null == buttonText)
-                {
-                    buttonText = CreateText();
-                    if (null != Extension)
-                    {
-                        buttonText = Extension.OnCreateText(this, buttonText);
-                    }
-                    if (null != buttonText)
-                    {
-                        Add(buttonText);
-                    }
-                }
-                return buttonText;
-            }
+            get => buttonText;
             internal set
             {
                 buttonText = value;
@@ -740,6 +718,8 @@ namespace Tizen.NUI.Components
         /// <since_tizen> 8 </since_tizen>
         public override void ApplyStyle(ViewStyle viewStyle)
         {
+            Debug.Assert(buttonIcon != null && buttonText != null);
+
             styleApplied = false;
 
             base.ApplyStyle(viewStyle);
@@ -747,19 +727,29 @@ namespace Tizen.NUI.Components
             if (viewStyle is ButtonStyle buttonStyle)
             {
                 Extension = buttonStyle.CreateExtension();
+
                 if (buttonStyle.Overlay != null)
-                {
+                {   
                     OverlayImage?.ApplyStyle(buttonStyle.Overlay);
                 }
 
+                if (Extension != null)
+                {
+                    buttonIcon.Unparent();
+                    buttonText.Unparent();
+                    buttonIcon = Extension.OnCreateIcon(this, buttonIcon);
+                    buttonText = Extension.OnCreateText(this, buttonText);
+                    LayoutItems();
+                }
+
                 if (buttonStyle.Text != null)
                 {
-                    TextLabel?.ApplyStyle(buttonStyle.Text);
+                    buttonText.ApplyStyle(buttonStyle.Text);
                 }
 
                 if (buttonStyle.Icon != null)
                 {
-                    Icon?.ApplyStyle(buttonStyle.Icon);
+                    buttonIcon.ApplyStyle(buttonStyle.Icon);
                 }
             }
 
index 9af37fd..d0b0da2 100755 (executable)
@@ -52,6 +52,8 @@ namespace Tizen.NUI.Components
             base.OnInitialize();
 
             SetAccessibilityConstructor(Role.CheckBox);
+            WidthSpecification = LayoutParamPolicies.WrapContent;
+            HeightSpecification = LayoutParamPolicies.WrapContent;
         }
 
         /// <summary>
@@ -71,20 +73,5 @@ namespace Tizen.NUI.Components
                 base.ItemGroup = value;
             }
         }
-
-        /// <inheritdoc/>
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        protected override ImageView CreateIcon()
-        {
-            return new ImageView
-            {
-                PositionUsesPivotPoint = true,
-                ParentOrigin = NUI.ParentOrigin.Center,
-                PivotPoint = NUI.PivotPoint.Center,
-                WidthResizePolicy = ResizePolicyType.DimensionDependency,
-                HeightResizePolicy = ResizePolicyType.SizeRelativeToParent,
-                SizeModeFactor = new Vector3(1, 1, 1),
-            };
-        }
     }
 }
index 3c2ca57..cdb194b 100755 (executable)
@@ -48,15 +48,6 @@ namespace Tizen.NUI.Components.Extension
         [EditorBrowsable(EditorBrowsableState.Never)]
         public override ImageView OnCreateIcon(Button button, ImageView icon)
         {
-            if (button == null)
-            {
-                throw new ArgumentNullException("button");
-            }
-
-            LottieView.PositionUsesPivotPoint = true;
-            LottieView.ParentOrigin = NUI.ParentOrigin.Center;
-            LottieView.PivotPoint = NUI.PivotPoint.Center;
-
             InitializeLottieView(button, LottieView);
 
             return LottieView;
index e623242..246bde2 100755 (executable)
@@ -47,10 +47,6 @@ namespace Tizen.NUI.Components.Extension
         [EditorBrowsable(EditorBrowsableState.Never)]
         public override ImageView OnCreateIcon(Button button, ImageView icon)
         {
-            LottieView.PositionUsesPivotPoint = true;
-            LottieView.ParentOrigin = NUI.ParentOrigin.Center;
-            LottieView.PivotPoint = NUI.PivotPoint.Center;
-
             LottieButtonExtension.InitializeLottieView(button, LottieView);
 
             return LottieView;
index 5aacfd1..3a36152 100755 (executable)
@@ -84,21 +84,6 @@ namespace Tizen.NUI.Components
 
         /// <inheritdoc/>
         [EditorBrowsable(EditorBrowsableState.Never)]
-        protected override ImageView CreateIcon()
-        {
-            return new ImageView
-            {
-                PositionUsesPivotPoint = true,
-                ParentOrigin = NUI.ParentOrigin.Center,
-                PivotPoint = NUI.PivotPoint.Center,
-                WidthResizePolicy = ResizePolicyType.DimensionDependency,
-                HeightResizePolicy = ResizePolicyType.SizeRelativeToParent,
-                SizeModeFactor = new Vector3(1, 1, 1),
-            };
-        }
-
-        /// <inheritdoc/>
-        [EditorBrowsable(EditorBrowsableState.Never)]
         public override bool OnKey(Key key)
         {
             if ((IsEnabled == false) || (key == null))
index 04be357..b0efa7b 100755 (executable)
@@ -65,8 +65,13 @@ namespace Tizen.NUI.Components
         [EditorBrowsable(EditorBrowsableState.Never)]
         public override void OnInitialize()
         {
+            track = new ImageView();
+            thumb = new ImageView();
+            track.Add(thumb);
+
             base.OnInitialize();
             SetAccessibilityConstructor(Role.ToggleButton);
+
             IsSelectable = true;
 #if PROFILE_MOBILE
             Feedback = true;
@@ -113,18 +118,25 @@ namespace Tizen.NUI.Components
         [EditorBrowsable(EditorBrowsableState.Never)]
         public override void ApplyStyle(ViewStyle viewStyle)
         {
-            SwitchStyle swStyle = viewStyle as SwitchStyle;
-
-            if (null != swStyle)
+            if (viewStyle is SwitchStyle switchStyle)
             {
-                if (swStyle.Track != null)
+                if (Extension is SwitchExtension extension)
+                {
+                    track.Unparent();
+                    thumb.Unparent();
+                    track = extension.OnCreateTrack(this, track);
+                    thumb = extension.OnCreateThumb(this, thumb);
+                    track.Add(thumb);
+                }
+
+                if (switchStyle.Track != null)
                 {
-                    Track.ApplyStyle(swStyle.Track);
+                    Track.ApplyStyle(switchStyle.Track);
                 }
 
-                if (swStyle.Thumb != null)
+                if (switchStyle.Thumb != null)
                 {
-                    Thumb.ApplyStyle(swStyle.Thumb);
+                    Thumb.ApplyStyle(switchStyle.Thumb);
                 }
             }
 
@@ -137,28 +149,7 @@ namespace Tizen.NUI.Components
         /// <since_tizen> 8 </since_tizen>
         public ImageView Track
         {
-            get
-            {
-                if (track == null)
-                {
-                    track = new ImageView()
-                    {
-                        PositionUsesPivotPoint = true,
-                        ParentOrigin = Tizen.NUI.ParentOrigin.CenterLeft,
-                        PivotPoint = Tizen.NUI.PivotPoint.CenterLeft,
-                        WidthResizePolicy = ResizePolicyType.FillToParent,
-                        HeightResizePolicy = ResizePolicyType.FillToParent
-                    };
-
-                    var extension = (SwitchExtension)Extension;
-                    if (extension != null)
-                    {
-                        track = extension.OnCreateTrack(this, track);
-                    }
-                    Add(track);
-                }
-                return track;
-            }
+            get => track;
             internal set
             {
                 track = value;
@@ -171,28 +162,7 @@ namespace Tizen.NUI.Components
         /// <since_tizen> 8 </since_tizen>
         public ImageView Thumb
         {
-            get
-            {
-                if (thumb == null)
-                {
-                    thumb = new ImageView()
-                    {
-                        PositionUsesPivotPoint = true,
-                        ParentOrigin = Tizen.NUI.ParentOrigin.CenterLeft,
-                        PivotPoint = Tizen.NUI.PivotPoint.CenterLeft,
-                        WidthResizePolicy = ResizePolicyType.Fixed,
-                        HeightResizePolicy = ResizePolicyType.Fixed
-                    };
-
-                    var extension = (SwitchExtension)Extension;
-                    if (extension != null)
-                    {
-                        thumb = extension.OnCreateThumb(this, thumb);
-                    }
-                    Add(thumb);
-                }
-                return thumb;
-            }
+            get => thumb;
             internal set
             {
                 thumb = value;
@@ -325,6 +295,16 @@ namespace Tizen.NUI.Components
             }
         }
 
+        /// <inheritdoc/>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        protected override void LayoutItems()
+        {
+            base.LayoutItems();
+            track.Unparent();
+            Add(track);
+            track.LowerToBottom();
+        }
+
         private void OnSelect()
         {
             if (IsHighlighted)
index 0e02d38..93776e2 100755 (executable)
@@ -54,9 +54,10 @@ namespace Tizen.NUI.Components
 
             theme.AddStyleWithoutClone("Tizen.NUI.Components.CheckBox", new ButtonStyle()
             {
-                Size = new Size(30, 30),
+                IconPadding = 5,
                 Icon = new ImageViewStyle()
                 {
+                    Size = new Size(30, 30),
                     Opacity = new Selector<float?>()
                     {
                         Normal = 1.0f,
@@ -115,9 +116,8 @@ namespace Tizen.NUI.Components
                     {
                         BackgroundColor = new Selector<Color>()
                         {
-                            Normal = new Color(1, 1, 1, 1),
                             Pressed = new Color(0, 0, 0, 0.1f),
-                            Other = new Color(1, 1, 1, 1),
+                            Other = new Color(1, 1, 1, 0.1f),
                         },
                     },
                     Text = new TextLabelStyle()
@@ -146,9 +146,10 @@ namespace Tizen.NUI.Components
 
             theme.AddStyleWithoutClone("Tizen.NUI.Components.RadioButton", new ButtonStyle()
             {
-                Size = new Size(30, 30),
+                IconPadding = 5,
                 Icon = new ImageViewStyle()
                 {
+                    Size = new Size(30, 30),
                     Opacity = new Selector<float?>()
                     {
                         Normal = 1.0f,
@@ -205,7 +206,7 @@ namespace Tizen.NUI.Components
 
             theme.AddStyleWithoutClone("Tizen.NUI.Components.Switch", new SwitchStyle()
             {
-                Size = new Size(96, 60),
+                IconPadding = 5,
                 Track = new ImageViewStyle()
                 {
                     Size = new Size(96, 60),
index 0119b7a..8a56256 100755 (executable)
@@ -709,9 +709,9 @@ namespace Tizen.NUI
                         childTop = new LayoutLength(Padding.Top + childMargin.Top);
                         break;
                 }
-                childLeft += childMargin.Start;
+                childLeft += (isLayoutRtl ? childMargin.End : childMargin.Start);
                 childLayout.Layout(childLeft, childTop, childLeft + childWidth, childTop + childHeight);
-                childLeft += childWidth + childMargin.End + ((i < count - 1) ? CellPadding.Width : 0);
+                childLeft += childWidth + (isLayoutRtl ? childMargin.Start : childMargin.End) + ((i < count - 1) ? CellPadding.Width : 0);
             }
         } // LayoutHorizontally