diff options
| author | Pietro Gagliardi <[email protected]> | 2014-08-30 23:02:02 -0400 |
|---|---|---|
| committer | Pietro Gagliardi <[email protected]> | 2014-08-30 23:02:02 -0400 |
| commit | 77bf566ebbcb62acd4d08d905d9542d6ff9b6b80 (patch) | |
| tree | eeb8e72bc3bf57f5be7f0c0af4319189ac6de838 /dialog_darwin.m | |
| parent | 155899c65ed32245e2ccad4197a10c77017d835b (diff) | |
...in with the new.
Diffstat (limited to 'dialog_darwin.m')
| -rw-r--r-- | dialog_darwin.m | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/dialog_darwin.m b/dialog_darwin.m new file mode 100644 index 0000000..4fb9e3e --- /dev/null +++ b/dialog_darwin.m @@ -0,0 +1,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); + }]; +} |
