X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ba623ba295302d4f209e6ac8312452a081d9a4d9..4c27e2faf30e4f41bf2497e6bc046770d05065c6:/src/common/filename.cpp?ds=sidebyside diff --git a/src/common/filename.cpp b/src/common/filename.cpp index 0098c63ef0..84af36bbf2 100644 --- a/src/common/filename.cpp +++ b/src/common/filename.cpp @@ -2031,31 +2031,44 @@ static void MacEnsureDefaultExtensionsLoaded() gMacDefaultExtensionsInited = true ; } } + bool wxFileName::MacSetTypeAndCreator( wxUint32 type , wxUint32 creator ) { - FInfo fndrInfo ; - FSSpec spec ; - wxMacFilename2FSSpec(GetFullPath(),&spec) ; - OSErr err = FSpGetFInfo( &spec , &fndrInfo ) ; - wxCHECK( err == noErr , false ) ; + FSRef fsRef ; + FSCatalogInfo catInfo; + FileInfo *finfo ; - fndrInfo.fdType = type ; - fndrInfo.fdCreator = creator ; - FSpSetFInfo( &spec , &fndrInfo ) ; - return true ; + if ( wxMacPathToFSRef( GetFullPath() , &fsRef ) == noErr ) + { + if ( FSGetCatalogInfo (&fsRef, kFSCatInfoFinderInfo, &catInfo, NULL, NULL, NULL) == noErr ) + { + finfo = (FileInfo*)&catInfo.finderInfo; + finfo->fileType = type ; + finfo->fileCreator = creator ; + FSSetCatalogInfo( &fsRef, kFSCatInfoFinderInfo, &catInfo ) ; + return true ; + } + } + return false ; } bool wxFileName::MacGetTypeAndCreator( wxUint32 *type , wxUint32 *creator ) { - FInfo fndrInfo ; - FSSpec spec ; - wxMacFilename2FSSpec(GetFullPath(),&spec) ; - OSErr err = FSpGetFInfo( &spec , &fndrInfo ) ; - wxCHECK( err == noErr , false ) ; + FSRef fsRef ; + FSCatalogInfo catInfo; + FileInfo *finfo ; - *type = fndrInfo.fdType ; - *creator = fndrInfo.fdCreator ; - return true ; + if ( wxMacPathToFSRef( GetFullPath() , &fsRef ) == noErr ) + { + if ( FSGetCatalogInfo (&fsRef, kFSCatInfoFinderInfo, &catInfo, NULL, NULL, NULL) == noErr ) + { + finfo = (FileInfo*)&catInfo.finderInfo; + *type = finfo->fileType ; + *creator = finfo->fileCreator ; + return true ; + } + } + return false ; } bool wxFileName::MacSetDefaultTypeAndCreator()