]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/fileconf.h
show the item for which the context menu is shown correctly
[wxWidgets.git] / include / wx / fileconf.h
index 0c8944ce4ced964a7f5e831a930ffb3cc733412d..140b7071576452f273645771ba2897abf9236cd2 100644 (file)
 #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
   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,7 +109,7 @@ 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);
@@ -122,11 +122,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
@@ -164,6 +164,14 @@ public:
   virtual bool DeleteGroup(const wxString& szKey);
   virtual bool DeleteAll();
 
+  // additional, wxFileConfig-specific, functionality
+#if wxUSE_STREAMS
+  // 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, const wxMBConv& conv = wxConvAuto());
+#endif // wxUSE_STREAMS
+
 public:
   // functions to work with this list
   wxFileConfigLineList *LineListAppend(const wxString& str);
@@ -192,11 +200,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; }
@@ -215,7 +227,7 @@ private:
   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