gcompris r3473 - branches/gcomprixogoo/src/anim-activity



Author: bcoudoin
Date: Mon Jul 14 22:38:21 2008
New Revision: 3473
URL: http://svn.gnome.org/viewvc/gcompris?rev=3473&view=rev

Log:
better implementation of the drawing of lines.


Modified:
   branches/gcomprixogoo/src/anim-activity/AnimItem.py

Modified: branches/gcomprixogoo/src/anim-activity/AnimItem.py
==============================================================================
--- branches/gcomprixogoo/src/anim-activity/AnimItem.py	(original)
+++ branches/gcomprixogoo/src/anim-activity/AnimItem.py	Mon Jul 14 22:38:21 2008
@@ -735,17 +735,37 @@
 
     def set_bounds(self, p1, p2):
         (x1, y1, x2, y2) = self.snap_point_to_grid(p1, p2)
-        self.item.set_properties(points = goocanvas.Points([(x1 , y1), (x2 , y2)]))
-        points = [(x1 , y1), (x2 , y2)]
-        print points
+        points = self.item.get_property("points").coords
+        # Create the new line based on p1 (x1, y1), the reference point
+        if points[0][0] == x1 and points[0][1] == y1:
+            self.item.set_properties(points = goocanvas.Points([(x1 , y1), (x2 , y2)]))
+        elif points[1][0] == x1 and points[1][1] == y1:
+            self.item.set_properties(points = goocanvas.Points([(x1 , y1), (x2 , y2)]))
+        elif points[0][0] == x1 and points[1][1] == y1:
+            self.item.set_properties(points = goocanvas.Points([(x1 , y2), (x2 , y1)]))
+        elif points[1][0] == x1 and points[0][1] == y1:
+            self.item.set_properties(points = goocanvas.Points([(x1 , y2), (x2 , y1)]))
+
 
     def get_x1y1(self):
         points = self.item.get_property("points").coords
-        return(points[0][0], points[0][1])
+        return(min(points[0][0], points[1][0]),
+               min(points[0][1], points[1][1]))
 
     def get_x2y2(self):
         points = self.item.get_property("points").coords
-        return(points[1][0], points[1][1])
+        return(max(points[0][0], points[1][0]),
+               max(points[0][1], points[1][1]))
+
+    def get_x1y2(self):
+        points = self.item.get_property("points").coords
+        return(min(points[0][0], points[1][0]),
+               max(points[0][1], points[1][1]))
+
+    def get_x2y1(self):
+        points = self.item.get_property("points").coords
+        return(max(points[0][0], points[1][0]),
+               min(points[0][1], points[1][1]))
 
     # Return the list of properties that have to be saved for
     # this object



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]