#include "scroller.h"
#define PRIVATE_DATA_KEY_SCROLLER_IS_SCROLLING "p_is_sc"
-#define PRIVATE_DATA_KEY_SCROLLER_DRAG_START "p_dg_st"
#define PRIVATE_DATA_KEY_EVENT_CALLBACK_LIST "pdkec"
+static void __scroller_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ Evas_Object *scroller = obj;
+
+ ret_if(!scroller);
+
+ evas_object_data_set(scroller, PRIVATE_DATA_KEY_SCROLLER_IS_SCROLLING, NULL);
+}
+
+
+
static void __anim_start_cb(void *data, Evas_Object *scroller, void *event_info)
{
_D("start the scroller(%p) animation", scroller);
static void __anim_stop_cb(void *data, Evas_Object *scroller, void *event_info)
{
_D("stop the scroller(%p) animation", scroller);
- evas_object_data_del(scroller, PRIVATE_DATA_KEY_SCROLLER_IS_SCROLLING);
- evas_object_data_del(scroller, PRIVATE_DATA_KEY_SCROLLER_DRAG_START);
}
static void __drag_start_cb(void *data, Evas_Object *scroller, void *event_info)
{
_D("start to drag the scroller(%p)", scroller);
- evas_object_data_set(scroller, PRIVATE_DATA_KEY_SCROLLER_DRAG_START, (void *) 1);
+ evas_object_data_set(scroller, PRIVATE_DATA_KEY_SCROLLER_IS_SCROLLING, (void *) 1);
}
-static void __scroll_cb(void *data, Evas_Object *scroller, void *event_info)
-{
- int y = 0;
-
- ret_if(!scroller);
-
- if (!evas_object_data_get(scroller, PRIVATE_DATA_KEY_SCROLLER_DRAG_START))
- return;
-
- elm_scroller_region_get(scroller, NULL, &y, NULL, NULL);
-}
-
-
-
Evas_Object *scroller_create(Evas_Object *parent)
{
Evas_Object *box = NULL;
evas_object_smart_callback_add(scroller, "scroll,anim,stop", __anim_stop_cb, NULL);
evas_object_smart_callback_add(scroller, "scroll,drag,start", __drag_start_cb, NULL);
evas_object_smart_callback_add(scroller, "scroll,drag,stop", __drag_stop_cb, NULL);
- evas_object_smart_callback_add(scroller, "scroll", __scroll_cb, NULL);
+ evas_object_event_callback_add(scroller, EVAS_CALLBACK_MOUSE_DOWN, __scroller_mouse_down_cb, NULL);
box = elm_box_add(scroller);
goto_if(!box, ERROR);
evas_object_del(box);
}
+ evas_object_data_del(scroller, PRIVATE_DATA_KEY_SCROLLER_IS_SCROLLING);
evas_object_del(scroller);
}