API break: proper Canvas events callback.
Canvas was (ab)using the same callback signature as Objects, so you always got a confusing NULL parameter. Just clean it up to be Evas_Object_Event_Cb and Evas_Event_Cb, each with its own signature. SVN revision: 46206
This commit is contained in:
parent
4e51efd326
commit
e133d2f300
|
@ -43,6 +43,10 @@
|
||||||
|
|
||||||
typedef enum _Evas_Callback_Type
|
typedef enum _Evas_Callback_Type
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
* The following events are only for use with objects
|
||||||
|
* evas_object_event_callback_add():
|
||||||
|
*/
|
||||||
EVAS_CALLBACK_MOUSE_IN, /**< Mouse In Event */
|
EVAS_CALLBACK_MOUSE_IN, /**< Mouse In Event */
|
||||||
EVAS_CALLBACK_MOUSE_OUT, /**< Mouse Out Event */
|
EVAS_CALLBACK_MOUSE_OUT, /**< Mouse Out Event */
|
||||||
EVAS_CALLBACK_MOUSE_DOWN, /**< Mouse Button Down Event */
|
EVAS_CALLBACK_MOUSE_DOWN, /**< Mouse Button Down Event */
|
||||||
|
@ -67,10 +71,20 @@ typedef enum _Evas_Callback_Type
|
||||||
EVAS_CALLBACK_CHANGED_SIZE_HINTS, /**< Size hints changed event */
|
EVAS_CALLBACK_CHANGED_SIZE_HINTS, /**< Size hints changed event */
|
||||||
EVAS_CALLBACK_IMAGE_PRELOADED, /**< Image as been preloaded */
|
EVAS_CALLBACK_IMAGE_PRELOADED, /**< Image as been preloaded */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The following events are only for use with canvas
|
||||||
|
* evas_event_callback_add():
|
||||||
|
*/
|
||||||
|
|
||||||
EVAS_CALLBACK_CANVAS_FOCUS_IN, /**< Canvas got focus as a whole */
|
EVAS_CALLBACK_CANVAS_FOCUS_IN, /**< Canvas got focus as a whole */
|
||||||
EVAS_CALLBACK_CANVAS_FOCUS_OUT, /**< Canvas lost focus as a whole */
|
EVAS_CALLBACK_CANVAS_FOCUS_OUT, /**< Canvas lost focus as a whole */
|
||||||
EVAS_CALLBACK_RENDER_FLUSH_PRE, /**< Called just before rendering is updated on the canvas target */
|
EVAS_CALLBACK_RENDER_FLUSH_PRE, /**< Called just before rendering is updated on the canvas target */
|
||||||
EVAS_CALLBACK_RENDER_FLUSH_POST, /**< Called just after rendering is updated on the canvas target */
|
EVAS_CALLBACK_RENDER_FLUSH_POST, /**< Called just after rendering is updated on the canvas target */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* the following id no event number, but a sentinel: */
|
||||||
EVAS_CALLBACK_LAST /**< keep as last element/sentinel -- not really an event */
|
EVAS_CALLBACK_LAST /**< keep as last element/sentinel -- not really an event */
|
||||||
} Evas_Callback_Type; /**< The type of event to trigger the callback */
|
} Evas_Callback_Type; /**< The type of event to trigger the callback */
|
||||||
|
|
||||||
|
@ -712,7 +726,8 @@ typedef enum _Evas_Object_Pointer_Mode
|
||||||
} Evas_Object_Pointer_Mode;
|
} Evas_Object_Pointer_Mode;
|
||||||
|
|
||||||
typedef void (*Evas_Smart_Cb) (void *data, Evas_Object *obj, void *event_info);
|
typedef void (*Evas_Smart_Cb) (void *data, Evas_Object *obj, void *event_info);
|
||||||
typedef void (*Evas_Event_Cb) (void *data, Evas *e, Evas_Object *obj, void *event_info);
|
typedef void (*Evas_Event_Cb) (void *data, Evas *e, void *event_info);
|
||||||
|
typedef void (*Evas_Object_Event_Cb) (void *data, Evas *e, Evas_Object *obj, void *event_info);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -1246,9 +1261,9 @@ extern "C" {
|
||||||
EAPI void evas_object_precise_is_inside_set (Evas_Object *obj, Eina_Bool precise) EINA_ARG_NONNULL(1);
|
EAPI void evas_object_precise_is_inside_set (Evas_Object *obj, Eina_Bool precise) EINA_ARG_NONNULL(1);
|
||||||
EAPI Eina_Bool evas_object_precise_is_inside_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE;
|
EAPI Eina_Bool evas_object_precise_is_inside_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE;
|
||||||
|
|
||||||
EAPI void evas_object_event_callback_add (Evas_Object *obj, Evas_Callback_Type type, Evas_Event_Cb func, const void *data) EINA_ARG_NONNULL(1, 3);
|
EAPI void evas_object_event_callback_add (Evas_Object *obj, Evas_Callback_Type type, Evas_Object_Event_Cb func, const void *data) EINA_ARG_NONNULL(1, 3);
|
||||||
EAPI void *evas_object_event_callback_del (Evas_Object *obj, Evas_Callback_Type type, Evas_Event_Cb func) EINA_ARG_NONNULL(1, 3);
|
EAPI void *evas_object_event_callback_del (Evas_Object *obj, Evas_Callback_Type type, Evas_Object_Event_Cb func) EINA_ARG_NONNULL(1, 3);
|
||||||
EAPI void *evas_object_event_callback_del_full(Evas_Object *obj, Evas_Callback_Type type, Evas_Event_Cb func, const void *data) EINA_ARG_NONNULL(1, 3);
|
EAPI void *evas_object_event_callback_del_full(Evas_Object *obj, Evas_Callback_Type type, Evas_Object_Event_Cb func, const void *data) EINA_ARG_NONNULL(1, 3);
|
||||||
|
|
||||||
EAPI void evas_event_callback_add (Evas *e, Evas_Callback_Type type, Evas_Event_Cb func, const void *data) EINA_ARG_NONNULL(1, 3);
|
EAPI void evas_event_callback_add (Evas *e, Evas_Callback_Type type, Evas_Event_Cb func, const void *data) EINA_ARG_NONNULL(1, 3);
|
||||||
EAPI void *evas_event_callback_del (Evas *e, Evas_Callback_Type type, Evas_Event_Cb func) EINA_ARG_NONNULL(1, 3);
|
EAPI void *evas_event_callback_del (Evas *e, Evas_Callback_Type type, Evas_Event_Cb func) EINA_ARG_NONNULL(1, 3);
|
||||||
|
|
|
@ -61,7 +61,7 @@ void
|
||||||
evas_event_callback_call(Evas *e, Evas_Callback_Type type, void *event_info)
|
evas_event_callback_call(Evas *e, Evas_Callback_Type type, void *event_info)
|
||||||
{
|
{
|
||||||
Eina_Inlist **l_mod = NULL, *l;
|
Eina_Inlist **l_mod = NULL, *l;
|
||||||
|
|
||||||
_evas_walk(e);
|
_evas_walk(e);
|
||||||
if (e->callbacks)
|
if (e->callbacks)
|
||||||
{
|
{
|
||||||
|
@ -74,8 +74,9 @@ evas_event_callback_call(Evas *e, Evas_Callback_Type type, void *event_info)
|
||||||
fn = (Evas_Func_Node *)l;
|
fn = (Evas_Func_Node *)l;
|
||||||
if ((fn->type == type) && (!fn->delete_me))
|
if ((fn->type == type) && (!fn->delete_me))
|
||||||
{
|
{
|
||||||
if (fn->func)
|
Evas_Event_Cb func = fn->func;
|
||||||
fn->func(fn->data, e, NULL, event_info);
|
if (func)
|
||||||
|
func(fn->data, e, event_info);
|
||||||
}
|
}
|
||||||
if (e->delete_me) break;
|
if (e->delete_me) break;
|
||||||
}
|
}
|
||||||
|
@ -140,8 +141,9 @@ evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void
|
||||||
fn = (Evas_Func_Node *)l;
|
fn = (Evas_Func_Node *)l;
|
||||||
if ((fn->type == type) && (!fn->delete_me))
|
if ((fn->type == type) && (!fn->delete_me))
|
||||||
{
|
{
|
||||||
if (fn->func)
|
Evas_Object_Event_Cb func = fn->func;
|
||||||
fn->func(fn->data, obj->layer->evas, obj, event_info);
|
if (func)
|
||||||
|
func(fn->data, obj->layer->evas, obj, event_info);
|
||||||
}
|
}
|
||||||
if (obj->delete_me) break;
|
if (obj->delete_me) break;
|
||||||
}
|
}
|
||||||
|
@ -355,7 +357,7 @@ evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void
|
||||||
* @endcode
|
* @endcode
|
||||||
*/
|
*/
|
||||||
EAPI void
|
EAPI 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)
|
evas_object_event_callback_add(Evas_Object *obj, Evas_Callback_Type type, Evas_Object_Event_Cb func, const void *data)
|
||||||
{
|
{
|
||||||
/* MEM OK */
|
/* MEM OK */
|
||||||
Evas_Func_Node *fn;
|
Evas_Func_Node *fn;
|
||||||
|
@ -408,7 +410,7 @@ evas_object_event_callback_add(Evas_Object *obj, Evas_Callback_Type type, void (
|
||||||
* @endcode
|
* @endcode
|
||||||
*/
|
*/
|
||||||
EAPI void *
|
EAPI 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))
|
evas_object_event_callback_del(Evas_Object *obj, Evas_Callback_Type type, Evas_Object_Event_Cb func)
|
||||||
{
|
{
|
||||||
/* MEM OK */
|
/* MEM OK */
|
||||||
Evas_Func_Node *fn;
|
Evas_Func_Node *fn;
|
||||||
|
@ -465,7 +467,7 @@ evas_object_event_callback_del(Evas_Object *obj, Evas_Callback_Type type, void (
|
||||||
* @endcode
|
* @endcode
|
||||||
*/
|
*/
|
||||||
EAPI void *
|
EAPI void *
|
||||||
evas_object_event_callback_del_full(Evas_Object *obj, Evas_Callback_Type type, void (*func) (void *data, Evas *e, Evas_Object *obj, void *event_info), const void *data)
|
evas_object_event_callback_del_full(Evas_Object *obj, Evas_Callback_Type type, Evas_Object_Event_Cb func, const void *data)
|
||||||
{
|
{
|
||||||
/* MEM OK */
|
/* MEM OK */
|
||||||
Evas_Func_Node *fn;
|
Evas_Func_Node *fn;
|
||||||
|
@ -496,7 +498,7 @@ evas_object_event_callback_del_full(Evas_Object *obj, Evas_Callback_Type type, v
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
evas_event_callback_add(Evas *e, Evas_Callback_Type type, void (*func) (void *data, Evas *e, Evas_Object *obj, void *event_info), const void *data)
|
evas_event_callback_add(Evas *e, Evas_Callback_Type type, Evas_Event_Cb func, const void *data)
|
||||||
{
|
{
|
||||||
/* MEM OK */
|
/* MEM OK */
|
||||||
Evas_Func_Node *fn;
|
Evas_Func_Node *fn;
|
||||||
|
@ -525,7 +527,7 @@ evas_event_callback_add(Evas *e, Evas_Callback_Type type, void (*func) (void *da
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void *
|
EAPI void *
|
||||||
evas_event_callback_del(Evas *e, Evas_Callback_Type type, void (*func) (void *data, Evas *e, Evas_Object *obj, void *event_info))
|
evas_event_callback_del(Evas *e, Evas_Callback_Type type, Evas_Event_Cb func)
|
||||||
{
|
{
|
||||||
/* MEM OK */
|
/* MEM OK */
|
||||||
Evas_Func_Node *fn;
|
Evas_Func_Node *fn;
|
||||||
|
@ -554,7 +556,7 @@ evas_event_callback_del(Evas *e, Evas_Callback_Type type, void (*func) (void *da
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void *
|
EAPI void *
|
||||||
evas_event_callback_del_full(Evas *e, Evas_Callback_Type type, void (*func) (void *data, Evas *e, Evas_Object *obj, void *event_info), const void *data)
|
evas_event_callback_del_full(Evas *e, Evas_Callback_Type type, Evas_Event_Cb func, const void *data)
|
||||||
{
|
{
|
||||||
/* MEM OK */
|
/* MEM OK */
|
||||||
Evas_Func_Node *fn;
|
Evas_Func_Node *fn;
|
||||||
|
|
|
@ -490,7 +490,7 @@ struct _Evas_Object
|
||||||
struct _Evas_Func_Node
|
struct _Evas_Func_Node
|
||||||
{
|
{
|
||||||
EINA_INLIST;
|
EINA_INLIST;
|
||||||
void (*func) (void *data, Evas *e, Evas_Object *obj, void *event_info);
|
void (*func) ();
|
||||||
void *data;
|
void *data;
|
||||||
Evas_Callback_Type type;
|
Evas_Callback_Type type;
|
||||||
unsigned char delete_me : 1;
|
unsigned char delete_me : 1;
|
||||||
|
|
Loading…
Reference in New Issue