mirror of
https://github.com/aaronsgiles/JPEGView.git
synced 2024-09-28 03:55:27 +00:00
1 line
16 KiB
C
1 line
16 KiB
C
|
/*********************************************************/
/* 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
|