- NavDialogOptions mNavOptions;
- NavObjectFilterUPP mNavFilterUPP = NULL;
- NavPreviewUPP mNavPreviewUPP = NULL ;
- NavReplyRecord mNavReply;
- AEDesc* mDefaultLocation = NULL ;
- bool mSelectDefault = false ;
-
- ::NavGetDefaultDialogOptions(&mNavOptions);
-
- mNavFilterUPP = nil;
- mNavPreviewUPP = nil;
- mSelectDefault = false;
- mNavReply.validRecord = false;
- mNavReply.replacing = false;
- mNavReply.isStationery = false;
- mNavReply.translationNeeded = false;
- mNavReply.selection.descriptorType = typeNull;
- mNavReply.selection.dataHandle = nil;
- mNavReply.keyScript = smSystemScript;
- mNavReply.fileTranslation = nil;
-
- // Set default location, the location
- // that's displayed when the dialog
- // first appears
-
- if ( mDefaultLocation ) {
-
- if (mSelectDefault) {
- mNavOptions.dialogOptionFlags |= kNavSelectDefaultLocation;
- } else {
- mNavOptions.dialogOptionFlags &= ~kNavSelectDefaultLocation;
+ NavDialogRef dialog = NULL;
+ NavDialogCreationOptions options;
+ NavReplyRecord reply ;
+ bool disposeReply = false ;
+ OSStatus err = noErr;
+
+ err = NavGetDefaultDialogCreationOptions(&options);
+ options.optionFlags &= ~kNavAllowMultipleFiles;
+ if (err == noErr)
+ {
+ wxCFStringRef message(m_message, GetFont().GetEncoding());
+ options.message = message;
+ err = NavCreateChooseFolderDialog(&options, sStandardNavEventFilter , NULL, this , &dialog);
+ if (err == noErr)
+ {
+ err = NavDialogRun(dialog);
+ if ( err == noErr )
+ {
+ err = NavDialogGetReply(dialog, &reply);
+ disposeReply = true ;
+ }