// the type of an entry
enum EntryType
{
- Unknown,
- String,
- Boolean,
- Integer, // use Read(long *)
- Float // use Read(double *)
+ Type_Unknown,
+ Type_String,
+ Type_Boolean,
+ Type_Integer, // use Read(long *)
+ Type_Float // use Read(double *)
};
// static functions
// should Get() try to create a new log object if the current one is NULL?
static void DontCreateOnDemand() { ms_bAutoCreate = FALSE; }
- // ctor & virtual dtor
- // environment variable expansion is on by default
-// wxConfigBase() { m_bExpandEnvVars = TRUE; m_bRecordDefaults = FALSE; }
-
- // ctor
-
- // Not all args will always be used by derived classes, but
- // including them all in each class ensures compatibility.
- // If appName is empty, uses wxApp name
- wxConfigBase(const wxString& appName = wxEmptyString, const wxString& vendorName = wxEmptyString,
- const wxString& localFilename = wxEmptyString, const wxString& globalFilename = wxEmptyString,
+ // ctors & virtual dtor
+ // Not all args will always be used by derived classes, but including
+ // them all in each class ensures compatibility. If appName is empty,
+ // uses wxApp name
+ wxConfigBase(const wxString& appName = wxEmptyString,
+ const wxString& vendorName = wxEmptyString,
+ const wxString& localFilename = wxEmptyString,
+ const wxString& globalFilename = wxEmptyString,
long style = 0);
// empty but ensures that dtor of all derived classes is virtual
virtual EntryType GetEntryType(const wxString& name) const
{
// by default all entries are strings
- return HasEntry(name) ? String : Unknown;
+ return HasEntry(name) ? Type_String : Type_Unknown;
}
// key access: returns TRUE if value was really read, FALSE if default used
wxString GetAppName() const { return m_appName; }
wxString GetVendorName() const { return m_vendorName; }
- void SetAppName(const wxString& appName) { m_appName = appName; }
- void SetVendorName(const wxString& vendorName) { m_vendorName = vendorName; }
+ virtual void SetAppName(const wxString& appName)
+ { m_appName = appName; }
+ virtual void SetVendorName(const wxString& vendorName)
+ { m_vendorName = vendorName; }
void SetStyle(long style) { m_style = style; }
long GetStyle() const { return m_style; }
#endif
#ifndef WX_PRECOMP
- #include <wx/string.h>
+ #include "wx/string.h"
#endif //WX_PRECOMP
-#include <wx/event.h>
-#include <wx/app.h>
-#include <wx/log.h>
-#include <wx/config.h>
+#include "wx/event.h"
+#include "wx/app.h"
+#include "wx/log.h"
+#include "wx/config.h"
#ifndef __WIN16__
-#include <wx/msw/registry.h>
-#include <wx/msw/regconf.h>
+#include "wx/msw/registry.h"
+#include "wx/msw/regconf.h"
// ----------------------------------------------------------------------------
// constants
// tests for existence
// ----------------------------------------------------------------------------
-bool wxRegConfig::HasGroup(const wxString& strName) const
+bool wxRegConfig::HasGroup(const wxString& key) const
{
- return m_keyLocal.HasSubKey(strName) || m_keyGlobal.HasSubKey(strName);
+ wxConfigPathChanger path(this, key);
+
+ wxString strName(path.Name());
+
+ return m_keyLocal.HasSubKey(strName) || m_keyGlobal.HasSubKey(strName);
}
-bool wxRegConfig::HasEntry(const wxString& strName) const
+bool wxRegConfig::HasEntry(const wxString& key) const
{
- return m_keyLocal.HasValue(strName) || m_keyGlobal.HasValue(strName);
+ wxConfigPathChanger path(this, key);
+
+ wxString strName(path.Name());
+
+ return m_keyLocal.HasValue(strName) || m_keyGlobal.HasValue(strName);
+}
+
+wxConfigBase::EntryType wxRegConfig::GetEntryType(const wxString& key) const
+{
+ wxConfigPathChanger path(this, key);
+
+ wxString strName(path.Name());
+
+ bool isNumeric;
+ if ( m_keyLocal.HasValue(strName) )
+ isNumeric = m_keyLocal.IsNumericValue(strName);
+ else if ( m_keyGlobal.HasValue(strName) )
+ isNumeric = m_keyGlobal.IsNumericValue(strName);
+ else
+ return wxConfigBase::Type_Unknown;
+
+ return isNumeric ? wxConfigBase::Type_Integer : wxConfigBase::Type_String;
}
// ----------------------------------------------------------------------------
(bQueryGlobal && TryGetValue(m_keyGlobal, path.Name(), *pStr)) ) {
// nothing to do
- // TODO: do we return TRUE? Not in original implementation,
- // but I don't see why not. -- JACS
*pStr = wxConfigBase::ExpandEnvVars(*pStr);
return TRUE;
}