2 using System.ComponentModel;
3 using System.Diagnostics;
11 public class CircleSliderBar : CircleColorPart
13 public CircleSliderBar(IntPtr CircleHandle) : base(CircleHandle) { }
14 public override void SetColor(int r, int g, int b, int a)
17 Interop.Eext.eext_circle_object_color_set(_handle, r, g, b, a);
20 public override void GetColor(out int r, out int g, out int b, out int a)
24 Interop.Eext.eext_circle_object_color_get(_handle, out r, out g, out b, out a);
28 public class CircleSliderBarBackground : CircleColorPart
30 public CircleSliderBarBackground(IntPtr CircleHandle) : base(CircleHandle) { }
31 public override void SetColor(int r, int g, int b, int a)
34 Interop.Eext.eext_circle_object_item_color_set(_handle, "bg", r, g, b, a);
37 public override void GetColor(out int r, out int g, out int b, out int a)
41 Interop.Eext.eext_circle_object_item_color_get(_handle, "bg", out r, out g, out b, out a);
45 public class CircleSlider : Efl.Ui.Layout, ICircleWidget
48 public virtual IntPtr CircleHandle => _handle;
50 public event EventHandler Changed;
51 const string ChangedEventName = "value,changed";
53 public CircleSliderBar Bar;
54 public CircleSliderBarBackground BarBackground;
56 public CircleSlider(Efl.Ui.Widget parent) : base(parent)
58 _handle = Interop.Eext.eext_circle_object_slider_add(parent.NativeHandle, IntPtr.Zero);
60 Bar = new Efl.Ui.Wearable.CircleSliderBar(_handle);
61 BarBackground = new Efl.Ui.Wearable.CircleSliderBarBackground(_handle);
63 Interop.Evas.SmartCallback _smartChanged = new Interop.Evas.SmartCallback((d, o, e) =>
65 Changed?.Invoke(this, EventArgs.Empty);
68 Interop.Evas.evas_object_smart_callback_add(_handle, ChangedEventName, _smartChanged, IntPtr.Zero);
70 elm_layout_content_set(this.NativeHandle, "efl.swallow.vg", CircleHandle);
73 [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)]
74 internal static extern bool elm_layout_content_set(IntPtr obj, string swallow, IntPtr content);
76 public override Efl.Object FinalizeAdd()
78 this.SetTheme("circle_slider", null, null);
86 return Interop.Eext.eext_circle_object_slider_step_get(CircleHandle);
90 Interop.Eext.eext_circle_object_slider_step_set(CircleHandle, (double)value);
97 set => Enable = !value;
104 return !Interop.Eext.eext_circle_object_disabled_get(CircleHandle);
108 Interop.Eext.eext_circle_object_disabled_set(CircleHandle, !value);
112 public int BarLineWidth
116 return Interop.Eext.eext_circle_object_line_width_get(CircleHandle);
120 Interop.Eext.eext_circle_object_line_width_set(CircleHandle, value);
124 public int BackgroundLineWidth
128 return Interop.Eext.eext_circle_object_item_line_width_get(CircleHandle, "bg");
132 Interop.Eext.eext_circle_object_item_line_width_set(CircleHandle, "bg", value);
136 public double BarAngle
140 return Interop.Eext.eext_circle_object_angle_get(CircleHandle);
144 Interop.Eext.eext_circle_object_angle_set(CircleHandle, value);
148 public double BackgroundAngle
152 return Interop.Eext.eext_circle_object_item_angle_get(CircleHandle, "bg");
156 Interop.Eext.eext_circle_object_item_angle_set(CircleHandle, "bg", value);
160 public double BarAngleOffset
164 return Interop.Eext.eext_circle_object_angle_offset_get(CircleHandle);
168 Interop.Eext.eext_circle_object_angle_offset_set(CircleHandle, value);
172 public double BackgroundAngleOffset
176 return Interop.Eext.eext_circle_object_item_angle_offset_get(CircleHandle, "bg");
180 Interop.Eext.eext_circle_object_item_angle_offset_set(CircleHandle, "bg", value);
184 public double BarAngleMinimum
190 Interop.Eext.eext_circle_object_angle_min_max_get(CircleHandle, out min, out max);
195 double max = BarAngleMaximum;
196 Interop.Eext.eext_circle_object_angle_min_max_set(CircleHandle, (double)value, max);
200 public double BarAngleMaximum
206 Interop.Eext.eext_circle_object_angle_min_max_get(CircleHandle, out min, out max);
211 double min = BarAngleMinimum;
212 Interop.Eext.eext_circle_object_angle_min_max_set(CircleHandle, min, (double)value);
216 public double Minimum
222 Interop.Eext.eext_circle_object_value_min_max_get(CircleHandle, out min, out max);
227 double max = Maximum;
228 Interop.Eext.eext_circle_object_value_min_max_set(CircleHandle, (double)value, max);
232 public double Maximum
238 Interop.Eext.eext_circle_object_value_min_max_get(CircleHandle, out min, out max);
243 double min = Minimum;
244 Interop.Eext.eext_circle_object_value_min_max_set(CircleHandle, min, (double)value);
252 return Interop.Eext.eext_circle_object_value_get(CircleHandle);
256 Interop.Eext.eext_circle_object_value_set(CircleHandle, (double)value);
260 public double BarRadius
264 return Interop.Eext.eext_circle_object_radius_get(CircleHandle);
268 Interop.Eext.eext_circle_object_radius_set(CircleHandle, (double)value);
272 public double BackgroundRadius
276 return Interop.Eext.eext_circle_object_item_radius_get(CircleHandle, "bg");
280 Interop.Eext.eext_circle_object_item_radius_set(CircleHandle, "bg", value);