]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/dirdlg.cpp
use wx-style header and commets; fix indentation to be 4 spaces; move Doxygen comment...
[wxWidgets.git] / src / mac / carbon / dirdlg.cpp
index fedf03ccaeb4f0421b7744d984c16f0b547c8217..5caa7f6b4bb218fc37308e82dfdbe19e22f721e5 100644 (file)
@@ -52,11 +52,11 @@ static pascal void NavEventProc(
         {
             // Set default location for the modern Navigation APIs
             // Apple Technical Q&A 1151
-            FSSpec theFSSpec;
-            wxMacFilename2FSSpec(data->GetPath(), &theFSSpec);
+            FSRef theFile;
+            wxMacPathToFSRef(data->GetPath(), &theFile);
             AEDesc theLocation = { typeNull, NULL };
-            if (noErr == ::AECreateDesc(typeFSS, &theFSSpec, sizeof(FSSpec), &theLocation))
-                ::NavCustomControl(ioParams->context, kNavCtlSetLocation, (void *) &theLocation);
+            if (noErr == ::AECreateDesc(typeFSRef, &theFile, sizeof(FSRef), &theLocation))
+                 ::NavCustomControl(ioParams->context, kNavCtlSetLocation, (void *) &theLocation);
         }
     }
 }
@@ -64,7 +64,7 @@ static pascal void NavEventProc(
 wxDirDialog::wxDirDialog(wxWindow *parent,
                          const wxString& message,
                          const wxString& defaultPath,
-                         long style,
+                         long WXUNUSED(style),
                          const wxPoint& WXUNUSED(pos),
                          const wxSize& WXUNUSED(size),
                          const wxString& WXUNUSED(name))
@@ -77,16 +77,17 @@ wxDirDialog::wxDirDialog(wxWindow *parent,
 
 int wxDirDialog::ShowModal()
 {
-    NavDialogRef dialog;
+    NavDialogRef dialog = NULL;
     NavDialogCreationOptions options;
     NavReplyRecord reply ;
     bool disposeReply = false ;
     OSStatus err = noErr;
 
     err = NavGetDefaultDialogCreationOptions(&options);
+    options.optionFlags &= ~kNavAllowMultipleFiles;
     if (err == noErr)
     {
-        wxMacCFStringHolder message(m_message, m_font.GetEncoding());
+        wxCFStringRef message(m_message, GetFont().GetEncoding());
         options.message = message;
         err = NavCreateChooseFolderDialog(&options, sStandardNavEventFilter , NULL,  this , &dialog);
         if (err == noErr)
@@ -135,6 +136,9 @@ int wxDirDialog::ShowModal()
     if ( err != noErr && err != userCanceledErr )
         m_path = wxEmptyString ;
 
+       if ( dialog )
+       ::NavDialogDispose(dialog);
+
     return (err == noErr) ? wxID_OK : wxID_CANCEL ;
 }