hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=782a5f94a92467489ee0fd139a2ee30d7a1022ec

commit 782a5f94a92467489ee0fd139a2ee30d7a1022ec
Author: ChunEon Park <her...@hermet.pe.kr>
Date:   Fri Aug 15 15:10:09 2014 +0900

    ctxpopup: support mouse wheel to go prev/next image.
---
 src/bin/ctxpopup.c | 28 ++++++++++++++++++++++++----
 1 file changed, 24 insertions(+), 4 deletions(-)

diff --git a/src/bin/ctxpopup.c b/src/bin/ctxpopup.c
index d96f9dd..d1487f8 100644
--- a/src/bin/ctxpopup.c
+++ b/src/bin/ctxpopup.c
@@ -306,16 +306,34 @@ err:
 }
 
 static void
+image_relay(ctxpopup_data *ctxdata, Eina_Bool up)
+{
+   if (up)
+     ctxdata->relay_cb(ctxdata->data, ctxdata->ctxpopup, (void *) 0);
+   else
+     ctxdata->relay_cb(ctxdata->data, ctxdata->ctxpopup, (void *) 1);
+}
+
+static void
+ctxpopup_mouse_wheel_cb(void *data, Evas *e EINA_UNUSED,
+                        Evas_Object *obj EINA_UNUSED, void *event_info)
+{
+   Evas_Event_Mouse_Wheel *ev = event_info;
+   ctxpopup_data *ctxdata = data;
+
+   if (ev->z > 0) image_relay(ctxdata, EINA_FALSE);
+   else if (ev->z < 0) image_relay(ctxdata, EINA_TRUE);
+}
+
+static void
 ctxpopup_key_down_cb(void *data, Evas *e EINA_UNUSED,
                      Evas_Object *obj EINA_UNUSED, void *event_info)
 {
    Evas_Event_Key_Down *ev = event_info;
    ctxpopup_data *ctxdata = data;
 
-   if (!strcmp(ev->key, "Down"))
-     ctxdata->relay_cb(ctxdata->data, ctxdata->ctxpopup, (void *) 1);
-   else if (!strcmp(ev->key, "Up"))
-     ctxdata->relay_cb(ctxdata->data, ctxdata->ctxpopup, (void *) 0);
+   if (!strcmp(ev->key, "Down")) image_relay(ctxdata, EINA_FALSE);
+   else if (!strcmp(ev->key, "Up")) image_relay(ctxdata, EINA_TRUE);
 }
 
 Evas_Object *
@@ -364,6 +382,8 @@ ctxpopup_img_preview_create(edit_data *ed,
                                   ctxdata);
    evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_KEY_DOWN,
                                   ctxpopup_key_down_cb, ctxdata);
+   evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_MOUSE_WHEEL,
+                                  ctxpopup_mouse_wheel_cb, ctxdata);
    evas_object_focus_set(ctxpopup, EINA_TRUE);
    return ctxpopup;
 }

-- 


Reply via email to