]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/dataview.h
Don't assert in update handler if read-only
[wxWidgets.git] / include / wx / generic / dataview.h
index 82837366eafbdeb5ec689157bda01b68b81d5cff..136d7b944b45db14d504f60a9aa01353b67f7ba8 100644 (file)
@@ -2,6 +2,7 @@
 // Name:        wx/generic/dataview.h
 // Purpose:     wxDataViewCtrl generic implementation header
 // Author:      Robert Roebling
+// Modified By: Bo Yang
 // Id:          $Id$
 // Copyright:   (c) 1998 Robert Roebling
 // Licence:     wxWindows licence
@@ -52,26 +53,26 @@ public:
 
     virtual bool Activate( wxRect WXUNUSED(cell),
                            wxDataViewModel *WXUNUSED(model),
-                           const wxDataViewItem & item
+                           const wxDataViewItem & WXUNUSED(item)
                            unsigned int WXUNUSED(col) )
                            { return false; }
 
     virtual bool LeftClick( wxPoint WXUNUSED(cursor),
                             wxRect WXUNUSED(cell),
                             wxDataViewModel *WXUNUSED(model),
-                            const wxDataViewItem & item
+                            const wxDataViewItem & WXUNUSED(item)
                             unsigned int WXUNUSED(col) )
                             { return false; }
     virtual bool RightClick( wxPoint WXUNUSED(cursor),
                              wxRect WXUNUSED(cell),
                              wxDataViewModel *WXUNUSED(model),
-                             const wxDataViewItem & item
+                             const wxDataViewItem & WXUNUSED(item)
                              unsigned int WXUNUSED(col) )
                              { return false; }
     virtual bool StartDrag( wxPoint WXUNUSED(cursor),
                             wxRect WXUNUSED(cell),
                             wxDataViewModel *WXUNUSED(model),
-                            const wxDataViewItem & item
+                            const wxDataViewItem & WXUNUSED(item)
                             unsigned int WXUNUSED(col) )
                             { return false; }
 
@@ -325,6 +326,7 @@ class WXDLLIMPEXP_ADV wxDataViewCtrl: public wxDataViewCtrlBase,
 public:
     wxDataViewCtrl() : wxScrollHelperNative(this)
     {
+        m_sortingColumn = 0;
         Init();
     }
 
@@ -349,16 +351,40 @@ public:
     virtual bool AssociateModel( wxDataViewModel *model );
     virtual bool AppendColumn( wxDataViewColumn *col );
 
-/********************selection code*********************
-    virtual void SetSelection( int row ); // -1 for unselect
-    virtual void SetSelectionRange( unsigned int from, unsigned int to );
-    virtual void SetSelections( const wxArrayInt& aSelections);
-    virtual void Unselect( unsigned int row );
-    
-    virtual bool IsSelected( unsigned int row ) const;
-    virtual int GetSelection() const;
-    virtual int GetSelections(wxArrayInt& aSelections) const;
-*****************************************************/
+    virtual void DoSetExpanderColumn();
+    virtual void DoSetIndent();
+
+    virtual wxDataViewItem GetSelection() 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;
+
+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;
+
+    unsigned int GetSortingColumn() { return m_sortingColumn; }
+    void SetSortingColumn( unsigned int column ) { m_sortingColumn = column; }
 
 public:     // utility functions not part of the API
 
@@ -377,6 +403,7 @@ private:
     wxDataViewModelNotifier *m_notifier;
     wxDataViewMainWindow        *m_clientArea;
     wxDataViewHeaderWindow      *m_headerArea;
+    unsigned int m_sortingColumn;
 
 private:
     void OnSize( wxSizeEvent &event );