Elementary.slider: Add property step

This commit is contained in:
Kai Huuhko 2013-11-28 23:36:15 +02:00
parent 83f37fa9ad
commit c0ef792ca8
3 changed files with 48 additions and 23 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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()