summaryrefslogtreecommitdiffstats
path: root/Mac/Tools/IDE/Wquicktime.py
diff options
context:
space:
mode:
authorJust van Rossum <just@lettererror.com>1999-01-30 22:39:17 (GMT)
committerJust van Rossum <just@lettererror.com>1999-01-30 22:39:17 (GMT)
commit40f9b7bd7cb54645a7c15668b683a8d830ba5219 (patch)
treebaea660d6ef599cd9c4ecc72d009fa75853de577 /Mac/Tools/IDE/Wquicktime.py
parentf59a89b5e34ac7db9e69b02a5b558c7cb49a4d9a (diff)
downloadcpython-40f9b7bd7cb54645a7c15668b683a8d830ba5219.zip
cpython-40f9b7bd7cb54645a7c15668b683a8d830ba5219.tar.gz
cpython-40f9b7bd7cb54645a7c15668b683a8d830ba5219.tar.bz2
First Checked In.
Diffstat (limited to 'Mac/Tools/IDE/Wquicktime.py')
-rw-r--r--Mac/Tools/IDE/Wquicktime.py119
1 files changed, 119 insertions, 0 deletions
diff --git a/Mac/Tools/IDE/Wquicktime.py b/Mac/Tools/IDE/Wquicktime.py
new file mode 100644
index 0000000..a33462a
--- /dev/null
+++ b/Mac/Tools/IDE/Wquicktime.py
@@ -0,0 +1,119 @@
+import os
+import Qd
+import Win
+import Qt, QuickTime
+import W
+import macfs
+import Evt, Events
+
+_moviesinitialized = 0
+
+def EnterMovies():
+ global _moviesinitialized
+ if not _moviesinitialized:
+ Qt.EnterMovies()
+ _moviesinitialized = 1
+
+class Movie(W.Widget):
+
+ def __init__(self, possize):
+ EnterMovies()
+ self.movie = None
+ self.running = 0
+ W.Widget.__init__(self, possize)
+
+ def adjust(self, oldbounds):
+ self.SetPort()
+ Win.InvalRect(oldbounds)
+ Win.InvalRect(self._bounds)
+ self.calcmoviebox()
+
+ def set(self, path_or_fss, start = 0):
+ self.SetPort()
+ if self.movie:
+ #Win.InvalRect(self.movie.GetMovieBox())
+ Qd.PaintRect(self.movie.GetMovieBox())
+ if type(path_or_fss) == type(''):
+ path = path_or_fss
+ fss = macfs.FSSpec(path)
+ else:
+ path = path_or_fss.as_pathname()
+ fss = path_or_fss
+ self.movietitle = os.path.basename(path)
+ movieResRef = Qt.OpenMovieFile(fss, 1)
+ self.movie, dummy, dummy = Qt.NewMovieFromFile(movieResRef, 0, QuickTime.newMovieActive)
+ self.moviebox = self.movie.GetMovieBox()
+ self.calcmoviebox()
+ Qd.ObscureCursor() # XXX does this work at all?
+ self.movie.GoToBeginningOfMovie()
+ if start:
+ self.movie.StartMovie()
+ self.running = 1
+ else:
+ self.running = 0
+ self.movie.MoviesTask(0)
+
+ def get(self):
+ return self.movie
+
+ def getmovietitle(self):
+ return self.movietitle
+
+ def start(self):
+ if self.movie:
+ Qd.ObscureCursor()
+ self.movie.StartMovie()
+ self.running = 1
+
+ def stop(self):
+ if self.movie:
+ self.movie.StopMovie()
+ self.running = 0
+
+ def rewind(self):
+ if self.movie:
+ self.movie.GoToBeginningOfMovie()
+
+ def calcmoviebox(self):
+ if not self.movie:
+ return
+ ml, mt, mr, mb = self.moviebox
+ wl, wt, wr, wb = widgetbox = self._bounds
+ mheight = mb - mt
+ mwidth = mr - ml
+ wheight = wb - wt
+ wwidth = wr - wl
+ if (mheight * 2 < wheight) and (mwidth * 2 < wwidth):
+ scale = 2
+ elif mheight > wheight or mwidth > wwidth:
+ scale = min(float(wheight) / mheight, float(wwidth) / mwidth)
+ else:
+ scale = 1
+ mwidth, mheight = mwidth * scale, mheight * scale
+ ml, mt = wl + (wwidth - mwidth) / 2, wt + (wheight - mheight) / 2
+ mr, mb = ml + mwidth, mt + mheight
+ self.movie.SetMovieBox((ml, mt, mr, mb))
+
+ def idle(self, *args):
+ if self.movie:
+ if not self.movie.IsMovieDone() and self.running:
+ Qd.ObscureCursor()
+ while 1:
+ self.movie.MoviesTask(0)
+ gotone, event = Evt.EventAvail(Events.everyEvent)
+ if gotone or self.movie.IsMovieDone():
+ break
+ elif self.running:
+ box = self.movie.GetMovieBox()
+ self.SetPort()
+ Win.InvalRect(box)
+ self.movie = None
+ self.running = 0
+
+ def draw(self, visRgn = None):
+ if self._visible:
+ Qd.PaintRect(self._bounds)
+ if self.movie:
+ self.movie.UpdateMovie()
+ self.movie.MoviesTask(0)
+