X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9ff647cf66f6c05aacba8eb96b818fc70d7b4939..0a0fc5b527437ddb5d41057d60506bfb22ea2bd3:/src/mac/utils.cpp diff --git a/src/mac/utils.cpp b/src/mac/utils.cpp index b3137eaf09..56c404aa99 100644 --- a/src/mac/utils.cpp +++ b/src/mac/utils.cpp @@ -27,7 +27,10 @@ #include #include -#ifndef __UNIX__ +#include "MoreFiles.h" +#include "MoreFilesExtras.h" + +#ifndef __DARWIN__ // defined in unix/utilsunx.cpp for Mac OS X // get full hostname (with domain name if possible) @@ -104,7 +107,7 @@ bool wxGetUserName(char *buf, int maxSize) return TRUE; } -int wxKill(long pid, int sig) +int wxKill(long pid, wxSignal sig) { // TODO return 0; @@ -178,7 +181,7 @@ void wxFatalError(const wxString& msg, const wxString& title) wxMessageBox(wxBuffer); wxExit(); } -#endif // !__UNIX__ +#endif // !__DARWIN__ // Emit a beeeeeep void wxBell() @@ -315,7 +318,6 @@ bool wxIsBusy() return (wxBusyCursorCount > 0); } -#ifndef __UNIX__ wxString wxMacFindFolder( short vol, OSType folderType, Boolean createFolder) @@ -329,14 +331,13 @@ wxString wxMacFindFolder( short vol, FSSpec file ; if ( FSMakeFSSpec( vRefNum , dirID , "\p" , &file ) == noErr ) { - strDir = wxMacFSSpec2UnixFilename( &file ) + "/" ; + strDir = wxMacFSSpec2MacFilename( &file ) + ":" ; } } return strDir ; } -#endif -#ifndef __UNIX__ +#ifndef __DARWIN__ char *wxGetUserHome (const wxString& user) { // TODO @@ -344,6 +345,40 @@ char *wxGetUserHome (const wxString& user) } #endif +bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree) +{ + if ( path.empty() ) + return FALSE; + + wxString p = path ; + if (p[0] == ':' ) { + p = wxGetCwd() + p ; + } + + int pos = p.Find(':') ; + if ( pos != wxNOT_FOUND ) { + p = p.Mid(1,pos) ; + } + + p = p + ":" ; + + Str255 volumeName ; + XVolumeParam pb ; + + wxMacStringToPascal( p , volumeName ) ; + OSErr err = XGetVolumeInfoNoName( volumeName , 0 , &pb ) ; + if ( err == noErr ) { + if ( pTotal ) { + (*pTotal) = wxLongLong( pb.ioVTotalBytes ) ; + } + if ( pFree ) { + (*pFree) = wxLongLong( pb.ioVFreeBytes ) ; + } + } + + return err == noErr ; +} + // Check whether this window wants to process messages, e.g. Stop button // in long calculations. bool wxCheckForInterrupt(wxWindow *wnd)