Eina_Bool _btn_clicked_cb(void *data, Eo *obj, const Eo_Event_Description *desc, void *event_info) { (void) obj; (void) event_info; const Eo_Class *klass = eo_class_get(obj); printf("%s obj-type:'%s' data:'%s'\n", desc->name, eo_class_name_get(klass), (const char *) data); return EO_CALLBACK_CONTINUE; }
static int _ab_sum_get(Eo *obj, void *class_data) { /* This cast is a hack just for the tests... */ Mixin2_Public_Data *pd = (Mixin2_Public_Data *) class_data; int sum = 0; printf("%s %s\n", eo_class_name_get(MY_CLASS), __func__); eo_do_super(obj, MY_CLASS, sum = mixin_ab_sum_get()); ++sum; pd->count += 2; { int _a = 0, _b = 0; eo_do(obj, _a = simple_a_get(), _b = simple_b_get()); fail_if(sum != _a + _b + 1); } return sum; }
Private_Data *pd = class_data; \ pd->name = name; \ printf("%s %d\n", __func__, pd->name); \ } \ EO_VOID_FUNC_BODYV(simple_##name##_set, EO_FUNC_CALL(name), int name); \ EO_FUNC_BODY(simple_##name##_get, int, 0); _GET_SET_FUNC(a) _GET_SET_FUNC(b) static int _ab_sum_get(Eo *obj, void *class_data EINA_UNUSED) { int a = 0, b = 0; eo_do(obj, a = simple_a_get(), b = simple_b_get()); printf("%s %s\n", eo_class_name_get(MY_CLASS), __func__); return a + b; } static int _ab_sum_get2(Eo *obj, void *class_data EINA_UNUSED) { int a = 0, b = 0; eo_do(obj, a = simple_a_get(), b = simple_b_get()); printf("%s %s\n", eo_class_name_get(MY_CLASS), __func__); return a + b + 1; } static Eo_Op_Description op_descs[] = { EO_OP_FUNC(simple_a_set, _a_set), EO_OP_FUNC(simple_a_get, _a_get),
#include "eo_test_class_simple.h" #define MY_CLASS SIMPLE_CLASS EAPI Eo_Op SIMPLE_BASE_ID = 0; EAPI const Eo_Event_Description _EV_A_CHANGED = EO_EVENT_DESCRIPTION("a,changed", "Called when a has changed."); static void _a_set(Eo *obj EINA_UNUSED, void *class_data, va_list *list) { Simple_Public_Data *pd = class_data; int a; a = va_arg(*list, int); printf("%s %d\n", eo_class_name_get(MY_CLASS), a); pd->a = a; eo_do(obj, eo_event_callback_call(EV_A_CHANGED, &pd->a, NULL)); } static void _a_print(Eo *obj EINA_UNUSED, void *class_data, va_list *list) { const Simple_Public_Data *pd = class_data; (void) list; printf("Print %s %d\n", eo_class_name_get(MY_CLASS), pd->a); } static void _class_hi_print(Eo_Class *klass, void *data EINA_UNUSED, va_list *list)