\membersection{Miscellaneous accessors}
-\helpref{SetAppName}{wxconfigbasesetappname}\\
\helpref{GetAppName}{wxconfigbasegetappname}\\
-\helpref{SetVendorName}{wxconfigbasesetvendorname}\\
\helpref{GetVendorName}{wxconfigbasegetvendorname}
\membersection{Key access}
Sets the config object as the current one, returns the pointer to the previous
current object (both the parameter and returned value may be NULL)
-\membersection{wxConfigBase::SetAppName}\label{wxconfigbasesetappname}
-
-\func{void }{SetAppName}{\param{const wxString\&}{ appName}}
-
-Sets the application name.
-
\membersection{wxConfigBase::SetExpandingEnvVars}\label{wxconfigbasesetexpandingenvvars}
\func{void}{SetExpandEnvVars }{\param{bool }{bDoIt = TRUE}}
This allows the user to see what config options may be changed and is probably
useful only for wxFileConfig.
-\membersection{wxConfigBase::SetVendorName}\label{wxconfigbasesetvendorname}
-
-\func{void}{SetVendorName}{\param{const wxString\&}{ vendorName}}
-
-Sets the vendor name.
-
\membersection{wxConfigBase::Write}\label{wxconfigbasewrite}
\func{bool}{Write}{\param{const wxString\& }{ key}, \param{const wxString\& }{
#endif
// Style flags for constructor style parameter
-#define wxCONFIG_USE_LOCAL_FILE 1
-#define wxCONFIG_USE_GLOBAL_FILE 2
+enum
+{
+ wxCONFIG_USE_LOCAL_FILE = 1,
+ wxCONFIG_USE_GLOBAL_FILE = 2
+};
// ----------------------------------------------------------------------------
// various helper global functions
// There is always one current group given by the current path.
//
// Keys are pairs "key_name = value" where value may be of string or integer
-// (long) type (@@@ doubles and other types such as wxDate coming soon).
+// (long) type (TODO doubles and other types such as wxDate coming soon).
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxConfigBase
{
// should Get() try to create a new log object if the current one is NULL?
static void DontCreateOnDemand() { ms_bAutoCreate = FALSE; }
- // ctors & virtual dtor
+ // ctor & virtual dtor
+ // ctor (can be used as default ctor too)
+ //
// 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
wxString GetAppName() const { return m_appName; }
wxString GetVendorName() const { return m_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; }
static wxString GetLocalFileName(const char *szFile);
// ctor & dtor
-
-#if 0
- // the names of local and global (if not disabled) config files are
- // constructed using Get{Local|Global}FileName functions described above
- // (szAppName is just the (short) name of your application)
- wxFileConfig(const char *szAppName, bool bLocalOnly = FALSE);
- // this ctor allows you to specify custom names for both files (if strGlobal
- // isn't a full path, it's considered to be relative to the standard
- // directory, i.e. /etc under Unix and %windir% under Windows, if strLocal
- // is not an absolute path, it's considered to be relative to the user's
- // directory). If either of strings is empty, the corresponding file is not
- // used.
- wxFileConfig(const wxString& strLocal, const wxString& strGlobal);
-#endif
-
- // New constructor: one size fits all. Specify wxCONFIG_USE_LOCAL_FILE
- // or wxCONFIG_USE_GLOBAL_FILE to say which files should be used.
- wxFileConfig(const wxString& appName, const wxString& vendorName = "",
- const wxString& localFilename = "", const wxString& globalFilename = "",
+ // New constructor: one size fits all. Specify wxCONFIG_USE_LOCAL_FILE or
+ // wxCONFIG_USE_GLOBAL_FILE to say which files should be used.
+ wxFileConfig(const wxString& appName,
+ const wxString& vendorName = "",
+ const wxString& localFilename = "",
+ const wxString& globalFilename = "",
long style = wxCONFIG_USE_LOCAL_FILE);
// dtor will save unsaved data
///////////////////////////////////////////////////////////////////////////////
-// Name: msw/regconf.h
+// Name: msw/regconf.h
// Purpose: Registry based implementation of wxConfigBase
// Author: Vadim Zeitlin
-// Modified by:
+// Modified by:
// Created: 27.04.98
// RCS-ID: $Id$
// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
public:
// ctor & dtor
// will store data in HKLM\appName and HKCU\appName
- wxRegConfig(const wxString& appName = "", const wxString& vendorName = "",
- const wxString& localFilename = "", const wxString& globalFilename = "",
+ wxRegConfig(const wxString& appName = "",
+ const wxString& vendorName = "",
+ const wxString& localFilename = "",
+ const wxString& globalFilename = "",
long style = 0);
// dtor will save unsaved data
// headers
// ----------------------------------------------------------------------------
#ifdef __GNUG__
- #pragma implementation "confbase.h"
+ #pragma implementation "confbase.h"
#endif
-#include "wx/wxprec.h"
+#include "wx/wxprec.h"
#ifndef WX_PRECOMP
-#include "wx/wx.h"
+ #include "wx/wx.h"
#endif
-#include <wx/confbase.h>
-
#if wxUSE_CONFIG
#ifdef __BORLANDC__
#pragma hdrstop
#endif //__BORLANDC__
-#include <wx/app.h>
-#include <wx/file.h>
-#include <wx/log.h>
-#include <wx/textfile.h>
-#include <wx/utils.h>
-
-// we must include (one of) these files for wxConfigBase::Create
-#if defined(__WXMSW__) && defined(wxCONFIG_WIN32_NATIVE)
- #ifdef __WIN32__
- #include <wx/msw/regconf.h>
- #else //WIN16
- #include <wx/msw/iniconf.h>
- #endif
-#else // either we're under Unix or wish to use files even under Windows
- #include <wx/fileconf.h>
-#endif
+#include "wx/app.h"
+#include "wx/file.h"
+#include "wx/log.h"
+#include "wx/textfile.h"
+#include "wx/utils.h"
+
+#include "wx/config.h"
-#include <stdlib.h>
-#include <math.h>
-#include <ctype.h> // for isalnum()
+#include <stdlib.h>
+#include <math.h>
+#include <ctype.h> // for isalnum()
// ----------------------------------------------------------------------------
// global and class static variables
}
}
-#endif
-
- // wxUSE_CONFIG
+#endif // wxUSE_CONFIG
wxFileConfig::wxFileConfig(const wxString& appName, const wxString& vendorName,
const wxString& strLocal, const wxString& strGlobal,
long style)
- : wxConfigBase(appName, vendorName, strLocal, strGlobal, style),
+ : wxConfigBase(!appName && wxTheApp ? wxTheApp->GetAppName()
+ : appName,
+ vendorName, strLocal, strGlobal, style),
m_strLocalFile(strLocal), m_strGlobalFile(strGlobal)
{
- // Make up an application name if not supplied
- if (appName.IsEmpty() && wxTheApp)
- {
- SetAppName(wxTheApp->GetAppName());
- }
-
// Make up names for files if empty
if ( m_strLocalFile.IsEmpty() && (style & wxCONFIG_USE_LOCAL_FILE) )
{
}
// and subgroups of this sungroup
-#if 0
- // pGroup->m_aSubgroups.Count() gets decremented in DeleteSubgroup(),
- // so we cannot do this.
-
nCount = pGroup->m_aSubgroups.Count();
for ( size_t nGroup = 0; nGroup < nCount; nGroup++ ) {
- pGroup->DeleteSubgroup(pGroup->m_aSubgroups[nGroup]);
+ pGroup->DeleteSubgroup(pGroup->m_aSubgroups[0]);
}
-#endif
- while(pGroup->m_aSubgroups.Count() > 0)
- pGroup->DeleteSubgroup(pGroup->m_aSubgroups[0]);
-
+
LineList *pLine = pGroup->m_pLine;
if ( pLine != NULL ) {
// notice that we may do this test inside the previous "if" because the
// Name: src/msw/iniconf.cpp
// Purpose: implementation of wxIniConfig class
// Author: Vadim Zeitlin
-// Modified by:
+// Modified by:
// Created: 27.07.98
// RCS-ID: $Id$
// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
// ctor & dtor
// ----------------------------------------------------------------------------
-wxIniConfig::wxIniConfig(const wxString& strAppName, const wxString& strVendor,
- const wxString& localFilename, const wxString& globalFilename, long style):
- wxConfigBase(strAppName, strVendor, localFilename, globalFilename, style)
+wxIniConfig::wxIniConfig(const wxString& strAppName,
+ const wxString& strVendor,
+ const wxString& localFilename,
+ const wxString& globalFilename,
+ long style)
+ : wxConfigBase(!appName && wxTheApp ? wxTheApp->GetAppName()
+ : appName,
+ !vendorName ? (wxTheApp ? wxTheApp->GetVendorName()
+ : appName)
+ : vendorName,
+ strLocal, strGlobal, style),
{
- if ( GetAppName().IsEmpty() )
- {
- wxString app;
- if (wxTheApp)
- app = wxTheApp->GetAppName();
- wxASSERT( !app.IsEmpty() );
- SetAppName(app);
- }
-
- // Vendor name is required in wxIniConfig.
- // TODO: should it be required? Why isn't appName used instead? -- JACS
- if ( GetVendorName().IsEmpty() )
- {
- wxString vendor;
- if (wxTheApp)
- vendor = wxTheApp->GetVendorName();
- else
- vendor = strAppName;
- SetVendorName(vendor);
- }
-
m_strLocalFilename = localFilename;
if (m_strLocalFilename.IsEmpty())
{
return FALSE;
}
else {
- *pstr = szBuf ;
+ *pstr = szBuf ;
return TRUE;
}
}
return FALSE;
}
else {
- *pstr = szBuf ;
+ *pstr = szBuf ;
return TRUE;
}
}
{
wxConfigPathChanger path(this, szKey);
- // passing NULL as section name to WritePrivateProfileString deletes the
+ // passing NULL as section name to WritePrivateProfileString deletes the
// whole section according to the docs
bool bOk = WritePrivateProfileString(path.Name(), NULL,
NULL, m_strLocalFilename) != 0;