From c0ef792ca8c1b3df57d1af3cf5eac71022a4f571 Mon Sep 17 00:00:00 2001 From: Kai Huuhko Date: Thu, 28 Nov 2013 23:36:15 +0200 Subject: [PATCH] Elementary.slider: Add property step --- efl/elementary/slider.pxd | 43 +++++++++++++++--------------- efl/elementary/slider.pyx | 24 +++++++++++++++++ examples/elementary/test_slider.py | 4 +-- 3 files changed, 48 insertions(+), 23 deletions(-) diff --git a/efl/elementary/slider.pxd b/efl/elementary/slider.pxd index 575ac55..56a41d3 100644 --- a/efl/elementary/slider.pxd +++ b/efl/elementary/slider.pxd @@ -1,24 +1,25 @@ -from efl.evas cimport Eina_Bool, Evas_Object, Evas_Coord +from efl.evas cimport Eina_Bool, Evas_Object, const_Evas_Object, Evas_Coord from libc.string cimport const_char cdef extern from "Elementary.h": - Evas_Object *elm_slider_add(Evas_Object *parent) - void elm_slider_span_size_set(Evas_Object *obj, Evas_Coord size) - Evas_Coord elm_slider_span_size_get(Evas_Object *obj) - void elm_slider_unit_format_set(Evas_Object *obj, const_char *format) - const_char * elm_slider_unit_format_get(Evas_Object *obj) - void elm_slider_indicator_format_set(Evas_Object *obj, const_char *indicator) - const_char * elm_slider_indicator_format_get(Evas_Object *obj) - void elm_slider_indicator_format_function_set(Evas_Object *obj, const_char(*func)(double val), void (*free_func)(const_char *str)) - #void elm_slider_units_format_function_set(Evas_Object *obj, const_char *(*func)(double val), void (*free_func)(const_char *str)) - void elm_slider_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) - Eina_Bool elm_slider_horizontal_get(Evas_Object *obj) - void elm_slider_min_max_set(Evas_Object *obj, double min, double max) - void elm_slider_min_max_get(Evas_Object *obj, double *min, double *max) - void elm_slider_value_set(Evas_Object *obj, double val) - double elm_slider_value_get(Evas_Object *obj) - void elm_slider_inverted_set(Evas_Object *obj, Eina_Bool inverted) - Eina_Bool elm_slider_inverted_get(Evas_Object *obj) - void elm_slider_indicator_show_set(Evas_Object *obj, Eina_Bool show) - Eina_Bool elm_slider_indicator_show_get(Evas_Object *obj) - + Evas_Object * elm_slider_add(Evas_Object *parent) + void elm_slider_span_size_set(Evas_Object *obj, Evas_Coord size) + Evas_Coord elm_slider_span_size_get(const_Evas_Object *obj) + void elm_slider_unit_format_set(Evas_Object *obj, const_char *format) + const_char * elm_slider_unit_format_get(const_Evas_Object *obj) + void elm_slider_indicator_format_set(Evas_Object *obj, const_char *indicator) + const_char * elm_slider_indicator_format_get(const_Evas_Object *obj) + void elm_slider_indicator_format_function_set(Evas_Object *obj, const_char(*func)(double val), void (*free_func)(const_char *str)) + # TODO: void elm_slider_units_format_function_set(Evas_Object *obj, const_char *(*func)(double val), void (*free_func)(const_char *str)) + void elm_slider_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) + Eina_Bool elm_slider_horizontal_get(const_Evas_Object *obj) + void elm_slider_min_max_set(Evas_Object *obj, double min, double max) + void elm_slider_min_max_get(const_Evas_Object *obj, double *min, double *max) + void elm_slider_value_set(Evas_Object *obj, double val) + double elm_slider_value_get(const_Evas_Object *obj) + void elm_slider_inverted_set(Evas_Object *obj, Eina_Bool inverted) + Eina_Bool elm_slider_inverted_get(const_Evas_Object *obj) + void elm_slider_indicator_show_set(Evas_Object *obj, Eina_Bool show) + Eina_Bool elm_slider_indicator_show_get(const_Evas_Object *obj) + void elm_slider_step_set(Evas_Object *obj, double step) + double elm_slider_step_get(const_Evas_Object *obj) diff --git a/efl/elementary/slider.pyx b/efl/elementary/slider.pyx index 8687ec3..c22059e 100644 --- a/efl/elementary/slider.pyx +++ b/efl/elementary/slider.pyx @@ -352,6 +352,30 @@ cdef class Slider(LayoutClass): def indicator_show_get(self): return bool(elm_slider_indicator_show_get(self.obj)) + property step: + """The step by which slider indicator will move. + + This value is used when draggable object is moved automatically i.e., in + case of key event when up/down/left/right key is pressed or in case when + accessibility is set and flick event is used to inc/dec slider values. + By default step value is equal to 0.05. + + :type: double + :since: 1.8 + + """ + def __set__(self, double step): + elm_slider_step_set(self.obj, step) + + def __get__(self): + return elm_slider_step_get(self.obj) + + def step_set(self, double step): + elm_slider_step_set(self.obj, step) + def step_get(self): + return elm_slider_step_get(self.obj) + + def callback_changed_add(self, func, *args, **kwargs): """Whenever the slider value is changed by the user.""" self._callback_add("changed", func, *args, **kwargs) diff --git a/examples/elementary/test_slider.py b/examples/elementary/test_slider.py index 0f969c6..ce715cd 100644 --- a/examples/elementary/test_slider.py +++ b/examples/elementary/test_slider.py @@ -80,9 +80,9 @@ def slider_clicked(obj): bx.pack_end(sl) sl.show() - #TODO: step = step_size_calculate(0, 9) + step = step_size_calculate(0, 9) sl = Slider(bx, unit_format="%1.0f units", indicator_format="%1.0f", - span_size=120, min_max=(0, 9), text="Manual step (TODO)", #TODO: step=step, + span_size=120, min_max=(0, 9), text="Manual step", step=step, size_hint_align=FILL_HORIZ, size_hint_weight=EXPAND_HORIZ) bx.pack_end(sl) sl.show()