]> git.saurik.com Git - wxWidgets.git/commitdiff
use MoreFiles under Mac OS X
authorGilles Depeyrot <gilles_depeyrot@mac.com>
Sat, 13 Oct 2001 21:12:44 +0000 (21:12 +0000)
committerGilles Depeyrot <gilles_depeyrot@mac.com>
Sat, 13 Oct 2001 21:12:44 +0000 (21:12 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11973 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/filefn.cpp
src/mac/carbon/filedlg.cpp
src/mac/carbon/utils.cpp
src/mac/filedlg.cpp
src/mac/utils.cpp

index 5b59a1baba0edbdcf8733611ae8561d298f8a616..1f02317c40acec0b7bf7abe9e3b6fabbf2f58dbc 100644 (file)
 
 extern wxChar *wxBuffer;
 
-#if defined(__WXMAC__) && !defined(__UNIX__)
-    #include "morefile.h"
-    #include "moreextr.h"
-    #include "fullpath.h"
-    #include "fspcompa.h"
+#ifdef __WXMAC__
+#    include "MoreFiles.h"
+#    include "MoreFilesExtras.h"
+#    include "FullPath.h"
+#    include "FSpCompat.h"
 #endif
 
 IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxStringList)
@@ -143,7 +143,11 @@ const off_t wxInvalidOffset = (off_t)-1;
 // ----------------------------------------------------------------------------
 
 // we need to translate Mac filenames before passing them to OS functions
+#if defined(__WXMAC__) && defined(__DARWIN__)
+    #define OS_FILENAME(s) wxMac2UnixFilename(s.fn_str())
+#else
     #define OS_FILENAME(s) (s.fn_str())
+#endif
 
 // ============================================================================
 // implementation
@@ -829,7 +833,7 @@ wxString wxPathOnly (const wxString& path)
 // and back again - or we get nasty problems with delimiters.
 // Also, convert to lower case, since case is significant in UNIX.
 
-#if defined(__WXMAC__) && !defined(__UNIX__)
+#if defined(__WXMAC__)
 wxString wxMacFSSpec2MacFilename( const FSSpec *spec )
 {
     Handle    myPath ;
@@ -1703,7 +1707,7 @@ wxChar *wxGetWorkingDirectory(wxChar *buf, int sz)
   char *cbuf = new char[sz+1];
 #ifdef _MSC_VER
   if (_getcwd(cbuf, sz) == NULL) {
-#elif defined(__WXMAC__) && !defined(__UNIX__)
+#elif defined(__WXMAC__)
     enum
     {
         SFSaveDisk = 0x214, CurDirStore = 0x398
index 504b2af6daba2af6b0cacac5a844b31adefd93ca..6abb80c8d7c6c7e01c78d52f3cc317ce03515d25 100644 (file)
@@ -34,10 +34,8 @@ IMPLEMENT_CLASS(wxFileDialog, wxDialog)
   #include <Navigation.h>
 #endif
 
-#ifndef __DARWIN__
-  #include "MoreFiles.h"
-  #include "MoreFilesExtras.h"
-#endif
+#include "MoreFiles.h"
+#include "MoreFilesExtras.h"
 
 extern bool gUseNavServices ;
 
@@ -302,6 +300,8 @@ void MakeUserDataRec(OpenUserDataRec        *myData , const wxString& filter )
        }
 
 }
+
+#if !TARGET_CARBON
 void ExtendedOpenFile( ConstStr255Param message , ConstStr255Param path , const char *filter , FileFilterYDUPP fileFilter, StandardFileReply *theSFR )
 {
        Point                           thePt;
@@ -314,7 +314,6 @@ void ExtendedOpenFile( ConstStr255Param message , ConstStr255Param path , const
        OSErr                           err;
        SFTypeList                      types ;
        
-       
        // presumably we're running System 7 or later so CustomGetFile is
        // available
        
@@ -327,8 +326,6 @@ void ExtendedOpenFile( ConstStr255Param message , ConstStr255Param path , const
        MakeUserDataRec( &myData , filter ) ;
        // display the dialog
 
-#if !TARGET_CARBON
-       
        dlgHookUPP = NULL ;
 //     dlgHookUPP = NewDlgHookYDProc(SFGetFolderDialogHook);
        myModalFilterUPP = NewModalFilterYDProc(SFGetFolderModalDialogFilter);
@@ -338,21 +335,20 @@ void ExtendedOpenFile( ConstStr255Param message , ConstStr255Param path , const
        ParamText( message , NULL , NULL , NULL ) ;
        
        CustomGetFile(  fileFilter, 
-                                       -1,                                     // show all types
-                                       NULL,
-                                       theSFR,
-                                       kSFGetFileDlgID,
-                                       thePt,                          // top left point
-                                       dlgHookUPP,
-                                       myModalFilterUPP,
-                                       nil,                            // activate list
-                                       nil,                            // activate proc
-                                       &myData);
+                       -1,                             // show all types
+                       NULL,
+                       theSFR,
+                       kSFGetFileDlgID,
+                       thePt,                          // top left point
+                       dlgHookUPP,
+                       myModalFilterUPP,
+                       nil,                            // activate list
+                       nil,                            // activate proc
+                       &myData);
                                        
        DisposeRoutineDescriptor(dlgHookUPP);
        DisposeRoutineDescriptor(myModalFilterUPP);
-#else
-#endif 
+
        // if cancel wasn't pressed and no fatal error occurred...
        
        if (theSFR->sfGood)
@@ -363,7 +359,7 @@ void ExtendedOpenFile( ConstStr255Param message , ConstStr255Param path , const
                if (theSFR->sfFile.name[0] == '\0')
                {
                        err = FSMakeFSSpec(theSFR->sfFile.vRefNum, theSFR->sfFile.parID,
-                                                               "\p", &tempSpec);
+                                          "\p", &tempSpec);
                        if (err == noErr)
                        {
                                theSFR->sfFile = tempSpec;
@@ -406,38 +402,45 @@ void ExtendedOpenFile( ConstStr255Param message , ConstStr255Param path , const
                }
        }
 }
+#endif
 
 static Boolean CheckFile( ConstStr255Param name , OSType type , OpenUserDataRecPtr data)
 {
-         Str255                        filename ;
-               PLstrcpy( filename , name ) ;
+    Str255                     filename ;
+    
+#if TARGET_CARBON
+    p2cstrcpy((char *)filename, name) ;
+#else
+    PLstrcpy( filename , name ) ;
     p2cstr( filename ) ;
+#endif
     wxString file(filename) ;
     file.MakeUpper() ;
     
-               if ( data->numfilters > 0 )
-               {
-               //for ( int i = 0 ; i < data->numfilters ; ++i )
-               int i = data->currentfilter ;
-               if ( data->extensions[i].Right(2) == ".*" )
-                 return true ;
-                 
-               {
-                       if ( type == data->filtermactypes[i] )
-                               return true ;
-
-        wxString extension = data->extensions[i] ;
-        if ( extension.GetChar(0) == '*' )
-          extension = extension.Mid(1) ;
-
-                       if ( file.Len() >= extension.Len() && extension == file.Right(extension.Len() ) )
-                                       return true ;
-               }
-               return false ;
-       }
-       return true ;
+    if ( data->numfilters > 0 )
+    {
+       //for ( int i = 0 ; i < data->numfilters ; ++i )
+       int i = data->currentfilter ;
+       if ( data->extensions[i].Right(2) == ".*" )
+           return true ;
+       
+       {
+           if ( type == data->filtermactypes[i] )
+               return true ;
+           
+           wxString extension = data->extensions[i] ;
+           if ( extension.GetChar(0) == '*' )
+               extension = extension.Mid(1) ;
+           
+           if ( file.Len() >= extension.Len() && extension == file.Right(extension.Len() ) )
+               return true ;
+       }
+       return false ;
+    }
+    return true ;
 }
 
+#if !TARGET_CARBON
 static pascal Boolean CrossPlatformFileFilter(CInfoPBPtr myCInfoPBPtr, void *dataPtr)
 {      
        OpenUserDataRecPtr data = (OpenUserDataRecPtr) dataPtr ;
@@ -462,6 +465,7 @@ static pascal Boolean CrossPlatformFileFilter(CInfoPBPtr myCInfoPBPtr, void *dat
                
        return false ;
 }
+#endif
 
 // end wxmac
 
@@ -571,7 +575,7 @@ pascal Boolean CrossPlatformFilterCallback (
 
 int wxFileDialog::ShowModal()
 {
-       #if !TARGET_CARBON
+#if !TARGET_CARBON
        if ( !gUseNavServices )
        {
        if ( m_dialogStyle & wxSAVE )
@@ -580,25 +584,12 @@ int wxFileDialog::ShowModal()
                Str255                          prompt ;
                Str255                          filename ;
 
-#if TARGET_CARBON
-               c2pstrcpy((StringPtr)prompt, m_message) ;
-#else
                strcpy((char *)prompt, m_message) ;
                c2pstr((char *)prompt ) ;
-#endif
-#if TARGET_CARBON
-               c2pstrcpy((StringPtr)filename, m_fileName) ;
-#else
                strcpy((char *)filename, m_fileName) ;
                c2pstr((char *)filename ) ;
-#endif
 
-               #if !TARGET_CARBON
-               
                StandardPutFile( prompt , filename , &reply ) ;
-       
-               #else
-               #endif
                if ( reply.sfGood == false )
                {
                        m_path = "" ;
@@ -616,30 +607,17 @@ int wxFileDialog::ShowModal()
                Str255                          prompt ;
                Str255                          path ;
 
-#if TARGET_CARBON
-               c2pstrcpy((StringPtr)prompt, m_message) ;
-#else
                strcpy((char *)prompt, m_message) ;
                c2pstr((char *)prompt ) ;
-#endif
-#if TARGET_CARBON
-               c2pstrcpy((StringPtr)path, m_dir ) ;
-#else
                strcpy((char *)path, m_dir ) ;
                c2pstr((char *)path ) ;
-#endif
 
                StandardFileReply       reply ;
                FileFilterYDUPP crossPlatformFileFilterUPP = 0 ;
-               #if !TARGET_CARBON
                crossPlatformFileFilterUPP = 
                        NewFileFilterYDProc(CrossPlatformFileFilter);
-               #endif
-
                ExtendedOpenFile( prompt , path , m_wildCard , crossPlatformFileFilterUPP, &reply);
-               #if !TARGET_CARBON
                DisposeFileFilterYDUPP(crossPlatformFileFilterUPP);
-               #endif
                if ( reply.sfGood == false )
                {
                        m_path = "" ;
index e490ce4583ae7f6e934ba46af29eb78a628459e4..56c404aa9972d5348a9ea22f2af82de740b1c99b 100644 (file)
 #include <string.h>
 #include <stdarg.h>
 
-#ifndef __DARWIN__
-  #include "MoreFiles.h"
-  #include "MoreFilesExtras.h"
-#endif
+#include "MoreFiles.h"
+#include "MoreFilesExtras.h"
 
 #ifndef __DARWIN__
 // defined in unix/utilsunx.cpp for Mac OS X
@@ -320,7 +318,6 @@ bool wxIsBusy()
   return (wxBusyCursorCount > 0);
 }
 
-#ifndef __DARWIN__
 wxString wxMacFindFolder( short                                        vol,
                                                                 OSType                                 folderType,
                                                                 Boolean                                createFolder)
@@ -339,7 +336,6 @@ wxString wxMacFindFolder( short                                     vol,
        }
        return strDir ;
 }
-#endif
 
 #ifndef __DARWIN__
 char *wxGetUserHome (const wxString& user)
@@ -349,7 +345,6 @@ char *wxGetUserHome (const wxString& user)
 }
 #endif
 
-#ifndef __DARWIN__
 bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree)
 {
     if ( path.empty() )
@@ -383,7 +378,6 @@ bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree)
 
     return err == noErr ;
 }
-#endif
 
 // Check whether this window wants to process messages, e.g. Stop button
 // in long calculations.
index 504b2af6daba2af6b0cacac5a844b31adefd93ca..6abb80c8d7c6c7e01c78d52f3cc317ce03515d25 100644 (file)
@@ -34,10 +34,8 @@ IMPLEMENT_CLASS(wxFileDialog, wxDialog)
   #include <Navigation.h>
 #endif
 
-#ifndef __DARWIN__
-  #include "MoreFiles.h"
-  #include "MoreFilesExtras.h"
-#endif
+#include "MoreFiles.h"
+#include "MoreFilesExtras.h"
 
 extern bool gUseNavServices ;
 
@@ -302,6 +300,8 @@ void MakeUserDataRec(OpenUserDataRec        *myData , const wxString& filter )
        }
 
 }
+
+#if !TARGET_CARBON
 void ExtendedOpenFile( ConstStr255Param message , ConstStr255Param path , const char *filter , FileFilterYDUPP fileFilter, StandardFileReply *theSFR )
 {
        Point                           thePt;
@@ -314,7 +314,6 @@ void ExtendedOpenFile( ConstStr255Param message , ConstStr255Param path , const
        OSErr                           err;
        SFTypeList                      types ;
        
-       
        // presumably we're running System 7 or later so CustomGetFile is
        // available
        
@@ -327,8 +326,6 @@ void ExtendedOpenFile( ConstStr255Param message , ConstStr255Param path , const
        MakeUserDataRec( &myData , filter ) ;
        // display the dialog
 
-#if !TARGET_CARBON
-       
        dlgHookUPP = NULL ;
 //     dlgHookUPP = NewDlgHookYDProc(SFGetFolderDialogHook);
        myModalFilterUPP = NewModalFilterYDProc(SFGetFolderModalDialogFilter);
@@ -338,21 +335,20 @@ void ExtendedOpenFile( ConstStr255Param message , ConstStr255Param path , const
        ParamText( message , NULL , NULL , NULL ) ;
        
        CustomGetFile(  fileFilter, 
-                                       -1,                                     // show all types
-                                       NULL,
-                                       theSFR,
-                                       kSFGetFileDlgID,
-                                       thePt,                          // top left point
-                                       dlgHookUPP,
-                                       myModalFilterUPP,
-                                       nil,                            // activate list
-                                       nil,                            // activate proc
-                                       &myData);
+                       -1,                             // show all types
+                       NULL,
+                       theSFR,
+                       kSFGetFileDlgID,
+                       thePt,                          // top left point
+                       dlgHookUPP,
+                       myModalFilterUPP,
+                       nil,                            // activate list
+                       nil,                            // activate proc
+                       &myData);
                                        
        DisposeRoutineDescriptor(dlgHookUPP);
        DisposeRoutineDescriptor(myModalFilterUPP);
-#else
-#endif 
+
        // if cancel wasn't pressed and no fatal error occurred...
        
        if (theSFR->sfGood)
@@ -363,7 +359,7 @@ void ExtendedOpenFile( ConstStr255Param message , ConstStr255Param path , const
                if (theSFR->sfFile.name[0] == '\0')
                {
                        err = FSMakeFSSpec(theSFR->sfFile.vRefNum, theSFR->sfFile.parID,
-                                                               "\p", &tempSpec);
+                                          "\p", &tempSpec);
                        if (err == noErr)
                        {
                                theSFR->sfFile = tempSpec;
@@ -406,38 +402,45 @@ void ExtendedOpenFile( ConstStr255Param message , ConstStr255Param path , const
                }
        }
 }
+#endif
 
 static Boolean CheckFile( ConstStr255Param name , OSType type , OpenUserDataRecPtr data)
 {
-         Str255                        filename ;
-               PLstrcpy( filename , name ) ;
+    Str255                     filename ;
+    
+#if TARGET_CARBON
+    p2cstrcpy((char *)filename, name) ;
+#else
+    PLstrcpy( filename , name ) ;
     p2cstr( filename ) ;
+#endif
     wxString file(filename) ;
     file.MakeUpper() ;
     
-               if ( data->numfilters > 0 )
-               {
-               //for ( int i = 0 ; i < data->numfilters ; ++i )
-               int i = data->currentfilter ;
-               if ( data->extensions[i].Right(2) == ".*" )
-                 return true ;
-                 
-               {
-                       if ( type == data->filtermactypes[i] )
-                               return true ;
-
-        wxString extension = data->extensions[i] ;
-        if ( extension.GetChar(0) == '*' )
-          extension = extension.Mid(1) ;
-
-                       if ( file.Len() >= extension.Len() && extension == file.Right(extension.Len() ) )
-                                       return true ;
-               }
-               return false ;
-       }
-       return true ;
+    if ( data->numfilters > 0 )
+    {
+       //for ( int i = 0 ; i < data->numfilters ; ++i )
+       int i = data->currentfilter ;
+       if ( data->extensions[i].Right(2) == ".*" )
+           return true ;
+       
+       {
+           if ( type == data->filtermactypes[i] )
+               return true ;
+           
+           wxString extension = data->extensions[i] ;
+           if ( extension.GetChar(0) == '*' )
+               extension = extension.Mid(1) ;
+           
+           if ( file.Len() >= extension.Len() && extension == file.Right(extension.Len() ) )
+               return true ;
+       }
+       return false ;
+    }
+    return true ;
 }
 
+#if !TARGET_CARBON
 static pascal Boolean CrossPlatformFileFilter(CInfoPBPtr myCInfoPBPtr, void *dataPtr)
 {      
        OpenUserDataRecPtr data = (OpenUserDataRecPtr) dataPtr ;
@@ -462,6 +465,7 @@ static pascal Boolean CrossPlatformFileFilter(CInfoPBPtr myCInfoPBPtr, void *dat
                
        return false ;
 }
+#endif
 
 // end wxmac
 
@@ -571,7 +575,7 @@ pascal Boolean CrossPlatformFilterCallback (
 
 int wxFileDialog::ShowModal()
 {
-       #if !TARGET_CARBON
+#if !TARGET_CARBON
        if ( !gUseNavServices )
        {
        if ( m_dialogStyle & wxSAVE )
@@ -580,25 +584,12 @@ int wxFileDialog::ShowModal()
                Str255                          prompt ;
                Str255                          filename ;
 
-#if TARGET_CARBON
-               c2pstrcpy((StringPtr)prompt, m_message) ;
-#else
                strcpy((char *)prompt, m_message) ;
                c2pstr((char *)prompt ) ;
-#endif
-#if TARGET_CARBON
-               c2pstrcpy((StringPtr)filename, m_fileName) ;
-#else
                strcpy((char *)filename, m_fileName) ;
                c2pstr((char *)filename ) ;
-#endif
 
-               #if !TARGET_CARBON
-               
                StandardPutFile( prompt , filename , &reply ) ;
-       
-               #else
-               #endif
                if ( reply.sfGood == false )
                {
                        m_path = "" ;
@@ -616,30 +607,17 @@ int wxFileDialog::ShowModal()
                Str255                          prompt ;
                Str255                          path ;
 
-#if TARGET_CARBON
-               c2pstrcpy((StringPtr)prompt, m_message) ;
-#else
                strcpy((char *)prompt, m_message) ;
                c2pstr((char *)prompt ) ;
-#endif
-#if TARGET_CARBON
-               c2pstrcpy((StringPtr)path, m_dir ) ;
-#else
                strcpy((char *)path, m_dir ) ;
                c2pstr((char *)path ) ;
-#endif
 
                StandardFileReply       reply ;
                FileFilterYDUPP crossPlatformFileFilterUPP = 0 ;
-               #if !TARGET_CARBON
                crossPlatformFileFilterUPP = 
                        NewFileFilterYDProc(CrossPlatformFileFilter);
-               #endif
-
                ExtendedOpenFile( prompt , path , m_wildCard , crossPlatformFileFilterUPP, &reply);
-               #if !TARGET_CARBON
                DisposeFileFilterYDUPP(crossPlatformFileFilterUPP);
-               #endif
                if ( reply.sfGood == false )
                {
                        m_path = "" ;
index e490ce4583ae7f6e934ba46af29eb78a628459e4..56c404aa9972d5348a9ea22f2af82de740b1c99b 100644 (file)
 #include <string.h>
 #include <stdarg.h>
 
-#ifndef __DARWIN__
-  #include "MoreFiles.h"
-  #include "MoreFilesExtras.h"
-#endif
+#include "MoreFiles.h"
+#include "MoreFilesExtras.h"
 
 #ifndef __DARWIN__
 // defined in unix/utilsunx.cpp for Mac OS X
@@ -320,7 +318,6 @@ bool wxIsBusy()
   return (wxBusyCursorCount > 0);
 }
 
-#ifndef __DARWIN__
 wxString wxMacFindFolder( short                                        vol,
                                                                 OSType                                 folderType,
                                                                 Boolean                                createFolder)
@@ -339,7 +336,6 @@ wxString wxMacFindFolder( short                                     vol,
        }
        return strDir ;
 }
-#endif
 
 #ifndef __DARWIN__
 char *wxGetUserHome (const wxString& user)
@@ -349,7 +345,6 @@ char *wxGetUserHome (const wxString& user)
 }
 #endif
 
-#ifndef __DARWIN__
 bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree)
 {
     if ( path.empty() )
@@ -383,7 +378,6 @@ bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree)
 
     return err == noErr ;
 }
-#endif
 
 // Check whether this window wants to process messages, e.g. Stop button
 // in long calculations.