Enlightenment CVS committal

Author  : ulisses
Project : e17
Module  : proto/python-efl

Dir     : e17/proto/python-efl/python-edje/edje


Modified Files:
        edje.c_edje.pyx edje.c_edje_object.pxi 


Log Message:
More metaclass work.

 - changed EdjeMeta to EdjeObjectMeta and moved to edje object's .pxi
 - fixed EdjeObjectMeta to inherit from EvasObjectMeta (and not EvasMeta)
 - removed specific function to install metaclass (we just need one)

===================================================================
RCS file: /cvs/e/e17/proto/python-efl/python-edje/edje/edje.c_edje.pyx,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- edje.c_edje.pyx     8 Oct 2007 00:04:08 -0000       1.7
+++ edje.c_edje.pyx     8 Oct 2007 15:15:58 -0000       1.8
@@ -237,38 +237,3 @@
 
 include "edje.c_edje_message.pxi"
 include "edje.c_edje_object.pxi"
-
-
-class EdjeMeta(evas.c_evas.EvasMeta):
-    def __init__(cls, name, bases, dict_):
-        evas.c_evas.EvasMeta.__init__(cls, name, bases, dict_)
-        cls._fetch_callbacks()
-
-    def _fetch_callbacks(cls):
-        if "__edje_signal_callbacks__" in cls.__dict__:
-            return
-
-        cls.__edje_signal_callbacks__ = []
-        cls.__edje_message_callbacks__ = []
-        cls.__edje_text_callbacks__ = []
-
-        sig_append = cls.__edje_signal_callbacks__.append
-        msg_append = cls.__edje_message_callbacks__.append
-        txt_append = cls.__edje_text_callbacks__.append
-
-        for name in dir(cls):
-            val = getattr(cls, name)
-            if not callable(val):
-                continue
-
-            if hasattr(val, "edje_signal_callback"):
-                sig_data = getattr(val, "edje_signal_callback")
-                sig_append((name, sig_data))
-            elif hasattr(val, "edje_message_handler"):
-                msg_append(name)
-            elif hasattr(val, "edje_text_change_callback"):
-                txt_append(name)
-
-
-# installing metaclass for all extension types
-_edje_install_metaclass(EdjeMeta)
===================================================================
RCS file: /cvs/e/e17/proto/python-efl/python-edje/edje/edje.c_edje_object.pxi,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -3 -r1.21 -r1.22
--- edje.c_edje_object.pxi      8 Oct 2007 00:04:08 -0000       1.21
+++ edje.c_edje_object.pxi      8 Oct 2007 15:15:58 -0000       1.22
@@ -727,11 +727,41 @@
         edje_object_signal_emit(self.obj, emission, source)
 
 
-evas.c_evas._object_mapping_register("edje", Edje)
+class EdjeObjectMeta(evas.c_evas.EvasObjectMeta):
+    def __init__(cls, name, bases, dict_):
+        evas.c_evas.EvasObjectMeta.__init__(cls, name, bases, dict_)
+        cls._fetch_callbacks()
+
+    def _fetch_callbacks(cls):
+        if "__edje_signal_callbacks__" in cls.__dict__:
+            return
+
+        cls.__edje_signal_callbacks__ = []
+        cls.__edje_message_callbacks__ = []
+        cls.__edje_text_callbacks__ = []
+
+        sig_append = cls.__edje_signal_callbacks__.append
+        msg_append = cls.__edje_message_callbacks__.append
+        txt_append = cls.__edje_text_callbacks__.append
+
+        for name in dir(cls):
+            val = getattr(cls, name)
+            if not callable(val):
+                continue
+
+            if hasattr(val, "edje_signal_callback"):
+                sig_data = getattr(val, "edje_signal_callback")
+                sig_append((name, sig_data))
+            elif hasattr(val, "edje_message_handler"):
+                msg_append(name)
+            elif hasattr(val, "edje_text_change_callback"):
+                txt_append(name)
 
 
 cdef extern from "Python.h":
     cdef python.PyTypeObject PyEdje_Type # hack to install metaclass
 
-cdef void _edje_install_metaclass(object metaclass):
-    _install_metaclass(&PyEdje_Type, metaclass)
+_install_metaclass(&PyEdje_Type, EdjeObjectMeta)
+
+
+evas.c_evas._object_mapping_register("edje", Edje)



-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to