X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/16193c2b68e0a45d4aa22a923e9ff2b708e4b80c..edb89f7e356761b4fbdaebb8b5ebd5c7a7643da7:/include/wx/confbase.h diff --git a/include/wx/confbase.h b/include/wx/confbase.h index abb5f96dd0..25b97678b8 100644 --- a/include/wx/confbase.h +++ b/include/wx/confbase.h @@ -19,9 +19,6 @@ #endif #include "wx/defs.h" - -#if wxUSE_CONFIG - #include "wx/string.h" // ---------------------------------------------------------------------------- @@ -35,15 +32,19 @@ /// separates group and entry names (probably shouldn't be changed) #ifndef wxCONFIG_PATH_SEPARATOR - #define wxCONFIG_PATH_SEPARATOR '/' + #define wxCONFIG_PATH_SEPARATOR _T('/') #endif /// introduces immutable entries // (i.e. the ones which can't be changed from the local config file) #ifndef wxCONFIG_IMMUTABLE_PREFIX - #define wxCONFIG_IMMUTABLE_PREFIX '!' + #define wxCONFIG_IMMUTABLE_PREFIX _T('!') #endif +#if wxUSE_CONFIG + +#include "wx/string.h" + /// should we use registry instead of configuration files under Windows? // (i.e. whether wxConfigBase::Create() will create a wxFileConfig (if it's // FALSE) or wxRegConfig (if it's true and we're under Win32) or wxIniConfig @@ -90,7 +91,8 @@ public: static wxConfigBase *Set(wxConfigBase *pConfig); // get the config object, creates it on demand unless DontCreateOnDemand // was called - static wxConfigBase *Get() { if ( !ms_pConfig ) Create(); return ms_pConfig; } + static wxConfigBase *Get(bool createOnDemand = TRUE) + { if ( createOnDemand && (!ms_pConfig) ) Create(); return ms_pConfig; } // create a new config object: this function will create the "best" // implementation of wxConfig available for the current platform, see // comments near definition wxUSE_CONFIG_NATIVE for details. It returns @@ -112,7 +114,7 @@ public: long style = 0); // empty but ensures that dtor of all derived classes is virtual - virtual ~wxConfigBase() { } + virtual ~wxConfigBase(); // path management // set current path: if the first character is '/', it's the absolute path, @@ -183,12 +185,15 @@ public: virtual bool Write(const wxString& key, const wxString& value) = 0; virtual bool Write(const wxString& key, long value) = 0; - // Convenience functions + // convenience functions virtual bool Write(const wxString& key, double value); virtual bool Write(const wxString& key, bool value); - virtual bool Write(const wxString& key, const wxChar *text ) ; - // permanently writes all changes + // we have to provide a separate version for C strings as otherwise they + // would be converted to bool and not to wxString as expected! + virtual bool Write(const wxString& key, const wxChar *value); + + // permanently writes all changes virtual bool Flush(bool bCurrentOnly = FALSE) = 0; // renaming, all functions return FALSE on failure (probably because the new @@ -226,6 +231,10 @@ public: wxString GetAppName() const { return m_appName; } wxString GetVendorName() const { return m_vendorName; } + // Used wxIniConfig to set members in constructor + void SetAppName(const wxString& appName) { m_appName = appName; } + void SetVendorName(const wxString& vendorName) { m_vendorName = vendorName; } + void SetStyle(long style) { m_style = style; } long GetStyle() const { return m_style; } @@ -294,21 +303,19 @@ private: #endif // wxUSE_CONFIG -// ---------------------------------------------------------------------------- -// various helper global functions (defined even if !wxUSE_CONFIG) -// ---------------------------------------------------------------------------- - /* Replace environment variables ($SOMETHING) with their values. The format is $VARNAME or ${VARNAME} where VARNAME contains alphanumeric characters and '_' only. '$' must be escaped ('\$') in order to be taken literally. - */ -extern wxString wxExpandEnvVars(const wxString &sz); +*/ + +WXDLLEXPORT wxString wxExpandEnvVars(const wxString &sz); /* Split path into parts removing '..' in progress */ -extern void wxSplitPath(wxArrayString& aParts, const wxChar *sz); +WXDLLEXPORT void wxSplitPath(wxArrayString& aParts, const wxChar *sz); + #endif // _WX_CONFIG_H_