diff --git a/src/lib/evas/canvas/evas_events.c b/src/lib/evas/canvas/evas_events.c index 60c1750345..50e17c2b84 100644 --- a/src/lib/evas/canvas/evas_events.c +++ b/src/lib/evas/canvas/evas_events.c @@ -28,33 +28,6 @@ static void _canvas_event_feed_mouse_move_legacy(Evas *eo_e, Evas_Public_Data *e, int x, int y, unsigned int timestamp, const void *data); -/* FIXME: remove this */ -static void -_evas_event_havemap_adjust(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj, Evas_Coord *x, Evas_Coord *y, Eina_Bool mouse_grabbed) -{ - double tx = *x, ty = *y; - - if (obj->smart.parent) - { - Evas_Object_Protected_Data *smart_parent_obj = efl_data_scope_get(obj->smart.parent, EFL_CANVAS_OBJECT_CLASS); - _evas_event_havemap_adjust(obj->smart.parent, smart_parent_obj, x, y, mouse_grabbed); - } - - if ((!obj->map->cur.usemap) || (!obj->map->cur.map) || - (obj->map->cur.map->count != 4)) - return; - - //FIXME: Unless map_coords_get() supports grab mode and extrapolate coords - //outside map, this should check the return value for outside case. - if (evas_map_coords_get(obj->map->cur.map, tx, ty, &tx, &ty, mouse_grabbed)) - { - tx += obj->cur->geometry.x; - ty += obj->cur->geometry.y; - *x = tx; - *y = ty; - } -} - static void _evas_event_havemap_adjust_f(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj, Eina_Vector2 *point, Eina_Bool mouse_grabbed) { @@ -77,94 +50,6 @@ _evas_event_havemap_adjust_f(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Protec } } -static inline Efl_Event * -_efl_event_create(Efl_Event *evt, Evas_Callback_Type type, void *ev, - Efl_Event *parentev, Efl_Event_Flags **pflags) -{ - if (!ev) return NULL; - - /* This function converts an existing evas info struct to the efl pointer - * event. All pointers must be valid. - * - * See also evas_callbacks.c: _pointer_event_get() - * - * FIXME: evas event logic should not use legacy structs anymore... this - * should be temporary code. Should be. - */ - -#define EV_CASE(TYPE, Type, OBJTYP, objtyp) \ - case EVAS_CALLBACK_ ## TYPE: \ - if (!evt) evt = efl_event_instance_get(EFL_EVENT_ ## OBJTYP ## _CLASS, parentev, NULL); \ - efl_event_ ## objtyp ## _legacy_info_set(evt, ev, type); \ - if (pflags) *pflags = &(((Evas_Event_ ## Type *) ev)->event_flags); \ - break; - - switch (type) - { - EV_CASE(MOUSE_MOVE, Mouse_Move, POINTER, pointer); - EV_CASE(MOUSE_OUT, Mouse_Out, POINTER, pointer); - EV_CASE(MOUSE_IN, Mouse_In, POINTER, pointer); - EV_CASE(MOUSE_DOWN, Mouse_Down, POINTER, pointer); - EV_CASE(MOUSE_UP, Mouse_Up, POINTER, pointer); - EV_CASE(MULTI_MOVE, Multi_Move, POINTER, pointer); - EV_CASE(MULTI_DOWN, Multi_Down, POINTER, pointer); - EV_CASE(MULTI_UP, Multi_Up, POINTER, pointer); - EV_CASE(MOUSE_WHEEL, Mouse_Wheel, POINTER, pointer); - EV_CASE(KEY_DOWN, Key_Down, KEY, key); - EV_CASE(KEY_UP, Key_Up, KEY, key); - EV_CASE(HOLD, Hold, HOLD, hold); - - default: - DBG("Support for event type %d not implemented yet.", type); - break; - } - -#undef EV_CASE - - return evt; -} - -static inline const Efl_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; - case EVAS_CALLBACK_HOLD: - return EFL_EVENT_HOLD; - 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_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) -#define EV_DEL(a) do { if (a) { efl_unref(a); } a = NULL; } while (0) - #if 0 # define DDD_DO 1 # define DDD(...) do { for (i = 0; i < spaces; i++) printf(" "); printf(__VA_ARGS__); } while (0) @@ -460,29 +345,6 @@ _evas_event_object_list_raw_in_get(Evas *eo_e, Eina_List *in, return in; } -/* FIXME: remove this */ -static void -_transform_to_src_space(Evas_Object_Protected_Data *obj, Evas_Object_Protected_Data *src, Evas_Coord *x, Evas_Coord *y) -{ - Evas_Coord obj_w = obj->cur->geometry.w, obj_h = obj->cur->geometry.h; - Evas_Coord src_w = src->cur->geometry.w, src_h = src->cur->geometry.h; - Evas_Coord tmp_x = *x; - Evas_Coord tmp_y = *y; - - tmp_x -= obj->cur->geometry.x; - tmp_y -= obj->cur->geometry.y; - - if (obj_w != src_w) - tmp_x = (Evas_Coord) ((float)tmp_x * ((float)src_w / (float)obj_w)); - if (obj_h != src_h) - tmp_y = (Evas_Coord) ((float)tmp_y * ((float)src_h / (float)obj_h)); - - tmp_x += src->cur->geometry.x; - tmp_y += src->cur->geometry.y; - *x = tmp_x; - *y = tmp_y; -} - static void _transform_to_src_space_f(Evas_Object_Protected_Data *obj, Evas_Object_Protected_Data *src, Eina_Vector2 *point) { diff --git a/src/lib/evas/canvas/evas_events_legacy.c b/src/lib/evas/canvas/evas_events_legacy.c index 2dcdb6896e..dfe3d824d3 100644 --- a/src/lib/evas/canvas/evas_events_legacy.c +++ b/src/lib/evas/canvas/evas_events_legacy.c @@ -32,211 +32,6 @@ _event_alloc(void *old) return old; } -Eina_Bool -efl_event_pointer_legacy_info_set(Efl_Event_Pointer *evt, const void *event_info, Evas_Callback_Type type) -{ - Efl_Event_Pointer_Data *ev = efl_data_scope_get(evt, EFL_EVENT_POINTER_CLASS); - if (!ev || !event_info) return EINA_FALSE; - - /* FIXME/TODO: - * Some events definitely don't have all the info they could have. Need - * to get it from ecore! - */ - -#if defined(DEBUG) -# define CHKACT(a) do { if (evdata->action != EFL_POINTER_ACTION_ ## a) abort(); } while (0) -#else -# define CHKACT(a) do {} while(0) -#endif - - switch (type) - { - case EVAS_CALLBACK_MOUSE_IN: - CHKACT(IN); - { - const Evas_Event_Mouse_In *e = event_info; - ev->action = EFL_POINTER_ACTION_IN; - ev->cur.x = e->canvas.x; - ev->cur.y = e->canvas.y; - ev->data = e->data; - ev->timestamp = e->timestamp; - ev->event_flags = e->event_flags; - ev->device = e->dev; - ev->source = e->event_src; - ev->modifiers = e->modifiers; - ev->locks = e->locks; - break; - } - - case EVAS_CALLBACK_MOUSE_OUT: - CHKACT(OUT); - { - const Evas_Event_Mouse_Out *e = event_info; - ev->action = EFL_POINTER_ACTION_OUT; - ev->cur.x = e->canvas.x; - ev->cur.y = e->canvas.y; - ev->data = e->data; - ev->timestamp = e->timestamp; - ev->event_flags = e->event_flags; - ev->device = e->dev; - ev->source = e->event_src; - ev->modifiers = e->modifiers; - ev->locks = e->locks; - break; - } - - case EVAS_CALLBACK_MOUSE_DOWN: - CHKACT(DOWN); - { - const Evas_Event_Mouse_Down *e = event_info; - ev->action = EFL_POINTER_ACTION_DOWN; - ev->button = e->button; - ev->cur.x = e->canvas.x; - ev->cur.y = e->canvas.y; - ev->data = e->data; - ev->button_flags = e->flags; - ev->timestamp = e->timestamp; - ev->event_flags = e->event_flags; - ev->device = e->dev; - ev->source = e->event_src; - ev->modifiers = e->modifiers; - ev->locks = e->locks; - break; - } - - case EVAS_CALLBACK_MOUSE_UP: - CHKACT(UP); - { - const Evas_Event_Mouse_Up *e = event_info; - ev->action = EFL_POINTER_ACTION_UP; - ev->button = e->button; - ev->cur.x = e->canvas.x; - ev->cur.y = e->canvas.y; - ev->data = e->data; - ev->button_flags = e->flags; - ev->timestamp = e->timestamp; - ev->event_flags = e->event_flags; - ev->device = e->dev; - ev->source = e->event_src; - ev->modifiers = e->modifiers; - ev->locks = e->locks; - break; - } - - case EVAS_CALLBACK_MOUSE_MOVE: - CHKACT(MOVE); - { - const Evas_Event_Mouse_Move *e = event_info; - ev->action = EFL_POINTER_ACTION_MOVE; - ev->pressed_buttons = e->buttons; - ev->cur.x = e->cur.canvas.x; - ev->cur.y = e->cur.canvas.y; - ev->prev.x = e->prev.canvas.x; - ev->prev.y = e->prev.canvas.y; - ev->data = e->data; - ev->timestamp = e->timestamp; - ev->event_flags = e->event_flags; - ev->device = e->dev; - ev->source = e->event_src; - ev->modifiers = e->modifiers; - ev->locks = e->locks; - break; - } - - case EVAS_CALLBACK_MOUSE_WHEEL: - CHKACT(WHEEL); - { - const Evas_Event_Mouse_Wheel *e = event_info; - ev->action = EFL_POINTER_ACTION_WHEEL; - ev->wheel.dir = (e->direction ? EFL_ORIENT_HORIZONTAL : EFL_ORIENT_VERTICAL); - ev->wheel.z = e->z; - ev->cur.x = e->canvas.x; - ev->cur.y = e->canvas.y; - ev->data = e->data; - ev->timestamp = e->timestamp; - ev->event_flags = e->event_flags; - ev->device = e->dev; - ev->modifiers = e->modifiers; - ev->locks = e->locks; - break; - } - - case EVAS_CALLBACK_MULTI_DOWN: - CHKACT(DOWN); - { - const Evas_Event_Multi_Down *e = event_info; - ev->action = EFL_POINTER_ACTION_DOWN; - ev->finger = e->device; - ev->radius = e->radius; - ev->radius_x = e->radius_x; - ev->radius_y = e->radius_y; - ev->pressure = e->pressure; - ev->angle = e->angle; - ev->cur.x = e->canvas.xsub; - ev->cur.y = e->canvas.ysub; - ev->data = e->data; - ev->button_flags = e->flags; - ev->timestamp = e->timestamp; - ev->event_flags = e->event_flags; - ev->device = e->dev; - ev->modifiers = e->modifiers; - ev->locks = e->locks; - break; - } - - case EVAS_CALLBACK_MULTI_UP: - CHKACT(UP); - { - const Evas_Event_Multi_Up *e = event_info; - ev->action = EFL_POINTER_ACTION_UP; - ev->finger = e->device; - ev->radius = e->radius; - ev->radius_x = e->radius_x; - ev->radius_y = e->radius_y; - ev->pressure = e->pressure; - ev->angle = e->angle; - ev->cur.x = e->canvas.xsub; - ev->cur.y = e->canvas.ysub; - ev->data = e->data; - ev->button_flags = e->flags; - ev->timestamp = e->timestamp; - ev->event_flags = e->event_flags; - ev->device = e->dev; - ev->modifiers = e->modifiers; - ev->locks = e->locks; - break; - } - - case EVAS_CALLBACK_MULTI_MOVE: - CHKACT(MOVE); - { - const Evas_Event_Multi_Move *e = event_info; - ev->action = EFL_POINTER_ACTION_MOVE; - ev->finger = e->device; - ev->radius = e->radius; - ev->radius_x = e->radius_x; - ev->radius_y = e->radius_y; - ev->pressure = e->pressure; - ev->angle = e->angle; - ev->cur.x = e->cur.canvas.xsub; - ev->cur.y = e->cur.canvas.ysub; - ev->data = e->data; - ev->timestamp = e->timestamp; - ev->event_flags = e->event_flags; - ev->device = e->dev; - ev->modifiers = e->modifiers; - ev->locks = e->locks; - break; - } - - default: - ERR("invalid event type %d", type); - return EINA_FALSE; - } - - return EINA_TRUE; -} - void * efl_event_pointer_legacy_info_fill(Efl_Event_Key *evt, Evas_Callback_Type type, Evas_Event_Flags **pflags) { @@ -456,58 +251,6 @@ efl_event_pointer_legacy_info_fill(Efl_Event_Key *evt, Evas_Callback_Type type, } } -Eina_Bool -efl_event_key_legacy_info_set(Efl_Event_Key *evt, const void *event_info, Evas_Callback_Type type) -{ - Efl_Event_Key_Data *ev = efl_data_scope_get(evt, EFL_EVENT_KEY_CLASS); - if (!ev || !event_info) return EINA_FALSE; - - switch (type) - { - case EVAS_CALLBACK_KEY_DOWN: - { - const Evas_Event_Key_Down *e = event_info; - ev->timestamp = e->timestamp; - ev->pressed = EINA_TRUE; - eina_stringshare_replace(&ev->keyname, e->keyname); - eina_stringshare_replace(&ev->key, e->key); - eina_stringshare_replace(&ev->string, e->string); - eina_stringshare_replace(&ev->compose, e->compose); - ev->keycode = e->keycode; - ev->data = e->data; - ev->modifiers = e->modifiers; - ev->locks = e->locks; - ev->event_flags = e->event_flags; - ev->device = e->dev; - break; - } - - case EVAS_CALLBACK_KEY_UP: - { - const Evas_Event_Key_Up *e = event_info; - ev->timestamp = e->timestamp; - ev->pressed = EINA_FALSE; - eina_stringshare_replace(&ev->keyname, e->keyname); - eina_stringshare_replace(&ev->key, e->key); - eina_stringshare_replace(&ev->string, e->string); - eina_stringshare_replace(&ev->compose, e->compose); - ev->keycode = e->keycode; - ev->data = e->data; - ev->modifiers = e->modifiers; - ev->locks = e->locks; - ev->event_flags = e->event_flags; - ev->device = e->dev; - break; - } - - default: - ERR("invalid event type %d", type); - return EINA_FALSE; - } - - return EINA_TRUE; -} - void * efl_event_key_legacy_info_fill(Efl_Event_Key *evt, Evas_Event_Flags **pflags) { @@ -554,29 +297,6 @@ efl_event_key_legacy_info_fill(Efl_Event_Key *evt, Evas_Event_Flags **pflags) } } -Eina_Bool -efl_event_hold_legacy_info_set(Efl_Event_Hold *evt, const void *event_info, Evas_Callback_Type type) -{ - Efl_Event_Hold_Data *ev = efl_data_scope_get(evt, EFL_EVENT_HOLD_CLASS); - const Evas_Event_Hold *e = event_info; - - if (!ev || !event_info) return EINA_FALSE; - - if (type != EVAS_CALLBACK_HOLD) - { - ERR("invalid event type %d", type); - return EINA_FALSE; - } - - ev->timestamp = e->timestamp; - ev->device = e->dev; - ev->hold = !!e->hold; - ev->event_flags = e->event_flags; - ev->data = e->data; - - return EINA_TRUE; -} - void * efl_event_hold_legacy_info_fill(Efl_Event_Hold *evt, Evas_Event_Flags **pflags) { diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h index 503313c215..973b28f9dc 100644 --- a/src/lib/evas/include/evas_private.h +++ b/src/lib/evas/include/evas_private.h @@ -1954,9 +1954,6 @@ void _evas_device_cleanup(Evas *e); Evas_Device *_evas_device_top_get(const Evas *e); /* legacy/eo events */ -Eina_Bool efl_event_pointer_legacy_info_set(Efl_Event_Pointer *evt, const void *event_info, Evas_Callback_Type type); -Eina_Bool efl_event_key_legacy_info_set(Efl_Event_Key *evt, const void *event_info, Evas_Callback_Type type); -Eina_Bool efl_event_hold_legacy_info_set(Efl_Event_Hold *evt, const void *event_info, Evas_Callback_Type type); void *efl_event_pointer_legacy_info_fill(Efl_Event_Key *evt, Evas_Callback_Type type, Evas_Event_Flags **pflags); void *efl_event_key_legacy_info_fill(Efl_Event_Key *evt, Evas_Event_Flags **pflags); void *efl_event_hold_legacy_info_fill(Efl_Event_Hold *evt, Evas_Event_Flags **pflags);