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
This commit is contained in:
@@ -38,13 +38,14 @@ void wxModule::RegisterModule(wxModule* module)
|
||||
void wxModule::UnregisterModule(wxModule* module)
|
||||
{
|
||||
m_modules.DeleteObject(module);
|
||||
delete module;
|
||||
}
|
||||
|
||||
// Collect up all module-derived classes, create an instance of each,
|
||||
// and register them.
|
||||
void wxModule::RegisterModules()
|
||||
{
|
||||
wxNode *node;
|
||||
wxHashTable::compatibility_iterator node;
|
||||
wxClassInfo* classInfo;
|
||||
|
||||
wxClassInfo::sm_classTable->BeginFind();
|
||||
@@ -65,13 +66,13 @@ void wxModule::RegisterModules()
|
||||
bool wxModule::InitializeModules()
|
||||
{
|
||||
// Initialize user-defined modules
|
||||
wxModuleList::Node *node;
|
||||
wxModuleList::compatibility_iterator node;
|
||||
for ( node = m_modules.GetFirst(); node; node = node->GetNext() )
|
||||
{
|
||||
if ( !node->GetData()->Init() )
|
||||
{
|
||||
// clean up already initialized modules - process in reverse order
|
||||
wxModuleList::Node *n;
|
||||
wxModuleList::compatibility_iterator n;
|
||||
for ( n = node->GetPrevious(); n; n = n->GetPrevious() )
|
||||
{
|
||||
n->GetData()->OnExit();
|
||||
@@ -87,13 +88,12 @@ bool wxModule::InitializeModules()
|
||||
void wxModule::CleanUpModules()
|
||||
{
|
||||
// Cleanup user-defined modules
|
||||
wxModuleList::Node *node;
|
||||
wxModuleList::compatibility_iterator node;
|
||||
for ( node = m_modules.GetFirst(); node; node = node->GetNext() )
|
||||
{
|
||||
node->GetData()->Exit();
|
||||
}
|
||||
|
||||
m_modules.DeleteContents(TRUE);
|
||||
m_modules.Clear();
|
||||
WX_CLEAR_LIST(wxModuleList, m_modules);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user