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

Reply via email to