diff options
author | Hosang Kim <hosang12.kim@samsung.com> | 2014-11-20 17:48:36 +0900 |
---|---|---|
committer | Daniel Juyung Seo <seojuyung2@gmail.com> | 2014-11-20 20:29:41 +0900 |
commit | 033e68302755ffdc60a1bf76e96f50dab6928cb7 (patch) | |
tree | 64f99b6ce4e88ee903521b1e2dd4c91e87c952a5 | |
parent | b2611690bd2a1d3fdfc109c14ba3ca46fa71db6e (diff) | |
download | elementary-033e68302755ffdc60a1bf76e96f50dab6928cb7.tar.gz |
Scroller: Add step size set API
Summary:
Application do not change step size because only interface API is existed.
@feature
Test Plan: elementary_test -> scroller -> change step size
Reviewers: seoz, Hermet
Differential Revision: https://phab.enlightenment.org/D1677
-rw-r--r-- | src/bin/test_scroller.c | 18 | ||||
-rw-r--r-- | src/lib/elm_scroller.c | 20 | ||||
-rw-r--r-- | src/lib/elm_scroller_legacy.h | 32 |
3 files changed, 70 insertions, 0 deletions
diff --git a/src/bin/test_scroller.c b/src/bin/test_scroller.c index de738797c..8628ca28e 100644 --- a/src/bin/test_scroller.c +++ b/src/bin/test_scroller.c @@ -140,6 +140,14 @@ _sc_resize_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_inf evas_object_resize(data, w, h); } +static void +_size_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + Evas_Object *sc = data; + int size = elm_spinner_value_get(obj); + elm_scroller_step_size_set(sc, ELM_SCALE_SIZE(size), ELM_SCALE_SIZE(size)); +} + void test_scroller(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { @@ -249,6 +257,16 @@ test_scroller(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_ sc); evas_object_smart_callback_add(ck5, "changed", my_bt_snap_to_pages, sc); + bt = elm_spinner_add(win); + elm_spinner_min_max_set(bt, 0, 500); + elm_scroller_step_size_get(sc, &x, &y); + elm_spinner_value_set(bt, x); + elm_spinner_editable_set(bt, EINA_TRUE); + elm_spinner_label_format_set(bt, "Step size: %.0f"); + evas_object_smart_callback_add(bt, "changed", _size_changed, sc); + elm_box_pack_end(bx, bt); + evas_object_show(bt); + tb2 = elm_table_add(win); bt = elm_button_add(win); diff --git a/src/lib/elm_scroller.c b/src/lib/elm_scroller.c index c59c0fbd3..b48bb0869 100644 --- a/src/lib/elm_scroller.c +++ b/src/lib/elm_scroller.c @@ -1105,6 +1105,26 @@ elm_scroller_movement_block_get(const Evas_Object *obj) return block; } +EAPI void +elm_scroller_step_size_set(Evas_Object *obj, + Evas_Coord x, + Evas_Coord y) +{ + ELM_SCROLLABLE_CHECK(obj); + + eo_do(obj, elm_interface_scrollable_step_size_set(x, y)); +} + +EAPI void +elm_scroller_step_size_get(const Evas_Object *obj, + Evas_Coord *x, + Evas_Coord *y) +{ + ELM_SCROLLABLE_CHECK(obj); + + eo_do((Eo *) obj, elm_interface_scrollable_step_size_get(x, y)); +} + EOLIAN static void _elm_scroller_propagate_events_set(Eo *obj, Elm_Scroller_Data *_pd EINA_UNUSED, Eina_Bool propagation) { diff --git a/src/lib/elm_scroller_legacy.h b/src/lib/elm_scroller_legacy.h index 235a3c10d..b0d87b69a 100644 --- a/src/lib/elm_scroller_legacy.h +++ b/src/lib/elm_scroller_legacy.h @@ -462,4 +462,36 @@ EAPI void elm_scroller_movement_block_set(Evas_Object *o */ EAPI Elm_Scroller_Movement_Block elm_scroller_movement_block_get(const Evas_Object *obj); +/** + * @brief Set scroll step size. + * + * @param obj The scroller object + * @param x The horizontal step size + * @param y The vertical step size + * + * This sets the step size to move scroller by key event. + * + * @see elm_scroller_step_size_get() for more details + * + * @since 1.13 + * + * @ingroup Scroller + */ +EAPI void elm_scroller_step_size_set(Evas_Object *obj, Evas_Coord x, Evas_Coord y); + +/** + * @brief Get the current step size of the scroller object. + * + * @param obj The scroller object + * @param x Where to store its x axis step size + * @param y Where to store its y axis step size + * + * @see elm_scroller_step_size_set() for more details + * + * @since 1.13 + * + * @ingroup Scroller + */ +EAPI void elm_scroller_step_size_get(const Evas_Object *obj, Evas_Coord *x, Evas_Coord *y); + #include "elm_scroller.eo.legacy.h" |