Implemented uiOpenFile() and uiSaveFile() on OS X.

This commit is contained in:
Pietro Gagliardi 2015-08-25 19:10:29 -04:00
parent 03bb30947c
commit ccd46d11f7
1 changed files with 36 additions and 4 deletions

View File

@ -1,16 +1,48 @@
// 26 june 2015 // 26 june 2015
#import "uipriv_darwin.h" #import "uipriv_darwin.h"
// TODO is whether extensions are shown a Finder setting?
static void setupSavePanel(NSSavePanel *s)
{
[s setCanCreateDirectories:YES];
[s setShowsHiddenFiles:YES];
[s setExtensionHidden:NO];
[s setCanSelectHiddenExtension:NO];
[s setTreatsFilePackagesAsDirectories:YES];
}
static char *runSavePanel(NSSavePanel *s)
{
char *filename;
if ([s runModal] != NSFileHandlingPanelOKButton)
return NULL;
filename = uiDarwinNSStringToText([[s URL] path]);
return filename;
}
char *uiOpenFile(void) char *uiOpenFile(void)
{ {
// TODO NSOpenPanel *o;
return NULL;
o = [NSOpenPanel openPanel];
[o setCanChooseFiles:YES];
[o setCanChooseDirectories:NO];
[o setResolvesAliases:NO];
[o setAllowsMultipleSelection:NO];
setupSavePanel(o);
// panel is autoreleased
return runSavePanel(o);
} }
char *uiSaveFile(void) char *uiSaveFile(void)
{ {
// TODO NSSavePanel *s;
return NULL;
s = [NSSavePanel savePanel];
setupSavePanel(s);
// panel is autoreleased
return runSavePanel(s);
} }
void uiMsgBox(const char *title, const char *description) void uiMsgBox(const char *title, const char *description)