]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/sysopt.cpp
Apply patch that prevents a crash when more than
[wxWidgets.git] / src / common / sysopt.cpp
index 5986e5cecf9149730f8ad4c68eba100fa0b93117..b04061e2d1a98d298e689724603016cb4eb5c298 100644 (file)
     #pragma hdrstop
 #endif
 
     #pragma hdrstop
 #endif
 
+#if wxUSE_SYSTEM_OPTIONS
+
 #ifndef WX_PRECOMP
     #include "wx/list.h"
 #endif
 
 #ifndef WX_PRECOMP
     #include "wx/list.h"
 #endif
 
-#if wxUSE_SYSTEM_OPTIONS
-
 #include "wx/string.h"
 #include "wx/sysopt.h"
 #include "wx/string.h"
 #include "wx/sysopt.h"
-#include "wx/module.h"
 #include "wx/arrstr.h"
 
 // ----------------------------------------------------------------------------
 #include "wx/arrstr.h"
 
 // ----------------------------------------------------------------------------
-// private classes
-// ----------------------------------------------------------------------------
-
-// the module which is used to clean up wxSystemOptions data (this is a
-// singleton class so it can't be done in the dtor)
-class wxSystemOptionsModule : public wxModule
-{
-    friend class WXDLLIMPEXP_BASE wxSystemOptions;
-public:
-    virtual bool OnInit();
-    virtual void OnExit();
-
-private:
-    DECLARE_DYNAMIC_CLASS(wxSystemOptionsModule)
-
-    static wxArrayString   sm_optionNames;
-    static wxArrayString   sm_optionValues;
-};
-
-// ===========================================================================
-// implementation
-// ===========================================================================
-
-// ----------------------------------------------------------------------------
-// wxSystemOptionsModule
+// private globals
 // ----------------------------------------------------------------------------
 
 // ----------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxSystemOptionsModule, wxModule)
+static wxArrayString gs_optionNames,
+                     gs_optionValues;
 
 
-wxArrayString wxSystemOptionsModule::sm_optionNames;
-wxArrayString wxSystemOptionsModule::sm_optionValues;
-
-bool wxSystemOptionsModule::OnInit()
-{
-    return true;
-}
-
-void wxSystemOptionsModule::OnExit()
-{
-    sm_optionNames.Clear();
-    sm_optionValues.Clear();
-}
-
-// ----------------------------------------------------------------------------
-// wxSystemOptions
-// ----------------------------------------------------------------------------
+// ============================================================================
+// wxSystemOptions implementation
+// ============================================================================
 
 // Option functions (arbitrary name/value mapping)
 void wxSystemOptions::SetOption(const wxString& name, const wxString& value)
 {
 
 // Option functions (arbitrary name/value mapping)
 void wxSystemOptions::SetOption(const wxString& name, const wxString& value)
 {
-    int idx = wxSystemOptionsModule::sm_optionNames.Index(name, false);
+    int idx = gs_optionNames.Index(name, false);
     if (idx == wxNOT_FOUND)
     {
     if (idx == wxNOT_FOUND)
     {
-        wxSystemOptionsModule::sm_optionNames.Add(name);
-        wxSystemOptionsModule::sm_optionValues.Add(value);
+        gs_optionNames.Add(name);
+        gs_optionValues.Add(value);
     }
     else
     {
     }
     else
     {
-        wxSystemOptionsModule::sm_optionNames[idx] = name;
-        wxSystemOptionsModule::sm_optionValues[idx] = value;
+        gs_optionNames[idx] = name;
+        gs_optionValues[idx] = value;
     }
 }
 
 void wxSystemOptions::SetOption(const wxString& name, int value)
 {
     }
 }
 
 void wxSystemOptions::SetOption(const wxString& name, int value)
 {
-    wxString valStr;
-    valStr.Printf(wxT("%d"), value);
-    SetOption(name, valStr);
+    SetOption(name, wxString::Format(wxT("%d"), value));
 }
 
 wxString wxSystemOptions::GetOption(const wxString& name)
 {
 }
 
 wxString wxSystemOptions::GetOption(const wxString& name)
 {
-    int idx = wxSystemOptionsModule::sm_optionNames.Index(name, false);
+    int idx = gs_optionNames.Index(name, false);
     if (idx == wxNOT_FOUND)
         return wxEmptyString;
     else
     if (idx == wxNOT_FOUND)
         return wxEmptyString;
     else
-        return wxSystemOptionsModule::sm_optionValues[idx];
+        return gs_optionValues[idx];
 }
 
 int wxSystemOptions::GetOptionInt(const wxString& name)
 }
 
 int wxSystemOptions::GetOptionInt(const wxString& name)
@@ -126,9 +86,8 @@ int wxSystemOptions::GetOptionInt(const wxString& name)
 
 bool wxSystemOptions::HasOption(const wxString& name)
 {
 
 bool wxSystemOptions::HasOption(const wxString& name)
 {
-    return (wxSystemOptionsModule::sm_optionNames.Index(name, false) != wxNOT_FOUND);
+    return gs_optionNames.Index(name, false) != wxNOT_FOUND;
 }
 
 }
 
-#endif
-    // wxUSE_SYSTEM_OPTIONS
+#endif // wxUSE_SYSTEM_OPTIONS