X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ae3c17b4013e80b99976c750c19fca47729517f6..97d13342cc2ac77e21c38115cc6ebecac930f92a:/interface/wx/filesys.h diff --git a/interface/wx/filesys.h b/interface/wx/filesys.h index c9d534e86a..6d3146db61 100644 --- a/interface/wx/filesys.h +++ b/interface/wx/filesys.h @@ -19,7 +19,6 @@ enum wxFileSystemOpenFlags /** @class wxFileSystem - @wxheader{filesys.h} This class provides an interface for opening files on different file systems. It can handle absolute and/or local filenames. @@ -37,6 +36,11 @@ class wxFileSystem : public wxObject public: /** Constructor. + + The initial current path of this object will be empty + (i.e. GetPath() == wxEmptyString) which means that e.g. OpenFile() + or FindFirst() functions will use current working directory as + current path (see also wxGetCwd). */ wxFileSystem(); @@ -55,7 +59,7 @@ public: handlers are deleted in wxFileSystem's destructor so that you don't have to care about it. */ - static void AddHandler(wxFileSystemHandler handler); + static void AddHandler(wxFileSystemHandler* handler); /** Sets the current location. @a location parameter passed to OpenFile() is @@ -101,14 +105,14 @@ public: If the file is found in any directory, returns @true and the full path of the file in @a str, otherwise returns @false and doesn't modify @a str. - @param str + @param pStr Receives the full path of the file, must not be @NULL @param path wxPATH_SEP-separated list of directories @param file the name of the file to look for */ - bool FindFileInPath(wxString str, const wxString& path, + bool FindFileInPath(wxString* pStr, const wxString& path, const wxString& file); /** @@ -132,7 +136,7 @@ public: /** Returns the actual path (set by wxFileSystem::ChangePathTo). */ - wxString GetPath(); + wxString GetPath() const; /** This static function returns @true if there is a registered handler which can @@ -171,10 +175,9 @@ public: /** @class wxFSFile - @wxheader{filesys.h} This class represents a single file opened by wxFileSystem. - It provides more information than wxWindow's input stream + It provides more informations than wxWidgets' input streams (stream, filename, mime type, anchor). @note Any pointer returned by a method of wxFSFile is valid only as long as @@ -184,7 +187,7 @@ public: ten identical pointers. @library{wxbase} - @category{vfs} + @category{vfs,file} @see wxFileSystemHandler, wxFileSystem, @ref overview_fs */ @@ -226,10 +229,12 @@ public: not be empty in this case). @param anchor Anchor. See GetAnchor() for details. + @param modif + Modification date and time for this file. */ - wxFSFile(wxInputStream stream, const wxString& loc, - const wxString& mimetype, - const wxString& anchor, wxDateTime modif); + wxFSFile(wxInputStream* stream, const wxString& location, + const wxString& mimetype, const wxString& anchor, + wxDateTime modif); /** Detaches the stream from the wxFSFile object. That is, the @@ -238,7 +243,7 @@ public: You will have to delete the stream yourself. */ - void DetachStream(); + wxInputStream* DetachStream(); /** Returns anchor (if present). The term of @b anchor can be easily @@ -300,7 +305,6 @@ public: /** @class wxFileSystemHandler - @wxheader{filesys.h} Classes derived from wxFileSystemHandler are used to access virtual file systems. @@ -357,7 +361,7 @@ public: Must be overridden in derived handlers. */ - virtual bool CanOpen(const wxString& location); + virtual bool CanOpen(const wxString& location) = 0; /** Works like ::wxFindFirstFile(). @@ -380,39 +384,53 @@ public: virtual wxString FindNext(); /** - Returns the anchor if present in the location. - See wxFSFile::GetAnchor for details. + Returns the MIME type based on @b extension of @a location. + (While wxFSFile::GetMimeType() returns real MIME type - either + extension-based or queried from HTTP.) Example: @code - GetAnchor("index.htm#chapter2") == "chapter2" + GetMimeTypeFromExt("index.htm") == "text/html" @endcode + */ + static wxString GetMimeTypeFromExt(const wxString& location); - @note the anchor is NOT part of the left location. + /** + Opens the file and returns wxFSFile pointer or @NULL if failed. + Must be overridden in derived handlers. + + @param fs + Parent FS (the FS from that OpenFile was called). + See the ZIP handler for details of how to use it. + @param location + The absolute location of file. */ - wxString GetAnchor(const wxString& location) const; + virtual wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location) = 0; + +protected: /** - Returns the left location string extracted from @e location. + Returns the anchor if present in the location. + See wxFSFile::GetAnchor for details. Example: @code - GetLeftLocation("file:myzipfile.zip#zip:index.htm") == "file:myzipfile.zip" + GetAnchor("index.htm#chapter2") == "chapter2" @endcode + + @note the anchor is NOT part of the left location. */ - wxString GetLeftLocation(const wxString& location) const; + static wxString GetAnchor(const wxString& location); /** - Returns the MIME type based on @b extension of @a location. - (While wxFSFile::GetMimeType() returns real MIME type - either - extension-based or queried from HTTP.) + Returns the left location string extracted from @e location. Example: @code - GetMimeTypeFromExt("index.htm") == "text/html" + GetLeftLocation("file:myzipfile.zip#zip:index.htm") == "file:myzipfile.zip" @endcode */ - wxString GetMimeTypeFromExt(const wxString& location); + static wxString GetLeftLocation(const wxString& location); /** Returns the protocol string extracted from @a location. @@ -422,7 +440,7 @@ public: GetProtocol("file:myzipfile.zip#zip:index.htm") == "zip" @endcode */ - wxString GetProtocol(const wxString& location) const; + static wxString GetProtocol(const wxString& location); /** Returns the right location string extracted from @a location. @@ -432,19 +450,6 @@ public: GetRightLocation("file:myzipfile.zip#zip:index.htm") == "index.htm" @endcode */ - wxString GetRightLocation(const wxString& location) const; - - /** - Opens the file and returns wxFSFile pointer or @NULL if failed. - Must be overridden in derived handlers. - - @param fs - Parent FS (the FS from that OpenFile was called). - See the ZIP handler for details of how to use it. - @param location - The absolute location of file. - */ - virtual wxFSFile* OpenFile(wxFileSystem& fs, - const wxString& location); + static wxString GetRightLocation(const wxString& location); };