]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/confbase.h
added wxUSE_REGKEY option
[wxWidgets.git] / include / wx / confbase.h
index d764bbbd48d2af8445682a6994e33d120b62932a..39d06305b844675df9a0a2e3e0f0eb25ac8d5588 100644 (file)
 // 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/object.h"
+#include "wx/base64.h"
 
-class WXDLLIMPEXP_BASE wxArrayString;
+class WXDLLIMPEXP_FWD_BASE wxArrayString;
 
 // ----------------------------------------------------------------------------
 // constants
@@ -72,7 +74,7 @@ enum
 // (long) type (TODO doubles and other types such as wxDate coming soon).
 // ----------------------------------------------------------------------------
 
-class WXDLLIMPEXP_BASE wxConfigBase
+class WXDLLIMPEXP_BASE wxConfigBase : public wxObject
 {
 public:
   // constants
@@ -176,6 +178,13 @@ public:
   bool Read(const wxString& key, bool* val) const;
   bool Read(const wxString& key, bool* val, bool defVal) const;
 
+#if wxUSE_BASE64
+    // 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
+#endif // wxUSE_BASE64
+
   // 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,
@@ -201,10 +210,19 @@ public:
   bool Write(const wxString& key, bool value)
     { return DoWriteBool(key, value); }
 
+#if wxUSE_BASE64
+  bool Write(const wxString& key, const wxMemoryBuffer& buf)
+    { return DoWriteBinary(key, buf); }
+#endif // wxUSE_BASE64
+
   // 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)); }
+#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;
@@ -268,12 +286,18 @@ 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;
+#if wxUSE_BASE64
+  virtual bool DoReadBinary(const wxString& key, wxMemoryBuffer* buf) const = 0;
+#endif // wxUSE_BASE64
 
   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);
+#if wxUSE_BASE64
+  virtual bool DoWriteBinary(const wxString& key, const wxMemoryBuffer& buf) = 0;
+#endif // wxUSE_BASE64
 
 private:
   // are we doing automatic environment variable expansion?
@@ -291,6 +315,8 @@ private:
 
   // Style flag
   long              m_style;
+
+  DECLARE_ABSTRACT_CLASS(wxConfigBase)
 };
 
 // a handy little class which changes current path to the path of given entry
@@ -351,9 +377,7 @@ WXDLLIMPEXP_BASE wxString wxExpandEnvVars(const wxString &sz);
 /*
   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_