X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2FElmSharp.Wearable%2FElmSharp.Wearable%2FCircleScroller.cs;h=fe1c44ffa7f33ecc0780a93563153ea1e7dba2d9;hb=refs%2Ftags%2F4.0.1-preview1-00048;hp=cd3a3c3d7c378dcedbe6ea0ab54ab6bbbb91be5f;hpb=62a1165375351441555f7a0ac1aa6dff3adc0b85;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git
diff --git a/src/ElmSharp.Wearable/ElmSharp.Wearable/CircleScroller.cs b/src/ElmSharp.Wearable/ElmSharp.Wearable/CircleScroller.cs
index cd3a3c3..fe1c44f 100644
--- a/src/ElmSharp.Wearable/ElmSharp.Wearable/CircleScroller.cs
+++ b/src/ElmSharp.Wearable/ElmSharp.Wearable/CircleScroller.cs
@@ -15,86 +15,135 @@
*/
using System;
+using System.ComponentModel;
+using System.Diagnostics;
namespace ElmSharp.Wearable
{
///
- /// Circle scroller provides scrollbar with circular movement and is scrolled by rotary event.
+ /// Circle scroller provides the scrollbar with a circular movement, and is scrolled by the Rotary event.
///
- public class CircleScroller : Scroller
+ /// preview
+ public class CircleScroller : Scroller, IRotaryActionWidget
{
- private IntPtr _circleHandle;
+ IntPtr _circleHandle;
+ CircleSurface _surface;
///
/// Creates and initializes a new instance of the CircleScroller class.
///
/// The to which the new CircleScroller will be attached as a child.
- public CircleScroller(EvasObject parent) : base(parent)
+ /// The surface for drawing circle features for this widget.
+ /// preview
+ public CircleScroller(EvasObject parent, CircleSurface surface) : base()
{
+ Debug.Assert(parent == null || surface == null || parent.IsRealized);
+ _surface = surface;
+ Realize(parent);
}
///
- /// Sets or gets disabled state of the circle scroller object.
+ /// Creates and initializes a new instance of the Circle Scroller class.
///
+ /// The parent of the new Circle CircleScroller instance.
+ /// preview
+ [Obsolete("It is not safe for guess circle surface from parent and create new surface by every new widget")]
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public CircleScroller(EvasObject parent) : this(parent, CircleSurface.CreateCircleSurface(parent))
+ {
+ ((IRotaryActionWidget)this).Activate();
+ }
+
+ ///
+ /// Gets the handle for the Circle widget.
+ ///
+ /// preview
+ public virtual IntPtr CircleHandle => _circleHandle;
+
+ ///
+ /// Gets the handle for the circle surface used in this widget.
+ ///
+ /// preview
+ public virtual CircleSurface CircleSurface => _surface;
+
+ ///
+ /// Sets or gets the disabled state of this widget.
+ ///
+ /// preview
+ [Obsolete("Use IsEnabled")]
+ [EditorBrowsable(EditorBrowsableState.Never)]
public bool Disabled
{
+ get => !IsEnabled;
+ set => IsEnabled = !value;
+ }
+
+ ///
+ /// Sets or gets the state of the widget, which might be enabled or disabled.
+ ///
+ /// preview
+ 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);
}
}
///
- /// Sets or gets the value of HorizontalScrollBarVisiblePolicy
+ /// Sets or gets the value of HorizontalScrollBarVisiblePolicy.
///
///
- /// ScrollBarVisiblePolicy.Auto means the horizontal scrollbar is made visible if it is needed, and otherwise kept hidden.
+ /// ScrollBarVisiblePolicy.Auto means the horizontal scrollbar is made visible if it is needed, otherwise kept hidden.
/// ScrollBarVisiblePolicy.Visible turns it on all the time, and ScrollBarVisiblePolicy.Invisible always keeps it off.
///
+ /// preview
public override ScrollBarVisiblePolicy HorizontalScrollBarVisiblePolicy
{
get
{
int policy;
- Interop.Eext.eext_circle_object_scroller_policy_get(_circleHandle, out policy, IntPtr.Zero);
+ Interop.Eext.eext_circle_object_scroller_policy_get(CircleHandle, out policy, IntPtr.Zero);
return (ScrollBarVisiblePolicy)policy;
}
set
{
ScrollBarVisiblePolicy v = VerticalScrollBarVisiblePolicy;
- Interop.Eext.eext_circle_object_scroller_policy_set(_circleHandle, (int)value, (int)v);
+ Interop.Eext.eext_circle_object_scroller_policy_set(CircleHandle, (int)value, (int)v);
}
}
///
- /// Sets or gets the value of VerticalScrollBarVisiblePolicy
+ /// Sets or gets the value of VerticalScrollBarVisiblePolicy.
///
///
- /// ScrollBarVisiblePolicy.Auto means the vertical scrollbar is made visible if it is needed, and otherwise kept hidden.
+ /// ScrollBarVisiblePolicy.Auto means the vertical scrollbar is made visible if it is needed, otherwise kept hidden.
/// ScrollBarVisiblePolicy.Visible turns it on all the time, and ScrollBarVisiblePolicy.Invisible always keeps it off.
///
+ /// preview
public override ScrollBarVisiblePolicy VerticalScrollBarVisiblePolicy
{
get
{
int policy;
- Interop.Eext.eext_circle_object_scroller_policy_get(_circleHandle, IntPtr.Zero, out policy);
+ Interop.Eext.eext_circle_object_scroller_policy_get(CircleHandle, IntPtr.Zero, out policy);
return (ScrollBarVisiblePolicy)policy;
}
set
{
ScrollBarVisiblePolicy h = HorizontalScrollBarVisiblePolicy;
- Interop.Eext.eext_circle_object_scroller_policy_set(_circleHandle, (int)h, (int)value);
+ Interop.Eext.eext_circle_object_scroller_policy_set(CircleHandle, (int)h, (int)value);
}
}
///
- /// Sets or gets color of the vertical scroll bar.
+ /// Sets or gets the color of the vertical scroll bar.
///
+ /// preview
public Color VerticalScrollBarColor
{
get
@@ -103,18 +152,19 @@ namespace ElmSharp.Wearable
int g = 0;
int b = 0;
int a = 0;
- Interop.Eext.eext_circle_object_color_get(_circleHandle, out r, out g, out b, out a);
+ Interop.Eext.eext_circle_object_color_get(CircleHandle, out r, out g, out b, out a);
return Color.FromRgba(r, g, b, a);
}
set
{
- Interop.Eext.eext_circle_object_color_set(_circleHandle, value.R, value.G, value.B, value.A);
+ Interop.Eext.eext_circle_object_color_set(CircleHandle, value.R, value.G, value.B, value.A);
}
}
///
- /// Sets or gets color of the horizontal scroll bar.
+ /// Sets or gets the color of the horizontal scroll bar.
///
+ /// preview
public Color HorizontalScrollBarColor
{
get
@@ -123,18 +173,19 @@ namespace ElmSharp.Wearable
int g = 0;
int b = 0;
int a = 0;
- Interop.Eext.eext_circle_object_item_color_get(_circleHandle, "horizontal,scroll,bar", out r, out g, out b, out a);
+ Interop.Eext.eext_circle_object_item_color_get(CircleHandle, "horizontal,scroll,bar", out r, out g, out b, out a);
return Color.FromRgba(r, g, b, a);
}
set
{
- Interop.Eext.eext_circle_object_item_color_set(_circleHandle, "horizontal,scroll,bar", value.R, value.G, value.B, value.A);
+ Interop.Eext.eext_circle_object_item_color_set(CircleHandle, "horizontal,scroll,bar", value.R, value.G, value.B, value.A);
}
}
///
- /// Sets or gets color of the vertical scroll background.
+ /// Sets or gets the color of the vertical scroll background.
///
+ /// preview
public Color VerticalScrollBackgroundColor
{
get
@@ -143,18 +194,19 @@ namespace ElmSharp.Wearable
int g = 0;
int b = 0;
int a = 0;
- Interop.Eext.eext_circle_object_item_color_get(_circleHandle, "vertical,scroll,bg", out r, out g, out b, out a);
+ Interop.Eext.eext_circle_object_item_color_get(CircleHandle, "vertical,scroll,bg", out r, out g, out b, out a);
return Color.FromRgba(r, g, b, a);
}
set
{
- Interop.Eext.eext_circle_object_item_color_set(_circleHandle, "vertical,scroll,bg", value.R, value.G, value.B, value.A);
+ Interop.Eext.eext_circle_object_item_color_set(CircleHandle, "vertical,scroll,bg", value.R, value.G, value.B, value.A);
}
}
///
- /// Sets or gets color of the horizontal scroll background.
+ /// Sets or gets the color of the horizontal scroll background.
///
+ /// preview
public Color HorizontalScrollBackgroundColor
{
get
@@ -163,170 +215,153 @@ namespace ElmSharp.Wearable
int g = 0;
int b = 0;
int a = 0;
- Interop.Eext.eext_circle_object_item_color_get(_circleHandle, "horizontal,scroll,bg", out r, out g, out b, out a);
+ Interop.Eext.eext_circle_object_item_color_get(CircleHandle, "horizontal,scroll,bg", out r, out g, out b, out a);
return Color.FromRgba(r, g, b, a);
}
set
{
- Interop.Eext.eext_circle_object_item_color_set(_circleHandle, "horizontal,scroll,bg", value.R, value.G, value.B, value.A);
+ Interop.Eext.eext_circle_object_item_color_set(CircleHandle, "horizontal,scroll,bg", value.R, value.G, value.B, value.A);
}
}
///
- /// Sets or gets line width of the vertical scroll bar.
+ /// Sets or gets the line width of the vertical scroll bar.
///
+ /// preview
public int VerticalScrollBarLineWidth
{
get
{
- return Interop.Eext.eext_circle_object_line_width_get(_circleHandle); ;
+ return Interop.Eext.eext_circle_object_line_width_get(CircleHandle);
}
set
{
- Interop.Eext.eext_circle_object_line_width_set(_circleHandle, value);
+ Interop.Eext.eext_circle_object_line_width_set(CircleHandle, value);
}
}
///
- /// Sets or gets line width of the horizontal scroll bar.
+ /// Sets or gets the line width of the horizontal scroll bar.
///
+ /// preview
public int HorizontalScrollBarLineWidth
{
get
{
- return Interop.Eext.eext_circle_object_item_line_width_get(_circleHandle, "horizontal,scroll,bar");
+ return Interop.Eext.eext_circle_object_item_line_width_get(CircleHandle, "horizontal,scroll,bar");
}
set
{
- Interop.Eext.eext_circle_object_item_line_width_set(_circleHandle, "horizontal,scroll,bar", value);
+ Interop.Eext.eext_circle_object_item_line_width_set(CircleHandle, "horizontal,scroll,bar", value);
}
}
///
- /// Sets or gets line width of the vertical scroll background.
+ /// Sets or gets the line width of the vertical scroll background.
///
+ /// preview
public int VerticalScrollBackgroundLineWidth
{
get
{
- return Interop.Eext.eext_circle_object_item_line_width_get(_circleHandle, "vertical,scroll,bg");
+ return Interop.Eext.eext_circle_object_item_line_width_get(CircleHandle, "vertical,scroll,bg");
}
set
{
- Interop.Eext.eext_circle_object_item_line_width_set(_circleHandle, "vertical,scroll,bg", value);
+ Interop.Eext.eext_circle_object_item_line_width_set(CircleHandle, "vertical,scroll,bg", value);
}
}
///
- /// Sets or gets line width of the horizontal scroll background.
+ /// Sets or gets the line width of the horizontal scroll background.
///
+ /// preview
public int HorizontalScrollBackgroundLineWidth
{
get
{
- return Interop.Eext.eext_circle_object_item_line_width_get(_circleHandle, "horizontal,scroll,bg");
+ return Interop.Eext.eext_circle_object_item_line_width_get(CircleHandle, "horizontal,scroll,bg");
}
set
{
- Interop.Eext.eext_circle_object_item_line_width_set(_circleHandle, "horizontal,scroll,bg", value);
+ Interop.Eext.eext_circle_object_item_line_width_set(CircleHandle, "horizontal,scroll,bg", value);
}
}
///
- /// Sets or gets radius of the vertical scroll bar.
+ /// Sets or gets the radius of the vertical scroll bar.
///
+ /// preview
public double VerticalScrollBarRadius
{
get
{
- return Interop.Eext.eext_circle_object_radius_get(_circleHandle); ;
+ return Interop.Eext.eext_circle_object_radius_get(CircleHandle);
}
set
{
- Interop.Eext.eext_circle_object_radius_set(_circleHandle, value);
+ Interop.Eext.eext_circle_object_radius_set(CircleHandle, value);
}
}
///
- /// Sets or gets radius of the horizontal scroll bar.
+ /// Sets or gets the radius of the horizontal scroll bar.
///
+ /// preview
public double HorizontalScrollBarRadius
{
get
{
- return Interop.Eext.eext_circle_object_item_radius_get(_circleHandle, "horizontal,scroll,bar"); ;
+ return Interop.Eext.eext_circle_object_item_radius_get(CircleHandle, "horizontal,scroll,bar");
}
set
{
- Interop.Eext.eext_circle_object_item_radius_set(_circleHandle, "horizontal,scroll,bar", value);
+ Interop.Eext.eext_circle_object_item_radius_set(CircleHandle, "horizontal,scroll,bar", value);
}
}
///
- /// Sets or gets radius of the vertical scroll background.
+ /// Sets or gets the radius of the vertical scroll background.
///
+ /// preview
public double VerticalScrollBackgroundRadius
{
get
{
- return Interop.Eext.eext_circle_object_item_radius_get(_circleHandle, "vertical,scroll,bg"); ;
+ return Interop.Eext.eext_circle_object_item_radius_get(CircleHandle, "vertical,scroll,bg");
}
set
{
- Interop.Eext.eext_circle_object_item_radius_set(_circleHandle, "vertical,scroll,bg", value);
+ Interop.Eext.eext_circle_object_item_radius_set(CircleHandle, "vertical,scroll,bg", value);
}
}
///
- /// Sets or gets radius of the horizontal scroll background.
+ /// Sets or gets the radius of the horizontal scroll background.
///
+ /// preview
public double HorizontalScrollBackgroundRadius
{
get
{
- return Interop.Eext.eext_circle_object_item_radius_get(_circleHandle, "horizontal,scroll,bg"); ;
+ return Interop.Eext.eext_circle_object_item_radius_get(CircleHandle, "horizontal,scroll,bg");
}
set
{
- Interop.Eext.eext_circle_object_item_radius_set(_circleHandle, "horizontal,scroll,bg", value);
+ Interop.Eext.eext_circle_object_item_radius_set(CircleHandle, "horizontal,scroll,bg", value);
}
}
///
/// Creates a widget handle.
///
- /// Parent EvasObject
- /// Handle IntPtr
+ /// Parent EvasObject.
+ /// Handle IntPtr.
+ /// preview
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);
- }
- else if (parent is Layout)
- {
- surface = Interop.Eext.eext_circle_surface_layout_add(parent);
- }
- else if (parent is Naviframe)
- {
- surface = Interop.Eext.eext_circle_surface_naviframe_add(parent.RealHandle);
- }
-
- _circleHandle = Interop.Eext.eext_circle_object_scroller_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_scroller_add(RealHandle == IntPtr.Zero ? handle : RealHandle, CircleSurface.Handle);
return handle;
}
}