Add Tizen 2.0 packaging
[profile/ivi/eobj.git] / src / tests / composite_objects / simple.c
1 #ifdef HAVE_CONFIG_H
2 # include <config.h>
3 #endif
4
5 #include "Eo.h"
6 #include "simple.h"
7
8 EAPI Eo_Op SIMPLE_BASE_ID = 0;
9
10 EAPI const Eo_Event_Description _EV_A_CHANGED =
11         EO_EVENT_DESCRIPTION("a,changed", "Called when a has changed.");
12
13 #define MY_CLASS SIMPLE_CLASS
14
15 static void
16 _a_set(Eo *obj, void *class_data, va_list *list)
17 {
18    Simple_Public_Data *pd = class_data;
19    int a;
20    a = va_arg(*list, int);
21    printf("%s %d\n", eo_class_name_get(MY_CLASS), a);
22    pd->a = a;
23
24    eo_do(obj, eo_event_callback_call(EV_A_CHANGED, &pd->a, NULL));
25 }
26
27 static void
28 _a_get(Eo *obj EINA_UNUSED, void *class_data, va_list *list)
29 {
30    const Simple_Public_Data *pd = class_data;
31    int *a;
32    a = va_arg(*list, int *);
33    *a = pd->a;
34 }
35
36 static void
37 _class_constructor(Eo_Class *klass)
38 {
39    const Eo_Op_Func_Description func_desc[] = {
40         EO_OP_FUNC(SIMPLE_ID(SIMPLE_SUB_ID_A_SET), _a_set),
41         EO_OP_FUNC(SIMPLE_ID(SIMPLE_SUB_ID_A_GET), _a_get),
42         EO_OP_FUNC_SENTINEL
43    };
44
45    eo_class_funcs_set(klass, func_desc);
46 }
47
48 static const Eo_Op_Description op_desc[] = {
49      EO_OP_DESCRIPTION(SIMPLE_SUB_ID_A_SET, "Set property A"),
50      EO_OP_DESCRIPTION(SIMPLE_SUB_ID_A_GET, "Get property A"),
51      EO_OP_DESCRIPTION_SENTINEL
52 };
53
54 static const Eo_Event_Description *event_desc[] = {
55      EV_A_CHANGED,
56      NULL
57 };
58
59 static const Eo_Class_Description class_desc = {
60      EO_VERSION,
61      "Simple",
62      EO_CLASS_TYPE_REGULAR,
63      EO_CLASS_DESCRIPTION_OPS(&SIMPLE_BASE_ID, op_desc, SIMPLE_SUB_ID_LAST),
64      event_desc,
65      sizeof(Simple_Public_Data),
66      _class_constructor,
67      NULL
68 };
69
70 EO_DEFINE_CLASS(simple_class_get, &class_desc, EO_BASE_CLASS, NULL);
71