diff options
author | Jean-Philippe Andre <jp.andre@samsung.com> | 2016-08-25 19:20:10 +0900 |
---|---|---|
committer | Jean-Philippe Andre <jp.andre@samsung.com> | 2016-08-26 10:18:01 +0900 |
commit | d504284dd241d2d1713e9e94f7e6efee8e0ee9ac (patch) | |
tree | 484135bc4391f81cd3d243051732fb23e5d992de /src/lib/evas/canvas/efl_input_hold.c | |
parent | 60526528a6cc85050a74d5d45f6502ea5c07d70f (diff) | |
download | efl-d504284dd241d2d1713e9e94f7e6efee8e0ee9ac.tar.gz |
efl: Rename Efl.Event.XX to Efl.Input.XX
This removes:
Efl.Event interface
And renames:
Efl.Event.Input -> Efl.Input.Event
Efl.Event -> Efl.Input.Event (merged)
Efl.Event.Pointer -> Efl.Input.Pointer
Efl.Event.Key -> Efl.Input.Key
Efl.Event.Hold -> Efl.Input.Hold
This also moves some interfaces from efl/ to evas/ where they
belong better.
This allows renaming Eo_Event to Efl_Event.
Diffstat (limited to 'src/lib/evas/canvas/efl_input_hold.c')
-rw-r--r-- | src/lib/evas/canvas/efl_input_hold.c | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/efl_input_hold.c b/src/lib/evas/canvas/efl_input_hold.c new file mode 100644 index 0000000000..4c509dce60 --- /dev/null +++ b/src/lib/evas/canvas/efl_input_hold.c @@ -0,0 +1,118 @@ +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#define EFL_INPUT_EVENT_PROTECTED + +#include <Evas.h> + +#define EFL_INTERNAL_UNSTABLE +#include "interfaces/efl_common_internal.h" + +#define MY_CLASS EFL_INPUT_HOLD_CLASS + +EOLIAN static void +_efl_input_hold_hold_set(Eo *obj EINA_UNUSED, Efl_Input_Hold_Data *pd, Eina_Bool val) +{ + pd->hold = !!val; +} + +EOLIAN static Eina_Bool +_efl_input_hold_hold_get(Eo *obj EINA_UNUSED, Efl_Input_Hold_Data *pd) +{ + return pd->hold; +} + +EOLIAN static void +_efl_input_hold_efl_input_event_device_set(Eo *obj EINA_UNUSED, Efl_Input_Hold_Data *pd, Efl_Input_Device *dev) +{ + pd->device = dev; +} + +EOLIAN static Efl_Input_Device * +_efl_input_hold_efl_input_event_device_get(Eo *obj EINA_UNUSED, Efl_Input_Hold_Data *pd) +{ + return pd->device; +} + +EOLIAN static double +_efl_input_hold_efl_input_event_timestamp_get(Eo *obj EINA_UNUSED, Efl_Input_Hold_Data *pd) +{ + return pd->timestamp; +} + +EOLIAN static void +_efl_input_hold_efl_input_event_timestamp_set(Eo *obj EINA_UNUSED, Efl_Input_Hold_Data *pd, double ms) +{ + pd->timestamp = ms; +} + +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) +{ + pd->event_flags = flags; +} + +EOLIAN static Efl_Input_Flags +_efl_input_hold_efl_input_event_event_flags_get(Eo *obj EINA_UNUSED, Efl_Input_Hold_Data *pd) +{ + return pd->event_flags; +} + +EOLIAN static Eo * +_efl_input_hold_efl_object_constructor(Eo *obj, Efl_Input_Hold_Data *pd EINA_UNUSED) +{ + obj = efl_constructor(efl_super(obj, MY_CLASS)); + efl_input_reset(obj); + return obj; +} + +static inline void +_efl_input_hold_free(Efl_Input_Hold_Data *pd) +{ + free(pd->legacy); +} + +EOLIAN static void +_efl_input_hold_efl_object_destructor(Eo *obj, Efl_Input_Hold_Data *pd) +{ + _efl_input_hold_free(pd); + efl_destructor(efl_super(obj, MY_CLASS)); +} + +EOLIAN static Efl_Input_Event * +_efl_input_hold_efl_input_event_instance_get(Eo *klass EINA_UNUSED, void *_pd EINA_UNUSED, + Efl_Object *owner, void **priv) +{ + // TODO: Implement a cache. Depends only on how many hold events we trigger. + Efl_Input_Event *evt = efl_add(MY_CLASS, owner); + if (priv) *priv = efl_data_scope_get(evt, MY_CLASS); + return evt; +} + +EOLIAN static void +_efl_input_hold_efl_input_event_reset(Eo *obj, Efl_Input_Hold_Data *pd) +{ + _efl_input_hold_free(pd); + memset(pd, 0, sizeof(*pd)); + pd->eo = obj; +} + +EOLIAN static Efl_Input_Event * +_efl_input_hold_efl_input_event_dup(Eo *obj, Efl_Input_Hold_Data *pd) +{ + Efl_Input_Hold_Data *ev; + Efl_Input_Event *evt = efl_add(EFL_INPUT_HOLD_CLASS, efl_parent_get(obj)); + ev = efl_data_scope_get(evt, MY_CLASS); + if (!ev) return NULL; + + ev->eo = evt; + ev->timestamp = pd->timestamp; + ev->data = pd->data; + ev->hold = pd->hold; + ev->device = pd->device; // lacks a proper ref :( + + return evt; +} + +#include "efl_input_hold.eo.c" |