const wxDataViewItem &item, unsigned int col ) = 0;
// define hierachy
- virtual bool HasChildren( const wxDataViewItem &item ) const = 0;
+ virtual wxDataViewItem GetParent( const wxDataViewItem &item ) const = 0;
+ virtual bool IsContainer( const wxDataViewItem &item ) const = 0;
virtual wxDataViewItem GetFirstChild( const wxDataViewItem &parent ) const = 0;
virtual wxDataViewItem GetNextSibling( const wxDataViewItem &item ) const = 0;
void SetSortingColumn( unsigned int col ) { m_sortingColumn = col; }
unsigned int GetSortingColumn() { return m_sortingColumn; }
- void SetSortOrderAscending( bool ascending ) { m_ascending = true; }
+ void SetSortOrderAscending( bool ascending ) { m_ascending = ascending; }
bool GetSortOrderAscending() { return m_ascending; }
};
// ---------------------------------------------------------
-// wxDataViewVirtualListModel
+// wxDataViewIndexListModel
// ---------------------------------------------------------
+// use hash map later
+WX_DEFINE_ARRAY_PTR( void*, wxDataViewItemHash );
+
class wxDataViewIndexListModel: public wxDataViewModel
{
public:
- wxDataViewIndexListModel();
+ wxDataViewIndexListModel( unsigned int initial_size = 0 );
~wxDataViewIndexListModel();
virtual unsigned int GetRowCount() = 0;
virtual bool SetValue( const wxVariant &variant,
unsigned int row, unsigned int col ) = 0;
- void ItemPrepended();
- void ItemInserted( unsigned int before );
- void ItemAppended();
- void ItemChanged( unsigned int row );
- void ValueChanged( unsigned int row, unsigned int col );
+ void RowPrepended();
+ void RowInserted( unsigned int before );
+ void RowAppended();
+ void RowDeleted( unsigned int row );
+ void RowChanged( unsigned int row );
+ void RowValueChanged( unsigned int row, unsigned int col );
+
+ // convert to/from row/wxDataViewItem
- wxDataViewItem GetItem( unsigned int row );
+ unsigned int GetRow( const wxDataViewItem &item ) const;
+ wxDataViewItem GetItem( unsigned int row ) const;
+
+ // compare based on index
virtual int Compare( const wxDataViewItem &item1, const wxDataViewItem &item2 );
+
+ // implement base methods
+
+ virtual void GetValue( wxVariant &variant,
+ const wxDataViewItem &item, unsigned int col ) const;
+ virtual bool SetValue( const wxVariant &variant,
+ const wxDataViewItem &item, unsigned int col );
+ virtual wxDataViewItem GetParent( const wxDataViewItem &item ) const;
+ virtual bool IsContainer( const wxDataViewItem &item ) const;
+ virtual wxDataViewItem GetFirstChild( const wxDataViewItem &parent ) const;
+ virtual wxDataViewItem GetNextSibling( const wxDataViewItem &item ) const;
+private:
+ wxDataViewItemHash m_hash;
+ unsigned int m_lastIndex;
};
// ---------------------------------------------------------