JPEGView/Source/C/SlideShowOptions.c

1 line
16 KiB
C
Raw Permalink Normal View History

/*********************************************************/ /* This source code copyright (c) 1991-2001, Aaron Giles */ /* See the Read Me file for licensing information. */ /* Contact email: mac@aarongiles.com */ /*********************************************************/ //===================================================================================== // Generic includes for Macintosh headers //===================================================================================== #if THINK_C #include "THINK.Header" #elif applec #pragma load ":Headers:MPW.Header" #elif __MWERKS__ //#include "MW.Header" #else #include "JPEGView.h" #endif //===================================================================================== // Includes specific to this module //===================================================================================== #include "SlideShowOptions.h" static Boolean IsValidSlideOptionsDrag(DragReference theDragRef, HFSFlavor *theFile); static pascal OSErr SlideOptionsDragTracker(DragTrackingMessage message, WindowPtr theWindow, void *handlerRefCon, DragReference theDragRef); static pascal OSErr SlideOptionsDragReceiver(WindowPtr theWindow, void *handlerRefCon, DragReference theDragRef); //===================================================================================== // Global variables local to this module //===================================================================================== static DialogPtr gSlideOptionsDialog = nil; static UserItemUPP gSlideOptionsUser = nil; static DragTrackingHandlerUPP gSlideOptionsDragTracker = nil; static DragReceiveHandlerUPP gSlideOptionsDragReceiver = nil; static SlideOptions gOldOptions; static FSSpec gSlideSpec; /* * OpenSlideOptions() * * Purpose: Opens the slide show dialog window * Inputs: none * Returns: nothing * */ OSErr OpenSlideOptions(void) { OSErr theErr = noErr; Str255 theTime; short i; if (gSlideOptionsDialog) { if (!WindowVisible(gSlideOptionsDialog)) FWShowWindow(gSlideOptionsDialog); return noErr; } gOldOptions = **gSlideOptions; gSlideSpec.vRefNum = gSlideSpec.parID = *gSlideSpec.name = 0; GetSlideSpec(&gSlideSpec); if (!(gSlideOptionsDialog = AllocateDialog())) return gIntError = errNoMemory, memFullErr; StartSpinning(); PushPort(); MySetPort(nil); if (gSlideOptionsDialog = FWGetNewDialog(rSlideShowDialog, (Ptr)gSlideOptionsDialog, (WindowPtr)-1)) { if (gDragMgrPresent) { if (!gSlideOptionsDragTracker) { gSlideOptionsDragTracker = NewDragTrackingHandlerProc((ProcPtr)SlideOptionsDragTracker); gSlideOptionsDragReceiver = NewDragReceiveHandlerProc((ProcPtr)SlideOptionsDragReceiver); } InstallTrackingHandler(gSlideOptionsDragTracker, gSlideOptionsDialog, 0); InstallReceiveHandler(gSlideOptionsDragReceiver, gSlideOptionsDialog, 0); } SetItemHandle(gSlideOptionsDialog, slideOutlineUser, (Handle)gOutlineOK); SetItemHandle(gSlideOptionsDialog, slideLeftBoxUser, (Handle)gPopUpMenuBox); SetItemHandle(gSlideOptionsDialog, slideRightBoxUser, (Handle)gPopUpMenuBox); if (!gSlideOptionsUser) gSlideOptionsUser = NewUserItemProc((ProcPtr)SlideOptionsUser); SetItemHandle(gSlideOptionsDialog, slideFolderUser, (Handle)gSlideOptionsUser); i = (*gSlideOptions)->delay; if (i && !(i % 3600)) { SetDCtlValue(gSlideOptionsDialog, slideTimePopUpMenu, timeHours); i /= 3600; } else if (i && !(i % 60)) { SetDCtlValue(gSlideOptionsDialog, slideTimePopUpMenu, timeMinutes); i /= 60; } else SetDCtlValue(gSlideOptionsDialog, slideTimePopUpMenu, timeSeconds); NumToString(i, theTime); SetDIText(gSlideOptionsDialog, slideDelayEdit, theTime); SelIText(gSlideOptionsDialog, slideDelayEdit, 0, 255); UpdateSlideOptionsButtons(); PlaceWindow(gSlideOptionsDialog, &gThePrefs.slideBounds, CenterWindow(gSlideOptionsDialog)); } else gIntError = errNoMemory, theErr = memFullErr, DeallocateDialog(gSlideOptionsDialog); PopPort(); StopSpinning(&qd.arrow); return theErr; } /* * CloseSlideOptions() * * Purpose: Closes t