Use type safe list for model notifiers, sample corrected
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47722 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -36,6 +36,9 @@ bool operator == (const wxDataViewItem &left, const wxDataViewItem &right)
|
||||
// wxDataViewModel
|
||||
// ---------------------------------------------------------
|
||||
|
||||
#include <wx/listimpl.cpp>
|
||||
WX_DEFINE_LIST(wxDataViewModelNotifiers);
|
||||
|
||||
wxDataViewModel::wxDataViewModel()
|
||||
{
|
||||
m_notifiers.DeleteContents( true );
|
||||
@@ -47,13 +50,12 @@ 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;
|
||||
@@ -63,13 +65,12 @@ bool wxDataViewModel::ItemDeleted( const wxDataViewItem &parent, const wxDataVie
|
||||
{
|
||||
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->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 );
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user