X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/81f256328c32766ebf9fca0a97b03bb53e24bc6b..31dc7e4995ae83221268b24488ac724ab291b7fb:/include/wx/filename.h diff --git a/include/wx/filename.h b/include/wx/filename.h index 0c51ce5c0c..844c2d4916 100644 --- a/include/wx/filename.h +++ b/include/wx/filename.h @@ -38,6 +38,8 @@ #include "wx/filefn.h" #include "wx/datetime.h" +class WXDLLEXPORT wxFile; + // ---------------------------------------------------------------------------- // constants // ---------------------------------------------------------------------------- @@ -208,9 +210,12 @@ public: void AssignHomeDir(); static wxString GetHomeDir(); - // get a temp file name starting with the specified prefix - void AssignTempFileName(const wxString& prefix); - static wxString CreateTempFileName(const wxString& prefix); + // get a temp file name starting with the specified prefix and open the + // file passed to us using this name for writing (atomically if + // possible) + void AssignTempFileName(const wxString& prefix, wxFile *fileTemp = NULL); + static wxString CreateTempFileName(const wxString& prefix, + wxFile *fileTemp = NULL); // directory creation and removal. // if full is TRUE, will try to make each directory in the path. @@ -231,6 +236,18 @@ public: const wxString& cwd = wxEmptyString, wxPathFormat format = wxPATH_NATIVE); + // get a path path relative to the given base directory, i.e. opposite + // of Normalize + // + // pass an empty string to get a path relative to the working directory + // + // returns TRUE if the file name was modified, FALSE if we failed to do + // anything with it (happens when the file is on a different volume, + // for example) + bool MakeRelativeTo(const wxString& pathBase = _T(""), + wxPathFormat format = wxPATH_NATIVE); + + // Comparison // compares with the rules of this platform @@ -242,17 +259,22 @@ public: bool operator==(const wxString& filename) { return *this == wxFileName(filename); } - // Tests - // are the file names of this type cases sensitive? static bool IsCaseSensitive( wxPathFormat format = wxPATH_NATIVE ); // is this filename absolute? - bool IsAbsolute( wxPathFormat format = wxPATH_NATIVE ); + bool IsAbsolute() const + { return !m_relative; } // is this filename relative? - bool IsRelative( wxPathFormat format = wxPATH_NATIVE ) - { return !IsAbsolute(format); } + bool IsRelative() const + { return m_relative; } + + // forcibly set the flag + void SetAbsolute() + { m_relative = FALSE; } + void SetRelative() + { m_relative = TRUE; } // Information about path format @@ -297,6 +319,8 @@ public: // Construct path only - possibly with the trailing separator wxString GetPath( bool add_separator = FALSE, wxPathFormat format = wxPATH_NATIVE ) const; + // Replace current path with this one + void SetPath( const wxString &path, wxPathFormat format = wxPATH_NATIVE ); // more readable synonym wxString GetPathWithSep(wxPathFormat format = wxPATH_NATIVE ) const @@ -342,6 +366,9 @@ private: // the file name and extension (empty for directories) wxString m_name, m_ext; + + // is the path relative + bool m_relative; }; #endif // _WX_FILENAME_H_