Evas: Fix compilation for Windows
authorJean-Philippe Andre <jp.andre@samsung.com>
Tue, 7 Jun 2016 04:44:30 +0000 (13:44 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Tue, 7 Jun 2016 04:45:41 +0000 (13:45 +0900)
Fixes T3783

src/lib/evas/canvas/evas_events.c

index b3e69e2..80f7549 100644 (file)
@@ -6,47 +6,6 @@
 #define EFL_INTERNAL_UNSTABLE
 #include "interfaces/efl_common_internal.h"
 
-static const Eo_Event_Description *_efl_event_desc_table[EVAS_CALLBACK_LAST] =
-{
-   EFL_EVENT_POINTER_IN,
-   EFL_EVENT_POINTER_OUT,
-   EFL_EVENT_POINTER_DOWN,
-   EFL_EVENT_POINTER_UP,
-   EFL_EVENT_POINTER_MOVE,
-   EFL_EVENT_POINTER_WHEEL,
-   EFL_EVENT_POINTER_DOWN,
-   EFL_EVENT_POINTER_UP,
-   EFL_EVENT_POINTER_MOVE,
-   NULL, // EVAS_OBJECT_EVENT_FREE,
-   EFL_EVENT_KEY_DOWN,
-   EFL_EVENT_KEY_UP,
-   NULL, // EVAS_OBJECT_EVENT_FOCUS_IN,
-   NULL, // EVAS_OBJECT_EVENT_FOCUS_OUT,
-   NULL, // EVAS_OBJECT_EVENT_SHOW,
-   NULL, // EVAS_OBJECT_EVENT_HIDE,
-   NULL, // EVAS_OBJECT_EVENT_MOVE,
-   NULL, // EVAS_OBJECT_EVENT_RESIZE,
-   NULL, // EVAS_OBJECT_EVENT_RESTACK,
-   NULL, // EVAS_OBJECT_EVENT_DEL,
-   NULL, // EVAS_OBJECT_EVENT_HOLD,
-   NULL, // EVAS_OBJECT_EVENT_CHANGED_SIZE_HINTS,
-   NULL, // EVAS_OBJECT_EVENT_IMAGE_PRELOADED,
-   NULL, // EVAS_CANVAS_EVENT_FOCUS_IN,
-   NULL, // EVAS_CANVAS_EVENT_FOCUS_OUT,
-   NULL, // EVAS_CANVAS_EVENT_RENDER_FLUSH_PRE,
-   NULL, // EVAS_CANVAS_EVENT_RENDER_FLUSH_POST,
-   NULL, // EVAS_CANVAS_EVENT_OBJECT_FOCUS_IN,
-   NULL, // EVAS_CANVAS_EVENT_OBJECT_FOCUS_OUT,
-   NULL, // EVAS_OBJECT_EVENT_IMAGE_UNLOADED,
-   NULL, // EVAS_CANVAS_EVENT_RENDER_PRE,
-   NULL, // EVAS_CANVAS_EVENT_RENDER_POST,
-   NULL, // EVAS_OBJECT_EVENT_IMAGE_RESIZE,
-   NULL, // EVAS_CANVAS_EVENT_DEVICE_CHANGED,
-   NULL, // EVAS_CANVAS_EVENT_AXIS_UPDATE,
-   NULL, // EVAS_CANVAS_EVENT_VIEWPORT_RESIZE
-};
-
-
 static Eina_List *
 _evas_event_object_list_in_get(Evas *eo_e, Eina_List *in,
                                const Eina_Inlist *list, Evas_Object *stop,
@@ -135,11 +94,40 @@ _efl_event_create(Efl_Event *evt, Evas_Callback_Type type, void *ev,
    return evt;
 }
 
+static inline const Eo_Event_Description *
+_efl_event_desc_get(Evas_Callback_Type type)
+{
+   switch (type)
+     {
+      case EVAS_CALLBACK_MOUSE_IN:
+        return EFL_EVENT_POINTER_IN;
+      case EVAS_CALLBACK_MOUSE_OUT:
+        return EFL_EVENT_POINTER_OUT;
+      case EVAS_CALLBACK_MOUSE_DOWN:
+      case EVAS_CALLBACK_MULTI_DOWN:
+        return EFL_EVENT_POINTER_DOWN;
+      case EVAS_CALLBACK_MOUSE_UP:
+      case EVAS_CALLBACK_MULTI_UP:
+        return EFL_EVENT_POINTER_UP;
+      case EVAS_CALLBACK_MOUSE_MOVE:
+      case EVAS_CALLBACK_MULTI_MOVE:
+        return EFL_EVENT_POINTER_MOVE;
+      case EVAS_CALLBACK_MOUSE_WHEEL:
+        return EFL_EVENT_POINTER_WHEEL;
+      case EVAS_CALLBACK_KEY_DOWN:
+        return EFL_EVENT_KEY_DOWN;
+      case EVAS_CALLBACK_KEY_UP:
+        return EFL_EVENT_KEY_UP;
+      default:
+        return NULL;
+     }
+}
+
 #define EV_CALL(_eo_obj, _obj, _typ, _info, _id, _eoev, _parent_ev) do { \
    Efl_Event_Flags *_info_pflags = NULL; \
    _eoev = _efl_event_create(_eoev, _typ, _info, _parent_ev, &_info_pflags); \
    evas_object_event_callback_call(_eo_obj, _obj, _typ, _info, _id, \
-                                   _efl_event_desc_table[_typ], _eoev); \
+                                   _efl_event_desc_get(_typ), _eoev); \
    if (_info_pflags) *_info_pflags = efl_event_flags_get(_eoev); \
    } while (0)
 #define EV_RESET(a) do { if (a) efl_event_reset(a); } while (0)