{
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)
};
// ---------------------------------------------------------
private:
friend class wxDataViewMainWindow;
+ friend class wxDataViewHeaderWindow;
wxDataViewListModelNotifier *m_notifier;
wxDataViewMainWindow *m_clientArea;
wxDataViewHeaderWindow *m_headerArea;
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 )
{
}
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 )
{
}
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
// ---------------------------------------------------------