1 #ifdef HAVE_CONFIG_H
2 # include <config.h>
3 #endif
4
5 #define EFL_INPUT_EVENT_PROTECTED
6
7 #include "evas_common_private.h"
8 #include "evas_private.h"
9
10 #define MY_CLASS EFL_INPUT_HOLD_CLASS
11
12 EOLIAN static void
_efl_input_hold_input_hold_set(Eo * obj EINA_UNUSED,Efl_Input_Hold_Data * pd,Eina_Bool val)13 _efl_input_hold_input_hold_set(Eo *obj EINA_UNUSED, Efl_Input_Hold_Data *pd, Eina_Bool val)
14 {
15 pd->hold = !!val;
16 }
17
18 EOLIAN static Eina_Bool
_efl_input_hold_input_hold_get(const Eo * obj EINA_UNUSED,Efl_Input_Hold_Data * pd)19 _efl_input_hold_input_hold_get(const Eo *obj EINA_UNUSED, Efl_Input_Hold_Data *pd)
20 {
21 return pd->hold;
22 }
23
24 EOLIAN static void
_efl_input_hold_efl_input_event_device_set(Eo * obj EINA_UNUSED,Efl_Input_Hold_Data * pd,Efl_Input_Device * dev)25 _efl_input_hold_efl_input_event_device_set(Eo *obj EINA_UNUSED, Efl_Input_Hold_Data *pd, Efl_Input_Device *dev)
26 {
27 efl_replace(&pd->device, dev);
28 }
29
30 EOLIAN static Efl_Input_Device *
_efl_input_hold_efl_input_event_device_get(const Eo * obj EINA_UNUSED,Efl_Input_Hold_Data * pd)31 _efl_input_hold_efl_input_event_device_get(const Eo *obj EINA_UNUSED, Efl_Input_Hold_Data *pd)
32 {
33 return pd->device;
34 }
35
36 EOLIAN static double
_efl_input_hold_efl_input_event_timestamp_get(const Eo * obj EINA_UNUSED,Efl_Input_Hold_Data * pd)37 _efl_input_hold_efl_input_event_timestamp_get(const Eo *obj EINA_UNUSED, Efl_Input_Hold_Data *pd)
38 {
39 return pd->timestamp;
40 }
41
42 EOLIAN static void
_efl_input_hold_efl_input_event_timestamp_set(Eo * obj EINA_UNUSED,Efl_Input_Hold_Data * pd,double ms)43 _efl_input_hold_efl_input_event_timestamp_set(Eo *obj EINA_UNUSED, Efl_Input_Hold_Data *pd, double ms)
44 {
45 pd->timestamp = ms;
46 }
47
48 EOLIAN static void
_efl_input_hold_efl_input_event_event_flags_set(Eo * obj EINA_UNUSED,Efl_Input_Hold_Data * pd,Efl_Input_Flags flags)49 _efl_input_hold_efl_input_event_event_flags_set(Eo *obj EINA_UNUSED, Efl_Input_Hold_Data *pd, Efl_Input_Flags flags)
50 {
51 pd->event_flags = flags;
52 }
53
54 EOLIAN static Efl_Input_Flags
_efl_input_hold_efl_input_event_event_flags_get(const Eo * obj EINA_UNUSED,Efl_Input_Hold_Data * pd)55 _efl_input_hold_efl_input_event_event_flags_get(const Eo *obj EINA_UNUSED, Efl_Input_Hold_Data *pd)
56 {
57 return pd->event_flags;
58 }
59
60 EOLIAN static Eo *
_efl_input_hold_efl_object_constructor(Eo * obj,Efl_Input_Hold_Data * pd EINA_UNUSED)61 _efl_input_hold_efl_object_constructor(Eo *obj, Efl_Input_Hold_Data *pd EINA_UNUSED)
62 {
63 obj = efl_constructor(efl_super(obj, MY_CLASS));
64 efl_input_reset(obj);
65 return obj;
66 }
67
68 static inline void
_efl_input_hold_free(Efl_Input_Hold_Data * pd)69 _efl_input_hold_free(Efl_Input_Hold_Data *pd)
70 {
71 efl_unref(pd->device);
72 free(pd->legacy);
73 }
74
75 EOLIAN static void
_efl_input_hold_efl_object_destructor(Eo * obj,Efl_Input_Hold_Data * pd)76 _efl_input_hold_efl_object_destructor(Eo *obj, Efl_Input_Hold_Data *pd)
77 {
78 _efl_input_hold_free(pd);
79 efl_destructor(efl_super(obj, MY_CLASS));
80 }
81
82
83 EOAPI Eo*
efl_input_hold_instance_get(Efl_Object * owner,void ** priv)84 efl_input_hold_instance_get(Efl_Object *owner, void **priv)
85 {
86 Efl_Input_Event *evt = efl_input_event_instance_get(EFL_INPUT_HOLD_CLASS, owner);;
87
88 if (!evt) return NULL;
89 if (priv) *priv = efl_data_scope_get(evt, MY_CLASS);
90 return evt;
91 }
92
93 EOLIAN static void
_efl_input_hold_class_destructor(Efl_Class * klass)94 _efl_input_hold_class_destructor(Efl_Class *klass)
95 {
96 efl_input_event_instance_clean(klass);
97 }
98
99 EOLIAN static void
_efl_input_hold_efl_input_event_reset(Eo * obj,Efl_Input_Hold_Data * pd)100 _efl_input_hold_efl_input_event_reset(Eo *obj, Efl_Input_Hold_Data *pd)
101 {
102 _efl_input_hold_free(pd);
103 memset(pd, 0, sizeof(*pd));
104 pd->eo = obj;
105 }
106
107 EOLIAN static Efl_Input_Event *
_efl_input_hold_efl_duplicate_duplicate(const Eo * obj,Efl_Input_Hold_Data * pd)108 _efl_input_hold_efl_duplicate_duplicate(const Eo *obj, Efl_Input_Hold_Data *pd)
109 {
110 Efl_Input_Hold_Data *ev;
111 Efl_Input_Hold *evt;
112
113 evt = efl_add(MY_CLASS, efl_parent_get(obj),
114 efl_allow_parent_unref_set(efl_added, EINA_TRUE));
115 ev = efl_data_scope_get(evt, MY_CLASS);
116 if (!ev) return NULL;
117
118 memcpy(ev, pd, sizeof(*ev));
119 ev->eo = evt;
120 ev->legacy = NULL;
121 ev->evas_done = 0;
122 ev->device = efl_ref(pd->device);
123
124 return evt;
125 }
126
127 EOLIAN static void *
_efl_input_hold_efl_input_event_legacy_info_get(Eo * obj,Efl_Input_Hold_Data * pd)128 _efl_input_hold_efl_input_event_legacy_info_get(Eo *obj, Efl_Input_Hold_Data *pd)
129 {
130 if (pd->legacy) return pd->legacy;
131 return efl_input_hold_legacy_info_fill(obj, NULL);
132 }
133
134 /* Internal EO APIs */
135
136 #define EFL_INPUT_HOLD_EXTRA_OPS \
137 EFL_OBJECT_OP_FUNC(efl_input_legacy_info_get, _efl_input_hold_efl_input_event_legacy_info_get)
138
139 #include "efl_input_hold.eo.c"
140