Moved more code from wxDataViewCtrl to wxDataViewCtrlInternal.

Add new special API for wxDataViewVirtualIndexModel::Reset() as
wxDataViewModel::Clear is something different and needs a different, two
step API under GTK+, one for destroying the current view and one for
rereading the new contents.
Added ::BeforeReset() and ::AfterReset() notifications for that purpose.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65533 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2010-09-12 20:07:28 +00:00
parent 5249673498
commit 673810eeb8
4 changed files with 136 additions and 68 deletions

View File

@@ -235,6 +235,36 @@ bool wxDataViewModel::Cleared()
return ret;
}
bool wxDataViewModel::BeforeReset( size_t old_size, size_t new_size )
{
bool ret = true;
wxDataViewModelNotifiers::iterator iter;
for (iter = m_notifiers.begin(); iter != m_notifiers.end(); ++iter)
{
wxDataViewModelNotifier* notifier = *iter;
if (!notifier->BeforeReset(old_size,new_size))
ret = false;
}
return ret;
}
bool wxDataViewModel::AfterReset()
{
bool ret = true;
wxDataViewModelNotifiers::iterator iter;
for (iter = m_notifiers.begin(); iter != m_notifiers.end(); ++iter)
{
wxDataViewModelNotifier* notifier = *iter;
if (!notifier->AfterReset())
ret = false;
}
return ret;
}
void wxDataViewModel::Resort()
{
wxDataViewModelNotifiers::iterator iter;
@@ -499,9 +529,11 @@ wxDataViewVirtualListModel::wxDataViewVirtualListModel( unsigned int initial_siz
void wxDataViewVirtualListModel::Reset( unsigned int new_size )
{
m_size = new_size;
/* wxDataViewModel:: */ BeforeReset( m_size, new_size );
/* wxDataViewModel:: */ Cleared();
m_size = new_size;
/* wxDataViewModel:: */ AfterReset();
}
void wxDataViewVirtualListModel::RowPrepended()