wxRegConfig::GetEntryType() added and some bugs fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2059 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
22d5903e91
commit
61ba49f2b6
@ -90,11 +90,11 @@ public:
|
||||
// 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
|
||||
@ -111,17 +111,14 @@ public:
|
||||
// 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
|
||||
@ -161,7 +158,7 @@ public:
|
||||
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
|
||||
@ -238,8 +235,10 @@ public:
|
||||
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; }
|
||||
|
@ -53,6 +53,7 @@ public:
|
||||
// tests for existence
|
||||
virtual bool HasGroup(const wxString& strName) const;
|
||||
virtual bool HasEntry(const wxString& strName) const;
|
||||
virtual EntryType GetEntryType(const wxString& name) const;
|
||||
|
||||
// get number of entries/subgroups in the current group, with or without
|
||||
// it's subgroups
|
||||
|
@ -224,6 +224,11 @@ bool wxPen::RealizeResource()
|
||||
break ;
|
||||
default:
|
||||
logb.lbStyle = BS_SOLID ;
|
||||
// this should be unnecessary (it's unused) but suppresses the Purigy
|
||||
// messages about uninitialized memory read
|
||||
#ifdef __WXDEBUG__
|
||||
logb.lbHatch = 0;
|
||||
#endif
|
||||
break ;
|
||||
}
|
||||
logb.lbColor = ms_colour ;
|
||||
|
@ -21,18 +21,18 @@
|
||||
#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
|
||||
@ -287,14 +287,39 @@ size_t wxRegConfig::GetNumberOfGroups(bool bRecursive) const
|
||||
// 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;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@ -329,8 +354,6 @@ bool wxRegConfig::Read(const wxString& key, wxString *pStr) const
|
||||
(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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user