summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHosang Kim <hosang12.kim@samsung.com>2014-11-20 17:48:36 +0900
committerDaniel Juyung Seo <seojuyung2@gmail.com>2014-11-20 20:29:41 +0900
commit033e68302755ffdc60a1bf76e96f50dab6928cb7 (patch)
tree64f99b6ce4e88ee903521b1e2dd4c91e87c952a5
parentb2611690bd2a1d3fdfc109c14ba3ca46fa71db6e (diff)
downloadelementary-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.c18
-rw-r--r--src/lib/elm_scroller.c20
-rw-r--r--src/lib/elm_scroller_legacy.h32
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"