Each of the evas objects on a given evas canvas can be manipulated
independently. They send events, to which callbacks can be attached through
evas_object_event_callback_add()
and removed with
evas_object_event_callback_del()
. These events all relate to single
objects, not the whole canvas.
Callbacks are added with evas_event_callback_add()
. Its prototype is
void evas_object_event_callback_add(Evas_Object* obj, Evas_Callback_Type type, Evas_Object_Event_Cb func, const void* data )
obj
is the object to attach the callback to.type
is the type of event that triggers the callback (the list is in the next section).func
is the function that is called.data
is a pointer to additional data that is given as the argument to the callback. It is optional and NULL
is an acceptable value.The type of the callback function is defined as follows.
void (* Evas_Object_Event_Cb) (void *data, Evas *e, Evas_Object *obj, void *event_info)
The callback function definition is similar to
void some_evas_object_event_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
data
is the same as the data which was given as the parameter to evas_object_smart_callback_add()
.e
is the canvas on which the event occurred.obj
is the object to which the event happened.event_info
is data which depends on the object type and event at play. The documentation must be read for each event.
The values are defined from the Evas_Callback_Type
enum. Some of them are
not used for evas_object_event_callback_add()
, but are used in the next
section.
EVAS_CALLBACK_MOUSE_IN
: the pointer got over an object (with no other object between the two). This takes place no matter how the pointer becomes directly above the object. event_info
in the callback is a pointer to an Evas_Event_Mouse_In
struct.EVAS_CALLBACK_MOUSE_OUT
: triggered similarly to EVAS_CALLBACK_MOUSE_IN
, but when the pointer goes outside an object's area. event_info
in the callback is a pointer to an Evas_Event_Mouse_Out
struct.EVAS_CALLBACK_MOUSE_DOWN
: a mouse button is pressed while the object is receiving events (either because the pointer is on top of the object or because the object had focus). event_info
in the callback is a pointer to an Evas_Event_Mouse_Down
struct.EVAS_CALLBACK_MOUSE_UP
: triggered similarly to EVAS_CALLBACK_MOUSE_DOWN
. event_info
in the callback is a pointer to an Evas_Event_Mouse_Up
struct.EVAS_CALLBACK_MOUSE_MOVE
: triggered similarly to EVAS_CALLBACK_MOUSE_DOWN
. event_info
in the callback is a pointer to an Evas_Event_Mouse_Move
struct.EVAS_CALLBACK_MOUSE_WHEEL
: triggered similarly to EVAS_CALLBACK_MOUSE_DOWN
. event_info
in the callback is a pointer to an Evas_Event_Mouse_Wheel
struct.EVAS_CALLBACK_MULTI_DOWN
: triggered similarly to EVAS_CALLBACK_MOUSE_DOWN
. event_info
in the callback is a pointer to an Evas_Event_Multi_Down
struct.EVAS_CALLBACK_MULTI_UP
: triggered similarly to EVAS_CALLBACK_MOUSE_DOWN
. event_info
in the callback is a pointer to an Evas_Event_Multi_Up
struct.EVAS_CALLBACK_MULTI_MOVE
: triggered similarly to EVAS_CALLBACK_MOUSE_DOWN
. event_info
in the callback is a pointer to an Evas_Event_Multi_Move
struct.EVAS_CALLBACK_KEY_DOWN
: triggered similarly to EVAS_CALLBACK_MOUSE_DOWN
. event_info
in the callback is a pointer to an Evas_Event_Key_Down
struct.EVAS_CALLBACK_KEY_UP
: triggered similarly to EVAS_CALLBACK_MOUSE_DOWN
. event_info
in the callback is a pointer to an Evas_Event_Key_Up
struct.EVAS_CALLBACK_FOCUS_IN
: the object gained focus. event_info
in the callback is a pointer to an Evas_Event_Mouse_In
struct.EVAS_CALLBACK_FOCUS_OUT
: the object lost focus. event_info
in the callback is a pointer to an Evas_Event_Mouse_In
struct.EVAS_CALLBACK_SHOW
: the object is shown by a call to evas_object_show()
. event_info
in the callback is NULL.EVAS_CALLBACK_HIDE
: the object is hidden by a call to evas_object_hide()
. event_info
in the callback is NULL.EVAS_CALLBACK_MOVE
: the object's origin was moved (origin is the top-left corner at the creation time of the object). event_info
in the callback is NULL.EVAS_CALLBACK_RESIZE
: the object is resized. event_info
in the callback is NULL.EVAS_CALLBACK_RESTACK
: the object is re-stacked by evas_object_stack_below()
, evas_object_stack_above()
or other events. event_info
in the callback is NULL.EVAS_CALLBACK_DEL
: the object is deleted.EVAS_CALLBACK_FREE
: for internal use only. Do not use (the object resources are about to be freed). event_info
in the callback is NULL.EVAS_CALLBACK_HOLD
: for internal use only. event_info
in the callback is a pointer to an Evas_Event_Hold
struct.EVAS_CALLBACK_CHANGED_SIZE_HINTS
: the size hints of the object changed.EVAS_CALLBACK_IMAGE_PRELOADED
: an image which was preloaded through evas_object_image_preload()
is loaded. event_info
in the callback is NULL.EVAS_CALLBACK_IMAGE_UNLOADED
: the image data is unloaded. event_info
in the callback is NULL.