HasGroup/Entry added

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@190 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1998-07-08 17:56:43 +00:00
parent 6a6c0a8bda
commit 6d8335660f
2 changed files with 26 additions and 8 deletions

View File

@@ -42,6 +42,10 @@ public:
virtual bool GetFirstEntry(wxString& str, long& lIndex); virtual bool GetFirstEntry(wxString& str, long& lIndex);
virtual bool GetNextEntry (wxString& str, long& lIndex); virtual bool GetNextEntry (wxString& str, long& lIndex);
// tests for existence
virtual bool HasGroup(const wxString& strName) const;
virtual bool HasEntry(const wxString& strName) const;
// read/write // read/write
virtual bool Read(wxString&, const char *, const char * = 0) const; virtual bool Read(wxString&, const char *, const char * = 0) const;
virtual bool Read(long&, const char *, long = 0) const; virtual bool Read(long&, const char *, long = 0) const;

View File

@@ -1,8 +1,8 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// Name: msw/regconf.cpp // Name: msw/regconf.cpp
// Purpose: // Purpose:
// Author: Vadim Zeitlin // Author: Vadim Zeitlin
// Modified by: // Modified by:
// Created: 27.04.98 // Created: 27.04.98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> // Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
@@ -23,7 +23,7 @@
#include <wx/wx.h> #include <wx/wx.h>
#include <wx/config.h> #include <wx/config.h>
#include <wx/regconf.h> #include <wx/regconf.h>
#include <wx/registry.h> #include <wx/msw/registry.h>
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// constants // constants
@@ -55,9 +55,9 @@ bool TryGetValue(const wxRegKey& key, const wxString& str, long *plVal)
// ctor/dtor // ctor/dtor
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
wxRegConfig::wxRegConfig(const wxString& strRoot) wxRegConfig::wxRegConfig(const wxString& strRoot)
: m_keyLocalRoot(wxRegKey::HKCU, SOFTWARE_KEY + strRoot), : m_keyLocalRoot(wxRegKey::HKCU, SOFTWARE_KEY + strRoot),
m_keyLocal(m_keyLocalRoot, ""), m_keyLocal(m_keyLocalRoot, ""),
m_keyGlobalRoot(wxRegKey::HKLM, SOFTWARE_KEY + strRoot), m_keyGlobalRoot(wxRegKey::HKLM, SOFTWARE_KEY + strRoot),
m_keyGlobal(m_keyGlobalRoot, "") m_keyGlobal(m_keyGlobalRoot, "")
{ {
// Create() will Open() if key already exists // Create() will Open() if key already exists
@@ -115,7 +115,7 @@ void wxRegConfig::SetPath(const wxString& strPath)
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
/* /*
We want to enumerate all local keys/values after the global ones, but, of We want to enumerate all local keys/values after the global ones, but, of
course, we don't want to repeat a key which appears locally as well as course, we don't want to repeat a key which appears locally as well as
globally twice. globally twice.
@@ -183,6 +183,20 @@ bool wxRegConfig::GetNextEntry (wxString& str, long& lIndex)
return bOk; return bOk;
} }
// ----------------------------------------------------------------------------
// tests for existence
// ----------------------------------------------------------------------------
bool wxRegConfig::HasGroup(const wxString& strName) const
{
return m_keyLocal.HasSubKey(strName) || m_keyGlobal.HasSubKey(strName);
}
bool wxRegConfig::HasEntry(const wxString& strName) const
{
return m_keyLocal.HasValue(strName) || m_keyGlobal.HasValue(strName);
}
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// reading/writing // reading/writing
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -200,7 +214,7 @@ bool wxRegConfig::Read(wxString& str,
if ( IsImmutable(path.Name()) ) { if ( IsImmutable(path.Name()) ) {
if ( TryGetValue(m_keyGlobal, path.Name(), str) ) { if ( TryGetValue(m_keyGlobal, path.Name(), str) ) {
if ( m_keyLocal.HasValue(path.Name()) ) { if ( m_keyLocal.HasValue(path.Name()) ) {
wxLogWarning("User value for immutable key '%s' ignored.", wxLogWarning("User value for immutable key '%s' ignored.",
path.Name().c_str()); path.Name().c_str());
} }
@@ -234,7 +248,7 @@ bool wxRegConfig::Read(long &lValue, const char *szKey, long lDefault) const
if ( IsImmutable(path.Name()) ) { if ( IsImmutable(path.Name()) ) {
if ( TryGetValue(m_keyGlobal, path.Name(), &lValue) ) { if ( TryGetValue(m_keyGlobal, path.Name(), &lValue) ) {
if ( m_keyLocal.HasValue(path.Name()) ) { if ( m_keyLocal.HasValue(path.Name()) ) {
wxLogWarning("User value for immutable key '%s' ignored.", wxLogWarning("User value for immutable key '%s' ignored.",
path.Name().c_str()); path.Name().c_str());
} }