]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/fileconf.h
cleaning up problems after string changes
[wxWidgets.git] / include / wx / fileconf.h
index 5bb6b91fb12909c011fbb7eec99bf3f401415d6f..a2ab5986354e25a3551633e379b906e10f67a41c 100644 (file)
 #ifndef   _FILECONF_H
 #define   _FILECONF_H
 
 #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
 #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/textfile.h"
 #include "wx/string.h"
 #include "wx/confbase.h"
+#include "wx/filename.h"
 
 // ----------------------------------------------------------------------------
 // wxFileConfig
 
 // ----------------------------------------------------------------------------
 // wxFileConfig
@@ -115,8 +112,18 @@ public:
   //
   // where file is the basename of szFile, ext is its extension
   // or .conf (Unix) or .ini (Win) if it has none
   //
   // 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
 
   // ctor & dtor
     // New constructor: one size fits all. Specify wxCONFIG_USE_LOCAL_FILE or
@@ -126,11 +133,11 @@ public:
                const wxString& localFilename = wxEmptyString,
                const wxString& globalFilename = wxEmptyString,
                long style = wxCONFIG_USE_LOCAL_FILE | wxCONFIG_USE_GLOBAL_FILE,
                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.
 
 #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
 #endif // wxUSE_STREAMS
 
     // dtor will save unsaved data
@@ -173,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
   // 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:
 #endif // wxUSE_STREAMS
 
 public:
@@ -194,7 +201,7 @@ protected:
 private:
   // GetXXXFileName helpers: return ('/' terminated) directory names
   static wxString GetGlobalDir();
 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
 
   // common part of all ctors (assumes that m_str{Local|Global}File are already
   // initialized
@@ -204,11 +211,15 @@ private:
   void CleanUp();
 
   // parse the whole file
   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();
 
 
   // 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; }
   // set/test the dirty flag
   void SetDirty() { m_isDirty = true; }
   void ResetDirty() { m_isDirty = false; }
@@ -220,14 +231,14 @@ private:
   wxFileConfigLineList *m_linesHead,    // head of the linked list
                        *m_linesTail;    // tail
 
   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
 
   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
 
 #ifdef __UNIX__
   int m_umask;                          // the umask to use for file creation
@@ -236,6 +247,7 @@ private:
   bool m_isDirty;                       // if true, we have unsaved changes
 
   DECLARE_NO_COPY_CLASS(wxFileConfig)
   bool m_isDirty;                       // if true, we have unsaved changes
 
   DECLARE_NO_COPY_CLASS(wxFileConfig)
+  DECLARE_ABSTRACT_CLASS(wxFileConfig)
 };
 
 #endif
 };
 
 #endif