]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/fileconf.h
OnExit() is called for modules which were initialized even if the init of
[wxWidgets.git] / include / wx / fileconf.h
index 063394de64c904819d7b2c9e20ab6a65df1fdb5a..0e19e079545121778a1383c0867b425769a7452a 100644 (file)
 #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
 {
@@ -112,6 +145,8 @@ public:
   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)
@@ -123,6 +158,14 @@ public:
     // 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();
 
@@ -141,49 +184,37 @@ public:
   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:
   // 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);
@@ -228,6 +259,8 @@ public:
   WX_DEFINE_SORTED_ARRAY(ConfigEntry *, ArrayEntries);
   WX_DEFINE_SORTED_ARRAY(ConfigGroup *, ArrayGroups);
 
+};
+
   class ConfigEntry
   {
   private:
@@ -264,8 +297,8 @@ public:
   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
@@ -288,9 +321,9 @@ public:
     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;
@@ -302,7 +335,7 @@ public:
 
     // 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();
@@ -320,7 +353,11 @@ public:
     void SetLastEntry(ConfigEntry *pEntry) { m_pLastEntry = pEntry; }
     void SetLastGroup(ConfigGroup *pGroup) { m_pLastGroup = pGroup; }
   };
-};
 
 #endif  //_FILECONF_H
 
+
+
+
+
+