X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a76015e6ebf22e267c80f3740f3f7adc523b47e3..b40b0f5b204d59bbc1d3e66c5bba192b878469a6:/include/wx/filesys.h diff --git a/include/wx/filesys.h b/include/wx/filesys.h index d381956e29..2753984d3e 100644 --- a/include/wx/filesys.h +++ b/include/wx/filesys.h @@ -3,6 +3,7 @@ // Purpose: class for opening files - virtual file system // Author: Vaclav Slavik // Copyright: (c) 1999 Vaclav Slavik +// RCS-ID: $Id$ // Licence: wxWindows Licence ///////////////////////////////////////////////////////////////////////////// @@ -93,6 +94,12 @@ class WXDLLEXPORT wxFileSystemHandler : public wxObject // Returns NULL if opening failed. // The location is always absolute path. + virtual wxString FindFirst(const wxString& spec, int flags = 0); + virtual wxString FindNext(); + // Finds first/next file that matches spec wildcard. flags can be wxDIR for restricting + // the query to directories or wxFILE for files only or 0 for either. + // Returns filename or empty string if no more matching file exists + protected: wxString GetProtocol(const wxString& location) const; // returns protocol ("file", "http", "tar" etc.) The last (most right) @@ -141,19 +148,8 @@ class WXDLLEXPORT wxFileSystem : public wxObject { DECLARE_DYNAMIC_CLASS(wxFileSystem) - private: - wxString m_Path; - // the path (location) we are currently in - // this is path, not file! - // (so if you opened test/demo.htm, it is - // "test/", not "test/demo.htm") - wxString m_LastName; - // name of last opened file (full path) - static wxList m_Handlers; - // list of FS handlers - public: - wxFileSystem() : wxObject() {m_Path = m_LastName = wxEmptyString; m_Handlers.DeleteContents(TRUE);} + wxFileSystem() : wxObject() {m_Path = m_LastName = wxEmptyString; m_Handlers.DeleteContents(TRUE); m_FindFileHandler = NULL;} void ChangePathTo(const wxString& location, bool is_dir = FALSE); // sets the current location. Every call to OpenFile is @@ -162,8 +158,8 @@ class WXDLLEXPORT wxFileSystem : public wxObject // unless is_dir = TRUE 'location' is *not* the directory but // file contained in this directory // (so ChangePathTo("dir/subdir/xh.htm") sets m_Path to "dir/subdir/") - - wxString GetPath() const {return m_Path;} + + wxString GetPath() const {return m_Path;} wxFSFile* OpenFile(const wxString& location); // opens given file and returns pointer to input stream. @@ -171,10 +167,33 @@ class WXDLLEXPORT wxFileSystem : public wxObject // It first tries to open the file in relative scope // (based on ChangePathTo()'s value) and then as an absolute // path. + + wxString FindFirst(const wxString& spec, int flags = 0); + wxString FindNext(); + // Finds first/next file that matches spec wildcard. flags can be wxDIR for restricting + // the query to directories or wxFILE for files only or 0 for either. + // Returns filename or empty string if no more matching file exists + static void AddHandler(wxFileSystemHandler *handler); // Adds FS handler. // In fact, this class is only front-end to the FS hanlers :-) + + static void CleanUpHandlers(); + // remove all items from the m_Handlers list + + private: + wxString m_Path; + // the path (location) we are currently in + // this is path, not file! + // (so if you opened test/demo.htm, it is + // "test/", not "test/demo.htm") + wxString m_LastName; + // name of last opened file (full path) + static wxList m_Handlers; + // list of FS handlers + wxFileSystemHandler *m_FindFileHandler; + // handler that succeed in FindFirst query }; @@ -204,5 +223,5 @@ special characters : #endif // (wxUSE_FS_INET || wxUSE_FS_ZIP) && wxUSE_STREAMS -#endif +#endif // __FILESYS_H__