From: Gilles Depeyrot Date: Sat, 13 Oct 2001 21:12:44 +0000 (+0000) Subject: use MoreFiles under Mac OS X X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/da2b4b7a57f816723ed26dbbeca0549b9ce6735a?ds=sidebyside use MoreFiles under Mac OS X git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11973 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/common/filefn.cpp b/src/common/filefn.cpp index 5b59a1baba..1f02317c40 100644 --- a/src/common/filefn.cpp +++ b/src/common/filefn.cpp @@ -115,11 +115,11 @@ 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 diff --git a/src/mac/carbon/filedlg.cpp b/src/mac/carbon/filedlg.cpp index 504b2af6da..6abb80c8d7 100644 --- a/src/mac/carbon/filedlg.cpp +++ b/src/mac/carbon/filedlg.cpp @@ -34,10 +34,8 @@ IMPLEMENT_CLASS(wxFileDialog, wxDialog) #include #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 = "" ; diff --git a/src/mac/carbon/utils.cpp b/src/mac/carbon/utils.cpp index e490ce4583..56c404aa99 100644 --- a/src/mac/carbon/utils.cpp +++ b/src/mac/carbon/utils.cpp @@ -27,10 +27,8 @@ #include #include -#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. diff --git a/src/mac/filedlg.cpp b/src/mac/filedlg.cpp index 504b2af6da..6abb80c8d7 100644 --- a/src/mac/filedlg.cpp +++ b/src/mac/filedlg.cpp @@ -34,10 +34,8 @@ IMPLEMENT_CLASS(wxFileDialog, wxDialog) #include #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 = "" ; diff --git a/src/mac/utils.cpp b/src/mac/utils.cpp index e490ce4583..56c404aa99 100644 --- a/src/mac/utils.cpp +++ b/src/mac/utils.cpp @@ -27,10 +27,8 @@ #include #include -#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.