]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/iniconf.cpp
* Added threads event propagation. Should compile on GTK (tested).
[wxWidgets.git] / src / msw / iniconf.cpp
index d3035015971b31c8bbbb4856ea4f50ddb7e64fc4..0bf6bf2ab48664c4975efbd6b0761a3a2bcd8984 100644 (file)
@@ -9,23 +9,23 @@
 // Licence:     wxWindows license
 ///////////////////////////////////////////////////////////////////////////////
 
-// ============================================================================
-// declarations
-// ============================================================================
+#ifdef __GNUG__
+#pragma implementation "iniconf.h"
+#endif
 
-// ----------------------------------------------------------------------------
-// headers
-// ----------------------------------------------------------------------------
-#include  "wx/wxprec.h"
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
 
-#ifdef    __BORLANDC__
-  #pragma hdrstop
-#endif  //__BORLANDC__
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
 
 #ifndef   WX_PRECOMP
   #include  <wx/string.h>
   #include  <wx/intl.h>
+  #include  <wx/event.h>
   #include  <wx/app.h>
+  #include  <wx/utils.h>
 #endif  //WX_PRECOMP
 
 #include  <wx/dynarray.h>
@@ -89,7 +89,7 @@ wxIniConfig::wxIniConfig(const wxString& strAppName, const wxString& strVendor,
     // append the extension if none given and it's not an absolute file name
     // (otherwise we assume that they know what they're doing)
     if ( !wxIsPathSeparator(m_strLocalFilename[0u]) &&
-        m_strLocalFilename.Find('.') == NOT_FOUND )
+        m_strLocalFilename.Find('.') == wxNOT_FOUND )
     {
         m_strLocalFilename << ".ini";
     }
@@ -143,7 +143,7 @@ void wxIniConfig::SetPath(const wxString& strPath)
   // other functions assume that all this is true, i.e. there are no trailing
   // underscores at the end except if the group is the root one
   wxASSERT( (m_strPath.IsEmpty() || m_strPath.Last() != PATH_SEP_REPLACE) &&
-            (m_strGroup == PATH_SEP_REPLACE ||
+            (m_strGroup == wxString(PATH_SEP_REPLACE) ||
              m_strGroup.Last() != PATH_SEP_REPLACE) );
 }
 
@@ -154,7 +154,7 @@ const wxString& wxIniConfig::GetPath() const
   // always return abs path
   s_str = wxCONFIG_PATH_SEPARATOR;
 
-  if ( m_strGroup == PATH_SEP_REPLACE ) {
+  if ( m_strGroup == wxString(PATH_SEP_REPLACE) ) {
     // we're at the root level, nothing to do
   }
   else {
@@ -185,7 +185,7 @@ wxString wxIniConfig::GetKeyName(const wxString& szKey) const
 {
   wxString strKey;
 
-  if ( m_strGroup != PATH_SEP_REPLACE )
+  if ( m_strGroup != wxString(PATH_SEP_REPLACE) )
     strKey << m_strGroup << PATH_SEP_REPLACE;
   if ( !m_strPath.IsEmpty() )
     strKey << m_strPath << PATH_SEP_REPLACE;
@@ -304,6 +304,7 @@ bool wxIniConfig::Read(const wxString& szKey, wxString *pstr) const
     return FALSE;
   }
   else {
+       *pstr = szBuf ;
     return TRUE;
   }
 }
@@ -332,6 +333,7 @@ bool wxIniConfig::Read(const wxString& szKey, wxString *pstr,
     return FALSE;
   }
   else {
+       *pstr = szBuf ;
     return TRUE;
   }
 }
@@ -355,7 +357,7 @@ bool wxIniConfig::Read(const wxString& szKey, long *pl) const
 
   // is it really nMagic?
   lVal = GetPrivateProfileInt(m_strGroup, strKey, nMagic2, m_strLocalFilename);
-  if ( lVal == nMagic ) {
+  if ( lVal == nMagic2 ) {
     // the nMagic it returned was indeed read from the file
     *pl = lVal;
     return TRUE;
@@ -400,12 +402,18 @@ bool wxIniConfig::Flush(bool /* bCurrentOnly */)
 // delete
 // ----------------------------------------------------------------------------
 
-bool wxIniConfig::DeleteEntry(const char *szKey, bool bGroupIfEmptyAlso)
+bool wxIniConfig::DeleteEntry(const wxString& szKey, bool bGroupIfEmptyAlso)
 {
   // passing NULL as value to WritePrivateProfileString deletes the key
-  if ( !Write(szKey, (const char *)NULL) )
+//  if ( !Write(szKey, (const char *)NULL) )
+//    return FALSE;
+  wxConfigPathChanger path(this, szKey);
+  wxString strKey = GetPrivateKeyName(path.Name());
+
+  if (WritePrivateProfileString(m_strGroup, szKey,
+                                         (const char*) NULL, m_strLocalFilename) == 0)
     return FALSE;
-    
+
   if ( !bGroupIfEmptyAlso || !IsEmpty() )
     return TRUE;
 
@@ -419,7 +427,7 @@ bool wxIniConfig::DeleteEntry(const char *szKey, bool bGroupIfEmptyAlso)
   return bOk;
 }
 
-bool wxIniConfig::DeleteGroup(const char *szKey)
+bool wxIniConfig::DeleteGroup(const wxString& szKey)
 {
   wxConfigPathChanger path(this, szKey);
 
@@ -434,6 +442,10 @@ bool wxIniConfig::DeleteGroup(const char *szKey)
   return bOk;
 }
 
+#ifndef MAX_PATH
+#define MAX_PATH 256
+#endif
+
 bool wxIniConfig::DeleteAll()
 {
   // first delete our group in win.ini
@@ -450,10 +462,22 @@ bool wxIniConfig::DeleteAll()
   wxString strFile = szBuf;
   strFile << '\\' << m_strLocalFilename;
 
-  if ( !DeleteFile(strFile) ) {
+  if ( !wxRemoveFile(strFile) ) {
     wxLogSysError(_("Can't delete the INI file '%s'"), strFile.c_str());
     return FALSE;
   }
 
   return TRUE;
 }
+
+bool wxIniConfig::RenameEntry(const wxString& oldName, const wxString& newName)
+{
+    // Not implemented
+    return FALSE;
+}
+
+bool wxIniConfig::RenameGroup(const wxString& oldName, const wxString& newName)
+{
+    // Not implemented
+    return FALSE;
+}