forked from enlightenment/efl
efl: Hold event (EO API) should implement instance_get
This fixes the following ERR: ERR<23969>:eo /home/jpeg/e/core/efl/src/lib/eo/eo.c:462 _eo_call_resolve() in ../src/lib/efl/interfaces/efl_event.eo.c:5: func 'efl_event_instance_get' (1479) could not be resolved for class 'Efl_Event_Hold'.
This commit is contained in:
parent
ac10a00acc
commit
0e6b6c4828
|
@ -2,6 +2,8 @@
|
|||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#define EFL_EVENT_PROTECTED
|
||||
|
||||
#include <Evas.h>
|
||||
|
||||
#define EFL_INTERNAL_UNSTABLE
|
||||
|
@ -53,4 +55,35 @@ _efl_event_hold_eo_base_constructor(Eo *obj, Efl_Event_Hold_Data *pd)
|
|||
return obj;
|
||||
}
|
||||
|
||||
EOLIAN static Efl_Event *
|
||||
_efl_event_hold_efl_event_instance_get(Eo *klass EINA_UNUSED, void *_pd EINA_UNUSED,
|
||||
Eo_Base *owner, void **priv)
|
||||
{
|
||||
// TODO: Implement a cache. Depends only on how many hold events we trigger.
|
||||
Efl_Event *evt = eo_add(MY_CLASS, owner);
|
||||
if (priv) *priv = eo_data_scope_get(evt, MY_CLASS);
|
||||
return evt;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_event_hold_efl_event_reset(Eo *obj, Efl_Event_Hold_Data *pd)
|
||||
{
|
||||
memset(pd, 0, sizeof(*pd));
|
||||
pd->eo = obj;
|
||||
}
|
||||
|
||||
EOLIAN static Efl_Event *
|
||||
_efl_event_hold_efl_event_dup(Eo *obj, Efl_Event_Hold_Data *pd)
|
||||
{
|
||||
Efl_Event_Hold_Data *ev;
|
||||
Efl_Event *evt = eo_add(EFL_EVENT_HOLD_CLASS, eo_parent_get(obj));
|
||||
ev = eo_data_scope_get(evt, MY_CLASS);
|
||||
if (ev)
|
||||
{
|
||||
memcpy(ev, pd, sizeof(*ev));
|
||||
ev->eo = evt;
|
||||
}
|
||||
return evt;
|
||||
}
|
||||
|
||||
#include "efl_event_hold.eo.c"
|
||||
|
|
|
@ -18,6 +18,9 @@ class Efl.Event.Hold (Eo.Base, Efl.Event.Input)
|
|||
}
|
||||
implements {
|
||||
Eo.Base.constructor;
|
||||
Efl.Event.instance_get;
|
||||
Efl.Event.reset;
|
||||
Efl.Event.dup;
|
||||
Efl.Event.timestamp.get;
|
||||
Efl.Event.timestamp.set;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue