davemds pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=e47f403a0bb668ce6a901ad1d3806a91e332df80

commit e47f403a0bb668ce6a901ad1d3806a91e332df80
Author: Dave Andreoli <[email protected]>
Date:   Tue Aug 9 18:52:55 2016 +0200

    New 1.18 API: elm.Slider.range_enabled/range
    
    with test
---
 efl/elementary/slider.pxi          | 45 ++++++++++++++++++++++++++++++++++++++
 efl/elementary/slider_cdef.pxi     |  5 +++++
 examples/elementary/test_slider.py | 12 ++++++++++
 3 files changed, 62 insertions(+)

diff --git a/efl/elementary/slider.pxi b/efl/elementary/slider.pxi
index 82d124c..c9e4184 100644
--- a/efl/elementary/slider.pxi
+++ b/efl/elementary/slider.pxi
@@ -226,6 +226,51 @@ cdef class Slider(LayoutClass):
         elm_slider_min_max_get(self.obj, &min, &max)
         return (min, max)
 
+    property range_enabled:
+        """Enables the range ability.
+
+        This enables two indicators in slider, so that the user can select
+        a range, not just a single value.
+
+        :type: bool
+
+        .. versionadded:: 1.18
+
+        """
+        def __get__(self):
+            return bool(elm_slider_range_enabled_get(self.obj))
+        def __set__(self, bint enabled):
+            elm_slider_range_enabled_set(self.obj, enabled)
+
+    def range_enabled_set(self, bint enabled):
+        elm_slider_range_enabled_set(self.obj, enabled)
+    def range_enabled_get(self):
+        return bool(elm_slider_range_enabled_get(self.obj))
+
+    property range:
+        """The values of the two indicators.
+
+        :type: (float, float)
+
+        .. versionadded:: 1.18
+
+        """
+        def __get__(self):
+            cdef double fr, to
+            elm_slider_range_get(self.obj, &fr, &to)
+            return (fr, to)
+
+        def __set__(self, value):
+            fr, to = value
+            elm_slider_range_set(self.obj, fr, to)
+
+    def range_set(self, double fr, double to):
+        elm_slider_range_set(self.obj, fr, to)
+    def range_get(self):
+        cdef double fr, to
+        elm_slider_range_get(self.obj, &fr, &to)
+        return (fr, to)
+
     property value:
         """The value displayed in the slider.
 
diff --git a/efl/elementary/slider_cdef.pxi b/efl/elementary/slider_cdef.pxi
index 920f720..0ce485d 100644
--- a/efl/elementary/slider_cdef.pxi
+++ b/efl/elementary/slider_cdef.pxi
@@ -31,3 +31,8 @@ cdef extern from "Elementary.h":
     Elm_Slider_Indicator_Visible_Mode  
elm_slider_indicator_visible_mode_get(const Evas_Object *obj)
     void            elm_slider_step_set(Evas_Object *obj, double step)
     double          elm_slider_step_get(const Evas_Object *obj)
+
+    Eina_Bool       elm_slider_range_enabled_get(const Evas_Object *obj)
+    void            elm_slider_range_enabled_set(Evas_Object *obj, Eina_Bool 
enable)
+    void            elm_slider_range_get(const Evas_Object *obj, double *fr, 
double *to)
+    void            elm_slider_range_set(Evas_Object *obj, double fr, double 
to)
diff --git a/examples/elementary/test_slider.py 
b/examples/elementary/test_slider.py
index a3d159a..eb0d9cb 100644
--- a/examples/elementary/test_slider.py
+++ b/examples/elementary/test_slider.py
@@ -36,6 +36,9 @@ def delay_change_cb(obj, data=None):
 def change_cb(obj, data=None):
     data.value = obj.value
 
+def range_change_cb(obj):
+    print("Range: %d %d" % obj.range)
+
 def change_print_cb(obj, data=None):
     print("change to %3.3f" % obj.value)
 
@@ -117,6 +120,15 @@ def slider_clicked(obj):
     bx.pack_end(sl)
     sl.show()
 
+    # range slider (2 indicators)
+    sl = Slider(bx, text="Range (2 indicators)", range_enabled=True,
+                min_max=(0, 100), range=(20, 80),
+                unit_format="%.0f units", indicator_format="%.0f",
+                size_hint_expand=EXPAND_HORIZ, size_hint_fill=FILL_HORIZ)
+    sl.callback_changed_add(range_change_cb)
+    bx.pack_end(sl)
+    sl.show()
+
     # disabled horizontally inverted slider
     ic = Icon(bx, file=os.path.join(img_path, "logo_small.png"),
         size_hint_aspect=(EVAS_ASPECT_CONTROL_VERTICAL, 1, 1))

-- 


Reply via email to