]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/sysopt.cpp
use popen() instead of wxExecute(), it works inside wxYield() unlike the latter
[wxWidgets.git] / src / common / sysopt.cpp
index 2c3439278e5dc6a62c7070b8196542cb8d922482..b04061e2d1a98d298e689724603016cb4eb5c298 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     2001-07-10
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
 // Created:     2001-07-10
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
 /////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
@@ -17,7 +17,7 @@
 // headers
 // ---------------------------------------------------------------------------
 
 // headers
 // ---------------------------------------------------------------------------
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma implementation "sysopt.h"
 #endif
 
     #pragma implementation "sysopt.h"
 #endif
 
     #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