X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ed903e42421d76ac96e0e48724c66afc611a740a..fe5f448f431631c6963e52926e24dfe2901fa71a:/include/wx/dataview.h diff --git a/include/wx/dataview.h b/include/wx/dataview.h index 281141dafb..1c5f4d0b97 100644 --- a/include/wx/dataview.h +++ b/include/wx/dataview.h @@ -141,13 +141,16 @@ protected: }; // --------------------------------------------------------- -// 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; @@ -158,16 +161,36 @@ public: 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; }; // --------------------------------------------------------- @@ -553,7 +576,7 @@ typedef void (wxEvtHandler::*wxDataViewEventFunction)(wxDataViewEvent&); #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)