0810 version
[apps/native/sample/adventure.git] / src / scroller.c
index ab0f6ec..1382b9d 100644 (file)
@@ -5,7 +5,6 @@
 #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"
 
 
@@ -27,6 +26,17 @@ int scroller_is_scrolling(Evas_Object *scroller)
 
 
 
+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);
@@ -38,8 +48,6 @@ static void __anim_start_cb(void *data, Evas_Object *scroller, void *event_info)
 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);
 }
 
 
@@ -47,7 +55,7 @@ static void __anim_stop_cb(void *data, Evas_Object *scroller, void *event_info)
 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);
 }
 
 
@@ -59,20 +67,6 @@ static void __drag_stop_cb(void *data, Evas_Object *scroller, void *event_info)
 
 
 
-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;
@@ -101,7 +95,7 @@ Evas_Object *scroller_create(Evas_Object *parent)
        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);
@@ -137,6 +131,7 @@ void scroller_destroy(Evas_Object *scroller)
                evas_object_del(box);
        }
 
+       evas_object_data_del(scroller, PRIVATE_DATA_KEY_SCROLLER_IS_SCROLLING);
        evas_object_del(scroller);
 }