#include "wx/dir.h"
#include "wx/filefn.h" // for wxPathExists()
-#ifndef __WXMAC_X__
+#ifndef __DARWIN__
#include <windows.h>
#endif
-#if defined(__WXMAC__) && !defined(__UNIX__)
- #include "morefile.h"
- #include "moreextr.h"
- #include "fullpath.h"
- #include "fspcompa.h"
-#endif
+#include "wx/mac/private.h"
+
+#include "MoreFiles.h"
+#include "MoreFilesExtras.h"
// ----------------------------------------------------------------------------
// constants
bool Read(wxString *filename); // reads the next
void Rewind() ;
+ const wxString& GetName() const { return m_dirname; }
+
private:
CInfoPBRec m_CPB ;
wxInt16 m_index ;
m_CPB.hFileInfo.ioNamePtr = m_name ;
m_index = 0 ;
-#ifdef __WXMAC_X__
- // TODO: what are we supposed to do for Mac OS X
-#else
- FSpGetDirectoryID( &fsspec , &m_dirId , &m_isDir ) ;
-#endif
+ OSErr err = FSpGetDirectoryID( &fsspec , &m_dirId , &m_isDir ) ;
+ wxASSERT_MSG( err == noErr , "Error accessing directory") ;
}
wxDirData::~wxDirData()
strcpy( (char *)m_name, c_name);
#else
p2cstr( m_name ) ;
+#endif
+#if TARGET_CARBON
+ // under X thats the way the mounting points look like
+ if ( ( m_CPB.dirInfo.ioDrDirID == 0 ) && ( m_flags & wxDIR_DIRS) )
+ break ;
#endif
if ( ( m_CPB.dirInfo.ioFlAttrib & ioDirMask) != 0 && (m_flags & wxDIR_DIRS) ) // we have a directory
break ;
continue ;
wxString file( m_name ) ;
- if ( m_filespec.IsEmpty() || m_filespec == "*.*" )
+ if ( m_filespec.IsEmpty() || m_filespec == "*.*" || m_filespec == "*" )
{
}
else if ( m_filespec.Length() > 1 && m_filespec.Left(1) =="*" )
return m_data != NULL;
}
+wxString wxDir::GetName() const
+{
+ wxString name;
+ if ( m_data )
+ {
+ name = M_DIR->GetName();
+ if ( !name.empty() && (name.Last() == _T('/')) )
+ {
+ // chop off the last (back)slash
+ name.Truncate(name.length() - 1);
+ }
+ }
+
+ return name;
+}
+
wxDir::~wxDir()
{
- delete M_DIR;
+ if (M_DIR != NULL) {
+ delete M_DIR;
+ m_data = NULL;
+ }
}
// ----------------------------------------------------------------------------