]> git.saurik.com Git - wxWidgets.git/blob - docs/latex/wx/listctrl.tex
Added 'full' param to wxFileName::Mkdir to make all directories in a path,
[wxWidgets.git] / docs / latex / wx / listctrl.tex
1 \section{\class{wxListCtrl}}\label{wxlistctrl}
2
3 A list control presents lists in a number of formats: list view, report view,
4 icon view and small icon view. In any case, elements are numbered from zero.
5
6 Using many of wxListCtrl is shown in the
7 \helpref{corresponding sample}{samplelistctrl}.
8
9 To intercept events from a list control, use the event table macros described
10 in \helpref{wxListEvent}{wxlistevent}.
11
12 \wxheading{Derived from}
13
14 \helpref{wxControl}{wxcontrol}\\
15 \helpref{wxWindow}{wxwindow}\\
16 \helpref{wxEvtHandler}{wxevthandler}\\
17 \helpref{wxObject}{wxobject}
18
19 \wxheading{Include files}
20
21 <wx/listctrl.h>
22
23 \wxheading{Window styles}
24
25 \twocolwidtha{5cm}
26 \begin{twocollist}\itemsep=0pt
27 \twocolitem{\windowstyle{wxLC\_LIST}}{multicolumn list view, with optional small icons.
28 Columns are computed automatically, i.e. you don't set columns as in wxLC\_REPORT. In other words,
29 the list wraps, unlike a wxListBox.}
30 \twocolitem{\windowstyle{wxLC\_REPORT}}{single or multicolumn report view, with optional header.}
31 \twocolitem{\windowstyle{wxLC\_ICON}}{Large icon view, with optional labels.}
32 \twocolitem{\windowstyle{wxLC\_SMALL\_ICON}}{Small icon view, with optional labels.}
33 \twocolitem{\windowstyle{wxLC\_ALIGN\_TOP}}{Icons align to the top. Win32 default, Win32 only. }
34 \twocolitem{\windowstyle{wxLC\_ALIGN\_LEFT}}{Icons align to the left. }
35 \twocolitem{\windowstyle{wxLC\_AUTOARRANGE}}{Icons arrange themselves. Win32 only. }
36 \twocolitem{\windowstyle{wxLC\_USER\_TEXT}}{The application provides label text on demand, except for column headers. Win32 only. }
37 \twocolitem{\windowstyle{wxLC\_EDIT\_LABELS}}{Labels are editable: the application will be notified when editing starts.}
38 \twocolitem{\windowstyle{wxLC\_NO\_HEADER}}{No header in report mode. Win32 only. }
39 \twocolitem{\windowstyle{wxLC\_SINGLE\_SEL}}{Single selection.}
40 \twocolitem{\windowstyle{wxLC\_SORT\_ASCENDING}}{Sort in ascending order (must still supply a comparison callback in SortItems.}
41 \twocolitem{\windowstyle{wxLC\_SORT\_DESCENDING}}{Sort in descending order (must still supply a comparison callback in SortItems.}
42 \twocolitem{\windowstyle{wxLC\_HRULES}}{Draws light horizontal rules between rows in report mode.}
43 \twocolitem{\windowstyle{wxLC\_VRULES}}{Draws light vertical rules between columns in report mode.}
44 \end{twocollist}
45
46 See also \helpref{window styles overview}{windowstyles}.
47
48 \wxheading{Event handling}
49
50 To process input from a list control, use these event handler macros to direct input to member
51 functions that take a \helpref{wxListEvent}{wxlistevent} argument.
52
53 \twocolwidtha{7cm}
54 \begin{twocollist}\itemsep=0pt
55 \twocolitem{{\bf EVT\_LIST\_BEGIN\_DRAG(id, func)}}{Begin dragging with the left mouse button.}
56 \twocolitem{{\bf EVT\_LIST\_BEGIN\_RDRAG(id, func)}}{Begin dragging with the right mouse button.}
57 \twocolitem{{\bf EVT\_LIST\_BEGIN\_LABEL\_EDIT(id, func)}}{Begin editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.}
58 \twocolitem{{\bf EVT\_LIST\_END\_LABEL\_EDIT(id, func)}}{Finish editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.}
59 \twocolitem{{\bf EVT\_LIST\_DELETE\_ITEM(id, func)}}{Delete an item.}
60 \twocolitem{{\bf EVT\_LIST\_DELETE\_ALL\_ITEMS(id, func)}}{Delete all items.}
61 \twocolitem{{\bf EVT\_LIST\_GET\_INFO(id, func)}}{Request information from the application, usually the item text.}
62 \twocolitem{{\bf EVT\_LIST\_SET\_INFO(id, func)}}{Information is being supplied (not implemented).}
63 \twocolitem{{\bf EVT\_LIST\_ITEM\_SELECTED(id, func)}}{The item has been selected.}
64 \twocolitem{{\bf EVT\_LIST\_ITEM\_DESELECTED(id, func)}}{The item has been deselected.}
65 \twocolitem{{\bf EVT\_LIST\_ITEM\_ACTIVATED(id, func)}}{The item has been activated (ENTER or double click).}
66 \twocolitem{{\bf EVT\_LIST\_KEY\_DOWN(id, func)}}{A key has been pressed.}
67 \twocolitem{{\bf EVT\_LIST\_INSERT\_ITEM(id, func)}}{An item has been inserted.}
68 \twocolitem{{\bf EVT\_LIST\_COL\_CLICK(id, func)}}{A column ({\bf m\_col}) has been left-clicked.}
69 \twocolitem{{\bf EVT\_LIST\_ITEM\_RIGHT\_CLICK(id, func)}}{An item has been right-clicked.}
70 \end{twocollist}%
71
72 \wxheading{See also}
73
74 \helpref{wxListCtrl overview}{wxlistctrloverview}, \helpref{wxListBox}{wxlistbox}, \helpref{wxTreeCtrl}{wxtreectrl},\rtfsp
75 \helpref{wxImageList}{wximagelist}, \helpref{wxListEvent}{wxlistevent}
76
77 \latexignore{\rtfignore{\wxheading{Members}}}
78
79 \membersection{wxListCtrl::wxListCtrl}\label{wxlistctrlconstr}
80
81 \func{}{wxListCtrl}{\void}
82
83 Default constructor.
84
85 \func{}{wxListCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
86 \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
87 \param{long}{ style = wxLC\_ICON}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listCtrl"}}
88
89 Constructor, creating and showing a list control.
90
91 \wxheading{Parameters}
92
93 \docparam{parent}{Parent window. Must not be NULL.}
94
95 \docparam{id}{Window identifier. A value of -1 indicates a default value.}
96
97 \docparam{pos}{Window position.}
98
99 \docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized
100 appropriately.}
101
102 \docparam{style}{Window style. See \helpref{wxListCtrl}{wxlistctrl}.}
103
104 \docparam{validator}{Window validator.}
105
106 \docparam{name}{Window name.}
107
108 \wxheading{See also}
109
110 \helpref{wxListCtrl::Create}{wxlistctrlcreate}, \helpref{wxValidator}{wxvalidator}
111
112 \membersection{wxListCtrl::\destruct{wxListCtrl}}
113
114 \func{void}{\destruct{wxListCtrl}}{\void}
115
116 Destructor, destroying the list control.
117
118 \membersection{wxListCtrl::Arrange}\label{wxlistctrlarrange}
119
120 \func{bool}{Arrange}{\param{int }{flag = wxLIST\_ALIGN\_DEFAULT}}
121
122 Arranges the items in icon or small icon view. This only has effect on Win32. {\it flag} is one of:
123
124 \twocolwidtha{5cm}
125 \begin{twocollist}\itemsep=0pt
126 \twocolitem{wxLIST\_ALIGN\_DEFAULT}{Default alignment.}
127 \twocolitem{wxLIST\_ALIGN\_LEFT}{Align to the left side of the control.}
128 \twocolitem{wxLIST\_ALIGN\_TOP}{Align to the top side of the control.}
129 \twocolitem{wxLIST\_ALIGN\_SNAP\_TO\_GRID}{Snap to grid.}
130 \end{twocollist}
131
132 \membersection{wxListCtrl::AssignImageList}\label{wxlistctrlassignimagelist}
133
134 \func{void}{AssignImageList}{\param{wxImageList*}{ imageList}, \param{int }{which}}
135
136 Sets the image list associated with the control and
137 takes ownership of it (i.e. the control will, unlike when using
138 SetImageList, delete the list when destroyed). {\it which} is one of
139 wxIMAGE\_LIST\_NORMAL, wxIMAGE\_LIST\_SMALL, wxIMAGE\_LIST\_STATE (the last is unimplemented).
140
141 \wxheading{See also}
142
143 \helpref{wxListCtrl::SetImageList}{wxlistctrlsetimagelist}
144
145 \membersection{wxListCtrl::ClearAll}\label{wxlistctrlclearall}
146
147 \func{void}{ClearAll}{}
148
149 Deletes all items and all columns.
150
151 \membersection{wxListCtrl::Create}\label{wxlistctrlcreate}
152
153 \func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
154 \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
155 \param{long}{ style = wxLC\_ICON}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listCtrl"}}
156
157 Creates the list control. See \helpref{wxListCtrl::wxListCtrl}{wxlistctrlconstr} for further details.
158
159 \membersection{wxListCtrl::DeleteAllItems}\label{wxlistctrldeleteallitems}
160
161 \func{bool}{DeleteAllItems}{}
162
163 Deletes all the items in the list control.
164
165 {\bf NB:} This function does {\it not} send the
166 {\tt wxEVT\_COMMAND\_LIST\_DELETE\_ITEM} event because deleting many items
167 from the control would be too slow then (unlike \helpref{DeleteItem}{wxlistctrldeleteitem}).
168
169 \membersection{wxListCtrl::DeleteColumn}\label{wxlistctrldeletecolumn}
170
171 \func{bool}{DeleteColumn}{\param{int }{col}}
172
173 Deletes a column.
174
175 \membersection{wxListCtrl::DeleteItem}\label{wxlistctrldeleteitem}
176
177 \func{bool}{DeleteItem}{\param{long }{item}}
178
179 Deletes the specified item. This function sends the
180 {\tt wxEVT\_COMMAND\_LIST\_DELETE\_ITEM} event for the item being deleted.
181
182 See also: \helpref{DeleteAllItems}{wxlistctrldeleteallitems}
183
184 \membersection{wxListCtrl::EditLabel}\label{wxlistctrledit}
185
186 \func{void}{EditLabel}{\param{long }{item}}
187
188 Starts editing the label of the given item. This function generates a
189 EVT\_LIST\_BEGIN\_LABEL\_EDIT event which can be vetoed so that no
190 text control will appear for in-place editing.
191
192 If the user changed the label (i.e. s/he does not press ESC or leave
193 the text control without changes, a EVT\_LIST\_END\_LABEL\_EDIT event
194 will be sent which can be vetoed as well.
195
196 \membersection{wxListCtrl::EnsureVisible}\label{wxlistctrlensurevisible}
197
198 \func{bool}{EnsureVisible}{\param{long }{item}}
199
200 Ensures this item is visible.
201
202 \membersection{wxListCtrl::FindItem}\label{wxlistctrlfinditem}
203
204 \func{long}{FindItem}{\param{long }{start}, \param{const wxString\& }{str}, \param{const bool }{partial = FALSE}}
205
206 Find an item whose label matches this string, starting from the item after {\it start} or
207 the beginning if {\it start} is -1.
208
209 \func{long}{FindItem}{\param{long }{start}, \param{long }{data}}
210
211 Find an item whose data matches this data, starting from the item after {\it start} or
212 the beginning if 'start' is -1.
213
214 \func{long}{FindItem}{\param{long }{start}, \param{const wxPoint\& }{pt}, \param{int }{direction}}
215
216 Find an item nearest this position in the specified direction, starting from
217 the item after {\it start} or the beginning if {\it start} is -1.
218
219 \pythonnote{In place of a single overloaded method name, wxPython
220 implements the following methods:\par
221 \indented{2cm}{\begin{twocollist}
222 \twocolitem{{\bf FindItem(start, str, partial=FALSE)}}{}
223 \twocolitem{{\bf FindItemData(start, data)}}{}
224 \twocolitem{{\bf FindItemAtPos(start, point, direction)}}{}
225 \end{twocollist}}
226 }
227
228 \membersection{wxListCtrl::GetColumn}\label{wxlistctrlgetcolumn}
229
230 \constfunc{bool}{GetColumn}{\param{int }{col}, \param{wxListItem\& }{item}}
231
232 Gets information about this column. See \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem} for more
233 information.
234
235 \membersection{wxListCtrl::GetColumnWidth}\label{wxlistctrlgetcolumnwidth}
236
237 \constfunc{int}{GetColumnWidth}{\param{int }{col}}
238
239 Gets the column width (report view only).
240
241 \membersection{wxListCtrl::GetCountPerPage}\label{wxlistctrlgetcountperpage}
242
243 \constfunc{int}{GetCountPerPage}{\void}
244
245 Gets the number of items that can fit vertically in the
246 visible area of the list control (list or report view)
247 or the total number of items in the list control (icon
248 or small icon view).
249
250 \membersection{wxListCtrl::GetEditControl}\label{wxlistctrlgeteditcontrol}
251
252 \constfunc{wxTextCtrl\&}{GetEditControl}{\void}
253
254 Gets the edit control for editing labels.
255
256 \membersection{wxListCtrl::GetImageList}\label{wxlistctrlgetimagelist}
257
258 \constfunc{wxImageList*}{GetImageList}{\param{int }{which}}
259
260 Returns the specified image list. {\it which} may be one of:
261
262 \twocolwidtha{5cm}
263 \begin{twocollist}\itemsep=0pt
264 \twocolitem{\windowstyle{wxIMAGE\_LIST\_NORMAL}}{The normal (large icon) image list.}
265 \twocolitem{\windowstyle{wxIMAGE\_LIST\_SMALL}}{The small icon image list.}
266 \twocolitem{\windowstyle{wxIMAGE\_LIST\_STATE}}{The user-defined state image list (unimplemented).}
267 \end{twocollist}
268
269 \membersection{wxListCtrl::GetItem}\label{wxlistctrlgetitem}
270
271 \constfunc{bool}{GetItem}{\param{wxListItem\& }{info}}
272
273 Gets information about the item. See \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem} for more
274 information.
275
276 You must call {\it info.SetId()} to the ID of item you're interested in
277 before calling this method.
278
279 \pythonnote{The wxPython version of this method takes an integer parameter
280 for the item ID, an optional integer for the column number, and
281 returns the wxListItem object.}
282
283 \membersection{wxListCtrl::GetItemCount}\label{wxlistctrlgetitemcount}
284
285 \constfunc{int}{GetItemCount}{\void}
286
287 Returns the number of items in the list control.
288
289 \membersection{wxListCtrl::GetItemData}\label{wxlistctrlgetitemdata}
290
291 \constfunc{long}{GetItemData}{\param{long }{item}}
292
293 Gets the application-defined data associated with this item.
294
295 \membersection{wxListCtrl::GetItemPosition}\label{wxlistctrlgetitemposition}
296
297 \constfunc{bool}{GetItemPosition}{\param{long }{item}, \param{wxPoint\& }{pos}}
298
299 Returns the position of the item, in icon or small icon view.
300
301 \pythonnote{The wxPython version of this method accepts only the item
302 ID and returns the wxPoint.}
303
304 \membersection{wxListCtrl::GetItemRect}\label{wxlistctrlgetitemrect}
305
306 \constfunc{bool}{GetItemRect}{\param{long }{item}, \param{wxRect\& }{rect}, \param{int }{code = wxLIST\_RECT\_BOUNDS}}
307
308 Returns the rectangle representing the item's size and position, in client coordinates.
309
310 {\it code} is one of wxLIST\_RECT\_BOUNDS, wxLIST\_RECT\_ICON, wxLIST\_RECT\_LABEL.
311
312 \pythonnote{The wxPython version of this method accepts only the item
313 ID and code and returns the wxRect.}
314
315 \membersection{wxListCtrl::GetItemSpacing}\label{wxlistctrlgetitemspacing}
316
317 \constfunc{int}{GetItemSpacing}{\param{bool }{isSmall}}
318
319 Retrieves the spacing between icons in pixels.
320 If {\it small} is TRUE, gets the spacing for the small icon
321 view, otherwise the large icon view.
322
323 \membersection{wxListCtrl::GetItemState}\label{wxlistctrlgetitemstate}
324
325 \constfunc{int}{GetItemState}{\param{long }{item}, \param{long }{stateMask}}
326
327 Gets the item state. For a list of state flags, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}.
328
329 The {\bf stateMask} indicates which state flags are of interest.
330
331 \membersection{wxListCtrl::GetItemText}\label{wxlistctrlgetitemtext}
332
333 \constfunc{wxString}{GetItemText}{\param{long }{item}}
334
335 Gets the item text for this item.
336
337 \membersection{wxListCtrl::GetNextItem}\label{wxlistctrlgetnextitem}
338
339 \constfunc{long}{GetNextItem}{\param{long }{item}, \param{int }{geometry = wxLIST\_NEXT\_ALL}, \param{int }{state = wxLIST\_STATE\_DONTCARE}}
340
341 Searches for an item with the given goemetry or state, starting from
342 {\it item} but excluding the {\it item} itself. If {\it item} is -1,
343 the first item that matches the specified flags will be returned.
344
345 Returns the first item with given state following {\it item} or -1 if
346 no such item found.
347
348 This function may be used to find all selected items in the control like this:
349
350 \begin{verbatim}
351 long item = -1;
352 for ( ;; )
353 {
354 item = listctrl->GetNextItem(item,
355 wxLIST_NEXT_ALL,
356 wxLIST_STATE_SELECTED);
357 if ( item == -1 )
358 break;
359
360 // this item is selected - do whatever is needed with it
361 wxLogMessage("Item %ld is selected."), item);
362 }
363 \end{verbatim}
364
365 {\it geometry} can be one of:
366
367 \twocolwidtha{5cm}
368 \begin{twocollist}\itemsep=0pt
369 \twocolitem{wxLIST\_NEXT\_ABOVE}{Searches for an item above the specified item.}
370 \twocolitem{wxLIST\_NEXT\_ALL}{Searches for subsequent item by index.}
371 \twocolitem{wxLIST\_NEXT\_BELOW}{Searches for an item below the specified item.}
372 \twocolitem{wxLIST\_NEXT\_LEFT}{Searches for an item to the left of the specified item.}
373 \twocolitem{wxLIST\_NEXT\_RIGHT}{Searches for an item to the right of the specified item.}
374 \end{twocollist}
375
376 {\bf NB:} this parameters is only supported by wxMSW currently and ignored on
377 other platforms.
378
379 {\it state} can be a bitlist of the following:
380
381 \twocolwidtha{5cm}
382 \begin{twocollist}\itemsep=0pt
383 \twocolitem{wxLIST\_STATE\_DONTCARE}{Don't care what the state is.}
384 \twocolitem{wxLIST\_STATE\_DROPHILITED}{The item indicates it is a drop target.}
385 \twocolitem{wxLIST\_STATE\_FOCUSED}{The item has the focus.}
386 \twocolitem{wxLIST\_STATE\_SELECTED}{The item is selected.}
387 \twocolitem{wxLIST\_STATE\_CUT}{The item is selected as part of a cut and paste operation.}
388 \end{twocollist}
389
390 \membersection{wxListCtrl::GetSelectedItemCount}\label{wxlistctrlgetselecteditemcount}
391
392 \constfunc{int}{GetSelectedItemCount}{\void}
393
394 Returns the number of selected items in the list control.
395
396 \membersection{wxListCtrl::GetTextColour}\label{wxlistctrlgettextcolour}
397
398 \constfunc{wxColour}{GetTextColour}{\void}
399
400 Gets the text colour of the list control.
401
402 \membersection{wxListCtrl::GetTopItem}\label{wxlistctrlgettopitem}
403
404 \constfunc{long}{GetTopItem}{\void}
405
406 Gets the index of the topmost visible item when in
407 list or report view.
408
409 \membersection{wxListCtrl::HitTest}\label{wxlistctrlhittest}
410
411 \func{long}{HitTest}{\param{const wxPoint\& }{point}, \param{int\& }{flags}}
412
413 Determines which item (if any) is at the specified point,
414 giving details in {\it flags}. {\it flags} will be a combination of the following flags:
415
416 \twocolwidtha{5cm}
417 \begin{twocollist}\itemsep=0pt
418 \twocolitem{wxLIST\_HITTEST\_ABOVE}{Above the client area.}
419 \twocolitem{wxLIST\_HITTEST\_BELOW}{Below the client area.}
420 \twocolitem{wxLIST\_HITTEST\_NOWHERE}{In the client area but below the last item.}
421 \twocolitem{wxLIST\_HITTEST\_ONITEMICON}{On the bitmap associated with an item.}
422 \twocolitem{wxLIST\_HITTEST\_ONITEMLABEL}{On the label (string) associated with an item.}
423 \twocolitem{wxLIST\_HITTEST\_ONITEMRIGHT}{In the area to the right of an item.}
424 \twocolitem{wxLIST\_HITTEST\_ONITEMSTATEICON}{On the state icon for a tree view item that is in a user-defined state.}
425 \twocolitem{wxLIST\_HITTEST\_TOLEFT}{To the right of the client area.}
426 \twocolitem{wxLIST\_HITTEST\_TORIGHT}{To the left of the client area.}
427 \twocolitem{wxLIST\_HITTEST\_ONITEM}{Combination of wxLIST\_HITTEST\_ONITEMICON, wxLIST\_HITTEST\_ONITEMLABEL,
428 wxLIST\_HITTEST\_ONITEMSTATEICON.}
429 \end{twocollist}
430
431 \pythonnote{A tuple of values is returned in the wxPython version of
432 this method. The first value is the item id and the second is the
433 flags value mentioned above.}
434
435 \membersection{wxListCtrl::InsertColumn}\label{wxlistctrlinsertcolumn}
436
437 \func{long}{InsertColumn}{\param{long }{col}, \param{wxListItem\& }{info}}
438
439 For list view mode (only), inserts a column. For more details, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}.
440
441 \func{long}{InsertColumn}{\param{long }{col}, \param{const wxString\& }{heading}, \param{int }{format = wxLIST\_FORMAT\_LEFT},\rtfsp
442 \param{int }{width = -1}}
443
444 For list view mode (only), inserts a column. For more details, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}.
445
446 \pythonnote{In place of a single overloaded method name, wxPython
447 implements the following methods:\par
448 \indented{2cm}{\begin{twocollist}
449 \twocolitem{{\bf InsertColumn(col, heading, format=wxLIST\_FORMAT\_LEFT,
450 width=-1)}}{Creates a column using a header string only.}
451 \twocolitem{{\bf InsertColumnInfo(col, item)}}{Creates a column using a
452 wxListInfo.}
453 \end{twocollist}}
454 }
455
456 \membersection{wxListCtrl::InsertItem}\label{wxlistctrlinsertitem}
457
458 \func{long}{InsertItem}{\param{wxListItem\& }{info}}
459
460 Inserts an item, returning the index of the new item if successful,
461 -1 otherwise.
462
463 \func{long}{InsertItem}{\param{long }{index}, \param{const wxString\& }{label}}
464
465 Inserts a string item.
466
467 \func{long}{InsertItem}{\param{long }{index}, \param{int }{imageIndex}}
468
469 Inserts an image item.
470
471 \func{long}{InsertItem}{\param{long }{index}, \param{const wxString\& }{label}, \param{int }{imageIndex}}
472
473 Insert an image/string item.
474
475 \wxheading{Parameters}
476
477 \docparam{info}{wxListItem object}
478
479 \docparam{index}{Index of the new item, supplied by the application}
480
481 \docparam{label}{String label}
482
483 \docparam{imageIndex}{index into the image list associated with this control and view style}
484
485 \pythonnote{In place of a single overloaded method name, wxPython
486 implements the following methods:\par
487 \indented{2cm}{\begin{twocollist}\itemsep=0pt
488 \twocolitem{{\bf InsertItem(item)}}{Inserts an item using a wxListItem.}
489 \twocolitem{{\bf InsertStringItem(index, label)}}{Inserts a string item.}
490 \twocolitem{{\bf InsertImageItem(index, imageIndex)}}{Inserts an image item.}
491 \twocolitem{{\bf InsertImageStringItem(index, label, imageIndex)}}{Insert an image/string item.}
492 \end{twocollist}}
493 }
494
495 \membersection{wxListCtrl::ScrollList}\label{wxlistctrlscrolllist}
496
497 \func{bool}{ScrollList}{\param{int }{dx}, \param{int }{dy}}
498
499 Scrolls the list control. If in icon, small icon or report view mode,
500 dx specifies the number of pixels to scroll. If in list view mode, dx
501 specifies the number of columns to scroll.
502
503 If in icon, small icon or list view mode, dy specifies the number of pixels
504 to scroll. If in report view mode, dy specifies the number of lines to scroll.
505
506 \membersection{wxListCtrl::SetBackgroundColour}\label{wxlistctrlsetbackgroundcolour}
507
508 \func{void}{SetBackgroundColour}{\param{const wxColour\& }{col}}
509
510 Sets the background colour (GetBackgroundColour already implicit in
511 wxWindow class).
512
513 \membersection{wxListCtrl::SetColumn}\label{wxlistctrlsetcolumn}
514
515 \func{bool}{SetColumn}{\param{int }{col}, \param{wxListItem\& }{item}}
516
517 Sets information about this column. See \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem} for more
518 information.
519
520 \membersection{wxListCtrl::SetColumnWidth}\label{wxlistctrlsetcolumnwidth}
521
522 \func{bool}{SetColumnWidth}{\param{int }{col}, \param{int }{width}}
523
524 Sets the column width.
525
526 {\it width} can be a width in pixels or wxLIST\_AUTOSIZE (-1) or wxLIST\_AUTOSIZE\_USEHEADER (-2).
527 wxLIST\_AUTOSIZE will resize the column to the length of its longest item. wxLIST\_AUTOSIZE\_USEHEADER
528 will resize the column to the length of the header (Win32) or 80 pixels (other platforms).
529
530 In small or normal icon view, {\it col} must be -1, and the column width is set for all columns.
531
532 \membersection{wxListCtrl::SetImageList}\label{wxlistctrlsetimagelist}
533
534 \func{void}{SetImageList}{\param{wxImageList*}{ imageList}, \param{int }{which}}
535
536 Sets the image list associated with the control. {\it which} is one of
537 wxIMAGE\_LIST\_NORMAL, wxIMAGE\_LIST\_SMALL, wxIMAGE\_LIST\_STATE (the last is unimplemented).
538
539 This method does not take ownership of the image list, you have to
540 delete it yourself.
541
542 \wxheading{See also}
543
544 \helpref{wxListCtrl::AssignImageList}{wxlistctrlassignimagelist}
545
546
547 \membersection{wxListCtrl::SetItem}\label{wxlistctrlsetitem}
548
549 \func{bool}{SetItem}{\param{wxListItem\& }{info}}
550
551 \func{long}{SetItem}{\param{long }{index}, \param{int }{col}, \param{const }{wxString\& label}, \param{int }{imageId = -1}}
552
553 Sets information about the item.
554
555 wxListItem is a class with the following members:
556
557 \twocolwidtha{5cm}
558 \begin{twocollist}\itemsep=0pt
559 \twocolitem{long m\_mask}{Indicates which fields are valid. See the list of valid mask flags below.}
560 \twocolitem{long m\_itemId}{The zero-based item position.}
561 \twocolitem{int m\_col}{Zero-based column, if in report mode.}
562 \twocolitem{long m\_state}{The state of the item. See the list of valid state flags below.}
563 \twocolitem{long m\_stateMask}{A mask indicating which state flags are valid. See the list of valid state flags below.}
564 \twocolitem{wxString m\_text}{The label/header text.}
565 \twocolitem{int m\_image}{The zero-based index into an image list.}
566 \twocolitem{long m\_data}{Application-defined data.}
567 \twocolitem{int m\_format}{For columns only: the format. Can be wxLIST\_FORMAT\_LEFT, wxLIST\_FORMAT\_RIGHT or
568 wxLIST\_FORMAT\_CENTRE.}
569 \twocolitem{int m\_width}{For columns only: the column width.}
570 \end{twocollist}
571
572 The {\bf m\_mask} member contains a bitlist specifying which of the other fields are valid. The flags are:
573
574 \twocolwidtha{5cm}
575 \begin{twocollist}\itemsep=0pt
576 \twocolitem{wxLIST\_MASK\_STATE}{The {\bf m\_state} field is valid.}
577 \twocolitem{wxLIST\_MASK\_TEXT}{The {\bf m\_text} field is valid.}
578 \twocolitem{wxLIST\_MASK\_IMAGE}{The {\bf m\_image} field is valid.}
579 \twocolitem{wxLIST\_MASK\_DATA}{The {\bf m\_data} field is valid.}
580 \twocolitem{wxLIST\_MASK\_WIDTH}{The {\bf m\_width} field is valid.}
581 \twocolitem{wxLIST\_MASK\_FORMAT}{The {\bf m\_format} field is valid.}
582 \end{twocollist}
583
584 The {\bf m\_stateMask} and {\bf m\_state} members take flags from the following:
585
586 The wxListItem object can also contain item-specific colour and font
587 information: for this you need to call one of SetTextColour(),
588 SetBackgroundColour() or SetFont() functions on it passing it the colour/font
589 to use. If the colour/font is not specified, the default list control
590 colour/font is used.
591
592 \twocolwidtha{5cm}
593 \begin{twocollist}\itemsep=0pt
594 \twocolitem{wxLIST\_STATE\_DONTCARE}{Don't care what the state is. Win32 only. }
595 \twocolitem{wxLIST\_STATE\_DROPHILITED}{The item is highlighted to receive a drop event. Win32 only. }
596 \twocolitem{wxLIST\_STATE\_FOCUSED}{The item has the focus.}
597 \twocolitem{wxLIST\_STATE\_SELECTED}{The item is selected.}
598 \twocolitem{wxLIST\_STATE\_CUT}{The item is in the cut state. Win32 only. }
599 \end{twocollist}
600
601 \func{long}{SetItem}{\param{long }{index}, \param{int }{col}, \param{const wxString\& }{label}, \param{int }{imageId = -1}}
602
603 Sets a string field at a particular column.
604
605 \pythonnote{In place of a single overloaded method name, wxPython
606 implements the following methods:\par
607 \indented{2cm}{\begin{twocollist}
608 \twocolitem{{\bf SetItem(item)}}{Sets information about the given wxListItem.}
609 \twocolitem{{\bf SetStringItem(index, col, label, imageId)}}{Sets a
610 string or image at a given location.}
611 \end{twocollist}}
612 }
613
614 \membersection{wxListCtrl::SetItemData}\label{wxlistctrlsetitemdata}
615
616 \func{bool}{SetItemData}{\param{long }{item}, \param{long }{data}}
617
618 Associates application-defined data with this item.
619
620 \membersection{wxListCtrl::SetItemImage}\label{wxlistctrlsetitemimage}
621
622 \func{bool}{SetItemImage}{\param{long }{item}, \param{int }{image}, \param{int }{selImage}}
623
624 Sets the unselected and selected images associated with the item. The images are indices into the
625 image list associated with the list control.
626
627 \membersection{wxListCtrl::SetItemPosition}\label{wxlistctrlsetitemposition}
628
629 \func{bool}{SetItemPosition}{\param{long }{item}, \param{const wxPoint\& }{pos}}
630
631 Sets the position of the item, in icon or small icon view.
632
633 \membersection{wxListCtrl::SetItemState}\label{wxlistctrlsetitemstate}
634
635 \func{bool}{SetItemState}{\param{long }{item}, \param{long }{state}, \param{long }{stateMask}}
636
637 Sets the item state. For a list of state flags, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}.
638
639 The {\bf stateMask} indicates which state flags are valid.
640
641 \membersection{wxListCtrl::SetItemText}\label{wxlistctrlsetitemtext}
642
643 \func{void}{SetItemText}{\param{long }{item}, \param{const wxString\& }{text}}
644
645 Sets the item text for this item.
646
647 \membersection{wxListCtrl::SetSingleStyle}\label{wxlistctrlsetsinglestyle}
648
649 \func{void}{SetSingleStyle}{\param{long }{style}, \param{const bool }{add = TRUE}}
650
651 Adds or removes a single window style.
652
653 \membersection{wxListCtrl::SetTextColour}\label{wxlistctrlsettextcolour}
654
655 \func{void}{SetTextColour}{\param{const wxColour\& }{col}}
656
657 Sets the text colour of the list control.
658
659 \membersection{wxListCtrl::SetWindowStyleFlag}\label{wxlistctrlsetwindowstyleflag}
660
661 \func{void}{SetWindowStyleFlag}{\param{long }{style}}
662
663 Sets the whole window style.
664
665 \membersection{wxListCtrl::SortItems}\label{wxlistctrlsortitems}
666
667 \func{bool}{SortItems}{\param{wxListCtrlCompare }{fnSortCallBack}, \param{long }{data}}
668
669 Call this function to sort the items in the list control. Sorting is done
670 using the specified {\it fnSortCallBack} function. This function must have the
671 following prototype:
672
673 \begin{verbatim}
674 int wxCALLBACK wxListCompareFunction(long item1, long item2, long sortData)
675 \end{verbatim}
676
677 It is called each time when the two items must be compared and should return 0
678 if the items are equal, negative value if the first item is less than the
679 second one and positive value if the first one is greater than the second one
680 (the same convention as used by {\tt qsort(3)}).
681
682 \wxheading{Parameters}
683
684 \docparam{item1}{client data associated with the first item ({\bf NOT} the index).}
685
686 \docparam{item2}{client data associated with the second item ({\bf NOT} the index).}
687
688 \docparam{data}{the value passed to SortItems() itself.}
689
690 Notice that the control may only be sorted on client data associated with the
691 items, so you {\bf must} use \helpref{SetItemData}{wxlistctrlsetitemdata} if
692 you want to be able to sort the items in the control.
693
694 Please see the \helpref{listctrl sample}{samplelistctrl} for an example of
695 using this function.
696
697 \pythonnote{wxPython uses the sortData parameter to pass the Python
698 function to call, so it is not available for programmer use. Call
699 SortItems with a reference to a callable object that expects two
700 parameters.}
701