X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a121d7205216f5b4b144264096e07104b5ad3172..ba5787676d002f76b4c3944cb598b626f10f058d:/include/wx/fileconf.h?ds=sidebyside diff --git a/include/wx/fileconf.h b/include/wx/fileconf.h index 67296ab956..a2ab598635 100644 --- a/include/wx/fileconf.h +++ b/include/wx/fileconf.h @@ -13,10 +13,6 @@ #ifndef _FILECONF_H #define _FILECONF_H -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma interface "fileconf.h" -#endif - #include "wx/defs.h" #if wxUSE_CONFIG @@ -24,6 +20,7 @@ #include "wx/textfile.h" #include "wx/string.h" #include "wx/confbase.h" +#include "wx/filename.h" // ---------------------------------------------------------------------------- // wxFileConfig @@ -89,14 +86,18 @@ in the entries it reads: for example, if you have an entry score_file = $HOME/.score a call to Read(&str, "score_file") will return a complete path to .score file - unless the expansion was previousle disabled with SetExpandEnvVars(false) call + unless the expansion was previously disabled with SetExpandEnvVars(false) call (it's on by default, the current status can be retrieved with IsExpandingEnvVars function). */ class WXDLLIMPEXP_BASE wxFileConfigGroup; class WXDLLIMPEXP_BASE wxFileConfigEntry; class WXDLLIMPEXP_BASE wxFileConfigLineList; + +#if wxUSE_STREAMS class WXDLLIMPEXP_BASE wxInputStream; +class WXDLLIMPEXP_BASE wxOutputStream; +#endif // wxUSE_STREAMS class WXDLLIMPEXP_BASE wxFileConfig : public wxConfigBase { @@ -109,10 +110,20 @@ public: // Unix /etc/file.ext ~/.file // Win %windir%\file.ext %USERPROFILE%\file.ext // - // where file is the basename of szFile, ext is it's extension + // where file is the basename of szFile, ext is its extension // or .conf (Unix) or .ini (Win) if it has none - static wxString GetGlobalFileName(const wxChar *szFile); - static wxString GetLocalFileName(const wxChar *szFile); + static wxFileName GetGlobalFile(const wxString& szFile); + static wxFileName GetLocalFile(const wxString& szFile, int style = 0); + + static wxString GetGlobalFileName(const wxString& szFile) + { + return GetGlobalFile(szFile).GetFullPath(); + } + + static wxString GetLocalFileName(const wxString& szFile, int style = 0) + { + return GetLocalFile(szFile, style).GetFullPath(); + } // ctor & dtor // New constructor: one size fits all. Specify wxCONFIG_USE_LOCAL_FILE or @@ -122,11 +133,11 @@ public: const wxString& localFilename = wxEmptyString, const wxString& globalFilename = wxEmptyString, long style = wxCONFIG_USE_LOCAL_FILE | wxCONFIG_USE_GLOBAL_FILE, - wxMBConv& conv = wxConvUTF8); + const wxMBConv& conv = wxConvAuto()); #if wxUSE_STREAMS // ctor that takes an input stream. - wxFileConfig(wxInputStream &inStream, wxMBConv& conv = wxConvUTF8); + wxFileConfig(wxInputStream &inStream, const wxMBConv& conv = wxConvAuto()); #endif // wxUSE_STREAMS // dtor will save unsaved data @@ -169,7 +180,7 @@ public: // save the entire config file text to the given stream, note that the text // won't be saved again in dtor when Flush() is called if you use this method // as it won't be "changed" any more - virtual bool Save(wxOutputStream& os, wxMBConv& conv = wxConvUTF8); + virtual bool Save(wxOutputStream& os, const wxMBConv& conv = wxConvAuto()); #endif // wxUSE_STREAMS public: @@ -190,7 +201,7 @@ protected: private: // GetXXXFileName helpers: return ('/' terminated) directory names static wxString GetGlobalDir(); - static wxString GetLocalDir(); + static wxString GetLocalDir(int style = 0); // common part of all ctors (assumes that m_str{Local|Global}File are already // initialized @@ -200,11 +211,15 @@ private: void CleanUp(); // parse the whole file - void Parse(wxTextBuffer& buffer, bool bLocal); + void Parse(const wxTextBuffer& buffer, bool bLocal); // the same as SetPath("/") void SetRootPath(); + // real SetPath() implementation, returns true if path could be set or false + // if path doesn't exist and createMissingComponents == false + bool DoSetPath(const wxString& strPath, bool createMissingComponents); + // set/test the dirty flag void SetDirty() { m_isDirty = true; } void ResetDirty() { m_isDirty = false; } @@ -216,14 +231,14 @@ private: wxFileConfigLineList *m_linesHead, // head of the linked list *m_linesTail; // tail - wxString m_strLocalFile, // local file name passed to ctor - m_strGlobalFile; // global + wxFileName m_fnLocalFile, // local file name passed to ctor + m_fnGlobalFile; // global wxString m_strPath; // current path (not '/' terminated) wxFileConfigGroup *m_pRootGroup, // the top (unnamed) group *m_pCurrentGroup; // the current group - wxMBConv &m_conv; + wxMBConv *m_conv; #ifdef __UNIX__ int m_umask; // the umask to use for file creation @@ -232,6 +247,7 @@ private: bool m_isDirty; // if true, we have unsaved changes DECLARE_NO_COPY_CLASS(wxFileConfig) + DECLARE_ABSTRACT_CLASS(wxFileConfig) }; #endif