X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2646f485163f410baaad5bcf49028c604a352d19..3f4a2351e4c677c88c18ea812b609477adee7380:/src/mac/classic/dirdlg.cpp diff --git a/src/mac/classic/dirdlg.cpp b/src/mac/classic/dirdlg.cpp index 0b4c7df195..4fc1a2b21c 100644 --- a/src/mac/classic/dirdlg.cpp +++ b/src/mac/classic/dirdlg.cpp @@ -1,24 +1,27 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: dirdlg.cpp +// Name: src/mac/classic/dirdlg.cpp // Purpose: wxDirDialog // Author: Stefan Csomor // Modified by: // Created: 1998-01-01 // RCS-ID: $Id$ // Copyright: (c) Stefan Csomor -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "dirdlg.h" +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop #endif -#include "wx/defs.h" -#include "wx/utils.h" -#include "wx/dialog.h" #include "wx/dirdlg.h" -#include "wx/cmndata.h" +#ifndef WX_PRECOMP + #include "wx/utils.h" + #include "wx/dialog.h" + #include "wx/cmndata.h" +#endif // WX_PRECOMP #include "wx/mac/private.h" @@ -28,9 +31,7 @@ #include #endif -#if !USE_SHARED_LIBRARY IMPLEMENT_CLASS(wxDirDialog, wxDialog) -#endif wxDirDialog::wxDirDialog(wxWindow *parent, const wxString& message, @@ -42,7 +43,7 @@ wxDirDialog::wxDirDialog(wxWindow *parent, { wxASSERT_MSG( NavServicesAvailable() , wxT("Navigation Services are not running") ) ; m_message = message; - m_dialogStyle = style; + m_windowStyle = style; m_parent = parent; m_path = defaultPath; } @@ -55,7 +56,7 @@ int wxDirDialog::ShowModal() NavReplyRecord mNavReply; AEDesc* mDefaultLocation = NULL ; bool mSelectDefault = false ; - + ::NavGetDefaultDialogOptions(&mNavOptions); mNavFilterUPP = nil; @@ -69,20 +70,20 @@ int wxDirDialog::ShowModal() 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, &mNavReply, @@ -90,36 +91,36 @@ int wxDirDialog::ShowModal() 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 - + FSSpec folderInfo; FSSpec outFileSpec ; AEDesc specDesc ; - + OSErr err = ::AECoerceDesc( &mNavReply.selection , typeFSS, &specDesc); if ( err != noErr ) { - m_path = wxT("") ; + m_path = wxEmptyString ; return wxID_CANCEL ; - } + } folderInfo = **(FSSpec**) specDesc.dataHandle; if (specDesc.dataHandle != nil) { ::AEDisposeDesc(&specDesc); } // mNavReply.GetFileSpec(folderInfo); - + // The FSSpec from NavChooseFolder is NOT the file spec // for the folder. The parID field is actually the DirID // of the folder itself, not the folder's parent, and // the name field is empty. We must call PBGetCatInfo // to get the parent DirID and folder name - + Str255 name; CInfoPBRec thePB; // Directory Info Parameter Block thePB.dirInfo.ioCompletion = nil; @@ -127,20 +128,19 @@ int wxDirDialog::ShowModal() thePB.dirInfo.ioDrDirID = folderInfo.parID; // Folder's DirID thePB.dirInfo.ioNamePtr = name; thePB.dirInfo.ioFDirIndex = -1; // Lookup using Volume and DirID - + err = ::PBGetCatInfoSync(&thePB); if ( err != noErr ) { - m_path = wxT("") ; + m_path = wxEmptyString; return wxID_CANCEL ; - } + } // Create cannonical FSSpec ::FSMakeFSSpec(thePB.dirInfo.ioVRefNum, thePB.dirInfo.ioDrParID, name, &outFileSpec); - + // outFolderDirID = thePB.dirInfo.ioDrDirID; m_path = wxMacFSSpec2MacFilename( &outFileSpec ) ; return wxID_OK ; } return wxID_CANCEL; } -