davemds pushed a commit to branch master. http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=cc02387266c0561be0ed47df294b01472c6bad61
commit cc02387266c0561be0ed47df294b01472c6bad61 Author: davemds <d...@gurumeditation.it> Date: Mon Apr 14 21:41:38 2014 +0200 Adjust the bindings to work with Eo2 --- efl/eo/efl.eo.pyx | 46 +++++++++++++++++++--------------------------- include/efl.c_eo.pxd | 42 ++++++++++++++++++++---------------------- tests/eo/test_01_basics.py | 6 ++---- 3 files changed, 41 insertions(+), 53 deletions(-) diff --git a/efl/eo/efl.eo.pyx b/efl/eo/efl.eo.pyx index 6f8f27f..74d1eb6 100644 --- a/efl/eo/efl.eo.pyx +++ b/efl/eo/efl.eo.pyx @@ -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 diff --git a/include/efl.c_eo.pxd b/include/efl.c_eo.pxd index 7639c6d..25c4c43 100644 --- a/include/efl.c_eo.pxd +++ b/include/efl.c_eo.pxd @@ -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) diff --git a/tests/eo/test_01_basics.py b/tests/eo/test_01_basics.py index 7e86049..a32a83a 100644 --- a/tests/eo/test_01_basics.py +++ b/tests/eo/test_01_basics.py @@ -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() --