]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/dataviewrenderer.tex
don't use _T() inside wxGetTranslation() and related macros (wxTRANSLATE, _, ......
[wxWidgets.git] / docs / latex / wx / dataviewrenderer.tex
CommitLineData
b6b9d556
RR
1
2\section{\class{wxDataViewRenderer}}\label{wxdataviewrenderer}
3
4
5This class is used by \helpref{wxDataViewCtrl}{wxdataviewctrl} to
6render the individual cells. One instance of a renderer class is
7owned by \helpref{wxDataViewColumn}{wxdataviewcolumn}. There is
8a number of ready-to-use renderers provided:
9\helpref{wxDataViewTextRenderer}{wxdataviewtextrenderer},
b15666a6 10\helpref{wxDataViewIconTextRenderer}{wxdataviewicontextrenderer},
b6b9d556
RR
11\helpref{wxDataViewToggleRenderer}{wxdataviewtogglerenderer},
12\helpref{wxDataViewProgressRenderer}{wxdataviewprogressrenderer},
13\helpref{wxDataViewBitmapRenderer}{wxdataviewbitmaprenderer},
14\helpref{wxDataViewDateRenderer}{wxdataviewdaterenderer}.
15
b6b9d556
RR
16Additionally, the user can write own renderers by deriving from
17\helpref{wxDataViewCustomRenderer}{wxdataviewcustomrenderer}.
18
305c49a1 19The {\it wxDataViewCellMode} flag controls, what actions
befba9e4 20the cell data allows. {\it wxDATAVIEW\_CELL\_ACTIVATABLE}
305c49a1
RR
21indicates that the user can double click the cell and
22something will happen (e.g. a window for editing a date
befba9e4 23will pop up). {\it wxDATAVIEW\_CELL\_EDITABLE} indicates
305c49a1
RR
24that the user can edit the data in-place, i.e. an control
25will show up after a slow click on the cell. This behaviour
26is best known from changing the filename in most file
27managers etc.
28
29
b6b9d556
RR
30
31{\small
32\begin{verbatim}
33enum wxDataViewCellMode
34{
35 wxDATAVIEW_CELL_INERT,
36 wxDATAVIEW_CELL_ACTIVATABLE,
37 wxDATAVIEW_CELL_EDITABLE
38};
305c49a1
RR
39\end{verbatim}
40}
41
42The {\it wxDataViewCellRenderState} flag controls how the
43the renderer should display its contents in a cell:
b6b9d556 44
305c49a1
RR
45{\small
46\begin{verbatim}
b6b9d556
RR
47enum wxDataViewCellRenderState
48{
49 wxDATAVIEW_CELL_SELECTED = 1,
50 wxDATAVIEW_CELL_PRELIT = 2,
51 wxDATAVIEW_CELL_INSENSITIVE = 4,
52 wxDATAVIEW_CELL_FOCUSED = 8
53};
54\end{verbatim}
55}
56
57
58\wxheading{Derived from}
59
60\helpref{wxObject}{wxobject}
61
62\wxheading{Include files}
63
64<wx/dataview.h>
65
a7af285d
VZ
66\wxheading{Library}
67
68\helpref{wxAdv}{librarieslist}
69
b6b9d556 70
809e21b5
FM
71
72\latexignore{\rtfignore{\wxheading{Members}}}
73
b6b9d556
RR
74\membersection{wxDataViewRenderer::wxDataViewRenderer}\label{wxdataviewrendererwxdataviewrenderer}
75
76\func{}{wxDataViewRenderer}{\param{const wxString\& }{varianttype}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}}
77
78Constructor.
79
80\membersection{wxDataViewRenderer::GetMode}\label{wxdataviewrenderergetmode}
81
82\func{virtual wxDataViewCellMode}{GetMode}{\void}
83
84Returns the cell mode.
85
86\membersection{wxDataViewRenderer::GetOwner}\label{wxdataviewrenderergetowner}
87
88\func{virtual wxDataViewColumn*}{GetOwner}{\void}
89
90Returns pointer to the owning \helpref{wxDataViewColumn}{wxdataviewcolumn}.
91
92\membersection{wxDataViewRenderer::GetValue}\label{wxdataviewrenderergetvalue}
93
94\func{virtual bool}{GetValue}{\param{wxVariant\& }{value}}
95
96This methods retrieves the value from the renderer in order to
97transfer the value back to the data model. Returns {\it false}
98on failure.
99
100\membersection{wxDataViewRenderer::GetVariantType}\label{wxdataviewrenderergetvarianttype}
101
102\func{virtual wxString}{GetVariantType}{\void}
103
104Returns a string with the type of the \helpref{wxVariant}{wxvariant}
105supported by this renderer.
106
107\membersection{wxDataViewRenderer::SetOwner}\label{wxdataviewrenderersetowner}
108
109\func{virtual void}{SetOwner}{\param{wxDataViewColumn* }{owner}}
110
111Sets the owning \helpref{wxDataViewColumn}{wxdataviewcolumn}. This
112is usually called from within wxDataViewColumn.
113
114\membersection{wxDataViewRenderer::SetValue}\label{wxdataviewrenderersetvalue}
115
116\func{virtual bool}{SetValue}{\param{const wxVariant\& }{value}}
117
118Set the value of the renderer (and thus its cell) to {\it value}.
119The internal code will then render this cell with this data.
120
121
122\membersection{wxDataViewRenderer::Validate}\label{wxdataviewrenderervalidate}
123
124\func{virtual bool}{Validate}{\param{wxVariant\& }{value}}
125
305c49a1
RR
126Before data is committed to the data model, it is passed to this
127method where it can be checked for validity. This can also be
128used for checking a valid range or limiting the user input in
129a certain aspect (e.g. max number of characters or only alphanumeric
130input, ASCII only etc.). Return {\it false} if the value is
131not valid.
132
133Please note that due to implementation limitations, this validation
134is done after the editing control already is destroyed and the
135editing process finished.
b6b9d556
RR
136
137
138\section{\class{wxDataViewTextRenderer}}\label{wxdataviewtextrenderer}
139
305c49a1
RR
140wxDataViewTextRenderer is used for rendering text. It supports
141in-place editing if desired.
b6b9d556
RR
142
143
144\wxheading{Derived from}
145
7376079d
VZ
146\helpref{wxDataViewRenderer}{wxdataviewrenderer}\\
147\helpref{wxObject}{wxobject}
b6b9d556
RR
148
149\wxheading{Include files}
150
151<wx/dataview.h>
152
a7af285d
VZ
153\wxheading{Library}
154
155\helpref{wxAdv}{librarieslist}
156
b6b9d556 157
809e21b5
FM
158\latexignore{\rtfignore{\wxheading{Members}}}
159
b6b9d556
RR
160\membersection{wxDataViewTextRenderer::wxDataViewTextRenderer}\label{wxdataviewtextrendererwxdataviewtextrenderer}
161
162\func{}{wxDataViewTextRenderer}{\param{const wxString\& }{varianttype = wxT("string")}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}}
163
164
165
166\section{\class{wxDataViewProgressRenderer}}\label{wxdataviewprogressrenderer}
167
168wxDataViewProgressRenderer
169
170
171\wxheading{Derived from}
172
7376079d
VZ
173\helpref{wxDataViewRenderer}{wxdataviewrenderer}\\
174\helpref{wxObject}{wxobject}
b6b9d556
RR
175
176\wxheading{Include files}
177
178<wx/dataview.h>
179
a7af285d
VZ
180\wxheading{Library}
181
182\helpref{wxAdv}{librarieslist}
183
b6b9d556 184
809e21b5
FM
185\latexignore{\rtfignore{\wxheading{Members}}}
186
b6b9d556
RR
187\membersection{wxDataViewProgressRenderer::wxDataViewProgressRenderer}\label{wxdataviewprogressrendererwxdataviewprogressrenderer}
188
189\func{}{wxDataViewProgressRenderer}{\param{const wxString\& }{label = wxEmptyString}, \param{const wxString\& }{varianttype = wxT("long")}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}}
190
191
c1e17d4c
RR
192\section{\class{wxDataViewIconText}}\label{wxdataviewicontext}
193
194wxDataViewIconText is used by
195\helpref{wxDataViewIconTextRenderer}{wxdataviewicontextrenderer}
196for data transfer. This class can be converted to a from
197a \helpref{wxVariant}{wxvariant}.
198
199\wxheading{Derived from}
200
201\helpref{wxObject}{wxobject}
202
203\wxheading{Include files}
204
205<dataview.h>
206
207\membersection{wxDataViewIconText::wxDataViewIconText}\label{wxdataviewicontextwxdataviewicontext}
208
209\func{}{wxDataViewIconText}{\param{const wxString\& }{text = wxEmptyString}, \param{const wxIcon\& }{icon = wxNullIcon}}
210
211\func{}{wxDataViewIconText}{\param{const wxDataViewIconText\& }{other}}
212
213Constructor.
214
215\membersection{wxDataViewIconText::GetIcon}\label{wxdataviewicontextgeticon}
216
217\constfunc{const wxIcon\&}{GetIcon}{\void}
218
219Gets the icon.
220
221\membersection{wxDataViewIconText::GetText}\label{wxdataviewicontextgettext}
222
223\constfunc{wxString}{GetText}{\void}
224
225Gets the text.
226
227\membersection{wxDataViewIconText::SetIcon}\label{wxdataviewicontextseticon}
228
229\func{void}{SetIcon}{\param{const wxIcon\& }{icon}}
230
231Set the icon.
232
233\membersection{wxDataViewIconText::SetText}\label{wxdataviewicontextsettext}
234
235\func{void}{SetText}{\param{const wxString\& }{text}}
236
237Set the text.
238
239\section{\class{wxDataViewIconTextRenderer}}\label{wxdataviewicontextrenderer}
240
241The wxDataViewIconTextRenderer class is used to display text with
242a small icon next to it as it is typically done in a file manager.
243This classes uses the \helpref{wxDataViewIconText}{wxdataviewicontext}
244helper class to store its data. wxDataViewIonText can be converted
245to a from a \helpref{wxVariant}{wxvariant} using the left shift
246operator.
247
248\wxheading{Derived from}
249
250\helpref{wxDataViewRenderer}{wxdataviewrenderer}\\
251\helpref{wxObject}{wxobject}
252
253\wxheading{Include files}
254
255<wx/dataview.h>
256
257\wxheading{Library}
258
259\helpref{wxAdv}{librarieslist}
260
261
262\latexignore{\rtfignore{\wxheading{Members}}}
263
264\membersection{wxDataViewIconTextRenderer::wxDataViewIconTextRenderer}\label{wxdataviewtogglerendererwxdataviewicontextrenderer}
265
266\func{}{wxDataViewIconTextRenderer}{\param{const wxString\& }{varianttype = wxT("wxDataViewIconText")}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}}
267
b6b9d556
RR
268
269\section{\class{wxDataViewToggleRenderer}}\label{wxdataviewtogglerenderer}
270
271wxDataViewToggleRenderer
272
273\wxheading{Derived from}
274
7376079d
VZ
275\helpref{wxDataViewRenderer}{wxdataviewrenderer}\\
276\helpref{wxObject}{wxobject}
b6b9d556
RR
277
278\wxheading{Include files}
279
280<wx/dataview.h>
281
a7af285d
VZ
282\wxheading{Library}
283
284\helpref{wxAdv}{librarieslist}
285
b6b9d556 286
809e21b5
FM
287\latexignore{\rtfignore{\wxheading{Members}}}
288
b6b9d556
RR
289\membersection{wxDataViewToggleRenderer::wxDataViewToggleRenderer}\label{wxdataviewtogglerendererwxdataviewtogglerenderer}
290
291\func{}{wxDataViewToggleRenderer}{\param{const wxString\& }{varianttype = wxT("bool")}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}}
292
293
294\section{\class{wxDataViewBitmapRenderer}}\label{wxdataviewbitmaprenderer}
295
296wxDataViewBitmapRenderer
297
298\wxheading{Derived from}
299
7376079d
VZ
300\helpref{wxDataViewRenderer}{wxdataviewrenderer}\\
301\helpref{wxObject}{wxobject}
b6b9d556
RR
302
303\wxheading{Include files}
304
305<wx/dataview.h>
306
a7af285d
VZ
307\wxheading{Library}
308
309\helpref{wxAdv}{librarieslist}
310
b6b9d556 311
809e21b5
FM
312\latexignore{\rtfignore{\wxheading{Members}}}
313
b6b9d556
RR
314\membersection{wxDataViewBitmapRenderer::wxDataViewBitmapRenderer}\label{wxdataviewbitmaprendererwxdataviewbitmaprenderer}
315
316\func{}{wxDataViewBitmapRenderer}{\param{const wxString\& }{varianttype = wxT("wxBitmap")}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}}
317
318
319\section{\class{wxDataViewDateRenderer}}\label{wxdataviewdaterenderer}
320
321wxDataViewDateRenderer
322
323
324\wxheading{Derived from}
325
7376079d
VZ
326\helpref{wxDataViewRenderer}{wxdataviewrenderer}\\
327\helpref{wxObject}{wxobject}
b6b9d556
RR
328
329\wxheading{Include files}
330
331<wx/dataview.h>
332
a7af285d
VZ
333\wxheading{Library}
334
335\helpref{wxAdv}{librarieslist}
336
809e21b5
FM
337
338\latexignore{\rtfignore{\wxheading{Members}}}
339
b6b9d556
RR
340\membersection{wxDataViewDateRenderer::wxDataViewDateRenderer}\label{wxdataviewdaterendererwxdataviewdaterenderer}
341
342\func{}{wxDataViewDateRenderer}{\param{const wxString\& }{varianttype = wxT("datetime")}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_ACTIVATABLE}}
343
344
345\section{\class{wxDataViewCustomRenderer}}\label{wxdataviewcustomrenderer}
346
81a22037
RR
347You need to derive a new class from wxDataViewCustomRenderer in
348order to write a new renderer. You need to override at least
349\helpref{SetValue}{wxdataviewrenderersetvalue},
305c49a1
RR
350\helpref{GetValue}{wxdataviewrenderergetvalue},
351\helpref{GetSize}{wxdataviewcustomrenderergetsize}
352and \helpref{Render}{wxdataviewcustomrendererrender}.
353
81a22037
RR
354If you want your renderer to support in-place editing then you
355also need to override
305c49a1
RR
356\helpref{HasEditorCtrl}{wxdataviewcustomrendererhaseditorctrl},
357\helpref{CreateEditorCtrl}{wxdataviewcustomrenderercreateeditorctrl}
358and \helpref{GetValueFromEditorCtrl}{wxdataviewcustomrenderergetvaluefromeditorctrl}.
359Note that a special event handler will be pushed onto that
360editor control which handles <ENTER> and focus out events
361in order to end the editing.
b6b9d556
RR
362
363\wxheading{Derived from}
364
7376079d
VZ
365\helpref{wxDataViewRenderer}{wxdataviewrenderer}\\
366\helpref{wxObject}{wxobject}
b6b9d556
RR
367
368\wxheading{Include files}
369
370<wx/dataview.h>
371
a7af285d
VZ
372\wxheading{Library}
373
374\helpref{wxAdv}{librarieslist}
375
809e21b5
FM
376
377\latexignore{\rtfignore{\wxheading{Members}}}
378
b6b9d556
RR
379\membersection{wxDataViewCustomRenderer::wxDataViewCustomRenderer}\label{wxdataviewcustomrendererwxdataviewcustomrenderer}
380
381\func{}{wxDataViewCustomRenderer}{\param{const wxString\& }{varianttype = wxT("string")}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{bool }{no\_init = false}}
382
383Constructor.
384
385\membersection{wxDataViewCustomRenderer::\destruct{wxDataViewCustomRenderer}}\label{wxdataviewcustomrendererdtor}
386
387\func{}{\destruct{wxDataViewCustomRenderer}}{\void}
388
389Destructor.
390
305c49a1
RR
391
392\membersection{wxDataViewCustomRenderer::HasEditorCtrl}\label{wxdataviewcustomrendererhaseditorctrl}
393
394\func{virtual bool}{HasEditorCtrl}{\void}
395
396Override this and make it return {\it true} in order to
397indicate that this renderer supports in-place editing.
398
399\membersection{wxDataViewCustomRenderer::CreateEditorCtrl}\label{wxdataviewcustomrenderercreateeditorctrl}
400
befba9e4 401\func{virtual wxControl*}{CreateEditorCtrl}{\param{wxWindow *}{parent}, \param{wxRect }{labelRect}, \param{const wxVariant \& }{value}}
305c49a1
RR
402
403Override this to create the actual editor control once editing
404is about to start. {\it parent} is the parent of the editor
405control, {\it labelRect} indicates the position and
406size of the editor control and {\it value} is its initial value:
407
408{\small
409\begin{verbatim}
410{
411 long l = value;
412 return new wxSpinCtrl( parent, wxID_ANY, wxEmptyString,
413 labelRect.GetTopLeft(), labelRect.GetSize(), 0, 0, 100, l );
414}
415\end{verbatim}
416}
417
418\membersection{wxDataViewCustomRenderer::GetValueFromEditorCtrl}\label{wxdataviewcustomrenderergetvaluefromeditorctrl}
419
7a4523c8 420\func{virtual bool}{GetValueFromEditorCtrl}{\param{wxControl* }{editor}, \param{wxVariant \& }{value}}
305c49a1
RR
421
422Overrride this so that the renderer can get the value
423from the editor control (pointed to by {\it editor}):
424
425{\small
426\begin{verbatim}
427{
428 wxSpinCtrl *sc = (wxSpinCtrl*) editor;
429 long l = sc->GetValue();
430 value = l;
431 return true;
432}
433\end{verbatim}
434}
435
b6b9d556
RR
436\membersection{wxDataViewCustomRenderer::Activate}\label{wxdataviewcustomrendereractivate}
437
d0b67421 438\func{virtual bool}{Activate}{\param{wxRect }{cell}, \param{wxDataViewModel* }{model}, \param{unsigned int }{col}, \param{unsigned int }{row}}
b6b9d556
RR
439
440Override this to react to double clicks or <ENTER>.
441
442\membersection{wxDataViewCustomRenderer::GetDC}\label{wxdataviewcustomrenderergetdc}
443
444\func{virtual wxDC*}{GetDC}{\void}
445
446Create DC on request. Internal.
447
448
449\membersection{wxDataViewCustomRenderer::GetSize}\label{wxdataviewcustomrenderergetsize}
450
451\func{virtual wxSize}{GetSize}{\void}
452
453Return size required to show content.
454
455
456\membersection{wxDataViewCustomRenderer::LeftClick}\label{wxdataviewcustomrendererleftclick}
457
d0b67421 458\func{virtual bool}{LeftClick}{\param{wxPoint }{cursor}, \param{wxRect }{cell}, \param{wxDataViewModel* }{model}, \param{unsigned int }{col}, \param{unsigned int }{row}}
b6b9d556
RR
459
460Overrride this to react to a left click.
461
462\membersection{wxDataViewCustomRenderer::Render}\label{wxdataviewcustomrendererrender}
463
464\func{virtual bool}{Render}{\param{wxRect }{cell}, \param{wxDC* }{dc}, \param{int }{state}}
465
466Override this to render the cell. Before this is called,
467\helpref{SetValue}{wxdataviewrenderersetvalue} was called
468so that this instance knows what to render.
469
470\membersection{wxDataViewCustomRenderer::RightClick}\label{wxdataviewcustomrendererrightclick}
471
d0b67421 472\func{virtual bool}{RightClick}{\param{wxPoint }{cursor}, \param{wxRect }{cell}, \param{wxDataViewModel* }{model}, \param{unsigned int }{col}, \param{unsigned int }{row}}
b6b9d556
RR
473
474Overrride this to react to a right click.
475
476\membersection{wxDataViewCustomRenderer::StartDrag}\label{wxdataviewcustomrendererstartdrag}
477
d0b67421 478\func{virtual bool}{StartDrag}{\param{wxPoint }{cursor}, \param{wxRect }{cell}, \param{wxDataViewModel* }{model}, \param{unsigned int }{col}, \param{unsigned int }{row}}
b6b9d556
RR
479
480Overrride this to start a drag operation.
481
482
483