Hello,
Follows a patch with some cleanups in python-evas and python-edje (like using
__new__() in Object_from_instance() so we don't need a dummy class over the
pyrex generated classes).
Cheers,
Caio Marcelo
? init_cleanup.patch
Index: python-edje/edje/__init__.py
===================================================================
RCS file: /var/cvs/e/e17/proto/python-efl/python-edje/edje/__init__.py,v
retrieving revision 1.4
diff -u -r1.4 __init__.py
--- python-edje/edje/__init__.py 19 Jul 2007 16:07:06 -0000 1.4
+++ python-edje/edje/__init__.py 31 Aug 2007 16:51:16 -0000
@@ -51,13 +51,6 @@
MessageStringIntSet = c_edje.MessageStringIntSet
MessageStringFloatSet = c_edje.MessageStringFloatSet
-
-class Edje(c_edje.Edje):
- def __init__(self, canvas, file=None, group=None,
- size=None, pos=None, geometry=None, color=None, name=None):
- c_edje.Edje.__init__(self, canvas)
- self._new_obj()
- self._set_common_params(file=file, group=group, size=size, pos=pos,
- geometry=geometry, color=color, name=name)
+from c_edje import Edje
c_edje.init()
Index: python-edje/edje/edje.c_edje_object.pxi
===================================================================
RCS file: /var/cvs/e/e17/proto/python-efl/python-edje/edje/edje.c_edje_object.pxi,v
retrieving revision 1.13
diff -u -r1.13 edje.c_edje_object.pxi
--- python-edje/edje/edje.c_edje_object.pxi 15 Aug 2007 15:09:09 -0000 1.13
+++ python-edje/edje/edje.c_edje_object.pxi 31 Aug 2007 16:51:16 -0000
@@ -80,10 +80,12 @@
def __new__(self, *a, **ka):
self._signal_callbacks = {}
- def _new_obj(self):
+ def __init__(self, canvas, **kargs):
+ self._evas = canvas
if self.obj == NULL:
self._set_obj(edje_object_add(self._evas.obj))
_register_decorated_callbacks(self)
+ self._set_common_params(**kargs)
def _set_common_params(self, file=None, group=None, size=None, pos=None,
geometry=None, color=None, name=None):
Index: python-evas/evas/__init__.py
===================================================================
RCS file: /var/cvs/e/e17/proto/python-efl/python-evas/evas/__init__.py,v
retrieving revision 1.12
diff -u -r1.12 __init__.py
--- python-evas/evas/__init__.py 15 Aug 2007 14:01:54 -0000 1.12
+++ python-evas/evas/__init__.py 31 Aug 2007 16:51:17 -0000
@@ -75,86 +75,7 @@
EvasLoadError = c_evas.EvasLoadError
Rect = c_evas.Rect
-class Canvas(c_evas.Canvas):
- def __init__(self, method=None, size=None, viewport=None):
- c_evas.Canvas.__init__(self)
- self._new_evas()
- if method:
- self.output_method_set(method)
- if size:
- self.size_set(*size)
- if viewport:
- self.viewport_set(*viewport)
-
-
-class SmartObject(c_evas.SmartObject):
- def __init__(self, canvas, size=None, pos=None, geometry=None, color=None,
- name=None):
- if type(self) is SmartObject or type(self) is c_evas.SmartObject:
- raise TypeError("Must not instantiate SmartObject, but subclasses")
- c_evas.SmartObject.__init__(self, canvas)
- self._new_obj()
- self._set_common_params(size=size, pos=pos, geometry=geometry,
- color=color, name=name)
-
-
-class Rectangle(c_evas.Rectangle):
- def __init__(self, canvas, size=None, pos=None, geometry=None, color=None,
- name=None):
- c_evas.Rectangle.__init__(self, canvas)
- self._new_obj()
- self._set_common_params(size=size, pos=pos, geometry=geometry,
- color=color, name=name)
-
-
-class Line(c_evas.Line):
- def __init__(self, canvas, start=None, end=None, size=None, pos=None,
- geometry=None, color=None, name=None):
- c_evas.Line.__init__(self, canvas)
- self._new_obj()
- self._set_common_params(start=start, end=end, size=size, pos=pos,
- geometry=geometry, color=color, name=name)
-
-
-class Image(c_evas.Image):
- def __init__(self, canvas, file=None, size=None, pos=None, geometry=None,
- color=None, name=None):
- c_evas.Image.__init__(self, canvas)
- self._new_obj()
- self._set_common_params(file=file, size=size, pos=pos,
- geometry=geometry, color=color, name=name)
-
-
-class Gradient(c_evas.Gradient):
- def __init__(self, canvas, size=None, pos=None, geometry=None, color=None,
- name=None):
- c_evas.Gradient.__init__(self, canvas)
- self._new_obj()
- self._set_common_params(size=size, pos=pos, geometry=geometry,
- color=color, name=name)
-
-
-class Polygon(c_evas.Polygon):
- def __init__(self, canvas, points=None, size=None, pos=None, geometry=None,
- color=None, name=None):
- c_evas.Polygon.__init__(self, canvas)
- self._new_obj()
- self._set_common_params(points=points, size=size, pos=pos,
- geometry=geometry, color=color, name=name)
-
-
-class Text(c_evas.Text):
- def __init__(self, canvas, text=None, font=None, font_source=None,
- style=None, shadow_color=None, glow_color=None,
- glow2_color=None, outline_color=None, size=None, pos=None,
- geometry=None, color=None, name=None):
- c_evas.Text.__init__(self, canvas)
- self._new_obj()
- self._set_common_params(text=text, font=font, font_source=font_source,
- style=style, shadow_color=shadow_color,
- glow_color=glow_color, glow2_color=glow2_color,
- outline_color=outline_color, size=size,
- pos=pos, geometry=geometry, color=color,
- name=name)
+from c_evas import Canvas, SmartObject, Rectangle, Line, Image, \
+ Gradient, Polygon, Text
c_evas.init()
Index: python-evas/evas/evas.c_evas.pyx
===================================================================
RCS file: /var/cvs/e/e17/proto/python-efl/python-evas/evas/evas.c_evas.pyx,v
retrieving revision 1.8
diff -u -r1.8 evas.c_evas.pyx
--- python-evas/evas/evas.c_evas.pyx 12 Jul 2007 19:11:53 -0000 1.8
+++ python-evas/evas/evas.c_evas.pyx 31 Aug 2007 16:51:17 -0000
@@ -34,7 +34,7 @@
if evas == NULL:
return None
- c = Canvas()
+ c = Canvas.__new__(Canvas)
c._set_obj(evas)
return c
@@ -84,7 +84,8 @@
t = evas_object_type_get(obj)
c = Canvas_from_instance(evas_object_evas_get(obj))
cls = object_mapping.get(t, Object)
- o = cls(c)
+ o = cls.__new__(cls)
+ o._set_evas(c)
o._set_obj(obj)
return o
Index: python-evas/evas/evas.c_evas_canvas.pxi
===================================================================
RCS file: /var/cvs/e/e17/proto/python-efl/python-evas/evas/evas.c_evas_canvas.pxi,v
retrieving revision 1.9
diff -u -r1.9 evas.c_evas_canvas.pxi
--- python-evas/evas/evas.c_evas_canvas.pxi 1 Aug 2007 13:19:42 -0000 1.9
+++ python-evas/evas/evas.c_evas_canvas.pxi 31 Aug 2007 16:51:17 -0000
@@ -4,6 +4,15 @@
def __new__(self, *a, **ka):
self.obj = NULL
+ def __init__(self, method=None, size=None, viewport=None):
+ self._new_evas()
+ if method:
+ self.output_method_set(method)
+ if size:
+ self.size_set(*size)
+ if viewport:
+ self.viewport_set(*viewport)
+
def __dealloc__(self):
if self.obj:
evas_free(self.obj)
@@ -341,56 +350,20 @@
return evas_event_freeze_get(self.obj)
# Factory
- def Rectangle(self, size=None, pos=None, geometry=None, color=None,
- name=None):
- obj = Rectangle(self)
- obj._new_obj()
- obj._set_common_params(size=size, pos=pos, geometry=geometry,
- color=color, name=name)
- return obj
-
- def Line(self, start=None, end=None, size=None, pos=None,
- geometry=None, color=None, name=None):
- obj = Line(self)
- obj._new_obj()
- obj._set_common_params(start=start, end=end, size=size, pos=pos,
- geometry=geometry, color=color, name=name)
- return obj
-
-
- def Image(self, file=None, size=None, pos=None, geometry=None,
- color=None, name=None):
- obj = Image(self)
- obj._new_obj()
- obj._set_common_params(file=file, size=size, pos=pos,
- geometry=geometry, color=color, name=name)
- return obj
-
- def Gradient(self, size=None, pos=None, geometry=None, color=None,
- name=None):
- obj = Gradient(self)
- obj._new_obj()
- obj._set_common_params(size=size, pos=pos, geometry=geometry,
- color=color, name=name)
- return obj
-
- def Polygon(self, points=None, size=None, pos=None, geometry=None,
- color=None, name=None):
- obj = Polygon(self)
- obj._new_obj()
- obj._set_common_params(points=points, size=size, pos=pos,
- geometry=geometry, color=color, name=name)
- return obj
-
- def Text(self, text=None, font=None, font_source=None, style=None,
- shadow_color=None, glow_color=None, glow2_color=None,
- outline_color=None, size=None, pos=None, geometry=None,
- color=None, name=None):
- obj = Text(self)
- obj._new_obj()
- obj._set_common_params(text=text, font=font, font_source=font_source,
- style=style, shadow_color=shadow_color,
- glow_color=glow_color, glow2_color=glow2_color,
- outline_color=outline_color, size=size, pos=pos,
- geometry=geometry, color=color, name=name)
- return obj
+ def Rectangle(self, **kargs):
+ return Rectangle(self, **kargs)
+
+ def Line(self, **kargs):
+ return Line(self, **kargs)
+
+ def Image(self, **kargs):
+ return Image(self, **kargs)
+
+ def Gradient(self, **kargs):
+ return Gradient(self, **kargs)
+
+ def Polygon(self, **kargs):
+ return Polygon(self, **kargs)
+
+ def Text(self, **kargs):
+ return Text(self, **kargs)
Index: python-evas/evas/evas.c_evas_object.pxi
===================================================================
RCS file: /var/cvs/e/e17/proto/python-efl/python-evas/evas/evas.c_evas_object.pxi,v
retrieving revision 1.10
diff -u -r1.10 evas.c_evas_object.pxi
--- python-evas/evas/evas.c_evas_object.pxi 22 Aug 2007 15:44:16 -0000 1.10
+++ python-evas/evas/evas.c_evas_object.pxi 31 Aug 2007 16:51:17 -0000
@@ -97,6 +97,9 @@
_register_decorated_callbacks(self)
return 1
+ def _set_evas(self, Canvas evas not None):
+ self._evas = evas
+
def __dealloc__(self):
cdef void *data
cdef Evas_Object *obj
Index: python-evas/evas/evas.c_evas_object_gradient.pxi
===================================================================
RCS file: /var/cvs/e/e17/proto/python-efl/python-evas/evas/evas.c_evas_object_gradient.pxi,v
retrieving revision 1.1
diff -u -r1.1 evas.c_evas_object_gradient.pxi
--- python-evas/evas/evas.c_evas_object_gradient.pxi 11 May 2007 01:43:32 -0000 1.1
+++ python-evas/evas/evas.c_evas_object_gradient.pxi 31 Aug 2007 16:51:17 -0000
@@ -1,9 +1,11 @@
# This file is included verbatim by c_evas.pyx
cdef class Gradient(Object):
- def _new_obj(self):
+ def __init__(self, Canvas canvas not None, **kargs):
+ self._evas = canvas
if self.obj == NULL:
self._set_obj(evas_object_gradient_add(self._evas.obj))
+ self._set_common_params(**kargs)
def color_stop_add(self, int r, int g, int b, int a, int delta):
"""Adds a color stop to the given evas gradient object.
Index: python-evas/evas/evas.c_evas_object_image.pxi
===================================================================
RCS file: /var/cvs/e/e17/proto/python-efl/python-evas/evas/evas.c_evas_object_image.pxi,v
retrieving revision 1.4
diff -u -r1.4 evas.c_evas_object_image.pxi
--- python-evas/evas/evas.c_evas_object_image.pxi 6 May 2007 17:28:10 -0000 1.4
+++ python-evas/evas/evas.c_evas_object_image.pxi 31 Aug 2007 16:51:17 -0000
@@ -1,18 +1,18 @@
# This file is included verbatim by c_evas.pyx
cdef class Image(Object):
- def _new_obj(self):
+ def __init__(self, Canvas canvas not None, **kargs):
+ self._evas = canvas
if self.obj == NULL:
self._set_obj(evas_object_image_add(self._evas.obj))
+ self._set_common_params(**kargs)
- def _set_common_params(self, file=None, size=None, pos=None, geometry=None,
- color=None, name=None):
+ def _set_common_params(self, file=None, **kargs):
if file:
if isinstance(file, basestring):
file = (file, None)
self.file_set(*file)
- Object._set_common_params(self, size=size, pos=pos, geometry=geometry,
- color=color, name=name)
+ Object._set_common_params(self, **kargs)
def file_set(self, char *filename, key=None):
cdef char *k
Index: python-evas/evas/evas.c_evas_object_line.pxi
===================================================================
RCS file: /var/cvs/e/e17/proto/python-efl/python-evas/evas/evas.c_evas_object_line.pxi,v
retrieving revision 1.2
diff -u -r1.2 evas.c_evas_object_line.pxi
--- python-evas/evas/evas.c_evas_object_line.pxi 5 May 2007 05:51:47 -0000 1.2
+++ python-evas/evas/evas.c_evas_object_line.pxi 31 Aug 2007 16:51:17 -0000
@@ -1,12 +1,13 @@
# This file is included verbatim by c_evas.pyx
cdef class Line(Object):
- def _new_obj(self):
+ def __init__(self, Canvas canvas not None, **kargs):
+ self._evas = canvas
if self.obj == NULL:
self._set_obj(evas_object_line_add(self._evas.obj))
+ self._set_common_params(**kargs)
- def _set_common_params(self, start=None, end=None, size=None, pos=None,
- geometry=None, color=None, name=None):
+ def _set_common_params(self, start=None, end=None, geometry=None, size=None, pos=None, **kargs):
if start and end:
x1 = start[0]
y1 = start[1]
@@ -39,8 +40,7 @@
self.start_set(*start)
elif end:
self.end_set(*end)
- Object._set_common_params(self, size=size, pos=pos, geometry=geometry,
- color=color, name=name)
+ Object._set_common_params(self, geometry=geometry, size=size, pos=pos, **kargs)
def xy_set(self, int x1, int y1, int x2, int y2):
evas_object_line_xy_set(self.obj, x1, y1, x2, y2)
Index: python-evas/evas/evas.c_evas_object_polygon.pxi
===================================================================
RCS file: /var/cvs/e/e17/proto/python-efl/python-evas/evas/evas.c_evas_object_polygon.pxi,v
retrieving revision 1.1
diff -u -r1.1 evas.c_evas_object_polygon.pxi
--- python-evas/evas/evas.c_evas_object_polygon.pxi 11 May 2007 01:45:07 -0000 1.1
+++ python-evas/evas/evas.c_evas_object_polygon.pxi 31 Aug 2007 16:51:17 -0000
@@ -1,14 +1,14 @@
# This file is included verbatim by c_evas.pyx
cdef class Polygon(Object):
- def _new_obj(self):
+ def __init__(self, Canvas canvas not None, **kargs):
+ self._evas = canvas
if self.obj == NULL:
self._set_obj(evas_object_polygon_add(self._evas.obj))
+ self._set_common_params(**kargs)
- def _set_common_params(self, points=None, size=None, pos=None,
- geometry=None, color=None, name=None):
- Object._set_common_params(self, size=size, pos=pos, geometry=geometry,
- color=color, name=name)
+ def _set_common_params(self, points=None, **kargs):
+ Object._set_common_params(self, **kargs)
if points:
for x, y in points:
self.point_add(x, y)
Index: python-evas/evas/evas.c_evas_object_rectangle.pxi
===================================================================
RCS file: /var/cvs/e/e17/proto/python-efl/python-evas/evas/evas.c_evas_object_rectangle.pxi,v
retrieving revision 1.1
diff -u -r1.1 evas.c_evas_object_rectangle.pxi
--- python-evas/evas/evas.c_evas_object_rectangle.pxi 3 May 2007 14:29:22 -0000 1.1
+++ python-evas/evas/evas.c_evas_object_rectangle.pxi 31 Aug 2007 16:51:17 -0000
@@ -1,6 +1,8 @@
# This file is included verbatim by c_evas.pyx
cdef class Rectangle(Object):
- def _new_obj(self):
+ def __init__(self, Canvas canvas not None, **kargs):
+ self._evas = canvas
if self.obj == NULL:
self._set_obj(evas_object_rectangle_add(self._evas.obj))
+ self._set_common_params(**kargs)
Index: python-evas/evas/evas.c_evas_object_smart.pxi
===================================================================
RCS file: /var/cvs/e/e17/proto/python-efl/python-evas/evas/evas.c_evas_object_smart.pxi,v
retrieving revision 1.13
diff -u -r1.13 evas.c_evas_object_smart.pxi
--- python-evas/evas/evas.c_evas_object_smart.pxi 22 Aug 2007 14:54:13 -0000 1.13
+++ python-evas/evas/evas.c_evas_object_smart.pxi 31 Aug 2007 16:51:17 -0000
@@ -273,11 +273,17 @@
def __dealloc__(self):
self._smart_callbacks = None
- def _new_obj(self):
+ def __init__(self, Canvas canvas not None, size=None, pos=None, geometry=None, color=None,
+ name=None):
cdef Evas_Smart *cls
+ if type(self) is SmartObject:
+ raise TypeError("Must not instantiate SmartObject, but subclasses")
+ self._evas = canvas
if self.obj == NULL:
cls = _smart_class_from_name(self.__class__.__name__)
self._set_obj(evas_object_smart_add(self._evas.obj, cls))
+ self._set_common_params(size=size, pos=pos, geometry=geometry,
+ color=color, name=name)
def member_add(self, Object child):
evas_object_smart_member_add(child.obj, self.obj)
@@ -351,62 +357,32 @@
# Factory
- def Rectangle(self, size=None, pos=None, geometry=None, color=None,
- name=None):
- obj = Rectangle(self.evas)
- obj._new_obj()
- obj._set_common_params(size=size, pos=pos, geometry=geometry,
- color=color, name=name)
+ def Rectangle(self, **kargs):
+ obj = Rectangle(self.evas, **kargs)
self.member_add(obj)
return obj
- def Line(self, start=None, end=None, size=None, pos=None,
- geometry=None, color=None, name=None):
- obj = Line(self.evas)
- obj._new_obj()
- obj._set_common_params(start=start, end=end, size=size, pos=pos,
- geometry=geometry, color=color, name=name)
+ def Line(self, **kargs):
+ obj = Line(self.evas, **kargs)
self.member_add(obj)
return obj
-
- def Image(self, file=None, size=None, pos=None, geometry=None,
- color=None, name=None):
- obj = Image(self.evas)
- obj._new_obj()
- obj._set_common_params(file=file, size=size, pos=pos,
- geometry=geometry, color=color, name=name)
+ def Image(self, **kargs):
+ obj = Image(self.evas, **kargs)
self.member_add(obj)
return obj
- def Gradient(self, size=None, pos=None, geometry=None, color=None,
- name=None):
- obj = Gradient(self.evas)
- obj._new_obj()
- obj._set_common_params(size=size, pos=pos, geometry=geometry,
- color=color, name=name)
+ def Gradient(self, **kargs):
+ obj = Gradient(self.evas, **kargs)
self.member_add(obj)
return obj
- def Polygon(self, points=None, size=None, pos=None, geometry=None,
- color=None, name=None):
- obj = Polygon(self.evas)
- obj._new_obj()
- obj._set_common_params(points=points, size=size, pos=pos,
- geometry=geometry, color=color, name=name)
+ def Polygon(self, **kargs):
+ obj = Polygon(self.evas, **kargs)
self.member_add(obj)
return obj
- def Text(self, text=None, font=None, font_source=None, style=None,
- shadow_color=None, glow_color=None, glow2_color=None,
- outline_color=None, size=None, pos=None, geometry=None,
- color=None, name=None):
- obj = Text(self.evas)
- obj._new_obj()
- obj._set_common_params(text=text, font=font, font_source=font_source,
- style=style, shadow_color=shadow_color,
- glow_color=glow_color, glow2_color=glow2_color,
- outline_color=outline_color, size=size, pos=pos,
- geometry=geometry, color=color, name=name)
+ def Text(self, **kargs):
+ obj = Text(self.evas, **kargs)
self.member_add(obj)
return obj
Index: python-evas/evas/evas.c_evas_object_text.pxi
===================================================================
RCS file: /var/cvs/e/e17/proto/python-efl/python-evas/evas/evas.c_evas_object_text.pxi,v
retrieving revision 1.2
diff -u -r1.2 evas.c_evas_object_text.pxi
--- python-evas/evas/evas.c_evas_object_text.pxi 22 Aug 2007 19:04:55 -0000 1.2
+++ python-evas/evas/evas.c_evas_object_text.pxi 31 Aug 2007 16:51:17 -0000
@@ -1,16 +1,16 @@
# This file is included verbatim by c_evas.pyx
cdef class Text(Object):
- def _new_obj(self):
+ def __init__(self, Canvas canvas not None, **kargs):
+ self._evas = canvas
if self.obj == NULL:
self._set_obj(evas_object_text_add(self._evas.obj))
+ self._set_common_params(**kargs)
def _set_common_params(self, text=None, font=None, font_source=None,
style=None, shadow_color=None, glow_color=None,
- glow2_color=None, outline_color=None, size=None,
- pos=None, geometry=None, color=None, name=None):
- Object._set_common_params(self, size=size, pos=pos, geometry=geometry,
- color=color, name=name)
+ glow2_color=None, outline_color=None, **kargs):
+ Object._set_common_params(self, **kargs)
if text is not None:
self.text_set(text)
if font_source:
-------------------------------------------------------------------------
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-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel