From 5636bb8b0b4e78db883bbf9bbb99e940c27c0584 Mon Sep 17 00:00:00 2001 From: WooHyun Jung Date: Mon, 26 Aug 2019 11:27:18 +0000 Subject: [PATCH] efl_ui_slider: refactor for better data flow and code readability 1. efl_ui_range_value_set only sets value 2. remove internal eo functions (such as xxx_knob, val_fetch, and val_set) 3. make access_value_and_text works correctly @ref T7893 Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D9720 --- src/bin/elementary/test_ui_slider.c | 33 ++++ src/lib/elementary/efl_ui_slider.c | 204 +++++++++------------ src/lib/elementary/efl_ui_slider_private.h | 12 -- src/tests/elementary/efl_ui_test_slider.c | 12 +- 4 files changed, 127 insertions(+), 134 deletions(-) diff --git a/src/bin/elementary/test_ui_slider.c b/src/bin/elementary/test_ui_slider.c index 11591e0d39..8704a08746 100644 --- a/src/bin/elementary/test_ui_slider.c +++ b/src/bin/elementary/test_ui_slider.c @@ -16,6 +16,36 @@ _slider_changed_cb(void *data EINA_UNUSED, const Efl_Event *ev) efl_ui_range_value_set(ev->object, 100); } +static void +_slider_steady_cb(void *data EINA_UNUSED, const Efl_Event *ev) +{ + double val; + + val = efl_ui_range_value_get(ev->object); + + printf("steady callbck : val = %f\n", val); +} + +static void +_slider_drag_start_cb(void *data EINA_UNUSED, const Efl_Event *ev) +{ + double val; + + val = efl_ui_range_value_get(ev->object); + + printf("drag start callbck : val = %f\n", val); +} + +static void +_slider_drag_stop_cb(void *data EINA_UNUSED, const Efl_Event *ev) +{ + double val; + + val = efl_ui_range_value_get(ev->object); + + printf("drag stop callbck : val = %f\n", val); +} + void test_ui_slider(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { @@ -37,6 +67,9 @@ test_ui_slider(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event efl_add(EFL_UI_SLIDER_CLASS, bx, efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(160, 0)), efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, 0.0), + efl_event_callback_add(efl_added, EFL_UI_RANGE_EVENT_STEADY, _slider_steady_cb, NULL), + efl_event_callback_add(efl_added, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_START, _slider_drag_start_cb, NULL), + efl_event_callback_add(efl_added, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_STOP, _slider_drag_stop_cb, NULL), efl_pack(bx, efl_added)); efl_add(EFL_UI_TEXT_CLASS, bx, diff --git a/src/lib/elementary/efl_ui_slider.c b/src/lib/elementary/efl_ui_slider.c index f3d01ea9c8..7dbdd5395c 100644 --- a/src/lib/elementary/efl_ui_slider.c +++ b/src/lib/elementary/efl_ui_slider.c @@ -52,19 +52,39 @@ static void _emit_events(Eo *obj, Efl_Ui_Slider_Data *sd) { efl_event_callback_call(obj, EFL_UI_RANGE_EVENT_CHANGED, NULL); + if (sd->val == sd->val_min) efl_event_callback_call(obj, EFL_UI_RANGE_EVENT_MIN_REACHED, NULL); + if (sd->val == sd->val_max) efl_event_callback_call(obj, EFL_UI_RANGE_EVENT_MAX_REACHED, NULL); + + // emit accessibility event also if value was changed by API + if (_elm_config->atspi_mode) + efl_access_value_changed_signal_emit(obj); } static void -_efl_ui_slider_val_fetch(Evas_Object *obj, Efl_Ui_Slider_Data *sd, Eina_Bool user_event) +_user_value_update(Evas_Object *obj, double value) { - double posx = 0.0, posy = 0.0, pos = 0.0, val; + EFL_UI_SLIDER_DATA_GET(obj, sd); + efl_ui_range_value_set(obj, value); + + ecore_timer_del(sd->delay); + sd->delay = ecore_timer_add(SLIDER_DELAY_CHANGED_INTERVAL, _delay_change, obj); + + evas_object_smart_changed(obj); +} + +static void +_drag_value_fetch(Evas_Object *obj) +{ + EFL_UI_SLIDER_DATA_GET(obj, sd); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); + double posx = 0.0, posy = 0.0, pos = 0.0, val; + efl_ui_drag_value_get(efl_part(wd->resize_obj, "efl.dragable.slider"), &posx, &posy); if (_is_horizontal(sd->dir)) pos = posx; @@ -79,36 +99,19 @@ _efl_ui_slider_val_fetch(Evas_Object *obj, Efl_Ui_Slider_Data *sd, Eina_Bool us if (fabs(val - sd->val) > DBL_EPSILON) { - sd->val = val; - if (user_event) - { - _emit_events(obj, sd); - efl_event_callback_legacy_call(obj, EFL_UI_RANGE_EVENT_CHANGED, NULL); - ecore_timer_del(sd->delay); - sd->delay = ecore_timer_add(SLIDER_DELAY_CHANGED_INTERVAL, _delay_change, obj); - } + _user_value_update(obj, val); } } static void -_efl_ui_slider_val_set(Evas_Object *obj, Efl_Ui_Slider_Data *sd) +_drag_value_update(Evas_Object *obj) { + EFL_UI_SLIDER_DATA_GET(obj, sd); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); double pos; - if (sd->val_max > sd->val_min) - { - pos = (sd->val - sd->val_min) / (sd->val_max - sd->val_min); - } - else - { - pos = 0.0; - } - - if (pos < 0.0) pos = 0.0; - else if (pos > 1.0) - pos = 1.0; + pos = (sd->val - sd->val_min) / (sd->val_max - sd->val_min); if (efl_ui_mirrored_get(obj) ^ efl_ui_layout_orientation_is_inverted(sd->dir)) { @@ -118,35 +121,6 @@ _efl_ui_slider_val_set(Evas_Object *obj, Efl_Ui_Slider_Data *sd) efl_ui_drag_value_set(efl_part(wd->resize_obj, "efl.dragable.slider"), pos, pos); - // emit accessibility event also if value was changed by API - if (_elm_config->atspi_mode) - efl_access_value_changed_signal_emit(obj); - - evas_object_smart_changed(obj); -} - -static void -_efl_ui_slider_down_knob(Evas_Object *obj, Efl_Ui_Slider_Data *sd EINA_UNUSED, double button_x, double button_y) -{ - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - - efl_ui_drag_value_set(efl_part(wd->resize_obj, "efl.dragable.slider"), - button_x, button_y); -} - -static void -_efl_ui_slider_move_knob(Evas_Object *obj, Efl_Ui_Slider_Data *sd EINA_UNUSED, double button_x, double button_y) -{ - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - - efl_ui_drag_value_set(efl_part(wd->resize_obj, "efl.dragable.slider"), - button_x, button_y); -} - -static void -_slider_update(Evas_Object *obj, Eina_Bool user_event) -{ - efl_ui_slider_val_fetch(obj, user_event); evas_object_smart_changed(obj); } @@ -156,7 +130,7 @@ _drag(void *data, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { - _slider_update(data, EINA_TRUE); + _drag_value_fetch(data); } static void @@ -167,8 +141,8 @@ _drag_start(void *data, { if (!efl_ui_focus_object_focus_get(data)) elm_object_focus_set(data, EINA_TRUE); - _slider_update(data, EINA_TRUE); efl_event_callback_call(data, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_START, NULL); + _drag_value_fetch(data); elm_widget_scroll_freeze_push(data); } @@ -178,7 +152,7 @@ _drag_stop(void *data, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { - _slider_update(data, EINA_TRUE); + _drag_value_fetch(data); efl_event_callback_call(data, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_STOP, NULL); elm_widget_scroll_freeze_pop(data); } @@ -189,51 +163,47 @@ _drag_step(void *data, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { - _slider_update(data, EINA_TRUE); + _drag_value_fetch(data); } static void -_drag_up(void *data, - Evas_Object *obj EINA_UNUSED, - const char *emission EINA_UNUSED, - const char *source EINA_UNUSED) +_drag_up(Evas_Object *obj) { double step; double relative_step; - EFL_UI_SLIDER_DATA_GET(data, sd); + EFL_UI_SLIDER_DATA_GET(obj, sd); + ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); + step = sd->step; if (efl_ui_layout_orientation_is_inverted(sd->dir)) step *= -1.0; - ELM_WIDGET_DATA_GET_OR_RETURN(data, wd); relative_step = step/(sd->val_max - sd->val_min); efl_ui_drag_step_move(efl_part(wd->resize_obj, "efl.dragable.slider"), relative_step, relative_step); - _slider_update(data, EINA_TRUE); + _drag_value_fetch(obj); } static void -_drag_down(void *data, - Evas_Object *obj EINA_UNUSED, - const char *emission EINA_UNUSED, - const char *source EINA_UNUSED) +_drag_down(Evas_Object *obj) { double step; double relative_step; - EFL_UI_SLIDER_DATA_GET(data, sd); + EFL_UI_SLIDER_DATA_GET(obj, sd); + ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); + step = -sd->step; if (efl_ui_layout_orientation_is_inverted(sd->dir)) step *= -1.0; - ELM_WIDGET_DATA_GET_OR_RETURN(data, wd); relative_step = step/(sd->val_max - sd->val_min); efl_ui_drag_step_move(efl_part(wd->resize_obj, "efl.dragable.slider"), relative_step, relative_step); - _slider_update(data, EINA_TRUE); + _drag_value_fetch(obj); } static Eina_Bool @@ -250,32 +220,32 @@ _key_action_drag(Evas_Object *obj, const char *params) if (!_is_horizontal(sd->dir)) return EINA_FALSE; if (!efl_ui_layout_orientation_is_inverted(sd->dir)) - _drag_down(obj, NULL, NULL, NULL); - else _drag_up(obj, NULL, NULL, NULL); + _drag_down(obj); + else _drag_up(obj); } else if (!strcmp(dir, "right")) { if (!_is_horizontal(sd->dir)) return EINA_FALSE; if (!efl_ui_layout_orientation_is_inverted(sd->dir)) - _drag_up(obj, NULL, NULL, NULL); - else _drag_down(obj, NULL, NULL, NULL); + _drag_up(obj); + else _drag_down(obj); } else if (!strcmp(dir, "up")) { if (_is_horizontal(sd->dir)) return EINA_FALSE; if (efl_ui_layout_orientation_is_inverted(sd->dir)) - _drag_up(obj, NULL, NULL, NULL); - else _drag_down(obj, NULL, NULL, NULL); + _drag_up(obj); + else _drag_down(obj); } else if (!strcmp(dir, "down")) { if (_is_horizontal(sd->dir)) return EINA_FALSE; if (efl_ui_layout_orientation_is_inverted(sd->dir)) - _drag_down(obj, NULL, NULL, NULL); - else _drag_up(obj, NULL, NULL, NULL); + _drag_down(obj); + else _drag_up(obj); } else return EINA_FALSE; @@ -306,22 +276,22 @@ _efl_ui_slider_efl_ui_widget_widget_input_event_handler(Eo *obj, Efl_Ui_Slider_D if (efl_input_pointer_wheel_delta_get(ev) < 0) { if (_is_horizontal(sd->dir)) - _drag_up(obj, NULL, NULL, NULL); + _drag_up(obj); else - _drag_down(obj, NULL, NULL, NULL); + _drag_down(obj); } else { if (_is_horizontal(sd->dir)) - _drag_down(obj, NULL, NULL, NULL); + _drag_down(obj); else - _drag_up(obj, NULL, NULL, NULL); + _drag_up(obj); } efl_input_processed_set(ev, EINA_TRUE); } else return EINA_FALSE; - _slider_update(obj, EINA_TRUE); + _drag_value_fetch(obj); return EINA_TRUE; } @@ -336,18 +306,18 @@ _efl_ui_slider_efl_ui_widget_on_access_activate(Eo *obj, Efl_Ui_Slider_Data *sd, (act == EFL_UI_ACTIVATE_RIGHT)) { if (!efl_ui_layout_orientation_is_inverted(sd->dir)) - _drag_up(obj, NULL, NULL, NULL); - else _drag_down(obj, NULL, NULL, NULL); + _drag_up(obj); + else _drag_down(obj); } else if ((act == EFL_UI_ACTIVATE_DOWN) || (act == EFL_UI_ACTIVATE_LEFT)) { if (!efl_ui_layout_orientation_is_inverted(sd->dir)) - _drag_down(obj, NULL, NULL, NULL); - else _drag_up(obj, NULL, NULL, NULL); + _drag_down(obj); + else _drag_up(obj); } - _slider_update(obj, EINA_TRUE); + _drag_value_fetch(obj); return EINA_TRUE; } @@ -426,7 +396,7 @@ _efl_ui_slider_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Slider_Data *sd) else efl_layout_signal_emit(obj, "efl,state,inverted,off", "efl"); - efl_ui_slider_val_set(obj); + _drag_value_update(obj); efl_layout_signal_process(wd->resize_obj, EINA_FALSE); evas_object_smart_changed(obj); @@ -441,6 +411,7 @@ _spacer_down_cb(void *data, void *event_info) { EFL_UI_SLIDER_DATA_GET(data, sd); + ELM_WIDGET_DATA_GET_OR_RETURN(data, wd); Evas_Event_Mouse_Down *ev = event_info; Eina_Rect sr; @@ -463,12 +434,13 @@ _spacer_down_cb(void *data, if (button_y < 0) button_y = 0; } - efl_ui_slider_down_knob(data, button_x, button_y); + efl_ui_drag_value_set(efl_part(wd->resize_obj, "efl.dragable.slider"), + button_x, button_y); if (!efl_ui_focus_object_focus_get(data)) elm_object_focus_set(data, EINA_TRUE); - _slider_update(data, EINA_TRUE); efl_event_callback_call(data, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_START, NULL); + _drag_value_fetch(data); } static void @@ -478,6 +450,7 @@ _spacer_move_cb(void *data, void *event_info) { EFL_UI_SLIDER_DATA_GET(data, sd); + ELM_WIDGET_DATA_GET_OR_RETURN(data, wd); Eina_Rect sr; double button_x = 0.0, button_y = 0.0; @@ -504,7 +477,7 @@ _spacer_move_cb(void *data, if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) { if (sd->spacer_down) sd->spacer_down = EINA_FALSE; - _slider_update(data, EINA_TRUE); + _drag_value_fetch(data); efl_event_callback_call (data, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_STOP, NULL); if (sd->frozen) @@ -527,8 +500,9 @@ _spacer_move_cb(void *data, if (button_y < 0) button_y = 0; } - efl_ui_slider_move_knob(data, button_x, button_y); - _slider_update(data, EINA_TRUE); + efl_ui_drag_value_set(efl_part(wd->resize_obj, "efl.dragable.slider"), + button_x, button_y); + _drag_value_fetch(data); } } @@ -543,7 +517,7 @@ _spacer_up_cb(void *data, if (!sd->spacer_down) return; if (sd->spacer_down) sd->spacer_down = EINA_FALSE; - _slider_update(data, EINA_TRUE); + _drag_value_fetch(data); efl_event_callback_call(data, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_STOP, NULL); if (sd->frozen) @@ -691,6 +665,8 @@ _efl_ui_slider_efl_ui_layout_orientable_orientation_get(const Eo *obj EINA_UNUSE EOLIAN static void _efl_ui_slider_efl_ui_range_display_range_limits_set(Eo *obj, Efl_Ui_Slider_Data *sd, double min, double max) { + double val; + if (max < min) { ERR("Wrong params. min(%lf) is greater than max(%lf).", min, max); @@ -702,12 +678,15 @@ _efl_ui_slider_efl_ui_range_display_range_limits_set(Eo *obj, Efl_Ui_Slider_Data return; } if ((EINA_DBL_EQ(sd->val_min, min)) && (EINA_DBL_EQ(sd->val_max, max))) return; + sd->val_min = min; sd->val_max = max; - if (sd->val < sd->val_min) sd->val = sd->val_min; - if (sd->val > sd->val_max) sd->val = sd->val_max; - efl_ui_slider_val_set(obj); + val = sd->val; + if (val < sd->val_min) val = sd->val_min; + if (val > sd->val_max) val = sd->val_max; + + efl_ui_range_value_set(obj, val); } EOLIAN static void @@ -734,11 +713,8 @@ _efl_ui_slider_efl_ui_range_display_range_value_set(Eo *obj, Efl_Ui_Slider_Data if (EINA_DBL_EQ(val, sd->val)) return; sd->val = val; - if (sd->val < sd->val_min) sd->val = sd->val_min; - if (sd->val > sd->val_max) sd->val = sd->val_max; - + _drag_value_update(obj); _emit_events(obj, sd); - efl_ui_slider_val_set(obj); } EOLIAN static double @@ -789,16 +765,16 @@ _efl_ui_slider_efl_access_value_value_and_text_get(const Eo *obj EINA_UNUSED, Ef EOLIAN static Eina_Bool _efl_ui_slider_efl_access_value_value_and_text_set(Eo *obj, Efl_Ui_Slider_Data *sd, double value, const char *text EINA_UNUSED) { - double oldval = sd->val; - if (value < sd->val_min) value = sd->val_min; if (value > sd->val_max) value = sd->val_max; efl_event_callback_call(obj, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_START, NULL); - sd->val = value; - efl_ui_slider_val_set(obj); - sd->val = oldval; - _slider_update(obj, EINA_TRUE); + + if (fabs(value - sd->val) > DBL_EPSILON) + { + _user_value_update(obj, value); + } + efl_event_callback_call(obj, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_STOP, NULL); return EINA_TRUE; @@ -832,17 +808,5 @@ _efl_ui_slider_efl_access_widget_action_elm_actions_get(const Eo *obj EINA_UNUSE } // A11Y Accessibility - END -/* Internal EO APIs and hidden overrides */ - -EFL_VOID_FUNC_BODYV(efl_ui_slider_val_fetch, EFL_FUNC_CALL(user_event), Eina_Bool user_event) -EFL_VOID_FUNC_BODY(efl_ui_slider_val_set) -EFL_VOID_FUNC_BODYV(efl_ui_slider_down_knob, EFL_FUNC_CALL(button_x, button_y), double button_x, double button_y) -EFL_VOID_FUNC_BODYV(efl_ui_slider_move_knob, EFL_FUNC_CALL(button_x, button_y), double button_x, double button_y) - -#define EFL_UI_SLIDER_EXTRA_OPS \ - EFL_UI_SLIDER_VAL_FETCH_OPS(efl_ui_slider), \ - EFL_UI_SLIDER_VAL_SET_OPS(efl_ui_slider), \ - EFL_UI_SLIDER_DOWN_KNOB_OPS(efl_ui_slider), \ - EFL_UI_SLIDER_MOVE_KNOB_OPS(efl_ui_slider), \ #include "efl_ui_slider.eo.c" diff --git a/src/lib/elementary/efl_ui_slider_private.h b/src/lib/elementary/efl_ui_slider_private.h index 7a6bec4bca..76a83b2d92 100644 --- a/src/lib/elementary/efl_ui_slider_private.h +++ b/src/lib/elementary/efl_ui_slider_private.h @@ -22,18 +22,6 @@ struct _Efl_Ui_Slider_Data * @} */ -# define EFL_UI_SLIDER_VAL_FETCH_OPS(_pfx) \ - EFL_OBJECT_OP_FUNC(efl_ui_slider_val_fetch, _##_pfx##_val_fetch) - -# define EFL_UI_SLIDER_VAL_SET_OPS(_pfx) \ - EFL_OBJECT_OP_FUNC(efl_ui_slider_val_set, _##_pfx##_val_set) - -# define EFL_UI_SLIDER_DOWN_KNOB_OPS(_pfx) \ - EFL_OBJECT_OP_FUNC(efl_ui_slider_down_knob, _##_pfx##_down_knob) - -# define EFL_UI_SLIDER_MOVE_KNOB_OPS(_pfx) \ - EFL_OBJECT_OP_FUNC(efl_ui_slider_move_knob, _##_pfx##_move_knob) - #define EFL_UI_SLIDER_DATA_GET(o, sd) \ Efl_Ui_Slider_Data * sd = efl_data_scope_get(o, EFL_UI_SLIDER_CLASS) diff --git a/src/tests/elementary/efl_ui_test_slider.c b/src/tests/elementary/efl_ui_test_slider.c index a891841329..6547ae406e 100644 --- a/src/tests/elementary/efl_ui_test_slider.c +++ b/src/tests/elementary/efl_ui_test_slider.c @@ -13,8 +13,12 @@ slider_changed(void *data EINA_UNUSED, const Efl_Event *ev) { event_counter++; if (event_counter == 1) - efl_event_callback_del(ev->object, EFL_UI_RANGE_EVENT_CHANGED, slider_changed, NULL); + efl_event_callback_del(ev->object, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_START, slider_changed, NULL); else if (event_counter == 2) + efl_event_callback_del(ev->object, EFL_UI_RANGE_EVENT_CHANGED, slider_changed, NULL); + else if (event_counter == 3) + efl_event_callback_del(ev->object, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_STOP, slider_changed, NULL); + else if (event_counter == 4) ecore_main_loop_quit(); } @@ -28,6 +32,8 @@ EFL_START_TEST(efl_ui_test_slider_events) slider = efl_add(EFL_UI_SLIDER_CLASS, win, efl_event_callback_add(efl_added, EFL_UI_RANGE_EVENT_CHANGED, slider_changed, NULL), efl_event_callback_add(efl_added, EFL_UI_RANGE_EVENT_STEADY, slider_changed, NULL), + efl_event_callback_add(efl_added, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_START, slider_changed, NULL), + efl_event_callback_add(efl_added, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_STOP, slider_changed, NULL), efl_gfx_entity_size_set(efl_added, EINA_SIZE2D(400, 100)) ); @@ -48,7 +54,7 @@ EFL_START_TEST(efl_ui_test_slider_events) evas_event_feed_mouse_move(e, sx + (sw / 2), sy + (sh / 2), 0, NULL); evas_event_feed_mouse_up(e, 1, 0, 0, NULL); ecore_main_loop_begin(); - ck_assert_int_eq(event_counter, 2); + ck_assert_int_eq(event_counter, 4); } EFL_END_TEST @@ -62,6 +68,8 @@ EFL_START_TEST(efl_ui_test_slider_step) slider = efl_add(EFL_UI_SLIDER_CLASS, win, efl_event_callback_add(efl_added, EFL_UI_RANGE_EVENT_CHANGED, slider_changed, NULL), efl_event_callback_add(efl_added, EFL_UI_RANGE_EVENT_STEADY, slider_changed, NULL), + efl_event_callback_add(efl_added, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_START, slider_changed, NULL), + efl_event_callback_add(efl_added, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_STOP, slider_changed, NULL), efl_gfx_entity_size_set(efl_added, EINA_SIZE2D(400, 100)) ); efl_ui_range_limits_set(slider, 0, 100);