1 /////////////////////////////////////////////////////////////////////////////
2 // Name: common/sysopt.cpp
3 // Purpose: wxSystemOptions
4 // Author: Julian Smart
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 // ============================================================================
14 // ============================================================================
16 // ---------------------------------------------------------------------------
18 // ---------------------------------------------------------------------------
21 #pragma implementation "sysopt.h"
24 // For compilers that support precompilation, includes "wx.h".
25 #include "wx/wxprec.h"
27 #if defined(__BORLANDC__)
35 #if wxUSE_SYSTEM_OPTIONS
37 #include "wx/string.h"
38 #include "wx/sysopt.h"
39 #include "wx/module.h"
41 // ----------------------------------------------------------------------------
43 // ----------------------------------------------------------------------------
45 // the module which is used to clean up wxSystemOptions data (this is a
46 // singleton class so it can't be done in the dtor)
47 class wxSystemOptionsModule
: public wxModule
49 friend class WXDLLEXPORT wxSystemOptions
;
51 virtual bool OnInit();
52 virtual void OnExit();
55 DECLARE_DYNAMIC_CLASS(wxSystemOptionsModule
)
57 static wxArrayString sm_optionNames
;
58 static wxArrayString sm_optionValues
;
61 // ===========================================================================
63 // ===========================================================================
65 // ----------------------------------------------------------------------------
66 // wxSystemOptionsModule
67 // ----------------------------------------------------------------------------
69 IMPLEMENT_DYNAMIC_CLASS(wxSystemOptionsModule
, wxModule
)
71 wxArrayString
wxSystemOptionsModule::sm_optionNames
;
72 wxArrayString
wxSystemOptionsModule::sm_optionValues
;
74 bool wxSystemOptionsModule::OnInit()
79 void wxSystemOptionsModule::OnExit()
81 sm_optionNames
.Clear();
82 sm_optionValues
.Clear();
85 // ----------------------------------------------------------------------------
87 // ----------------------------------------------------------------------------
89 // Option functions (arbitrary name/value mapping)
90 void wxSystemOptions::SetOption(const wxString
& name
, const wxString
& value
)
92 int idx
= wxSystemOptionsModule::sm_optionNames
.Index(name
, FALSE
);
93 if (idx
== wxNOT_FOUND
)
95 wxSystemOptionsModule::sm_optionNames
.Add(name
);
96 wxSystemOptionsModule::sm_optionValues
.Add(value
);
100 wxSystemOptionsModule::sm_optionNames
[idx
] = name
;
101 wxSystemOptionsModule::sm_optionValues
[idx
] = value
;
105 void wxSystemOptions::SetOption(const wxString
& name
, int value
)
108 valStr
.Printf(wxT("%d"), value
);
109 SetOption(name
, valStr
);
112 wxString
wxSystemOptions::GetOption(const wxString
& name
)
114 int idx
= wxSystemOptionsModule::sm_optionNames
.Index(name
, FALSE
);
115 if (idx
== wxNOT_FOUND
)
116 return wxEmptyString
;
118 return wxSystemOptionsModule::sm_optionValues
[idx
];
121 int wxSystemOptions::GetOptionInt(const wxString
& name
)
123 return wxAtoi(GetOption(name
));
126 bool wxSystemOptions::HasOption(const wxString
& name
)
128 return (wxSystemOptionsModule::sm_optionNames
.Index(name
, FALSE
) != wxNOT_FOUND
);
132 // wxUSE_SYSTEM_OPTIONS