*/
using System;
+using System.ComponentModel;
+using System.Diagnostics;
namespace ElmSharp.Wearable
{
/// <summary>
- /// The Circle Spinner is a widget to display and handle spinner value by rotary event
+ /// The Circle Spinner is a widget to display and handle the spinner value by the Rotary event.
/// Inherits <see cref="Spinner"/>.
/// </summary>
- public class CircleSpinner : Spinner
+ /// <since_tizen> preview </since_tizen>
+ [Obsolete("This has been deprecated in API12")]
+ public class CircleSpinner : Spinner, IRotaryActionWidget
{
- private IntPtr _circleHandle;
- private double _angleRatio = 1.0;
+ IntPtr _circleHandle;
+ double _angleRatio = -1.0;
+ CircleSurface _surface;
/// <summary>
/// Creates and initializes a new instance of the Circle Spinner class.
/// </summary>
- /// <param name="parent">The parent of new Circle Spinner instance</param>
- public CircleSpinner(EvasObject parent) : base(parent)
+ /// <param name="parent">The parent of the new Circle Spinner instance.</param>
+ /// <param name="surface">The surface for drawing circle features for this widget.</param>
+ /// <since_tizen> preview </since_tizen>
+ [Obsolete("This has been deprecated in API12")]
+ public CircleSpinner(EvasObject parent, CircleSurface surface) : base()
{
+ Debug.Assert(parent == null || surface == null || parent.IsRealized);
+ _surface = surface;
+ Realize(parent);
}
/// <summary>
+ /// Creates and initializes a new instance of the Circle Spinner class.
+ /// </summary>
+ /// <param name="parent">The parent of the new Circle Spinner instance.</param>
+ /// <since_tizen> preview </since_tizen>
+ [Obsolete("It is not safe for guess circle surface from parent and create new surface by every new widget")]
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public CircleSpinner(EvasObject parent) : this(parent, CircleSurface.CreateCircleSurface(parent))
+ {
+ ((IRotaryActionWidget)this).Activate();
+ }
+
+ /// <summary>
+ /// Gets the handle for Circle widget.
+ /// </summary>
+ /// <since_tizen> preview </since_tizen>
+ [Obsolete("This has been deprecated in API12")]
+ public virtual IntPtr CircleHandle => _circleHandle;
+
+ /// <summary>
+ /// Gets the handle for the circle surface used in this widget.
+ /// </summary>
+ /// <since_tizen> preview </since_tizen>
+ [Obsolete("This has been deprecated in API12")]
+ public virtual CircleSurface CircleSurface => _surface;
+
+ /// <summary>
/// Sets or gets the circle spinner angle per each spinner value.
/// </summary>
+ /// <since_tizen> preview </since_tizen>
+ [Obsolete("Use Step")]
+ [EditorBrowsable(EditorBrowsableState.Never)]
public double AngleRatio
{
get
{
+ if (_angleRatio <= 0)
+ {
+ if (Maximum == Minimum)
+ {
+ return 0.0;
+ }
+ else
+ {
+ return 360 / (Maximum - Minimum);
+ }
+ }
+
return _angleRatio;
}
set
{
- _angleRatio = value;
- Interop.Eext.eext_circle_object_spinner_angle_set(_circleHandle, _angleRatio);
+ if (value > 0)
+ {
+ if (_angleRatio == value) return;
+
+ _angleRatio = value;
+
+ Interop.Eext.eext_circle_object_spinner_angle_set(CircleHandle, _angleRatio);
+ }
}
}
/// <summary>
- /// Sets or gets disabled state of the circle spinner object.
+ /// Sets or gets the disabled state of this widget.
/// </summary>
+ /// <since_tizen> preview </since_tizen>
+ [Obsolete("Use IsEnabled")]
+ [EditorBrowsable(EditorBrowsableState.Never)]
public bool Disabled
{
+ get => !IsEnabled;
+ set => IsEnabled = !value;
+ }
+
+ /// <summary>
+ /// Sets or gets the state of the widget, which might be enabled or disabled.
+ /// </summary>
+ /// <since_tizen> preview </since_tizen>
+ [Obsolete("This has been deprecated in API12")]
+ public override bool IsEnabled
+ {
get
{
- return Interop.Eext.eext_circle_object_disabled_get(_circleHandle); ;
+ return !Interop.Eext.eext_circle_object_disabled_get(CircleHandle);
}
set
{
- Interop.Eext.eext_circle_object_disabled_set(_circleHandle, value);
+ Interop.Eext.eext_circle_object_disabled_set(CircleHandle, !value);
}
}
/// <summary>
- /// Sets or gets the line width of the marker
+ /// Sets or gets the line width of the marker.
/// </summary>
+ /// <remarks>
+ /// MarkerLineWidth is not supported on device or emulator which does not support marker in CircleDatetimeSelector and CircleSpinner.
+ /// </remarks>
+ /// <since_tizen> preview </since_tizen>
+ [Obsolete("MarkerLineWidth is obsolete as of version 6.0.0 and is no longer supported")]
public int MarkerLineWidth
{
get
{
- return Interop.Eext.eext_circle_object_item_line_width_get(_circleHandle, "default");
+ return Interop.Eext.eext_circle_object_item_line_width_get(CircleHandle, "default");
}
set
{
- Interop.Eext.eext_circle_object_item_line_width_set(_circleHandle, "default", value);
+ Interop.Eext.eext_circle_object_item_line_width_set(CircleHandle, "default", value);
}
}
/// <summary>
- /// Sets or gets the color of the marker
+ /// Sets or gets the color of the marker.
/// </summary>
+ /// <remarks>
+ /// MarkerColor is not supported on device or emulator which does not support marker in CircleDatetimeSelector and CircleSpinner.
+ /// </remarks>
+ /// <since_tizen> preview </since_tizen>
+ [Obsolete("MarkerColor is obsolete as of version 6.0.0 and is no longer supported")]
public Color MarkerColor
{
get
{
int r, g, b, a;
- Interop.Eext.eext_circle_object_item_color_get(_circleHandle, "default", out r, out g, out b, out a);
+ Interop.Eext.eext_circle_object_item_color_get(CircleHandle, "default", out r, out g, out b, out a);
return new Color(r, g, b, a);
}
set
{
- Interop.Eext.eext_circle_object_item_color_set(_circleHandle, "default", value.R, value.G, value.B, value.A);
+ Interop.Eext.eext_circle_object_item_color_set(CircleHandle, "default", value.R, value.G, value.B, value.A);
}
}
/// <summary>
- /// Sets or gets the radius at which the center of the marker lies
+ /// Sets or gets the radius at which the center of the marker lies.
/// </summary>
+ /// <remarks>
+ /// MarkerRadius is not supported on device or emulator which does not support marker in CircleDatetimeSelector and CircleSpinner.
+ /// </remarks>
+ /// <since_tizen> preview </since_tizen>
+ [Obsolete("MarkerRadius is obsolete as of version 6.0.0 and is no longer supported")]
public double MarkerRadius
{
get
{
- return Interop.Eext.eext_circle_object_item_radius_get(_circleHandle, "default");
+ return Interop.Eext.eext_circle_object_item_radius_get(CircleHandle, "default");
}
set
{
- Interop.Eext.eext_circle_object_item_radius_set(_circleHandle, "default", value);
+ Interop.Eext.eext_circle_object_item_radius_set(CircleHandle, "default", value);
}
}
+ /// <summary>
+ /// Creates a widget handle.
+ /// </summary>
+ /// <param name="parent">Parent EvasObject.</param>
+ /// <returns>Handle IntPtr.</returns>
+ /// <since_tizen> preview </since_tizen>
+ [Obsolete("This has been deprecated in API12")]
protected override IntPtr CreateHandle(EvasObject parent)
{
IntPtr handle = base.CreateHandle(parent);
-
- IntPtr surface = IntPtr.Zero;
-
- if (parent is Conformant)
- {
- surface = Interop.Eext.eext_circle_surface_conformant_add(parent.Handle);
- }
- else if (parent is Naviframe)
- {
- surface = Interop.Eext.eext_circle_surface_naviframe_add(parent.RealHandle);
- }
- else if (parent is Layout)
- {
- surface = Interop.Eext.eext_circle_surface_layout_add(parent.Handle);
- }
-
- _circleHandle = Interop.Eext.eext_circle_object_spinner_add(RealHandle, surface);
- if (surface == IntPtr.Zero)
- {
- EvasObject p = parent;
- while (!(p is Window))
- {
- p = p.Parent;
- }
- var w = (p as Window).ScreenSize.Width;
- var h = (p as Window).ScreenSize.Height;
- Interop.Evas.evas_object_resize(_circleHandle, w, h);
- }
-
- Interop.Eext.eext_rotary_object_event_activated_set(_circleHandle, true);
+ _circleHandle = Interop.Eext.eext_circle_object_spinner_add(RealHandle == IntPtr.Zero ? handle : RealHandle, CircleSurface.Handle);
return handle;
}
}