Add wxDataViewListModel base class for list models.

Introduce a base class for wxDataViewIndexListModel and
wxDataViewVirtualListModel instead of duplicating the same code in both of
them making the code difficult to maintain and change.

For now this class is not documented as it is used just to avoid duplication
in the implementation but maybe we should make it public to allow defining
other flat list data models (if this can be made to work in Carbon version).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62499 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-10-24 21:41:54 +00:00
parent 43c64cc6c9
commit 2feacb6eb3
2 changed files with 68 additions and 111 deletions

View File

@@ -306,10 +306,6 @@ wxDataViewIndexListModel::wxDataViewIndexListModel( unsigned int initial_size )
m_nextFreeID = initial_size + 1;
}
wxDataViewIndexListModel::~wxDataViewIndexListModel()
{
}
void wxDataViewIndexListModel::Reset( unsigned int new_size )
{
m_hash.Clear();
@@ -443,37 +439,6 @@ int wxDataViewIndexListModel::Compare(const wxDataViewItem& item1,
return GetRow(item2) - GetRow(item1);
}
void wxDataViewIndexListModel::GetValue( wxVariant &variant,
const wxDataViewItem &item, unsigned int col ) const
{
GetValueByRow( variant, GetRow(item), col );
}
bool wxDataViewIndexListModel::SetValue( const wxVariant &variant,
const wxDataViewItem &item, unsigned int col )
{
return SetValueByRow( variant, GetRow(item), col );
}
bool wxDataViewIndexListModel::GetAttr( const wxDataViewItem &item, unsigned int col, wxDataViewItemAttr &attr )
{
return GetAttrByRow( GetRow(item), col, attr );
}
wxDataViewItem wxDataViewIndexListModel::GetParent( const wxDataViewItem & WXUNUSED(item) ) const
{
return wxDataViewItem(0);
}
bool wxDataViewIndexListModel::IsContainer( const wxDataViewItem &item ) const
{
// only the invisible root item has children
if (!item.IsOk())
return true;
return false;
}
unsigned int wxDataViewIndexListModel::GetChildren( const wxDataViewItem &item, wxDataViewItemArray &children ) const
{
if (item.IsOk())
@@ -495,10 +460,6 @@ wxDataViewVirtualListModel::wxDataViewVirtualListModel( unsigned int initial_siz
m_size = initial_size;
}
wxDataViewVirtualListModel::~wxDataViewVirtualListModel()
{
}
void wxDataViewVirtualListModel::Reset( unsigned int new_size )
{
m_size = new_size;
@@ -590,37 +551,6 @@ int wxDataViewVirtualListModel::Compare(const wxDataViewItem& item1,
return pos2 - pos1;
}
void wxDataViewVirtualListModel::GetValue( wxVariant &variant,
const wxDataViewItem &item, unsigned int col ) const
{
GetValueByRow( variant, GetRow(item), col );
}
bool wxDataViewVirtualListModel::SetValue( const wxVariant &variant,
const wxDataViewItem &item, unsigned int col )
{
return SetValueByRow( variant, GetRow(item), col );
}
bool wxDataViewVirtualListModel::GetAttr( const wxDataViewItem &item, unsigned int col, wxDataViewItemAttr &attr )
{
return GetAttrByRow( GetRow(item), col, attr );
}
wxDataViewItem wxDataViewVirtualListModel::GetParent( const wxDataViewItem & WXUNUSED(item) ) const
{
return wxDataViewItem(0);
}
bool wxDataViewVirtualListModel::IsContainer( const wxDataViewItem &item ) const
{
// only the invisible root item has children
if (!item.IsOk())
return true;
return false;
}
unsigned int wxDataViewVirtualListModel::GetChildren( const wxDataViewItem &WXUNUSED(item), wxDataViewItemArray &WXUNUSED(children) ) const
{
return 0; // should we report an error ?