#include <Elementary.h> #include "elm_priv.h" #include "elm_widget_container.h" EAPI Eo_Op ELM_OBJ_CONTAINER_BASE_ID = EO_NOOP; #define MY_CLASS ELM_OBJ_CONTAINER_CLASS #define MY_CLASS_NAME "elm_container" static const Eo_Op_Description op_desc[] = { EO_OP_DESCRIPTION(ELM_OBJ_CONTAINER_SUB_ID_CONTENT_SET, "Set the content on part of a given container widget."), EO_OP_DESCRIPTION(ELM_OBJ_CONTAINER_SUB_ID_CONTENT_GET, "Get the content on a part of a given container widget"), EO_OP_DESCRIPTION(ELM_OBJ_CONTAINER_SUB_ID_CONTENT_UNSET, "Unset the content on a part of a given container widget"), EO_OP_DESCRIPTION_SENTINEL }; static const Eo_Class_Description class_desc = { EO_VERSION, MY_CLASS_NAME, EO_CLASS_TYPE_REGULAR, EO_CLASS_DESCRIPTION_OPS(&ELM_OBJ_CONTAINER_BASE_ID, op_desc, ELM_OBJ_CONTAINER_SUB_ID_LAST), NULL, 0, NULL, NULL }; EO_DEFINE_CLASS(elm_obj_container_class_get, &class_desc, ELM_OBJ_WIDGET_CLASS, NULL);
#ifdef HAVE_CONFIG_H # include <config.h> #endif #include "Eo.h" #include "interface_interface.h" #include "interface_simple.h" EAPI Eo_Op INTERFACE_BASE_ID = 0; #define MY_CLASS INTERFACE_CLASS static const Eo_Op_Description op_desc[] = { EO_OP_DESCRIPTION(INTERFACE_SUB_ID_AB_SUM_GET, "Get the sum of a and b."), EO_OP_DESCRIPTION_SENTINEL }; static const Eo_Class_Description class_desc = { EO_VERSION, "Interface", EO_CLASS_TYPE_INTERFACE, EO_CLASS_DESCRIPTION_OPS(&INTERFACE_BASE_ID, op_desc, INTERFACE_SUB_ID_LAST), NULL, 0, NULL, NULL }; EO_DEFINE_CLASS(interface_class_get, &class_desc, NULL, NULL)
#ifdef HAVE_CONFIG_H # include <config.h> #endif #include "Eo.h" #include "simple_interface.h" #define MY_CLASS INTERFACE_CLASS EAPI EO_FUNC_BODY(interface_a_power_3_get, int, 0); static Eo_Op_Description op_desc[] = { EO_OP_FUNC(interface_a_power_3_get, NULL), }; static const Eo_Class_Description class_desc = { EO_VERSION, "Interface", EO_CLASS_TYPE_INTERFACE, EO_CLASS_DESCRIPTION_OPS(op_desc), NULL, 0, NULL, NULL }; EO_DEFINE_CLASS(interface_class_get, &class_desc, NULL, NULL)
EAPI EO_FUNC_BODY(interface_mxy_get, int, 0); static Eo_Op_Description _interface_op_desc[] = { EO_OP_FUNC(interface_mxy_get, NULL, "Gets property MXY = X*Y"), EO_OP_SENTINEL }; static const Eo_Class_Description _interface_class_desc = { EO_VERSION, "Interface", EO_CLASS_TYPE_INTERFACE, EO_CLASS_DESCRIPTION_OPS(_interface_op_desc), NULL, 0, NULL, NULL }; EO_DEFINE_CLASS(interface_class_get, &_interface_class_desc, NULL, NULL);
#include "Eo.h" #include "mixin.h" #include "simple.h" #include "simple4.h" #define MY_CLASS SIMPLE4_CLASS static const Eo_Class_Description class_desc = { "Simple4", EO_CLASS_TYPE_REGULAR, EO_CLASS_DESCRIPTION_OPS(NULL, NULL, 0), NULL, 0, NULL, NULL, NULL, NULL }; EO_DEFINE_CLASS(simple4_class_get, &class_desc, SIMPLE_CLASS, MIXIN_CLASS, NULL);
EO_OP_FUNC_CONST(SIMPLE_ID(SIMPLE_SUB_ID_A_GET), _a_get), EO_OP_FUNC(SIMPLE_ID(SIMPLE_SUB_ID_B_SET), _b_set), EO_OP_FUNC_CONST(SIMPLE_ID(SIMPLE_SUB_ID_B_GET), _b_get), EO_OP_FUNC_SENTINEL }; eo_class_funcs_set(klass, func_desc); } static const Eo_Op_Description op_desc[] = { EO_OP_DESCRIPTION(SIMPLE_SUB_ID_A_SET, "i", "Set property A"), EO_OP_DESCRIPTION_CONST(SIMPLE_SUB_ID_A_GET, "i", "Get property A"), EO_OP_DESCRIPTION(SIMPLE_SUB_ID_B_SET, "i", "Set property B"), EO_OP_DESCRIPTION_CONST(SIMPLE_SUB_ID_B_GET, "i", "Get property B"), EO_OP_DESCRIPTION_SENTINEL }; static const Eo_Class_Description class_desc = { "Simple", EO_CLASS_TYPE_REGULAR, EO_CLASS_DESCRIPTION_OPS(&SIMPLE_BASE_ID, op_desc, SIMPLE_SUB_ID_LAST), NULL, sizeof(Private_Data), NULL, NULL, _class_constructor, NULL }; EO_DEFINE_CLASS(simple_class_get, &class_desc, EO_BASE_CLASS, MIXIN3_CLASS, MIXIN2_CLASS, NULL);
END_TEST START_TEST(eo_inherit_errors) { eo_init(); const Eo_Class *klass; const Eo_Class *klass_mixin; const Eo_Class *klass_simple; static const Eo_Class_Description class_desc_simple = { "Simple", EO_CLASS_TYPE_REGULAR, EO_CLASS_DESCRIPTION_OPS(NULL, NULL, 0), NULL, 0, NULL, NULL, NULL, NULL }; static const Eo_Class_Description class_desc_mixin = { "Mixin", EO_CLASS_TYPE_MIXIN, EO_CLASS_DESCRIPTION_OPS(NULL, NULL, 0), NULL, 0, NULL, NULL, NULL, NULL }; static Eo_Class_Description class_desc = { "General", EO_CLASS_TYPE_MIXIN, EO_CLASS_DESCRIPTION_OPS(NULL, NULL, 0), NULL, 0, NULL, NULL, NULL, NULL }; klass_mixin = eo_class_new(&class_desc_mixin, NULL, NULL); fail_if(!klass_mixin); klass_simple = eo_class_new(&class_desc_simple, NULL, NULL); fail_if(!klass_simple); klass = eo_class_new(&class_desc, klass_simple, NULL); fail_if(klass); class_desc.type = EO_CLASS_TYPE_REGULAR; klass = eo_class_new(&class_desc, klass_mixin, NULL); fail_if(klass); (void) klass; eo_shutdown(); }
END_TEST START_TEST(eo_inconsistent_mro) { eo_init(); const Eo_Class *klass; const Eo_Class *klass_mixin; const Eo_Class *klass_mixin2; const Eo_Class *klass_mixin3; static const Eo_Class_Description class_desc_simple = { "Simple", EO_CLASS_TYPE_REGULAR, EO_CLASS_DESCRIPTION_OPS(NULL, NULL, 0), NULL, 0, NULL, NULL, NULL, NULL }; static const Eo_Class_Description class_desc_mixin = { "Mixin", EO_CLASS_TYPE_MIXIN, EO_CLASS_DESCRIPTION_OPS(NULL, NULL, 0), NULL, 0, NULL, NULL, NULL, NULL }; static const Eo_Class_Description class_desc_mixin2 = { "Mixin2", EO_CLASS_TYPE_MIXIN, EO_CLASS_DESCRIPTION_OPS(NULL, NULL, 0), NULL, 0, NULL, NULL, NULL, NULL }; static const Eo_Class_Description class_desc_mixin3 = { "Mixin3", EO_CLASS_TYPE_MIXIN, EO_CLASS_DESCRIPTION_OPS(NULL, NULL, 0), NULL, 0, NULL, NULL, NULL, NULL }; klass_mixin = eo_class_new(&class_desc_mixin, NULL, NULL); fail_if(!klass_mixin); klass_mixin2 = eo_class_new(&class_desc_mixin2, klass_mixin, NULL); fail_if(!klass_mixin2); klass_mixin3 = eo_class_new(&class_desc_mixin3, klass_mixin, NULL); fail_if(!klass_mixin3); klass = eo_class_new(&class_desc_simple, EO_BASE_CLASS, klass_mixin, klass_mixin2, NULL); fail_if(klass); klass = eo_class_new(&class_desc_simple, EO_BASE_CLASS, klass_mixin2, klass_mixin, NULL); fail_if(!klass); klass = eo_class_new(&class_desc_simple, EO_BASE_CLASS, klass_mixin2, klass_mixin3, NULL); fail_if(!klass); eo_shutdown(); }