From d5166657e2e864408e52c68f231fdc33358ef380 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Tue, 19 Jul 2016 16:09:14 +0900 Subject: [PATCH] efl: Add support for efl_event_flags() to hold events This fixes the following ERR message: ERR<30400>:eo /home/jpeg/e/core/efl/src/lib/eo/eo.c:462 _eo_call_resolve() in ../src/lib/evas/canvas/efl_event_input.eo.c:3: func 'efl_event_flags_get' (1483) could not be resolved for class 'Efl_Event_Hold'. This is an EO-API only fix. --- src/lib/evas/canvas/efl_event_hold.c | 17 ++++++++++++-- src/lib/evas/canvas/efl_event_hold.eo | 12 +++++----- src/lib/evas/canvas/efl_event_input.c | 38 +++++++++++++++++++++++++++++++- src/lib/evas/canvas/efl_event_input.eo | 7 +++--- src/lib/evas/canvas/efl_event_key.c | 30 ------------------------- src/lib/evas/canvas/efl_event_key.eo | 4 ---- src/lib/evas/canvas/efl_event_pointer.c | 30 ------------------------- src/lib/evas/canvas/efl_event_pointer.eo | 4 ---- 8 files changed, 61 insertions(+), 81 deletions(-) diff --git a/src/lib/evas/canvas/efl_event_hold.c b/src/lib/evas/canvas/efl_event_hold.c index 4f169da..700d486 100644 --- a/src/lib/evas/canvas/efl_event_hold.c +++ b/src/lib/evas/canvas/efl_event_hold.c @@ -24,13 +24,13 @@ _efl_event_hold_hold_get(Eo *obj EINA_UNUSED, Efl_Event_Hold_Data *pd) } EOLIAN static void -_efl_event_hold_device_set(Eo *obj EINA_UNUSED, Efl_Event_Hold_Data *pd, Efl_Input_Device *dev) +_efl_event_hold_efl_event_input_device_set(Eo *obj EINA_UNUSED, Efl_Event_Hold_Data *pd, Efl_Input_Device *dev) { pd->device = dev; } EOLIAN static Efl_Input_Device * -_efl_event_hold_device_get(Eo *obj EINA_UNUSED, Efl_Event_Hold_Data *pd) +_efl_event_hold_efl_event_input_device_get(Eo *obj EINA_UNUSED, Efl_Event_Hold_Data *pd) { return pd->device; } @@ -47,6 +47,19 @@ _efl_event_hold_efl_event_timestamp_set(Eo *obj EINA_UNUSED, Efl_Event_Hold_Data pd->timestamp = ms; } +EOLIAN static void +_efl_event_hold_efl_event_input_event_flags_set(Eo *obj EINA_UNUSED, Efl_Event_Hold_Data *pd EINA_UNUSED, Efl_Event_Flags flags EINA_UNUSED) +{ + // ignore +} + +EOLIAN static Efl_Event_Flags +_efl_event_hold_efl_event_input_event_flags_get(Eo *obj EINA_UNUSED, Efl_Event_Hold_Data *pd EINA_UNUSED) +{ + // ignore + return 0; +} + EOLIAN static Eo * _efl_event_hold_eo_base_constructor(Eo *obj, Efl_Event_Hold_Data *pd) { diff --git a/src/lib/evas/canvas/efl_event_hold.eo b/src/lib/evas/canvas/efl_event_hold.eo index 4380c9f..07e8fcf 100644 --- a/src/lib/evas/canvas/efl_event_hold.eo +++ b/src/lib/evas/canvas/efl_event_hold.eo @@ -8,13 +8,6 @@ class Efl.Event.Hold (Eo.Base, Efl.Event.Input) val: bool; } } - @property device { - [[Input device that is now on hold or resumed.]] - values { - dev: Efl.Input.Device; - } - } - /* FIXME: does not expose event_flags - is it necessary? */ } implements { Eo.Base.constructor; @@ -23,5 +16,10 @@ class Efl.Event.Hold (Eo.Base, Efl.Event.Input) Efl.Event.dup; Efl.Event.timestamp.get; Efl.Event.timestamp.set; + //Efl.Event.Input.fake.get; + Efl.Event.Input.event_flags.set; + Efl.Event.Input.event_flags.get; + Efl.Event.Input.device.set; + Efl.Event.Input.device.get; } } diff --git a/src/lib/evas/canvas/efl_event_input.c b/src/lib/evas/canvas/efl_event_input.c index cc004f7..a4c313d 100644 --- a/src/lib/evas/canvas/efl_event_input.c +++ b/src/lib/evas/canvas/efl_event_input.c @@ -7,6 +7,42 @@ #define EFL_INTERNAL_UNSTABLE #include "interfaces/efl_common_internal.h" -#define MY_CLASS EFL_EVENT_INPUT_CLASS +#define MY_CLASS EFL_EVENT_INPUT_MIXIN + +EOLIAN static void +_efl_event_input_processed_set(Eo *obj, void *pd EINA_UNUSED, Eina_Bool val) +{ + if (val) + efl_event_flags_set(obj, efl_event_flags_get(obj) | EFL_EVENT_FLAGS_PROCESSED); + else + efl_event_flags_set(obj, efl_event_flags_get(obj) & ~EFL_EVENT_FLAGS_PROCESSED); +} + +EOLIAN static Eina_Bool +_efl_event_input_processed_get(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED) +{ + return !!(efl_event_flags_get(obj) & EFL_EVENT_FLAGS_PROCESSED); +} + +EOLIAN static void +_efl_event_input_scrolling_set(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED, Eina_Bool val) +{ + if (val) + efl_event_flags_set(obj, efl_event_flags_get(obj) | EFL_EVENT_FLAGS_SCROLLING); + else + efl_event_flags_set(obj, efl_event_flags_get(obj) & ~EFL_EVENT_FLAGS_SCROLLING); +} + +EOLIAN static Eina_Bool +_efl_event_input_scrolling_get(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED) +{ + return !!(efl_event_flags_get(obj) & EFL_EVENT_FLAGS_SCROLLING); +} + +EOLIAN static Eina_Bool +_efl_event_input_fake_get(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED) +{ + return EINA_FALSE; +} #include "efl_event_input.eo.c" diff --git a/src/lib/evas/canvas/efl_event_input.eo b/src/lib/evas/canvas/efl_event_input.eo index 6e2e6cc..b23fdfa 100644 --- a/src/lib/evas/canvas/efl_event_input.eo +++ b/src/lib/evas/canvas/efl_event_input.eo @@ -1,16 +1,17 @@ import efl_event_types; -interface Efl.Event.Input (Efl.Event) +mixin Efl.Event.Input (Efl.Event) { eo_prefix: efl_event; + data: null; methods { - @property device { + @property device @virtual_pure { [[Input device that originated this event.]] values { dev: Efl.Input.Device; } } - @property event_flags { + @property event_flags @virtual_pure { [[Extra flags for this event, may be changed by the user.]] values { flags: Efl.Event.Flags; diff --git a/src/lib/evas/canvas/efl_event_key.c b/src/lib/evas/canvas/efl_event_key.c index 421e557..bce7c7c 100644 --- a/src/lib/evas/canvas/efl_event_key.c +++ b/src/lib/evas/canvas/efl_event_key.c @@ -208,36 +208,6 @@ _efl_event_key_efl_event_input_event_flags_get(Eo *obj EINA_UNUSED, Efl_Event_Ke } EOLIAN static void -_efl_event_key_efl_event_input_processed_set(Eo *obj EINA_UNUSED, Efl_Event_Key_Data *pd, Eina_Bool val) -{ - if (val) - pd->event_flags |= EFL_EVENT_FLAGS_PROCESSED; - else - pd->event_flags &= ~EFL_EVENT_FLAGS_PROCESSED; -} - -EOLIAN static Eina_Bool -_efl_event_key_efl_event_input_processed_get(Eo *obj EINA_UNUSED, Efl_Event_Key_Data *pd) -{ - return !!(pd->event_flags & EFL_EVENT_FLAGS_PROCESSED); -} - -EOLIAN static void -_efl_event_key_efl_event_input_scrolling_set(Eo *obj EINA_UNUSED, Efl_Event_Key_Data *pd, Eina_Bool val) -{ - if (val) - pd->event_flags |= EFL_EVENT_FLAGS_SCROLLING; - else - pd->event_flags &= ~EFL_EVENT_FLAGS_SCROLLING; -} - -EOLIAN static Eina_Bool -_efl_event_key_efl_event_input_scrolling_get(Eo *obj EINA_UNUSED, Efl_Event_Key_Data *pd) -{ - return !!(pd->event_flags & EFL_EVENT_FLAGS_SCROLLING); -} - -EOLIAN static void _efl_event_key_efl_event_input_device_set(Eo *obj EINA_UNUSED, Efl_Event_Key_Data *pd, Efl_Input_Device *dev) { pd->device = dev; diff --git a/src/lib/evas/canvas/efl_event_key.eo b/src/lib/evas/canvas/efl_event_key.eo index 9ca7515..897dd46 100644 --- a/src/lib/evas/canvas/efl_event_key.eo +++ b/src/lib/evas/canvas/efl_event_key.eo @@ -62,10 +62,6 @@ class Efl.Event.Key (Eo.Base, Efl.Event, Efl.Input.State, Efl.Event.Input) Efl.Event.Input.fake.get; Efl.Event.Input.event_flags.set; Efl.Event.Input.event_flags.get; - Efl.Event.Input.processed.set; - Efl.Event.Input.processed.get; - Efl.Event.Input.scrolling.set; - Efl.Event.Input.scrolling.get; Efl.Event.Input.device.set; Efl.Event.Input.device.get; Efl.Input.State.modifier_enabled.get; diff --git a/src/lib/evas/canvas/efl_event_pointer.c b/src/lib/evas/canvas/efl_event_pointer.c index db1d662..637f19f 100644 --- a/src/lib/evas/canvas/efl_event_pointer.c +++ b/src/lib/evas/canvas/efl_event_pointer.c @@ -377,36 +377,6 @@ _efl_event_pointer_triple_click_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data return !!(pd->button_flags & EFL_POINTER_FLAGS_TRIPLE_CLICK); } -EOLIAN static void -_efl_event_pointer_efl_event_input_processed_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, Eina_Bool val) -{ - if (val) - pd->event_flags |= EFL_EVENT_FLAGS_PROCESSED; - else - pd->event_flags &= ~EFL_EVENT_FLAGS_PROCESSED; -} - -EOLIAN static Eina_Bool -_efl_event_pointer_efl_event_input_processed_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd) -{ - return !!(pd->event_flags & EFL_EVENT_FLAGS_PROCESSED); -} - -EOLIAN static void -_efl_event_pointer_efl_event_input_scrolling_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, Eina_Bool val) -{ - if (val) - pd->event_flags |= EFL_EVENT_FLAGS_SCROLLING; - else - pd->event_flags &= ~EFL_EVENT_FLAGS_SCROLLING; -} - -EOLIAN static Eina_Bool -_efl_event_pointer_efl_event_input_scrolling_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd) -{ - return !!(pd->event_flags & EFL_EVENT_FLAGS_SCROLLING); -} - EOLIAN static Eina_Bool _efl_event_pointer_efl_event_input_fake_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd) { diff --git a/src/lib/evas/canvas/efl_event_pointer.eo b/src/lib/evas/canvas/efl_event_pointer.eo index 2a9e7c8..1fbac08 100644 --- a/src/lib/evas/canvas/efl_event_pointer.eo +++ b/src/lib/evas/canvas/efl_event_pointer.eo @@ -137,10 +137,6 @@ class Efl.Event.Pointer (Eo.Base, Efl.Event, Efl.Input.State, Efl.Event.Input) Efl.Event.Input.fake.get; Efl.Event.Input.event_flags.set; Efl.Event.Input.event_flags.get; - Efl.Event.Input.processed.set; - Efl.Event.Input.processed.get; - Efl.Event.Input.scrolling.set; - Efl.Event.Input.scrolling.get; Efl.Event.Input.device.set; Efl.Event.Input.device.get; Efl.Input.State.modifier_enabled.get; -- 2.7.4