X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d8331a013b9cd0109a3a6d3c4e7b60b0b524eb06..321431176595c64963b4cfd5b2f80117c49759d1:/src/common/datavcmn.cpp?ds=inline diff --git a/src/common/datavcmn.cpp b/src/common/datavcmn.cpp index 89d8f183d5..68699a1f2a 100644 --- a/src/common/datavcmn.cpp +++ b/src/common/datavcmn.cpp @@ -36,6 +36,9 @@ bool operator == (const wxDataViewItem &left, const wxDataViewItem &right) // wxDataViewModel // --------------------------------------------------------- +#include +WX_DEFINE_LIST(wxDataViewModelNotifiers); + wxDataViewModel::wxDataViewModel() { m_notifiers.DeleteContents( true ); @@ -47,29 +50,27 @@ bool wxDataViewModel::ItemAdded( const wxDataViewItem &parent, const wxDataViewI { bool ret = true; - wxList::compatibility_iterator node = m_notifiers.GetFirst(); - while (node) + wxDataViewModelNotifiers::iterator iter; + for (iter = m_notifiers.begin(); iter != m_notifiers.end(); ++iter) { - wxDataViewModelNotifier* notifier = (wxDataViewModelNotifier*) node->GetData(); + wxDataViewModelNotifier* notifier = *iter; if (!notifier->ItemAdded( parent, item )) ret = false; - node = node->GetNext(); } return ret; } -bool wxDataViewModel::ItemDeleted( const wxDataViewItem &item ) +bool wxDataViewModel::ItemDeleted( const wxDataViewItem &parent, const wxDataViewItem &item ) { bool ret = true; - wxList::compatibility_iterator node = m_notifiers.GetFirst(); - while (node) + wxDataViewModelNotifiers::iterator iter; + for (iter = m_notifiers.begin(); iter != m_notifiers.end(); ++iter) { - wxDataViewModelNotifier* notifier = (wxDataViewModelNotifier*) node->GetData(); - if (!notifier->ItemDeleted( item )) + wxDataViewModelNotifier* notifier = *iter; + if (!notifier->ItemDeleted( parent, item )) ret = false; - node = node->GetNext(); } return ret; @@ -79,13 +80,12 @@ bool wxDataViewModel::ItemChanged( const wxDataViewItem &item ) { bool ret = true; - wxList::compatibility_iterator node = m_notifiers.GetFirst(); - while (node) + wxDataViewModelNotifiers::iterator iter; + for (iter = m_notifiers.begin(); iter != m_notifiers.end(); ++iter) { - wxDataViewModelNotifier* notifier = (wxDataViewModelNotifier*) node->GetData(); + wxDataViewModelNotifier* notifier = *iter; if (!notifier->ItemChanged( item )) ret = false; - node = node->GetNext(); } return ret; @@ -95,13 +95,12 @@ bool wxDataViewModel::ValueChanged( const wxDataViewItem &item, unsigned int col { bool ret = true; - wxList::compatibility_iterator node = m_notifiers.GetFirst(); - while (node) + wxDataViewModelNotifiers::iterator iter; + for (iter = m_notifiers.begin(); iter != m_notifiers.end(); ++iter) { - wxDataViewModelNotifier* notifier = (wxDataViewModelNotifier*) node->GetData(); + wxDataViewModelNotifier* notifier = *iter; if (!notifier->ValueChanged( item, col )) ret = false; - node = node->GetNext(); } return ret; @@ -111,13 +110,12 @@ bool wxDataViewModel::Cleared() { bool ret = true; - wxList::compatibility_iterator node = m_notifiers.GetFirst(); - while (node) + wxDataViewModelNotifiers::iterator iter; + for (iter = m_notifiers.begin(); iter != m_notifiers.end(); ++iter) { - wxDataViewModelNotifier* notifier = (wxDataViewModelNotifier*) node->GetData(); + wxDataViewModelNotifier* notifier = *iter; if (!notifier->Cleared()) ret = false; - node = node->GetNext(); } return ret; @@ -125,18 +123,17 @@ bool wxDataViewModel::Cleared() void wxDataViewModel::Resort() { - wxList::compatibility_iterator node = m_notifiers.GetFirst(); - while (node) + wxDataViewModelNotifiers::iterator iter; + for (iter = m_notifiers.begin(); iter != m_notifiers.end(); ++iter) { - wxDataViewModelNotifier* notifier = (wxDataViewModelNotifier*) node->GetData(); + wxDataViewModelNotifier* notifier = *iter; notifier->Resort(); - node = node->GetNext(); } } void wxDataViewModel::AddNotifier( wxDataViewModelNotifier *notifier ) { - m_notifiers.Append( notifier ); + m_notifiers.push_back( notifier ); notifier->SetOwner( this ); } @@ -250,7 +247,7 @@ void wxDataViewIndexListModel::RowDeleted( unsigned int row ) { wxDataViewItem item( m_hash[row] ); m_hash.RemoveAt( row ); - wxDataViewModel::ItemDeleted( item ); + wxDataViewModel::ItemDeleted( wxDataViewItem(0), item ); } void wxDataViewIndexListModel::RowChanged( unsigned int row )