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:
@@ -37,6 +37,8 @@
|
||||
#include "wx/list.h"
|
||||
#endif
|
||||
|
||||
#if !wxUSE_STL
|
||||
|
||||
// =============================================================================
|
||||
// implementation
|
||||
// =============================================================================
|
||||
@@ -44,7 +46,6 @@
|
||||
// -----------------------------------------------------------------------------
|
||||
// wxListKey
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
wxListKey wxDefaultListKey;
|
||||
|
||||
bool wxListKey::operator==(wxListKeyValue value) const
|
||||
@@ -531,6 +532,38 @@ void wxListBase::Sort(const wxSortCompareFunction compfunc)
|
||||
delete[] objArray;
|
||||
}
|
||||
|
||||
void wxListBase::Reverse()
|
||||
{
|
||||
wxNodeBase* node = m_nodeFirst;
|
||||
wxNodeBase* tmp;
|
||||
|
||||
while (node)
|
||||
{
|
||||
// swap prev and next pointers
|
||||
tmp = node->m_next;
|
||||
node->m_next = node->m_previous;
|
||||
node->m_previous = tmp;
|
||||
|
||||
// this is the node that was next before swapping
|
||||
node = tmp;
|
||||
}
|
||||
|
||||
// swap first and last node
|
||||
tmp = m_nodeFirst; m_nodeFirst = m_nodeLast; m_nodeLast = tmp;
|
||||
}
|
||||
|
||||
void wxListBase::DeleteNodes(wxNodeBase* first, wxNodeBase* last)
|
||||
{
|
||||
wxNodeBase* node = first;
|
||||
|
||||
while (node != last)
|
||||
{
|
||||
wxNodeBase* next = node->GetNext();
|
||||
DeleteNode(node);
|
||||
node = next;
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// compatibility section from now on
|
||||
// ============================================================================
|
||||
@@ -732,3 +765,4 @@ wxNode *wxStringList::Prepend(const wxChar *s)
|
||||
|
||||
#endif // wxLIST_COMPATIBILITY
|
||||
|
||||
#endif // !wxUSE_STL
|
||||
|
||||
Reference in New Issue
Block a user