X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/19008b7bb87c7fdbc2c6fd9b44f6ab24ca4d6c47..cf6ae2907c365869b10b61cbe3bde2768facd4d8:/include/wx/filesys.h?ds=sidebyside diff --git a/include/wx/filesys.h b/include/wx/filesys.h index 071b33ebe9..5c69a5da7c 100644 --- a/include/wx/filesys.h +++ b/include/wx/filesys.h @@ -10,8 +10,8 @@ #ifndef __FILESYS_H__ #define __FILESYS_H__ -#ifdef __GNUG__ -#pragma interface +#if defined(__GNUG__) && !defined(__APPLE__) +#pragma interface "filesys.h" #endif #include "wx/setup.h" @@ -29,6 +29,7 @@ #include "wx/stream.h" #include "wx/url.h" #include "wx/datetime.h" +#include "wx/filename.h" class wxFSFile; class wxFileSystemHandler; @@ -44,16 +45,22 @@ class wxFileSystem; class WXDLLEXPORT wxFSFile : public wxObject { public: - wxFSFile(wxInputStream *stream, const wxString& loc, - const wxString& mimetype, const wxString& anchor, - wxDateTime modif) + wxFSFile(wxInputStream *stream, const wxString& loc, + const wxString& mimetype, const wxString& anchor +#if wxUSE_DATETIME + , wxDateTime modif +#endif // wxUSE_DATETIME + ) { m_Stream = stream; m_Location = loc; m_MimeType = mimetype; m_MimeType.MakeLower(); m_Anchor = anchor; +#if wxUSE_DATETIME m_Modif = modif; +#endif // wxUSE_DATETIME } + virtual ~wxFSFile() { if (m_Stream) delete m_Stream; } // returns stream. This doesn't _create_ stream, it only returns @@ -68,14 +75,21 @@ public: const wxString& GetAnchor() const {return m_Anchor;} +#if wxUSE_DATETIME wxDateTime GetModificationTime() const {return m_Modif;} +#endif // wxUSE_DATETIME private: wxInputStream *m_Stream; wxString m_Location; wxString m_MimeType; wxString m_Anchor; +#if wxUSE_DATETIME wxDateTime m_Modif; +#endif // wxUSE_DATETIME + + DECLARE_ABSTRACT_CLASS(wxFSFile) + DECLARE_NO_COPY_CLASS(wxFSFile) }; @@ -178,6 +192,13 @@ public: // remove all items from the m_Handlers list static void CleanUpHandlers(); + // Returns the native path for a file URL + static wxFileName URLToFileName(const wxString& url); + + // Returns the file URL for a native path + static wxString FileNameToURL(const wxFileName& filename); + + protected: wxString m_Path; // the path (location) we are currently in @@ -192,6 +213,7 @@ protected: // handler that succeed in FindFirst query DECLARE_DYNAMIC_CLASS(wxFileSystem) + DECLARE_NO_COPY_CLASS(wxFileSystem) }; @@ -219,20 +241,20 @@ special characters : */ -class wxLocalFSHandler : public wxFileSystemHandler +class WXDLLEXPORT wxLocalFSHandler : public wxFileSystemHandler { public: virtual bool CanOpen(const wxString& location); 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; };