Files
wxWidgets/src/common/sysopt.cpp
Mattia Barbon df5168c427 Added --use-stl to cnfigure, wxUSE_STL to setup0.h
Moved wx/datetime.inl contents to wx/datetime.h and removed
inline redefinition hack.
  Implemented STL-like interface on top of wxList/wxArray, when wxUSE_STL=0.
  Implemented wxList-like and wxArray interfaces on top of std::list and
std::vector, when wxUSE_STL=1.
  Added arrstr.h, moved wxArrayString declaration there; string.h
#includes arrstr.h only if WXWIN_COMPATIBILITY_2_4 is enabled.
  Added WX_CLEAR_HASH_MAP, WX_CLEAR_HASH_TABLE, WX_CLEAR_LIST macros,
to clear a wxHashMap, wxHashTable, wxList containing pointers: deletes
pointers and makes container zero-sized.
  When wxUSE_STL=1, wxStringList works like a std::list<wxString>.
  Made wxBase compile when wxUSE_STL=1.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21768 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-07-08 19:52:35 +00:00

135 lines
3.7 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Name: common/sysopt.cpp
// Purpose: wxSystemOptions
// Author: Julian Smart
// Modified by:
// Created: 2001-07-10
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ---------------------------------------------------------------------------
// headers
// ---------------------------------------------------------------------------
#ifdef __GNUG__
#pragma implementation "sysopt.h"
#endif
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#if defined(__BORLANDC__)
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/list.h"
#endif
#if wxUSE_SYSTEM_OPTIONS
#include "wx/string.h"
#include "wx/sysopt.h"
#include "wx/module.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
// ----------------------------------------------------------------------------
IMPLEMENT_DYNAMIC_CLASS(wxSystemOptionsModule, wxModule)
wxArrayString wxSystemOptionsModule::sm_optionNames;
wxArrayString wxSystemOptionsModule::sm_optionValues;
bool wxSystemOptionsModule::OnInit()
{
return TRUE;
}
void wxSystemOptionsModule::OnExit()
{
sm_optionNames.Clear();
sm_optionValues.Clear();
}
// ----------------------------------------------------------------------------
// wxSystemOptions
// ----------------------------------------------------------------------------
// Option functions (arbitrary name/value mapping)
void wxSystemOptions::SetOption(const wxString& name, const wxString& value)
{
int idx = wxSystemOptionsModule::sm_optionNames.Index(name, FALSE);
if (idx == wxNOT_FOUND)
{
wxSystemOptionsModule::sm_optionNames.Add(name);
wxSystemOptionsModule::sm_optionValues.Add(value);
}
else
{
wxSystemOptionsModule::sm_optionNames[idx] = name;
wxSystemOptionsModule::sm_optionValues[idx] = value;
}
}
void wxSystemOptions::SetOption(const wxString& name, int value)
{
wxString valStr;
valStr.Printf(wxT("%d"), value);
SetOption(name, valStr);
}
wxString wxSystemOptions::GetOption(const wxString& name)
{
int idx = wxSystemOptionsModule::sm_optionNames.Index(name, FALSE);
if (idx == wxNOT_FOUND)
return wxEmptyString;
else
return wxSystemOptionsModule::sm_optionValues[idx];
}
int wxSystemOptions::GetOptionInt(const wxString& name)
{
return wxAtoi(GetOption(name));
}
bool wxSystemOptions::HasOption(const wxString& name)
{
return (wxSystemOptionsModule::sm_optionNames.Index(name, FALSE) != wxNOT_FOUND);
}
#endif
// wxUSE_SYSTEM_OPTIONS