#pragma interface "fileconf.h"
#endif
+#include "wx/defs.h"
+#include "wx/textfile.h"
+#include "wx/string.h"
+
// ----------------------------------------------------------------------------
// compile options
// ----------------------------------------------------------------------------
// it won't compile without it anyhow
-#ifndef USE_WXCONFIG
- #error "Please define USE_WXCONFIG or remove fileconf.cpp from your makefile"
-#endif // USE_WXCONFIG
+#ifndef wxUSE_CONFIG
+ #error "Please define wxUSE_CONFIG or remove fileconf.cpp from your makefile"
+#endif // wxUSE_CONFIG
// ----------------------------------------------------------------------------
// wxFileConfig
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)
// 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 = "",
+ long style = wxCONFIG_USE_LOCAL_FILE);
+
// dtor will save unsaved data
virtual ~wxFileConfig();
virtual bool HasGroup(const wxString& strName) const;
virtual bool HasEntry(const wxString& strName) const;
- virtual bool Read(wxString *pstr, const char *szKey,
- const char *szDefault = 0) const;
- virtual const char *Read(const char *szKey,
- const char *szDefault = 0) const;
- virtual bool Read(long *pl, const char *szKey, long lDefault) const;
- virtual long Read(const char *szKey, long lDefault) const
- { return wxConfigBase::Read(szKey, lDefault); }
- virtual bool Write(const char *szKey, const char *szValue);
- virtual bool Write(const char *szKey, long lValue);
+ virtual bool Read(const wxString& key, wxString *pStr) const;
+ virtual bool Read(const wxString& key, wxString *pStr, const wxString& defValue) const;
+ virtual bool Read(const wxString& key, long *pl) const;
+
+ // The following are necessary to satisfy the compiler
+ wxString Read(const wxString& key, const wxString& defVal) const
+ { return wxConfigBase::Read(key, defVal); }
+ bool Read(const wxString& key, long *pl, long defVal) const
+ { return wxConfigBase::Read(key, pl, defVal); }
+ long Read(const wxString& key, long defVal) const
+ { return wxConfigBase::Read(key, defVal); }
+ bool Read(const wxString& key, int *pi, int defVal) const
+ { return wxConfigBase::Read(key, pi, defVal); }
+ bool Read(const wxString& key, int *pi) const
+ { return wxConfigBase::Read(key, pi); }
+ bool Read(const wxString& key, double* val) const
+ { return wxConfigBase::Read(key, val); }
+ bool Read(const wxString& key, double* val, double defVal) const
+ { return wxConfigBase::Read(key, val, defVal); }
+
+ virtual bool Write(const wxString& key, const wxString& szValue);
+ virtual bool Write(const wxString& key, long lValue);
+
virtual bool Flush(bool bCurrentOnly = FALSE);
- virtual bool DeleteEntry(const char *szKey, bool bGroupIfEmptyAlso);
- virtual bool DeleteGroup(const char *szKey);
+ virtual bool DeleteEntry(const wxString& key, bool bGroupIfEmptyAlso);
+ virtual bool DeleteGroup(const wxString& szKey);
virtual bool DeleteAll();
public:
class LineList
{
public:
+ void SetNext(LineList *pNext) { m_pNext = pNext; }
+ void SetPrev(LineList *pPrev) { m_pPrev = pPrev; }
+
// ctor
LineList(const wxString& str, LineList *pNext = (LineList *) NULL) : m_strLine(str)
{ SetNext(pNext); SetPrev((LineList *) NULL); }
//
LineList *Next() const { return m_pNext; }
LineList *Prev() const { return m_pPrev; }
- void SetNext(LineList *pNext) { m_pNext = pNext; }
- void SetPrev(LineList *pPrev) { m_pPrev = pPrev; }
//
void SetText(const wxString& str) { m_strLine = str; }
wxFileConfig *Config() const { return m_pConfig; }
bool IsDirty() const { return m_bDirty; }
- bool IsEmpty() const { return Entries().IsEmpty() && Groups().IsEmpty(); }
const ArrayEntries& Entries() const { return m_aEntries; }
const ArrayGroups& Groups() const { return m_aSubgroups; }
+ bool IsEmpty() const { return Entries().IsEmpty() && Groups().IsEmpty(); }
// find entry/subgroup (NULL if not found)
ConfigGroup *FindSubgroup(const char *szName) const;