]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/confbase.h
make it possible to build in ANSI build on Windows again
[wxWidgets.git] / include / wx / confbase.h
index 1d58ac75a63f3c4ac30bd61077e90d913009ab12..58f3b646fbc024aa5a37368cafc66e69237965aa 100644 (file)
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
-#ifndef   _WX_CONFBASE_H_
-#define   _WX_CONFBASE_H_
+#ifndef _WX_CONFBASE_H_
+#define _WX_CONFBASE_H_
 
 #include "wx/defs.h"
 #include "wx/string.h"
 
 #include "wx/defs.h"
 #include "wx/string.h"
+#include "wx/object.h"
+#include "wx/base64.h"
 
 
-class WXDLLIMPEXP_BASE wxArrayString;
+class WXDLLIMPEXP_FWD_BASE wxArrayString;
 
 // ----------------------------------------------------------------------------
 // constants
 
 // ----------------------------------------------------------------------------
 // constants
@@ -56,7 +58,8 @@ enum
     wxCONFIG_USE_LOCAL_FILE = 1,
     wxCONFIG_USE_GLOBAL_FILE = 2,
     wxCONFIG_USE_RELATIVE_PATH = 4,
     wxCONFIG_USE_LOCAL_FILE = 1,
     wxCONFIG_USE_GLOBAL_FILE = 2,
     wxCONFIG_USE_RELATIVE_PATH = 4,
-    wxCONFIG_USE_NO_ESCAPE_CHARACTERS = 8
+    wxCONFIG_USE_NO_ESCAPE_CHARACTERS = 8,
+    wxCONFIG_USE_SUBDIR = 16
 };
 
 // ----------------------------------------------------------------------------
 };
 
 // ----------------------------------------------------------------------------
@@ -71,7 +74,7 @@ enum
 // (long) type (TODO doubles and other types such as wxDate coming soon).
 // ----------------------------------------------------------------------------
 
 // (long) type (TODO doubles and other types such as wxDate coming soon).
 // ----------------------------------------------------------------------------
 
-class WXDLLIMPEXP_BASE wxConfigBase
+class WXDLLIMPEXP_BASE wxConfigBase : public wxObject
 {
 public:
   // constants
 {
 public:
   // constants
@@ -175,6 +178,11 @@ public:
   bool Read(const wxString& key, bool* val) const;
   bool Read(const wxString& key, bool* val, bool defVal) const;
 
   bool Read(const wxString& key, bool* val) const;
   bool Read(const wxString& key, bool* val, bool defVal) const;
 
+    // read a binary data block
+  bool Read(const wxString& key, wxMemoryBuffer* data) const
+   { return DoReadBinary(key, data); }
+   // no default version since it does not make sense for binary data
+
   // convenience functions returning directly the value (we don't have them for
   // int/double/bool as there would be ambiguities with the long one then)
   wxString Read(const wxString& key,
   // convenience functions returning directly the value (we don't have them for
   // int/double/bool as there would be ambiguities with the long one then)
   wxString Read(const wxString& key,
@@ -200,10 +208,17 @@ public:
   bool Write(const wxString& key, bool value)
     { return DoWriteBool(key, value); }
 
   bool Write(const wxString& key, bool value)
     { return DoWriteBool(key, value); }
 
+  bool Write(const wxString& key, const wxMemoryBuffer& buf)
+    { return DoWriteBinary(key, buf); }
+
   // we have to provide a separate version for C strings as otherwise they
   // would be converted to bool and not to wxString as expected!
   // we have to provide a separate version for C strings as otherwise they
   // would be converted to bool and not to wxString as expected!
-  bool Write(const wxString& key, const wxChar *value)
+  bool Write(const wxString& key, const char *value)
     { return Write(key, wxString(value)); }
     { return Write(key, wxString(value)); }
+#if wxUSE_WCHAR_T
+  bool Write(const wxString& key, const wchar_t *value)
+    { return Write(key, wxString(value)); }
+#endif
 
   // permanently writes all changes
   virtual bool Flush(bool bCurrentOnly = false) = 0;
 
   // permanently writes all changes
   virtual bool Flush(bool bCurrentOnly = false) = 0;
@@ -267,12 +282,14 @@ protected:
   virtual bool DoReadInt(const wxString& key, int *pi) const;
   virtual bool DoReadDouble(const wxString& key, double* val) const;
   virtual bool DoReadBool(const wxString& key, bool* val) const;
   virtual bool DoReadInt(const wxString& key, int *pi) const;
   virtual bool DoReadDouble(const wxString& key, double* val) const;
   virtual bool DoReadBool(const wxString& key, bool* val) const;
+  virtual bool DoReadBinary(const wxString& key, wxMemoryBuffer* buf) const = 0;
 
   virtual bool DoWriteString(const wxString& key, const wxString& value) = 0;
   virtual bool DoWriteLong(const wxString& key, long value) = 0;
   virtual bool DoWriteInt(const wxString& key, int value);
   virtual bool DoWriteDouble(const wxString& key, double value);
   virtual bool DoWriteBool(const wxString& key, bool value);
 
   virtual bool DoWriteString(const wxString& key, const wxString& value) = 0;
   virtual bool DoWriteLong(const wxString& key, long value) = 0;
   virtual bool DoWriteInt(const wxString& key, int value);
   virtual bool DoWriteDouble(const wxString& key, double value);
   virtual bool DoWriteBool(const wxString& key, bool value);
+  virtual bool DoWriteBinary(const wxString& key, const wxMemoryBuffer& buf) = 0;
 
 private:
   // are we doing automatic environment variable expansion?
 
 private:
   // are we doing automatic environment variable expansion?
@@ -290,6 +307,8 @@ private:
 
   // Style flag
   long              m_style;
 
   // Style flag
   long              m_style;
+
+  DECLARE_ABSTRACT_CLASS(wxConfigBase)
 };
 
 // a handy little class which changes current path to the path of given entry
 };
 
 // a handy little class which changes current path to the path of given entry
@@ -350,9 +369,7 @@ WXDLLIMPEXP_BASE wxString wxExpandEnvVars(const wxString &sz);
 /*
   Split path into parts removing '..' in progress
  */
 /*
   Split path into parts removing '..' in progress
  */
-WXDLLIMPEXP_BASE void wxSplitPath(wxArrayString& aParts, const wxChar *sz);
-
+WXDLLIMPEXP_BASE void wxSplitPath(wxArrayString& aParts, const wxString& path);
 
 
-#endif
-  // _WX_CONFIG_H_
+#endif // _WX_CONFBASE_H_