]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/filesys.h
wxFileSystem now compiles if wxUSE_HTML (required by wxHTML)
[wxWidgets.git] / include / wx / filesys.h
index 1d79fa851ca9e4de56008ab047a1fcbf62e1de4a..fa3d23d5dbe80ab26008146d8dcd302fe0553c6b 100644 (file)
@@ -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
 /////////////////////////////////////////////////////////////////////////////
 
@@ -15,7 +16,7 @@
 
 #include "wx/setup.h"
 
-#if (wxUSE_FS_INET || wxUSE_FS_ZIP) && wxUSE_STREAMS
+#if (wxUSE_HTML || wxUSE_FS_INET || wxUSE_FS_ZIP) && wxUSE_STREAMS
 
 #include "wx/stream.h"
 #include "wx/mimetype.h"
@@ -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)
@@ -118,9 +125,9 @@ class WXDLLEXPORT wxFileSystemHandler : public wxObject
 
     public:
         static void CleanUpStatics();
-               // deletes static members (m_MimeMng). It can be called
-               // as many times as you wish because m_MimeMng is created
-               // on demand
+            // deletes static members (m_MimeMng). It can be called
+        // as many times as you wish because m_MimeMng is created
+        // on demand
 
     private:
         static wxMimeTypesManager *m_MimeMng;
@@ -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
@@ -163,7 +159,7 @@ class WXDLLEXPORT wxFileSystem : public wxObject
                 // 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,6 +167,13 @@ 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.
@@ -178,6 +181,19 @@ class WXDLLEXPORT wxFileSystem : public wxObject
 
         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
 };