File tree Expand file tree Collapse file tree 2 files changed +31
-0
lines changed Expand file tree Collapse file tree 2 files changed +31
-0
lines changed Original file line number Diff line number Diff line change @@ -132,6 +132,7 @@ namespace Polycode {
132132 void removeDiskItem (const String& itemPath);
133133 String openFolderPicker ();
134134 vector<String> openFilePicker (vector<CoreFileExtension> extensions, bool allowMultiple);
135+ String saveFilePicker (std::vector<CoreFileExtension> extensions);
135136
136137 String executeExternalCommand (String command, String args, String inDirectory=" " );
137138
Original file line number Diff line number Diff line change @@ -571,6 +571,36 @@ long getThreadID() {
571571 }
572572}
573573
574+ String CocoaCore::saveFilePicker (std::vector<CoreFileExtension> extensions) {
575+ unlockMutex (eventMutex);
576+ String retString;
577+ NSSavePanel *attachmentPanel = [NSSavePanel savePanel ];
578+
579+ [attachmentPanel setCanCreateDirectories: YES ];
580+
581+ NSMutableArray *types = nil ;
582+
583+ if (extensions.size () > 0 ) {
584+ types = [[NSMutableArray alloc ] init ];
585+ for (int i=0 ; i < extensions.size (); i++) {
586+ CoreFileExtension extInfo = extensions[i];
587+ [types addObject: [NSString stringWithUTF8String: extInfo.extension.c_str ()]];
588+ }
589+ }
590+ [attachmentPanel setAllowedFileTypes: types];
591+
592+ if ( [attachmentPanel runModal ] == NSOKButton )
593+ {
594+ NSURL * url = [attachmentPanel URL ];
595+ if (url) {
596+ NSString * fileName = [url path ];
597+ retString = [fileName UTF8String ];
598+ }
599+ }
600+
601+ return retString;
602+ }
603+
574604vector<String> CocoaCore::openFilePicker (vector<CoreFileExtension> extensions, bool allowMultiple) {
575605 unlockMutex (eventMutex);
576606 vector<String> retVector;
You can’t perform that action at this time.
0 commit comments