Evas events happen on a canvas as a whole. This kind of events are too low-level for writing applications and are most often used when writing the graphical toolkit itself.
The callbacks are added with
evas_event_callback_add(). Its prototype is
void evas_event_callback_add(Evas* e, Evas_Callback_Type type, Evas_Event_Cb func, const void* data )
eis the evas canvas on which the events happen. If needed, it can be
obtained from an Evas_Object through the
typeis the type of event that triggers the callback (the list is in the next section).
funcis the function that is called.
datais a pointer to additional data that is given as an argument to the callback. It is optional and
NULLis an acceptable value.
The type of the callback function is defined as follows.
void (* Evas_Event_Cb) (void *data, Evas *e, void *event_info)
The callback function definition is similar to
void some_evas_object_event_cb(void *data, Evas *e, void *event_info);
datais the same as the data which was given as the parameter to
eis the canvas on which the event occurred.
event_infois data which depends on the object type and the event at play. The documentation must be read for each such event.
The values are defined from the
Evas_Callback_Type enum. Some of them are
not used for
evas_event_callback_add() but are used in the previous
EVAS_CALLBACK_CANVAS_FOCUS_IN: Image has been preloaded.
EVAS_CALLBACK_CANVAS_FOCUS_OUT: Canvas got focus as a whole.
EVAS_CALLBACK_RENDER_FLUSH_PRE: Canvas lost focus as a whole.
EVAS_CALLBACK_RENDER_FLUSH_POST: Called just before rendering is updated on the canvas target.
EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN: Called just after rendering is updated on the canvas target.
EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT: Canvas object got focus.