1#import <Foundation/Foundation.h>
8+ (void) createOpenPanel:(NSString*)title
9 directory:(NSString*)directory
10 filters:(NSString*)filters
11 multiselect:(BOOL)multiselect
12 canChooseFiles:(BOOL)canChooseFiles
13 canChooseFolders:(BOOL)canChooseFolders
19 const char* directory,
23 const char* directory,
28 const char* directory,
31 const char* directory,
35 const char* directory,
36 const char* defaultName,
39 const char* directory,
40 const char* defaultName,
47 const char* directory,
55 const char* directory,
61 directory:[NSString stringWithUTF8String:directory ?: ""]
62 filters:[NSString stringWithUTF8String:filters ?: ""]
70 const char* directory,
76 const char* directory,
81 directory:[NSString stringWithUTF8String:directory ?: ""]
90 const char* directory,
91 const char* defaultName,
92 const char* filters) {
97 const char* directory,
98 const char* defaultName,
103 directory:[NSString stringWithUTF8String:directory ?: ""]
112+ (void) documentPicker:(UIDocumentPickerViewController *)controller
113 didPickDocumentsAtURLs:(NSArray <NSURL *>*)urls {
114 NSString* pathsStr =
@"";
115 NSMutableArray* paths = [NSMutableArray arrayWithCapacity:[urls count]];
116 for (
int i = 0; i < [urls count]; i++) {
117 NSURL* url = [urls objectAtIndex:i];
118 [paths addObject:[url path]];
120 NSString* seperator = [NSString stringWithFormat:@"%c", 28];
121 pathsStr = [paths componentsJoinedByString:seperator];
123 asyncCallback([pathsStr UTF8String]);
126+ (void) documentPicker:(UIDocumentPickerViewController *)controller
127 didPickDocumentAtURL:(NSURL *)url {
128 NSString* pathsStr =
@"";
129 NSMutableArray* paths = [NSMutableArray arrayWithCapacity:1];
130 [paths addObject:[url path]];
131 NSString* seperator = [NSString stringWithFormat:@"%c", 28];
132 pathsStr = [paths componentsJoinedByString:seperator];
134 asyncCallback([pathsStr UTF8String]);
137+ (void) createOpenPanel:(NSString*)title
138 directory:(NSString*)directory
139 filters:(NSString*)filters
140 multiselect:(BOOL)multiselect
141 canChooseFiles:(BOOL)canChooseFiles
142 canChooseFolders:(BOOL)canChooseFolders
145 NSURL* url = [NSURL URLWithString:directory];
146 NSMutableArray* fileTypes = [[NSMutableArray alloc] init];
147 if (canChooseFiles) {
148 [fileTypes addObject:@"public.item"];
150 if (canChooseFolders) {
151 [fileTypes addObject:@"public.directory"];
153 UIDocumentPickerViewController *controller = [[UIDocumentPickerViewController alloc]
154 initWithDocumentTypes:fileTypes
155 inMode:save?UIDocumentPickerModeExportToService:UIDocumentPickerModeImport];
156 [controller setTitle:title];
157 [controller setDirectoryURL:url];
158 [controller setAllowsMultipleSelection:multiselect];
159 [controller setShouldShowFileExtensions:true];
160 [controller setDelegate:self];
161 [UnityGetGLViewController() presentViewController:controller animated:YES completion:nil];
const char * DialogOpenFilePanel(const char *title, const char *directory, const char *filters, bool multiselect)
void DialogOpenFilePanelAsync(const char *title, const char *directory, const char *filters, bool multiselect, callbackFunc cb)
const char * DialogSaveFilePanel(const char *title, const char *directory, const char *defaultName, const char *filters)
void DialogSaveFilePanelAsync(const char *title, const char *directory, const char *defaultName, const char *filters, callbackFunc cb)
void(* callbackFunc)(const char *)
const char * DialogOpenFolderPanel(const char *title, const char *directory, bool multiselect)
UIViewController * UnityGetGLViewController()
void DialogOpenFolderPanelAsync(const char *title, const char *directory, bool multiselect, callbackFunc cb)
void createOpenPanel:directory:filters:multiselect:canChooseFiles:canChooseFolders:save:(NSString *title,[directory] NSString *directory,[filters] NSString *filters,[multiselect] BOOL multiselect,[canChooseFiles] BOOL canChooseFiles,[canChooseFolders] BOOL canChooseFolders,[save] BOOL save)