From: Robin Dunn Date: Fri, 1 Feb 2002 02:08:19 +0000 (+0000) Subject: added wx type info macros for wxFSFile X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/4683727281b45d366d0351bc35a118021b09e4a2 added wx type info macros for wxFSFile git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13948 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/filesys.h b/include/wx/filesys.h index 071b33ebe9..06ca7ca97c 100644 --- a/include/wx/filesys.h +++ b/include/wx/filesys.h @@ -44,7 +44,7 @@ class wxFileSystem; class WXDLLEXPORT wxFSFile : public wxObject { public: - wxFSFile(wxInputStream *stream, const wxString& loc, + wxFSFile(wxInputStream *stream, const wxString& loc, const wxString& mimetype, const wxString& anchor, wxDateTime modif) { @@ -76,6 +76,8 @@ private: wxString m_MimeType; wxString m_Anchor; wxDateTime m_Modif; + + DECLARE_ABSTRACT_CLASS(wxFSFile) }; @@ -226,13 +228,13 @@ public: virtual wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location); virtual wxString FindFirst(const wxString& spec, int flags = 0); virtual wxString FindNext(); - + // wxLocalFSHandler will prefix all filenames with 'root' before accessing // files on disk. This effectively makes 'root' the top-level directory - // and prevents access to files outside this directory. + // and prevents access to files outside this directory. // (This is similar to Unix command 'chroot'.) static void Chroot(const wxString& root) { ms_root = root; } - + protected: static wxString ms_root; }; diff --git a/src/common/filesys.cpp b/src/common/filesys.cpp index 95ddd9871b..5fe6703021 100644 --- a/src/common/filesys.cpp +++ b/src/common/filesys.cpp @@ -47,14 +47,14 @@ wxString wxFileSystemHandler::GetMimeTypeFromExt(const wxString& location) int l = loc.Length(), l2; l2 = l; - for (int i = l-1; i >= 0; i--) + for (int i = l-1; i >= 0; i--) { c = loc[(unsigned int) i]; if ( c == wxT('#') ) l2 = i + 1; if ( c == wxT('.') ) { - ext = loc.Right(l2-i-1); + ext = loc.Right(l2-i-1); break; } if ( (c == wxT('/')) || (c == wxT('\\')) || (c == wxT(':')) ) @@ -174,10 +174,10 @@ wxFSFile* wxLocalFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString& // location has Unix path separators wxString right = ms_root + GetRightLocation(location); wxFileName fn(right, wxPATH_UNIX); - + if (!wxFileExists(fn.GetFullPath())) return (wxFSFile*) NULL; - + return new wxFSFile(new wxFileInputStream(fn.GetFullPath()), right, GetMimeTypeFromExt(location), @@ -204,6 +204,7 @@ wxString wxLocalFSHandler::FindNext() //----------------------------------------------------------------------------- IMPLEMENT_DYNAMIC_CLASS(wxFileSystem, wxObject) +IMPLEMENT_ABSTRACT_CLASS(wxFSFile, wxObject) wxList wxFileSystem::m_Handlers;