]> git.saurik.com Git - wxWidgets.git/commitdiff
added possible mach-o compliant version
authorStefan Csomor <csomor@advancedconcepts.ch>
Tue, 9 Apr 2002 18:32:17 +0000 (18:32 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Tue, 9 Apr 2002 18:32:17 +0000 (18:32 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15054 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/mac/carbon/filedlg.cpp
src/mac/filedlg.cpp

index 87e78461771bfc7b29dc74e96af6a86bf68a5539..15771305be82e2dcddc19bca92cc655765951512 100644 (file)
@@ -491,17 +491,36 @@ int wxFileDialog::ShowModal()
                                if (specDesc.dataHandle != nil) {
                                        ::AEDisposeDesc(&specDesc);
                                }
                                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 ) ;
                                m_path = wxMacFSSpec2MacFilename( &outFileSpec ) ;
+#endif
                                m_paths.Add( m_path ) ;
                                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 ;
                }
        NavDisposeReply( &mNavReply ) ;
                        return wxID_OK ;
                }
index 87e78461771bfc7b29dc74e96af6a86bf68a5539..15771305be82e2dcddc19bca92cc655765951512 100644 (file)
@@ -491,17 +491,36 @@ int wxFileDialog::ShowModal()
                                if (specDesc.dataHandle != nil) {
                                        ::AEDisposeDesc(&specDesc);
                                }
                                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 ) ;
                                m_path = wxMacFSSpec2MacFilename( &outFileSpec ) ;
+#endif
                                m_paths.Add( m_path ) ;
                                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 ;
                }
        NavDisposeReply( &mNavReply ) ;
                        return wxID_OK ;
                }