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
135 lines
3.7 KiB
C++
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
|
|
|