]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/dirdlg.cpp
fix compilation error after r50329: wxMenu doesn't have HandleWindowEvent() as it...
[wxWidgets.git] / src / mac / carbon / dirdlg.cpp
index 60ace1175cee30fff116843a5e2a93660e82e7e4..3b596c9f5130c82c82cbabeae591239865e55cd2 100644 (file)
 
 #ifndef WX_PRECOMP
     #include "wx/utils.h"
+    #include "wx/dialog.h"
+    #include "wx/cmndata.h"
 #endif // WX_PRECOMP
 
-#include "wx/dialog.h"
-
-#include "wx/cmndata.h"
 #include "wx/filename.h"
 
 #include "wx/mac/private.h"
@@ -53,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);
         }
     }
 }
@@ -65,27 +64,27 @@ 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))
 {
     wxASSERT_MSG( NavServicesAvailable() , wxT("Navigation Services are not running") ) ;
     m_message = message;
-    m_dialogStyle = style;
     m_parent = parent;
     m_path = defaultPath;
 }
 
 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());
@@ -137,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 ;
 }