From 7757a0f8bf3f69e4e076cd502aee520c38239b73 Mon Sep 17 00:00:00 2001 From: Jiyun Yang Date: Wed, 15 Jan 2020 15:08:39 +0900 Subject: [PATCH] [NUI] Clean shadow related properties from Control and sample (#1308) Signed-off-by: Jiyun Yang --- src/Tizen.NUI.Components/Controls/Button.cs | 4 +- src/Tizen.NUI.Components/Controls/ButtonGroup.cs | 66 +----- src/Tizen.NUI.Components/Controls/Control.cs | 190 ------------------ src/Tizen.NUI.Components/Controls/ImageControl.cs | 222 --------------------- src/Tizen.NUI.Components/Controls/Popup.cs | 89 +-------- src/Tizen.NUI.Components/Style/ButtonStyle.cs | 4 +- src/Tizen.NUI.Components/Style/ControlStyle.cs | 134 ------------- .../Style/ImageControlStyle.cs | 139 ------------- src/Tizen.NUI.Components/Style/PopupStyle.cs | 20 +- .../src/public/BaseComponents/Style/ViewStyle.cs | 4 + .../public/BaseComponents/ViewBindableProperty.cs | 8 +- .../src/public/BaseComponents/ViewEvent.cs | 4 +- .../src/public/ViewProperty/ImageShadow.cs | 54 +++-- src/Tizen.NUI/src/public/ViewProperty/Shadow.cs | 26 +-- .../{TransformablePropertyMap.cs => ShadowBase.cs} | 114 ++++------- .../Tizen.NUI.Samples/SampleMain.cs | 176 ---------------- .../Samples/AnimatedImageViewTest.cs | 6 +- .../Tizen.NUI.Samples/Samples/ButtonSample.cs | 52 +++-- .../Tizen.NUI.Samples/Samples/CheckBoxSample.cs | 23 +-- .../Tizen.NUI.Samples/Samples/DaliDemo/DaliDemo.cs | 1 + .../Tizen.NUI.Samples/Samples/DropDownSample.cs | 2 +- .../Tizen.NUI.Samples/Samples/PopupSample.cs | 38 ++-- .../Tizen.NUI.Samples/Samples/RadioButtonSample.cs | 8 +- 23 files changed, 195 insertions(+), 1189 deletions(-) delete mode 100755 src/Tizen.NUI.Components/Controls/ImageControl.cs delete mode 100755 src/Tizen.NUI.Components/Style/ImageControlStyle.cs rename src/Tizen.NUI/src/public/ViewProperty/{TransformablePropertyMap.cs => ShadowBase.cs} (51%) diff --git a/src/Tizen.NUI.Components/Controls/Button.cs b/src/Tizen.NUI.Components/Controls/Button.cs index dde1e34..fdc21dc 100755 --- a/src/Tizen.NUI.Components/Controls/Button.cs +++ b/src/Tizen.NUI.Components/Controls/Button.cs @@ -124,7 +124,7 @@ namespace Tizen.NUI.Components private ImageView overlayImage; private TextLabel buttonText; - private ImageControl buttonIcon; + private ImageView buttonIcon; private EventHandler stateChangeHander; @@ -744,7 +744,7 @@ namespace Tizen.NUI.Components if (null == buttonIcon) { - buttonIcon = new ImageControl(); + buttonIcon = new ImageView(); this.Add(buttonIcon); } diff --git a/src/Tizen.NUI.Components/Controls/ButtonGroup.cs b/src/Tizen.NUI.Components/Controls/ButtonGroup.cs index 7b8f01a..d006c00 100755 --- a/src/Tizen.NUI.Components/Controls/ButtonGroup.cs +++ b/src/Tizen.NUI.Components/Controls/ButtonGroup.cs @@ -195,46 +195,23 @@ namespace Tizen.NUI.Components /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ItemShadowUrlProperty = BindableProperty.Create(nameof(ItemShadowUrl), typeof(string), typeof(ButtonGroup), string.Empty, propertyChanged: (bindable, oldValue, newValue) => + public static readonly BindableProperty ItemImageShadowProperty = BindableProperty.Create(nameof(ItemImageShadow), typeof(ImageShadow), typeof(ButtonGroup), null, propertyChanged: (bindable, oldValue, newValue) => { ButtonGroup btGroup = (ButtonGroup)bindable; - if (btGroup.itemGroup != null && newValue != null) - { - foreach (Button btn in btGroup.itemGroup) - { - if (btn.Style.Shadow.ResourceUrl == null) - { - btn.Style.Shadow.ResourceUrl = new Selector(); - } - btn.Style.Shadow.ResourceUrl = (string)newValue; - } - btGroup.itemShadowUrl = (string)newValue; - } - }, - defaultValueCreator: (bindable) => - { - ButtonGroup btGroup = (ButtonGroup)bindable; - return btGroup.itemShadowUrl; - }); - - /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ItemShadowBorderProperty = BindableProperty.Create(nameof(ItemShadowBorder), typeof(Rectangle), typeof(ButtonGroup), new Rectangle(), propertyChanged: (bindable, oldValue, newValue) => - { - ButtonGroup btGroup = (ButtonGroup)bindable; - if (btGroup.itemGroup != null && newValue != null) + if (btGroup.itemGroup != null) { + var shadow = (ImageShadow)newValue; foreach (Button btn in btGroup.itemGroup) { - btn.Style.Shadow.Border = (Rectangle)newValue; + btn.Style.ImageShadow = (ImageShadow)ImageShadow.Clone(shadow); } - btGroup.itemShadowBorder = (Rectangle)newValue; + btGroup.itemImageShadow = (ImageShadow)ImageShadow.Clone(shadow); } }, defaultValueCreator: (bindable) => { ButtonGroup btGroup = (ButtonGroup)bindable; - return btGroup.itemShadowBorder; + return btGroup.itemImageShadow; }); static ButtonGroup() { } @@ -537,32 +514,10 @@ namespace Tizen.NUI.Components /// Get or set shadow resource of item. /// [EditorBrowsable(EditorBrowsableState.Never)] - public string ItemShadowUrl + public ImageShadow ItemImageShadow { - get - { - return (string)GetValue(ItemShadowUrlProperty); - } - set - { - SetValue(ItemShadowUrlProperty, value); - } - } - - /// - /// Get or set shadow border of item. - /// - [EditorBrowsable(EditorBrowsableState.Never)] - public Rectangle ItemShadowBorder - { - get - { - return (Rectangle)GetValue(ItemShadowBorderProperty); - } - set - { - SetValue(ItemShadowBorderProperty, value); - } + get => (ImageShadow)GetValue(ItemImageShadowProperty); + set => SetValue(ItemImageShadowProperty, value); } /// @@ -591,7 +546,6 @@ namespace Tizen.NUI.Components private Selector overLayBackgroundColorSelector = new Selector(); private string itemBackgroundImageUrl; private Rectangle itemBackgroundBorder = new Rectangle(); - private string itemShadowUrl; - private Rectangle itemShadowBorder = new Rectangle(); + private ImageShadow itemImageShadow; } } diff --git a/src/Tizen.NUI.Components/Controls/Control.cs b/src/Tizen.NUI.Components/Controls/Control.cs index 5257dc8..f633472 100755 --- a/src/Tizen.NUI.Components/Controls/Control.cs +++ b/src/Tizen.NUI.Components/Controls/Control.cs @@ -30,51 +30,6 @@ namespace Tizen.NUI.Components [EditorBrowsable(EditorBrowsableState.Never)] public class Control : VisualView { - /// BackgroundImageProperty - [EditorBrowsable(EditorBrowsableState.Never)] - public new static readonly BindableProperty BackgroundImageProperty = BindableProperty.Create("ControlBackgroundImage", typeof(Selector), typeof(Control), null, propertyChanged: (bindable, oldValue, newValue) => - { - var control = (Control)bindable; - if (null != newValue) - { - control.BackgroundImageSelector.Clone((Selector)newValue); - } - }, - defaultValueCreator: (bindable) => - { - var control = (Control)bindable; - return control.BackgroundImageSelector; - }); - /// BackgroundBorderProperty - [EditorBrowsable(EditorBrowsableState.Never)] - public new static readonly BindableProperty BackgroundImageBorderProperty = BindableProperty.Create("ControlBackgroundImageBorder", typeof(Selector), typeof(Control), default(Rectangle), propertyChanged: (bindable, oldValue, newValue) => - { - var control = (Control)bindable; - if (null != newValue) - { - control.backgroundImageBorderSelector.Clone((Selector)newValue); - } - }, - defaultValueCreator: (bindable) => - { - var control = (Control)bindable; - return control.backgroundImageBorderSelector; - }); - /// BackgroundColorProperty - [EditorBrowsable(EditorBrowsableState.Never)] - public new static readonly BindableProperty BackgroundColorProperty = BindableProperty.Create("ControlBackgroundColor", typeof(Selector), typeof(Control), null, propertyChanged: (bindable, oldValue, newValue) => - { - var control = (Control)bindable; - if (null != newValue) - { - control.BackgroundColorSelector.Clone((Selector)newValue); - } - }, - defaultValueCreator: (bindable) => - { - var control = (Control)bindable; - return control.BackgroundColorSelector; - }); /// Control style. /// 6 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. @@ -84,9 +39,6 @@ namespace Tizen.NUI.Components private TapGestureDetector tapGestureDetector = new TapGestureDetector(); private bool isFocused = false; - internal ImageView backgroundImage = new ImageView(); - internal ImageView shadowImage; - /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API. [EditorBrowsable(EditorBrowsableState.Never)] public ControlStyle Style => ViewStyle as ControlStyle; @@ -137,108 +89,6 @@ namespace Tizen.NUI.Components Initialize(style); } - private TriggerableSelector _backgroundImageSelector; - private TriggerableSelector BackgroundImageSelector - { - get - { - if (null == _backgroundImageSelector) - { - _backgroundImageSelector = new TriggerableSelector(backgroundImage, ImageView.ResourceUrlProperty); - } - return _backgroundImageSelector; - } - } - private TriggerableSelector _backgroundImageBorderSelector; - private TriggerableSelector backgroundImageBorderSelector - { - get - { - if (null == _backgroundImageBorderSelector) - { - _backgroundImageBorderSelector = new TriggerableSelector(backgroundImage, ImageView.BorderProperty); - } - return _backgroundImageBorderSelector; - } - } - private TriggerableSelector _backgroundColorSelector; - private TriggerableSelector BackgroundColorSelector - { - get - { - if (null == _backgroundColorSelector) - { - _backgroundColorSelector = new TriggerableSelector(backgroundImage, View.BackgroundColorProperty); - } - return _backgroundColorSelector; - } - } - /// - /// Override view's BackgroundImage. - /// - /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public new Selector BackgroundImage - { - get => (Selector)GetValue(BackgroundImageProperty); - set => SetValue(BackgroundImageProperty, value); - } - - /// - /// Override view's BackgroundImageBorder. - /// - /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public new Selector BackgroundImageBorder - { - get => (Selector)GetValue(BackgroundImageBorderProperty); - set => SetValue(BackgroundImageBorderProperty, value); - } - /// - /// Override view's BackgroundBorder. - /// - /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public new Selector BackgroundColor - { - get => (Selector)GetValue(BackgroundColorProperty); - set => SetValue(BackgroundColorProperty, value); - } - - /// - /// Shadow image. - /// - /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public Selector ShadowImage - { - get - { - return Style.Shadow.ResourceUrl; - } - set - { - Style.Shadow.ResourceUrl = value; - } - } - - /// - /// Shadow image border. - /// - /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public Selector ShadowImageBorder - { - get - { - return Style.Shadow.Border; - } - set - { - Style.Shadow.Border = value; - } - } - internal void ApplyAttributes(View view, ViewStyle viewStyle) { view.CopyFrom(viewStyle); @@ -273,15 +123,6 @@ namespace Tizen.NUI.Components tapGestureDetector.Detach(this); } - if (backgroundImage != null) - { - Utility.Dispose(backgroundImage); - } - if (shadowImage != null) - { - Utility.Dispose(shadowImage); - } - base.Dispose(type); } @@ -336,37 +177,6 @@ namespace Tizen.NUI.Components isFocused = false; } - /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public override void ApplyStyle(ViewStyle viewStyle) - { - base.ApplyStyle(viewStyle); - - ControlStyle controlStyle = viewStyle as ControlStyle; - - if (null != controlStyle?.Shadow) - { - if (null == shadowImage) - { - shadowImage = new ImageView() - { - WidthResizePolicy = ResizePolicyType.FillToParent, - HeightResizePolicy = ResizePolicyType.FillToParent, - }; - this.Add(shadowImage); - shadowImage.LowerToBottom(); - } - - shadowImage.ApplyStyle(controlStyle.Shadow); - } - if (null != controlStyle.BackgroundImage) - { - backgroundImage.WidthResizePolicy = ResizePolicyType.FillToParent; - backgroundImage.HeightResizePolicy = ResizePolicyType.FillToParent; - this.Add(backgroundImage); - } - } - /// /// Tap gesture callback. /// diff --git a/src/Tizen.NUI.Components/Controls/ImageControl.cs b/src/Tizen.NUI.Components/Controls/ImageControl.cs deleted file mode 100755 index 85e2079..0000000 --- a/src/Tizen.NUI.Components/Controls/ImageControl.cs +++ /dev/null @@ -1,222 +0,0 @@ -/* - * Copyright(c) 2019 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.ComponentModel; -using Tizen.NUI.BaseComponents; -using Tizen.NUI.Binding; - -namespace Tizen.NUI.Components -{ - /// - /// The control component is class of image. Temporarily for SelectButton. - /// - /// 6 - /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public class ImageControl : Control - { - /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ResourceUrlProperty = BindableProperty.Create("ImageControlResourceUrl", typeof(Selector), typeof(ImageControl), null, propertyChanged: (bindable, oldValue, newValue) => - { - var imageControl = (ImageControl)bindable; - if (null != newValue) - { - imageControl.ResourceUrlSelector.Clone((Selector)newValue); - } - }, - defaultValueCreator: (bindable) => - { - var imageControl = (ImageControl)bindable; - return imageControl.ResourceUrlSelector; - }); - /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty BorderProperty = BindableProperty.Create("ImageControlBorder", typeof(Selector), typeof(ImageControl), null, propertyChanged: (bindable, oldValue, newValue) => - { - var imageControl = (ImageControl)bindable; - if (null == newValue) - { - imageControl.BorderSelector.Clone((Selector)newValue); - } - }, - defaultValueCreator: (bindable) => - { - var imageControl = (ImageControl)bindable; - return imageControl.BorderSelector; - }); - - internal ImageView imageView; - - static ImageControl() { } - - /// - /// Construct an empty Control. - /// - /// 6 - /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public ImageControl() : base() - { - Initialize(null); - } - - /// - /// Construct with style. - /// - /// Create style customized by user - /// 6 - /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public ImageControl(ImageControlStyle style) : base(style) - { - Initialize(null); - } - - /// - /// Construct with style - /// - /// Style to be applied - /// 6 - /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public ImageControl(string style) : base(style) - { - Initialize(style); - } - - /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public new ImageControlStyle Style => ViewStyle as ImageControlStyle; - - /// - /// Override view's BackgroundImage. - /// - /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public Selector ResourceUrl - { - get => (Selector)GetValue(ResourceUrlProperty); - set => SetValue(ResourceUrlProperty, value); - } - - /// - /// Override view's BackgroundImageBorder. - /// - /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public Selector Border - { - get => (Selector)GetValue(BorderProperty); - set => SetValue(BorderProperty, value); - } - - private TriggerableSelector _resourceUrlSelector; - private TriggerableSelector ResourceUrlSelector - { - get - { - if (null == _resourceUrlSelector) - { - _resourceUrlSelector = new TriggerableSelector(imageView, ImageView.ResourceUrlProperty); - } - return _resourceUrlSelector; - } - } - private TriggerableSelector _borderSelector; - private TriggerableSelector BorderSelector - { - get - { - if (null == _borderSelector) - { - _borderSelector = new TriggerableSelector(imageView, ImageView.BorderProperty); - } - return _borderSelector; - } - } - - /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public override void ApplyStyle(ViewStyle viewStyle) - { - base.ApplyStyle(viewStyle); - - ImageControlStyle imageControlStyle = viewStyle as ImageControlStyle; - if (null != imageControlStyle) - { - if (null == imageView) - { - imageView = new ImageView() - { - PositionUsesPivotPoint = true, - ParentOrigin = Tizen.NUI.ParentOrigin.Center, - PivotPoint = Tizen.NUI.PivotPoint.Center, - WidthResizePolicy = ResizePolicyType.UseNaturalSize, - HeightResizePolicy = ResizePolicyType.UseNaturalSize, - }; - this.Add(imageView); - } - imageView.RaiseToTop(); - } - } - - /// - /// Dispose Control and all children on it. - /// - /// Dispose type. - /// 6 - /// 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 override void Dispose(DisposeTypes type) - { - if (disposed) - { - return; - } - - if (imageView != null) - { - Utility.Dispose(imageView); - } - - base.Dispose(type); - } - - /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - protected override ViewStyle GetViewStyle() - { - return new ImageControlStyle(); ; - } - - private void Initialize(string style) - { - if (null == imageView) - { - imageView = new ImageView() - { - PositionUsesPivotPoint = true, - ParentOrigin = Tizen.NUI.ParentOrigin.Center, - PivotPoint = Tizen.NUI.PivotPoint.Center, - WidthResizePolicy = ResizePolicyType.UseNaturalSize, - HeightResizePolicy = ResizePolicyType.UseNaturalSize, - }; - this.Add(imageView); - } - } - } -} diff --git a/src/Tizen.NUI.Components/Controls/Popup.cs b/src/Tizen.NUI.Components/Controls/Popup.cs index 781b6c0..9e03e3a 100755 --- a/src/Tizen.NUI.Components/Controls/Popup.cs +++ b/src/Tizen.NUI.Components/Controls/Popup.cs @@ -184,45 +184,19 @@ namespace Tizen.NUI.Components /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API. [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ButtonShadowProperty = BindableProperty.Create(nameof(ButtonShadow), typeof(string), typeof(Popup), string.Empty, propertyChanged: (bindable, oldValue, newValue) => + public static readonly BindableProperty ButtonImageShadowProperty = BindableProperty.Create(nameof(ButtonImageShadow), typeof(ImageShadow), typeof(Popup), null, propertyChanged: (bindable, oldValue, newValue) => { var instance = (Popup)bindable; - if (newValue != null) - { - if (instance.Style.Buttons.Shadow.ResourceUrl == null) - { - instance.Style.Buttons.Shadow.ResourceUrl = new Selector(); - } - instance.btGroup.ItemShadowUrl = (string)newValue; - instance.Style.Buttons.Shadow.ResourceUrl = (string)newValue; - } + ImageShadow shadow = (ImageShadow)newValue; + instance.btGroup.ItemImageShadow = (ImageShadow)ImageShadow.Clone(shadow); + instance.Style.Buttons.ImageShadow = (ImageShadow)ImageShadow.Clone(shadow); }, defaultValueCreator: (bindable) => { var instance = (Popup)bindable; - return instance.Style?.Buttons?.Shadow?.ResourceUrl?.All; + return instance.Style?.Buttons?.ImageShadow?.All; }); - /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ButtonShadowBorderProperty = BindableProperty.Create(nameof(ButtonShadowBorder), typeof(Rectangle), typeof(Popup), new Rectangle(0, 0, 0, 0), propertyChanged: (bindable, oldValue, newValue) => - { - var instance = (Popup)bindable; - if (newValue != null) - { - if (instance.Style.Buttons.Shadow.Border == null) - { - instance.Style.Buttons.Shadow.Border = new Selector(); - } - instance.btGroup.ItemShadowBorder = (Rectangle)newValue; - instance.Style.Buttons.Shadow.Border = (Rectangle)newValue; - } - }, - defaultValueCreator: (bindable) => - { - var instance = (Popup)bindable; - return instance.Style?.Buttons?.Shadow?.Border?.All; - }); private TextLabel titleText; private ButtonGroup btGroup = null; @@ -470,18 +444,6 @@ namespace Tizen.NUI.Components } /// - /// Shadow offset in Popup, including left, right, up and bottom offset. - /// - /// 6 - /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public Vector4 ShadowOffset - { - get; - set; - } - - /// /// Button height in Popup. /// /// 6 @@ -617,41 +579,17 @@ namespace Tizen.NUI.Components } /// - /// Button shadow's resource url in Popup. + /// Button's image shadow in Popup. /// /// 6 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. [EditorBrowsable(EditorBrowsableState.Never)] - public string ButtonShadow + public ImageShadow ButtonImageShadow { - get - { - return (string)GetValue(ButtonShadowProperty); - } - set - { - SetValue(ButtonShadowProperty, value); - } + get => (ImageShadow)GetValue(ButtonImageShadowProperty); + set => SetValue(ButtonImageShadowProperty, value); } - /// - /// Button shadow's border in Popup. - /// - /// 6 - /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public Rectangle ButtonShadowBorder - { - get - { - - return (Rectangle)GetValue(ButtonShadowBorderProperty); - } - set - { - SetValue(ButtonShadowBorderProperty, value); - } - } /// /// Set button text by index. @@ -799,7 +737,6 @@ namespace Tizen.NUI.Components private void UpdateView() { - UpdateShadowExtens(); btGroup.UpdateButton(Style.Buttons); UpdateContentView(); UpdateTitle(); @@ -857,14 +794,6 @@ namespace Tizen.NUI.Components ContentView.RaiseToTop(); } - private void UpdateShadowExtens() - { - if (Style.ShadowExtents != null) - { - Style.Shadow.Size = new Size(Size.Width + Style.ShadowExtents.Start + Style.ShadowExtents.End, Size.Height + Style.ShadowExtents.Top + Style.ShadowExtents.Bottom); - } - } - private void UpdateTitle() { if (titleText != null && string.IsNullOrEmpty(Style.Title.Text.All) && Style.Title.Size != null) diff --git a/src/Tizen.NUI.Components/Style/ButtonStyle.cs b/src/Tizen.NUI.Components/Style/ButtonStyle.cs index 1678d1b..9469c97 100755 --- a/src/Tizen.NUI.Components/Style/ButtonStyle.cs +++ b/src/Tizen.NUI.Components/Style/ButtonStyle.cs @@ -164,7 +164,7 @@ namespace Tizen.NUI.Components /// 6 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. [EditorBrowsable(EditorBrowsableState.Never)] - public ImageControlStyle Icon { get; set; } + public ImageViewStyle Icon { get; set; } /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API. [EditorBrowsable(EditorBrowsableState.Never)] @@ -284,7 +284,7 @@ namespace Tizen.NUI.Components }; Text.PropertyChanged += SubStyleCalledEvent; - Icon = new ImageControlStyle() + Icon = new ImageViewStyle() { PositionUsesPivotPoint = true, ParentOrigin = Tizen.NUI.ParentOrigin.Center, diff --git a/src/Tizen.NUI.Components/Style/ControlStyle.cs b/src/Tizen.NUI.Components/Style/ControlStyle.cs index 8d48d66..6300bfd 100755 --- a/src/Tizen.NUI.Components/Style/ControlStyle.cs +++ b/src/Tizen.NUI.Components/Style/ControlStyle.cs @@ -29,50 +29,6 @@ namespace Tizen.NUI.Components [EditorBrowsable(EditorBrowsableState.Never)] public class ControlStyle : ViewStyle { - /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty BackgroundImageProperty = BindableProperty.Create("ControlBackgroundImage", typeof(Selector), typeof(ControlStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - var controlStyle = (ControlStyle)bindable; - if (null == controlStyle.backgroundImage) controlStyle.backgroundImage = new Selector(); - controlStyle.backgroundImage.Clone(null == newValue ? new Selector() : (Selector)newValue); - }, - defaultValueCreator: (bindable) => - { - var controlStyle = (ControlStyle)bindable; - return controlStyle.backgroundImage; - }); - /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty BackgroundColorProperty = BindableProperty.Create("ControlBackgroundColor", typeof(Selector), typeof(ControlStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - var controlStyle = (ControlStyle)bindable; - if (null == controlStyle.backgroundColor) controlStyle.backgroundColor = new Selector(); - controlStyle.backgroundColor.Clone(null == newValue ? new Selector() : (Selector)newValue); - }, - defaultValueCreator: (bindable) => - { - var controlStyle = (ControlStyle)bindable; - return controlStyle.backgroundColor; - }); - /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty BackgroundImageBorderProperty = BindableProperty.Create("ControlBackgroundImageBorder", typeof(Selector), typeof(ControlStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - var controlStyle = (ControlStyle)bindable; - if (null == controlStyle.backgroundImageBorder) controlStyle.backgroundImageBorder = new Selector(); - controlStyle.backgroundImageBorder.Clone(null == newValue ? new Selector() : (Selector)newValue); - }, - defaultValueCreator: (bindable) => - { - var controlStyle = (ControlStyle)bindable; - return controlStyle.backgroundImageBorder; - }); - - private Selector backgroundImage; - private Selector backgroundImageBorder; - private Selector backgroundColor; - static ControlStyle () { } /// @@ -97,101 +53,11 @@ namespace Tizen.NUI.Components { if(null == style) return; - InitSubstyle(); - this.CopyFrom(style); } - /// Background image resource. - /// This will be public opened in tizen__6.0 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public new Selector BackgroundImage - { - get - { - Selector image = (Selector)GetValue(BackgroundImageProperty); - return (null != image) ? image : backgroundImage = new Selector(); - } - set => SetValue(BackgroundImageProperty, value); - } - - /// Background image border. - /// This will be public opened in tizen__6.0 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public new Selector BackgroundImageBorder - { - get - { - Selector boder = (Selector)GetValue(BackgroundImageBorderProperty); - return (null != boder) ? boder : backgroundImageBorder = new Selector(); - } - set => SetValue(BackgroundImageBorderProperty, value); - } - - /// Background image color. - /// This will be public opened in tizen__6.0 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public new Selector BackgroundColor - { - get - { - Selector color = (Selector)GetValue(BackgroundColorProperty); - return (null != color) ? color : backgroundColor = new Selector(); - } - set => SetValue(BackgroundColorProperty, value); - } - - /// - /// Shadow image's Style. - /// - /// 6 - /// This will be public opened in tizen__6.0 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public ImageViewStyle Shadow { get; set; } - - /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public override void CopyFrom(BindableObject bindableObject) - { - base.CopyFrom(bindableObject); - - ControlStyle controlStyle = bindableObject as ControlStyle; - - if (null != controlStyle) - { - if (null != controlStyle.Shadow) - { - Shadow.CopyFrom(controlStyle.Shadow); - } - if (null != controlStyle.BackgroundImage) - { - if (null == BackgroundImage) BackgroundImage = new Selector(); - BackgroundImage.Clone(controlStyle.BackgroundImage); - } - if (null != controlStyle.BackgroundImageBorder) - { - if (null == BackgroundImageBorder) BackgroundImageBorder = new Selector(); - BackgroundImageBorder.Clone(controlStyle.BackgroundImageBorder); - } - if (null != controlStyle.BackgroundColor) - { - if (null == BackgroundColor) BackgroundColor = new Selector(); - BackgroundColor.Clone(controlStyle.BackgroundColor); - } - } - } - private void InitSubstyle() { - Shadow = new ImageViewStyle() - { - PositionUsesPivotPoint = true, - ParentOrigin = Tizen.NUI.ParentOrigin.Center, - PivotPoint = Tizen.NUI.PivotPoint.Center, - WidthResizePolicy = ResizePolicyType.FillToParent, - HeightResizePolicy = ResizePolicyType.FillToParent - }; - Shadow.PropertyChanged += SubStyleCalledEvent; } private void SubStyleCalledEvent(object sender, global::System.EventArgs e) diff --git a/src/Tizen.NUI.Components/Style/ImageControlStyle.cs b/src/Tizen.NUI.Components/Style/ImageControlStyle.cs deleted file mode 100755 index 6818b75..0000000 --- a/src/Tizen.NUI.Components/Style/ImageControlStyle.cs +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright(c) 2019 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.Collections.Generic; -using System.ComponentModel; -using Tizen.NUI.BaseComponents; -using Tizen.NUI.Binding; - -namespace Tizen.NUI.Components -{ - /// - /// ImageControlStyle is a class which saves Button's ux data. - /// - /// 6 - /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public class ImageControlStyle : ControlStyle - { - /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ResourceUrlProperty = BindableProperty.Create("ImageControlResourceUrl", typeof(Selector), typeof(ImageControlStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - var imageControlStyle = (ImageControlStyle)bindable; - if (null == imageControlStyle.resourceUrlSelector) imageControlStyle.resourceUrlSelector = new Selector(); - imageControlStyle.resourceUrlSelector.Clone(null == newValue ? new Selector() : (Selector)newValue); - }, - defaultValueCreator: (bindable) => - { - var imageControlStyle = (ImageControlStyle)bindable; - return imageControlStyle.resourceUrlSelector; - }); - /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty BorderProperty = BindableProperty.Create("ImageControlBorder", typeof(Selector), typeof(ImageControlStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - var imageControlStyle = (ImageControlStyle)bindable; - if (null == imageControlStyle.borderSelector) imageControlStyle.borderSelector = new Selector(); - imageControlStyle.borderSelector.Clone((Selector)newValue); - }, - defaultValueCreator: (bindable) => - { - var imageControlStyle = (ImageControlStyle)bindable; - return imageControlStyle.borderSelector; - }); - - private Selector resourceUrlSelector; - private Selector borderSelector; - - static ImageControlStyle() { } - - /// - /// Creates a new instance of a ImageControlStyle. - /// - /// 6 - /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public ImageControlStyle() : base() { } - - /// - /// Creates a new instance of a ImageControlStyle with style. - /// - /// Create ImageControlStyle by style customized by user. - /// 6 - /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public ImageControlStyle(ImageControlStyle style) : base(style) - { - if(null == style) return; - - this.CopyFrom(style); - } - - /// - /// Image URL. - /// - /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public Selector ResourceUrl - { - get - { - Selector url = (Selector)GetValue(ResourceUrlProperty); - return (null != url) ? url : resourceUrlSelector = new Selector(); - } - set => SetValue(ResourceUrlProperty, value); - } - - /// - /// Image border. - /// - /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public Selector Border - { - get - { - Selector border = (Selector)GetValue(BorderProperty); - return (null != border) ? border : borderSelector = new Selector(); - } - set => SetValue(BorderProperty, value); - } - - /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public override void CopyFrom(BindableObject bindableObject) - { - base.CopyFrom(bindableObject); - - ImageControlStyle imageControlStyle = bindableObject as ImageControlStyle; - - if (null != imageControlStyle) - { - if (null != imageControlStyle.ResourceUrl) - { - if (null == ResourceUrl) ResourceUrl = new Selector(); - ResourceUrl.Clone(imageControlStyle.ResourceUrl); - } - if (null != imageControlStyle.Border) - { - if (null == Border) Border = new Selector(); - Border.Clone(imageControlStyle.Border); - } - } - } - } -} diff --git a/src/Tizen.NUI.Components/Style/PopupStyle.cs b/src/Tizen.NUI.Components/Style/PopupStyle.cs index efbba28..ab365f5 100755 --- a/src/Tizen.NUI.Components/Style/PopupStyle.cs +++ b/src/Tizen.NUI.Components/Style/PopupStyle.cs @@ -63,14 +63,6 @@ namespace Tizen.NUI.Components public TextLabelStyle Title { get; set; } /// - /// Shadow offset. - /// - /// 6 - /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API. - [EditorBrowsable(EditorBrowsableState.Never)] - public Extents ShadowExtents { get; set; } - - /// /// Popup button's attributes. /// /// 6 @@ -100,17 +92,17 @@ namespace Tizen.NUI.Components { Buttons.CopyFrom(popupAttributes.Buttons); } - - if (popupAttributes.ShadowExtents != null) - { - ShadowExtents = new Extents(popupAttributes.ShadowExtents.Start, popupAttributes.ShadowExtents.End, popupAttributes.ShadowExtents.Top, popupAttributes.ShadowExtents.Bottom); - } } } private void InitSubStyle() { - ShadowExtents = new Extents(24, 24, 24, 24); + // TODO Apply proper shadow as a default for a Popup + BoxShadow = new Shadow() + { + Offset = new Vector2(5, 5), + }; + Title = new TextLabelStyle() { Size = new Size(0, 0), diff --git a/src/Tizen.NUI/src/public/BaseComponents/Style/ViewStyle.cs b/src/Tizen.NUI/src/public/BaseComponents/Style/ViewStyle.cs index a07c71b..3c5f4fe 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/Style/ViewStyle.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/Style/ViewStyle.cs @@ -750,6 +750,8 @@ namespace Tizen.NUI.BaseComponents { var viewStyle = (ViewStyle)bindable; viewStyle.imageShadow = SelectorHelper.Clone(newValue); + + if (viewStyle.imageShadow != null) viewStyle.boxShadow = null; }, defaultValueCreator: (bindable) => { @@ -763,6 +765,8 @@ namespace Tizen.NUI.BaseComponents { var viewStyle = (ViewStyle)bindable; viewStyle.boxShadow = SelectorHelper.Clone(newValue); + + if (viewStyle.boxShadow != null) viewStyle.imageShadow = null; }, defaultValueCreator: (bindable) => { diff --git a/src/Tizen.NUI/src/public/BaseComponents/ViewBindableProperty.cs b/src/Tizen.NUI/src/public/BaseComponents/ViewBindableProperty.cs index 59d7fe2..1b54fac 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/ViewBindableProperty.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/ViewBindableProperty.cs @@ -1380,11 +1380,13 @@ namespace Tizen.NUI.BaseComponents /// ImageShadow Property /// [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ImageShadowProperty = BindableProperty.Create("ImageShadow", typeof(ImageShadow), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) => + public static readonly BindableProperty ImageShadowProperty = BindableProperty.Create(nameof(ImageShadow), typeof(ImageShadow), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) => { var view = (View)bindable; view.imageShadow = SelectorHelper.Clone(newValue, view); Tizen.NUI.Object.SetProperty(view.swigCPtr, Interop.ViewProperty.View_Property_SHADOW_get(), ImageShadow.ToPropertyValue(view.imageShadow)); + + if (view.imageShadow != null) view.boxShadow = null; }, defaultValueCreator: (bindable) => { @@ -1395,11 +1397,13 @@ namespace Tizen.NUI.BaseComponents /// Shadow Property /// [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty BoxShadowProperty = BindableProperty.Create("BoxShadow", typeof(Shadow), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) => + public static readonly BindableProperty BoxShadowProperty = BindableProperty.Create(nameof(BoxShadow), typeof(Shadow), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) => { var view = (View)bindable; view.boxShadow = SelectorHelper.Clone(newValue, view); Tizen.NUI.Object.SetProperty(view.swigCPtr, Interop.ViewProperty.View_Property_SHADOW_get(), Shadow.ToPropertyValue(view.boxShadow)); + + if (view.boxShadow != null) view.imageShadow = null; }, defaultValueCreator: (bindable) => { diff --git a/src/Tizen.NUI/src/public/BaseComponents/ViewEvent.cs b/src/Tizen.NUI/src/public/BaseComponents/ViewEvent.cs index e586e16..4cd9f5f 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/ViewEvent.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/ViewEvent.cs @@ -604,12 +604,12 @@ namespace Tizen.NUI.BaseComponents PivotPoint = new Position(x, y, z); } - private void OnImageShadowChanged(TransformablePropertyMap instance) + private void OnImageShadowChanged(ShadowBase instance) { ImageShadow = (ImageShadow)instance; } - private void OnBoxShadowChanged(TransformablePropertyMap instance) + private void OnBoxShadowChanged(ShadowBase instance) { BoxShadow = (Shadow)instance; } diff --git a/src/Tizen.NUI/src/public/ViewProperty/ImageShadow.cs b/src/Tizen.NUI/src/public/ViewProperty/ImageShadow.cs index 9e03c5c..9032365 100644 --- a/src/Tizen.NUI/src/public/ViewProperty/ImageShadow.cs +++ b/src/Tizen.NUI/src/public/ViewProperty/ImageShadow.cs @@ -24,7 +24,7 @@ namespace Tizen.NUI /// The Shadow composed of image for View /// [EditorBrowsable(EditorBrowsableState.Never)] - public class ImageShadow : TransformablePropertyMap, Tizen.NUI.ICloneable + public class ImageShadow : ShadowBase, Tizen.NUI.ICloneable { private string url; @@ -36,16 +36,32 @@ namespace Tizen.NUI [EditorBrowsable(EditorBrowsableState.Never)] public ImageShadow() : base() { + propertyMap[Visual.Property.Type] = new PropertyValue((int)Visual.Type.NPatch); } internal ImageShadow(ImageShadow other, PropertyChangedCallback callback = null) : base(other) { + propertyMap[Visual.Property.Type] = new PropertyValue((int)Visual.Type.NPatch); + Url = other.Url; Border = other.Border; OnPropertyChanged = callback; } /// + /// The string conversion + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public static implicit operator ImageShadow(string value) + { + ImageShadow imageShadow = new ImageShadow() + { + Url = value ?? "", + }; + return imageShadow; + } + + /// /// Deep copy method /// [EditorBrowsable(EditorBrowsableState.Never)] @@ -59,6 +75,21 @@ namespace Tizen.NUI }; } + /// + /// Deep copy method (static) + /// This provides nullity check. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + static public object Clone(ImageShadow instance) + { + return instance == null ? null : new ImageShadow() { + Offset = instance.offset, + Scale = instance.scale, + Url = instance.url, + Border = instance.border + }; + } + private void OnBorderChanged(int x, int y, int width, int height) { UpdateBorder(); @@ -112,28 +143,9 @@ namespace Tizen.NUI } } - override internal string ToDebugString() - { - string result = ""; - // TODO - return result; - } - override internal bool IsValid() { - return url != null; - } - - static internal new PropertyValue ToPropertyValue(TransformablePropertyMap instance) - { - if (instance == null || !instance.IsValid()) - { - return new PropertyValue(); - } - - instance.propertyMap.Insert(Visual.Property.Type, new PropertyValue((int)Visual.Type.NPatch)); - - return new PropertyValue(instance.propertyMap); + return !string.IsNullOrEmpty(url); } } } diff --git a/src/Tizen.NUI/src/public/ViewProperty/Shadow.cs b/src/Tizen.NUI/src/public/ViewProperty/Shadow.cs index 3bbb610..6f79f92 100644 --- a/src/Tizen.NUI/src/public/ViewProperty/Shadow.cs +++ b/src/Tizen.NUI/src/public/ViewProperty/Shadow.cs @@ -24,7 +24,7 @@ namespace Tizen.NUI /// The platform provided shadow drawing for View /// [EditorBrowsable(EditorBrowsableState.Never)] - public class Shadow : TransformablePropertyMap, Tizen.NUI.ICloneable + public class Shadow : ShadowBase, Tizen.NUI.ICloneable { private static readonly Color noColor = new Color(0, 0, 0, 0); @@ -40,11 +40,15 @@ namespace Tizen.NUI [EditorBrowsable(EditorBrowsableState.Never)] public Shadow() : base() { + propertyMap[Visual.Property.Type] = new PropertyValue((int)Visual.Type.Color); + Color = defaultColor; } internal Shadow(Shadow other, PropertyChangedCallback callback = null) : base(other) { + propertyMap[Visual.Property.Type] = new PropertyValue((int)Visual.Type.Color); + Color = other.Color; BlurRadius = other.BlurRadius; OnPropertyChanged = callback; @@ -127,30 +131,10 @@ namespace Tizen.NUI } } - override internal string ToDebugString() - { - string result = ""; - // TODO - return result; - } - override internal bool IsValid() { return color != null && color.A != 0; } - - static internal new PropertyValue ToPropertyValue(TransformablePropertyMap instance) - { - if (instance == null || !instance.IsValid()) - { - return new PropertyValue(); - } - - // TODO to be other blurable visual in the future - instance.propertyMap.Insert(Visual.Property.Type, new PropertyValue((int)Visual.Type.Color)); - - return new PropertyValue(instance.propertyMap); - } } } diff --git a/src/Tizen.NUI/src/public/ViewProperty/TransformablePropertyMap.cs b/src/Tizen.NUI/src/public/ViewProperty/ShadowBase.cs similarity index 51% rename from src/Tizen.NUI/src/public/ViewProperty/TransformablePropertyMap.cs rename to src/Tizen.NUI/src/public/ViewProperty/ShadowBase.cs index 84f4ec0..06ac918 100644 --- a/src/Tizen.NUI/src/public/ViewProperty/TransformablePropertyMap.cs +++ b/src/Tizen.NUI/src/public/ViewProperty/ShadowBase.cs @@ -1,5 +1,5 @@ /* - * Copyright(c) 2019 Samsung Electronics Co., Ltd. + * Copyright(c) 2020 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. @@ -25,9 +25,9 @@ namespace Tizen.NUI /// This class can be used to convert visual properties to map. /// [EditorBrowsable(EditorBrowsableState.Never)] - abstract public class TransformablePropertyMap + abstract public class ShadowBase { - internal delegate void PropertyChangedCallback(TransformablePropertyMap instance); + internal delegate void PropertyChangedCallback(ShadowBase instance); internal PropertyChangedCallback OnPropertyChanged = null; @@ -35,18 +35,16 @@ namespace Tizen.NUI private static readonly Vector2 noScale = new Vector2(1, 1); - private static readonly Vector2 defaultOffset = new Vector2(0, 0); - - private static readonly Vector2 defaultOffsetPolicy = new Vector2((int)VisualTransformPolicyType.Absolute, (int)VisualTransformPolicyType.Absolute); + private static readonly Vector2 absoluteTransformPolicy = new Vector2((int)VisualTransformPolicyType.Absolute, (int)VisualTransformPolicyType.Absolute); /// - /// The offset value that tansform should have in common + /// The location offset value from the View /// protected internal Vector2 offset; /// - /// The size value in scale that tansform should have in common + /// The size value in scale /// protected internal Vector2 scale; @@ -56,15 +54,10 @@ namespace Tizen.NUI protected internal PropertyMap propertyMap; /// - /// The transform property map - /// - protected internal PropertyMap transformMap; - - /// /// Constructor /// [EditorBrowsable(EditorBrowsableState.Never)] - public TransformablePropertyMap() : this(defaultOffset, noScale) + public ShadowBase() : this(noOffset, noScale) { } @@ -72,82 +65,32 @@ namespace Tizen.NUI /// Copy Constructor /// [EditorBrowsable(EditorBrowsableState.Never)] - public TransformablePropertyMap(TransformablePropertyMap other) : this(other.offset, other.scale) + public ShadowBase(ShadowBase other) : this(other.offset, other.scale) { } /// /// Constructor /// - protected internal TransformablePropertyMap(Vector2 offset, Vector2 scale) + protected internal ShadowBase(Vector2 offset, Vector2 scale) { propertyMap = new PropertyMap(); - transformMap = new PropertyMap(); - transformMap[(int)VisualTransformPropertyType.OffsetPolicy] = new PropertyValue(defaultOffsetPolicy); Offset = offset; Scale = scale; - propertyMap[Visual.Property.Transform] = new PropertyValue(transformMap); } private void OnOffsetChanged(float x, float y) { - UpdateOffset(); - } - - private void OnScaleChanged(float widht, float height) - { - UpdateScale(); - } - - private void UpdateOffset() - { - if (!ClearTransformMapIfNeeds()) - { - transformMap[(int)VisualTransformPropertyType.Offset] = PropertyValue.CreateWithGuard(offset); - propertyMap[Visual.Property.Transform] = new PropertyValue(transformMap); - } OnPropertyChanged?.Invoke(this); } - private void UpdateScale() + private void OnScaleChanged(float widht, float height) { - if (!ClearTransformMapIfNeeds()) - { - transformMap[(int)VisualTransformPropertyType.Size] = PropertyValue.CreateWithGuard(scale); - propertyMap[Visual.Property.Transform] = new PropertyValue(transformMap); - } OnPropertyChanged?.Invoke(this); } /// - /// Indicates whether the transform map is needed or not. - /// This checks offset and scale values are valid. - /// It can be overwritten in the derived class. - /// - virtual protected internal bool NeedTransformMap() - { - return (offset != null && !offset.Equals(noOffset)) || (scale != null && !scale.Equals(noScale)); - } - - /// - /// If this map does not need to have transform property(= no offset and no size), - /// clear existing transform map and return true. - /// Return false when it needs to transform. - /// - protected internal bool ClearTransformMapIfNeeds() - { - if (!NeedTransformMap()) - { - transformMap.Clear(); - transformMap[(int)VisualTransformPropertyType.OffsetPolicy] = new PropertyValue(defaultOffsetPolicy); - propertyMap[Visual.Property.Transform] = new PropertyValue(); - return true; - } - return false; - } - - /// /// The position offset value (x, y) from the top left corner. /// [EditorBrowsable(EditorBrowsableState.Never)] @@ -159,8 +102,8 @@ namespace Tizen.NUI } set { - offset = value == null? null : new Vector2(OnOffsetChanged, value); - UpdateOffset(); + offset = new Vector2(OnOffsetChanged, value ?? noOffset); + OnPropertyChanged?.Invoke(this); } } @@ -177,18 +120,41 @@ namespace Tizen.NUI } set { - scale = value == null? null : new Vector2(OnScaleChanged, value); - UpdateScale(); + scale = new Vector2(OnScaleChanged, value ?? noScale); + OnPropertyChanged?.Invoke(this); } } - abstract internal string ToDebugString(); + private PropertyValue GetTransformMap() + { + var transformMap = new PropertyMap(); + + if (!offset.Equals(noOffset)) + { + transformMap[(int)VisualTransformPropertyType.OffsetPolicy] = new PropertyValue(absoluteTransformPolicy); + transformMap[(int)VisualTransformPropertyType.Offset] = PropertyValue.CreateWithGuard(offset); + } + + if (!scale.Equals(noScale)) + { + transformMap[(int)VisualTransformPropertyType.Size] = PropertyValue.CreateWithGuard(scale); + } + + return transformMap.Count() == 0 ? new PropertyValue() : new PropertyValue(transformMap); + } abstract internal bool IsValid(); - static internal PropertyValue ToPropertyValue(TransformablePropertyMap instance) + static internal PropertyValue ToPropertyValue(ShadowBase instance) { - return (instance != null && instance.IsValid()) ? new PropertyValue(instance.propertyMap) : new PropertyValue(); + if (instance == null || !instance.IsValid()) + { + return new PropertyValue(); + } + + instance.propertyMap[Visual.Property.Transform] = instance.GetTransformMap(); + + return new PropertyValue(instance.propertyMap); } } } diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/SampleMain.cs b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/SampleMain.cs index b36b74a..8913772 100755 --- a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/SampleMain.cs +++ b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/SampleMain.cs @@ -23,181 +23,5 @@ namespace Tizen.NUI.Samples return @"/opt/usr/globalapps/org.tizen.example.Tizen.NUI.Samples/res/images/VD/"; } } - - public class SampleMain : NUIApplication, IExample - { - public void Activate() - { - defaultFocusIndicator = new View(); - defaultFocusIndicator.BackgroundColor = Color.Transparent; - FocusManager.Instance.FocusIndicator = defaultFocusIndicator; - - Window.Instance.BackgroundColor = new Color(1.0f, 0.92f, 0.80f, 1.0f); - Window.Instance.GetDefaultLayer().Add(container); - FocusManager.Instance.SetCurrentFocusView(label[currentIndex]); - } - - public void Deactivate() - { - Window.Instance.BackgroundColor = new Color(0.96f, 0.96f, 0.86f, 1.0f); - View currentView = FocusManager.Instance.GetCurrentFocusView(); - currentIndex = Array.FindIndex(label, x => x == currentView); - - Window.Instance.GetDefaultLayer().Remove(container); - } - - protected override void OnCreate() - { - base.OnCreate(); - container = new FlexContainer(); - container.Size2D = new Size2D(Window.Instance.Size.Width, Window.Instance.Size.Height); - container.PivotPoint = PivotPoint.TopLeft; - container.FlexWrap = FlexContainer.WrapType.Wrap; - container.FlexDirection = (int)FlexContainer.FlexDirectionType.Column; - - var examples = from type in Assembly.GetEntryAssembly().GetTypes() - where typeof(IExample).GetTypeInfo().IsAssignableFrom(type) && type.Namespace == this.GetType().Namespace - && type != this.GetType() && type.GetTypeInfo().IsClass - orderby type.Name ascending - select type.Name; - - label = new MyTextView[examples.Count()]; - for (int i = 0; i < label.Length; i++) - { - label[i] = new MyTextView(); - label[i].Text = examples.ElementAt(i); - label[i].Size = new Size(300, 40, 0); - label[i].FlexMargin = new Vector4(20, 20, 40, 20); - label[i].PointSize = 10; - label[i].KeyEvent += SampleMain_KeyEvent; - label[i].TouchEvent += SampleMain_TouchEvent; - label[i].PivotPoint = PivotPoint.TopLeft; - container.Add(label[i]); - } - - label.First().UpFocusableView = label.Last(); - label.Last().DownFocusableView = label.First(); - - Window.Instance.KeyEvent += Instance_Key; - - Activate(); - sampleStack.Push(this); - } - - private bool SampleMain_TouchEvent(object source, View.TouchEventArgs e) - { - TextLabel textLabel = source as TextLabel; - string sampleName = textLabel.Text; - RunSample("Tizen.NUI.Samples", sampleName); - return false; ; - } - - public void ExitSample() - { - if (sampleStack.Count() == 1) - { - Exit(); - Environment.Exit(0); - return; - } - - IExample currentSample = sampleStack.Pop(); - - currentSample.Deactivate(); - currentSample = null; - - FullGC(); - - IExample nextSample = sampleStack.Peek(); - nextSample.Activate(); - } - - private void Instance_Key(object sender, Window.KeyEventArgs e) - { - if (e.Key.State == Key.StateType.Down && (e.Key.KeyPressedName == "BackSpace" || e.Key.KeyPressedName == "XF86Back" || e.Key.KeyPressedName == "Escape")) - { - ExitSample(); - } - } - public void RunSample(string @namespace, string sampleName) - { - object item = Activator.CreateInstance(global::System.Type.GetType(@namespace + "." + sampleName)); - if (item is IExample) - { - IExample currentSample = sampleStack.Peek(); - currentSample.Deactivate(); - - FullGC(); - - currentSample = item as IExample; - sampleStack.Push(currentSample); - - currentSample.Activate(); - } - } - private void FullGC() - { - global::System.GC.Collect(); - global::System.GC.WaitForPendingFinalizers(); - global::System.GC.Collect(); - } - private bool SampleMain_KeyEvent(object source, View.KeyEventArgs e) - { - TextLabel textLabel = source as TextLabel; - - if (e.Key.State == Key.StateType.Down) - { - if (e.Key.KeyPressedName == "Return") - { - string sampleName = textLabel.Text; - - RunSample("Tizen.NUI.Samples", sampleName); - - return true; - } - } - - return false; - } - - MyTextView[] label; - FlexContainer container; - View defaultFocusIndicator; - int currentIndex = 0; - Stack sampleStack = new Stack(); - } - - public class MyTextView : TextLabel - { - Animation focusInAni; - Animation focusOutAni; - - public MyTextView() - { - this.Focusable = true; - this.FocusGained += MyTextView_FocusGained; - this.FocusLost += MyTextView_FocusLost; - - focusInAni = new Animation(400); - focusOutAni = new Animation(400); - - focusInAni.AnimateTo(this, "Scale", new Vector3(1.2f, 1.2f, 1.0f)); - focusOutAni.AnimateTo(this, "Scale", new Vector3(1.0f, 1.0f, 1.0f)); - } - - private void MyTextView_FocusLost(object sender, EventArgs e) - { - focusOutAni.Play(); - this.BackgroundColor = Color.Transparent; - this.TextColor = Color.Black; - } - - private void MyTextView_FocusGained(object sender, EventArgs e) - { - focusInAni.Play(); - this.BackgroundColor = new Color(0.69f, 0.77f, 0.87f, 1.0f); - this.TextColor = Color.Red; - } - } } diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/AnimatedImageViewTest.cs b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/AnimatedImageViewTest.cs index 5f0deac..911af22 100755 --- a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/AnimatedImageViewTest.cs +++ b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/AnimatedImageViewTest.cs @@ -65,10 +65,10 @@ namespace Tizen.NUI.Samples }, BackgroundImageBorder = new Selector { All = new Rectangle(5, 5, 5, 5) }, - Shadow = new ImageViewStyle + ImageShadow = new ImageShadow { - ResourceUrl = new Selector { All = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png" }, - Border = new Selector { All = new Rectangle(5, 5, 5, 5) } + Url = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png", + Border = new Rectangle(5, 5, 5, 5) }, Overlay = new ImageViewStyle diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/ButtonSample.cs b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/ButtonSample.cs index 9fd85ac..1d2608e 100755 --- a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/ButtonSample.cs +++ b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/ButtonSample.cs @@ -87,8 +87,11 @@ namespace Tizen.NUI.Samples utilityBasicButton.IsSelectable = true; utilityBasicButton.Style.BackgroundImage = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_normal.png"; utilityBasicButton.Style.BackgroundImageBorder = new Rectangle(5, 5, 5, 5); - utilityBasicButton.Style.Shadow.ResourceUrl = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png"; - utilityBasicButton.Style.Shadow.Border = new Rectangle(5, 5, 5, 5); + utilityBasicButton.Style.ImageShadow = new ImageShadow + { + Url = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png", + Border = new Rectangle(5, 5, 5, 5) + }; utilityBasicButton.Style.Overlay.ResourceUrl = new Selector { Pressed = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_press_overlay.png", @@ -115,8 +118,11 @@ namespace Tizen.NUI.Samples utilityServiceButton = new Button(); utilityServiceButton.Style.BackgroundImage = CommonResource.GetFHResourcePath() + "3. Button/rectangle_point_btn_normal.png"; utilityServiceButton.Style.BackgroundImageBorder = new Rectangle(5, 5, 5, 5); - utilityServiceButton.Style.Shadow.ResourceUrl = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png"; - utilityServiceButton.Style.Shadow.Border = new Rectangle(5, 5, 5, 5); + utilityServiceButton.Style.ImageShadow = new ImageShadow + { + Url = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png", + Border = new Rectangle(5, 5, 5, 5) + }; utilityServiceButton.Style.Overlay.ResourceUrl = new Selector { Pressed = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_press_overlay.png", @@ -145,8 +151,11 @@ namespace Tizen.NUI.Samples }; utilityToggleButton.Style.BackgroundImageBorder = new Rectangle(5, 5, 5, 5); - utilityToggleButton.Style.Shadow.ResourceUrl = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png"; - utilityToggleButton.Style.Shadow.Border = new Rectangle(5, 5, 5, 5); + utilityToggleButton.Style.ImageShadow = new ImageShadow + { + Url = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png", + Border = new Rectangle(5, 5, 5, 5) + }; utilityToggleButton.Style.Overlay.ResourceUrl = new Selector { Pressed = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_press_overlay.png", @@ -179,8 +188,11 @@ namespace Tizen.NUI.Samples Selected = CommonResource.GetFHResourcePath() + "3. Button/oval_toggle_btn_select.png", }; utilityOvalButton.Style.BackgroundImageBorder = new Rectangle(5, 5, 5, 5); - utilityOvalButton.Style.Shadow.ResourceUrl = CommonResource.GetFHResourcePath() + "3. Button/oval_toggle_btn_shadow.png"; - utilityOvalButton.Style.Shadow.Border = new Rectangle(5, 5, 5, 5); + utilityOvalButton.Style.ImageShadow = new ImageShadow + { + Url = CommonResource.GetFHResourcePath() + "3. Button/oval_toggle_btn_shadow.png", + Border = new Rectangle(5, 5, 5, 5) + }; utilityOvalButton.Style.Overlay.ResourceUrl = new Selector { Pressed = CommonResource.GetFHResourcePath() + "3. Button/oval_toggle_btn_press_overlay.png", @@ -199,10 +211,10 @@ namespace Tizen.NUI.Samples IsSelectable = true, BackgroundImage = new Selector { All = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_normal.png" }, BackgroundImageBorder = new Selector { All = new Rectangle(5, 5, 5, 5) }, - Shadow = new ImageViewStyle + ImageShadow = new ImageShadow { - ResourceUrl = new Selector { All = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png" }, - Border = new Selector { All = new Rectangle(5, 5, 5, 5) } + Url = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png", + Border = new Rectangle(5, 5, 5, 5) }, Overlay = new ImageViewStyle @@ -242,10 +254,10 @@ namespace Tizen.NUI.Samples BackgroundImage = new Selector { All = CommonResource.GetFHResourcePath() + "3. Button/[Button] App Primary Color/rectangle_point_btn_normal_24c447.png" }, BackgroundImageBorder = new Selector { All = new Rectangle(5, 5, 5, 5) }, - Shadow = new ImageViewStyle + ImageShadow = new ImageShadow { - ResourceUrl = new Selector { All = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png" }, - Border = new Selector { All = new Rectangle(5, 5, 5, 5) } + Url = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png", + Border = new Rectangle(5, 5, 5, 5) }, Overlay = new ImageViewStyle @@ -287,10 +299,10 @@ namespace Tizen.NUI.Samples }, BackgroundImageBorder = new Selector { All = new Rectangle(5, 5, 5, 5) }, - Shadow = new ImageViewStyle + ImageShadow = new ImageShadow { - ResourceUrl = new Selector { All = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png" }, - Border = new Selector { All = new Rectangle(5, 5, 5, 5) } + Url = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png", + Border = new Rectangle(5, 5, 5, 5) }, Overlay = new ImageViewStyle @@ -335,10 +347,10 @@ namespace Tizen.NUI.Samples }, BackgroundImageBorder = new Selector { All = new Rectangle(5, 5, 5, 5) }, - Shadow = new ImageViewStyle + ImageShadow = new ImageShadow { - ResourceUrl = new Selector { All = CommonResource.GetFHResourcePath() + "3. Button/oval_toggle_btn_shadow.png" }, - Border = new Selector { All = new Rectangle(5, 5, 5, 5) } + Url = CommonResource.GetFHResourcePath() + "3. Button/oval_toggle_btn_shadow.png", + Border = new Rectangle(5, 5, 5, 5) }, Overlay = new ImageViewStyle diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/CheckBoxSample.cs b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/CheckBoxSample.cs index 5b72953..32306b2 100755 --- a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/CheckBoxSample.cs +++ b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/CheckBoxSample.cs @@ -91,7 +91,7 @@ namespace Tizen.NUI.Samples Disabled = "", DisabledSelected = CommonResource.GetFHResourcePath() + "9. Controller/controller_btn_check.png", }; - utilityCheckBox[i].Style.Icon.Shadow.ResourceUrl = new Selector + utilityCheckBox[i].Style.Icon.ImageShadow = new Selector { Normal = "", Selected = CommonResource.GetFHResourcePath() + "9. Controller/controller_btn_check_shadow.png", @@ -207,7 +207,7 @@ namespace Tizen.NUI.Samples ButtonStyle utilityAttrs = new ButtonStyle { - Icon = new ImageControlStyle + Icon = new ImageViewStyle { Size = new Size(48, 48), Opacity = new Selector @@ -231,21 +231,18 @@ namespace Tizen.NUI.Samples Disabled = "", DisabledSelected = CommonResource.GetFHResourcePath() + "9. Controller/controller_btn_check.png", }, - Shadow = new ImageViewStyle + ImageShadow = new Selector { - ResourceUrl = new Selector - { - Normal = "", - Selected = CommonResource.GetFHResourcePath() + "9. Controller/controller_btn_check_shadow.png", - Disabled = "", - DisabledSelected = CommonResource.GetFHResourcePath() + "9. Controller/controller_btn_check_shadow.png", - }, + Normal = "", + Selected = CommonResource.GetFHResourcePath() + "9. Controller/controller_btn_check_shadow.png", + Disabled = "", + DisabledSelected = CommonResource.GetFHResourcePath() + "9. Controller/controller_btn_check_shadow.png", }, } }; ButtonStyle familyAttrs = new ButtonStyle { - Icon = new ImageControlStyle + Icon = new ImageViewStyle { Size = new Size(48, 48), Opacity = new Selector @@ -266,7 +263,7 @@ namespace Tizen.NUI.Samples }; ButtonStyle foodAttrs = new ButtonStyle { - Icon = new ImageControlStyle + Icon = new ImageViewStyle { Size = new Size(48, 48), Position = new Position(0, 0), @@ -288,7 +285,7 @@ namespace Tizen.NUI.Samples }; ButtonStyle kitchenAttrs = new ButtonStyle { - Icon = new ImageControlStyle + Icon = new ImageViewStyle { Size = new Size(48, 48), Position = new Position(0, 0), diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/DaliDemo/DaliDemo.cs b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/DaliDemo/DaliDemo.cs index 25990a1..02989b2 100755 --- a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/DaliDemo/DaliDemo.cs +++ b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/DaliDemo/DaliDemo.cs @@ -95,6 +95,7 @@ namespace Tizen.NUI.Samples CreateDaliDemo(); Window.Instance.KeyEvent += Instance_KeyEvent; + Window.Instance.BackgroundColor = Color.White; } private void Instance_KeyEvent(object sender, Window.KeyEventArgs e) diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/DropDownSample.cs b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/DropDownSample.cs index 980d50d..fead285 100755 --- a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/DropDownSample.cs +++ b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/DropDownSample.cs @@ -151,7 +151,7 @@ namespace Tizen.NUI.Samples TextColor = new Selector { All = new Color(0, 0, 0, 1) }, FontFamily = "SamsungOneUI 500", }, - Icon = new ImageControlStyle + Icon = new ImageViewStyle { Size = new Size(48, 48), ResourceUrl = new Selector { All = CommonResource.GetFHResourcePath() + "6. List/list_ic_dropdown.png" }, diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/PopupSample.cs b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/PopupSample.cs index f8ad063..f0bcbac 100755 --- a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/PopupSample.cs +++ b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/PopupSample.cs @@ -62,10 +62,17 @@ namespace Tizen.NUI.Samples popup.Style.Title.Position = new Position(64, 52); popup.Style.Title.Text = "Popup Title"; - // Shadow and background - popup.Style.ShadowExtents = new Extents(24, 24, 24, 24); - popup.ShadowImage = CommonResource.GetFHResourcePath() + "11. Popup/popup_background_shadow.png"; - popup.ShadowImageBorder = new Rectangle(0, 0, 105, 105); + // Shadow + popup.Style.ImageShadow = new ImageShadow + { + Url = CommonResource.GetFHResourcePath() + "11. Popup/popup_background_shadow.png", + Border = new Rectangle(24, 24, 24, 24), + Offset = new Vector2(-24, -24), + // TODO We do not have shadow extents now, so replace it to scale value + Scale = new Vector2(1080f/1032f, 448f/400f), + }; + + // Background popup.BackgroundImage = CommonResource.GetFHResourcePath() + "11. Popup/popup_background.png"; popup.BackgroundImageBorder = new Rectangle(0, 0, 81, 81); @@ -80,8 +87,11 @@ namespace Tizen.NUI.Samples Pressed = new Color(0.0f, 0.0f, 0.0f, 0.1f), Selected = new Color(1.0f, 1.0f, 1.0f, 1.0f), }; - popup.ButtonShadow = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png"; - popup.ButtonShadowBorder = new Rectangle(5, 5, 5, 5); + popup.ButtonImageShadow = new ImageShadow + { + Url = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png", + Border = new Rectangle(5, 5, 5, 5) + }; popup.ButtonTextColor = color[0]; popup.ButtonHeight = 132; popup.PopupButtonClickEvent += PopupButtonClickedEvent; @@ -107,13 +117,15 @@ namespace Tizen.NUI.Samples PopupStyle attrs = new PopupStyle { MinimumSize = new Size2D(1032, 184), - ShadowExtents = new Extents(24, 24, 24, 24), BackgroundImage = new Selector { All = CommonResource.GetFHResourcePath() + "11. Popup/popup_background.png" }, BackgroundImageBorder = new Selector { All = new Rectangle(0, 0, 81, 81) }, - Shadow = new ImageViewStyle + ImageShadow = new ImageShadow { - ResourceUrl = new Selector { All = CommonResource.GetFHResourcePath() + "11. Popup/popup_background_shadow.png" }, - Border = new Selector { All = new Rectangle(0, 0, 105, 105) } + Url = CommonResource.GetFHResourcePath() + "11. Popup/popup_background_shadow.png", + Border = new Rectangle(24, 24, 24, 24), + Offset = new Vector2(-24, -24), + // TODO We do not have shadow extents now, so replace it to scale value + Scale = new Vector2(1080f/1032f, 448f/400f), }, Title = new TextLabelStyle { @@ -135,10 +147,10 @@ namespace Tizen.NUI.Samples PivotPoint = Tizen.NUI.PivotPoint.BottomLeft, BackgroundImage = new Selector { All = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_normal.png" }, BackgroundImageBorder = new Selector { All = new Rectangle(5, 5, 5, 5) }, - Shadow = new ImageViewStyle + ImageShadow = new ImageShadow { - ResourceUrl = new Selector { All = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png" }, - Border = new Selector { All = new Rectangle(5, 5, 5, 5) } + Url = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png", + Border = new Rectangle(5, 5, 5, 5), }, Overlay = new ImageViewStyle { diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/RadioButtonSample.cs b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/RadioButtonSample.cs index 9b8e1e5..f6c9d1e 100755 --- a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/RadioButtonSample.cs +++ b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/RadioButtonSample.cs @@ -186,7 +186,7 @@ namespace Tizen.NUI.Samples ButtonStyle utilityAttrs = new ButtonStyle { - Icon = new ImageControlStyle + Icon = new ImageViewStyle { Size = new Size(48, 48), Opacity = new Selector @@ -207,7 +207,7 @@ namespace Tizen.NUI.Samples }; ButtonStyle familyAttrs = new ButtonStyle { - Icon = new ImageControlStyle + Icon = new ImageViewStyle { Size = new Size(48, 48), Opacity = new Selector @@ -228,7 +228,7 @@ namespace Tizen.NUI.Samples }; ButtonStyle foodAttrs = new ButtonStyle { - Icon = new ImageControlStyle + Icon = new ImageViewStyle { Size = new Size(48, 48), Opacity = new Selector @@ -249,7 +249,7 @@ namespace Tizen.NUI.Samples }; ButtonStyle kitchenAttrs = new ButtonStyle { - Icon = new ImageControlStyle + Icon = new ImageViewStyle { Size = new Size(48, 48), Opacity = new Selector -- 2.7.4