Update of /cvsroot/freevo/kaa/evas/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16298/src
Modified Files:
__init__.py evas.c object.c
Log Message:
Add clip support to evas objects.
Index: object.c
===================================================================
RCS file: /cvsroot/freevo/kaa/evas/src/object.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** object.c 13 Jul 2005 18:10:11 -0000 1.2
--- object.c 14 Jul 2005 18:58:43 -0000 1.3
***************
*** 114,119 ****
Evas_Object_PyObject__dealloc(Evas_Object_PyObject * self)
{
! //printf("Evas object dealloc\n");
Evas_Object_PyObject__clear(self);
self->ob_type->tp_free((PyObject*)self);
}
--- 114,120 ----
Evas_Object_PyObject__dealloc(Evas_Object_PyObject * self)
{
! printf("Evas object dealloc: %s\n", evas_object_type_get(self->object));
Evas_Object_PyObject__clear(self);
+ evas_object_del(self->object);
self->ob_type->tp_free((PyObject*)self);
}
***************
*** 274,277 ****
--- 275,333 ----
}
+ PyObject *
+ Evas_Object_PyObject_clip_set(Evas_Object_PyObject * self, PyObject * args)
+ {
+ Evas_Object_PyObject *clip_object;
+
+ if (!PyArg_ParseTuple(args, "O!", &Evas_Object_PyObject_Type,
&clip_object))
+ return NULL;
+
+ printf("Setting clip for object: %x\n", clip_object);
+ evas_object_clip_set(self->object, clip_object->object);
+ return Py_INCREF(Py_None), Py_None;
+ }
+
+ PyObject *
+ Evas_Object_PyObject_clip_get(Evas_Object_PyObject * self, PyObject * args)
+ {
+ Evas_PyObject *evas;
+ Evas_Object *clip_object;
+
+ clip_object = evas_object_clip_get(self->object);
+ if (!clip_object) {
+ Py_INCREF(Py_None);
+ return Py_None;
+ }
+
+ evas = evas_object_data_get(self->object, "evas_pyobject");
+ return (PyObject *)wrap_evas_object(clip_object, evas);
+ }
+
+
+ PyObject *
+ Evas_Object_PyObject_clip_unset(Evas_Object_PyObject * self, PyObject * args)
+ {
+ evas_object_clip_unset(self->object);
+ return Py_INCREF(Py_None), Py_None;
+ }
+
+
+ PyObject *
+ Evas_Object_PyObject_clipees_get(Evas_Object_PyObject * self, PyObject * args)
+ {
+ const Evas_List *clipees, *p;
+ Evas_PyObject *evas;
+ PyObject *list = PyList_New(0);
+
+ evas = evas_object_data_get(self->object, "evas_pyobject");
+ clipees = evas_object_clipees_get(self->object);
+
+ for (p = clipees; p; p = p->next) {
+ Evas_Object *o = (Evas_Object *)p->data;
+ PyList_Append(list, (PyObject *)wrap_evas_object(o, evas));
+ }
+ return list;
+ }
+
/**************************************************************************
* IMAGE objects
***************
*** 293,297 ****
{"name_set", (PyCFunction) Evas_Object_PyObject_name_set, METH_VARARGS},
{"name_get", (PyCFunction) Evas_Object_PyObject_name_get, METH_VARARGS},
!
/* TODO:
raise / lower
--- 349,356 ----
{"name_set", (PyCFunction) Evas_Object_PyObject_name_set, METH_VARARGS},
{"name_get", (PyCFunction) Evas_Object_PyObject_name_get, METH_VARARGS},
! {"clip_set", (PyCFunction) Evas_Object_PyObject_clip_set, METH_VARARGS},
! {"clip_get", (PyCFunction) Evas_Object_PyObject_clip_get, METH_VARARGS},
! {"clip_unset", (PyCFunction) Evas_Object_PyObject_clip_unset,
METH_VARARGS},
! {"clipees_get", (PyCFunction) Evas_Object_PyObject_clipees_get,
METH_VARARGS},
/* TODO:
raise / lower
Index: __init__.py
===================================================================
RCS file: /cvsroot/freevo/kaa/evas/src/__init__.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** __init__.py 13 Jul 2005 18:10:11 -0000 1.2
--- __init__.py 14 Jul 2005 18:58:37 -0000 1.3
***************
*** 44,47 ****
--- 44,62 ----
+ def _wrap_evas_object(obj):
+ if obj == None:
+ return None
+
+ obj_type = obj.type_get()
+ if obj_type == "image":
+ return Image(obj)
+ elif obj_type == "rectangle":
+ return Rectangle(obj)
+ elif obj_type == "text":
+ return Text(obj)
+ else:
+ raise ValueError, "Unable to wrap unknown object type (%s)" % obj_type
+
+
class Object(object):
***************
*** 126,129 ****
--- 141,159 ----
return self._object.name_get()
+ def clip_set(self, clip_object):
+ self._object.clip_set(clip_object._object)
+
+ def clip_get(self):
+ o = self._object.clip_get()
+ return _wrap_evas_object(o)
+
+ def clip_unset(self):
+ self._object.clip_unset()
+
+ def clipees_get(self):
+ list = []
+ for o in self._object.clipees_get():
+ list.append(_wrap_evas_object(o))
+ return list
class Rectangle(Object):
***************
*** 348,361 ****
def object_name_find(self, name):
obj = self._evas.object_name_find(name)
! if not obj:
! return None
!
! obj_type = obj.type_get()
! if obj_type == "image":
! return Image(obj)
! elif obj_type == "Rectangle":
! return Rectangle(obj)
! elif obj_type == "Text":
! return Text(obj)
--- 378,382 ----
def object_name_find(self, name):
obj = self._evas.object_name_find(name)
! return _wrap_evas_object(obj)
Index: evas.c
===================================================================
RCS file: /cvsroot/freevo/kaa/evas/src/evas.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** evas.c 13 Jul 2005 18:10:11 -0000 1.2
--- evas.c 14 Jul 2005 18:58:43 -0000 1.3
***************
*** 322,326 ****
{"image_cache_get", (PyCFunction) Evas_PyObject_image_cache_get,
METH_VARARGS},
-
{"object_rectangle_add", (PyCFunction)
Evas_PyObject_object_rectangle_add, METH_VARARGS},
{"object_image_add", (PyCFunction) Evas_PyObject_object_image_add,
METH_VARARGS},
--- 322,325 ----
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog