Functions | |
void | evas_object_event_callback_add (Evas_Object *obj, Evas_Callback_Type type, void(*func)(void *data, Evas *e, Evas_Object *obj, void *event_info), const void *data) |
Add a callback function to an object. | |
void * | evas_object_event_callback_del (Evas_Object *obj, Evas_Callback_Type type, void(*func)(void *data, Evas *e, Evas_Object *obj, void *event_info)) |
Delete a callback function from an object. |
|
Add a callback function to an object.
type occurs on object obj . The function is func .In the event of a memory allocation error during addition of the callback to the object, evas_alloc_error() should be used to determine the nature of the error, if any, and the program should sensibly try and recover.
The function will be passed the pointer
void callback (void *data, Evas *e, Evas_Object *obj, void *event_info);
The first parameter
The event type EVAS_CALLBACK_MOUSE_IN: event_info = pointer to Evas_Event_Mouse_In
This event is triggered when the mouse pointer enters the region of the object EVAS_CALLBACK_MOUSE_OUT: event_info = pointer to Evas_Event_Mouse_Out This event is triggered exactly like EVAS_CALLBACK_MOUSE_IN is, but occurs when the mouse pointer exits an object. Note that no out events will be reported if the mouse pointer is implicitly grabbed to an object (the mouse buttons are down at all and any were pressed on that object). An out event will be reported as soon as the mouse is no longer grabbed (no mouse buttons are depressed). Out events will be reported once all buttons are released, if the mouse has left the object. EVAS_CALLBACK_MOUSE_DOWN: event_info = pointer to Evas_Event_Mouse_Down This event is triggered by a mouse button being depressed while over an object. This causes this object to passively grab the mouse until all mouse buttons have been released. That means if this mouse button is the first to be pressed, all future mouse events will be reported to only this object until no buttons are down. That includes mouse move events, in and out events, and further button presses. When all buttons are released, event propagation occurs as normal. EVAS_CALLBACK_MOUSE_UP: event_info = pointer to Evas_Event_Mouse_Up This event is triggered by a mouse button being released while over an object or when passively grabbed to an object. If this is the last mouse button to be raised on an object then the passive grab is released and event processing will continue as normal. EVAS_CALLBACK_MOUSE_MOVE: event_info = pointer to Evas_Event_Mouse_Move This event is triggered by the mouse pointer moving while over an object or passively grabbed to an object. EVAS_CALLBACK_MOUSE_WHEEL: event_info = pointer to Evas_Event_Mouse_Wheel This event is triggered by the mouse wheel being rolled while over an object or passively grabbed to an object. EVAS_CALLBACK_FREE: event_info = NULL This event is triggered just before Evas is about to free all memory used by an object and remove all references to it. This is useful for programs to use if they attached data to an object and want to free it when the object is deleted. The object is still valid when this callback is called, but after this callback returns, there is no guarantee on the object's validity. EVAS_CALLBACK_KEY_DOWN: event_info = pointer to Evas_Event_Key_Down This callback is called when a key is pressed and the focus is on the object, or a key has been grabbed to a particular object which wants to intercept the key press regardless of what object has the focus. EVAS_CALLBACK_KEY_UP: event_info = pointer to Evas_Event_Key_Up This callback is called when a key is released and the focus is on the object, or a key has been grabbed to a particular object which wants to intercept the key release regardless of what object has the focus. EVAS_CALLBACK_FOCUS_IN: event_info = NULL This event is called when an object gains the focus. When the callback is called the object has already gained the focus. EVAS_CALLBACK_FOCUS_OUT: event_info = NULL This event is triggered by an object losing the focus. When the callback is called the object has already lost the focus. EVAS_CALLBACK_SHOW: event_info = NULL This event is triggered by the object being shown by evas_object_show(). EVAS_CALLBACK_HIDE: event_info = NULL This event is triggered by an object being hidden by evas_object_hide(). EVAS_CALLBACK_MOVE: event_info = NULL This event is triggered by an object being moved. evas_object_move() can trigger this, as can any object-specific manipulations that would mean the object's origin could move. EVAS_CALLBACK_RESIZE: event_info = NULL This event is triggered by an object being resized. Resizes can be triggered by evas_object_resize() or by any object-specific calls that may cause the object to resize. Example: extern Evas_Object *object; extern void *my_data; void down_callback(void *data, Evas *e, Evas_Object *obj, void *event_info); void up_callback(void *data, Evas *e, Evas_Object *obj, void *event_info); evas_object_event_callback_add(object, EVAS_CALLBACK_MOUSE_UP, up_callback, my_data); if (evas_alloc_error() != EVAS_ALLOC_ERROR_NONE) { fprintf(stderr, "ERROR: Callback registering failed! Abort!\n"); exit(-1); } evas_object_event_callback_add(object, EVAS_CALLBACK_MOUSE_DOWN, down_callback, my_data); if (evas_alloc_error() != EVAS_ALLOC_ERROR_NONE) { fprintf(stderr, "ERROR: Callback registering failed! Abort!\n"); exit(-1); } |
|
Delete a callback function from an object.
obj which was triggered by the event type type and was calling the function func when triggered. If the removal is successful it will also return the data pointer that was passed to evas_object_event_callback_add() when the callback was added to the object. If not successful NULL will be returned.Example: extern Evas_Object *object; void *my_data; void up_callback(void *data, Evas *e, Evas_Object *obj, void *event_info); my_data = evas_object_event_callback_del(object, EVAS_CALLBACK_MOUSE_UP, up_callback); |