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.
This commit is contained in:
Jean-Philippe Andre 2016-07-19 16:09:14 +09:00
parent 0e6b6c4828
commit d5166657e2
8 changed files with 61 additions and 81 deletions

View File

@ -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)
{

View File

@ -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;
}
}

View File

@ -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"

View File

@ -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;

View File

@ -207,36 +207,6 @@ _efl_event_key_efl_event_input_event_flags_get(Eo *obj EINA_UNUSED, Efl_Event_Ke
return pd->event_flags;
}
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)
{

View File

@ -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;

View File

@ -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)
{

View File

@ -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;