[Pkg-e-commits] [SCM] Python bindings for Evas branch, upstream-vcs, updated. a2d7e40fb9fbbe948f479174a461f735a2f530fb

cmarcelo cmarcelo at alioth.debian.org
Sat May 24 16:31:54 UTC 2008


The following commit has been merged in the upstream-vcs branch:
commit ef40192c08565df2b313a3324d7904607d139be7
Author: cmarcelo <cmarcelo>
Date:   Wed Mar 26 04:36:27 2008 +0000

    Revert "Event classes now keep a copy of values, so it can be stored and used out of the callback."

diff --git a/evas/evas.c_evas_object_events.pxi b/evas/evas.c_evas_object_events.pxi
index dfecc49..017e234 100644
--- a/evas/evas.c_evas_object_events.pxi
+++ b/evas/evas.c_evas_object_events.pxi
@@ -2,24 +2,31 @@
 
 cdef class EventPoint:
     cdef void _set_obj(self, Evas_Point *obj):
-        self.x = obj.x
-        self.y = obj.y
+        self.obj = obj
 
     def __str__(self):
-        return "%s(%d, %d)" % (self.__class__.__name__, self.x, self.y)
+        return "%s(%d, %d)" % (self.__class__.__name__, self.obj.x, self.obj.y)
+
+    property x:
+        def __get__(self):
+            return self.obj.x
+
+    property y:
+        def __get__(self):
+            return self.obj.y
 
     property xy:
         def __get__(self):
-            return (self.x, self.y)
+            return (self.obj.x, self.obj.y)
 
     def __len__(self):
         return 2
 
     def __getitem__(self, int index):
         if index == 0:
-            return self.x
+            return self.obj.x
         elif index == 1:
-            return self.y
+            return self.obj.y
         else:
             raise IndexError("list index out of range")
 
@@ -41,180 +48,235 @@ cdef class EventPosition:
 
 cdef class EventMouseIn:
     cdef void _set_obj(self, void *ptr):
-        cdef Evas_Event_Mouse_In *obj
-        obj = <Evas_Event_Mouse_In*>ptr
-        self.buttons = obj.buttons
-        self.timestamp = obj.timestamp
+        self.obj = <Evas_Event_Mouse_In*>ptr
         self.position = EventPosition()
-        self.position._set_objs(&obj.output, &obj.canvas)
+        self.position._set_objs(&self.obj.output, &self.obj.canvas)
 
     def __str__(self):
         return ("%s(buttons=%d, output=(%d, %d), canvas=(%d, %d), "
                 "timestamp=%d)") % \
-                (self.__class__.__name__, self.buttons,
-                 self.position.output.x, self.position.output.y,
-                 self.position.canvas.x, self.position.canvas.y,
-                 self.timestamp)
+                (self.__class__.__name__, self.obj.buttons,
+                 self.obj.output.x, self.obj.output.y,
+                 self.obj.canvas.x, self.obj.canvas.y,
+                 self.obj.timestamp)
+
+    property buttons:
+        def __get__(self):
+            return self.obj.buttons
+
+    property timestamp:
+        def __get__(self):
+            return self.obj.timestamp
 
 
 cdef class EventMouseOut:
     cdef void _set_obj(self, void *ptr):
-        cdef Evas_Event_Mouse_Out *obj
-        obj = <Evas_Event_Mouse_Out*>ptr
-        self.buttons = obj.buttons
-        self.timestamp = obj.timestamp
+        self.obj = <Evas_Event_Mouse_Out*>ptr
         self.position = EventPosition()
-        self.position._set_objs(&obj.output, &obj.canvas)
+        self.position._set_objs(&self.obj.output, &self.obj.canvas)
 
     def __str__(self):
         return ("%s(buttons=%d, output=(%d, %d), canvas=(%d, %d), "
                 "timestamp=%d)") % \
-                (self.__class__.__name__, self.buttons,
-                 self.position.output.x, self.position.output.y,
-                 self.position.canvas.x, self.position.canvas.y,
-                 self.timestamp)
+                (self.__class__.__name__, self.obj.buttons,
+                 self.obj.output.x, self.obj.output.y,
+                 self.obj.canvas.x, self.obj.canvas.y,
+                 self.obj.timestamp)
+
+    property buttons:
+        def __get__(self):
+            return self.obj.buttons
+
+    property timestamp:
+        def __get__(self):
+            return self.obj.timestamp
 
 
 cdef class EventMouseDown:
     cdef void _set_obj(self, void *ptr):
-        cdef Evas_Event_Mouse_Down *obj
-        obj = <Evas_Event_Mouse_Down*>ptr
-        self.button = obj.button
-        self.timestamp = obj.timestamp
+        self.obj = <Evas_Event_Mouse_Down*>ptr
         self.position = EventPosition()
-        self.position._set_objs(&obj.output, &obj.canvas)
+        self.position._set_objs(&self.obj.output, &self.obj.canvas)
 
     def __str__(self):
         return ("%s(button=%d, output=(%d, %d), canvas=(%d, %d), "
                 "timestamp=%d)") % \
-                (self.__class__.__name__, self.button,
-                 self.position.output.x, self.position.output.y,
-                 self.position.canvas.x, self.position.canvas.y,
-                 self.timestamp)
+                (self.__class__.__name__, self.obj.button,
+                 self.obj.output.x, self.obj.output.y,
+                 self.obj.canvas.x, self.obj.canvas.y,
+                 self.obj.timestamp)
+
+    property button:
+        def __get__(self):
+            return self.obj.button
+
+    property timestamp:
+        def __get__(self):
+            return self.obj.timestamp
 
 
 cdef class EventMouseUp:
     cdef void _set_obj(self, void *ptr):
-        cdef Evas_Event_Mouse_Up *obj
-        obj = <Evas_Event_Mouse_Up*>ptr
-        self.button = obj.button
-        self.timestamp = obj.timestamp
+        self.obj = <Evas_Event_Mouse_Up*>ptr
         self.position = EventPosition()
-        self.position._set_objs(&obj.output, &obj.canvas)
+        self.position._set_objs(&self.obj.output, &self.obj.canvas)
 
     def __str__(self):
         return ("%s(button=%d, output=(%d, %d), canvas=(%d, %d), "
                 "timestamp=%d)") % \
-                (self.__class__.__name__, self.button,
-                 self.position.output.x, self.position.output.y,
-                 self.position.canvas.x, self.position.canvas.y,
-                 self.timestamp)
+                (self.__class__.__name__, self.obj.button,
+                 self.obj.output.x, self.obj.output.y,
+                 self.obj.canvas.x, self.obj.canvas.y,
+                 self.obj.timestamp)
+
+    property button:
+        def __get__(self):
+            return self.obj.button
+
+    property timestamp:
+        def __get__(self):
+            return self.obj.timestamp
 
 
 cdef class EventMouseMove:
     cdef void _set_obj(self, void *ptr):
-        cdef Evas_Event_Mouse_Move *obj
-        obj = <Evas_Event_Mouse_Move*>ptr
-        self.buttons = obj.buttons
-        self.timestamp = obj.timestamp
+        self.obj = <Evas_Event_Mouse_Move*>ptr
         self.position = EventPosition()
-        self.position._set_objs(&obj.cur.output, &obj.cur.canvas)
+        self.position._set_objs(&self.obj.cur.output, &self.obj.cur.canvas)
         self.prev_position = EventPosition()
-        self.prev_position._set_objs(&obj.prev.output,
-                                     &obj.prev.canvas)
+        self.prev_position._set_objs(&self.obj.prev.output,
+                                     &self.obj.prev.canvas)
 
     def __str__(self):
         return ("%s(buttons=%d, output=(%d, %d), canvas=(%d, %d), "
                 "prev_output=(%d, %d), prev_canvas=(%d, %d), timestamp=%d)") %\
-                (self.__class__.__name__, self.buttons,
-                 self.position.output.x, self.position.output.y,
-                 self.position.canvas.x, self.position.canvas.y,
-                 self.prev_position.output.x, self.prev_position.output.y,
-                 self.prev_position.canvas.x, self.prev_position.canvas.y,
-                 self.timestamp)
+                (self.__class__.__name__, self.obj.buttons,
+                 self.obj.cur.output.x, self.obj.cur.output.y,
+                 self.obj.cur.canvas.x, self.obj.cur.canvas.y,
+                 self.obj.prev.output.x, self.obj.prev.output.y,
+                 self.obj.prev.canvas.x, self.obj.prev.canvas.y,
+                 self.obj.timestamp)
+
+    property buttons:
+        def __get__(self):
+            return self.obj.buttons
+
+    property timestamp:
+        def __get__(self):
+            return self.obj.timestamp
 
 
 cdef class EventMouseWheel:
     cdef void _set_obj(self, void *ptr):
-        cdef Evas_Event_Mouse_Wheel *obj
-        obj = <Evas_Event_Mouse_Wheel*>ptr
-        self.z = obj.z
-        self.direction = obj.direction
-        self.timestamp = obj.timestamp
+        self.obj = <Evas_Event_Mouse_Wheel*>ptr
         self.position = EventPosition()
-        self.position._set_objs(&obj.output, &obj.canvas)
+        self.position._set_objs(&self.obj.output, &self.obj.canvas)
 
     def __str__(self):
         return ("%s(direction=%d, z=%d, output=(%d, %d), "
                 "canvas=(%d, %d), timestamp=%d)") % \
-                (self.__class__.__name__, self.direction, self.z,
-                 self.position.output.x, self.position.output.y,
-                 self.position.canvas.x, self.position.canvas.y,
-                 self.timestamp)
+                (self.__class__.__name__, self.obj.direction, self.obj.z,
+                 self.obj.output.x, self.obj.output.y,
+                 self.obj.canvas.x, self.obj.canvas.y,
+                 self.obj.timestamp)
 
+    property timestamp:
+        def __get__(self):
+            return self.obj.timestamp
 
-cdef class EventKeyDown:
-    cdef void _set_obj(self, void *ptr):
-        cdef Evas_Event_Key_Down *obj
-        obj = <Evas_Event_Key_Down*>ptr
-        self.timestamp = obj.timestamp
-        if obj.keyname != NULL:
-            self.keyname = obj.keyname
-        else:
-            self.keyname = None
+    property direction:
+        def __get__(self):
+            return self.obj.direction
 
-        if obj.key != NULL:
-            self.key = obj.key
-        else:
-            self.key = None
+    property z:
+        def __get__(self):
+            return self.obj.z
 
-        if obj.string != NULL:
-            self.string = obj.string
-        else:
-            self.string = None
 
-        if obj.compose != NULL:
-            self.compose = obj.compose
-        else:
-            self.compose = None
+cdef class EventKeyDown:
+    cdef void _set_obj(self, void *ptr):
+        self.obj = <Evas_Event_Key_Down*>ptr
 
     def __str__(self):
         return ("%s(keyname=%r, key=%r, string=%r, compose=%r, "
                 "timestamp=%d)") % \
                 (self.__class__.__name__, self.keyname,
                  self.key, self.string, self.compose,
-                 self.timestamp)
+                 self.obj.timestamp)
 
+    property keyname:
+        def __get__(self):
+            if self.obj.keyname == NULL:
+                return None
+            else:
+                return self.obj.keyname
 
-cdef class EventKeyUp:
-    cdef void _set_obj(self, void *ptr):
-        cdef Evas_Event_Key_Up *obj
-        obj = <Evas_Event_Key_Up*>ptr
-        self.timestamp = obj.timestamp
-        if obj.keyname != NULL:
-            self.keyname = obj.keyname
-        else:
-            self.keyname = None
+    property key:
+        def __get__(self):
+            if self.obj.key == NULL:
+                return None
+            else:
+                return self.obj.key
 
-        if obj.key != NULL:
-            self.key = obj.key
-        else:
-            self.key = None
+    property string:
+        def __get__(self):
+            if self.obj.string == NULL:
+                return None
+            else:
+                return self.obj.string
 
-        if obj.string != NULL:
-            self.string = obj.string
-        else:
-            self.string = None
+    property compose:
+        def __get__(self):
+            if self.obj.compose == NULL:
+                return None
+            else:
+                return self.obj.compose
 
-        if obj.compose != NULL:
-            self.compose = obj.compose
-        else:
-            self.compose = None
+    property timestamp:
+        def __get__(self):
+            return self.obj.timestamp
+
+
+cdef class EventKeyUp:
+    cdef void _set_obj(self, void *ptr):
+        self.obj = <Evas_Event_Key_Up*>ptr
 
     def __str__(self):
         return ("%s(keyname=%r, key=%r, string=%r, compose=%r, "
                 "timestamp=%d)") % \
                 (self.__class__.__name__, self.keyname,
                  self.key, self.string, self.compose,
-                 self.timestamp)
+                 self.obj.timestamp)
+
+    property keyname:
+        def __get__(self):
+            if self.obj.keyname == NULL:
+                return None
+            else:
+                return self.obj.keyname
+
+    property key:
+        def __get__(self):
+            if self.obj.key == NULL:
+                return None
+            else:
+                return self.obj.key
+
+    property string:
+        def __get__(self):
+            if self.obj.string == NULL:
+                return None
+            else:
+                return self.obj.string
+
+    property compose:
+        def __get__(self):
+            if self.obj.compose == NULL:
+                return None
+            else:
+                return self.obj.compose
+
+    property timestamp:
+        def __get__(self):
+            return self.obj.timestamp
 
diff --git a/include/evas/c_evas.pxd b/include/evas/c_evas.pxd
index 13efae5..5a3c08d 100644
--- a/include/evas/c_evas.pxd
+++ b/include/evas/c_evas.pxd
@@ -548,8 +548,7 @@ cdef public class Rect [object PyEvasRect, type PyEvasRect_Type]:
 
 
 cdef class EventPoint:
-    cdef readonly int x
-    cdef readonly int y
+    cdef Evas_Point *obj
 
     cdef void _set_obj(self, Evas_Point *obj)
 
@@ -562,71 +561,56 @@ cdef class EventPosition:
 
 
 cdef class EventMouseIn:
+    cdef Evas_Event_Mouse_In *obj
     cdef readonly EventPosition position
-    cdef readonly int buttons
-    cdef readonly unsigned timestamp
 
     cdef void _set_obj(self, void *ptr)
 
 
 cdef class EventMouseOut:
+    cdef Evas_Event_Mouse_Out *obj
     cdef readonly EventPosition position
-    cdef readonly int buttons
-    cdef readonly unsigned timestamp
 
     cdef void _set_obj(self, void *ptr)
 
 
 cdef class EventMouseDown:
+    cdef Evas_Event_Mouse_Down *obj
     cdef readonly EventPosition position
-    cdef readonly int button
-    cdef readonly unsigned timestamp
 
     cdef void _set_obj(self, void *ptr)
 
 
 cdef class EventMouseUp:
+    cdef Evas_Event_Mouse_Up *obj
     cdef readonly EventPosition position
-    cdef readonly int button
-    cdef readonly unsigned timestamp
 
     cdef void _set_obj(self, void *ptr)
 
 
 cdef class EventMouseMove:
+    cdef Evas_Event_Mouse_Move *obj
     cdef readonly EventPosition position
     cdef readonly EventPosition prev_position
-    cdef readonly int buttons
-    cdef readonly unsigned timestamp
 
     cdef void _set_obj(self, void *ptr)
 
 
 cdef class EventMouseWheel:
+    cdef Evas_Event_Mouse_Wheel *obj
     cdef readonly EventPosition position
-    cdef readonly int direction
-    cdef readonly int z
-    cdef readonly unsigned timestamp
 
     cdef void _set_obj(self, void *ptr)
 
 
 cdef class EventKeyDown:
-    cdef readonly object keyname
-    cdef readonly object key
-    cdef readonly object string
-    cdef readonly object compose
-    cdef readonly unsigned timestamp
+    cdef Evas_Event_Key_Down *obj
 
     cdef void _set_obj(self, void *ptr)
 
 
 cdef class EventKeyUp:
-    cdef readonly object keyname
-    cdef readonly object key
-    cdef readonly object string
-    cdef readonly object compose
-    cdef readonly unsigned timestamp
+    cdef Evas_Event_Key_Up *obj
 
     cdef void _set_obj(self, void *ptr)
 

-- 
Python bindings for Evas



More information about the Pkg-e-commits mailing list