| 1 | ///////////////////////////////////////////////////////////////////////////// |
| 2 | // Name: fs_zip.h |
| 3 | // Purpose: ZIP file system |
| 4 | // Author: Vaclav Slavik |
| 5 | // Copyright: (c) 1999 Vaclav Slavik |
| 6 | // CVS-ID: $Id$ |
| 7 | // Licence: wxWindows Licence |
| 8 | ///////////////////////////////////////////////////////////////////////////// |
| 9 | |
| 10 | #ifndef _WX_FS_ZIP_H_ |
| 11 | #define _WX_FS_ZIP_H_ |
| 12 | |
| 13 | #if defined(__GNUG__) && !defined(__APPLE__) |
| 14 | #pragma interface "fs_zip.h" |
| 15 | #endif |
| 16 | |
| 17 | #include "wx/wxprec.h" |
| 18 | |
| 19 | #ifdef __BORLANDC__ |
| 20 | #pragma hdrstop |
| 21 | #endif |
| 22 | |
| 23 | #if wxUSE_FILESYSTEM && wxUSE_FS_ZIP && wxUSE_STREAMS |
| 24 | |
| 25 | #include "wx/filesys.h" |
| 26 | |
| 27 | class WXDLLEXPORT wxHashTableLong; |
| 28 | |
| 29 | //-------------------------------------------------------------------------------- |
| 30 | // wxZipFSHandler |
| 31 | //-------------------------------------------------------------------------------- |
| 32 | |
| 33 | class WXDLLEXPORT wxZipFSHandler : public wxFileSystemHandler |
| 34 | { |
| 35 | public: |
| 36 | wxZipFSHandler(); |
| 37 | virtual bool CanOpen(const wxString& location); |
| 38 | virtual wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location); |
| 39 | virtual wxString FindFirst(const wxString& spec, int flags = 0); |
| 40 | virtual wxString FindNext(); |
| 41 | ~wxZipFSHandler(); |
| 42 | |
| 43 | private: |
| 44 | // these vars are used by FindFirst/Next: |
| 45 | void *m_Archive; |
| 46 | wxString m_Pattern, m_BaseDir, m_ZipFile; |
| 47 | bool m_AllowDirs, m_AllowFiles; |
| 48 | wxHashTableLong *m_DirsFound; |
| 49 | |
| 50 | wxString DoFind(); |
| 51 | |
| 52 | DECLARE_NO_COPY_CLASS(wxZipFSHandler) |
| 53 | }; |
| 54 | |
| 55 | |
| 56 | #endif |
| 57 | // wxUSE_FILESYSTEM && wxUSE_FS_ZIP && wxUSE_STREAMS |
| 58 | |
| 59 | #endif // _WX_FS_ZIP_H_ |
| 60 | |