X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/593177c566d3471189571641fb9db8efa27ed551..7344108e8a129a3f9b4df5ab0f98a1713db03b89:/include/wx/filesys.h diff --git a/include/wx/filesys.h b/include/wx/filesys.h index 02ae931a03..026fff1f28 100644 --- a/include/wx/filesys.h +++ b/include/wx/filesys.h @@ -12,6 +12,8 @@ #include "wx/defs.h" +#if wxUSE_FILESYSTEM + #if !wxUSE_STREAMS #error You cannot compile virtual file systems without wxUSE_STREAMS #endif @@ -20,16 +22,14 @@ #error You cannot compile wxHTML without virtual file systems #endif -#if wxUSE_FILESYSTEM - #include "wx/stream.h" #include "wx/datetime.h" #include "wx/filename.h" #include "wx/hashmap.h" -class WXDLLIMPEXP_BASE wxFSFile; -class WXDLLIMPEXP_BASE wxFileSystemHandler; -class WXDLLIMPEXP_BASE wxFileSystem; +class WXDLLIMPEXP_FWD_BASE wxFSFile; +class WXDLLIMPEXP_FWD_BASE wxFileSystemHandler; +class WXDLLIMPEXP_FWD_BASE wxFileSystem; //-------------------------------------------------------------------------------- // wxFSFile @@ -99,7 +99,7 @@ private: #endif // wxUSE_DATETIME DECLARE_ABSTRACT_CLASS(wxFSFile) - DECLARE_NO_COPY_CLASS(wxFSFile) + wxDECLARE_NO_COPY_CLASS(wxFSFile); }; @@ -168,7 +168,8 @@ protected: //-------------------------------------------------------------------------------- // Open Bit Flags -enum { +enum wxFileSystemOpenFlags +{ wxFS_READ = 1, // Open for reading wxFS_SEEKABLE = 4 // Returned stream will be seekable }; @@ -246,7 +247,7 @@ protected: // Handlers local to this instance DECLARE_DYNAMIC_CLASS(wxFileSystem) - DECLARE_NO_COPY_CLASS(wxFileSystem) + wxDECLARE_NO_COPY_CLASS(wxFileSystem); }; @@ -292,7 +293,20 @@ protected: static wxString ms_root; }; +// Stream reading data from wxFSFile: this allows to use virtual files with any +// wx functions accepting streams. +class WXDLLIMPEXP_BASE wxFSInputStream : public wxWrapperInputStream +{ +public: + // Notice that wxFS_READ is implied in flags. + wxFSInputStream(const wxString& filename, int flags = 0); + virtual ~wxFSInputStream(); +private: + wxFSFile* m_file; + + wxDECLARE_NO_COPY_CLASS(wxFSInputStream); +}; #endif // wxUSE_FILESYSTEM