ItemSpacing = new Size2D(8, 8),
CornerRadius = 12.0f,
BorderlineWidth = 2.0f,
- BorderlineColor = new Color("#FF6200"), // FIXME: BorderlineColor should support Selector<Color>.
+ BorderlineColorSelector = new Selector<Color>()
+ {
+ Normal = new Color("#FF6200"),
+ Pressed = new Color("#FFA166"),
+ Focused = new Color("#FF7119"),
+ Selected = new Color("#FF8133"),
+ Disabled = new Color("#CACACA"),
+ },
ItemHorizontalAlignment = HorizontalAlignment.Center,
ItemVerticalAlignment = VerticalAlignment.Center,
BackgroundColor = Color.Transparent,
private Selector<Rectangle> backgroundImageBorderSelector;
private Selector<Color> colorSelector;
private VisualTransformPolicyType? cornerRadiusPolicy;
+ private Selector<Color> borderlineColorSelector;
static ViewStyle() { }
}
/// <summary>
+ /// The color selector for the borderline of the View.
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public Selector<Color> BorderlineColorSelector
+ {
+ get
+ {
+ Selector<Color> color = (Selector<Color>)GetValue(BorderlineColorSelectorProperty);
+ return (null != color) ? color : borderlineColorSelector = new Selector<Color>();
+ }
+ set => SetValue(BorderlineColorSelectorProperty, value);
+ }
+
+ /// <summary>
/// The Relative offset for the borderline of the View.
/// Recommended range : [-1.0f to 1.0f].
/// If -1.0f, draw borderline inside of the View.
((ViewStyle)bindable).borderlineColor = (Color)newValue;
}, defaultValueCreator: (bindable) => ((ViewStyle)bindable).borderlineColor ?? Tizen.NUI.Color.Black);
+ /// <summary> Bindable property of BorderlineColorSelector. Do not open it. </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public static readonly BindableProperty BorderlineColorSelectorProperty = BindableProperty.Create(nameof(BorderlineColor), typeof(Selector<Color>), typeof(ViewStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+ {
+ var viewStyle = (ViewStyle)bindable;
+
+ if (newValue == null)
+ {
+ viewStyle.borderlineColorSelector = null;
+ }
+ else
+ {
+ viewStyle.borderlineColorSelector = (Selector<Color>)newValue;
+ }
+ },
+ defaultValueCreator: (bindable) =>
+ {
+ return ((ViewStyle)bindable).borderlineColorSelector;
+ });
+
/// <summary> Bindable property of BorderlineOffset. Do not open it. </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public static readonly BindableProperty BorderlineOffsetProperty = BindableProperty.Create(nameof(BorderlineOffset), typeof(float?), typeof(ViewStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
/// BorderlineColor Property
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- public static readonly BindableProperty BorderlineColorProperty = BindableProperty.Create(nameof(BorderlineColor), typeof(Color), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
- {
- var view = (View)bindable;
- (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).BorderlineColor = (Color)newValue;
- view.ApplyBorderline();
- },
- defaultValueCreator: (bindable) =>
- {
- var view = (View)bindable;
- return view.backgroundExtraData == null ? Color.Black : view.backgroundExtraData.BorderlineColor;
- });
+ public static readonly BindableProperty BorderlineColorProperty = BindableProperty.Create(nameof(BorderlineColor), typeof(Color), typeof(View), null,
+ propertyChanged: (bindable, oldValue, newValue) =>
+ {
+ var view = (View)bindable;
+
+ view.themeData?.selectorData?.BorderlineColor?.Reset(view);
+
+ if (newValue is Selector<Color> selector)
+ {
+ if (selector.HasAll()) view.SetBorderlineColor(selector.All);
+ else view.EnsureSelectorData().BorderlineColor = new TriggerableSelector<Color>(view, selector, view.SetBorderlineColor, true);
+ }
+ else
+ {
+ view.SetBorderlineColor((Color)newValue);
+ }
+ },
+ defaultValueCreator: (bindable) =>
+ {
+ var view = (View)bindable;
+ return view.backgroundExtraData == null ? Color.Black : view.backgroundExtraData.BorderlineColor;
+ }
+ );
/// <summary>
/// BorderlineOffset Property
Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.BACKGROUND, new PropertyValue(map));
}
+ private void SetBorderlineColor(Color value)
+ {
+ if (value == null)
+ {
+ return;
+ }
+
+ (backgroundExtraData ?? (backgroundExtraData = new BackgroundExtraData())).BorderlineColor = value;
+
+ ApplyBorderline();
+ }
+
private void SetBackgroundColor(Color value)
{
if (value == null)
public TriggerableSelector<float?> Opacity{ get; set; }
public TriggerableSelector<ImageShadow> ImageShadow{ get; set; }
public TriggerableSelector<Shadow> BoxShadow{ get; set; }
+ public TriggerableSelector<Color> BorderlineColor{ get; set; }
public void ClearBackground(View view)
{
Opacity?.Reset(view);
ImageShadow?.Reset(view);
BoxShadow?.Reset(view);
+ BorderlineColor?.Reset(view);
}
}
}