+ virtual void SetFocus();
+
+protected:
+ virtual int GetSelections( wxArrayInt & sel ) const;
+ virtual void SetSelections( const wxArrayInt & sel );
+ virtual void Select( int row );
+ virtual void Unselect( int row );
+ virtual bool IsSelected( int row ) const;
+ virtual void SelectRange( int from, int to );
+ virtual void UnselectRange( int from, int to );
+
+ virtual void EnsureVisible( int row, int column );
+
+ virtual wxDataViewItem GetItemByRow( unsigned int row ) const;
+ virtual int GetRowByItem( const wxDataViewItem & item ) const;
+
+ wxDataViewColumn* GetSortingColumn() { return m_sortingColumn; }
+ void SetSortingColumn( wxDataViewColumn* column ) { m_sortingColumn = column; }
+
+public: // utility functions not part of the API
+
+ // returns the "best" width for the idx-th column
+ unsigned int GetBestColumnWidth(int WXUNUSED(idx)) const
+ {
+ return GetClientSize().GetWidth() / GetColumnCount();
+ }
+
+ // called by header window after reorder
+ void ColumnMoved( wxDataViewColumn* col, unsigned int new_pos );
+
+ // updates the header window after a change in a column setting
+ void OnColumnChange();
+
+ wxWindow *GetMainWindow() { return (wxWindow*) m_clientArea; }
+
+private:
+ wxDataViewColumnList m_cols;
+ wxDataViewModelNotifier *m_notifier;
+ wxDataViewMainWindow *m_clientArea;
+ wxDataViewHeaderWindow *m_headerArea;
+ wxDataViewColumn *m_sortingColumn;
+