eo: simplify callbacks array declaration for the lazy tasn.

This commit is contained in:
Cedric Bail 2013-07-17 11:05:50 +09:00
parent 0c4dd0597f
commit 60eb5d07ea
2 changed files with 11 additions and 10 deletions

View File

@ -432,20 +432,18 @@ _edje_pending_timer_cb(void *data)
return ECORE_CALLBACK_CANCEL; return ECORE_CALLBACK_CANCEL;
} }
EO_CALLBACKS_ARRAY_DEFINE(edje_callbacks, 8, EO_CALLBACKS_ARRAY_DEFINE(edje_callbacks,
{ EVAS_OBJECT_EVENT_HOLD, _edje_hold_signal_cb }, { EVAS_OBJECT_EVENT_HOLD, _edje_hold_signal_cb },
{ EVAS_OBJECT_EVENT_MOUSE_IN, _edje_mouse_in_signal_cb }, { EVAS_OBJECT_EVENT_MOUSE_IN, _edje_mouse_in_signal_cb },
{ EVAS_OBJECT_EVENT_MOUSE_OUT, _edje_mouse_out_signal_cb }, { EVAS_OBJECT_EVENT_MOUSE_OUT, _edje_mouse_out_signal_cb },
{ EVAS_OBJECT_EVENT_MOUSE_DOWN, _edje_mouse_down_signal_cb }, { EVAS_OBJECT_EVENT_MOUSE_DOWN, _edje_mouse_down_signal_cb },
{ EVAS_OBJECT_EVENT_MOUSE_UP, _edje_mouse_up_signal_cb }, { EVAS_OBJECT_EVENT_MOUSE_UP, _edje_mouse_up_signal_cb },
{ EVAS_OBJECT_EVENT_MOUSE_MOVE, _edje_mouse_move_signal_cb }, { EVAS_OBJECT_EVENT_MOUSE_MOVE, _edje_mouse_move_signal_cb },
{ EVAS_OBJECT_EVENT_MOUSE_WHEEL, _edje_mouse_wheel_signal_cb }, { EVAS_OBJECT_EVENT_MOUSE_WHEEL, _edje_mouse_wheel_signal_cb });
{ NULL, NULL });
EO_CALLBACKS_ARRAY_DEFINE(edje_focus_callbacks, 3, EO_CALLBACKS_ARRAY_DEFINE(edje_focus_callbacks,
{ EVAS_OBJECT_EVENT_FOCUS_IN, _edje_focus_in_signal_cb }, { EVAS_OBJECT_EVENT_FOCUS_IN, _edje_focus_in_signal_cb },
{ EVAS_OBJECT_EVENT_FOCUS_OUT, _edje_focus_out_signal_cb }, { EVAS_OBJECT_EVENT_FOCUS_OUT, _edje_focus_out_signal_cb });
{ NULL, NULL });
void void
_edje_callbacks_add(Evas_Object *obj, Edje *ed, Edje_Real_Part *rp) _edje_callbacks_add(Evas_Object *obj, Edje *ed, Edje_Real_Part *rp)

View File

@ -1307,16 +1307,19 @@ struct _Eo_Callback_Array_Item
Eo_Event_Cb func; /**< The callback function. */ Eo_Event_Cb func; /**< The callback function. */
}; };
#define EO_CALLBACKS_ARRAY_DEFINE(Name, Count, ...) \ #define EO_CALLBACKS_ARRAY_DEFINE(Name, ...) \
static Eo_Callback_Array_Item * \ static Eo_Callback_Array_Item * \
Name(void) \ Name(void) \
{ \ { \
static Eo_Callback_Array_Item internal[Count] = { { 0 } }; \ static Eo_Callback_Array_Item internal[sizeof ((Eo_Callback_Array_Item[]) { __VA_ARGS__ }) / \
sizeof (Eo_Callback_Array_Item) + \
1] = { { 0 } }; \
if (internal[0].desc == NULL) \ if (internal[0].desc == NULL) \
{ \ { \
memcpy(internal, \ memcpy(internal, \
((Eo_Callback_Array_Item[Count]) { __VA_ARGS__ }), \ ((Eo_Callback_Array_Item[]) { __VA_ARGS__, { NULL, NULL } }), \
sizeof(Eo_Callback_Array_Item) * Count); \ sizeof (Eo_Callback_Array_Item) + \
sizeof ((Eo_Callback_Array_Item[]) { __VA_ARGS__ })); \
} \ } \
return internal; \ return internal; \
} }