"""MovieInWindow converted to python Jack Jansen, CWI, December 1995 """ import addpack addpack.addpack(':Tools:bgen:qt') addpack.addpack(':Tools:bgen:qd') addpack.addpack(':Tools:bgen:evt') addpack.addpack(':Tools:bgen:win') import Qt import QuickTime import Qd import QuickDraw import Evt import Events import Win import Windows import macfs import sys def main(): # skip the toolbox initializations, already done # XXXX Should use gestalt here to check for quicktime version Qt.EnterMovies() # Get the movie file fss, ok = macfs.StandardGetFile(QuickTime.MovieFileType) if not ok: sys.exit(0) # Open the window bounds = (175, 75, 175+160, 75+120) theWindow = Win.NewCWindow(bounds, fss.as_tuple()[2], 1, 0, -1, 0, 0) Qd.SetPort(theWindow) # XXXX Needed? SetGWorld((CGrafPtr)theWindow, nil) playMovieInWindow(theWindow, fss, theWindow.GetWindowPort().portRect) def playMovieInWindow(theWindow, theFile, movieBox): """Play a movie in a window""" # XXXX Needed? SetGWorld((CGrafPtr)theWindow, nil); # Get the movie theMovie = loadMovie(theFile) # Set where we want it theMovie.SetMovieBox(movieBox) # Start at the beginning theMovie.GoToBeginningOfMovie() # Give a little time to preroll theMovie.MoviesTask(0) # Start playing theMovie.StartMovie() while not theMovie.IsMovieDone() and not Evt.Button(): theMovie.MoviesTask(0) def loadMovie(theFile): """Load a movie given an fsspec. Return the movie object""" movieResRef = Qt.OpenMovieFile(theFile, 1) movie, dummy = Qt.NewMovieFromFile(movieResRef, QuickTime.newMovieActive) return movie if __name__ == '__main__': main()