[pitivi/ges: 170/287] utils: Move the Point class to utils/ui.py



commit 7494904360be6a99aea6f88e5d8b4f052e1d7ed0
Author: Thibault Saunier <thibault saunier collabora com>
Date:   Mon Jan 9 16:36:56 2012 -0300

    utils: Move the Point class to utils/ui.py

 pitivi/ui/Makefile.am       |    1 -
 pitivi/ui/controller.py     |    2 +-
 pitivi/ui/curve.py          |    5 +--
 pitivi/ui/point.py          |   46 -------------------------------------------
 pitivi/ui/timelinecanvas.py |    3 +-
 pitivi/ui/trackobject.py    |    2 +-
 pitivi/utils/ui.py          |   46 +++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 51 insertions(+), 54 deletions(-)
---
diff --git a/pitivi/ui/Makefile.am b/pitivi/ui/Makefile.am
index 285b438..003265d 100644
--- a/pitivi/ui/Makefile.am
+++ b/pitivi/ui/Makefile.am
@@ -13,7 +13,6 @@ ui_PYTHON =			\
 	gstwidget.py		\
 	mainwindow.py		\
 	pathwalker.py		\
-	point.py		\
 	prefs.py		\
 	preset.py		\
 	previewer.py		\
diff --git a/pitivi/ui/controller.py b/pitivi/ui/controller.py
index d1a611b..b3f4c59 100644
--- a/pitivi/ui/controller.py
+++ b/pitivi/ui/controller.py
@@ -21,7 +21,7 @@
 
 import gtk.gdk
 
-from pitivi.ui.point import Point
+from pitivi.utils.ui import Point
 from pitivi.utils.loggable import Loggable
 from pitivi.utils.receiver import receiver, handler
 
diff --git a/pitivi/ui/curve.py b/pitivi/ui/curve.py
index 3499c1a..7fa4549 100644
--- a/pitivi/ui/curve.py
+++ b/pitivi/ui/curve.py
@@ -31,8 +31,7 @@ from pitivi.ui.zoominterface import Zoomable
 import pitivi.ui.previewer as previewer
 from pitivi.ui.view import View
 from pitivi.ui.controller import Controller
-from pitivi.utils.ui import LAYER_HEIGHT_EXPANDED, roundedrec
-import pitivi.ui.point as point
+from pitivi.utils.ui import LAYER_HEIGHT_EXPANDED, roundedrec, Point
 from pitivi.utils.misc import between
 
 
@@ -211,7 +210,7 @@ class Curve(goocanvas.ItemSimple, goocanvas.Item, View, Zoomable):
         x = self.nsToPixel(kf.time - self.element.in_point)
         y = KW_LABEL_Y_OVERFLOW + self._range - (((kf.value -
             interp.lower) / interp.range) * self._range)
-        return point.Point(x + self.bounds.x1, y + self.bounds.y1 + self._min)
+        return Point(x + self.bounds.x1, y + self.bounds.y1 + self._min)
 
     def _controlPoint(self, cr, kf):
         pos = self._getKeyframeXY(kf)
diff --git a/pitivi/ui/timelinecanvas.py b/pitivi/ui/timelinecanvas.py
index 9bef484..3242945 100644
--- a/pitivi/ui/timelinecanvas.py
+++ b/pitivi/ui/timelinecanvas.py
@@ -27,12 +27,11 @@ from pitivi.utils.loggable import Loggable
 from pitivi.utils.receiver import receiver, handler
 from pitivi.ui.track import Track
 from pitivi.ui.trackobject import TrackObject
-from pitivi.ui.point import Point
 from pitivi.ui.zoominterface import Zoomable
 from pitivi.settings import GlobalSettings
 from pitivi.ui.prefs import PreferencesDialog
 from pitivi.utils.ui import TRACK_SPACING, unpack_cairo_pattern, \
-        LAYER_HEIGHT_EXPANDED, LAYER_SPACING
+        LAYER_HEIGHT_EXPANDED, LAYER_SPACING, Point
 from pitivi.ui.controller import Controller
 from pitivi.ui.curve import KW_LABEL_Y_OVERFLOW
 from pitivi.utils.ui import SPACING
diff --git a/pitivi/ui/trackobject.py b/pitivi/ui/trackobject.py
index 416c320..a57b761 100644
--- a/pitivi/ui/trackobject.py
+++ b/pitivi/ui/trackobject.py
@@ -13,7 +13,7 @@ from zoominterface import Zoomable
 from pitivi.utils.ui import LAYER_SPACING, unpack_cairo_pattern, \
     unpack_cairo_gradient, LAYER_HEIGHT_EXPANDED, LAYER_HEIGHT_COLLAPSED
 
-from pitivi.ui.point import Point
+from pitivi.utils.ui import Point
 from pitivi.utils.loggable import Loggable
 from pitivi.settings import GlobalSettings
 from pitivi.utils.receiver import receiver, handler
diff --git a/pitivi/utils/ui.py b/pitivi/utils/ui.py
index c4c5fa3..0131ed6 100644
--- a/pitivi/utils/ui.py
+++ b/pitivi/utils/ui.py
@@ -294,3 +294,49 @@ audio_channels = model((str, int), (
     (_("4 Channels (4.0)"), 4),
     (_("Stereo"), 2),
     (_("Mono"), 1)))
+
+
+# ---------------------- Classes ---------------------------------------------#
+class Point(tuple):
+
+    def __new__(cls, x, y):
+        return tuple.__new__(cls, (x, y))
+
+    def __pow__(self, scalar):
+        """Returns the scalar multiple self, scalar"""
+        return Point(self[0] * scalar, self[1] * scalar)
+
+    def __rpow__(self, scalar):
+        """Returns the scalar multiple of self, scalar"""
+        return self ** scalar
+
+    def __mul__(self, p2):
+        return Point(*(a * b for a, b in izip(self, p2)))
+
+    def __div__(self, other):
+        return Point(*(a / b for a, b in izip(self, p2)))
+
+    def __floordiv__(self, scalar):
+        """Returns the scalar division of self and scalar"""
+        return Point(self[0] / scalar, self[1] / scalar)
+
+    def __add__(self, p2):
+        """Returns the 2d vector sum self + p2"""
+        return Point(*(a + b for a, b in izip(self, p2)))
+
+    def __sub__(self, p2):
+        """Returns the 2-dvector difference self - p2"""
+        return Point(*(a - b for a, b in izip(self, p2)))
+
+    def __abs__(self):
+        return Point(*(abs(a) for a in self))
+
+    @classmethod
+    def from_item_bounds(self, item):
+        bounds = item.get_bounds()
+        return Point(bounds.x1, bounds.y1), Point(bounds.x2, bounds.y2)
+
+    @classmethod
+    def from_widget_bounds(self, widget):
+        x1, y1, x2, y2 = widget.get_bounds()
+        return Point(x1, y1), Point(x2, y2)



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