summaryrefslogtreecommitdiff
path: root/redo/dialog_darwin.m
diff options
context:
space:
mode:
Diffstat (limited to 'redo/dialog_darwin.m')
-rw-r--r--redo/dialog_darwin.m29
1 files changed, 29 insertions, 0 deletions
diff --git a/redo/dialog_darwin.m b/redo/dialog_darwin.m
new file mode 100644
index 0000000..98b2ae8
--- /dev/null
+++ b/redo/dialog_darwin.m
@@ -0,0 +1,29 @@
+// 19 august 2014
+
+#import "objc_darwin.h"
+#import <Cocoa/Cocoa.h>
+
+char *openFile(void)
+{
+ NSOpenPanel *op;
+ NSInteger ret;
+
+ 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];
+ // disable custom events
+ // TODO doesn't seem to work
+ dispatch_suspend(dispatch_get_main_queue());
+ ret = [op runModal];
+ dispatch_resume(dispatch_get_main_queue());
+ if (ret != NSFileHandlingPanelOKButton)
+ return NULL;
+ return strdup([[[op URL] path] UTF8String]);
+}