#pragma hdrstop
#endif
-#include "wx/defs.h"
+#if wxUSE_DIRDLG
#include "wx/utils.h"
#include "wx/dialog.h"
#include "wx/button.h"
#include "wx/layout.h"
#include "wx/msgdlg.h"
+#include "wx/textctrl.h"
#include "wx/textdlg.h"
#include "wx/filefn.h"
#include "wx/cmndata.h"
#ifdef __WXMSW__
#include <windows.h>
-#ifndef __GNUWIN32__
-#include <direct.h>
-#include <stdlib.h>
-#include <ctype.h>
+// 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 <direct.h>
+ #include <stdlib.h>
+ #include <ctype.h>
#endif
#endif
#endif // __WXPM__
+#if defined(__WXMAC__)
+# include "MoreFilesExtras.h"
+#endif
+
#ifdef __BORLANDC__
#include "dos.h"
#endif
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)
return 0;
else
return -1;
+#endif // !GNUWIN32
}
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();
{
#if defined(__WXMSW__) || defined(__WXPM__)
-#ifdef __WIN32__
+# ifdef __WIN32__
wxChar driveBuffer[256];
size_t n = (size_t) GetLogicalDriveStrings(255, driveBuffer);
size_t i = 0;
if (driveBuffer[i] == wxT('\0'))
break;
}
-#else
+# else
int drive;
int currentDrive;
AddSection(path, name);
}
}
-#endif
-
+# endif
+#elif defined(__WXMAC__)
+ FSSpec volume ;
+ short index = 1 ;
+ while(1) {
+ short actualCount = 0 ;
+ if ( OnLine( &volume , 1 , &actualCount , &index ) != noErr || actualCount == 0 )
+ break ;
+
+ wxString name = wxMacFSSpec2MacFilename( &volume ) ;
+ AddSection(name + wxFILE_SEP_PATH, name, 0);
+ }
#else
AddSection(wxT("/"), _("The Computer"), 0);
AddSection(wxGetHomeDir(), _("My Home"), 0 );
description = descriptions[n];
return TRUE;
}
- else
- return FALSE;
+
+ return FALSE;
}
// Parses the global filter, returning the number of filters.
m_dirCtrl->GetTreeCtrl()->EnsureVisible( new_id );
m_dirCtrl->GetTreeCtrl()->EditLabel( new_id );
}
+
+#endif // wxUSE_DIRDLG