]> git.saurik.com Git - wxWidgets.git/commitdiff
wxRegConfig::GetEntryType() added and some bugs fixed
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 6 Apr 1999 21:13:46 +0000 (21:13 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 6 Apr 1999 21:13:46 +0000 (21:13 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2059 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/confbase.h
include/wx/msw/regconf.h
src/msw/pen.cpp
src/msw/regconf.cpp

index 2c31f070ef730401ebf317dace5658a9f93810c9..e849917ffb47e8d303f1ae51606ee1fc50efc728 100644 (file)
@@ -90,11 +90,11 @@ public:
     // the type of an entry
   enum EntryType
   {
-    Unknown,
-    String,
-    Boolean,
-    Integer,    // use Read(long *)
-    Float       // use Read(double *)
+    Type_Unknown,
+    Type_String,
+    Type_Boolean,
+    Type_Integer,    // use Read(long *)
+    Type_Float       // use Read(double *)
   };
 
   // static functions
@@ -111,17 +111,14 @@ public:
     // should Get() try to create a new log object if the current one is NULL?
   static void DontCreateOnDemand() { ms_bAutoCreate = FALSE; }
 
-  // ctor & virtual dtor
-    // environment variable expansion is on by default
-//  wxConfigBase() { m_bExpandEnvVars = TRUE; m_bRecordDefaults = FALSE; }
-
-  // ctor
-
-  // 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
-  wxConfigBase(const wxString& appName = wxEmptyString, const wxString& vendorName = wxEmptyString,
-               const wxString& localFilename = wxEmptyString, const wxString& globalFilename = wxEmptyString,
+  // ctors & virtual dtor
+      // 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
+  wxConfigBase(const wxString& appName = wxEmptyString,
+               const wxString& vendorName = wxEmptyString,
+               const wxString& localFilename = wxEmptyString,
+               const wxString& globalFilename = wxEmptyString,
                long style = 0);
 
     // empty but ensures that dtor of all derived classes is virtual
@@ -161,7 +158,7 @@ public:
   virtual EntryType GetEntryType(const wxString& name) const
   {
     // by default all entries are strings
-    return HasEntry(name) ? String : Unknown;
+    return HasEntry(name) ? Type_String : Type_Unknown;
   }
 
   // key access: returns TRUE if value was really read, FALSE if default used
@@ -238,8 +235,10 @@ public:
   wxString GetAppName() const { return m_appName; }
   wxString GetVendorName() const { return m_vendorName; }
 
-  void SetAppName(const wxString& appName) { m_appName = appName; }
-  void SetVendorName(const wxString& vendorName) { m_vendorName = 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; }
index 630bab52d6595fa234061ad4720aee26eecc586d..ed611151176ae1261e43168bc688d3928b58798a 100644 (file)
@@ -53,6 +53,7 @@ public:
     // tests for existence
   virtual bool HasGroup(const wxString& strName) const;
   virtual bool HasEntry(const wxString& strName) const;
+  virtual EntryType GetEntryType(const wxString& name) const;
 
     // get number of entries/subgroups in the current group, with or without
     // it's subgroups
index 50f821006a8042c5f1fc6e6838a4cb7de46e02f1..2862a4dcc3078e5f954193ea7b5406c7b7fedeca 100644 (file)
@@ -224,6 +224,11 @@ bool wxPen::RealizeResource()
         break ;
         default:
           logb.lbStyle = BS_SOLID ;
+          // this should be unnecessary (it's unused) but suppresses the Purigy
+          // messages about uninitialized memory read
+#ifdef __WXDEBUG__
+          logb.lbHatch = 0;
+#endif
         break ;
       }
       logb.lbColor = ms_colour ;
index 8943720d8f7a0e2d87d54dcc1694e3e4a7e961c0..cc1b230b5404251b3cedeaf781b90597de411e36 100644 (file)
 #endif
 
 #ifndef WX_PRECOMP
-  #include  <wx/string.h>
+  #include  "wx/string.h"
 #endif //WX_PRECOMP
 
-#include <wx/event.h>
-#include <wx/app.h>
-#include <wx/log.h>
-#include <wx/config.h>
+#include "wx/event.h"
+#include "wx/app.h"
+#include "wx/log.h"
+#include "wx/config.h"
 
 #ifndef __WIN16__
 
-#include <wx/msw/registry.h>
-#include <wx/msw/regconf.h>
+#include "wx/msw/registry.h"
+#include "wx/msw/regconf.h"
 
 // ----------------------------------------------------------------------------
 // constants
@@ -287,14 +287,39 @@ size_t wxRegConfig::GetNumberOfGroups(bool bRecursive) const
 // tests for existence
 // ----------------------------------------------------------------------------
 
-bool wxRegConfig::HasGroup(const wxString& strName) const
+bool wxRegConfig::HasGroup(const wxString& key) const
 {
-  return m_keyLocal.HasSubKey(strName) || m_keyGlobal.HasSubKey(strName);
+    wxConfigPathChanger path(this, key);
+
+    wxString strName(path.Name());
+
+    return m_keyLocal.HasSubKey(strName) || m_keyGlobal.HasSubKey(strName);
 }
 
-bool wxRegConfig::HasEntry(const wxString& strName) const
+bool wxRegConfig::HasEntry(const wxString& key) const
 {
-  return m_keyLocal.HasValue(strName) || m_keyGlobal.HasValue(strName);
+    wxConfigPathChanger path(this, key);
+
+    wxString strName(path.Name());
+
+    return m_keyLocal.HasValue(strName) || m_keyGlobal.HasValue(strName);
+}
+
+wxConfigBase::EntryType wxRegConfig::GetEntryType(const wxString& key) const
+{
+    wxConfigPathChanger path(this, key);
+
+    wxString strName(path.Name());
+
+    bool isNumeric;
+    if ( m_keyLocal.HasValue(strName) )
+        isNumeric = m_keyLocal.IsNumericValue(strName);
+    else if ( m_keyGlobal.HasValue(strName) )
+        isNumeric = m_keyGlobal.IsNumericValue(strName);
+    else
+        return wxConfigBase::Type_Unknown;
+
+    return isNumeric ? wxConfigBase::Type_Integer : wxConfigBase::Type_String;
 }
 
 // ----------------------------------------------------------------------------
@@ -329,8 +354,6 @@ bool wxRegConfig::Read(const wxString& key, wxString *pStr) const
        (bQueryGlobal && TryGetValue(m_keyGlobal, path.Name(), *pStr)) ) {
     // nothing to do
 
-    // TODO: do we return TRUE? Not in original implementation,
-    // but I don't see why not. -- JACS
     *pStr = wxConfigBase::ExpandEnvVars(*pStr);
     return TRUE;
   }