X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/618a5e382af2e469f9cc9d2aa81114403637a4b3..f1f6d4659ca0581c6dcf3bfbbe9265a42627bbe7:/src/generic/dirctrlg.cpp diff --git a/src/generic/dirctrlg.cpp b/src/generic/dirctrlg.cpp index da81aff518..b9132708e1 100644 --- a/src/generic/dirctrlg.cpp +++ b/src/generic/dirctrlg.cpp @@ -47,13 +47,21 @@ #include "wx/generic/dirctrlg.h" +#if defined(__WXMAC__) + #include "wx/mac/private.h" // includes mac headers +#endif + #ifdef __WXMSW__ #include -#ifndef __GNUWIN32__ -#include -#include -#include +// FIXME - Mingw32 1.0 has both _getdrive() and _chdrive(). For now, let's assume +// older releases don't, but it should be verified and the checks modified +// accordingly. +#if !defined(__GNUWIN32__) || \ + (defined(__MINGW32_MAJOR_VERSION) && __MINGW32_MAJOR_VERSION >= 1) + #include + #include + #include #endif #endif @@ -68,8 +76,8 @@ #endif // __WXPM__ -#if defined(__WXMAC__) && !defined(__UNIX__) -#include "moreextr.h" +#if defined(__WXMAC__) +# include "MoreFilesExtras.h" #endif #ifdef __BORLANDC__ @@ -310,9 +318,13 @@ static const int ID_CANCEL = 1003; static const int ID_NEW = 1004; //static const int ID_CHECK = 1005; -#if defined(__WXMSW__) || defined(__WXPM__) +#if defined(__WXMSW__) || defined(__WXPM__) || defined(__DOS__) int setdrive(int drive) { +#if defined(__GNUWIN32__) && \ + (defined(__MINGW32_MAJOR_VERSION) && __MINGW32_MAJOR_VERSION >= 1) + return _chdrive(drive); +#else wxChar newdrive[3]; if (drive < 1 || drive > 31) @@ -333,6 +345,7 @@ int setdrive(int drive) return 0; else return -1; +#endif // !GNUWIN32 } static bool wxIsDriveAvailable(const wxString dirName) @@ -347,7 +360,8 @@ static bool wxIsDriveAvailable(const wxString dirName) if (dirName.Len() == 3 && dirName[(size_t)1] == wxT(':')) { wxString dirNameLower(dirName.Lower()); -#if defined(__GNUWIN32__) +#if defined(__GNUWIN32__) && \ + !(defined(__MINGW32_MAJOR_VERSION) && __MINGW32_MAJOR_VERSION >= 1) success = wxPathExists(dirNameLower); #else int currentDrive = _getdrive(); @@ -538,7 +552,7 @@ void wxGenericDirCtrl::SetupSections() { #if defined(__WXMSW__) || defined(__WXPM__) -#ifdef __WIN32__ +# ifdef __WIN32__ wxChar driveBuffer[256]; size_t n = (size_t) GetLogicalDriveStrings(255, driveBuffer); size_t i = 0; @@ -580,7 +594,7 @@ void wxGenericDirCtrl::SetupSections() if (driveBuffer[i] == wxT('\0')) break; } -#else +# else int drive; int currentDrive; @@ -597,8 +611,8 @@ void wxGenericDirCtrl::SetupSections() AddSection(path, name); } } -#endif -#elif defined(__WXMAC__) && !defined(__UNIX__) +# endif +#elif defined(__WXMAC__) FSSpec volume ; short index = 1 ; while(1) { @@ -607,7 +621,7 @@ void wxGenericDirCtrl::SetupSections() break ; wxString name = wxMacFSSpec2MacFilename( &volume ) ; - AddSection(name+":", name, 0); + AddSection(name + wxFILE_SEP_PATH, name, 0); } #else AddSection(wxT("/"), _("The Computer"), 0);