/// <since_tizen> 6 </since_tizen>
public StringSelector TextSelector
{
- get => buttonText == null ? null : new StringSelector((Selector<string>)buttonText.GetValue(TextLabel.TextSelectorProperty));
+ get => buttonText == null ? null : new StringSelector(buttonText.TextSelector);
set
{
if (value == null || buttonText == null)
}
else
{
- buttonText.SetValue(TextLabel.TextSelectorProperty, value);
+ buttonText.TextSelector = value;
}
}
}
/// <since_tizen> 6 </since_tizen>
public StringSelector TranslatableTextSelector
{
- get => buttonText == null ? null : new StringSelector((Selector<string>)buttonText.GetValue(TextLabel.TranslatableTextSelectorProperty));
+ get => buttonText == null ? null : new StringSelector(buttonText.TranslatableTextSelector);
set
{
if (value == null || buttonText == null)
}
else
{
- buttonText.SetValue(TextLabel.TranslatableTextSelectorProperty, value);
+ buttonText.TranslatableTextSelector = value;
}
}
}
/// <since_tizen> 6 </since_tizen>
public ColorSelector TextColorSelector
{
- get => buttonText == null ? null : new ColorSelector((Selector<Color>)buttonText.GetValue(TextLabel.TextColorSelectorProperty));
+ get => buttonText == null ? null : new ColorSelector(buttonText.TextColorSelector);
set
{
if (value == null || buttonText == null)
}
else
{
- buttonText.SetValue(TextLabel.TextColorSelectorProperty, value);
+ buttonText.TextColorSelector = value;
}
}
}
/// <since_tizen> 6 </since_tizen>
public FloatSelector PointSizeSelector
{
- get => buttonText == null ? null : new FloatSelector((Selector<float?>)buttonText.GetValue(TextLabel.PointSizeSelectorProperty));
+ get => buttonText == null ? null : new FloatSelector(buttonText.PointSizeSelector);
set
{
if (value == null || buttonText == null)
}
else
{
- buttonText.SetValue(TextLabel.PointSizeSelectorProperty, value);
+ buttonText.PointSizeSelector = value;
}
}
}
/// <since_tizen> 6 </since_tizen>
public StringSelector IconURLSelector
{
- get => buttonIcon == null ? null : new StringSelector((Selector<string>)buttonIcon.GetValue(ImageView.ResourceUrlSelectorProperty));
+ get => buttonIcon == null ? null : new StringSelector(buttonIcon.ResourceUrlSelector);
set
{
if (value == null || buttonIcon == null)
}
else
{
- buttonIcon.SetValue(ImageView.ResourceUrlSelectorProperty, value);
+ buttonIcon.ResourceUrlSelector = value;
}
}
}
/// <since_tizen> 6 </since_tizen>
public StringSelector ThumbImageURLSelector
{
- get => thumbImage == null ? null : new StringSelector((Selector<string>)thumbImage.GetValue(ImageView.ResourceUrlSelectorProperty));
+ get => thumbImage == null ? null : new StringSelector(thumbImage.ResourceUrlSelector);
set
{
if (value == null || thumbImage == null)
}
else
{
- thumbImage.SetValue(ImageView.ResourceUrlSelectorProperty, value);
+ thumbImage.ResourceUrlSelector = value;
thumbImageUrlSelector = value;
}
}
}
else
{
- return (Selector<string>)thumbImage.GetValue(ImageView.ResourceUrlSelectorProperty);
+ return thumbImage.ResourceUrlSelector;
}
}
set
}
else
{
- thumbImage.SetValue(ImageView.ResourceUrlSelectorProperty, value);
+ thumbImage.ResourceUrlSelector = value;
thumbImageUrlSelector = value;
}
}
/*
- * Copyright(c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright(c) 2021 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*/
using System;
using System.ComponentModel;
+using System.Diagnostics;
using Tizen.NUI.BaseComponents;
using Tizen.NUI.Components.Extension;
/// <since_tizen> 6 </since_tizen>
public StringSelector SwitchBackgroundImageURLSelector
{
- get => track == null ? null : new StringSelector((Selector<string>)track.GetValue(ImageView.ResourceUrlSelectorProperty));
- set => track?.SetValue(ImageView.ResourceUrlSelectorProperty, value);
+ get => new StringSelector(track.ResourceUrlSelector);
+ set
+ {
+ Debug.Assert(track != null);
+ track.ResourceUrlSelector = value;
+ }
}
/// <summary>
/// <since_tizen> 6 </since_tizen>
public StringSelector SwitchHandlerImageURLSelector
{
- get => thumb == null ? null : new StringSelector((Selector<string>)thumb.GetValue(ImageView.ResourceUrlSelectorProperty));
- set => thumb?.SetValue(ImageView.ResourceUrlSelectorProperty, value);
+ get => new StringSelector(thumb.ResourceUrlSelector);
+ set
+ {
+ Debug.Assert(thumb != null);
+ thumb.ResourceUrlSelector = value;
+ }
}
/// <summary>
public static readonly BindableProperty ResourceUrlProperty = BindableProperty.Create(nameof(ImageView.ResourceUrl), typeof(string), typeof(ImageView), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
{
var imageView = (ImageView)bindable;
- string url = (string)newValue;
- url = (url == null ? "" : url);
- if (url.StartsWith("*Resource*"))
+
+ if (newValue is Selector<string> selector)
{
- string resource = Tizen.Applications.Application.Current.DirectoryInfo.Resource;
- url = url.Replace("*Resource*", resource);
+ imageView.ResourceUrlSelector = selector;
+ }
+ else
+ {
+ imageView.resourceUrlSelector?.Reset(imageView);
+ imageView.SetResourceUrl((string)newValue);
}
- imageView._resourceUrl = url;
- imageView.UpdateImage(ImageVisualProperty.URL, new PropertyValue(url));
},
defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
{
public static readonly BindableProperty BorderProperty = BindableProperty.Create(nameof(Border), typeof(Rectangle), typeof(ImageView), null, propertyChanged: (bindable, oldValue, newValue) =>
{
var imageView = (ImageView)bindable;
- if (newValue != null)
+ imageView.borderSelector?.Reset(imageView);
+
+ if (newValue is Selector<Rectangle> selector)
+ {
+ if (selector.HasAll()) imageView.SetBorder(selector.All);
+ else imageView.borderSelector = new TriggerableSelector<Rectangle>(imageView, selector, imageView.SetBorder, true);
+ }
+ else
{
- imageView._border = new Rectangle((Rectangle)newValue);
- imageView.UpdateImage(NpatchImageVisualProperty.Border, new PropertyValue(imageView._border));
+ imageView.SetBorder((Rectangle)newValue);
}
},
defaultValueCreator: (bindable) =>
return ret;
}));
- internal static readonly BindableProperty ResourceUrlSelectorProperty = BindableProperty.Create("ResourceUrlSelector", typeof(Selector<string>), typeof(ImageView), null, propertyChanged: (bindable, oldValue, newValue) =>
- {
- var imageView = (ImageView)bindable;
- imageView.resourceUrlSelector.Update(imageView, (Selector<string>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
- {
- var imageView = (ImageView)bindable;
- return imageView.GetSelector<string>(imageView.resourceUrlSelector, ImageView.ResourceUrlProperty);
- });
-
- internal static readonly BindableProperty BorderSelectorProperty = BindableProperty.Create("BorderSelector", typeof(Selector<Rectangle>), typeof(ImageView), null, propertyChanged: (bindable, oldValue, newValue) =>
- {
- var imageView = (ImageView)bindable;
- imageView.borderSelector.Update(imageView, (Selector<Rectangle>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
- {
- var imageView = (ImageView)bindable;
- return imageView.GetSelector<Rectangle>(imageView.borderSelector, ImageView.BorderProperty);
- });
-
private EventHandler<ResourceReadyEventArgs> _resourceReadyEventHandler;
private ResourceReadyEventCallbackType _resourceReadyEventCallback;
private EventHandler<ResourceLoadedEventArgs> _resourceLoadedEventHandler;
private int _desired_width = -1;
private int _desired_height = -1;
private VisualFittingModeType _fittingMode = VisualFittingModeType.Fill;
- private readonly TriggerableSelector<string> resourceUrlSelector = new TriggerableSelector<string>(ResourceUrlProperty);
- private readonly TriggerableSelector<Rectangle> borderSelector = new TriggerableSelector<Rectangle>(BorderProperty);
+ private TriggerableSelector<string> resourceUrlSelector;
+ private TriggerableSelector<Rectangle> borderSelector;
/// <summary>
/// Creates an initialized ImageView.
set
{
SetValue(ResourceUrlProperty, value);
- resourceUrlSelector.Reset(this);
NotifyPropertyChanged();
}
}
set
{
SetValue(BorderProperty, value);
- borderSelector.Reset(this);
NotifyPropertyChanged();
}
}
}
}
+ internal Selector<string> ResourceUrlSelector
+ {
+ get => GetSelector<string>(resourceUrlSelector, ImageView.ResourceUrlProperty);
+ set
+ {
+ resourceUrlSelector?.Reset(this);
+ if (value == null) return;
+
+ if (value.HasAll()) SetResourceUrl(value.All);
+ else resourceUrlSelector = new TriggerableSelector<string>(this, value, SetResourceUrl, true);
+ }
+ }
+
/// <summary>
/// Get attributes, it is abstract function and must be override.
/// </summary>
}
}
+ private void SetResourceUrl(string value)
+ {
+ value = (value == null ? "" : value);
+ if (value.StartsWith("*Resource*"))
+ {
+ string resource = Tizen.Applications.Application.Current.DirectoryInfo.Resource;
+ value = value.Replace("*Resource*", resource);
+ }
+ _resourceUrl = value;
+ UpdateImage(ImageVisualProperty.URL, new PropertyValue(value));
+ }
+
+ private void SetBorder(Rectangle value)
+ {
+ if (value == null)
+ {
+ return;
+ }
+ _border = new Rectangle(value);
+ UpdateImage(NpatchImageVisualProperty.Border, new PropertyValue(_border));
+ }
+
private void UpdateImageMap(PropertyMap fromMap)
{
PropertyMap imageMap = new PropertyMap();
{
/// 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 ResourceUrlSelectorProperty = BindableProperty.Create("ResourceUrlSelector", typeof(Selector<string>), typeof(ImageViewStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+ public static readonly BindableProperty ResourceUrlProperty = BindableProperty.Create(nameof(ResourceUrl), typeof(Selector<string>), typeof(ImageViewStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
{
var imageViewStyle = (ImageViewStyle)bindable;
- imageViewStyle.resourceUrlSelector = ((Selector<string>)newValue)?.Clone();
+ imageViewStyle.resourceUrl = ((Selector<string>)newValue)?.Clone();
},
defaultValueCreator: (bindable) =>
{
var imageViewStyle = (ImageViewStyle)bindable;
- return imageViewStyle.resourceUrlSelector;
+ return imageViewStyle.resourceUrl;
});
/// 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 BorderSelectorProperty = BindableProperty.Create("BorderSelector", typeof(Selector<Rectangle>), typeof(ImageViewStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+ public static readonly BindableProperty BorderProperty = BindableProperty.Create(nameof(Border), typeof(Selector<Rectangle>), typeof(ImageViewStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
{
var imageViewStyle = (ImageViewStyle)bindable;
- imageViewStyle.borderSelector = ((Selector<Rectangle>)newValue)?.Clone();
+ imageViewStyle.border = ((Selector<Rectangle>)newValue)?.Clone();
},
defaultValueCreator: (bindable) =>
{
var imageViewStyle = (ImageViewStyle)bindable;
- return imageViewStyle.borderSelector;
+ return imageViewStyle.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)]
private bool? borderOnly;
private bool? synchronosLoading;
private bool? orientationCorrection;
- private Selector<string> resourceUrlSelector;
- private Selector<Rectangle> borderSelector;
+ private Selector<string> resourceUrl;
+ private Selector<Rectangle> border;
static ImageViewStyle() { }
{
get
{
- Selector<string> tmp = (Selector<string>)GetValue(ResourceUrlSelectorProperty);
- return (null != tmp) ? tmp : resourceUrlSelector = new Selector<string>();
+ Selector<string> tmp = (Selector<string>)GetValue(ResourceUrlProperty);
+ return (null != tmp) ? tmp : resourceUrl = new Selector<string>();
}
- set => SetValue(ResourceUrlSelectorProperty, value);
+ set => SetValue(ResourceUrlProperty, value);
}
/// <summary>
{
get
{
- Selector<Rectangle> tmp = (Selector<Rectangle>)GetValue(BorderSelectorProperty);
- return (null != tmp) ? tmp : borderSelector = new Selector<Rectangle>();
+ Selector<Rectangle> tmp = (Selector<Rectangle>)GetValue(BorderProperty);
+ return (null != tmp) ? tmp : border = new Selector<Rectangle>();
}
- set => SetValue(BorderSelectorProperty, value);
+ set => SetValue(BorderProperty, value);
}
}
}
return (hash * 23) + itemSum;
}
- internal bool HasMultiValue()
+ internal bool HasAll()
{
- return SelectorItems.Count > 1;
+ return all != null;
}
internal void AddWithoutDuplicationCheck(ControlState state, T value)
[EditorBrowsable(EditorBrowsableState.Never)]
public class TriggerableSelector<T>
{
- private readonly BindableProperty targetBindableProperty;
+ private readonly Action<T> targetPropertySetter;
private Selector<T> selector;
/// <summary>
/// Create an TriggerableSelector.
/// </summary>
- /// <param name="targetBindableProperty">The TriggerableSelector will change this bindable property value when the view's ControlState has changed.</param>
- [EditorBrowsable(EditorBrowsableState.Never)]
- public TriggerableSelector(BindableProperty targetBindableProperty)
- {
- this.targetBindableProperty = targetBindableProperty;
- }
-
- /// <summary>
- /// Return the containing selector. It can be null.
- /// </summary>
- [EditorBrowsable(EditorBrowsableState.Never)]
- public Selector<T> Get() => selector;
-
- /// <summary>
- /// Update containing selector from the other selector.
- /// </summary>
/// <param name="view">The View that is affected by this TriggerableSelector.</param>
- /// <param name="otherSelector">The copy target.</param>
- /// <param name="updateView">Whether it updates the target view after update the selector or not.</param>
- /// <exception cref="ArgumentNullException"> Thrown when view is null. </exception>
+ /// <param name="selector">The selector value.</param>
+ /// <param name="targetPropertySetter">The TriggerableSelector will call this setter when the view's ControlState has changed.</param>
+ /// <param name="updateView">Whether it updates the target view after create a instance.</param>
+ /// <exception cref="ArgumentNullException"> Thrown when given argument is null. </exception>
[EditorBrowsable(EditorBrowsableState.Never)]
- public void Update(View view, Selector<T> otherSelector, bool updateView = false)
+ public TriggerableSelector(View view, Selector<T> selector, Action<T> targetPropertySetter, bool updateView = false)
{
- Reset(view);
-
- if (null == view)
+ if (view == null)
{
throw new ArgumentNullException(nameof(view));
}
- if (otherSelector == null)
- {
- return;
- }
+ this.selector = selector ?? throw new ArgumentNullException(nameof(selector));
+ this.targetPropertySetter = targetPropertySetter ?? throw new ArgumentNullException(nameof(targetPropertySetter));
- selector = otherSelector;
-
- if (otherSelector.HasMultiValue())
+ if (!selector.HasAll())
{
view.ControlStateChangeEventInternal += OnViewControlState;
}
- if (updateView && otherSelector.GetValue(view.ControlState, out var value))
+ if (updateView && selector.GetValue(view.ControlState, out var value))
{
- view.SetValue(targetBindableProperty, value);
+ targetPropertySetter.Invoke(value);
}
}
/// <summary>
+ /// Return the containing selector. It can be null.
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public Selector<T> Get() => selector;
+
+ /// <summary>
/// Reset selector and listeners.
/// </summary>
/// <param name="view">The View that is affected by this TriggerableSelector.</param>
[EditorBrowsable(EditorBrowsableState.Never)]
public void Reset(View view)
{
+ if (selector == null)
+ {
+ return;
+ }
+
if (view != null)
{
view.ControlStateChangeEventInternal -= OnViewControlState;
View view = obj as View;
if (null != view && selector.GetValue(controlStateChangedInfo.CurrentState, out var value))
{
- view.SetValue(targetBindableProperty, value);
+ targetPropertySetter.Invoke(value);
}
}
}
public class TextFieldStyle : ViewStyle
{
[EditorBrowsable(EditorBrowsableState.Never)]
- public static readonly BindableProperty FontFamilySelectorProperty = BindableProperty.Create("FontFamilySelector", typeof(Selector<string>), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+ public static readonly BindableProperty FontFamilyProperty = BindableProperty.Create(nameof(FontFamily), typeof(string), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
{
var textFieldStyle = (TextFieldStyle)bindable;
- textFieldStyle.fontFamilySelector = ((Selector<string>)newValue)?.Clone();
+ textFieldStyle.fontFamily = (string)newValue;
},
defaultValueCreator: (bindable) =>
{
var textFieldStyle = (TextFieldStyle)bindable;
- return textFieldStyle.fontFamilySelector;
+ return textFieldStyle.fontFamily;
});
/// 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 PointSizeSelectorProperty = BindableProperty.Create("PointSizeSelector", typeof(Selector<float?>), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+ public static readonly BindableProperty PointSizeProperty = BindableProperty.Create(nameof(PointSize), typeof(float?), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
{
var textFieldStyle = (TextFieldStyle)bindable;
- textFieldStyle.pointSizeSelector = ((Selector<float?>)newValue)?.Clone();
+ textFieldStyle.pointSize = (float?)newValue;
},
defaultValueCreator: (bindable) =>
{
var textFieldStyle = (TextFieldStyle)bindable;
- return textFieldStyle.pointSizeSelector;
+ return textFieldStyle.pointSize;
});
/// 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 TextColorSelectorProperty = BindableProperty.Create("TextColorSelector", typeof(Selector<Color>), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+ public static readonly BindableProperty TextColorProperty = BindableProperty.Create(nameof(TextColor), typeof(Color), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
{
var textFieldStyle = (TextFieldStyle)bindable;
- textFieldStyle.textColorSelector = ((Selector<Color>)newValue)?.Clone();
+ textFieldStyle.textColor = (Color)newValue;
},
defaultValueCreator: (bindable) =>
{
var textFieldStyle = (TextFieldStyle)bindable;
- return textFieldStyle.textColorSelector;
+ return textFieldStyle.textColor;
});
/// 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 PlaceholderTextColorSelectorProperty = BindableProperty.Create("PlaceholderTextColorSelector", typeof(Selector<Vector4>), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+ public static readonly BindableProperty PlaceholderTextColorProperty = BindableProperty.Create(nameof(PlaceholderTextColor), typeof(Vector4), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
{
var textFieldStyle = (TextFieldStyle)bindable;
- textFieldStyle.placeholderTextColorSelector = ((Selector<Vector4>)newValue)?.Clone();
+ textFieldStyle.placeholderTextColor = (Vector4)newValue;
},
defaultValueCreator: (bindable) =>
{
var textFieldStyle = (TextFieldStyle)bindable;
- return textFieldStyle.placeholderTextColorSelector;
+ return textFieldStyle.placeholderTextColor;
});
/// 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 PrimaryCursorColorSelectorProperty = BindableProperty.Create("PrimaryCursorColorSelector", typeof(Selector<Vector4>), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+ public static readonly BindableProperty PrimaryCursorColorProperty = BindableProperty.Create(nameof(PrimaryCursorColor), typeof(Vector4), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
{
var textFieldStyle = (TextFieldStyle)bindable;
- textFieldStyle.primaryCursorColorSelector = ((Selector<Vector4>)newValue)?.Clone();
+ textFieldStyle.primaryCursorColor = (Vector4)newValue;
},
defaultValueCreator: (bindable) =>
{
var textFieldStyle = (TextFieldStyle)bindable;
- return textFieldStyle.primaryCursorColorSelector;
+ return textFieldStyle.primaryCursorColor;
});
/// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
});
/// 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 PixelSizeSelectorProperty = BindableProperty.Create("PixelSizeSelector", typeof(float?), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+ public static readonly BindableProperty PixelSizeProperty = BindableProperty.Create(nameof(PixelSize), typeof(float?), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
{
var textFieldStyle = (TextFieldStyle)bindable;
- textFieldStyle.pixelSizeSelector = ((Selector<float?>)newValue)?.Clone();
+ textFieldStyle.pixelSize = (float?)newValue;
},
defaultValueCreator: (bindable) =>
{
var textFieldStyle = (TextFieldStyle)bindable;
- return textFieldStyle.pixelSizeSelector;
+ return textFieldStyle.pixelSize;
});
/// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
[EditorBrowsable(EditorBrowsableState.Never)]
private string emboss;
private string inputEmboss;
private string inputOutline;
- private Selector<float?> pixelSizeSelector;
+ private float? pixelSize;
private bool? enableSelection;
private bool? ellipsis;
private bool? matchSystemLanguageDirection;
- private Selector<string> fontFamilySelector;
- private Selector<Color> textColorSelector;
- private Selector<float?> pointSizeSelector;
- private Selector<Vector4> placeholderTextColorSelector;
- private Selector<Vector4> primaryCursorColorSelector;
+ private string fontFamily;
+ private Color textColor;
+ private float? pointSize;
+ private Vector4 placeholderTextColor;
+ private Vector4 primaryCursorColor;
private PropertyMap fontStyle;
static TextFieldStyle() { }
/// 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 Selector<string> FontFamily
+ public string FontFamily
{
- get
- {
- Selector<string> tmp = (Selector<string>)GetValue(FontFamilySelectorProperty);
- return (null != tmp) ? tmp : fontFamilySelector = new Selector<string>();
- }
- set => SetValue(FontFamilySelectorProperty, value);
+ get => (string)GetValue(FontFamilyProperty);
+ set => SetValue(FontFamilyProperty, value);
}
/// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
/// 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 Selector<float?> PixelSize
+ public float? PixelSize
{
- get => (Selector<float?>)GetValue(PixelSizeSelectorProperty) ?? (pixelSizeSelector = new Selector<float?>());
- set => SetValue(PixelSizeSelectorProperty, value);
+ get => (float?)GetValue(PixelSizeProperty);
+ set => SetValue(PixelSizeProperty, value);
}
/// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
/// 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 Selector<Color> TextColor
+ public Color TextColor
{
- get
- {
- Selector<Color> tmp = (Selector<Color>)GetValue(TextColorSelectorProperty);
- return (null != tmp) ? tmp : textColorSelector = new Selector<Color>();
- }
- set => SetValue(TextColorSelectorProperty, value);
+ get => (Color)GetValue(TextColorProperty);
+ set => SetValue(TextColorProperty, 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 Selector<float?> PointSize
+ public float? PointSize
{
- get
- {
- Selector<float?> tmp = (Selector<float?>)GetValue(PointSizeSelectorProperty);
- return (null != tmp) ? tmp : pointSizeSelector = new Selector<float?>();
- }
- set => SetValue(PointSizeSelectorProperty, value);
+ get => (float?)GetValue(PointSizeProperty);
+ set => SetValue(PointSizeProperty, 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 Selector<Vector4> PlaceholderTextColor
+ public Vector4 PlaceholderTextColor
{
- get
- {
- Selector<Vector4> tmp = (Selector<Vector4>)GetValue(PlaceholderTextColorSelectorProperty);
- return (null != tmp) ? tmp : placeholderTextColorSelector = new Selector<Vector4>();
- }
- set => SetValue(PlaceholderTextColorSelectorProperty, value);
+ get => (Vector4)GetValue(PlaceholderTextColorProperty);
+ set => SetValue(PlaceholderTextColorProperty, value);
}
/// <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)]
- public Selector<Vector4> PrimaryCursorColor
+ public Vector4 PrimaryCursorColor
{
- get
- {
- Selector<Vector4> tmp = (Selector<Vector4>)GetValue(PrimaryCursorColorSelectorProperty);
- return (null != tmp) ? tmp : primaryCursorColorSelector = new Selector<Vector4>();
- }
- set => SetValue(PrimaryCursorColorSelectorProperty, value);
+ get => (Vector4)GetValue(PrimaryCursorColorProperty);
+ set => SetValue(PrimaryCursorColorProperty, value);
}
/// This will be public opened in tizen_6.5 after ACR done. Before ACR, need to be hidden as inhouse API.
{
/// 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 TranslatableTextSelectorProperty = BindableProperty.Create("TranslatableTextSelector", typeof(Selector<string>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+ public static readonly BindableProperty TranslatableTextSelectorProperty = BindableProperty.Create(nameof(TranslatableText), typeof(Selector<string>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
{
((TextLabelStyle)bindable).translatableTextSelector = ((Selector<string>)newValue)?.Clone();
},
});
/// 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 TextSelectorProperty = BindableProperty.Create("TextSelector", typeof(Selector<string>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+ public static readonly BindableProperty TextSelectorProperty = BindableProperty.Create(nameof(Text), typeof(Selector<string>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
{
((TextLabelStyle)bindable).textSelector = ((Selector<string>)newValue)?.Clone();
},
});
/// 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 FontFamilySelectorProperty = BindableProperty.Create("FontFamilySelector", typeof(Selector<string>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+ public static readonly BindableProperty FontFamilySelectorProperty = BindableProperty.Create(nameof(FontFamily), typeof(Selector<string>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
{
((TextLabelStyle)bindable).fontFamilySelector = ((Selector<string>)newValue)?.Clone();
},
});
/// 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 PointSizeSelectorProperty = BindableProperty.Create("PointSizeSelector", typeof(Selector<float?>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+ public static readonly BindableProperty PointSizeSelectorProperty = BindableProperty.Create(nameof(PointSize), typeof(Selector<float?>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
{
((TextLabelStyle)bindable).pointSizeSelector = ((Selector<float?>)newValue)?.Clone();
},
});
/// 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 TextColorSelectorProperty = BindableProperty.Create("TextColorSelector", typeof(Selector<Color>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+ public static readonly BindableProperty TextColorSelectorProperty = BindableProperty.Create(nameof(TextColor), typeof(Selector<Color>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
{
((TextLabelStyle)bindable).textColorSelector = ((Selector<Color>)newValue)?.Clone();
},
});
/// 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 PixelSizeSelectorProperty = BindableProperty.Create("PixelSizeSelector", typeof(Selector<float?>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+ public static readonly BindableProperty PixelSizeSelectorProperty = BindableProperty.Create(nameof(PixelSize), typeof(Selector<float?>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
{
((TextLabelStyle)bindable).pixelSizeSelector = ((Selector<float?>)newValue)?.Clone();
},
});
/// A BindableProperty for ImageShadow
[EditorBrowsable(EditorBrowsableState.Never)]
- public static readonly BindableProperty TextShadowProperty = BindableProperty.Create("TextShadowSelector", typeof(Selector<TextShadow>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+ public static readonly BindableProperty TextShadowProperty = BindableProperty.Create(nameof(TextShadow), typeof(Selector<TextShadow>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
{
((TextLabelStyle)bindable).textShadow = ((Selector<TextShadow>)newValue)?.Clone();
},
{
get
{
- Selector<string> image = (Selector<string>)GetValue(BackgroundImageSelectorProperty);
+ Selector<string> image = (Selector<string>)GetValue(BackgroundImageProperty);
return (null != image) ? image : backgroundImageSelector = new Selector<string>();
}
- set => SetValue(BackgroundImageSelectorProperty, value);
+ set => SetValue(BackgroundImageProperty, value);
}
/// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
{
get
{
- Selector<float?> opacity = (Selector<float?>)GetValue(OpacitySelectorProperty);
+ Selector<float?> opacity = (Selector<float?>)GetValue(OpacityProperty);
return (null != opacity) ? opacity : opacitySelector = new Selector<float?>();
}
- set => SetValue(OpacitySelectorProperty, value);
+ set => SetValue(OpacityProperty, value);
}
/// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
{
get
{
- Selector<Color> color = (Selector<Color>)GetValue(BackgroundColorSelectorProperty);
+ Selector<Color> color = (Selector<Color>)GetValue(BackgroundColorProperty);
return (null != color) ? color : backgroundColorSelector = new Selector<Color>();
}
- set => SetValue(BackgroundColorSelectorProperty, value);
+ set => SetValue(BackgroundColorProperty, value);
}
/// <summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public Selector<Color> Color
{
- get => (Selector<Color>)GetValue(ColorSelectorProperty) ?? (colorSelector = new Selector<Color>());
- set => SetValue(ColorSelectorProperty, value);
+ get => (Selector<Color>)GetValue(ColorProperty) ?? (colorSelector = new Selector<Color>());
+ set => SetValue(ColorProperty, value);
}
/// <summary>View BackgroundBorder</summary>
{
get
{
- Selector<Rectangle> border = (Selector<Rectangle>)GetValue(BackgroundImageBorderSelectorProperty);
+ Selector<Rectangle> border = (Selector<Rectangle>)GetValue(BackgroundImageBorderProperty);
return (null != border) ? border : backgroundImageBorderSelector = new Selector<Rectangle>();
}
- set => SetValue(BackgroundImageBorderSelectorProperty, value);
+ set => SetValue(BackgroundImageBorderProperty, value);
}
/// <summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public Selector<ImageShadow> ImageShadow
{
- get => (Selector<ImageShadow>)GetValue(ImageShadowSelectorProperty);
- set => SetValue(ImageShadowSelectorProperty, value);
+ get => (Selector<ImageShadow>)GetValue(ImageShadowProperty);
+ set => SetValue(ImageShadowProperty, value);
}
/// <summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public Selector<Shadow> BoxShadow
{
- get => (Selector<Shadow>)GetValue(BoxShadowSelectorProperty);
- set => SetValue(BoxShadowSelectorProperty, value);
+ get => (Selector<Shadow>)GetValue(BoxShadowProperty);
+ set => SetValue(BoxShadowProperty, value);
}
/// <summary>
/// </summary>
internal HashSet<BindableProperty> DirtyProperties { get; private set; }
- /// <summary>
- /// Set style's bindable properties from the view.
- /// </summary>
- /// <param name="view">The view that includes property data.</param>
- [EditorBrowsable(EditorBrowsableState.Never)]
- public virtual void CopyPropertiesFromView(View view)
- {
- if (view == null) return;
-
- BindableProperty.GetBindablePropertysOfType(GetType(), out var styleProperties);
- BindableProperty.GetBindablePropertysOfType(view.GetType(), out var viewProperties);
-
-
- if (styleProperties == null || viewProperties == null) return;
-
- foreach (var stylePropertyItem in styleProperties)
- {
- viewProperties.TryGetValue(stylePropertyItem.Key, out var viewProperty);
-
- if (viewProperty == null) continue;
-
- SetValue(stylePropertyItem.Value, view.GetValue(viewProperty));
- }
- }
-
/// <summary>Create a cloned ViewStyle.</summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public ViewStyle Clone()
{
/// <summary> Bindable property of BackgroundImage. Please do not open it. </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- public static readonly BindableProperty BackgroundImageSelectorProperty = BindableProperty.Create("BackgroundImageSelector", typeof(Selector<string>), typeof(ViewStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+ public static readonly BindableProperty BackgroundImageProperty = BindableProperty.Create(nameof(BackgroundImage), typeof(Selector<string>), typeof(ViewStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
{
var viewStyle = (ViewStyle)bindable;
/// <summary> Bindable property of Opacity. Please do not open it. </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- public static readonly BindableProperty OpacitySelectorProperty = BindableProperty.Create("OpacitySelector", typeof(Selector<float?>), typeof(ViewStyle), null,
+ public static readonly BindableProperty OpacityProperty = BindableProperty.Create(nameof(Opacity), typeof(Selector<float?>), typeof(ViewStyle), null,
propertyChanged: (bindable, oldValue, newValue) => ((ViewStyle)bindable).opacitySelector = (Selector<float?>)newValue,
defaultValueCreator: (bindable) => ((ViewStyle)bindable).opacitySelector
);
/// <summary> Bindable property of BackgroundColor. Please do not open it. </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- public static readonly BindableProperty BackgroundColorSelectorProperty = BindableProperty.Create("BackgroundColorSelector", typeof(Selector<Color>), typeof(ViewStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+ public static readonly BindableProperty BackgroundColorProperty = BindableProperty.Create(nameof(BackgroundColor), typeof(Selector<Color>), typeof(ViewStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
{
var viewStyle = (ViewStyle)bindable;
/// <summary> Bindable property of ColorSelector. Please do not open it. </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- public static readonly BindableProperty ColorSelectorProperty = BindableProperty.Create("ColorSelector", typeof(Selector<Color>), typeof(ViewStyle), null,
+ public static readonly BindableProperty ColorProperty = BindableProperty.Create(nameof(Color), typeof(Selector<Color>), typeof(ViewStyle), null,
propertyChanged: (bindable, oldValue, newValue) => ((ViewStyle)bindable).colorSelector = (Selector<Color>)newValue,
defaultValueCreator: (bindable) => ((ViewStyle)bindable).colorSelector
);
/// <summary> Bindable property of BackgroundImageBorder. Please do not open it. </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- public static readonly BindableProperty BackgroundImageBorderSelectorProperty = BindableProperty.Create("BackgroundImageBorderSelector", typeof(Selector<Rectangle>), typeof(ViewStyle), null,
+ public static readonly BindableProperty BackgroundImageBorderProperty = BindableProperty.Create(nameof(BackgroundImageBorder), typeof(Selector<Rectangle>), typeof(ViewStyle), null,
propertyChanged: (bindable, oldValue, newValue) => ((ViewStyle)bindable).backgroundImageBorderSelector = (Selector<Rectangle>)newValue,
defaultValueCreator: (bindable) => ((ViewStyle)bindable).backgroundImageBorderSelector
);
/// <summary> Bindable property of ImageShadow. Please do not open it. </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- public static readonly BindableProperty ImageShadowSelectorProperty = BindableProperty.Create("ImageShadowSelector", typeof(Selector<ImageShadow>), typeof(ViewStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+ public static readonly BindableProperty ImageShadowProperty = BindableProperty.Create(nameof(ImageShadow), typeof(Selector<ImageShadow>), typeof(ViewStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
{
var viewStyle = (ViewStyle)bindable;
/// <summary> Bindable property of BoxShadow. Please do not open it. </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- public static readonly BindableProperty BoxShadowSelectorProperty = BindableProperty.Create("BoxShadowSelector", typeof(Selector<Shadow>), typeof(ViewStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+ public static readonly BindableProperty BoxShadowProperty = BindableProperty.Create(nameof(BoxShadow), typeof(Selector<Shadow>), typeof(ViewStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
{
var viewStyle = (ViewStyle)bindable;
/*
- * Copyright(c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright(c) 2021 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
private string textFieldPlaceHolderTextFocusedSid = null;
private bool systemlangTextFlag = false;
private InputMethodContext inputMethodCotext = null;
- private TextFieldSelectorData selectorData;
private float fontSizeScale = 1.0f;
private bool hasFontSizeChangedCallback = false;
}
set
{
- selectorData?.TranslatableText?.Reset(this);
SetValue(TranslatableTextProperty, value);
}
}
set
{
SetValue(TranslatablePlaceholderTextProperty, value);
- selectorData?.TranslatablePlaceholderText?.Reset(this);
}
}
private string translatablePlaceholderText
set
{
SetValue(TranslatablePlaceholderTextFocusedProperty, value);
- selectorData?.TranslatablePlaceholderTextFocused?.Reset(this);
}
}
private string translatablePlaceholderTextFocused
set
{
SetValueAndForceSendChangeSignal(TextProperty, value);
- selectorData?.Text?.Reset(this);
NotifyPropertyChanged();
}
}
set
{
SetValue(FontFamilyProperty, value);
- selectorData?.FontFamily?.Reset(this);
NotifyPropertyChanged();
}
}
set
{
SetValue(PointSizeProperty, value);
- selectorData?.PointSize?.Reset(this);
NotifyPropertyChanged();
}
}
set
{
SetValue(TextColorProperty, value);
- selectorData?.TextColor?.Reset(this);
NotifyPropertyChanged();
}
}
set
{
SetValue(PlaceholderTextColorProperty, value);
- selectorData?.PlaceholderTextColor?.Reset(this);
NotifyPropertyChanged();
}
}
set
{
SetValue(PrimaryCursorColorProperty, value);
- selectorData?.PrimaryCursorColor?.Reset(this);
NotifyPropertyChanged();
}
}
set
{
SetValue(PixelSizeProperty, value);
- selectorData?.PixelSize?.Reset(this);
NotifyPropertyChanged();
}
}
}
}
- private TextFieldSelectorData EnsureSelectorData() => selectorData ?? (selectorData = new TextFieldSelectorData());
-
/// <summary>
/// Get the InputMethodContext instance.
/// </summary>
//Called by User
//Release your own managed resources here.
//You should release all of your own disposable objects here.
- selectorData?.Reset(this);
}
//Release your own unmanaged resources here.
/*
- * Copyright(c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright(c) 2021 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)textField.SwigCPtr, TextField.Property.GrabHandleColor).Get(temp);
return temp;
}));
-
- #region Selectors
- internal static readonly BindableProperty TranslatableTextSelectorProperty = BindableProperty.Create("TranslatableTextSelector", typeof(Selector<string>), typeof(TextField), null, propertyChanged: (bindable, oldValue, newValue) =>
- {
- var textField = (TextField)bindable;
- textField.EnsureSelectorData().EnsureTranslatableText().Update(textField, (Selector<string>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
- {
- var textField = (TextField)bindable;
- return textField.GetSelector<string>(textField.selectorData?.TranslatableText, TextField.TranslatableTextProperty);
- });
- internal static readonly BindableProperty TranslatablePlaceholderTextSelectorProperty = BindableProperty.Create("TranslatablePlaceholderTextSelector", typeof(Selector<string>), typeof(TextField), null, propertyChanged: (bindable, oldValue, newValue) =>
- {
- var textField = (TextField)bindable;
- textField.EnsureSelectorData().EnsureTranslatablePlaceholderText().Update(textField, (Selector<string>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
- {
- var textField = (TextField)bindable;
- return textField.GetSelector<string>(textField.selectorData?.TranslatablePlaceholderText, TextField.TranslatablePlaceholderTextProperty);
- });
- internal static readonly BindableProperty TranslatablePlaceholderTextFocusedSelectorProperty = BindableProperty.Create("TranslatablePlaceholderTextFocusedSelector", typeof(Selector<string>), typeof(TextField), null, propertyChanged: (bindable, oldValue, newValue) =>
- {
- var textField = (TextField)bindable;
- textField.EnsureSelectorData().EnsureTranslatablePlaceholderTextFocused().Update(textField, (Selector<string>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
- {
- var textField = (TextField)bindable;
- return textField.GetSelector<string>(textField.selectorData?.TranslatablePlaceholderTextFocused, TextField.TranslatablePlaceholderTextFocusedProperty);
- });
- internal static readonly BindableProperty TextSelectorProperty = BindableProperty.Create("TextSelector", typeof(Selector<string>), typeof(TextField), null, propertyChanged: (bindable, oldValue, newValue) =>
- {
- var textField = (TextField)bindable;
- textField.EnsureSelectorData().EnsureText().Update(textField, (Selector<string>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
- {
- var textField = (TextField)bindable;
- return textField.GetSelector<string>(textField.selectorData?.Text, TextField.TextProperty);
- });
- internal static readonly BindableProperty FontFamilySelectorProperty = BindableProperty.Create("FontFamilySelector", typeof(Selector<string>), typeof(TextField), null, propertyChanged: (bindable, oldValue, newValue) =>
- {
- var textField = (TextField)bindable;
- textField.EnsureSelectorData().EnsureFontFamily().Update(textField, (Selector<string>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
- {
- var textField = (TextField)bindable;
- return textField.GetSelector<string>(textField.selectorData?.FontFamily, TextField.FontFamilyProperty);
- });
- internal static readonly BindableProperty PointSizeSelectorProperty = BindableProperty.Create("PointSizeSelector", typeof(Selector<float?>), typeof(TextField), null, propertyChanged: (bindable, oldValue, newValue) =>
- {
- var textField = (TextField)bindable;
- textField.EnsureSelectorData().EnsurePointSize().Update(textField, (Selector<float?>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
- {
- var textField = (TextField)bindable;
- return textField.GetSelector<float?>(textField.selectorData?.PointSize, TextField.PointSizeProperty);
- });
- internal static readonly BindableProperty PixelSizeSelectorProperty = BindableProperty.Create("PixelSizeSelector", typeof(Selector<float?>), typeof(TextField), null, propertyChanged: (bindable, oldValue, newValue) =>
- {
- var textField = (TextField)bindable;
- textField.EnsureSelectorData().EnsurePixelSize().Update(textField, (Selector<float?>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
- {
- var textField = (TextField)bindable;
- return textField.GetSelector<float?>(textField.selectorData?.PixelSize, TextField.PixelSizeProperty);
- });
- internal static readonly BindableProperty TextColorSelectorProperty = BindableProperty.Create("TextColorSelector", typeof(Selector<Color>), typeof(TextField), null, propertyChanged: (bindable, oldValue, newValue) =>
- {
- var textField = (TextField)bindable;
- textField.EnsureSelectorData().EnsureTextColor().Update(textField, (Selector<Color>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
- {
- var textField = (TextField)bindable;
- var selector = textField.selectorData?.TextColor?.Get();
- if (selector != null)
- {
- return selector;
- }
-
- Color color = new Color();
- if (!textField.GetProperty(TextField.Property.TextColor).Get(color))
- {
- return null;
- }
- return new Selector<Color>(color);
- });
- internal static readonly BindableProperty PlaceholderTextColorSelectorProperty = BindableProperty.Create("PlaceholderTextColorSelector", typeof(Selector<Vector4>), typeof(TextField), null, propertyChanged: (bindable, oldValue, newValue) =>
- {
- var textField = (TextField)bindable;
- textField.EnsureSelectorData().EnsurePlaceholderTextColor().Update(textField, (Selector<Vector4>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
- {
- var textField = (TextField)bindable;
- var selector = textField.selectorData?.PlaceholderTextColor?.Get();
- if (selector != null)
- {
- return selector;
- }
-
- Color color = new Color();
- if (!textField.GetProperty(TextField.Property.PlaceholderTextColor).Get(color))
- {
- return null;
- }
- return new Selector<Color>(color);
- });
- internal static readonly BindableProperty PrimaryCursorColorSelectorProperty = BindableProperty.Create("PrimaryCursorColorSelector", typeof(Selector<Vector4>), typeof(TextField), null, propertyChanged: (bindable, oldValue, newValue) =>
- {
- var textField = (TextField)bindable;
- textField.EnsureSelectorData().EnsurePrimaryCursorColor().Update(textField, (Selector<Vector4>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
- {
- var textField = (TextField)bindable;
- var selector = textField.selectorData?.PrimaryCursorColor?.Get();
- if (selector != null)
- {
- return selector;
- }
-
- Color color = new Color();
- if (!textField.GetProperty(TextField.Property.PrimaryCursorColor).Get(color))
- {
- return null;
- }
- return new Selector<Color>(color);
- });
- #endregion
}
}
+++ /dev/null
-/*
- * 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.
- * 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.
- *
- */
-
-namespace Tizen.NUI.BaseComponents
-{
- /// <summary>
- /// The class storing extra data for a TextField to optimize size of it.
- /// </summary>
- internal class TextFieldSelectorData
- {
- public TriggerableSelector<string> TranslatableText { get; private set; }
- public TriggerableSelector<string> Text { get; private set; }
- public TriggerableSelector<string> FontFamily { get; private set; }
- public TriggerableSelector<Color> TextColor { get; private set; }
- public TriggerableSelector<float?> PointSize { get; private set; }
- public TriggerableSelector<float?> PixelSize { get; private set; }
- public TriggerableSelector<string> TranslatablePlaceholderText { get; private set; }
- public TriggerableSelector<string> TranslatablePlaceholderTextFocused { get; private set; }
- public TriggerableSelector<Vector4> PlaceholderTextColor { get; private set; }
- public TriggerableSelector<Vector4> PrimaryCursorColor { get; private set; }
-
- public TriggerableSelector<string> EnsureTranslatableText() => TranslatableText ?? (TranslatableText = new TriggerableSelector<string>(TextField.TranslatableTextProperty));
- public TriggerableSelector<string> EnsureText() => Text ?? (Text = new TriggerableSelector<string>(TextField.TextProperty));
- public TriggerableSelector<string> EnsureFontFamily() => FontFamily ?? (FontFamily = new TriggerableSelector<string>(TextField.FontFamilyProperty));
- public TriggerableSelector<Color> EnsureTextColor() => TextColor ?? (TextColor = new TriggerableSelector<Color>(TextField.TextColorProperty));
- public TriggerableSelector<float?> EnsurePointSize() => PointSize ?? (PointSize = new TriggerableSelector<float?>(TextField.PointSizeProperty));
- public TriggerableSelector<float?> EnsurePixelSize() => PixelSize ?? (PixelSize = new TriggerableSelector<float?>(TextField.PixelSizeProperty));
- public TriggerableSelector<string> EnsureTranslatablePlaceholderText() => TranslatablePlaceholderText ?? (TranslatablePlaceholderText = new TriggerableSelector<string>(TextField.TranslatablePlaceholderTextProperty));
- public TriggerableSelector<string> EnsureTranslatablePlaceholderTextFocused() => TranslatablePlaceholderTextFocused ?? (TranslatablePlaceholderTextFocused = new TriggerableSelector<string>(TextField.TranslatablePlaceholderTextFocusedProperty));
- public TriggerableSelector<Vector4> EnsurePlaceholderTextColor() => PlaceholderTextColor ?? (PlaceholderTextColor = new TriggerableSelector<Vector4>(TextField.PlaceholderTextColorProperty));
- public TriggerableSelector<Vector4> EnsurePrimaryCursorColor() => PrimaryCursorColor ?? (PrimaryCursorColor = new TriggerableSelector<Vector4>(TextField.PrimaryCursorColorProperty));
-
- public void Reset(View view)
- {
- TranslatableText?.Reset(view);
- Text?.Reset(view);
- FontFamily?.Reset(view);
- TextColor?.Reset(view);
- PointSize?.Reset(view);
- PixelSize?.Reset(view);
- TranslatablePlaceholderText?.Reset(view);
- TranslatablePlaceholderTextFocused?.Reset(view);
- PlaceholderTextColor?.Reset(view);
- PrimaryCursorColor?.Reset(view);
- }
- }
-}
set
{
SetValue(TranslatableTextProperty, value);
- selectorData?.TranslatableText?.Reset(this);
}
}
private string translatableText
set
{
SetValue(TextColorProperty, value);
- selectorData?.TextColor?.Reset(this);
NotifyPropertyChanged();
}
}
set
{
SetValue(TextShadowProperty, value);
- selectorData?.TextShadow?.Reset(this);
NotifyPropertyChanged();
}
}
/*
- * Copyright(c) 2020 Samsung Electronics Co., Ltd.
+ * Copyright(c) 2021 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
public static readonly BindableProperty TranslatableTextProperty = BindableProperty.Create(nameof(TranslatableText), typeof(string), typeof(TextLabel), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
{
var textLabel = (TextLabel)bindable;
- if (newValue != null)
+
+ if (newValue is Selector<string> selector)
+ {
+ textLabel.TranslatableTextSelector = selector;
+ }
+ else
{
- textLabel.translatableText = (string)newValue;
+ textLabel.selectorData?.TranslatableText?.Reset(textLabel);
+ textLabel.SetTranslatableText((string)newValue);
}
},
defaultValueCreator: (bindable) =>
public static readonly BindableProperty TextProperty = BindableProperty.Create(nameof(Text), typeof(string), typeof(TextLabel), string.Empty, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
{
var textLabel = (TextLabel)bindable;
- if (newValue != null)
+
+ if (newValue is Selector<string> selector)
+ {
+ textLabel.TextSelector = selector;
+ }
+ else
{
- Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)textLabel.SwigCPtr, TextLabel.Property.TEXT, new Tizen.NUI.PropertyValue((string)newValue));
textLabel.selectorData?.Text?.Reset(textLabel);
- textLabel.RequestLayout();
+ textLabel.SetText((string)newValue);
}
}),
defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
public static readonly BindableProperty FontFamilyProperty = BindableProperty.Create(nameof(FontFamily), typeof(string), typeof(TextLabel), string.Empty, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
{
var textLabel = (TextLabel)bindable;
- if (newValue != null)
+
+ if (newValue is Selector<string> selector)
+ {
+ textLabel.FontFamilySelector = selector;
+ }
+ else
{
- Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)textLabel.SwigCPtr, TextLabel.Property.FontFamily, new Tizen.NUI.PropertyValue((string)newValue));
textLabel.selectorData?.FontFamily?.Reset(textLabel);
- textLabel.RequestLayout();
+ textLabel.SetFontFamily((string)newValue);
}
}),
defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
public static readonly BindableProperty PointSizeProperty = BindableProperty.Create(nameof(PointSize), typeof(float), typeof(TextLabel), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
{
var textLabel = (TextLabel)bindable;
- if (newValue != null)
+
+ if (newValue is Selector<float?> selector)
+ {
+ textLabel.PointSizeSelector = selector;
+ }
+ else
{
- Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)textLabel.SwigCPtr, TextLabel.Property.PointSize, new Tizen.NUI.PropertyValue((float)newValue));
textLabel.selectorData?.PointSize?.Reset(textLabel);
- textLabel.RequestLayout();
+ textLabel.SetPointSize((float?)newValue);
}
}),
defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
public static readonly BindableProperty TextColorProperty = BindableProperty.Create(nameof(TextColor), typeof(Color), typeof(TextLabel), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
{
var textLabel = (TextLabel)bindable;
- if (newValue != null)
+
+ if (newValue is Selector<Color> selector)
+ {
+ textLabel.TextColorSelector = selector;
+ }
+ else
{
- Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)textLabel.SwigCPtr, TextLabel.Property.TextColor, new Tizen.NUI.PropertyValue((Color)newValue));
+ textLabel.selectorData?.TextColor?.Reset(textLabel);
+ textLabel.SetTextColor((Color)newValue);
}
}),
defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
public static readonly BindableProperty TextShadowProperty = BindableProperty.Create(nameof(TextShadow), typeof(TextShadow), typeof(TextLabel), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
{
var textLabel = (TextLabel)bindable;
- if (newValue != null)
+
+ if (newValue is Selector<TextShadow> selector)
+ {
+ textLabel.TextShadowSelector = selector;
+ }
+ else
{
- Object.SetProperty((System.Runtime.InteropServices.HandleRef)textLabel.SwigCPtr, Property.SHADOW, TextShadow.ToPropertyValue((TextShadow)newValue));
+ textLabel.selectorData?.TextShadow?.Reset(textLabel);
+ textLabel.SetTextShadow((TextShadow)newValue);
}
}),
defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
public static readonly BindableProperty PixelSizeProperty = BindableProperty.Create(nameof(PixelSize), typeof(float), typeof(TextLabel), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
{
var textLabel = (TextLabel)bindable;
- if (newValue != null)
+
+ if (newValue is Selector<float?> selector)
+ {
+ textLabel.PixelSizeSelector = selector;
+ }
+ else
{
- Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)textLabel.SwigCPtr, TextLabel.Property.PixelSize, new Tizen.NUI.PropertyValue((float)newValue));
textLabel.selectorData?.PixelSize?.Reset(textLabel);
- textLabel.RequestLayout();
+ textLabel.SetPixelSize((float?)newValue);
}
}),
defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
return temp;
}));
- #region Selectors
- internal static readonly BindableProperty TranslatableTextSelectorProperty = BindableProperty.Create("TranslatableTextSelector", typeof(Selector<string>), typeof(TextLabel), null, propertyChanged: (bindable, oldValue, newValue) =>
- {
- var textLabel = (TextLabel)bindable;
- textLabel.EnsureSelectorData().EnsureTranslatableText().Update(textLabel, (Selector<string>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
+ internal Selector<string> TranslatableTextSelector
{
- var textLabel = (TextLabel)bindable;
- return textLabel.GetSelector<string>(textLabel.selectorData?.TranslatableText, TextLabel.TranslatableTextProperty);
- });
- internal static readonly BindableProperty TextSelectorProperty = BindableProperty.Create("TextSelector", typeof(Selector<string>), typeof(TextLabel), null, propertyChanged: (bindable, oldValue, newValue) =>
- {
- var textLabel = (TextLabel)bindable;
- textLabel.EnsureSelectorData().EnsureText().Update(textLabel, (Selector<string>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
+ get => GetSelector<string>(selectorData?.TranslatableText, TextLabel.TranslatableTextProperty);
+ set
+ {
+ selectorData?.TranslatableText?.Reset(this);
+ if (value == null) return;
+
+ if (value.HasAll()) SetTranslatableText(value.All);
+ else EnsureSelectorData().TranslatableText = new TriggerableSelector<string>(this, value, SetTranslatableText, true);
+ }
+ }
+
+ internal Selector<string> TextSelector
{
- var textLabel = (TextLabel)bindable;
- return textLabel.GetSelector<string>(textLabel.selectorData?.Text, TextLabel.TextProperty);
- });
- internal static readonly BindableProperty FontFamilySelectorProperty = BindableProperty.Create("FontFamilySelector", typeof(Selector<string>), typeof(TextLabel), null, propertyChanged: (bindable, oldValue, newValue) =>
+ get => GetSelector<string>(selectorData?.Text, TextLabel.TextProperty);
+ set
+ {
+ selectorData?.Text?.Reset(this);
+ if (value == null) return;
+
+ if (value.HasAll()) SetText(value.All);
+ else EnsureSelectorData().Text = new TriggerableSelector<string>(this, value, SetText, true);
+ }
+ }
+
+ internal Selector<string> FontFamilySelector
{
- var textLabel = (TextLabel)bindable;
- textLabel.EnsureSelectorData().EnsureFontFamily().Update(textLabel, (Selector<string>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
+ get => GetSelector<string>(selectorData?.FontFamily, TextLabel.FontFamilyProperty);
+ set
+ {
+ selectorData?.FontFamily?.Reset(this);
+ if (value == null) return;
+
+ if (value.HasAll()) SetFontFamily(value.All);
+ else EnsureSelectorData().FontFamily = new TriggerableSelector<string>(this, value, SetFontFamily, true);
+ }
+ }
+
+ internal Selector<float?> PointSizeSelector
{
- var textLabel = (TextLabel)bindable;
- return textLabel.GetSelector<string>(textLabel.selectorData?.FontFamily, TextLabel.FontFamilyProperty);
- });
- internal static readonly BindableProperty PointSizeSelectorProperty = BindableProperty.Create("PointSizeSelector", typeof(Selector<float?>), typeof(TextLabel), null, propertyChanged: (bindable, oldValue, newValue) =>
+ get => GetSelector<float?>(selectorData?.PointSize, TextLabel.PointSizeProperty);
+ set
+ {
+ selectorData?.PointSize?.Reset(this);
+ if (value == null) return;
+
+ if (value.HasAll()) SetPointSize(value.All);
+ else EnsureSelectorData().PointSize = new TriggerableSelector<float?>(this, value, SetPointSize, true);
+ }
+ }
+
+ internal Selector<Color> TextColorSelector
{
- var textLabel = (TextLabel)bindable;
- textLabel.EnsureSelectorData().EnsurePointSize().Update(textLabel, (Selector<float?>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
+ get
+ {
+ var selector = selectorData?.TextColor?.Get();
+ if (selector != null)
+ {
+ return selector;
+ }
+
+ Color color = new Color();
+ if (!GetProperty(TextLabel.Property.TextColor).Get(color))
+ {
+ return null;
+ }
+ return new Selector<Color>(color);
+ }
+ set
+ {
+ selectorData?.TextColor?.Reset(this);
+ if (value == null) return;
+
+ if (value.HasAll()) SetTextColor(value.All);
+ else EnsureSelectorData().TextColor = new TriggerableSelector<Color>(this, value, SetTextColor, true);
+ }
+ }
+
+ internal Selector<float?> PixelSizeSelector
{
- var textLabel = (TextLabel)bindable;
- return textLabel.GetSelector<float?>(textLabel.selectorData?.PointSize, TextLabel.PointSizeProperty);
- });
- internal static readonly BindableProperty TextColorSelectorProperty = BindableProperty.Create("TextColorSelector", typeof(Selector<Color>), typeof(TextLabel), null, propertyChanged: (bindable, oldValue, newValue) =>
+ get => GetSelector<float?>(selectorData?.PixelSize, TextLabel.PixelSizeProperty);
+ set
+ {
+ selectorData?.PixelSize?.Reset(this);
+ if (value == null) return;
+
+ if (value.HasAll()) SetPixelSize(value.All);
+ else EnsureSelectorData().PixelSize = new TriggerableSelector<float?>(this, value, SetPixelSize, true);
+ }
+ }
+
+ internal Selector<TextShadow> TextShadowSelector
{
- var textLabel = (TextLabel)bindable;
- textLabel.EnsureSelectorData().EnsureTextColor().Update(textLabel, (Selector<Color>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
+ get => GetSelector<TextShadow>(selectorData?.TextShadow, TextLabel.TextShadowProperty);
+ set
+ {
+ selectorData?.TextShadow?.Reset(this);
+ if (value == null) return;
+
+ if (value.HasAll()) SetTextShadow(value.All);
+ else EnsureSelectorData().TextShadow = new TriggerableSelector<TextShadow>(this, value, SetTextShadow);
+ }
+ }
+
+ private void SetTranslatableText(string value)
{
- var textLabel = (TextLabel)bindable;
- var selector = textLabel.selectorData?.TextColor?.Get();
- if (selector != null)
+ if (value != null)
{
- return selector;
+ translatableText = value;
}
+ }
- Color color = new Color();
- if (!textLabel.GetProperty(TextLabel.Property.TextColor).Get(color))
+ private void SetText(string value)
+ {
+ if (value != null)
{
- return null;
+ Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, TextLabel.Property.TEXT, new Tizen.NUI.PropertyValue(value));
+ RequestLayout();
}
- return new Selector<Color>(color);
- });
+ }
- internal static readonly BindableProperty TextShadowSelectorProperty = BindableProperty.Create("TextShadowSelector", typeof(Selector<TextShadow>), typeof(TextLabel), null, propertyChanged: (bindable, oldValue, newValue) =>
+ private void SetFontFamily(string value)
{
- var textLabel = (TextLabel)bindable;
- textLabel.EnsureSelectorData().EnsureTextShadow().Update(textLabel, (Selector<TextShadow>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
+ if (value != null)
+ {
+ Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, TextLabel.Property.FontFamily, new Tizen.NUI.PropertyValue(value));
+ RequestLayout();
+ }
+ }
+
+ private void SetTextColor(Color value)
{
- var textLabel = (TextLabel)bindable;
- return textLabel.GetSelector<TextShadow>(textLabel.selectorData?.TextShadow, TextLabel.TextShadowProperty);
- });
+ if (value != null)
+ {
+ Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, TextLabel.Property.TextColor, new Tizen.NUI.PropertyValue(value));
+ }
+ }
- internal static readonly BindableProperty PixelSizeSelectorProperty = BindableProperty.Create("PixelSizeSelector", typeof(Selector<float?>), typeof(TextLabel), null, propertyChanged: (bindable, oldValue, newValue) =>
+ private void SetPointSize(float? value)
{
- var textLabel = (TextLabel)bindable;
- ((TextLabel)bindable).EnsureSelectorData().EnsurePixelSize().Update(textLabel, (Selector<float?>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
+ if (value != null)
+ {
+ Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, TextLabel.Property.PointSize, new Tizen.NUI.PropertyValue((float)value));
+ RequestLayout();
+ }
+ }
+
+ private void SetPixelSize(float? value)
{
- var textLabel = (TextLabel)bindable;
- return textLabel.GetSelector<float?>(textLabel.selectorData?.PixelSize, TextLabel.PixelSizeProperty);
- });
- #endregion
+ if (value != null)
+ {
+ Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, TextLabel.Property.PixelSize, new Tizen.NUI.PropertyValue((float)value));
+ RequestLayout();
+ }
+ }
+ private void SetTextShadow(TextShadow value)
+ {
+ if (value != null)
+ {
+ Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, Property.SHADOW, TextShadow.ToPropertyValue(value));
+ }
+ }
}
}
/*
- * Copyright(c) 2020 Samsung Electronics Co., Ltd.
+ * Copyright(c) 2021 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
*/
+using System;
+using System.Diagnostics;
+
namespace Tizen.NUI.BaseComponents
{
/// <summary>
/// </summary>
internal class TextLabelSelectorData
{
- public TriggerableSelector<string> TranslatableText { get; private set; }
- public TriggerableSelector<string> Text { get; private set; }
- public TriggerableSelector<string> FontFamily { get; private set; }
- public TriggerableSelector<Color> TextColor { get; private set; }
- public TriggerableSelector<float?> PointSize { get; private set; }
- public TriggerableSelector<float?> PixelSize { get; private set; }
- public TriggerableSelector<TextShadow> TextShadow { get; private set; }
-
- public TriggerableSelector<string> EnsureTranslatableText() => TranslatableText ?? (TranslatableText = new TriggerableSelector<string>(TextLabel.TranslatableTextProperty));
- public TriggerableSelector<string> EnsureText() => Text ?? (Text = new TriggerableSelector<string>(TextLabel.TextProperty));
- public TriggerableSelector<string> EnsureFontFamily() => FontFamily ?? (FontFamily = new TriggerableSelector<string>(TextLabel.FontFamilyProperty));
- public TriggerableSelector<Color> EnsureTextColor() => TextColor ?? (TextColor = new TriggerableSelector<Color>(TextLabel.TextColorProperty));
- public TriggerableSelector<float?> EnsurePointSize() => PointSize ?? (PointSize = new TriggerableSelector<float?>(TextLabel.PointSizeProperty));
- public TriggerableSelector<float?> EnsurePixelSize() => PixelSize ?? (PixelSize = new TriggerableSelector<float?>(TextLabel.PixelSizeProperty));
- public TriggerableSelector<TextShadow> EnsureTextShadow() => TextShadow ?? (TextShadow = new TriggerableSelector<TextShadow>(TextLabel.TextShadowProperty));
+ public TriggerableSelector<string> TranslatableText { get; set; }
+ public TriggerableSelector<string> Text { get; set; }
+ public TriggerableSelector<string> FontFamily { get; set; }
+ public TriggerableSelector<Color> TextColor { get; set; }
+ public TriggerableSelector<float?> PointSize { get; set; }
+ public TriggerableSelector<float?> PixelSize { get; set; }
+ public TriggerableSelector<TextShadow> TextShadow { get; set; }
public virtual void Reset(View view)
{
using System.ComponentModel;
using System.Runtime.InteropServices;
using Tizen.NUI.Binding;
-using Tizen.NUI.Components;
namespace Tizen.NUI.BaseComponents
{
set
{
SetValue(BackgroundColorProperty, value);
- if (selectorData != null)
- {
- selectorData.BackgroundImage?.Reset(this);
- selectorData.BackgroundColor?.Reset(this);
- }
NotifyPropertyChanged();
}
}
set
{
SetValue(BackgroundImageProperty, value);
- if (selectorData != null)
- {
- selectorData.BackgroundColor?.Reset(this);
- selectorData.BackgroundImage?.Reset(this);
- }
NotifyPropertyChanged();
}
}
set
{
SetValue(BackgroundImageBorderProperty, value);
- selectorData?.BackgroundImageBorder?.Reset(this);
NotifyPropertyChanged();
}
}
set
{
SetValue(ImageShadowProperty, value);
- if (selectorData != null)
- {
- selectorData.BoxShadow?.Reset(this);
- selectorData.ImageShadow?.Reset(this);
- }
NotifyPropertyChanged();
}
}
set
{
SetValue(BoxShadowProperty, value);
- if (selectorData != null)
- {
- selectorData.ImageShadow?.Reset(this);
- selectorData.BoxShadow?.Reset(this);
- }
NotifyPropertyChanged();
}
}
set
{
SetValue(OpacityProperty, value);
- selectorData?.Opacity?.Reset(this);
NotifyPropertyChanged();
}
}
set
{
SetValue(ColorProperty, value);
- selectorData?.Color?.Reset(this);
NotifyPropertyChanged();
}
}
return false;
}
- if (styleProperty.ReturnType.IsGenericType && styleProperty.ReturnType.GetGenericTypeDefinition() == typeof(Selector<>))
- {
- return dirtyPropertySet.Contains(styleProperty.PropertyName.Substring(0, styleProperty.PropertyName.Length - 8));
- }
-
return dirtyPropertySet.Contains(styleProperty.PropertyName);
}
public static readonly BindableProperty BackgroundColorProperty = BindableProperty.Create(nameof(BackgroundColor), typeof(Color), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
{
var view = (View)bindable;
- if (newValue != null)
- {
- if (view.backgroundExtraData == null)
- {
- Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.BACKGROUND, new PropertyValue((Color)newValue));
- return;
- }
-
- PropertyMap map = new PropertyMap();
-
- // TODO Fix to support Vector4 for corner radius after dali support it.
- // Current code only gets first argument of Vector4.
- float cornerRadius = view.backgroundExtraData.CornerRadius?.X ?? 0.0f;
- map.Add(Visual.Property.Type, new PropertyValue((int)Visual.Type.Color))
- .Add(ColorVisualProperty.MixColor, new PropertyValue((Color)newValue))
- .Add(Visual.Property.CornerRadius, new PropertyValue(cornerRadius))
- .Add(Visual.Property.CornerRadiusPolicy, new PropertyValue((int)(view.backgroundExtraData.CornerRadiusPolicy)));
+ view.selectorData?.ClearBackground(view);
- Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.BACKGROUND, new PropertyValue(map));
+ if (newValue is Selector<Color> selector)
+ {
+ if (selector.HasAll()) view.SetBackgroundColor(selector.All);
+ else view.EnsureSelectorData().BackgroundColor = new TriggerableSelector<Color>(view, selector, view.SetBackgroundColor, true);
+ }
+ else
+ {
+ view.SetBackgroundColor((Color)newValue);
}
}),
defaultValueCreator: (bindable) =>
public static readonly BindableProperty ColorProperty = BindableProperty.Create(nameof(Color), typeof(Color), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
{
var view = (View)bindable;
- if (newValue != null)
+
+ view.selectorData?.Color?.Reset(view);
+
+ if (newValue is Selector<Color> selector)
+ {
+ if (selector.HasAll()) view.SetColor(selector.All);
+ else view.EnsureSelectorData().Color = new TriggerableSelector<Color>(view, selector, view.SetColor, true);
+ }
+ else
{
view.SetColor((Color)newValue);
}
view.GetProperty(Interop.ActorProperty.ColorGet()).Get(color);
return color;
});
-
/// <summary> BackgroundImageProperty </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public static readonly BindableProperty BackgroundImageProperty = BindableProperty.Create(nameof(BackgroundImage), typeof(string), typeof(View), default(string), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
{
var view = (View)bindable;
- string url = (string)newValue;
- if (string.IsNullOrEmpty(url))
+ if (view.selectorData != null)
{
- // Clear background
- Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.BACKGROUND, new PropertyValue());
- return;
+ view.selectorData.BackgroundColor?.Reset(view);
+ view.selectorData.BackgroundImage?.Reset(view);
}
- if (url.StartsWith("*Resource*"))
+ if (newValue is Selector<string> selector)
{
- string resource = Tizen.Applications.Application.Current.DirectoryInfo.Resource;
- url = url.Replace("*Resource*", resource);
- }
-
- if (view.backgroundExtraData == null)
- {
- Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.BACKGROUND, new PropertyValue(url));
- view.BackgroundImageSynchronosLoading = view.backgroundImageSynchronosLoading;
-
- return;
- }
-
- PropertyMap map = new PropertyMap();
-
- // TODO Fix to support Vector4 for corner radius after dali support it.
- // Current code only gets first argument of Vector4.
- float cornerRadius = view.backgroundExtraData.CornerRadius?.X ?? 0.0f;
-
- map.Add(ImageVisualProperty.URL, new PropertyValue(url))
- .Add(Visual.Property.CornerRadius, new PropertyValue(cornerRadius))
- .Add(Visual.Property.CornerRadiusPolicy, new PropertyValue((int)(view.backgroundExtraData.CornerRadiusPolicy)))
- .Add(ImageVisualProperty.SynchronousLoading, new PropertyValue(view.backgroundImageSynchronosLoading));
-
- if (view.backgroundExtraData.BackgroundImageBorder != null)
- {
- map.Add(Visual.Property.Type, new PropertyValue((int)Visual.Type.NPatch))
- .Add(NpatchImageVisualProperty.Border, new PropertyValue(view.backgroundExtraData.BackgroundImageBorder));
+ if (selector.HasAll()) view.SetBackgroundImage(selector.All);
+ else view.EnsureSelectorData().BackgroundImage = new TriggerableSelector<string>(view, selector, view.SetBackgroundImage, true);
}
else
{
- map.Add(Visual.Property.Type, new PropertyValue((int)Visual.Type.Image));
+ view.SetBackgroundImage((string)newValue);
}
-
- Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.BACKGROUND, new PropertyValue(map));
}),
defaultValueCreator: (bindable) =>
{
{
var view = (View)bindable;
- bool isEmptyValue = Rectangle.IsNullOrZero((Rectangle)newValue);
+ view.selectorData?.BackgroundImageBorder?.Reset(view);
- var backgroundImageBorder = isEmptyValue ? null : (Rectangle)newValue;
-
- (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).BackgroundImageBorder = backgroundImageBorder;
-
- if (isEmptyValue)
+ if (newValue is Selector<Rectangle> selector)
{
- return;
+ if (selector.HasAll()) view.SetBackgroundImageBorder(selector.All);
+ else view.EnsureSelectorData().BackgroundImageBorder = new TriggerableSelector<Rectangle>(view, selector, view.SetBackgroundImageBorder, true);
}
-
- PropertyMap map = view.Background;
-
- if (map.Empty())
- {
- return;
- }
-
- map[NpatchImageVisualProperty.Border] = new PropertyValue(backgroundImageBorder);
-
- int visualType = 0;
-
- map.Find(Visual.Property.Type)?.Get(out visualType);
-
- if (visualType == (int)Visual.Type.Image)
+ else
{
- map[Visual.Property.Type] = new PropertyValue((int)Visual.Type.NPatch);
+ view.SetBackgroundImageBorder((Rectangle)newValue);
}
-
- Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.BACKGROUND, new PropertyValue(map));
-
}),
defaultValueCreator: (bindable) =>
{
{
var view = (View)bindable;
- if (newValue != null)
+ view.selectorData?.Opacity?.Reset(view);
+
+ if (newValue is Selector<float?> selector)
+ {
+ if (selector.HasAll()) view.SetOpacity(selector.All);
+ else view.EnsureSelectorData().Opacity = new TriggerableSelector<float?>(view, selector, view.SetOpacity, true);
+ }
+ else
{
- Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.OPACITY, new Tizen.NUI.PropertyValue((float)newValue));
+ view.SetOpacity((float?)newValue);
}
}),
defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
[EditorBrowsable(EditorBrowsableState.Never)]
public static readonly BindableProperty ImageShadowProperty = BindableProperty.Create(nameof(ImageShadow), typeof(ImageShadow), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
{
- var shadow = (ImageShadow)newValue;
var view = (View)bindable;
- Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SHADOW, shadow == null ? new PropertyValue() : shadow.ToPropertyValue(view));
+
+ view.selectorData?.ClearShadow(view);
+
+ if (newValue is Selector<ImageShadow> selector)
+ {
+ if (selector.HasAll()) view.SetShadow(selector.All);
+ else view.EnsureSelectorData().ImageShadow = new TriggerableSelector<ImageShadow>(view, selector, view.SetShadow, true);
+ }
+ else
+ {
+ view.SetShadow((ImageShadow)newValue);
+ }
}),
defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
{
[EditorBrowsable(EditorBrowsableState.Never)]
public static readonly BindableProperty BoxShadowProperty = BindableProperty.Create(nameof(BoxShadow), typeof(Shadow), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
{
- var shadow = (Shadow)newValue;
var view = (View)bindable;
- Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SHADOW, shadow == null ? new PropertyValue() : shadow.ToPropertyValue(view));
+
+ view.selectorData?.ClearShadow(view);
+
+ if (newValue is Selector<Shadow> selector)
+ {
+ if (selector.HasAll()) view.SetShadow(selector.All);
+ else view.EnsureSelectorData().BoxShadow = new TriggerableSelector<Shadow>(view, selector, view.SetShadow, true);
+ }
+ else
+ {
+ view.SetShadow((Shadow)newValue);
+ }
}),
defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
{
return temp;
});
- #region Selectors
- internal static readonly BindableProperty BackgroundImageSelectorProperty = BindableProperty.Create("BackgroundImageSelector", typeof(Selector<string>), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
- {
- var view = (View)bindable;
- view.EnsureSelectorData().EnsureBackgroundImage().Update(view, (Selector<string>)newValue, true);
- if (newValue != null) view.EnsureSelectorData().BackgroundColor?.Reset(view);
- },
- defaultValueCreator: (bindable) =>
+ private void SetBackgroundImage(string value)
{
- var view = (View)bindable;
- var selector = view.selectorData?.BackgroundImage?.Get();
- if (selector != null)
+ if (string.IsNullOrEmpty(value))
{
- return selector;
+ // Clear background
+ Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.BACKGROUND, new PropertyValue());
+ return;
}
- string backgroundImage = null;
- view.Background.Find(ImageVisualProperty.URL)?.Get(out backgroundImage);
- return backgroundImage == null ? null : new Selector<string>(backgroundImage);
- });
+ if (value.StartsWith("*Resource*"))
+ {
+ string resource = Tizen.Applications.Application.Current.DirectoryInfo.Resource;
+ value = value.Replace("*Resource*", resource);
+ }
- internal static readonly BindableProperty BackgroundColorSelectorProperty = BindableProperty.Create("BackgroundColorSelector", typeof(Selector<Color>), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
- {
- var view = (View)bindable;
- view.EnsureSelectorData().EnsureBackgroundColor().Update(view, (Selector<Color>)newValue, true);
- if (newValue != null) view.EnsureSelectorData().BackgroundImage?.Reset(view);
- },
- defaultValueCreator: (bindable) =>
- {
- var view = (View)bindable;
- var selector = view.selectorData?.BackgroundColor?.Get();
- if (selector != null)
+ if (backgroundExtraData == null)
{
- return selector;
+ Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.BACKGROUND, new PropertyValue(value));
+ BackgroundImageSynchronosLoading = backgroundImageSynchronosLoading;
+
+ return;
}
- var background = view.Background;
- int visualType = 0;
- background.Find(Visual.Property.Type)?.Get(out visualType);
- if (visualType != (int)Visual.Type.Color)
+ PropertyMap map = new PropertyMap();
+
+ // TODO Fix to support Vector4 for corner radius after dali support it.
+ // Current code only gets first argument of Vector4.
+ float cornerRadius = backgroundExtraData.CornerRadius?.X ?? 0.0f;
+
+ map.Add(ImageVisualProperty.URL, new PropertyValue(value))
+ .Add(Visual.Property.CornerRadius, new PropertyValue(cornerRadius))
+ .Add(Visual.Property.CornerRadiusPolicy, new PropertyValue((int)(backgroundExtraData.CornerRadiusPolicy)))
+ .Add(ImageVisualProperty.SynchronousLoading, new PropertyValue(backgroundImageSynchronosLoading));
+
+ if (backgroundExtraData.BackgroundImageBorder != null)
{
- return null;
+ map.Add(Visual.Property.Type, new PropertyValue((int)Visual.Type.NPatch))
+ .Add(NpatchImageVisualProperty.Border, new PropertyValue(backgroundExtraData.BackgroundImageBorder));
+ }
+ else
+ {
+ map.Add(Visual.Property.Type, new PropertyValue((int)Visual.Type.Image));
}
- Color backgroundColor = new Color();
- background.Find(ColorVisualProperty.MixColor)?.Get(backgroundColor);
- return new Selector<Color>(backgroundColor);
- });
+ Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.BACKGROUND, new PropertyValue(map));
+ }
- internal static readonly BindableProperty BackgroundImageBorderSelectorProperty = BindableProperty.Create("BackgroundImageBorderSelector", typeof(Selector<Rectangle>), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
+ private void SetBackgroundImageBorder(Rectangle value)
{
- var view = (View)bindable;
- view.EnsureSelectorData().EnsureBackgroundImageBorder().Update(view, (Selector<Rectangle>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
- {
- var view = (View)bindable;
- return view.GetSelector<Rectangle>(view.selectorData?.BackgroundImageBorder, View.BackgroundImageBorderProperty);
- });
+ bool isEmptyValue = Rectangle.IsNullOrZero(value);
- internal static readonly BindableProperty ColorSelectorProperty = BindableProperty.Create("ColorSelector", typeof(Selector<Color>), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
- {
- var view = (View)bindable;
- view.EnsureSelectorData().EnsureColor().Update(view, (Selector<Color>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
- {
- var view = (View)bindable;
- var selector = view.selectorData?.Color?.Get();
- if (selector != null)
+ var backgroundImageBorder = isEmptyValue ? null : value;
+
+ (backgroundExtraData ?? (backgroundExtraData = new BackgroundExtraData())).BackgroundImageBorder = backgroundImageBorder;
+
+ if (isEmptyValue)
{
- return selector;
+ return;
}
- Color color = new Color();
- if (!view.GetProperty(Interop.ActorProperty.ColorGet()).Get(color))
+ PropertyMap map = Background;
+
+ if (map.Empty())
{
- return null;
+ return;
}
- return new Selector<Color>(color);
- });
- internal static readonly BindableProperty OpacitySelectorProperty = BindableProperty.Create("OpacitySelector", typeof(Selector<float?>), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
- {
- var view = (View)bindable;
- view.EnsureSelectorData().EnsureOpacity().Update(view, (Selector<float?>)newValue, true);
- },
- defaultValueCreator: (bindable) =>
- {
- var view = (View)bindable;
- return view.GetSelector<float?>(view.selectorData?.Opacity, View.OpacityProperty);
- });
+ map[NpatchImageVisualProperty.Border] = new PropertyValue(backgroundImageBorder);
- /// <summary>
- /// ImageShadow Selector Property for binding to ViewStyle
- /// </summary>
- [EditorBrowsable(EditorBrowsableState.Never)]
- public static readonly BindableProperty ImageShadowSelectorProperty = BindableProperty.Create("ImageShadowSelector", typeof(Selector<ImageShadow>), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
+ int visualType = 0;
+
+ map.Find(Visual.Property.Type)?.Get(out visualType);
+
+ if (visualType == (int)Visual.Type.Image)
+ {
+ map[Visual.Property.Type] = new PropertyValue((int)Visual.Type.NPatch);
+ }
+
+ Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.BACKGROUND, new PropertyValue(map));
+ }
+
+ private void SetBackgroundColor(Color value)
{
- var view = (View)bindable;
- view.EnsureSelectorData().EnsureImageShadow().Update(view, (Selector<ImageShadow>)newValue, true);
- if (newValue != null) view.EnsureSelectorData().BoxShadow?.Reset(view);
- },
- defaultValueCreator: (bindable) =>
+ if (value == null)
+ {
+ return;
+ }
+
+ if (backgroundExtraData == null)
+ {
+ Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.BACKGROUND, new PropertyValue(value));
+ return;
+ }
+
+ PropertyMap map = new PropertyMap();
+
+ // TODO Fix to support Vector4 for corner radius after dali support it.
+ // Current code only gets first argument of Vector4.
+ float cornerRadius = backgroundExtraData.CornerRadius?.X ?? 0.0f;
+
+ map.Add(Visual.Property.Type, new PropertyValue((int)Visual.Type.Color))
+ .Add(ColorVisualProperty.MixColor, new PropertyValue(value))
+ .Add(Visual.Property.CornerRadius, new PropertyValue(cornerRadius))
+ .Add(Visual.Property.CornerRadiusPolicy, new PropertyValue((int)(backgroundExtraData.CornerRadiusPolicy)));
+
+ Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.BACKGROUND, new PropertyValue(map));
+ }
+
+ private void SetColor(Color value)
{
- var view = (View)bindable;
- return view.GetSelector<ImageShadow>(view.selectorData?.ImageShadow, View.ImageShadowProperty);
- });
+ if (value == null)
+ {
+ return;
+ }
- /// <summary>
- /// BoxShadow Selector Property for binding to ViewStyle
- /// </summary>
- [EditorBrowsable(EditorBrowsableState.Never)]
- public static readonly BindableProperty BoxShadowSelectorProperty = BindableProperty.Create("BoxShadowSelector", typeof(Selector<Shadow>), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
+ Interop.ActorInternal.SetColor(SwigCPtr, value.SwigCPtr);
+ if (NDalicPINVOKE.SWIGPendingException.Pending)
+ throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
+
+ private void SetOpacity(float? value)
{
- var view = (View)bindable;
- view.EnsureSelectorData().EnsureBoxShadow().Update(view, (Selector<Shadow>)newValue, true);
- if (newValue != null) view.EnsureSelectorData().ImageShadow?.Reset(view);
- },
- defaultValueCreator: (bindable) =>
+ if (value == null)
+ {
+ return;
+ }
+
+ Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.OPACITY, new Tizen.NUI.PropertyValue((float)value));
+ }
+
+ private void SetShadow(ShadowBase value)
{
- var view = (View)bindable;
- return view.GetSelector<Shadow>(view.selectorData?.BoxShadow, View.BoxShadowProperty);
- });
- #endregion
+ Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.SHADOW, value == null ? new PropertyValue() : value.ToPropertyValue(this));
+ }
}
}
return ret;
}
- internal void SetColor(Vector4 color)
- {
- Interop.ActorInternal.SetColor(SwigCPtr, Vector4.getCPtr(color));
- if (NDalicPINVOKE.SWIGPendingException.Pending)
- throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- }
-
internal Vector4 GetCurrentColor()
{
Vector4 ret = new Vector4(Interop.ActorInternal.GetCurrentColor(SwigCPtr), true);
*
*/
+using System;
+using System.Diagnostics;
+
namespace Tizen.NUI.BaseComponents
{
/// <summary>
{
internal ViewSelectorData() { }
- public TriggerableSelector<Color> BackgroundColor { get; private set; }
- public TriggerableSelector<string> BackgroundImage { get; private set; }
- public TriggerableSelector<Rectangle> BackgroundImageBorder { get; private set; }
- public TriggerableSelector<Color> Color { get; private set; }
- public TriggerableSelector<float?> Opacity { get; private set; }
- public TriggerableSelector<ImageShadow> ImageShadow { get; private set; }
- public TriggerableSelector<Shadow> BoxShadow { get; private set; }
+ public TriggerableSelector<Color> BackgroundColor{ get; set; }
+ public TriggerableSelector<string> BackgroundImage{ get; set; }
+ public TriggerableSelector<Rectangle> BackgroundImageBorder{ get; set; }
+ public TriggerableSelector<Color> Color{ get; set; }
+ public TriggerableSelector<float?> Opacity{ get; set; }
+ public TriggerableSelector<ImageShadow> ImageShadow{ get; set; }
+ public TriggerableSelector<Shadow> BoxShadow{ get; set; }
- public TriggerableSelector<Color> EnsureBackgroundColor() => BackgroundColor ?? (BackgroundColor = new TriggerableSelector<Color>(View.BackgroundColorProperty));
- public TriggerableSelector<string> EnsureBackgroundImage() => BackgroundImage ?? (BackgroundImage = new TriggerableSelector<string>(View.BackgroundImageProperty));
- public TriggerableSelector<Rectangle> EnsureBackgroundImageBorder() => BackgroundImageBorder ?? (BackgroundImageBorder = new TriggerableSelector<Rectangle>(View.BackgroundImageBorderProperty));
- public TriggerableSelector<Color> EnsureColor() => Color ?? (Color = new TriggerableSelector<Color>(View.ColorProperty));
- public TriggerableSelector<float?> EnsureOpacity() => Opacity ?? (Opacity = new TriggerableSelector<float?>(View.OpacityProperty));
- public TriggerableSelector<ImageShadow> EnsureImageShadow() => ImageShadow ?? (ImageShadow = new TriggerableSelector<ImageShadow>(View.ImageShadowProperty));
- public TriggerableSelector<Shadow> EnsureBoxShadow() => BoxShadow ?? (BoxShadow = new TriggerableSelector<Shadow>(View.BoxShadowProperty));
+ public void ClearBackground(View view)
+ {
+ BackgroundColor?.Reset(view);
+ BackgroundImage?.Reset(view);
+ BackgroundImageBorder?.Reset(view);
+ BackgroundColor = null;
+ BackgroundImage = null;
+ BackgroundImageBorder = null;
+ }
+ public void ClearShadow(View view)
+ {
+ ImageShadow?.Reset(view);
+ BoxShadow?.Reset(view);
+ ImageShadow = null;
+ BoxShadow = null;
+ }
public void Reset(View view)
{