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
This commit is contained in:
Hosang Kim 2014-11-20 17:48:36 +09:00 committed by Daniel Juyung Seo
parent d2e026db57
commit 008f37e18e
3 changed files with 70 additions and 0 deletions

View File

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

View File

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

View File

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