2018-11-16 00:31:39 +01:00
|
|
|
/*****************************************************************************\
|
|
|
|
Snes9x - Portable Super Nintendo Entertainment System (TM) emulator.
|
|
|
|
This file is licensed under the Snes9x License.
|
|
|
|
For further information, consult the LICENSE file in the root directory.
|
|
|
|
\*****************************************************************************/
|
2010-09-25 17:46:12 +02:00
|
|
|
|
|
|
|
/***********************************************************************************
|
|
|
|
SNES9X for Mac OS (c) Copyright John Stiles
|
|
|
|
|
|
|
|
Snes9x for Mac OS X
|
|
|
|
|
2011-04-10 15:44:28 +02:00
|
|
|
(c) Copyright 2001 - 2011 zones
|
2010-09-25 17:46:12 +02:00
|
|
|
(c) Copyright 2002 - 2005 107
|
|
|
|
(c) Copyright 2002 PB1400c
|
|
|
|
(c) Copyright 2004 Alexander and Sander
|
|
|
|
(c) Copyright 2004 - 2005 Steven Seeger
|
|
|
|
(c) Copyright 2005 Ryan Vogt
|
2019-05-24 03:18:53 +02:00
|
|
|
(c) Copyright 2019 Michael Donald Buckley
|
2010-09-25 17:46:12 +02:00
|
|
|
***********************************************************************************/
|
|
|
|
|
|
|
|
|
2011-01-16 06:57:11 +01:00
|
|
|
#import "snes9x.h"
|
|
|
|
#import "memmap.h"
|
|
|
|
#import "snapshot.h"
|
|
|
|
#import "movie.h"
|
|
|
|
|
|
|
|
#import <wchar.h>
|
|
|
|
#import <Cocoa/Cocoa.h>
|
2017-10-29 07:06:37 +01:00
|
|
|
#import <objc/objc-runtime.h>
|
2011-01-16 06:57:11 +01:00
|
|
|
|
|
|
|
#import "mac-cocoatools.h"
|
|
|
|
#import "mac-prefix.h"
|
|
|
|
#import "mac-dialog.h"
|
|
|
|
#import "mac-os.h"
|
|
|
|
#import "mac-screenshot.h"
|
|
|
|
#import "mac-snes9x.h"
|
|
|
|
#import "mac-stringtools.h"
|
|
|
|
#import "mac-cart.h"
|
2010-09-25 17:46:12 +02:00
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
2019-07-14 05:42:21 +02:00
|
|
|
NSURL *ref;
|
2010-09-25 17:46:12 +02:00
|
|
|
Boolean reply;
|
|
|
|
char name[PATH_MAX + 1];
|
2011-01-16 06:57:11 +01:00
|
|
|
#ifdef MAC_LEOPARD_TIGER_PANTHER_SUPPORT
|
2010-09-25 17:46:12 +02:00
|
|
|
IBNibRef customNib;
|
|
|
|
WindowRef customWindow;
|
|
|
|
HIViewRef customPane;
|
|
|
|
short customWidth, customHeight;
|
2011-01-16 06:57:11 +01:00
|
|
|
#endif
|
2010-09-25 17:46:12 +02:00
|
|
|
} NavState;
|
|
|
|
|
|
|
|
extern wchar_t macRecordWChar[MOVIE_MAX_METADATA];
|
|
|
|
|
2019-07-14 05:42:21 +02:00
|
|
|
static NSPopUpButton *gPopM, *gPopI, *gPopV, *gPopH;
|
2011-01-16 06:57:11 +01:00
|
|
|
|
|
|
|
@interface NavController : NSObject
|
|
|
|
|
|
|
|
- (id) init;
|
|
|
|
- (IBAction) handleCompressButton: (id) sender;
|
|
|
|
|
|
|
|
@end
|
|
|
|
|
|
|
|
@implementation NavController
|
|
|
|
|
|
|
|
- (id) init
|
|
|
|
{
|
|
|
|
self = [super init];
|
|
|
|
return (self);
|
|
|
|
}
|
|
|
|
|
|
|
|
- (IBAction) handleCompressButton: (id) sender
|
|
|
|
{
|
2019-07-14 05:42:21 +02:00
|
|
|
//MacQTVideoConfig();
|
2011-01-16 06:57:11 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@end
|
2010-09-25 17:46:12 +02:00
|
|
|
|
2011-01-16 06:57:11 +01:00
|
|
|
|
2019-07-14 05:42:21 +02:00
|
|
|
NSURL *NavOpenROMImage ()
|
2011-01-16 06:57:11 +01:00
|
|
|
{
|
2019-07-14 05:42:21 +02:00
|
|
|
NSOpenPanel *openPanel = [NSOpenPanel openPanel];
|
|
|
|
openPanel.title = NSLocalizedString(@"OpenROMMes", @"Open");
|
|
|
|
openPanel.allowsMultipleSelection = NO;
|
|
|
|
|
|
|
|
NSView *view;
|
|
|
|
NSTextField *txtM, *txtI, *txtV, *txtH;
|
|
|
|
NSPopUpButton *popM, *popI, *popV, *popH;
|
|
|
|
NSArray *aryM, *aryI, *aryV, *aryH;
|
|
|
|
|
|
|
|
view = [[NSView alloc] initWithFrame: NSMakeRect(0, 0, 433, 52)];
|
|
|
|
|
|
|
|
aryM = [NSArray arrayWithObjects: NSLocalizedString(@"OpenROM5", @""), @"---", NSLocalizedString(@"OpenROM6", @""), NSLocalizedString(@"OpenROM7", @""), nil];
|
|
|
|
aryI = [NSArray arrayWithObjects: NSLocalizedString(@"OpenROM5", @""), @"---", NSLocalizedString(@"OpenROMa", @""), NSLocalizedString(@"OpenROMb", @""), NSLocalizedString(@"OpenROMc", @""), NSLocalizedString(@"OpenROMd", @""), nil];
|
|
|
|
aryV = [NSArray arrayWithObjects: NSLocalizedString(@"OpenROM5", @""), @"---", NSLocalizedString(@"OpenROM8", @""), NSLocalizedString(@"OpenROM9", @""), nil];
|
|
|
|
aryH = [NSArray arrayWithObjects: NSLocalizedString(@"OpenROM5", @""), @"---", NSLocalizedString(@"OpenROMe", @""), NSLocalizedString(@"OpenROMf", @""), nil];
|
|
|
|
|
|
|
|
CocoaAddStatTextToView(view, @"OpenROM1", 5, 32, 84, 14, &txtM);
|
|
|
|
CocoaAddStatTextToView(view, @"OpenROM3", 214, 32, 96, 14, &txtI);
|
|
|
|
CocoaAddStatTextToView(view, @"OpenROM2", 5, 7, 84, 14, &txtV);
|
|
|
|
CocoaAddStatTextToView(view, @"OpenROM4", 214, 7, 96, 14, &txtH);
|
|
|
|
CocoaAddPopUpBtnToView(view, aryM, 91, 27, 116, 22, &popM);
|
|
|
|
CocoaAddPopUpBtnToView(view, aryI, 312, 27, 116, 22, &popI);
|
|
|
|
CocoaAddPopUpBtnToView(view, aryV, 91, 2, 116, 22, &popV);
|
|
|
|
CocoaAddPopUpBtnToView(view, aryH, 312, 2, 116, 22, &popH);
|
|
|
|
|
|
|
|
[txtM setAlignment: NSTextAlignmentRight];
|
|
|
|
[txtI setAlignment: NSTextAlignmentRight];
|
|
|
|
[txtV setAlignment: NSTextAlignmentRight];
|
|
|
|
[txtH setAlignment: NSTextAlignmentRight];
|
|
|
|
|
|
|
|
[popM selectItemAtIndex: romDetect ];
|
|
|
|
[popI selectItemAtIndex: interleaveDetect];
|
|
|
|
[popV selectItemAtIndex: videoDetect ];
|
|
|
|
[popH selectItemAtIndex: headerDetect ];
|
|
|
|
|
|
|
|
NSModalResponse response = [openPanel runModal];
|
|
|
|
|
|
|
|
if ( response == NSModalResponseOK )
|
|
|
|
{
|
|
|
|
romDetect = [popM indexOfSelectedItem];
|
|
|
|
interleaveDetect = [popI indexOfSelectedItem];
|
|
|
|
videoDetect = [popV indexOfSelectedItem];
|
|
|
|
headerDetect = [popH indexOfSelectedItem];
|
|
|
|
|
|
|
|
return openPanel.URL;
|
|
|
|
}
|
|
|
|
|
|
|
|
return nil;
|
2011-01-16 06:57:11 +01:00
|
|
|
}
|
|
|
|
|
2019-07-14 05:42:21 +02:00
|
|
|
NSURL *NavOpenROMImageSheet (NSWindow *parent, NSString *mes)
|
2011-01-16 06:57:11 +01:00
|
|
|
{
|
2019-07-14 05:42:21 +02:00
|
|
|
NSOpenPanel *openPanel = [NSOpenPanel openPanel];
|
|
|
|
openPanel.title = NSLocalizedString(@"OpenROMMes", @"Open");
|
|
|
|
openPanel.allowsMultipleSelection = NO;
|
|
|
|
|
|
|
|
NSView *view;
|
|
|
|
NSTextField *txtM, *txtI, *txtV, *txtH;
|
|
|
|
NSPopUpButton *popM, *popI, *popV, *popH;
|
|
|
|
NSArray *aryM, *aryI, *aryV, *aryH;
|
|
|
|
|
|
|
|
view = [[NSView alloc] initWithFrame: NSMakeRect(0, 0, 433, 52)];
|
|
|
|
|
|
|
|
aryM = [NSArray arrayWithObjects: NSLocalizedString(@"OpenROM5", @""), @"---", NSLocalizedString(@"OpenROM6", @""), NSLocalizedString(@"OpenROM7", @""), nil];
|
|
|
|
aryI = [NSArray arrayWithObjects: NSLocalizedString(@"OpenROM5", @""), @"---", NSLocalizedString(@"OpenROMa", @""), NSLocalizedString(@"OpenROMb", @""), NSLocalizedString(@"OpenROMc", @""), NSLocalizedString(@"OpenROMd", @""), nil];
|
|
|
|
aryV = [NSArray arrayWithObjects: NSLocalizedString(@"OpenROM5", @""), @"---", NSLocalizedString(@"OpenROM8", @""), NSLocalizedString(@"OpenROM9", @""), nil];
|
|
|
|
aryH = [NSArray arrayWithObjects: NSLocalizedString(@"OpenROM5", @""), @"---", NSLocalizedString(@"OpenROMe", @""), NSLocalizedString(@"OpenROMf", @""), nil];
|
|
|
|
|
|
|
|
CocoaAddStatTextToView(view, @"OpenROM1", 5, 32, 84, 14, &txtM);
|
|
|
|
CocoaAddStatTextToView(view, @"OpenROM3", 214, 32, 96, 14, &txtI);
|
|
|
|
CocoaAddStatTextToView(view, @"OpenROM2", 5, 7, 84, 14, &txtV);
|
|
|
|
CocoaAddStatTextToView(view, @"OpenROM4", 214, 7, 96, 14, &txtH);
|
|
|
|
CocoaAddPopUpBtnToView(view, aryM, 91, 27, 116, 22, &popM);
|
|
|
|
CocoaAddPopUpBtnToView(view, aryI, 312, 27, 116, 22, &popI);
|
|
|
|
CocoaAddPopUpBtnToView(view, aryV, 91, 2, 116, 22, &popV);
|
|
|
|
CocoaAddPopUpBtnToView(view, aryH, 312, 2, 116, 22, &popH);
|
|
|
|
|
|
|
|
[txtM setAlignment: NSTextAlignmentRight];
|
|
|
|
[txtI setAlignment: NSTextAlignmentRight];
|
|
|
|
[txtV setAlignment: NSTextAlignmentRight];
|
|
|
|
[txtH setAlignment: NSTextAlignmentRight];
|
|
|
|
|
|
|
|
[popM selectItemAtIndex: romDetect ];
|
|
|
|
[popI selectItemAtIndex: interleaveDetect];
|
|
|
|
[popV selectItemAtIndex: videoDetect ];
|
|
|
|
[popH selectItemAtIndex: headerDetect ];
|
|
|
|
|
|
|
|
NSModalResponse response = [openPanel runModal];
|
|
|
|
|
|
|
|
if ( response == NSModalResponseOK )
|
|
|
|
{
|
|
|
|
romDetect = [popM indexOfSelectedItem];
|
|
|
|
interleaveDetect = [popI indexOfSelectedItem];
|
|
|
|
videoDetect = [popV indexOfSelectedItem];
|
|
|
|
headerDetect = [popH indexOfSelectedItem];
|
|
|
|
|
|
|
|
return openPanel.URL;
|
|
|
|
}
|
|
|
|
|
|
|
|
return nil;
|
2011-01-16 06:57:11 +01:00
|
|
|
}
|
|
|
|
|
2019-07-14 05:42:21 +02:00
|
|
|
NSURL *NavFreezeTo ()
|
2011-01-16 06:57:11 +01:00
|
|
|
{
|
2019-07-14 05:42:21 +02:00
|
|
|
// OSStatus err;
|
|
|
|
// NavState nav;
|
|
|
|
// CFStringRef numRef, romRef, baseRef;
|
|
|
|
// CFMutableStringRef mesRef, saveRef;
|
|
|
|
// SInt32 replaceAt;
|
|
|
|
// char drive[_MAX_DRIVE + 1], dir[_MAX_DIR + 1], fname[_MAX_FNAME + 1], ext[_MAX_EXT + 1];
|
|
|
|
//
|
|
|
|
// _splitpath(Memory.ROMFilename, drive, dir, fname, ext);
|
|
|
|
// romRef = CFStringCreateWithCString(kCFAllocatorDefault, fname, kCFStringEncodingUTF8);
|
|
|
|
// numRef = CFCopyLocalizedString(CFSTR("FreezeToPos"), "1");
|
|
|
|
// baseRef = CFCopyLocalizedString(CFSTR("FreezeToMes"), "Freeze");
|
|
|
|
// mesRef = CFStringCreateMutableCopy(kCFAllocatorDefault, 0, baseRef);
|
|
|
|
// saveRef = CFStringCreateMutableCopy(kCFAllocatorDefault, 0, romRef);
|
|
|
|
// replaceAt = CFStringGetIntValue(numRef);
|
|
|
|
// CFStringReplace(mesRef, CFRangeMake(replaceAt - 1, 1), romRef);
|
|
|
|
// CFStringAppendCString(saveRef, ".frz", CFStringGetSystemEncoding());
|
|
|
|
//
|
|
|
|
// err = NavGetDefaultDialogCreationOptions(&dialogOptions);
|
|
|
|
// dialogOptions.preferenceKey = 4;
|
|
|
|
// dialogOptions.clientName = kMacS9XCFString;
|
|
|
|
// dialogOptions.windowTitle = mesRef;
|
|
|
|
// dialogOptions.saveFileName = saveRef;
|
|
|
|
// dialogOptions.modality = kWindowModalityAppModal;
|
|
|
|
// dialogOptions.parentWindow = NULL;
|
|
|
|
// nav.parent = NULL;
|
|
|
|
//
|
|
|
|
// eventUPP = NewNavEventUPP(NavGenericSaveEventHandler);
|
|
|
|
//
|
|
|
|
// err = NavCreatePutFileDialog(&dialogOptions, 'SAVE', '~9X~', eventUPP, &nav, &(nav.nref));
|
|
|
|
// if (err == noErr)
|
|
|
|
// {
|
|
|
|
// err = NavDialogRun(nav.nref);
|
|
|
|
// if (err)
|
|
|
|
// NavDialogDispose(nav.nref);
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// DisposeNavEventUPP(eventUPP);
|
|
|
|
//
|
|
|
|
// CFRelease(saveRef);
|
|
|
|
// CFRelease(mesRef);
|
|
|
|
// CFRelease(baseRef);
|
|
|
|
// CFRelease(numRef);
|
|
|
|
// CFRelease(romRef);
|
|
|
|
//
|
|
|
|
// if (err)
|
|
|
|
// return (false);
|
|
|
|
// else
|
|
|
|
// {
|
|
|
|
// if (nav.reply)
|
|
|
|
// {
|
|
|
|
// char s[PATH_MAX + 1];
|
|
|
|
//
|
|
|
|
// err = FSRefMakePath(&(nav.ref), (unsigned char *) s, PATH_MAX);
|
|
|
|
// snprintf(path, PATH_MAX + 1, "%s%s%s", s, MAC_PATH_SEPARATOR, nav.name);
|
|
|
|
//
|
|
|
|
// return (true);
|
|
|
|
// }
|
|
|
|
// else
|
|
|
|
// return (false);
|
|
|
|
// }
|
|
|
|
return nil;
|
2010-09-25 17:46:12 +02:00
|
|
|
}
|
|
|
|
|
2019-07-14 05:42:21 +02:00
|
|
|
NSURL *NavDefrostFrom ()
|
2011-01-16 06:57:11 +01:00
|
|
|
{
|
2019-07-14 05:42:21 +02:00
|
|
|
// OSStatus err;
|
|
|
|
// NavDialogCreationOptions dialogOptions;
|
|
|
|
// NavEventUPP eventUPP;
|
|
|
|
// NavObjectFilterUPP filterUPP;
|
|
|
|
// NavState nav;
|
|
|
|
// CFStringRef numRef, romRef, baseRef;
|
|
|
|
// CFMutableStringRef mesRef;
|
|
|
|
// SInt32 replaceAt;
|
|
|
|
// char drive[_MAX_DRIVE + 1], dir[_MAX_DIR + 1], fname[_MAX_FNAME + 1], ext[_MAX_EXT + 1];
|
|
|
|
//#ifdef MAC_TIGER_PANTHER_SUPPORT
|
|
|
|
// NavPreviewUPP previewUPP;
|
|
|
|
//#endif
|
|
|
|
//
|
|
|
|
// _splitpath(Memory.ROMFilename, drive, dir, fname, ext);
|
|
|
|
// romRef = CFStringCreateWithCString(kCFAllocatorDefault, fname, kCFStringEncodingUTF8);
|
|
|
|
// numRef = CFCopyLocalizedString(CFSTR("DefrostFromPos"), "1");
|
|
|
|
// baseRef = CFCopyLocalizedString(CFSTR("DefrostFromMes"), "Defrost");
|
|
|
|
// mesRef = CFStringCreateMutableCopy(kCFAllocatorDefault, 0, baseRef);
|
|
|
|
// replaceAt = CFStringGetIntValue(numRef);
|
|
|
|
// CFStringReplace(mesRef, CFRangeMake(replaceAt - 1, 1), romRef);
|
|
|
|
//
|
|
|
|
// err = NavGetDefaultDialogCreationOptions(&dialogOptions);
|
|
|
|
// dialogOptions.optionFlags &= ~kNavAllowMultipleFiles;
|
|
|
|
// dialogOptions.preferenceKey = 5;
|
|
|
|
// dialogOptions.clientName = kMacS9XCFString;
|
|
|
|
// dialogOptions.windowTitle = mesRef;
|
|
|
|
// dialogOptions.modality = kWindowModalityAppModal;
|
|
|
|
// dialogOptions.parentWindow = NULL;
|
|
|
|
// nav.parent = NULL;
|
|
|
|
//
|
|
|
|
// eventUPP = NewNavEventUPP(NavGenericOpenEventHandler);
|
|
|
|
// filterUPP = NewNavObjectFilterUPP(NavDefrostFromFilter);
|
|
|
|
//#ifdef MAC_TIGER_PANTHER_SUPPORT
|
|
|
|
// previewUPP = NewNavPreviewUPP(NavDefrostFromPreview);
|
|
|
|
//#endif
|
|
|
|
//
|
|
|
|
//#ifdef MAC_TIGER_PANTHER_SUPPORT
|
|
|
|
// err = NavCreateChooseFileDialog(&dialogOptions, NULL, eventUPP, previewUPP, filterUPP, &nav, &(nav.nref));
|
|
|
|
//#else
|
|
|
|
// err = NavCreateChooseFileDialog(&dialogOptions, NULL, eventUPP, NULL, filterUPP, &nav, &(nav.nref));
|
|
|
|
//#endif
|
|
|
|
// if (err == noErr)
|
|
|
|
// {
|
|
|
|
// err = NavDialogRun(nav.nref);
|
|
|
|
// if (err)
|
|
|
|
// NavDialogDispose(nav.nref);
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
//#ifdef MAC_TIGER_PANTHER_SUPPORT
|
|
|
|
// DisposeNavPreviewUPP(previewUPP);
|
|
|
|
//#endif
|
|
|
|
// DisposeNavObjectFilterUPP(filterUPP);
|
|
|
|
// DisposeNavEventUPP(eventUPP);
|
|
|
|
//
|
|
|
|
// CFRelease(mesRef);
|
|
|
|
// CFRelease(baseRef);
|
|
|
|
// CFRelease(numRef);
|
|
|
|
// CFRelease(romRef);
|
|
|
|
//
|
|
|
|
// if (err)
|
|
|
|
// return (false);
|
|
|
|
// else
|
|
|
|
// {
|
|
|
|
// if (nav.reply)
|
|
|
|
// {
|
|
|
|
// err = FSRefMakePath(&(nav.ref), (unsigned char *) path, PATH_MAX);
|
|
|
|
// return (true);
|
|
|
|
// }
|
|
|
|
// else
|
|
|
|
// return (false);
|
|
|
|
// }
|
|
|
|
return nil;
|
2011-01-16 06:57:11 +01:00
|
|
|
}
|
|
|
|
|
2019-07-14 05:42:21 +02:00
|
|
|
NSURL *NavRecordMovieTo ()
|
2011-01-16 06:57:11 +01:00
|
|
|
{
|
2019-07-14 05:42:21 +02:00
|
|
|
// OSStatus err;
|
|
|
|
// NavDialogCreationOptions dialogOptions;
|
|
|
|
// NavEventUPP eventUPP;
|
|
|
|
// NavState nav;
|
|
|
|
// CFStringRef numRef, romRef, baseRef;
|
|
|
|
// CFMutableStringRef mesRef, saveRef;
|
|
|
|
// SInt32 replaceAt;
|
|
|
|
// char drive[_MAX_DRIVE + 1], dir[_MAX_DIR + 1], fname[_MAX_FNAME + 1], ext[_MAX_EXT + 1];
|
|
|
|
//
|
|
|
|
//#ifdef MAC_LEOPARD_TIGER_PANTHER_SUPPORT
|
|
|
|
// if (systemVersion < 0x1060)
|
|
|
|
// {
|
|
|
|
// HIViewID cid = { 'PANE', 1000 };
|
|
|
|
// Rect rct;
|
|
|
|
//
|
|
|
|
// err = CreateNibReference(kMacS9XCFString, &(nav.customNib));
|
|
|
|
// if (err)
|
|
|
|
// return (false);
|
|
|
|
//
|
|
|
|
// err = CreateWindowFromNib(nav.customNib, CFSTR("RecordSMV"), &(nav.customWindow));
|
|
|
|
// if (err)
|
|
|
|
// {
|
|
|
|
// DisposeNibReference(nav.customNib);
|
|
|
|
// return (false);
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// GetWindowBounds(nav.customWindow, kWindowContentRgn, &rct);
|
|
|
|
// nav.customWidth = rct.right - rct.left;
|
|
|
|
// nav.customHeight = rct.bottom - rct.top;
|
|
|
|
//
|
|
|
|
// HIViewFindByID(HIViewGetRoot(nav.customWindow), cid, &(nav.customPane));
|
|
|
|
// }
|
|
|
|
//#endif
|
|
|
|
//
|
|
|
|
// _splitpath(Memory.ROMFilename, drive, dir, fname, ext);
|
|
|
|
// romRef = CFStringCreateWithCString(kCFAllocatorDefault, fname, kCFStringEncodingUTF8);
|
|
|
|
// numRef = CFCopyLocalizedString(CFSTR("RecordToPos"), "1");
|
|
|
|
// baseRef = CFCopyLocalizedString(CFSTR("RecordToMes"), "Record");
|
|
|
|
// mesRef = CFStringCreateMutableCopy(kCFAllocatorDefault, 0, baseRef);
|
|
|
|
// saveRef = CFStringCreateMutableCopy(kCFAllocatorDefault, 0, romRef);
|
|
|
|
// replaceAt = CFStringGetIntValue(numRef);
|
|
|
|
// CFStringReplace(mesRef, CFRangeMake(replaceAt - 1, 1), romRef);
|
|
|
|
// CFStringAppendCString(saveRef, ".smv", CFStringGetSystemEncoding());
|
|
|
|
//
|
|
|
|
// err = NavGetDefaultDialogCreationOptions(&dialogOptions);
|
|
|
|
// dialogOptions.preferenceKey = 6;
|
|
|
|
// dialogOptions.clientName = kMacS9XCFString;
|
|
|
|
// dialogOptions.windowTitle = mesRef;
|
|
|
|
// dialogOptions.saveFileName = saveRef;
|
|
|
|
// dialogOptions.modality = kWindowModalityAppModal;
|
|
|
|
// dialogOptions.parentWindow = NULL;
|
|
|
|
// nav.parent = NULL;
|
|
|
|
//
|
|
|
|
//#ifdef MAC_LEOPARD_TIGER_PANTHER_SUPPORT
|
|
|
|
// eventUPP = NewNavEventUPP((systemVersion < 0x1060) ? NavRecordMovieToEventHandler : NavGenericSaveEventHandler);
|
|
|
|
//#else
|
|
|
|
// eventUPP = NewNavEventUPP(NavGenericSaveEventHandler);
|
|
|
|
//#endif
|
|
|
|
//
|
|
|
|
// err = NavCreatePutFileDialog(&dialogOptions, 'SMOV', '~9X~', eventUPP, &nav, &(nav.nref));
|
|
|
|
// if (err == noErr)
|
|
|
|
// {
|
|
|
|
// if (systemVersion >= 0x1060)
|
|
|
|
// {
|
|
|
|
// NSAutoreleasePool *pool;
|
|
|
|
// NSView *view;
|
|
|
|
// NSTextField *text;
|
|
|
|
// NSButton *cb1p, *cb2p, *cb3p, *cb4p, *cb5p, *cbre;
|
|
|
|
// NSString *comment;
|
|
|
|
//
|
|
|
|
// pool = [[NSAutoreleasePool alloc] init];
|
|
|
|
//
|
|
|
|
// view = [[[NSView alloc] initWithFrame: NSMakeRect(0, 0, 433, 54)] autorelease];
|
|
|
|
//
|
|
|
|
// CocoaAddStatTextToView(view, @"RecordSMV6", 5, 33, 104, 14, NULL);
|
|
|
|
// CocoaAddStatTextToView(view, @"RecordSMV7", 5, 8, 63, 14, NULL);
|
|
|
|
// CocoaAddEditTextToView(view, @"", 74, 6, 351, 19, &text);
|
|
|
|
// CocoaAddCheckBoxToView(view, @"RecordSMV1", 112, 31, 29, 18, &cb1p);
|
|
|
|
// CocoaAddCheckBoxToView(view, @"RecordSMV2", 150, 31, 29, 18, &cb2p);
|
|
|
|
// CocoaAddCheckBoxToView(view, @"RecordSMV3", 188, 31, 29, 18, &cb3p);
|
|
|
|
// CocoaAddCheckBoxToView(view, @"RecordSMV4", 226, 31, 29, 18, &cb4p);
|
|
|
|
// CocoaAddCheckBoxToView(view, @"RecordSMV5", 264, 31, 29, 18, &cb5p);
|
|
|
|
// CocoaAddCheckBoxToView(view, @"RecordSMV8", 356, 31, 51, 18, &cbre);
|
|
|
|
//
|
|
|
|
// [cb1p setState: (macRecordFlag & (1 << 0) ? NSOnState : NSOffState)];
|
|
|
|
// [cb2p setState: (macRecordFlag & (1 << 1) ? NSOnState : NSOffState)];
|
|
|
|
// [cb3p setState: (macRecordFlag & (1 << 2) ? NSOnState : NSOffState)];
|
|
|
|
// [cb4p setState: (macRecordFlag & (1 << 3) ? NSOnState : NSOffState)];
|
|
|
|
// [cb5p setState: (macRecordFlag & (1 << 4) ? NSOnState : NSOffState)];
|
|
|
|
// [cbre setState: (macRecordFlag & (1 << 5) ? NSOnState : NSOffState)];
|
|
|
|
//
|
|
|
|
// [(NSOpenPanel *) nav.nref setAccessoryView: view];
|
|
|
|
//
|
|
|
|
// err = NavDialogRun(nav.nref);
|
|
|
|
// if (err)
|
|
|
|
// NavDialogDispose(nav.nref);
|
|
|
|
//
|
|
|
|
// macRecordFlag = 0;
|
|
|
|
// macRecordFlag |= ((([cb1p state] == NSOnState) ? 1 : 0) << 0);
|
|
|
|
// macRecordFlag |= ((([cb2p state] == NSOnState) ? 1 : 0) << 1);
|
|
|
|
// macRecordFlag |= ((([cb3p state] == NSOnState) ? 1 : 0) << 2);
|
|
|
|
// macRecordFlag |= ((([cb4p state] == NSOnState) ? 1 : 0) << 3);
|
|
|
|
// macRecordFlag |= ((([cb5p state] == NSOnState) ? 1 : 0) << 4);
|
|
|
|
// macRecordFlag |= ((([cbre state] == NSOnState) ? 1 : 0) << 5);
|
|
|
|
//
|
|
|
|
// comment = [text stringValue];
|
|
|
|
// if (comment)
|
|
|
|
// {
|
|
|
|
// NSUInteger cflen;
|
|
|
|
// unichar unistr[MOVIE_MAX_METADATA];
|
|
|
|
//
|
|
|
|
// cflen = [comment length];
|
|
|
|
// if (cflen > MOVIE_MAX_METADATA - 1)
|
|
|
|
// cflen = MOVIE_MAX_METADATA - 1;
|
|
|
|
//
|
|
|
|
// [comment getCharacters: unistr range: NSMakeRange(0, cflen)];
|
|
|
|
//
|
|
|
|
// for (unsigned i = 0; i < cflen; i++)
|
|
|
|
// macRecordWChar[i] = (wchar_t) unistr[i];
|
|
|
|
// macRecordWChar[cflen] = 0;
|
|
|
|
// }
|
|
|
|
// else
|
|
|
|
// macRecordWChar[0] = 0;
|
|
|
|
//
|
|
|
|
// [pool release];
|
|
|
|
// }
|
|
|
|
// #ifdef MAC_LEOPARD_TIGER_PANTHER_SUPPORT
|
|
|
|
// else
|
|
|
|
// {
|
|
|
|
// err = NavDialogRun(nav.nref);
|
|
|
|
// if (err)
|
|
|
|
// NavDialogDispose(nav.nref);
|
|
|
|
// }
|
|
|
|
// #endif
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// DisposeNavEventUPP(eventUPP);
|
|
|
|
//
|
|
|
|
// CFRelease(saveRef);
|
|
|
|
// CFRelease(mesRef);
|
|
|
|
// CFRelease(baseRef);
|
|
|
|
// CFRelease(numRef);
|
|
|
|
// CFRelease(romRef);
|
|
|
|
//
|
|
|
|
//#ifdef MAC_LEOPARD_TIGER_PANTHER_SUPPORT
|
|
|
|
// if (systemVersion < 0x1060)
|
|
|
|
// {
|
|
|
|
// CFRelease(nav.customWindow);
|
|
|
|
// DisposeNibReference(nav.customNib);
|
|
|
|
// }
|
|
|
|
//#endif
|
|
|
|
//
|
|
|
|
// if (err)
|
|
|
|
// return (false);
|
|
|
|
// else
|
|
|
|
// {
|
|
|
|
// if (nav.reply)
|
|
|
|
// {
|
|
|
|
// char s[PATH_MAX + 1];
|
|
|
|
//
|
|
|
|
// err = FSRefMakePath(&(nav.ref), (unsigned char *) s, PATH_MAX);
|
|
|
|
// snprintf(path, PATH_MAX + 1, "%s%s%s", s, MAC_PATH_SEPARATOR, nav.name);
|
|
|
|
//
|
|
|
|
// return (true);
|
|
|
|
// }
|
|
|
|
// else
|
|
|
|
// return (false);
|
|
|
|
// }
|
|
|
|
return nil;
|
2011-01-16 06:57:11 +01:00
|
|
|
}
|
|
|
|
|
2019-07-14 05:42:21 +02:00
|
|
|
NSURL *NavPlayMovieFrom ()
|
2010-09-25 17:46:12 +02:00
|
|
|
{
|
2019-07-14 05:42:21 +02:00
|
|
|
// OSStatus err;
|
|
|
|
// NavDialogCreationOptions dialogOptions;
|
|
|
|
// NavEventUPP eventUPP;
|
|
|
|
// NavObjectFilterUPP filterUPP;
|
|
|
|
// NavState nav;
|
|
|
|
// CFStringRef numRef, romRef, baseRef;
|
|
|
|
// CFMutableStringRef mesRef;
|
|
|
|
// SInt32 replaceAt;
|
|
|
|
// char drive[_MAX_DRIVE + 1], dir[_MAX_DIR + 1], fname[_MAX_FNAME + 1], ext[_MAX_EXT + 1];
|
|
|
|
//#ifdef MAC_TIGER_PANTHER_SUPPORT
|
|
|
|
// NavPreviewUPP previewUPP;
|
|
|
|
//#endif
|
|
|
|
//
|
|
|
|
//#ifdef MAC_LEOPARD_TIGER_PANTHER_SUPPORT
|
|
|
|
// if (systemVersion < 0x1060)
|
|
|
|
// {
|
|
|
|
// HIViewID cid = { 'PANE', 1000 };
|
|
|
|
// Rect rct;
|
|
|
|
//
|
|
|
|
// err = CreateNibReference(kMacS9XCFString, &(nav.customNib));
|
|
|
|
// if (err)
|
|
|
|
// return (false);
|
|
|
|
//
|
|
|
|
// err = CreateWindowFromNib(nav.customNib, CFSTR("PlaySMV"), &(nav.customWindow));
|
|
|
|
// if (err)
|
|
|
|
// {
|
|
|
|
// DisposeNibReference(nav.customNib);
|
|
|
|
// return (false);
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// GetWindowBounds(nav.customWindow, kWindowContentRgn, &rct);
|
|
|
|
// nav.customWidth = rct.right - rct.left;
|
|
|
|
// nav.customHeight = rct.bottom - rct.top;
|
|
|
|
//
|
|
|
|
// HIViewFindByID(HIViewGetRoot(nav.customWindow), cid, &(nav.customPane));
|
|
|
|
// }
|
|
|
|
//#endif
|
|
|
|
//
|
|
|
|
// _splitpath(Memory.ROMFilename, drive, dir, fname, ext);
|
|
|
|
// romRef = CFStringCreateWithCString(kCFAllocatorDefault, fname, kCFStringEncodingUTF8);
|
|
|
|
// numRef = CFCopyLocalizedString(CFSTR("PlayFromPos"), "1");
|
|
|
|
// baseRef = CFCopyLocalizedString(CFSTR("PlayFromMes"), "Play");
|
|
|
|
// mesRef = CFStringCreateMutableCopy(kCFAllocatorDefault, 0, baseRef);
|
|
|
|
// replaceAt = CFStringGetIntValue(numRef);
|
|
|
|
// CFStringReplace(mesRef, CFRangeMake(replaceAt - 1, 1), romRef);
|
|
|
|
//
|
|
|
|
// err = NavGetDefaultDialogCreationOptions(&dialogOptions);
|
|
|
|
// dialogOptions.optionFlags &= ~kNavAllowMultipleFiles;
|
|
|
|
// dialogOptions.preferenceKey = 6;
|
|
|
|
// dialogOptions.clientName = kMacS9XCFString;
|
|
|
|
// dialogOptions.windowTitle = mesRef;
|
|
|
|
// dialogOptions.modality = kWindowModalityAppModal;
|
|
|
|
// dialogOptions.parentWindow = NULL;
|
|
|
|
// nav.parent = NULL;
|
|
|
|
//
|
|
|
|
//#ifdef MAC_LEOPARD_TIGER_PANTHER_SUPPORT
|
|
|
|
// eventUPP = NewNavEventUPP((systemVersion < 0x1060) ? NavPlayMovieFromEventHandler : NavGenericOpenEventHandler);
|
|
|
|
//#else
|
|
|
|
// eventUPP = NewNavEventUPP(NavGenericOpenEventHandler);
|
|
|
|
//#endif
|
|
|
|
// filterUPP = NewNavObjectFilterUPP(NavPlayMovieFromFilter);
|
|
|
|
//#ifdef MAC_TIGER_PANTHER_SUPPORT
|
|
|
|
// previewUPP = NewNavPreviewUPP(NavPlayMovieFromPreview);
|
|
|
|
//#endif
|
|
|
|
//
|
|
|
|
//#ifdef MAC_TIGER_PANTHER_SUPPORT
|
|
|
|
// err = NavCreateChooseFileDialog(&dialogOptions, NULL, eventUPP, previewUPP, filterUPP, &nav, &(nav.nref));
|
|
|
|
//#else
|
|
|
|
// err = NavCreateChooseFileDialog(&dialogOptions, NULL, eventUPP, NULL, filterUPP, &nav, &(nav.nref));
|
|
|
|
//#endif
|
|
|
|
// if (err == noErr)
|
|
|
|
// {
|
|
|
|
// if (systemVersion >= 0x1060)
|
|
|
|
// {
|
|
|
|
// NSAutoreleasePool *pool;
|
|
|
|
// NSView *view;
|
|
|
|
// NSButton *cbro, *cbqt;
|
|
|
|
//
|
|
|
|
// pool = [[NSAutoreleasePool alloc] init];
|
|
|
|
//
|
|
|
|
// view = [[[NSView alloc] initWithFrame: NSMakeRect(0, 0, 326, 29)] autorelease];
|
|
|
|
//
|
|
|
|
// CocoaAddCheckBoxToView(view, @"PlaySMV1", 5, 6, 76, 18, &cbro);
|
|
|
|
// CocoaAddCheckBoxToView(view, @"PlaySMV2", 100, 6, 220, 18, &cbqt);
|
|
|
|
//
|
|
|
|
// [cbro setState: (macPlayFlag & (1 << 0) ? NSOnState : NSOffState)];
|
|
|
|
// [cbqt setState: (macPlayFlag & (1 << 1) ? NSOnState : NSOffState)];
|
|
|
|
//
|
|
|
|
// [(NSOpenPanel *) nav.nref setAccessoryView: view];
|
|
|
|
//
|
|
|
|
// err = NavDialogRun(nav.nref);
|
|
|
|
// if (err)
|
|
|
|
// NavDialogDispose(nav.nref);
|
|
|
|
//
|
|
|
|
// macPlayFlag = 0;
|
|
|
|
// macPlayFlag |= ((([cbro state] == NSOnState) ? 1 : 0) << 0);
|
|
|
|
// macPlayFlag |= ((([cbqt state] == NSOnState) ? 1 : 0) << 1);
|
|
|
|
//
|
|
|
|
// [pool release];
|
|
|
|
// }
|
|
|
|
// #ifdef MAC_LEOPARD_TIGER_PANTHER_SUPPORT
|
|
|
|
// else
|
|
|
|
// {
|
|
|
|
// err = NavDialogRun(nav.nref);
|
|
|
|
// if (err)
|
|
|
|
// NavDialogDispose(nav.nref);
|
|
|
|
// }
|
|
|
|
// #endif
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
//#ifdef MAC_TIGER_PANTHER_SUPPORT
|
|
|
|
// DisposeNavPreviewUPP(previewUPP);
|
|
|
|
//#endif
|
|
|
|
// DisposeNavObjectFilterUPP(filterUPP);
|
|
|
|
// DisposeNavEventUPP(eventUPP);
|
|
|
|
//
|
|
|
|
// CFRelease(mesRef);
|
|
|
|
// CFRelease(baseRef);
|
|
|
|
// CFRelease(numRef);
|
|
|
|
// CFRelease(romRef);
|
|
|
|
//
|
|
|
|
//#ifdef MAC_LEOPARD_TIGER_PANTHER_SUPPORT
|
|
|
|
// if (systemVersion < 0x1060)
|
|
|
|
// {
|
|
|
|
// CFRelease(nav.customWindow);
|
|
|
|
// DisposeNibReference(nav.customNib);
|
|
|
|
// }
|
|
|
|
//#endif
|
|
|
|
//
|
|
|
|
// if (err)
|
|
|
|
// return (false);
|
|
|
|
// else
|
|
|
|
// {
|
|
|
|
// if (nav.reply)
|
|
|
|
// {
|
|
|
|
// err = FSRefMakePath(&(nav.ref), (unsigned char *) path, PATH_MAX);
|
|
|
|
// return (true);
|
|
|
|
// }
|
|
|
|
// else
|
|
|
|
// return (false);
|
|
|
|
// }
|
|
|
|
return nil;
|
2010-09-25 17:46:12 +02:00
|
|
|
}
|
|
|
|
|
2019-07-14 05:42:21 +02:00
|
|
|
NSURL *NavQTMovieRecordTo ()
|
2010-09-25 17:46:12 +02:00
|
|
|
{
|
2019-07-14 05:42:21 +02:00
|
|
|
// OSStatus err;
|
|
|
|
// NavDialogCreationOptions dialogOptions;
|
|
|
|
// NavEventUPP eventUPP;
|
|
|
|
// NavState nav;
|
|
|
|
// CFStringRef numRef, romRef, baseRef;
|
|
|
|
// CFMutableStringRef mesRef, saveRef;
|
|
|
|
// SInt32 replaceAt;
|
|
|
|
// char drive[_MAX_DRIVE + 1], dir[_MAX_DIR + 1], fname[_MAX_FNAME + 1], ext[_MAX_EXT + 1];
|
|
|
|
//
|
|
|
|
//#ifdef MAC_LEOPARD_TIGER_PANTHER_SUPPORT
|
|
|
|
// if (systemVersion < 0x1060)
|
|
|
|
// {
|
|
|
|
// HIViewID cid = { 'PANE', 1000 };
|
|
|
|
// Rect rct;
|
|
|
|
//
|
|
|
|
// err = CreateNibReference(kMacS9XCFString, &(nav.customNib));
|
|
|
|
// if (err)
|
|
|
|
// return (false);
|
|
|
|
//
|
|
|
|
// err = CreateWindowFromNib(nav.customNib, CFSTR("QTMovie"), &(nav.customWindow));
|
|
|
|
// if (err)
|
|
|
|
// {
|
|
|
|
// DisposeNibReference(nav.customNib);
|
|
|
|
// return (false);
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// GetWindowBounds(nav.customWindow, kWindowContentRgn, &rct);
|
|
|
|
// nav.customWidth = rct.right - rct.left;
|
|
|
|
// nav.customHeight = rct.bottom - rct.top;
|
|
|
|
//
|
|
|
|
// HIViewFindByID(HIViewGetRoot(nav.customWindow), cid, &(nav.customPane));
|
|
|
|
// }
|
|
|
|
//#endif
|
|
|
|
//
|
|
|
|
// _splitpath(Memory.ROMFilename, drive, dir, fname, ext);
|
|
|
|
// romRef = CFStringCreateWithCString(kCFAllocatorDefault, fname, kCFStringEncodingUTF8);
|
|
|
|
// numRef = CFCopyLocalizedString(CFSTR("QTRecordPos"), "1");
|
|
|
|
// baseRef = CFCopyLocalizedString(CFSTR("QTRecordMes"), "QT");
|
|
|
|
// mesRef = CFStringCreateMutableCopy(kCFAllocatorDefault, 0, baseRef);
|
|
|
|
// saveRef = CFStringCreateMutableCopy(kCFAllocatorDefault, 0, romRef);
|
|
|
|
// replaceAt = CFStringGetIntValue(numRef);
|
|
|
|
// CFStringReplace(mesRef, CFRangeMake(replaceAt - 1, 1), romRef);
|
|
|
|
// CFStringAppendCString(saveRef, ".mov", CFStringGetSystemEncoding());
|
|
|
|
//
|
|
|
|
// err = NavGetDefaultDialogCreationOptions(&dialogOptions);
|
|
|
|
// dialogOptions.preferenceKey = 7;
|
|
|
|
// dialogOptions.clientName = kMacS9XCFString;
|
|
|
|
// dialogOptions.windowTitle = mesRef;
|
|
|
|
// dialogOptions.saveFileName = saveRef;
|
|
|
|
// dialogOptions.modality = kWindowModalityAppModal;
|
|
|
|
// dialogOptions.parentWindow = NULL;
|
|
|
|
// nav.parent = NULL;
|
|
|
|
//
|
|
|
|
//#ifdef MAC_LEOPARD_TIGER_PANTHER_SUPPORT
|
|
|
|
// eventUPP = NewNavEventUPP((systemVersion < 0x1060) ? NavQTMovieRecordToEventHandler : NavGenericSaveEventHandler);
|
|
|
|
//#else
|
|
|
|
// eventUPP = NewNavEventUPP(NavGenericSaveEventHandler);
|
|
|
|
//#endif
|
|
|
|
//
|
|
|
|
// err = NavCreatePutFileDialog(&dialogOptions, 'MooV', 'TVOD', eventUPP, &nav, &(nav.nref));
|
|
|
|
// if (err == noErr)
|
|
|
|
// {
|
|
|
|
// if (systemVersion >= 0x1060)
|
|
|
|
// {
|
|
|
|
// NSAutoreleasePool *pool;
|
|
|
|
// NSView *view;
|
|
|
|
// NSPopUpButton *fpop;
|
|
|
|
// NSButton *cbds, *cbov, *comp;
|
|
|
|
// NSArray *array;
|
|
|
|
// NavController *controller;
|
|
|
|
//
|
|
|
|
// pool = [[NSAutoreleasePool alloc] init];
|
|
|
|
//
|
|
|
|
// controller = [[[NavController alloc] init] autorelease];
|
|
|
|
// view = [[[NSView alloc] initWithFrame: NSMakeRect(0, 0, 433, 31)] autorelease];
|
|
|
|
//
|
|
|
|
// array = [NSArray arrayWithObjects: @"0", @"1", @"2", @"3", @"4", @"5", nil];
|
|
|
|
// CocoaAddStatTextToView(view, @"QTRecord3", 185, 9, 70, 14, NULL);
|
|
|
|
// CocoaAddCheckBoxToView(view, @"QTRecord1", 5, 7, 85, 18, &cbds);
|
|
|
|
// CocoaAddCheckBoxToView(view, @"QTRecord2", 97, 7, 71, 18, &cbov);
|
|
|
|
// CocoaAddMPushBtnToView(view, @"QTRecord4", 313, 1, 117, 28, &comp);
|
|
|
|
// CocoaAddPopUpBtnToView(view, array, 255, 4, 50, 22, &fpop);
|
|
|
|
//
|
|
|
|
// [cbds setState: (macQTMovFlag & (1 << 0) ? NSOnState : NSOffState)];
|
|
|
|
// [cbov setState: (macQTMovFlag & (1 << 1) ? NSOnState : NSOffState)];
|
|
|
|
// [fpop selectItemAtIndex: (macQTMovFlag >> 8)];
|
|
|
|
//
|
|
|
|
// [comp setTarget: controller];
|
|
|
|
// [comp setAction: @selector(handleCompressButton:)];
|
|
|
|
//
|
|
|
|
// [(NSOpenPanel *) nav.nref setAccessoryView: view];
|
|
|
|
//
|
|
|
|
// err = NavDialogRun(nav.nref);
|
|
|
|
// if (err)
|
|
|
|
// NavDialogDispose(nav.nref);
|
|
|
|
//
|
|
|
|
// macQTMovFlag = 0;
|
|
|
|
// macQTMovFlag |= ((([cbds state] == NSOnState) ? 1 : 0) << 0);
|
|
|
|
// macQTMovFlag |= ((([cbov state] == NSOnState) ? 1 : 0) << 1);
|
|
|
|
// macQTMovFlag |= ([fpop indexOfSelectedItem] << 8);
|
|
|
|
//
|
|
|
|
// [pool release];
|
|
|
|
// }
|
|
|
|
// #ifdef MAC_LEOPARD_TIGER_PANTHER_SUPPORT
|
|
|
|
// else
|
|
|
|
// {
|
|
|
|
// err = NavDialogRun(nav.nref);
|
|
|
|
// if (err)
|
|
|
|
// NavDialogDispose(nav.nref);
|
|
|
|
// }
|
|
|
|
// #endif
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// DisposeNavEventUPP(eventUPP);
|
|
|
|
//
|
|
|
|
// CFRelease(saveRef);
|
|
|
|
// CFRelease(mesRef);
|
|
|
|
// CFRelease(baseRef);
|
|
|
|
// CFRelease(numRef);
|
|
|
|
// CFRelease(romRef);
|
|
|
|
//
|
|
|
|
//#ifdef MAC_LEOPARD_TIGER_PANTHER_SUPPORT
|
|
|
|
// if (systemVersion < 0x1060)
|
|
|
|
// {
|
|
|
|
// CFRelease(nav.customWindow);
|
|
|
|
// DisposeNibReference(nav.customNib);
|
|
|
|
// }
|
|
|
|
//#endif
|
|
|
|
//
|
|
|
|
// if (err)
|
|
|
|
// return (false);
|
|
|
|
// else
|
|
|
|
// {
|
|
|
|
// if (nav.reply)
|
|
|
|
// {
|
|
|
|
// char s[PATH_MAX + 1];
|
|
|
|
//
|
|
|
|
// err = FSRefMakePath(&(nav.ref), (unsigned char *) s, PATH_MAX);
|
|
|
|
// snprintf(path, PATH_MAX + 1, "%s%s%s", s, MAC_PATH_SEPARATOR, nav.name);
|
|
|
|
//
|
|
|
|
// return (true);
|
|
|
|
// }
|
|
|
|
// else
|
|
|
|
// return (false);
|
|
|
|
// }
|
|
|
|
return nil;
|
2011-01-16 06:57:11 +01:00
|
|
|
}
|
|
|
|
|
2019-07-14 05:42:21 +02:00
|
|
|
//bool8 NavChooseFolderSheet (WindowRef parent)
|
|
|
|
//{
|
|
|
|
// OSStatus err;
|
|
|
|
// NavDialogCreationOptions dialogOptions;
|
|
|
|
//
|
|
|
|
// err = NavGetDefaultDialogCreationOptions(&dialogOptions);
|
|
|
|
// dialogOptions.optionFlags &= ~kNavAllowMultipleFiles;
|
|
|
|
// dialogOptions.preferenceKey = 8;
|
|
|
|
// dialogOptions.clientName = kMacS9XCFString;
|
|
|
|
// dialogOptions.modality = kWindowModalityWindowModal;
|
|
|
|
// dialogOptions.parentWindow = parent;
|
|
|
|
// gSheetNav.parent = parent;
|
|
|
|
//
|
|
|
|
// gSheetEventUPP = NewNavEventUPP(NavGenericOpenEventHandler);
|
|
|
|
//
|
|
|
|
// err = NavCreateChooseFolderDialog(&dialogOptions, gSheetEventUPP, NULL, &gSheetNav, &(gSheetNav.nref));
|
|
|
|
// if (err == noErr)
|
|
|
|
// {
|
|
|
|
// err = NavDialogRun(gSheetNav.nref);
|
|
|
|
// if (err)
|
|
|
|
// {
|
|
|
|
// NavDialogDispose(gSheetNav.nref);
|
|
|
|
// DisposeNavEventUPP(gSheetEventUPP);
|
|
|
|
// return (false);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// else
|
|
|
|
// {
|
|
|
|
// DisposeNavEventUPP(gSheetEventUPP);
|
|
|
|
// return (false);
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// return (true);
|
|
|
|
//}
|
|
|
|
//
|
|
|
|
//bool8 NavEndChooseFolderSheet (FSRef *ref)
|
|
|
|
//{
|
|
|
|
// DisposeNavEventUPP(gSheetEventUPP);
|
|
|
|
//
|
|
|
|
// if (gSheetNav.reply)
|
|
|
|
// {
|
|
|
|
// *ref = gSheetNav.ref;
|
|
|
|
// return (true);
|
|
|
|
// }
|
|
|
|
// else
|
|
|
|
// return (false);
|
|
|
|
//}
|