X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a2b772607a87ffe6fe9af8c0b64b7259ef10a4a4..b9efe021b554fa3967d1442cf758435c5cd5ae8f:/src/mac/carbon/dirdlg.cpp?ds=inline diff --git a/src/mac/carbon/dirdlg.cpp b/src/mac/carbon/dirdlg.cpp index 9b01d3e236..2150002e42 100644 --- a/src/mac/carbon/dirdlg.cpp +++ b/src/mac/carbon/dirdlg.cpp @@ -9,11 +9,14 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "dirdlg.h" #endif -#include "wx/defs.h" +#include "wx/wxprec.h" + +#if wxUSE_DIRDLG + #include "wx/utils.h" #include "wx/dialog.h" #include "wx/dirdlg.h" @@ -28,9 +31,7 @@ #include #endif -#if !USE_SHARED_LIBRARY IMPLEMENT_CLASS(wxDirDialog, wxDialog) -#endif wxDirDialog::wxDirDialog(wxWindow *parent, const wxString& message, @@ -50,62 +51,47 @@ wxDirDialog::wxDirDialog(wxWindow *parent, int wxDirDialog::ShowModal() { NavDialogOptions mNavOptions; - NavObjectFilterUPP mNavFilterUPP = NULL; - NavPreviewUPP mNavPreviewUPP = NULL ; - NavReplyRecord mNavReply; - AEDesc* mDefaultLocation = NULL ; - bool mSelectDefault = false ; - + NavObjectFilterUPP mNavFilterUPP = NULL; + NavReplyRecord mNavReply; + ::NavGetDefaultDialogOptions(&mNavOptions); - mNavFilterUPP = nil; - mNavPreviewUPP = nil; - mSelectDefault = false; - mNavReply.validRecord = false; - mNavReply.replacing = false; - mNavReply.isStationery = false; - mNavReply.translationNeeded = false; + mNavReply.validRecord = false; + mNavReply.replacing = false; + mNavReply.isStationery = false; + mNavReply.translationNeeded = false; mNavReply.selection.descriptorType = typeNull; - mNavReply.selection.dataHandle = nil; - mNavReply.keyScript = smSystemScript; - mNavReply.fileTranslation = nil; - + mNavReply.selection.dataHandle = nil; + mNavReply.keyScript = smSystemScript; + mNavReply.fileTranslation = nil; + // Set default location, the location // that's displayed when the dialog // first appears - - if ( mDefaultLocation ) { - - if (mSelectDefault) { - mNavOptions.dialogOptionFlags |= kNavSelectDefaultLocation; - } else { - mNavOptions.dialogOptionFlags &= ~kNavSelectDefaultLocation; - } - } - + OSErr err = ::NavChooseFolder( - mDefaultLocation, + NULL, &mNavReply, &mNavOptions, NULL, mNavFilterUPP, 0L); // User Data - + if ( (err != noErr) && (err != userCanceledErr) ) { - m_path = wxT("") ; + m_path = wxEmptyString ; return wxID_CANCEL ; } if (mNavReply.validRecord) { // User chose a folder - + FSRef folderInfo; AEDesc specDesc ; - + OSErr err = ::AECoerceDesc( &mNavReply.selection , typeFSRef, &specDesc); if ( err != noErr ) { - m_path = wxT("") ; + m_path = wxEmptyString ; return wxID_CANCEL ; - } + } folderInfo = **(FSRef**) specDesc.dataHandle; if (specDesc.dataHandle != nil) { ::AEDisposeDesc(&specDesc); @@ -117,3 +103,4 @@ int wxDirDialog::ShowModal() return wxID_CANCEL; } +#endif