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:
Mattia Barbon
2003-07-08 19:52:35 +00:00
parent 0598fd99db
commit df5168c427
57 changed files with 2732 additions and 535 deletions

View File

@@ -712,19 +712,19 @@ wxEvtHandler::~wxEvtHandler()
if (m_dynamicEvents)
{
wxNode *node = m_dynamicEvents->GetFirst();
while (node)
wxList::iterator it = m_dynamicEvents->begin(),
en = m_dynamicEvents->end();
for (;it != en; ++it)
{
#if WXWIN_COMPATIBILITY_EVENT_TYPES
wxEventTableEntry *entry = (wxEventTableEntry*)node->GetData();
wxEventTableEntry *entry = (wxEventTableEntry*)*it;
#else // !WXWIN_COMPATIBILITY_EVENT_TYPES
wxDynamicEventTableEntry *entry = (wxDynamicEventTableEntry*)node->GetData();
wxDynamicEventTableEntry *entry = (wxDynamicEventTableEntry*)*it;
#endif // WXWIN_COMPATIBILITY_EVENT_TYPES/!WXWIN_COMPATIBILITY_EVENT_TYPES
if (entry->m_callbackUserData)
delete entry->m_callbackUserData;
delete entry;
node = node->GetNext();
}
delete m_dynamicEvents;
};
@@ -818,11 +818,11 @@ void wxEvtHandler::ProcessPendingEvents()
wxENTER_CRIT_SECT( *m_eventsLocker);
#endif
wxNode *node = m_pendingEvents->GetFirst();
wxList::compatibility_iterator node = m_pendingEvents->GetFirst();
while ( node )
{
wxEvent *event = (wxEvent *)node->GetData();
delete node;
m_pendingEvents->Erase(node);
// In ProcessEvent, new events might get added and
// we can safely leave the crtical section here.
@@ -1000,7 +1000,7 @@ bool wxEvtHandler::Disconnect( int id, int lastId, wxEventType eventType,
if (!m_dynamicEvents)
return FALSE;
wxNode *node = m_dynamicEvents->GetFirst();
wxList::compatibility_iterator node = m_dynamicEvents->GetFirst();
while (node)
{
#if WXWIN_COMPATIBILITY_EVENT_TYPES
@@ -1018,7 +1018,7 @@ bool wxEvtHandler::Disconnect( int id, int lastId, wxEventType eventType,
{
if (entry->m_callbackUserData)
delete entry->m_callbackUserData;
m_dynamicEvents->DeleteNode( node );
m_dynamicEvents->Erase( node );
delete entry;
return TRUE;
}
@@ -1034,7 +1034,7 @@ bool wxEvtHandler::SearchDynamicEventTable( wxEvent& event )
int commandId = event.GetId();
wxNode *node = m_dynamicEvents->GetFirst();
wxList::compatibility_iterator node = m_dynamicEvents->GetFirst();
while (node)
{
#if WXWIN_COMPATIBILITY_EVENT_TYPES