]> git.saurik.com Git - wxWidgets.git/blame - src/common/datavcmn.cpp
WinCE friendly wxCheckListBox sample.
[wxWidgets.git] / src / common / datavcmn.cpp
CommitLineData
239eaa41
RR
1/////////////////////////////////////////////////////////////////////////////
2// Name: src/common/datavcmn.cpp
3// Purpose: wxDataViewCtrl base classes and common parts
4// Author: Robert Roebling
5// Created: 2006/02/20
6// RCS-ID: $Id$
7// Copyright: (c) 2006, Robert Roebling
8// Licence: wxWindows licence
9/////////////////////////////////////////////////////////////////////////////
10
11// For compilers that support precompilation, includes "wx.h".
12#include "wx/wxprec.h"
13
14#ifdef __BORLANDC__
15 #pragma hdrstop
16#endif
17
8045736e
RR
18#include "wx/defs.h"
19
20#if wxUSE_DATAVIEWCTRL
21
260b9be7 22#include "wx/object.h"
239eaa41
RR
23#include "wx/dataview.h"
24#include "wx/log.h"
25#include "wx/image.h"
26
27// ---------------------------------------------------------
28// wxDataViewModel
29// ---------------------------------------------------------
30
31IMPLEMENT_ABSTRACT_CLASS(wxDataViewModel, wxObject)
32
33// ---------------------------------------------------------
34// wxDataViewListModel
35// ---------------------------------------------------------
36
37IMPLEMENT_ABSTRACT_CLASS(wxDataViewListModel, wxDataViewModel)
38
39wxDataViewListModel::wxDataViewListModel()
40{
41 m_notifier = NULL;
42}
43
44wxDataViewListModel::~wxDataViewListModel()
45{
46 if (m_notifier)
47 delete m_notifier;
48}
49
50bool wxDataViewListModel::RowAppended()
51{
52 if (m_notifier)
53 return m_notifier->RowAppended();
54
55 return false;
56}
57
58bool wxDataViewListModel::RowPrepended()
59{
60 if (m_notifier)
61 return m_notifier->RowPrepended();
62
63 return false;
64}
65
66bool wxDataViewListModel::RowInserted( size_t before )
67{
68 if (m_notifier)
69 return m_notifier->RowInserted( before );
70
71 return false;
72}
73
74bool wxDataViewListModel::RowDeleted( size_t row )
75{
76 if (m_notifier)
77 return m_notifier->RowDeleted( row );
78
79 return false;
80}
81
82bool wxDataViewListModel::RowChanged( size_t row )
83{
84 if (m_notifier)
85 return m_notifier->RowChanged( row );
86
87 return false;
88}
89
a7f61f76 90bool wxDataViewListModel::ValueChanged( size_t col, size_t row )
239eaa41
RR
91{
92 if (m_notifier)
a7f61f76 93 return m_notifier->ValueChanged( col, row );
239eaa41
RR
94
95 return false;
96}
97
98bool wxDataViewListModel::Cleared()
99{
100 if (m_notifier)
101 return m_notifier->Cleared();
102
103 return false;
104}
105
106void wxDataViewListModel::SetNotifier( wxDataViewListModelNotifier *notifier )
107{
108 if (m_notifier)
109 delete m_notifier;
110
111 m_notifier = notifier;
112}
113
114wxDataViewListModelNotifier* wxDataViewListModel::GetNotifier()
115{
116 return m_notifier;
117}
118
6842a71a
RR
119// ---------------------------------------------------------
120// wxDataViewCellBase
121// ---------------------------------------------------------
122
123IMPLEMENT_ABSTRACT_CLASS(wxDataViewCellBase, wxObject)
124
125wxDataViewCellBase::wxDataViewCellBase( const wxString &varianttype, wxDataViewCellMode mode )
126{
127 m_variantType = varianttype;
128 m_mode = mode;
129}
130
fa28826d
RR
131// ---------------------------------------------------------
132// wxDataViewColumnBase
133// ---------------------------------------------------------
134
135IMPLEMENT_ABSTRACT_CLASS(wxDataViewColumnBase, wxObject)
136
6842a71a 137wxDataViewColumnBase::wxDataViewColumnBase( const wxString &title, wxDataViewCell *cell, size_t model_column, int flags)
fa28826d 138{
6842a71a
RR
139 m_cell = cell;
140 m_model_column = model_column;
fa28826d
RR
141 m_flags = flags;
142 m_title = title;
6842a71a
RR
143 m_owner = NULL;
144 m_cell->SetOwner( (wxDataViewColumn*) this );
145}
146
147wxDataViewColumnBase::~wxDataViewColumnBase()
148{
149 if (m_cell)
150 delete m_cell;
fa28826d
RR
151}
152
153void wxDataViewColumnBase::SetTitle( const wxString &title )
154{
155 m_title = title;
156}
157
158wxString wxDataViewColumnBase::GetTitle()
159{
160 return m_title;
161}
162
239eaa41
RR
163// ---------------------------------------------------------
164// wxDataViewCtrlBase
165// ---------------------------------------------------------
166
167IMPLEMENT_ABSTRACT_CLASS(wxDataViewCtrlBase, wxControl)
168
169wxDataViewCtrlBase::wxDataViewCtrlBase()
170{
171 m_model = NULL;
fa28826d 172 m_cols.DeleteContents( true );
239eaa41
RR
173}
174
175wxDataViewCtrlBase::~wxDataViewCtrlBase()
176{
177 if (m_model)
178 delete m_model;
179}
180
6e2e590f 181bool wxDataViewCtrlBase::AssociateModel( wxDataViewListModel *model )
239eaa41
RR
182{
183 if (m_model)
184 delete m_model;
185
186 m_model = model;
187
188 return true;
189}
190
6e2e590f 191wxDataViewListModel* wxDataViewCtrlBase::GetModel()
239eaa41
RR
192{
193 return m_model;
194}
195
605c2c4a 196bool wxDataViewCtrlBase::AppendTextColumn( const wxString &label, size_t model_column )
fa28826d 197{
6842a71a 198 return AppendColumn( new wxDataViewColumn( label, new wxDataViewTextCell(), model_column ) );
fa28826d
RR
199}
200
605c2c4a
RR
201bool wxDataViewCtrlBase::AppendToggleColumn( const wxString &label, size_t model_column )
202{
203 return AppendColumn( new wxDataViewColumn( label, new wxDataViewToggleCell(), model_column ) );
204}
205
ad63bf41
RR
206bool wxDataViewCtrlBase::AppendProgressColumn( const wxString &label, size_t model_column )
207{
208 return AppendColumn( new wxDataViewColumn( label, new wxDataViewProgressCell(), model_column ) );
209}
210
fa28826d
RR
211bool wxDataViewCtrlBase::AppendColumn( wxDataViewColumn *col )
212{
213 m_cols.Append( (wxObject*) col );
6842a71a 214 col->SetOwner( (wxDataViewCtrl*) this );
fa28826d
RR
215 return true;
216}
217
218size_t wxDataViewCtrlBase::GetNumberOfColumns()
219{
220 return m_cols.GetCount();
221}
222
223bool wxDataViewCtrlBase::DeleteColumn( size_t pos )
224{
225 return false;
226}
227
228bool wxDataViewCtrlBase::ClearColumns()
229{
230 return false;
231}
232
233wxDataViewColumn* wxDataViewCtrlBase::GetColumn( size_t pos )
234{
235 return (wxDataViewColumn*) m_cols[ pos ];
236}
237
8045736e 238#endif