X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/de6185e212ebc37ff11ff70278e3c4f68419b097..8064223b7b1b3657363b7a635c381b9269d95e55:/src/mac/carbon/dirdlg.cpp diff --git a/src/mac/carbon/dirdlg.cpp b/src/mac/carbon/dirdlg.cpp index 60ace1175c..5caa7f6b4b 100644 --- a/src/mac/carbon/dirdlg.cpp +++ b/src/mac/carbon/dirdlg.cpp @@ -17,11 +17,10 @@ #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,30 +64,30 @@ 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()); + wxCFStringRef message(m_message, GetFont().GetEncoding()); options.message = message; err = NavCreateChooseFolderDialog(&options, sStandardNavEventFilter , NULL, this , &dialog); if (err == noErr) @@ -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 ; }