]> git.saurik.com Git - wxWidgets.git/commitdiff
In the generic version of wxDataViewCtrl, all
authorRobert Roebling <robert@roebling.de>
Wed, 22 Mar 2006 10:01:57 +0000 (10:01 +0000)
committerRobert Roebling <robert@roebling.de>
Wed, 22 Mar 2006 10:01:57 +0000 (10:01 +0000)
    cells are custom cells (nothing native).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38262 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/generic/dataview.h
src/generic/datavgen.cpp

index 9673737c95638abb468a83be21bceca46e9e8473..470ae0bd766ececd64b7d72287b085a15c43b5b1 100644 (file)
@@ -32,82 +32,87 @@ class wxDataViewCell: public wxDataViewCellBase
 {
 public:
     wxDataViewCell( const wxString &varianttype, wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT );
+    ~wxDataViewCell();
 
+    virtual bool Render( wxRect cell, wxDC *dc, int state ) = 0;
+    virtual wxSize GetSize() = 0;
+    
+    virtual bool Activate( wxRect cell,
+                           wxDataViewListModel *model, size_t col, size_t row )   
+                           { return false; }
+    
+    virtual bool LeftClick( wxPoint cursor, wxRect cell, 
+                           wxDataViewListModel *model, size_t col, size_t row )   
+                           { return false; }
+    virtual bool RightClick( wxPoint cursor, wxRect cell,
+                           wxDataViewListModel *model, size_t col, size_t row )   
+                           { return false; }
+    virtual bool StartDrag( wxPoint cursor, wxRect cell, 
+                           wxDataViewListModel *model, size_t col, size_t row )   
+                           { return false; }
+    
+    // Create DC on request
+    virtual wxDC *GetDC();
+    
+private:
+    wxDC        *m_dc;
+    
 protected:
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCell)
 };
     
 // --------------------------------------------------------- 
-// wxDataViewTextCell
+// wxDataViewCustomCell
 // --------------------------------------------------------- 
 
-class wxDataViewTextCell: public wxDataViewCell
+class wxDataViewCustomCell: public wxDataViewCell
 {
 public:
-    wxDataViewTextCell( const wxString &varianttype = wxT("string"), 
-                        wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT );
-
-    bool SetValue( const wxVariant &value );
-    bool GetValue( wxVariant &value );
+    wxDataViewCustomCell( const wxString &varianttype = wxT("string"), 
+                          wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT );
     
 protected:
-    DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextCell)
+    DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCustomCell)
 };
     
 // --------------------------------------------------------- 
-// wxDataViewToggleCell
+// wxDataViewTextCell
 // --------------------------------------------------------- 
 
-class wxDataViewToggleCell: public wxDataViewCell
+class wxDataViewTextCell: public wxDataViewCustomCell
 {
 public:
-    wxDataViewToggleCell( const wxString &varianttype = wxT("bool"), 
+    wxDataViewTextCell( const wxString &varianttype = wxT("string"), 
                         wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT );
 
     bool SetValue( const wxVariant &value );
     bool GetValue( wxVariant &value );
     
+    bool Render( wxRect cell, wxDC *dc, int state );
+    wxSize GetSize();
+    
 protected:
-    DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewToggleCell)
+    DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextCell)
 };
     
 // --------------------------------------------------------- 
-// wxDataViewCustomCell
+// wxDataViewToggleCell
 // --------------------------------------------------------- 
 
-class wxDataViewCustomCell: public wxDataViewCell
+class wxDataViewToggleCell: public wxDataViewCustomCell
 {
 public:
-    wxDataViewCustomCell( const wxString &varianttype = wxT("string"), 
-                          wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT );
-    ~wxDataViewCustomCell();
-    bool Init();
-    
-    virtual bool Render( wxRect cell, wxDC *dc, int state ) = 0;
-    virtual wxSize GetSize() = 0;
-    
-    virtual bool Activate( wxRect cell,
-                           wxDataViewListModel *model, size_t col, size_t row )   
-                           { return false; }
-    
-    virtual bool LeftClick( wxPoint cursor, wxRect cell, 
-                           wxDataViewListModel *model, size_t col, size_t row )   
-                           { return false; }
-    virtual bool RightClick( wxPoint cursor, wxRect cell,
-                           wxDataViewListModel *model, size_t col, size_t row )   
-                           { return false; }
-    virtual bool StartDrag( wxPoint cursor, wxRect cell, 
-                           wxDataViewListModel *model, size_t col, size_t row )   
-                           { return false; }
-    
-    // Create DC on request
-    virtual wxDC *GetDC();
+    wxDataViewToggleCell( const wxString &varianttype = wxT("bool"), 
+                        wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT );
+
+    bool SetValue( const wxVariant &value );
+    bool GetValue( wxVariant &value );
     
-private:
-    wxDC        *m_dc;
+    bool Render( wxRect cell, wxDC *dc, int state );
+    wxSize GetSize();
     
 protected:
-    DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCustomCell)
+    DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewToggleCell)
 };
     
 // --------------------------------------------------------- 
@@ -217,6 +222,7 @@ public:
     
 private:
     friend class wxDataViewMainWindow;
+    friend class wxDataViewHeaderWindow;
     wxDataViewListModelNotifier *m_notifier;
     wxDataViewMainWindow        *m_clientArea;
     wxDataViewHeaderWindow      *m_headerArea;
index 63e64dbdd42a578194834bab63452a6a4275cd72..7551c71d297f86a41bc13dca152ec2cca6d291e5 100644 (file)
@@ -139,16 +139,50 @@ IMPLEMENT_ABSTRACT_CLASS(wxDataViewCell, wxDataViewCellBase)
 wxDataViewCell::wxDataViewCell( const wxString &varianttype, wxDataViewCellMode mode ) :
     wxDataViewCellBase( varianttype, mode )
 {
+    m_dc = NULL;
+}
+
+wxDataViewCell::~wxDataViewCell()
+{
+    if (m_dc)
+        delete m_dc;
+}
+
+wxDC *wxDataViewCell::GetDC()
+{
+    if (m_dc == NULL)
+    {
+        if (GetOwner() == NULL)
+            return NULL;
+        if (GetOwner()->GetOwner() == NULL)
+            return NULL;
+        m_dc = new wxClientDC( GetOwner()->GetOwner() );
+    }
+        
+    return m_dc;
 }
 
+// --------------------------------------------------------- 
+// wxDataViewCustomCell
+// --------------------------------------------------------- 
+
+IMPLEMENT_ABSTRACT_CLASS(wxDataViewCustomCell, wxDataViewCell)
+
+wxDataViewCustomCell::wxDataViewCustomCell( const wxString &varianttype, 
+                          wxDataViewCellMode mode ) :
+    wxDataViewCell( varianttype, mode )
+{
+}
+
+    
 // --------------------------------------------------------- 
 // wxDataViewTextCell
 // --------------------------------------------------------- 
 
-IMPLEMENT_ABSTRACT_CLASS(wxDataViewTextCell, wxDataViewCell)
+IMPLEMENT_ABSTRACT_CLASS(wxDataViewTextCell, wxDataViewCustomCell)
 
 wxDataViewTextCell::wxDataViewTextCell( const wxString &varianttype, wxDataViewCellMode mode ) :
-    wxDataViewCell( varianttype, mode )
+    wxDataViewCustomCell( varianttype, mode )
 {
 }
 
@@ -162,15 +196,25 @@ bool wxDataViewTextCell::GetValue( wxVariant &value )
     return false;
 }
 
+bool wxDataViewTextCell::Render( wxRect cell, wxDC *dc, int state )
+{
+    return false;
+}
+
+wxSize wxDataViewTextCell::GetSize()
+{
+    return wxSize(80,20);
+}
+
 // --------------------------------------------------------- 
 // wxDataViewToggleCell
 // --------------------------------------------------------- 
 
-IMPLEMENT_ABSTRACT_CLASS(wxDataViewToggleCell, wxDataViewCell)
+IMPLEMENT_ABSTRACT_CLASS(wxDataViewToggleCell, wxDataViewCustomCell)
 
 wxDataViewToggleCell::wxDataViewToggleCell( const wxString &varianttype, 
                         wxDataViewCellMode mode ) :
-    wxDataViewCell( varianttype, mode )
+    wxDataViewCustomCell( varianttype, mode )
 {
 }
 
@@ -184,46 +228,16 @@ bool wxDataViewToggleCell::GetValue( wxVariant &value )
     return false;
 }
     
-// --------------------------------------------------------- 
-// wxDataViewCustomCell
-// --------------------------------------------------------- 
-
-IMPLEMENT_ABSTRACT_CLASS(wxDataViewCustomCell, wxDataViewCell)
-
-wxDataViewCustomCell::wxDataViewCustomCell( const wxString &varianttype, 
-                          wxDataViewCellMode mode ) :
-    wxDataViewCell( varianttype, mode )
-{
-    m_dc = NULL;
-    
-    Init();
-}
-
-bool wxDataViewCustomCell::Init()
+bool wxDataViewToggleCell::Render( wxRect cell, wxDC *dc, int state )
 {
     return false;
 }
 
-wxDataViewCustomCell::~wxDataViewCustomCell()
+wxSize wxDataViewToggleCell::GetSize()
 {
-    if (m_dc)
-        delete m_dc;
+    return wxSize(20,20);
 }
 
-wxDC *wxDataViewCustomCell::GetDC()
-{
-    if (m_dc == NULL)
-    {
-        if (GetOwner() == NULL)
-            return NULL;
-        if (GetOwner()->GetOwner() == NULL)
-            return NULL;
-        m_dc = new wxClientDC( GetOwner()->GetOwner() );
-    }
-        
-    return m_dc;
-}
-    
 // --------------------------------------------------------- 
 // wxDataViewProgressCell
 // ---------------------------------------------------------