X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fdf565feca722eddb84168a95dbef329ba23d719..a0a2b5c41c8448c478e05b7819b4c173c22c46a8:/src/mac/carbon/dirdlg.cpp?ds=sidebyside diff --git a/src/mac/carbon/dirdlg.cpp b/src/mac/carbon/dirdlg.cpp index baa975e0e6..3b596c9f51 100644 --- a/src/mac/carbon/dirdlg.cpp +++ b/src/mac/carbon/dirdlg.cpp @@ -18,9 +18,9 @@ #ifndef WX_PRECOMP #include "wx/utils.h" #include "wx/dialog.h" + #include "wx/cmndata.h" #endif // WX_PRECOMP -#include "wx/cmndata.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 - 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,13 +77,14 @@ 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()); @@ -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 ; }