+ virtual bool PrependColumn( wxDataViewColumn *col );
+ virtual bool InsertColumn( unsigned int pos, wxDataViewColumn *col );
+
+ virtual void DoSetExpanderColumn();
+ virtual void DoSetIndent();
+
+ virtual unsigned int GetColumnCount() const;
+ virtual wxDataViewColumn* GetColumn( unsigned int pos ) const;
+ virtual bool DeleteColumn( wxDataViewColumn *column );
+ virtual bool ClearColumns();
+ virtual int GetColumnPosition( const wxDataViewColumn *column ) const;
+
+ virtual wxDataViewColumn *GetSortingColumn() const;
+
+ virtual int GetSelectedItemsCount() const;
+ virtual int GetSelections( wxDataViewItemArray & sel ) const;
+ virtual void SetSelections( const wxDataViewItemArray & sel );
+ virtual void Select( const wxDataViewItem & item );
+ virtual void Unselect( const wxDataViewItem & item );
+ virtual bool IsSelected( const wxDataViewItem & item ) const;
+
+ virtual void SelectAll();
+ virtual void UnselectAll();
+
+ virtual void EnsureVisible( const wxDataViewItem & item,
+ const wxDataViewColumn *column = NULL );
+ virtual void HitTest( const wxPoint & point, wxDataViewItem & item,
+ wxDataViewColumn* &column ) const;
+ virtual wxRect GetItemRect( const wxDataViewItem & item,
+ const wxDataViewColumn *column = NULL ) const;
+
+ virtual bool SetRowHeight( int rowHeight );
+
+ virtual void Expand( const wxDataViewItem & item );
+ virtual void Collapse( const wxDataViewItem & item );
+ virtual bool IsExpanded( const wxDataViewItem & item ) const;
+
+ virtual void SetFocus();
+
+#if wxUSE_DRAG_AND_DROP
+ virtual bool EnableDragSource( const wxDataFormat &format );
+ virtual bool EnableDropTarget( const wxDataFormat &format );
+#endif // wxUSE_DRAG_AND_DROP
+
+ virtual wxBorder GetDefaultBorder() const;
+
+ virtual void EditItem(const wxDataViewItem& item, const wxDataViewColumn *column);
+
+ // These methods are specific to generic wxDataViewCtrl implementation and
+ // should not be used in portable code.
+ wxColour GetAlternateRowColour() const { return m_alternateRowColour; }
+ void SetAlternateRowColour(const wxColour& colour);
+
+protected:
+ virtual void EnsureVisible( int row, int column );
+
+ // Notice that row here may be invalid (i.e. >= GetRowCount()), this is not
+ // an error and this function simply returns an invalid item in this case.
+ virtual wxDataViewItem GetItemByRow( unsigned int row ) const;
+ virtual int GetRowByItem( const wxDataViewItem & item ) const;
+
+ int GetSortingColumnIndex() const { return m_sortingColumnIdx; }
+ void SetSortingColumnIndex(int idx) { m_sortingColumnIdx = idx; }
+
+public: // utility functions not part of the API
+
+ // returns the "best" width for the idx-th column
+ unsigned int GetBestColumnWidth(int idx) const;
+
+ // called by header window after reorder
+ void ColumnMoved( wxDataViewColumn* col, unsigned int new_pos );
+
+ // update the display after a change to an individual column
+ void OnColumnChange(unsigned int idx);
+
+ // update after a change to the number of columns
+ void OnColumnsCountChanged();
+
+ wxWindow *GetMainWindow() { return (wxWindow*) m_clientArea; }
+
+ // return the index of the given column in m_cols
+ int GetColumnIndex(const wxDataViewColumn *column) const;
+
+ // return the column displayed at the given position in the control
+ wxDataViewColumn *GetColumnAt(unsigned int pos) const;
+
+ virtual wxDataViewColumn *GetCurrentColumn() const;
+
+ virtual void OnInternalIdle();
+