]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/dirdlg.cpp
check that the version of __sync_sub_and_fetch that returns a value is supported...
[wxWidgets.git] / src / mac / carbon / dirdlg.cpp
index baa975e0e640912884d4780d275d8c77d0888fa6..3b596c9f5130c82c82cbabeae591239865e55cd2 100644 (file)
@@ -18,9 +18,9 @@
 #ifndef WX_PRECOMP
     #include "wx/utils.h"
     #include "wx/dialog.h"
 #ifndef WX_PRECOMP
     #include "wx/utils.h"
     #include "wx/dialog.h"
+    #include "wx/cmndata.h"
 #endif // WX_PRECOMP
 
 #endif // WX_PRECOMP
 
-#include "wx/cmndata.h"
 #include "wx/filename.h"
 
 #include "wx/mac/private.h"
 #include "wx/filename.h"
 
 #include "wx/mac/private.h"
@@ -52,11 +52,11 @@ static pascal void NavEventProc(
         {
             // Set default location for the modern Navigation APIs
             // Apple Technical Q&A 1151
         {
             // 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 };
             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,
 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))
                          const wxPoint& WXUNUSED(pos),
                          const wxSize& WXUNUSED(size),
                          const wxString& WXUNUSED(name))
@@ -77,13 +77,14 @@ wxDirDialog::wxDirDialog(wxWindow *parent,
 
 int wxDirDialog::ShowModal()
 {
 
 int wxDirDialog::ShowModal()
 {
-    NavDialogRef dialog;
+    NavDialogRef dialog = NULL;
     NavDialogCreationOptions options;
     NavReplyRecord reply ;
     bool disposeReply = false ;
     OSStatus err = noErr;
 
     err = NavGetDefaultDialogCreationOptions(&options);
     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());
     if (err == noErr)
     {
         wxMacCFStringHolder message(m_message, m_font.GetEncoding());
@@ -135,6 +136,9 @@ int wxDirDialog::ShowModal()
     if ( err != noErr && err != userCanceledErr )
         m_path = wxEmptyString ;
 
     if ( err != noErr && err != userCanceledErr )
         m_path = wxEmptyString ;
 
+       if ( dialog )
+       ::NavDialogDispose(dialog);
+
     return (err == noErr) ? wxID_OK : wxID_CANCEL ;
 }
 
     return (err == noErr) ? wxID_OK : wxID_CANCEL ;
 }