X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2ecf902bc836f2808444b34eff48cdb12f289460..cdac585c3bb7f5cad3ff095578212a9371fec7f6:/include/wx/filesys.h?ds=sidebyside diff --git a/include/wx/filesys.h b/include/wx/filesys.h index a75350f724..bda6d7c5dd 100644 --- a/include/wx/filesys.h +++ b/include/wx/filesys.h @@ -10,10 +10,6 @@ #ifndef __FILESYS_H__ #define __FILESYS_H__ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma interface "filesys.h" -#endif - #include "wx/defs.h" #if !wxUSE_STREAMS @@ -52,6 +48,7 @@ public: ) { m_Stream = stream; + m_destroy = true; m_Location = loc; m_MimeType = mimetype; m_MimeType.MakeLower(); m_Anchor = anchor; @@ -60,12 +57,15 @@ public: #endif // wxUSE_DATETIME } - virtual ~wxFSFile() { if (m_Stream) delete m_Stream; } + virtual ~wxFSFile() { if (m_Stream && m_destroy) delete m_Stream; } // returns stream. This doesn't _create_ stream, it only returns // pointer to it. wxInputStream *GetStream() const {return m_Stream;} + // gives away the ownership of stream + void DetachStream() { m_destroy = false; } + // returns file's mime type const wxString& GetMimeType() const {return m_MimeType;} @@ -80,6 +80,7 @@ public: private: wxInputStream *m_Stream; + bool m_destroy; wxString m_Location; wxString m_MimeType; wxString m_Anchor; @@ -185,10 +186,20 @@ public: wxString FindFirst(const wxString& spec, int flags = 0); wxString FindNext(); + // find a file in a list of directories, returns false if not found + bool FindFileInPath(wxString *pStr, const wxChar *path, const wxChar *file); + // Adds FS handler. - // In fact, this class is only front-end to the FS hanlers :-) + // In fact, this class is only front-end to the FS handlers :-) static void AddHandler(wxFileSystemHandler *handler); + // Removes FS handler + static wxFileSystemHandler* RemoveHandler(wxFileSystemHandler *handler); + + + // Returns true if there is a handler which can open the given location. + static bool HasHandlerForPath(const wxString& location); + // remove all items from the m_Handlers list static void CleanUpHandlers();