Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
Relevant replacement documents include:
Completed Lab/Edit.c
// Play Movie with Controller Sample |
// Based on QTShell |
// WWDC 2000 |
#include "ComApplication.h" |
#include "ComFramework.h" |
#include "MacFramework.h" |
////////// |
// |
// HandleEditMenuItem |
// Perform the specified edit operation on the specified window. |
// |
////////// |
void HandleEditMenuItem (WindowReference theWindow, UInt16 theMenuItem) |
{ |
WindowObject myWindowObject = NULL; |
MovieController myMC = NULL; |
Movie myEditMovie = NULL; // the movie created by some editing operations |
// give the application-specific code a chance to intercept the menu item selection |
if (QTApp_HandleMenu(theMenuItem)) |
return; |
myWindowObject = QTFrame_GetWindowObjectFromWindow(theWindow); |
myMC = QTFrame_GetMCFromWindow(theWindow); |
// make sure we have a valid movie controller and a valid window object |
if ((myMC == NULL) || (myWindowObject == NULL)) |
return; |
switch (theMenuItem) { |
case IDM_EDITUNDO: |
MCUndo(myMC); |
(**myWindowObject).fIsDirty = true; |
break; |
case IDM_EDITCUT: |
myEditMovie = MCCut(myMC); |
(**myWindowObject).fIsDirty = true; |
break; |
case IDM_EDITCOPY: |
myEditMovie = MCCopy(myMC); |
break; |
case IDM_EDITPASTE: |
MCPaste(myMC, NULL); |
(**myWindowObject).fIsDirty = true; |
break; |
case IDM_EDITCLEAR: |
MCClear(myMC); |
(**myWindowObject).fIsDirty = true; |
break; |
case IDM_EDITSELECTALL: |
SelectAllMovie(myMC); |
break; |
case IDM_EDITSELECTNONE: |
SelectNoneMovie(myMC); |
break; |
default: |
break; |
} // switch (theMenuItem) |
// place any cut or copied movie segment onto the scrap |
if (myEditMovie != NULL) { |
PutMovieOnScrap(myEditMovie, 0L); |
DisposeMovie(myEditMovie); |
} |
} |
////////// |
// |
// SelectAllMovie |
// Select the entire movie associated with the specified movie controller. |
// |
////////// |
OSErr SelectAllMovie (MovieController theMC) |
{ |
TimeRecord myTimeRecord; |
Movie myMovie = NULL; |
ComponentResult myErr = noErr; |
if (theMC == NULL) |
return(paramErr); |
myMovie = MCGetMovie(theMC); |
if (myMovie == NULL) |
return(paramErr); |
myTimeRecord.value.hi = 0; |
myTimeRecord.value.lo = 0; |
myTimeRecord.base = 0; |
myTimeRecord.scale = GetMovieTimeScale(myMovie); |
myErr = MCDoAction(theMC, mcActionSetSelectionBegin, &myTimeRecord); |
if (myErr != noErr) |
return((OSErr)myErr); |
myTimeRecord.value.hi = 0; |
myTimeRecord.value.lo = GetMovieDuration(myMovie); |
myTimeRecord.base = 0; |
myTimeRecord.scale = GetMovieTimeScale(myMovie); |
myErr = MCDoAction(theMC, mcActionSetSelectionDuration, &myTimeRecord); |
return((OSErr)myErr); |
} |
////////// |
// |
// SelectNoneMovie |
// Select none of the movie associated with the specified movie controller. |
// |
////////// |
OSErr SelectNoneMovie (MovieController theMC) |
{ |
TimeRecord myTimeRecord; |
Movie myMovie = NULL; |
ComponentResult myErr = noErr; |
if (theMC == NULL) |
return(paramErr); |
myMovie = MCGetMovie(theMC); |
if (myMovie == NULL) |
return(paramErr); |
myTimeRecord.value.hi = 0; |
myTimeRecord.value.lo = 0; |
myTimeRecord.base = 0; |
myTimeRecord.scale = GetMovieTimeScale(myMovie); |
myErr = MCDoAction(theMC, mcActionSetSelectionDuration, &myTimeRecord); |
return((OSErr)myErr); |
} |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14