1 /////////////////////////////////////////////////////////////////////////////
2 // Name: src/common/datavcmn.cpp
3 // Purpose: wxDataViewCtrl base classes and common parts
4 // Author: Robert Roebling
7 // Copyright: (c) 2006, Robert Roebling
8 // Licence: wxWindows licence
9 /////////////////////////////////////////////////////////////////////////////
11 // For compilers that support precompilation, includes "wx.h".
12 #include "wx/wxprec.h"
20 #if wxUSE_DATAVIEWCTRL
22 #include "wx/object.h"
23 #include "wx/dataview.h"
27 // ---------------------------------------------------------
29 // ---------------------------------------------------------
31 IMPLEMENT_ABSTRACT_CLASS(wxDataViewModel
, wxObject
)
33 // ---------------------------------------------------------
34 // wxDataViewListModel
35 // ---------------------------------------------------------
37 IMPLEMENT_ABSTRACT_CLASS(wxDataViewListModel
, wxDataViewModel
)
39 wxDataViewListModel::wxDataViewListModel()
44 wxDataViewListModel::~wxDataViewListModel()
50 bool wxDataViewListModel::RowAppended()
53 return m_notifier
->RowAppended();
58 bool wxDataViewListModel::RowPrepended()
61 return m_notifier
->RowPrepended();
66 bool wxDataViewListModel::RowInserted( size_t before
)
69 return m_notifier
->RowInserted( before
);
74 bool wxDataViewListModel::RowDeleted( size_t row
)
77 return m_notifier
->RowDeleted( row
);
82 bool wxDataViewListModel::RowChanged( size_t row
)
85 return m_notifier
->RowChanged( row
);
90 bool wxDataViewListModel::ValueChanged( size_t col
, size_t row
)
93 return m_notifier
->ValueChanged( col
, row
);
98 bool wxDataViewListModel::Cleared()
101 return m_notifier
->Cleared();
106 void wxDataViewListModel::SetNotifier( wxDataViewListModelNotifier
*notifier
)
111 m_notifier
= notifier
;
114 wxDataViewListModelNotifier
* wxDataViewListModel::GetNotifier()
119 // ---------------------------------------------------------
120 // wxDataViewCellBase
121 // ---------------------------------------------------------
123 IMPLEMENT_ABSTRACT_CLASS(wxDataViewCellBase
, wxObject
)
125 wxDataViewCellBase::wxDataViewCellBase( const wxString
&varianttype
, wxDataViewCellMode mode
)
127 m_variantType
= varianttype
;
131 // ---------------------------------------------------------
132 // wxDataViewColumnBase
133 // ---------------------------------------------------------
135 IMPLEMENT_ABSTRACT_CLASS(wxDataViewColumnBase
, wxObject
)
137 wxDataViewColumnBase::wxDataViewColumnBase( const wxString
&title
, wxDataViewCell
*cell
, size_t model_column
, int flags
)
140 m_model_column
= model_column
;
144 m_cell
->SetOwner( (wxDataViewColumn
*) this );
147 wxDataViewColumnBase::~wxDataViewColumnBase()
153 void wxDataViewColumnBase::SetTitle( const wxString
&title
)
158 wxString
wxDataViewColumnBase::GetTitle()
163 // ---------------------------------------------------------
164 // wxDataViewCtrlBase
165 // ---------------------------------------------------------
167 IMPLEMENT_ABSTRACT_CLASS(wxDataViewCtrlBase
, wxControl
)
169 wxDataViewCtrlBase::wxDataViewCtrlBase()
172 m_cols
.DeleteContents( true );
175 wxDataViewCtrlBase::~wxDataViewCtrlBase()
181 bool wxDataViewCtrlBase::AssociateModel( wxDataViewListModel
*model
)
191 wxDataViewListModel
* wxDataViewCtrlBase::GetModel()
196 bool wxDataViewCtrlBase::AppendTextColumn( const wxString
&label
, size_t model_column
)
198 return AppendColumn( new wxDataViewColumn( label
, new wxDataViewTextCell(), model_column
) );
201 bool wxDataViewCtrlBase::AppendToggleColumn( const wxString
&label
, size_t model_column
)
203 return AppendColumn( new wxDataViewColumn( label
, new wxDataViewToggleCell(), model_column
) );
206 bool wxDataViewCtrlBase::AppendProgressColumn( const wxString
&label
, size_t model_column
)
208 return AppendColumn( new wxDataViewColumn( label
, new wxDataViewProgressCell(), model_column
) );
211 bool wxDataViewCtrlBase::AppendColumn( wxDataViewColumn
*col
)
213 m_cols
.Append( (wxObject
*) col
);
214 col
->SetOwner( (wxDataViewCtrl
*) this );
218 size_t wxDataViewCtrlBase::GetNumberOfColumns()
220 return m_cols
.GetCount();
223 bool wxDataViewCtrlBase::DeleteColumn( size_t pos
)
228 bool wxDataViewCtrlBase::ClearColumns()
233 wxDataViewColumn
* wxDataViewCtrlBase::GetColumn( size_t pos
)
235 return (wxDataViewColumn
*) m_cols
[ pos
];