window.cpp MSW LowLevel
dialup.cpp Unix NotMac
-dir.cpp Unix Base,NotMac,NotMGL
+dir.cpp Unix Base,NotMac
fontenum.cpp Unix NotMac,NotMGL,NotMicro
fontutil.cpp Unix NotMac,NotMGL,NotMicro
gsocket.c Unix Base,NotMac
evtloop.cpp MGL LowLevel
app.cpp MGL LowLevel
bitmap.cpp MGL LowLevel
-dir.cpp MGL LowLevel
+dirmgl.cpp MGL LowLevel
clipbrd.cpp MGL LowLevel
cursor.cpp MGL LowLevel
dcclient.cpp MGL LowLevel
+++ /dev/null
-/////////////////////////////////////////////////////////////////////////////
-// Name: mgl/dir.cpp
-// Purpose: wxDir implementation for MGL
-// Author: Vaclav Slavik, Vadim Zeitlin
-// Modified by:
-// Created: 2001/12/09
-// RCS-ID: $Id$
-// Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// (c) 2001 SciTech Software, Inc. (www.scitechsoft.com)
-// Licence: wxWindows license
-/////////////////////////////////////////////////////////////////////////////
-
-// ============================================================================
-// declarations
-// ============================================================================
-
-// ----------------------------------------------------------------------------
-// headers
-// ----------------------------------------------------------------------------
-
-#ifdef __GNUG__
- #pragma implementation "dir.h"
-#endif
-
-// For compilers that support precompilation, includes "wx.h".
-#include "wx/wxprec.h"
-
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-#ifndef WX_PRECOMP
- #include "wx/intl.h"
- #include "wx/log.h"
-#endif // PCH
-
-#include "wx/dir.h"
-#include "wx/filefn.h" // for wxMatchWild
-#include "wx/mgl/private.h"
-
-// ----------------------------------------------------------------------------
-// macros
-// ----------------------------------------------------------------------------
-
-#define M_DIR ((wxDirData *)m_data)
-
-// ----------------------------------------------------------------------------
-// private classes
-// ----------------------------------------------------------------------------
-
-// this class stores everything we need to enumerate the files
-class wxDirData
-{
-public:
- wxDirData(const wxString& dirname);
- ~wxDirData();
-
- bool IsOk() const { return m_dir != NULL; }
-
- void SetFileSpec(const wxString& filespec) { m_filespec = filespec; }
- void SetFlags(int flags) { m_flags = flags; }
-
- void Rewind();
- bool Read(wxString *filename);
-
- const wxString& GetName() const { return m_dirname; }
-
-private:
- void *m_dir;
-
- wxString m_dirname;
- wxString m_filespec;
-
- int m_flags;
-};
-
-// ============================================================================
-// implementation
-// ============================================================================
-
-// ----------------------------------------------------------------------------
-// wxDirData
-// ----------------------------------------------------------------------------
-
-wxDirData::wxDirData(const wxString& dirname)
- : m_dirname(dirname)
-{
- m_dir = NULL;
-
- // throw away the trailing slashes
- size_t n = m_dirname.length();
- wxCHECK_RET( n, _T("empty dir name in wxDir") );
-
- while ( n > 0 && m_dirname[--n] == wxFILE_SEP_PATH ) {}
-
- m_dirname.Truncate(n + 1);
-}
-
-wxDirData::~wxDirData()
-{
- if ( m_dir )
- PM_findClose(m_dir);
-}
-
-void wxDirData::Rewind()
-{
- if ( m_dir )
- {
- PM_findClose(m_dir);
- m_dir = NULL;
- }
-}
-
-bool wxDirData::Read(wxString *filename)
-{
- PM_findData data;
- bool matches = FALSE;
-
- data.dwSize = sizeof(data);
-
- wxString path = m_dirname;
- path += wxFILE_SEP_PATH;
- path.reserve(path.length() + 255); // speed up string concatenation
-
- while ( !matches )
- {
- if ( m_dir )
- {
- if ( !PM_findNextFile(m_dir, &data) )
- return FALSE;
- }
- else
- {
- m_dir = PM_findFirstFile(path + m_filespec , &data);
- if ( m_dir == PM_FILE_INVALID )
- {
- m_dir = NULL;
- return FALSE;
- }
- }
-
- // don't return "." and ".." unless asked for
- if ( data.name[0] == '.' &&
- ((data.name[1] == '.' && data.name[2] == '\0') ||
- (data.name[1] == '\0')) )
- {
- if ( !(m_flags & wxDIR_DOTDOT) )
- continue;
-
- // we found a valid match
- break;
- }
-
- // check the type now
- if ( !(m_flags & wxDIR_FILES) && !(data.attrib & PM_FILE_DIRECTORY) )
- {
- // it's a file, but we don't want them
- continue;
- }
- else if ( !(m_flags & wxDIR_DIRS) && (data.attrib & PM_FILE_DIRECTORY) )
- {
- // it's a dir, and we don't want it
- continue;
- }
-
- matches = m_flags & wxDIR_HIDDEN ? TRUE : !(data.attrib & PM_FILE_HIDDEN);
- }
-
- *filename = data.name;
-
- return TRUE;
-}
-
-
-// ----------------------------------------------------------------------------
-// wxDir helpers
-// ----------------------------------------------------------------------------
-
-/* static */
-bool wxDir::Exists(const wxString& dir)
-{
- return wxPathExists(dir);
-}
-
-// ----------------------------------------------------------------------------
-// wxDir construction/destruction
-// ----------------------------------------------------------------------------
-
-wxDir::wxDir(const wxString& dirname)
-{
- m_data = NULL;
-
- (void)Open(dirname);
-}
-
-bool wxDir::Open(const wxString& dirname)
-{
- delete M_DIR;
- m_data = NULL;
-
- if ( !wxDir::Exists(dirname) )
- {
- wxLogError(_("Directory '%s' doesn't exist!"), dirname.c_str());
- return FALSE;
- }
-
- m_data = new wxDirData(dirname);
- return TRUE;
-}
-
-bool wxDir::IsOpened() const
-{
- return m_data != NULL;
-}
-
-wxString wxDir::GetName() const
-{
- wxString name;
- if ( m_data )
- {
- name = M_DIR->GetName();
- if ( !name.empty() && (name.Last() == wxFILE_SEP_PATH) )
- {
- // chop off the last (back)slash
- name.Truncate(name.length() - 1);
- }
- }
-
- return name;
-}
-
-wxDir::~wxDir()
-{
- delete M_DIR;
-}
-
-// ----------------------------------------------------------------------------
-// wxDir enumerating
-// ----------------------------------------------------------------------------
-
-bool wxDir::GetFirst(wxString *filename,
- const wxString& filespec,
- int flags) const
-{
- wxCHECK_MSG( IsOpened(), FALSE, _T("must wxDir::Open() first") );
-
- M_DIR->Rewind();
-
- M_DIR->SetFileSpec(filespec);
- M_DIR->SetFlags(flags);
-
- return GetNext(filename);
-}
-
-bool wxDir::GetNext(wxString *filename) const
-{
- wxCHECK_MSG( IsOpened(), FALSE, _T("must wxDir::Open() first") );
-
- wxCHECK_MSG( filename, FALSE, _T("bad pointer in wxDir::GetNext()") );
-
- return M_DIR->Read(filename);
-}
-
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: mgl/dir.cpp
+// Purpose: wxDir implementation for MGL
+// Author: Vaclav Slavik, Vadim Zeitlin
+// Modified by:
+// Created: 2001/12/09
+// RCS-ID: $Id$
+// Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
+// (c) 2001 SciTech Software, Inc. (www.scitechsoft.com)
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#ifdef __GNUG__
+ #pragma implementation "dir.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#include "wx/defs.h"
+
+#ifndef __UNIX__
+
+#ifndef WX_PRECOMP
+ #include "wx/intl.h"
+ #include "wx/log.h"
+#endif // PCH
+
+#include "wx/dir.h"
+#include "wx/filefn.h" // for wxMatchWild
+#include "wx/mgl/private.h"
+
+// ----------------------------------------------------------------------------
+// macros
+// ----------------------------------------------------------------------------
+
+#define M_DIR ((wxDirData *)m_data)
+
+// ----------------------------------------------------------------------------
+// private classes
+// ----------------------------------------------------------------------------
+
+// this class stores everything we need to enumerate the files
+class wxDirData
+{
+public:
+ wxDirData(const wxString& dirname);
+ ~wxDirData();
+
+ bool IsOk() const { return m_dir != NULL; }
+
+ void SetFileSpec(const wxString& filespec) { m_filespec = filespec; }
+ void SetFlags(int flags) { m_flags = flags; }
+
+ void Rewind();
+ bool Read(wxString *filename);
+
+ const wxString& GetName() const { return m_dirname; }
+
+private:
+ void *m_dir;
+
+ wxString m_dirname;
+ wxString m_filespec;
+
+ int m_flags;
+};
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxDirData
+// ----------------------------------------------------------------------------
+
+wxDirData::wxDirData(const wxString& dirname)
+ : m_dirname(dirname)
+{
+ m_dir = NULL;
+
+ // throw away the trailing slashes
+ size_t n = m_dirname.length();
+ wxCHECK_RET( n, _T("empty dir name in wxDir") );
+
+ while ( n > 0 && m_dirname[--n] == wxFILE_SEP_PATH ) {}
+
+ m_dirname.Truncate(n + 1);
+}
+
+wxDirData::~wxDirData()
+{
+ if ( m_dir )
+ PM_findClose(m_dir);
+}
+
+void wxDirData::Rewind()
+{
+ if ( m_dir )
+ {
+ PM_findClose(m_dir);
+ m_dir = NULL;
+ }
+}
+
+bool wxDirData::Read(wxString *filename)
+{
+ PM_findData data;
+ bool matches = FALSE;
+
+ data.dwSize = sizeof(data);
+
+ wxString path = m_dirname;
+ path += wxFILE_SEP_PATH;
+ path.reserve(path.length() + 255); // speed up string concatenation
+
+ while ( !matches )
+ {
+ if ( m_dir )
+ {
+ if ( !PM_findNextFile(m_dir, &data) )
+ return FALSE;
+ }
+ else
+ {
+ m_dir = PM_findFirstFile(path + m_filespec , &data);
+ if ( m_dir == PM_FILE_INVALID )
+ {
+ m_dir = NULL;
+ return FALSE;
+ }
+ }
+
+ // don't return "." and ".." unless asked for
+ if ( data.name[0] == '.' &&
+ ((data.name[1] == '.' && data.name[2] == '\0') ||
+ (data.name[1] == '\0')) )
+ {
+ if ( !(m_flags & wxDIR_DOTDOT) )
+ continue;
+
+ // we found a valid match
+ break;
+ }
+
+ // check the type now
+ if ( !(m_flags & wxDIR_FILES) && !(data.attrib & PM_FILE_DIRECTORY) )
+ {
+ // it's a file, but we don't want them
+ continue;
+ }
+ else if ( !(m_flags & wxDIR_DIRS) && (data.attrib & PM_FILE_DIRECTORY) )
+ {
+ // it's a dir, and we don't want it
+ continue;
+ }
+
+ matches = m_flags & wxDIR_HIDDEN ? TRUE : !(data.attrib & PM_FILE_HIDDEN);
+ }
+
+ *filename = data.name;
+
+ return TRUE;
+}
+
+
+// ----------------------------------------------------------------------------
+// wxDir helpers
+// ----------------------------------------------------------------------------
+
+/* static */
+bool wxDir::Exists(const wxString& dir)
+{
+ return wxPathExists(dir);
+}
+
+// ----------------------------------------------------------------------------
+// wxDir construction/destruction
+// ----------------------------------------------------------------------------
+
+wxDir::wxDir(const wxString& dirname)
+{
+ m_data = NULL;
+
+ (void)Open(dirname);
+}
+
+bool wxDir::Open(const wxString& dirname)
+{
+ delete M_DIR;
+ m_data = NULL;
+
+ if ( !wxDir::Exists(dirname) )
+ {
+ wxLogError(_("Directory '%s' doesn't exist!"), dirname.c_str());
+ return FALSE;
+ }
+
+ m_data = new wxDirData(dirname);
+ return TRUE;
+}
+
+bool wxDir::IsOpened() const
+{
+ return m_data != NULL;
+}
+
+wxString wxDir::GetName() const
+{
+ wxString name;
+ if ( m_data )
+ {
+ name = M_DIR->GetName();
+ if ( !name.empty() && (name.Last() == wxFILE_SEP_PATH) )
+ {
+ // chop off the last (back)slash
+ name.Truncate(name.length() - 1);
+ }
+ }
+
+ return name;
+}
+
+wxDir::~wxDir()
+{
+ delete M_DIR;
+}
+
+// ----------------------------------------------------------------------------
+// wxDir enumerating
+// ----------------------------------------------------------------------------
+
+bool wxDir::GetFirst(wxString *filename,
+ const wxString& filespec,
+ int flags) const
+{
+ wxCHECK_MSG( IsOpened(), FALSE, _T("must wxDir::Open() first") );
+
+ M_DIR->Rewind();
+
+ M_DIR->SetFileSpec(filespec);
+ M_DIR->SetFlags(flags);
+
+ return GetNext(filename);
+}
+
+bool wxDir::GetNext(wxString *filename) const
+{
+ wxCHECK_MSG( IsOpened(), FALSE, _T("must wxDir::Open() first") );
+
+ wxCHECK_MSG( filename, FALSE, _T("bad pointer in wxDir::GetNext()") );
+
+ return M_DIR->Read(filename);
+}
+
+#endif // !__UNIX__
+
-# This file was automatically generated by tmake at 22:59, 2002/01/01
+# This file was automatically generated by tmake at 17:34, 2002/01/08
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE MGL.T!
ALL_SOURCES = \
generic/accel.cpp \
mgl/dcclient.cpp \
mgl/dcmemory.cpp \
mgl/dcscreen.cpp \
- mgl/dir.cpp \
+ mgl/dirmgl.cpp \
mgl/evtloop.cpp \
mgl/font.cpp \
mgl/fontenum.cpp \
mgl/utils.cpp \
mgl/window.cpp \
unix/dialup.cpp \
+ unix/dir.cpp \
unix/gsocket.c \
unix/mimetype.cpp \
unix/snglinst.cpp \
dcclient.o \
dcmemory.o \
dcscreen.o \
- dir.o \
+ dirmgl.o \
evtloop.o \
font.o \
fontenum.o \
UNIXOBJS = \
dialup.o \
+ dir.o \
gsocket.o \
mimetype.o \
snglinst.o \