]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/gtk/dataview.h
set eol-style
[wxWidgets.git] / include / wx / gtk / dataview.h
index cb4043722ceb643ae69ed71c45d32f1c3a13e71e..197a8e713d0ab4f7900228dd17a23072bd76a021 100644 (file)
@@ -19,7 +19,8 @@
 // classes
 // --------------------------------------------------------- 
 
-class WXDLLIMPEXP_CORE wxDataViewCtrl;
+class WXDLLIMPEXP_FWD_CORE wxDataViewCtrl;
+class WXDLLIMPEXP_FWD_CORE wxDataViewCtrlInternal;
 
 
 // --------------------------------------------------------- 
@@ -34,7 +35,7 @@ public:
                         int align = wxDVR_DEFAULT_ALIGNMENT );
 
     // implementation
-    GtkWidget* GetGtkHandle() { return m_renderer; }
+    GtkCellRenderer* GetGtkHandle() { return m_renderer; }
 
     virtual void SetMode( wxDataViewCellMode mode );
     virtual wxDataViewCellMode GetMode() const;
@@ -43,7 +44,7 @@ public:
     virtual int GetAlignment() const;
 
 protected:
-    GtkWidget   *m_renderer;
+    GtkCellRenderer   *m_renderer;
 
 protected:
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewRenderer)
@@ -123,17 +124,17 @@ public:
     virtual wxSize GetSize() const = 0;
 
     virtual bool Activate( wxRect cell,
-                           wxDataViewListModel *model, unsigned int col, unsigned int row )   
+                           wxDataViewModel *model, const wxDataViewItem &item, unsigned int col )   
                            { return false; }
 
     virtual bool LeftClick( wxPoint cursor, wxRect cell, 
-                           wxDataViewListModel *model, unsigned int col, unsigned int row )   
+                           wxDataViewModel *model, const wxDataViewItem &item, unsigned int col )   
                            { return false; }
     virtual bool RightClick( wxPoint cursor, wxRect cell,
-                           wxDataViewListModel *model, unsigned int col, unsigned int row )   
+                           wxDataViewModel *model, const wxDataViewItem &item, unsigned int col )   
                            { return false; }
     virtual bool StartDrag( wxPoint cursor, wxRect cell, 
-                           wxDataViewListModel *model, unsigned int col, unsigned int row )   
+                           wxDataViewModel *model, const wxDataViewItem &item, unsigned int col )   
                            { return false; }
     
     // Create DC on request
@@ -195,7 +196,7 @@ public:
     virtual bool Render( wxRect cell, wxDC *dc, int state );
     virtual wxSize GetSize() const;
     virtual bool Activate( wxRect cell,
-                           wxDataViewListModel *model, unsigned int col, unsigned int row );
+                           wxDataViewModel *model, const wxDataViewItem &item, unsigned int col );
     
 private:
     wxDateTime    m_date;
@@ -302,30 +303,39 @@ public:
            const wxSize& size = wxDefaultSize, long style = 0,
            const wxValidator& validator = wxDefaultValidator );
 
-    virtual bool AssociateModel( wxDataViewListModel *model );
+    virtual bool AssociateModel( wxDataViewModel *model );
     virtual bool AppendColumn( wxDataViewColumn *col );
+
+    // selection code
+    virtual wxDataViewItem GetSelection();
     
-    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;
 
     static wxVisualAttributes
     GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
     
+    wxWindow *GetMainWindow() { return (wxWindow*) this; }
+    
+    GtkWidget *GtkGetTreeView() { return m_treeview; }
+    wxDataViewCtrlInternal* GtkGetInternal() { return m_internal; }
+
+protected:
+    virtual void DoSetExpanderColumn();
+    virtual void DoSetIndent();
+
 private:
     friend class wxDataViewCtrlDC;
     friend class wxDataViewColumn;
-    friend class wxGtkDataViewListModelNotifier;
-    GtkWidget                   *m_treeview;
-    wxDataViewListModelNotifier *m_notifier;
+    friend class wxGtkDataViewModelNotifier;
+    GtkWidget               *m_treeview;
+    wxDataViewModelNotifier *m_notifier;
+    wxDataViewCtrlInternal  *m_internal;
+
     
     virtual void OnInternalIdle();
     
+    void GtkEnableSelectionEvents();
+    void GtkDisableSelectionEvents();
+    
 private:
     DECLARE_DYNAMIC_CLASS(wxDataViewCtrl)
     DECLARE_NO_COPY_CLASS(wxDataViewCtrl)