pitivi r1172 - in branches/SOC_2008_BLEWIS: . pitivi/ui



Author: blewis
Date: Wed Jul 16 20:39:41 2008
New Revision: 1172
URL: http://svn.gnome.org/viewvc/pitivi?rev=1172&view=rev

Log:
* pitivi/ui/complextimeline.py:
drag handles specify cursor when being moved
re-enabled resize code in simple timeline
* pitivi/ui/util.py:
make_dragable now has a cursor keyword argument
drag_start/end now do pointer grabs


Modified:
   branches/SOC_2008_BLEWIS/ChangeLog
   branches/SOC_2008_BLEWIS/pitivi/ui/complextimeline.py
   branches/SOC_2008_BLEWIS/pitivi/ui/util.py

Modified: branches/SOC_2008_BLEWIS/pitivi/ui/complextimeline.py
==============================================================================
--- branches/SOC_2008_BLEWIS/pitivi/ui/complextimeline.py	(original)
+++ branches/SOC_2008_BLEWIS/pitivi/ui/complextimeline.py	Wed Jul 16 20:39:41 2008
@@ -163,8 +163,10 @@
         self.elements[w] = element
         self.start_duration_cb(element, element.start, element.duration, w)
         self.add_child(w, (0, 0))
-        #make_dragable(self.canvas, w.l_handle, moved=self._trim_source_start_cb)
-        #make_dragable(self.canvas, w.r_handle, moved=self._trim_source_end_cb)
+        make_dragable(self.canvas, w.l_handle, moved=self._trim_source_start_cb,
+            cursor=LEFT_SIDE)
+        make_dragable(self.canvas, w.r_handle, moved=self._trim_source_end_cb,
+            cursor=RIGHT_SIDE)
 
     def _objectRemoved(self, timeline, element):
         w = self.widgets[element]
@@ -201,11 +203,11 @@
     def _trim_source_end_cb(self, item, pos):
         element = item.element
         cur_start = element.start
-        new_end = max(cur_start, self.pixel_to_ns(pos[0]))
+        new_end = max(cur_start, self.pixel_to_ns(pos[0] + width(item)))
         new_duration = new_end - element.start
-        element.setStartDurationTime(-1, new_duration)
+        element.setStartDurationTime(gst.CLOCK_TIME_NONE, new_duration)
         #FIXME: only for sources
-        element.setMediaStartDurationTime(-1, new_duration)
+        element.setMediaStartDurationTime(gst.CLOCK_TIME_NONE, new_duration)
 
     def _zoom(self):
         """Force resize if zoom ratio changes"""

Modified: branches/SOC_2008_BLEWIS/pitivi/ui/util.py
==============================================================================
--- branches/SOC_2008_BLEWIS/pitivi/ui/util.py	(original)
+++ branches/SOC_2008_BLEWIS/pitivi/ui/util.py	Wed Jul 16 20:39:41 2008
@@ -150,9 +150,11 @@
     return ret
 
 # these are callbacks for implementing "dragable object features
-def drag_start(item, target, event, canvas, start_cb, transform):
+def drag_start(item, target, event, canvas, start_cb, transform, cursor):
     """A callback which starts the drag operation of a dragable 
     object"""
+    mask = gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK | gtk.gdk.POINTER_MOTION_MASK  | gtk.gdk.POINTER_MOTION_HINT_MASK | gtk.gdk.ENTER_NOTIFY_MASK | gtk.gdk.LEAVE_NOTIFY_MASK
+    canvas.pointer_grab(item, mask, cursor, event.time)
     item.set_data("dragging", True)
     if start_cb:
         start_cb(item)
@@ -163,9 +165,10 @@
     item.set_data("pendown", point_difference(pos(item), coords))
     return True
 
-def drag_end(item, target, event, end_cb):
+def drag_end(item, target, event, canvas, end_cb):
     """A callback which ends the drag operation of a dragable object"""
     item.set_data("dragging", False)
+    canvas.pointer_ungrab(item, event.time)
     if end_cb:
         end_cb(item)
     return True
@@ -184,14 +187,14 @@
     return False
 
 def make_dragable(canvas, item, transform=None, start=None, end=None, 
-    moved=set_pos):
+    moved=set_pos, cursor=None):
     """Make item dragable with respect to the canvas. Call this 
     after make_selectable, or it will prevent the latter from working.
     """
     item.set_data("dragging", False)
     dwn = item.connect("button_press_event", drag_start, canvas, start, 
-        transform)
-    up = item.connect("button_release_event", drag_end, end)
+        transform, cursor)
+    up = item.connect("button_release_event", drag_end, canvas, end)
     mv = item.connect("motion_notify_event", drag_move, canvas, transform,
         moved)
     item.set_data("drag_sigids", (up, dwn, mv))



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