X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/04af2f5ce39da0adc94f0786a26c80fd1ea8a685..f77c0fe312a1dedde4a86c9b967d095802c10384:/include/wx/confbase.h diff --git a/include/wx/confbase.h b/include/wx/confbase.h index d764bbbd48..39d06305b8 100644 --- a/include/wx/confbase.h +++ b/include/wx/confbase.h @@ -11,13 +11,15 @@ // 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_