From: Stefan Csomor Date: Sat, 25 Aug 2001 20:13:57 +0000 (+0000) Subject: added disk space X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/518af45bee618dd4db617267d67e99bb01bb20b2 added disk space git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11484 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/mac/carbon/utils.cpp b/src/mac/carbon/utils.cpp index 6016d24d81..96e20cfc3d 100644 --- a/src/mac/carbon/utils.cpp +++ b/src/mac/carbon/utils.cpp @@ -27,6 +27,9 @@ #include #include +#include "morefile.h" +#include "moreextr.h" + #ifndef __DARWIN__ // defined in unix/utilsunx.cpp for Mac OS X @@ -344,6 +347,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) diff --git a/src/mac/utils.cpp b/src/mac/utils.cpp index 6016d24d81..96e20cfc3d 100644 --- a/src/mac/utils.cpp +++ b/src/mac/utils.cpp @@ -27,6 +27,9 @@ #include #include +#include "morefile.h" +#include "moreextr.h" + #ifndef __DARWIN__ // defined in unix/utilsunx.cpp for Mac OS X @@ -344,6 +347,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)