From: Jin Yoon Date: Mon, 28 Jan 2013 02:51:57 +0000 (+0900) Subject: Bring in the scroller with MOUSE_WHEEL_EVENT X-Git-Tag: submit/tizen_2.1/20130424.223356~22^2~5^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b33c6ab5d0db76c57fec7859c496197b45ebb11d;p=apps%2Fhome%2Fmenu-screen.git Bring in the scroller with MOUSE_WHEEL_EVENT Change-Id: Id5f14bde8de226febd7e7206ee3f8e8855eac6d6 --- diff --git a/data/org.tizen.menu-screen.xml.in b/data/org.tizen.menu-screen.xml.in index 1d2c536..9ef75a7 100755 --- a/data/org.tizen.menu-screen.xml.in +++ b/data/org.tizen.menu-screen.xml.in @@ -1,5 +1,5 @@ - + Jin Yoon Youngjoo Park diff --git a/debian/changelog b/debian/changelog index fcaf54e..a4ec15c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +org.tizen.menu-screen (1.0.22) unstable; urgency=low + + * Git: apps/home/menu-screen + * Tag: menu-screen_1.0.22 + + * Bring in the scroller with MOUSE_WHEEL_EVENT + + -- Jin Yoon Sun, 27 Jan 2013 01:09:05 +0900 + org.tizen.menu-screen (1.0.21) unstable; urgency=low * Git: apps/home/menu-screen diff --git a/packaging/org.tizen.menu-screen.spec b/packaging/org.tizen.menu-screen.spec index abf73c2..46cb642 100644 --- a/packaging/org.tizen.menu-screen.spec +++ b/packaging/org.tizen.menu-screen.spec @@ -14,7 +14,7 @@ Name: org.tizen.menu-screen Summary: An utility library of the menu screen -Version: 1.0.21 +Version: 1.0.22 Release: 1.1 Group: TO_BE/FILLED_IN License: Flora Software License diff --git a/src/page_scroller.c b/src/page_scroller.c index f9bd6b5..20b7116 100644 --- a/src/page_scroller.c +++ b/src/page_scroller.c @@ -736,6 +736,31 @@ static void _mapbuf_cb(keynode_t *node, void *data) +void _mouse_wheel_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Evas_Event_Mouse_Wheel *ei = event_info; + Evas_Object *scroller = data; + int x, y, w, h; + int idx = -1; + + _D("Wheel's up or down(%d)", ei->z); + + elm_scroller_region_get(scroller, &x, &y, &w, &h); + if (ei->z > 0) { // Wheel's up + idx = x / w; + idx ++; + } else if (ei->z < 0) { // Wheel's down + idx = x / w; // Scroller got ECORE events at first, then Menu-screen gets EVAS events. + } else { // Wheel's not moving. + _D("Wheel's not moving"); + } + + if (idx >= page_scroller_count_page(scroller) || idx < 0) return; + page_scroller_bring_in(scroller, idx); +} + + + Evas_Object *page_scroller_create(Evas_Object *tab, Evas_Object *index, page_scroller_sort_type_e sort_type, int rotate) { Evas_Object *box; @@ -793,6 +818,7 @@ Evas_Object *page_scroller_create(Evas_Object *tab, Evas_Object *index, page_scr elm_object_content_set(scroller, box); evas_object_event_callback_add(box, EVAS_CALLBACK_DEL, _evas_object_event_del_cb, "BOX"); + evas_object_event_callback_add(scroller, EVAS_CALLBACK_MOUSE_WHEEL, _mouse_wheel_cb, scroller); evas_object_show(box); evas_object_show(scroller); @@ -875,6 +901,7 @@ void page_scroller_destroy(Evas_Object *scroller) evas_object_del(scroller); evas_object_event_callback_del(box, EVAS_CALLBACK_DEL, _evas_object_event_del_cb); + evas_object_event_callback_del(scroller, EVAS_CALLBACK_MOUSE_WHEEL, _mouse_wheel_cb); if (vconf_ignore_key_changed("memory/menuscreen/desktop", _desktop_cb) < 0) { _E("Failed to ignore the desktop event");