From 9854b6eddf82c31af6753452bb3c2d0b7cb7d2a8 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Tue, 9 Apr 2002 18:32:17 +0000 Subject: [PATCH] added possible mach-o compliant version git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15054 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/mac/carbon/filedlg.cpp | 37 ++++++++++++++++++++++++++++--------- src/mac/filedlg.cpp | 37 ++++++++++++++++++++++++++++--------- 2 files changed, 56 insertions(+), 18 deletions(-) diff --git a/src/mac/carbon/filedlg.cpp b/src/mac/carbon/filedlg.cpp index 87e7846177..15771305be 100644 --- a/src/mac/carbon/filedlg.cpp +++ b/src/mac/carbon/filedlg.cpp @@ -491,17 +491,36 @@ int wxFileDialog::ShowModal() if (specDesc.dataHandle != nil) { ::AEDisposeDesc(&specDesc); } - - - // outFolderDirID = thePB.dirInfo.ioDrDirID; +#ifdef __DARWIN__ + FSRef fsr ; + err = FSpMakeFSRef( &outFileSpec , &fsr ) ; + if ( err == fnfErr ) + { + FSSpec fss ; + err = FSMakeFSSpec( outFileSpec.vRefNum , outFileSpec.parID, "\p" , &fss ) ; + err = FSpMakeFSRef( &fss , &fsr ) ; + char path[256] ; + err = FSRefMakePath( &fsr , (unsigned char*) path , sizeof(path) ) ; + strcat( path , "/" ) ; + p2cstr( outFileSpec.name ) ; + strcat( path , (char*) outFileSpec.name ) ; + m_path = path ; + } + else + { + m_path = wxMacFSSpec2MacFilename( &outFileSpec ) ; + } +#else m_path = wxMacFSSpec2MacFilename( &outFileSpec ) ; +#endif m_paths.Add( m_path ) ; - m_fileNames.Add(m_fileName); - } - // set these to the first hit - m_path = m_paths[ 0 ] ; - m_fileName = wxFileNameFromPath(m_path); - m_dir = wxPathOnly(m_path); + m_fileName = wxFileNameFromPath(m_path); + m_fileNames.Add(m_fileName); + } + // set these to the first hit + m_path = m_paths[ 0 ] ; + m_fileName = wxFileNameFromPath(m_path); + m_dir = wxPathOnly(m_path); NavDisposeReply( &mNavReply ) ; return wxID_OK ; } diff --git a/src/mac/filedlg.cpp b/src/mac/filedlg.cpp index 87e7846177..15771305be 100644 --- a/src/mac/filedlg.cpp +++ b/src/mac/filedlg.cpp @@ -491,17 +491,36 @@ int wxFileDialog::ShowModal() if (specDesc.dataHandle != nil) { ::AEDisposeDesc(&specDesc); } - - - // outFolderDirID = thePB.dirInfo.ioDrDirID; +#ifdef __DARWIN__ + FSRef fsr ; + err = FSpMakeFSRef( &outFileSpec , &fsr ) ; + if ( err == fnfErr ) + { + FSSpec fss ; + err = FSMakeFSSpec( outFileSpec.vRefNum , outFileSpec.parID, "\p" , &fss ) ; + err = FSpMakeFSRef( &fss , &fsr ) ; + char path[256] ; + err = FSRefMakePath( &fsr , (unsigned char*) path , sizeof(path) ) ; + strcat( path , "/" ) ; + p2cstr( outFileSpec.name ) ; + strcat( path , (char*) outFileSpec.name ) ; + m_path = path ; + } + else + { + m_path = wxMacFSSpec2MacFilename( &outFileSpec ) ; + } +#else m_path = wxMacFSSpec2MacFilename( &outFileSpec ) ; +#endif m_paths.Add( m_path ) ; - m_fileNames.Add(m_fileName); - } - // set these to the first hit - m_path = m_paths[ 0 ] ; - m_fileName = wxFileNameFromPath(m_path); - m_dir = wxPathOnly(m_path); + m_fileName = wxFileNameFromPath(m_path); + m_fileNames.Add(m_fileName); + } + // set these to the first hit + m_path = m_paths[ 0 ] ; + m_fileName = wxFileNameFromPath(m_path); + m_dir = wxPathOnly(m_path); NavDisposeReply( &mNavReply ) ; return wxID_OK ; } -- 2.45.2