Bring in the scroller with MOUSE_WHEEL_EVENT
authorJin Yoon <jinny.yoon@samsung.com>
Mon, 28 Jan 2013 02:51:57 +0000 (11:51 +0900)
committerJin Yoon <jinny.yoon@samsung.com>
Mon, 28 Jan 2013 02:51:57 +0000 (11:51 +0900)
Change-Id: Id5f14bde8de226febd7e7206ee3f8e8855eac6d6

data/org.tizen.menu-screen.xml.in
debian/changelog
packaging/org.tizen.menu-screen.spec
src/page_scroller.c

index 1d2c5368386ccc92e8098031fb63c5b95cf19bab..9ef75a72c6c8d6dbdcc29a3e6014a3582ccf9733 100755 (executable)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>\r
-<manifest xmlns="http://tizen.org/ns/packages" package="@PACKAGE_NAME@" version="1.0.21" install-location="internal-only">\r
+<manifest xmlns="http://tizen.org/ns/packages" package="@PACKAGE_NAME@" version="1.0.22" install-location="internal-only">\r
        <label>Menu-screen</label>\r
        <author email="jinny.yoon@samsung.com" href="www.samsung.com">Jin Yoon</author>\r
        <author email="yjoo93.park@samsung.com" href="www.samsung.com">Youngjoo Park</author>\r
index fcaf54e3a2f8f5f22c2d2ac1b80fc07861184023..a4ec15c30f9b463a9c10520fae76d94ea7cd2bce 100644 (file)
@@ -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 <jinny.yoon@samsung.com>  Sun, 27 Jan 2013 01:09:05 +0900
+
 org.tizen.menu-screen (1.0.21) unstable; urgency=low
 
   * Git: apps/home/menu-screen
index abf73c2df883cec54a864e564407c0e2ffe795bb..46cb64238072ad5a4609670fcf05ca53a35ca6f8 100644 (file)
@@ -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
index f9bd6b58a76fb691041a95b7b4d3ef78159a62a3..20b7116f68e0b9c777401bf80786325860b082ac 100644 (file)
@@ -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");