forked from andlabs/ui
-
Notifications
You must be signed in to change notification settings - Fork 0
/
dialog_darwin.m
30 lines (26 loc) · 784 Bytes
/
dialog_darwin.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 19 august 2014
#import "objc_darwin.h"
#import <Cocoa/Cocoa.h>
#define toNSWindow(x) ((NSWindow *) (x))
void openFile(id parent, void *data)
{
NSOpenPanel *op;
op = [NSOpenPanel openPanel];
[op setCanChooseFiles:YES];
[op setCanChooseDirectories:NO];
[op setResolvesAliases:NO];
[op setAllowsMultipleSelection:NO];
[op setShowsHiddenFiles:YES];
[op setCanSelectHiddenExtension:NO];
[op setExtensionHidden:NO];
[op setAllowsOtherFileTypes:YES];
[op setTreatsFilePackagesAsDirectories:YES];
[op beginSheetModalForWindow:toNSWindow(parent) completionHandler:^(NSInteger ret){
if (ret != NSFileHandlingPanelOKButton) {
finishOpenFile(NULL, data);
return;
}
// string freed on the Go side
finishOpenFile(strdup([[[op URL] path] UTF8String]), data);
}];
}