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:
@@ -90,11 +90,11 @@ public:
|
|||||||
// the type of an entry
|
// the type of an entry
|
||||||
enum EntryType
|
enum EntryType
|
||||||
{
|
{
|
||||||
Unknown,
|
Type_Unknown,
|
||||||
String,
|
Type_String,
|
||||||
Boolean,
|
Type_Boolean,
|
||||||
Integer, // use Read(long *)
|
Type_Integer, // use Read(long *)
|
||||||
Float // use Read(double *)
|
Type_Float // use Read(double *)
|
||||||
};
|
};
|
||||||
|
|
||||||
// static functions
|
// static functions
|
||||||
@@ -111,17 +111,14 @@ public:
|
|||||||
// should Get() try to create a new log object if the current one is NULL?
|
// should Get() try to create a new log object if the current one is NULL?
|
||||||
static void DontCreateOnDemand() { ms_bAutoCreate = FALSE; }
|
static void DontCreateOnDemand() { ms_bAutoCreate = FALSE; }
|
||||||
|
|
||||||
// ctor & virtual dtor
|
// ctors & virtual dtor
|
||||||
// environment variable expansion is on by default
|
// Not all args will always be used by derived classes, but including
|
||||||
// wxConfigBase() { m_bExpandEnvVars = TRUE; m_bRecordDefaults = FALSE; }
|
// them all in each class ensures compatibility. If appName is empty,
|
||||||
|
// uses wxApp name
|
||||||
// ctor
|
wxConfigBase(const wxString& appName = wxEmptyString,
|
||||||
|
const wxString& vendorName = wxEmptyString,
|
||||||
// Not all args will always be used by derived classes, but
|
const wxString& localFilename = wxEmptyString,
|
||||||
// including them all in each class ensures compatibility.
|
const wxString& globalFilename = wxEmptyString,
|
||||||
// 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);
|
long style = 0);
|
||||||
|
|
||||||
// empty but ensures that dtor of all derived classes is virtual
|
// empty but ensures that dtor of all derived classes is virtual
|
||||||
@@ -161,7 +158,7 @@ public:
|
|||||||
virtual EntryType GetEntryType(const wxString& name) const
|
virtual EntryType GetEntryType(const wxString& name) const
|
||||||
{
|
{
|
||||||
// by default all entries are strings
|
// 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
|
// 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 GetAppName() const { return m_appName; }
|
||||||
wxString GetVendorName() const { return m_vendorName; }
|
wxString GetVendorName() const { return m_vendorName; }
|
||||||
|
|
||||||
void SetAppName(const wxString& appName) { m_appName = appName; }
|
virtual void SetAppName(const wxString& appName)
|
||||||
void SetVendorName(const wxString& vendorName) { m_vendorName = vendorName; }
|
{ m_appName = appName; }
|
||||||
|
virtual void SetVendorName(const wxString& vendorName)
|
||||||
|
{ m_vendorName = vendorName; }
|
||||||
|
|
||||||
void SetStyle(long style) { m_style = style; }
|
void SetStyle(long style) { m_style = style; }
|
||||||
long GetStyle() const { return m_style; }
|
long GetStyle() const { return m_style; }
|
||||||
|
@@ -53,6 +53,7 @@ public:
|
|||||||
// tests for existence
|
// tests for existence
|
||||||
virtual bool HasGroup(const wxString& strName) const;
|
virtual bool HasGroup(const wxString& strName) const;
|
||||||
virtual bool HasEntry(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
|
// get number of entries/subgroups in the current group, with or without
|
||||||
// it's subgroups
|
// it's subgroups
|
||||||
|
@@ -224,6 +224,11 @@ bool wxPen::RealizeResource()
|
|||||||
break ;
|
break ;
|
||||||
default:
|
default:
|
||||||
logb.lbStyle = BS_SOLID ;
|
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 ;
|
break ;
|
||||||
}
|
}
|
||||||
logb.lbColor = ms_colour ;
|
logb.lbColor = ms_colour ;
|
||||||
|
@@ -21,18 +21,18 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef WX_PRECOMP
|
#ifndef WX_PRECOMP
|
||||||
#include <wx/string.h>
|
#include "wx/string.h"
|
||||||
#endif //WX_PRECOMP
|
#endif //WX_PRECOMP
|
||||||
|
|
||||||
#include <wx/event.h>
|
#include "wx/event.h"
|
||||||
#include <wx/app.h>
|
#include "wx/app.h"
|
||||||
#include <wx/log.h>
|
#include "wx/log.h"
|
||||||
#include <wx/config.h>
|
#include "wx/config.h"
|
||||||
|
|
||||||
#ifndef __WIN16__
|
#ifndef __WIN16__
|
||||||
|
|
||||||
#include <wx/msw/registry.h>
|
#include "wx/msw/registry.h"
|
||||||
#include <wx/msw/regconf.h>
|
#include "wx/msw/regconf.h"
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// constants
|
// constants
|
||||||
@@ -287,16 +287,41 @@ size_t wxRegConfig::GetNumberOfGroups(bool bRecursive) const
|
|||||||
// tests for existence
|
// tests for existence
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
bool wxRegConfig::HasGroup(const wxString& strName) const
|
bool wxRegConfig::HasGroup(const wxString& key) const
|
||||||
{
|
{
|
||||||
|
wxConfigPathChanger path(this, key);
|
||||||
|
|
||||||
|
wxString strName(path.Name());
|
||||||
|
|
||||||
return m_keyLocal.HasSubKey(strName) || m_keyGlobal.HasSubKey(strName);
|
return m_keyLocal.HasSubKey(strName) || m_keyGlobal.HasSubKey(strName);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxRegConfig::HasEntry(const wxString& strName) const
|
bool wxRegConfig::HasEntry(const wxString& key) const
|
||||||
{
|
{
|
||||||
|
wxConfigPathChanger path(this, key);
|
||||||
|
|
||||||
|
wxString strName(path.Name());
|
||||||
|
|
||||||
return m_keyLocal.HasValue(strName) || m_keyGlobal.HasValue(strName);
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// reading/writing
|
// reading/writing
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -329,8 +354,6 @@ bool wxRegConfig::Read(const wxString& key, wxString *pStr) const
|
|||||||
(bQueryGlobal && TryGetValue(m_keyGlobal, path.Name(), *pStr)) ) {
|
(bQueryGlobal && TryGetValue(m_keyGlobal, path.Name(), *pStr)) ) {
|
||||||
// nothing to do
|
// nothing to do
|
||||||
|
|
||||||
// TODO: do we return TRUE? Not in original implementation,
|
|
||||||
// but I don't see why not. -- JACS
|
|
||||||
*pStr = wxConfigBase::ExpandEnvVars(*pStr);
|
*pStr = wxConfigBase::ExpandEnvVars(*pStr);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user