#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
(it's on by default, the current status can be retrieved with
IsExpandingEnvVars function).
*/
+ class wxFileConfig; //linea nueva
+ class ConfigGroup;
+ class ConfigEntry;
+
+ // we store all lines of the local config file as a linked list in memory
+ 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 SetText(const wxString& str) { m_strLine = str; }
+ const wxString& Text() const { return m_strLine; }
+
+ private:
+ wxString m_strLine; // line contents
+ LineList *m_pNext, // next node
+ *m_pPrev; // previous one
+ };
+
class wxFileConfig : public wxConfigBase
{
// 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 = wxEmptyString,
- const wxString& localFilename = wxEmptyString, const wxString& globalFilename = wxEmptyString,
- long style = wxCONFIG_USE_LOCAL_FILE);
+ 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;
-#if 0
- 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);
-#endif
-
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;
{ 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
public:
// fwd decl
- class ConfigGroup;
- class ConfigEntry;
-
- // we store all lines of the local config file as a linked list in memory
- class LineList
- {
- public:
- // 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; }
- const wxString& Text() const { return m_strLine; }
-
- private:
- wxString m_strLine; // line contents
- LineList *m_pNext, // next node
- *m_pPrev; // previous one
- };
// functions to work with this list
LineList *LineListAppend(const wxString& str);
WX_DEFINE_SORTED_ARRAY(ConfigEntry *, ArrayEntries);
WX_DEFINE_SORTED_ARRAY(ConfigGroup *, ArrayGroups);
+};
+
class ConfigEntry
{
private:
private:
wxFileConfig *m_pConfig; // config object we belong to
ConfigGroup *m_pParent; // parent group (NULL for root group)
- ArrayEntries m_aEntries; // entries in this group
- ArrayGroups m_aSubgroups; // subgroups
+ wxFileConfig::ArrayEntries m_aEntries; // entries in this group
+ wxFileConfig::ArrayGroups m_aSubgroups; // subgroups
wxString m_strName; // group's name
bool m_bDirty; // if FALSE => all subgroups are not dirty
LineList *m_pLine; // pointer to our line in the linked list
wxFileConfig *Config() const { return m_pConfig; }
bool IsDirty() const { return m_bDirty; }
+ const wxFileConfig::ArrayEntries& Entries() const { return m_aEntries; }
+ const wxFileConfig::ArrayGroups& Groups() const { return m_aSubgroups; }
bool IsEmpty() const { return Entries().IsEmpty() && Groups().IsEmpty(); }
- const ArrayEntries& Entries() const { return m_aEntries; }
- const ArrayGroups& Groups() const { return m_aSubgroups; }
// find entry/subgroup (NULL if not found)
ConfigGroup *FindSubgroup(const char *szName) const;
// create new entry/subgroup returning pointer to newly created element
ConfigGroup *AddSubgroup(const wxString& strName);
- ConfigEntry *AddEntry (const wxString& strName, int nLine = NOT_FOUND);
+ ConfigEntry *AddEntry (const wxString& strName, int nLine = wxNOT_FOUND);
// will also recursively set parent's dirty flag
void SetDirty();
void SetLastEntry(ConfigEntry *pEntry) { m_pLastEntry = pEntry; }
void SetLastGroup(ConfigGroup *pGroup) { m_pLastGroup = pGroup; }
};
-};
#endif //_FILECONF_H
+
+
+
+
+