};
// ---------------------------------------------------------
-// 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;
};
// ---------------------------------------------------------
#define EVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICKED(id, fn) wx__DECLARE_DATAVIEWEVT(COLUMN_HEADER_RIGHT_CLICK, id, fn)
#define EVT_DATAVIEW_COLUMN_SORTED(id, fn) wx__DECLARE_DATAVIEWEVT(COLUMN_SORTED, id, fn)
-#define EVT_DATAVIEW_MODEL_ITEM_ADDED(id, fn) wx__DECLARE_DATAVIEWEVT(MODEL_ITEM_APPENDED, id, fn)
+#define EVT_DATAVIEW_MODEL_ITEM_ADDED(id, fn) wx__DECLARE_DATAVIEWEVT(MODEL_ITEM_ADDED, id, fn)
#define EVT_DATAVIEW_MODEL_ITEM_DELETED(id, fn) wx__DECLARE_DATAVIEWEVT(MODEL_ITEM_DELETED, id, fn)
#define EVT_DATAVIEW_MODEL_ITEM_CHANGED(id, fn) wx__DECLARE_DATAVIEWEVT(MODEL_ITEM_CHANGED, id, fn)
#define EVT_DATAVIEW_MODEL_VALUE_CHANGED(id, fn) wx__DECLARE_DATAVIEWEVT(MODEL_VALUE_CHANGED, id, fn)