Adjust the bindings to work with Eo2
This commit is contained in:
parent
6408f8d318
commit
cc02387266
|
@ -22,13 +22,12 @@ from efl.eina cimport Eina_Bool, \
|
|||
Eina_Hash, eina_hash_string_superfast_new, eina_hash_add, eina_hash_del, \
|
||||
eina_hash_find, EINA_LOG_DOM_DBG, EINA_LOG_DOM_INFO
|
||||
from efl.c_eo cimport Eo as cEo, eo_init, eo_shutdown, eo_del, eo_do, \
|
||||
eo_class_name_get, eo_class_get, eo_base_data_set, eo_base_data_get, \
|
||||
eo_base_data_del, eo_event_callback_add, eo_event_callback_del, \
|
||||
Eo_Event_Description, \
|
||||
eo_parent_get, EO_EV_DEL, EO_BASE_BASE_ID, eo_base_class_get, \
|
||||
eo_class_name_get, eo_class_get, eo_base_class_get,\
|
||||
eo_key_data_set, eo_key_data_get, eo_key_data_del, \
|
||||
eo_event_callback_add, eo_event_callback_del, EO_EV_DEL, \
|
||||
eo_parent_get, eo_parent_set, Eo_Event_Description, \
|
||||
eo_event_freeze, eo_event_thaw, eo_event_freeze_get, \
|
||||
eo_event_global_freeze, eo_event_global_thaw, eo_event_global_freeze_get, \
|
||||
eo_parent_set
|
||||
eo_event_global_freeze, eo_event_global_thaw, eo_event_global_freeze_get
|
||||
|
||||
cimport efl.eo.enums as enums
|
||||
|
||||
|
@ -55,23 +54,17 @@ init()
|
|||
|
||||
def event_global_freeze_get():
|
||||
cdef int fcount
|
||||
eo_do(
|
||||
<const cEo *>eo_base_class_get(),
|
||||
eo_event_global_freeze_get(&fcount),
|
||||
)
|
||||
fcount = <int>eo_do(<const cEo *>eo_base_class_get(),
|
||||
eo_event_global_freeze_get())
|
||||
return fcount
|
||||
|
||||
def event_global_freeze():
|
||||
eo_do(
|
||||
<const cEo *>eo_base_class_get(),
|
||||
eo_event_global_freeze(),
|
||||
)
|
||||
eo_do(<const cEo *>eo_base_class_get(),
|
||||
eo_event_global_freeze())
|
||||
|
||||
def event_global_thaw():
|
||||
eo_do(
|
||||
<const cEo *>eo_base_class_get(),
|
||||
eo_event_global_thaw()
|
||||
)
|
||||
eo_do(<const cEo *>eo_base_class_get(),
|
||||
eo_event_global_thaw())
|
||||
|
||||
######################################################################
|
||||
|
||||
|
@ -114,7 +107,7 @@ cdef object object_from_instance(cEo *obj):
|
|||
if obj == NULL:
|
||||
return None
|
||||
|
||||
eo_do(obj, eo_base_data_get("python-eo", &data))
|
||||
data = eo_do(obj, eo_key_data_get("python-eo"))
|
||||
if data != NULL:
|
||||
EINA_LOG_DOM_DBG(PY_EFL_EO_LOG_DOMAIN,
|
||||
"Returning a Python object instance for Eo of type %s.", cls_name)
|
||||
|
@ -180,7 +173,8 @@ EO_CALLBACK_CONTINUE = enums.EO_CALLBACK_CONTINUE
|
|||
|
||||
|
||||
cdef Eina_Bool _eo_event_del_cb(void *data, cEo *obj,
|
||||
const Eo_Event_Description *desc, void *event_info) with gil:
|
||||
const Eo_Event_Description *desc,
|
||||
void *event_info) with gil:
|
||||
cdef:
|
||||
Eo self = <Eo>data
|
||||
const char *cls_name = eo_class_name_get(eo_class_get(obj))
|
||||
|
@ -189,7 +183,7 @@ cdef Eina_Bool _eo_event_del_cb(void *data, cEo *obj,
|
|||
|
||||
eo_do(self.obj,
|
||||
eo_event_callback_del(EO_EV_DEL, _eo_event_del_cb, <const void *>self))
|
||||
eo_do(self.obj, eo_base_data_del("python-eo"))
|
||||
eo_do(self.obj, eo_key_data_del("python-eo"))
|
||||
self.obj = NULL
|
||||
Py_DECREF(self)
|
||||
|
||||
|
@ -215,7 +209,7 @@ cdef class Eo(object):
|
|||
def __repr__(self):
|
||||
cdef cEo *parent = NULL
|
||||
if self.obj != NULL:
|
||||
eo_do(self.obj, eo_parent_get(&parent))
|
||||
parent = <cEo *>eo_do(self.obj, eo_parent_get())
|
||||
return ("<%s object (Eo) at %#x (obj=%#x, parent=%#x, refcount=%d)>") % (
|
||||
type(self).__name__,
|
||||
<uintptr_t><void *>self,
|
||||
|
@ -231,7 +225,7 @@ cdef class Eo(object):
|
|||
assert obj != NULL, "Cannot set a NULL object"
|
||||
|
||||
self.obj = obj
|
||||
eo_do(self.obj, eo_base_data_set("python-eo", <void *>self, NULL))
|
||||
eo_do(self.obj, eo_key_data_set("python-eo", <void *>self, NULL))
|
||||
eo_do(self.obj,
|
||||
eo_event_callback_add(EO_EV_DEL, _eo_event_del_cb, <const void *>self))
|
||||
Py_INCREF(self)
|
||||
|
@ -282,8 +276,7 @@ cdef class Eo(object):
|
|||
:rtype: :class:`Eo`
|
||||
|
||||
"""
|
||||
cdef cEo *parent = NULL
|
||||
eo_do(self.obj, eo_parent_get(&parent))
|
||||
cdef cEo *parent = <cEo *>eo_do(self.obj, eo_parent_get())
|
||||
return object_from_instance(parent)
|
||||
|
||||
def event_freeze(self):
|
||||
|
@ -301,6 +294,5 @@ cdef class Eo(object):
|
|||
:rtype: int
|
||||
|
||||
"""
|
||||
cdef int fcount
|
||||
eo_do(self.obj, eo_event_freeze_get(&fcount))
|
||||
cdef int fcount = <int>eo_do(self.obj, eo_event_freeze_get())
|
||||
return fcount
|
||||
|
|
|
@ -28,22 +28,21 @@ cdef extern from "Eo.h":
|
|||
ctypedef struct Eo_Event_Description:
|
||||
const char *name
|
||||
const char *doc
|
||||
Eina_Bool unfreezable
|
||||
|
||||
ctypedef unsigned int Eo_Op
|
||||
|
||||
ctypedef Eo_Op EO_BASE_BASE_ID
|
||||
|
||||
####################################################################
|
||||
# Eo Events
|
||||
#
|
||||
cdef const Eo_Event_Description *EO_EV_DEL
|
||||
|
||||
|
||||
####################################################################
|
||||
# Other typedefs
|
||||
#
|
||||
ctypedef Eina_Bool (*Eo_Event_Cb)(void *data, Eo *obj, const Eo_Event_Description *desc, void *event_info)
|
||||
|
||||
ctypedef void (*eo_base_data_free_func)(void *)
|
||||
ctypedef void (*eo_key_data_free_func)(void *)
|
||||
|
||||
|
||||
####################################################################
|
||||
|
@ -58,32 +57,31 @@ cdef extern from "Eo.h":
|
|||
int eo_ref_get(const Eo *obj)
|
||||
void eo_del(const Eo *obj)
|
||||
|
||||
Eo_Op eo_wref_add(Eo *obj)
|
||||
void eo_wref_add(Eo **wref)
|
||||
|
||||
Eina_Bool eo_do(Eo *obj, ...)
|
||||
Eina_Bool eo_class_do(Eo_Class *cls, ...)
|
||||
void *eo_do(Eo *obj, ...)
|
||||
const Eo_Class *eo_base_class_get()
|
||||
|
||||
Eo_Op eo_base_data_set(const char *key, const void *data, eo_base_data_free_func free_func)
|
||||
Eo_Op eo_base_data_get(const char *key, void **data)
|
||||
Eo_Op eo_base_data_del(const char *key)
|
||||
void eo_key_data_set(const char *key, const void *data, eo_key_data_free_func free_func)
|
||||
void *eo_key_data_get(const char *key)
|
||||
void eo_key_data_del(const char *key)
|
||||
|
||||
const Eo_Class *eo_class_get(const Eo *obj)
|
||||
const char *eo_class_name_get(const Eo_Class *klass)
|
||||
|
||||
Eo_Op eo_parent_set(Eo *parent)
|
||||
Eo_Op eo_parent_get(Eo **parent)
|
||||
void eo_parent_set(Eo *parent)
|
||||
Eo *eo_parent_get()
|
||||
|
||||
Eo_Op eo_event_callback_forwarder_add(const Eo_Event_Description *desc, Eo *new_obj)
|
||||
Eo_Op eo_event_callback_forwarder_del(const Eo_Event_Description *desc, Eo *new_obj)
|
||||
void eo_event_callback_forwarder_add(const Eo_Event_Description *desc, Eo *new_obj)
|
||||
void eo_event_callback_forwarder_del(const Eo_Event_Description *desc, Eo *new_obj)
|
||||
|
||||
Eo_Op eo_event_freeze()
|
||||
Eo_Op eo_event_thaw()
|
||||
Eo_Op eo_event_freeze_get(int *fcount)
|
||||
void eo_event_freeze()
|
||||
void eo_event_thaw()
|
||||
int eo_event_freeze_get()
|
||||
|
||||
Eo_Op eo_event_global_freeze()
|
||||
Eo_Op eo_event_global_thaw()
|
||||
Eo_Op eo_event_global_freeze_get(int *fcount)
|
||||
void eo_event_global_freeze()
|
||||
void eo_event_global_thaw()
|
||||
int eo_event_global_freeze_get()
|
||||
|
||||
Eo_Op eo_event_callback_add(const Eo_Event_Description *desc, Eo_Event_Cb cb, const void *data)
|
||||
Eo_Op eo_event_callback_del(const Eo_Event_Description *desc, Eo_Event_Cb cb, const void *data)
|
||||
void eo_event_callback_add(const Eo_Event_Description *desc, Eo_Event_Cb cb, const void *data)
|
||||
void eo_event_callback_del(const Eo_Event_Description *desc, Eo_Event_Cb cb, const void *data)
|
||||
|
|
|
@ -1,16 +1,14 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
from efl import eo
|
||||
from efl.eo import Eo
|
||||
|
||||
eo.init()
|
||||
import unittest
|
||||
|
||||
import os, unittest
|
||||
|
||||
class TestBasics(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.o = eo.Eo.__new__(eo.Eo)
|
||||
self.o = Eo.__new__(Eo)
|
||||
|
||||
def tearDown(self):
|
||||
self.o.delete()
|
||||
|
|
Loading…
Reference in New Issue