// Modified by:
// Created: 07.04.98
// RCS-ID: $Id$
-// Copyright: (c) 1997 Karsten Ballüder Ballueder@usa.net
+// Copyright: (c) 1997 Karsten Ballueder Ballueder@usa.net
// Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
{
if ( ms_bAutoCreate && ms_pConfig == NULL ) {
wxAppTraits * const traits = wxTheApp ? wxTheApp->GetTraits() : NULL;
- wxCHECK_MSG( traits, NULL, _T("create wxApp before calling this") );
+ wxCHECK_MSG( traits, NULL, wxT("create wxApp before calling this") );
ms_pConfig = traits->CreateConfig();
}
#define IMPLEMENT_READ_FOR_TYPE(name, type, deftype, extra) \
bool wxConfigBase::Read(const wxString& key, type *val) const \
{ \
- wxCHECK_MSG( val, false, _T("wxConfig::Read(): NULL parameter") ); \
+ wxCHECK_MSG( val, false, wxT("wxConfig::Read(): NULL parameter") ); \
\
if ( !DoRead##name(key, val) ) \
return false; \
type *val, \
deftype defVal) const \
{ \
- wxCHECK_MSG( val, false, _T("wxConfig::Read(): NULL parameter") ); \
+ wxCHECK_MSG( val, false, wxT("wxConfig::Read(): NULL parameter") ); \
\
bool read = DoRead##name(key, val); \
if ( !read ) \
IMPLEMENT_READ_FOR_TYPE(String, wxString, const wxString&, ExpandEnvVars)
IMPLEMENT_READ_FOR_TYPE(Long, long, long, long)
-IMPLEMENT_READ_FOR_TYPE(Int, int, int, int)
IMPLEMENT_READ_FOR_TYPE(Double, double, double, double)
IMPLEMENT_READ_FOR_TYPE(Bool, bool, bool, bool)
#undef IMPLEMENT_READ_FOR_TYPE
-// the DoReadXXX() for the other types have implementation in the base class
-// but can be overridden in the derived ones
-bool wxConfigBase::DoReadInt(const wxString& key, int *pi) const
+// int is stored as long
+bool wxConfigBase::Read(const wxString& key, int *pi) const
{
- wxCHECK_MSG( pi, false, _T("wxConfig::Read(): NULL parameter") );
-
- long l;
- if ( !DoReadLong(key, &l) )
- return false;
-
- wxASSERT_MSG( l < INT_MAX, _T("overflow in wxConfig::DoReadInt") );
-
+ long l = *pi;
+ bool r = Read(key, &l);
+ wxASSERT_MSG( l < INT_MAX, wxT("int overflow in wxConfig::Read") );
*pi = (int)l;
+ return r;
+}
- return true;
+bool wxConfigBase::Read(const wxString& key, int *pi, int defVal) const
+{
+ long l = *pi;
+ bool r = Read(key, &l, defVal);
+ wxASSERT_MSG( l < INT_MAX, wxT("int overflow in wxConfig::Read") );
+ *pi = (int)l;
+ return r;
}
+// the DoReadXXX() for the other types have implementation in the base class
+// but can be overridden in the derived ones
bool wxConfigBase::DoReadBool(const wxString& key, bool* val) const
{
- wxCHECK_MSG( val, false, _T("wxConfig::Read(): NULL parameter") );
+ wxCHECK_MSG( val, false, wxT("wxConfig::Read(): NULL parameter") );
long l;
if ( !DoReadLong(key, &l) )
return false;
- wxASSERT_MSG( l == 0 || l == 1, _T("bad bool value in wxConfig::DoReadInt") );
+ wxASSERT_MSG( l == 0 || l == 1, wxT("bad bool value in wxConfig::DoReadInt") );
*val = l != 0;
bool wxConfigBase::DoWriteDouble(const wxString& key, double val)
{
- return DoWriteString(key, wxString::Format(_T("%g"), val));
-}
-
-bool wxConfigBase::DoWriteInt(const wxString& key, int value)
-{
- return DoWriteLong(key, (long)value);
+ return DoWriteString(key, wxString::Format(wxT("%g"), val));
}
bool wxConfigBase::DoWriteBool(const wxString& key, bool value)
pConfig->SetPath(wxT("MySettings"));
pConfig->SetPath(wxT(".."));
int value;
- pConfig->Read(_T("MainWindowX"), & value);
+ pConfig->Read(wxT("MainWindowX"), & value);
*/
m_strOldPath = m_pContainer->GetPath().wc_str();
if ( *m_strOldPath.c_str() != wxCONFIG_PATH_SEPARATOR )
while ( m < str.length() && (wxIsalnum(str[m]) || str[m] == wxT('_')) )
m++;
-
+
wxString strVarName(str.c_str() + n + 1, m - n - 1);
#ifdef __WXWINCE__
else if ( strCurrent == wxT("..") ) {
// go up one level
if ( aParts.size() == 0 )
+ {
wxLogWarning(_("'%s' has extra '..', ignored."), path);
+ }
else
+ {
aParts.erase(aParts.end() - 1);
+ }
strCurrent.Empty();
}