]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/listctrl.tex
added support for alpha channel to wxColour to/from string conversion functions ...
[wxWidgets.git] / docs / latex / wx / listctrl.tex
CommitLineData
65de19d8
WS
1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2%% Name: listctrl.tex
3%% Purpose: wxListCtrl docs
4%% Author:
5%% Modified by:
6%% Created:
7%% RCS-ID: $Id$
8%% Copyright: (c) wxWidgets
9%% License: wxWindows license
10%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11
a660d684
KB
12\section{\class{wxListCtrl}}\label{wxlistctrl}
13
963863ad
VZ
14A list control presents lists in a number of formats: list view, report view,
15icon view and small icon view. In any case, elements are numbered from zero.
614391dc
VZ
16For all these modes, the items are stored in the control and must be added to
17it using \helpref{InsertItem}{wxlistctrlinsertitem} method.
18
19A special case of report view quite different from the other modes of the list
20control is a virtual control in which the items data (including text, images
21and attributes) is managed by the main program and is requested by the control
22itself only when needed which allows to have controls with millions of items
52f2ad08
WS
23without consuming much memory. To use virtual list control you must use
24\helpref{SetItemCount}{wxlistctrlsetitemcount} first and overload at least
25\helpref{OnGetItemText}{wxlistctrlongetitemtext} (and optionally
208458a7 26\helpref{OnGetItemImage}{wxlistctrlongetitemimage} or \helpref{OnGetItemColumnImage}{wxlistctrlongetitemcolumnimage} and
614391dc 27\helpref{OnGetItemAttr}{wxlistctrlongetitemattr}) to return the information
2b5f62a0
VZ
28about the items when the control requests it. Virtual list control can be used
29as a normal one except that no operations which can take time proportional to
30the number of items in the control happen -- this is required to allow having a
31practically infinite number of items. For example, in a multiple selection
32virtual list control, the selections won't be sent when many items are selected
33at once because this could mean iterating over all the items.
614391dc
VZ
34
35Using many of wxListCtrl features is shown in the
963863ad
VZ
36\helpref{corresponding sample}{samplelistctrl}.
37
38To intercept events from a list control, use the event table macros described
39in \helpref{wxListEvent}{wxlistevent}.
a660d684 40
da97b260
KO
41{\bf Mac Note:} Starting with 2.8, wxListCtrl uses a native implementation for
42report mode, and uses a generic implementation for other modes. You can use the
0bddba44
VZ
43generic implementation for report mode as well by setting the
44mac.listctrl.always\_use\_generic \helpref{wxSystemOption}{wxsystemoptions} to
451.
da97b260 46
a660d684
KB
47\wxheading{Derived from}
48
49\helpref{wxControl}{wxcontrol}\\
50\helpref{wxWindow}{wxwindow}\\
51\helpref{wxEvtHandler}{wxevthandler}\\
52\helpref{wxObject}{wxobject}
53
954b8ae6
JS
54\wxheading{Include files}
55
56<wx/listctrl.h>
57
a660d684
KB
58\wxheading{Window styles}
59
f7ba097d 60\twocolwidtha{7cm}
a660d684 61\begin{twocollist}\itemsep=0pt
32025be9 62\twocolitem{\windowstyle{wxLC\_LIST}}{Multicolumn list view, with optional small icons.
a660d684
KB
63Columns are computed automatically, i.e. you don't set columns as in wxLC\_REPORT. In other words,
64the list wraps, unlike a wxListBox.}
32025be9
JS
65\twocolitem{\windowstyle{wxLC\_REPORT}}{Single or multicolumn report view, with optional header.}
66\twocolitem{\windowstyle{wxLC\_VIRTUAL}}{The application provides items text on demand. May only be used with wxLC\_REPORT.}
a660d684
KB
67\twocolitem{\windowstyle{wxLC\_ICON}}{Large icon view, with optional labels.}
68\twocolitem{\windowstyle{wxLC\_SMALL\_ICON}}{Small icon view, with optional labels.}
0180dad6
RR
69\twocolitem{\windowstyle{wxLC\_ALIGN\_TOP}}{Icons align to the top. Win32 default, Win32 only. }
70\twocolitem{\windowstyle{wxLC\_ALIGN\_LEFT}}{Icons align to the left. }
71\twocolitem{\windowstyle{wxLC\_AUTOARRANGE}}{Icons arrange themselves. Win32 only. }
a660d684 72\twocolitem{\windowstyle{wxLC\_EDIT\_LABELS}}{Labels are editable: the application will be notified when editing starts.}
db4e73c6
VZ
73\twocolitem{\windowstyle{wxLC\_NO\_HEADER}}{No header in report mode. }
74\twocolitem{\windowstyle{wxLC\_SINGLE\_SEL}}{Single selection (default is multiple).}
a660d684
KB
75\twocolitem{\windowstyle{wxLC\_SORT\_ASCENDING}}{Sort in ascending order (must still supply a comparison callback in SortItems.}
76\twocolitem{\windowstyle{wxLC\_SORT\_DESCENDING}}{Sort in descending order (must still supply a comparison callback in SortItems.}
b96340e6
JS
77\twocolitem{\windowstyle{wxLC\_HRULES}}{Draws light horizontal rules between rows in report mode.}
78\twocolitem{\windowstyle{wxLC\_VRULES}}{Draws light vertical rules between columns in report mode.}
a660d684
KB
79\end{twocollist}
80
81See also \helpref{window styles overview}{windowstyles}.
82
5de76427
JS
83\wxheading{Event handling}
84
85To process input from a list control, use these event handler macros to direct input to member
86functions that take a \helpref{wxListEvent}{wxlistevent} argument.
87
88\twocolwidtha{7cm}
89\begin{twocollist}\itemsep=0pt
90\twocolitem{{\bf EVT\_LIST\_BEGIN\_DRAG(id, func)}}{Begin dragging with the left mouse button.}
91\twocolitem{{\bf EVT\_LIST\_BEGIN\_RDRAG(id, func)}}{Begin dragging with the right mouse button.}
fd128b0c
RR
92\twocolitem{{\bf EVT\_LIST\_BEGIN\_LABEL\_EDIT(id, func)}}{Begin editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.}
93\twocolitem{{\bf EVT\_LIST\_END\_LABEL\_EDIT(id, func)}}{Finish editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.}
5de76427
JS
94\twocolitem{{\bf EVT\_LIST\_DELETE\_ITEM(id, func)}}{Delete an item.}
95\twocolitem{{\bf EVT\_LIST\_DELETE\_ALL\_ITEMS(id, func)}}{Delete all items.}
11358d39
VZ
96%\twocolitem{{\bf EVT\_LIST\_GET\_INFO(id, func)}}{Request information from the application, usually the item text.}
97%\twocolitem{{\bf EVT\_LIST\_SET\_INFO(id, func)}}{Information is being supplied (not implemented).}
5de76427
JS
98\twocolitem{{\bf EVT\_LIST\_ITEM\_SELECTED(id, func)}}{The item has been selected.}
99\twocolitem{{\bf EVT\_LIST\_ITEM\_DESELECTED(id, func)}}{The item has been deselected.}
8b17ba72 100\twocolitem{{\bf EVT\_LIST\_ITEM\_ACTIVATED(id, func)}}{The item has been activated (ENTER or double click).}
0ddefeb0 101\twocolitem{{\bf EVT\_LIST\_ITEM\_FOCUSED(id, func)}}{The currently focused item has changed.}
c229e50d
JS
102\twocolitem{{\bf EVT\_LIST\_ITEM\_MIDDLE\_CLICK(id, func)}}{The middle mouse button has been clicked on an item.}
103\twocolitem{{\bf EVT\_LIST\_ITEM\_RIGHT\_CLICK(id, func)}}{The right mouse button has been clicked on an item.}
5de76427
JS
104\twocolitem{{\bf EVT\_LIST\_KEY\_DOWN(id, func)}}{A key has been pressed.}
105\twocolitem{{\bf EVT\_LIST\_INSERT\_ITEM(id, func)}}{An item has been inserted.}
106\twocolitem{{\bf EVT\_LIST\_COL\_CLICK(id, func)}}{A column ({\bf m\_col}) has been left-clicked.}
11358d39
VZ
107\twocolitem{{\bf EVT\_LIST\_COL\_RIGHT\_CLICK(id, func)}}{A column ({\bf m\_col}) has been right-clicked.}
108\twocolitem{{\bf EVT\_LIST\_COL\_BEGIN\_DRAG(id, func)}}{The user started resizing a column - can be vetoed.}
109\twocolitem{{\bf EVT\_LIST\_COL\_DRAGGING(id, func)}}{The divider between columns is being dragged.}
110\twocolitem{{\bf EVT\_LIST\_COL\_END\_DRAG(id, func)}}{A column has been resized by the user.}
614391dc 111\twocolitem{{\bf EVT\_LIST\_CACHE\_HINT(id, func)}}{Prepare cache for a virtual list control}
5de76427
JS
112\end{twocollist}%
113
a660d684
KB
114\wxheading{See also}
115
ae3cd595
MR
116\helpref{wxListCtrl overview}{wxlistctrloverview}, \helpref{wxListView}{wxlistview}, \helpref{wxListBox}{wxlistbox},\rtfsp
117\helpref{wxTreeCtrl}{wxtreectrl}, \helpref{wxImageList}{wximagelist}, \helpref{wxListEvent}{wxlistevent},
08a87680 118\helpref{wxListItem}{wxlistitem}
a660d684
KB
119
120\latexignore{\rtfignore{\wxheading{Members}}}
121
97c611f8 122
f0e8a2d0 123\membersection{wxListCtrl::wxListCtrl}\label{wxlistctrlctor}
a660d684
KB
124
125\func{}{wxListCtrl}{\void}
126
127Default constructor.
128
eaaa6a06 129\func{}{wxListCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
a660d684 130\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
52f2ad08 131\param{long}{ style = wxLC\_ICON}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = wxListCtrlNameStr}}
a660d684
KB
132
133Constructor, creating and showing a list control.
134
135\wxheading{Parameters}
136
137\docparam{parent}{Parent window. Must not be NULL.}
138
139\docparam{id}{Window identifier. A value of -1 indicates a default value.}
140
141\docparam{pos}{Window position.}
142
143\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized
144appropriately.}
145
146\docparam{style}{Window style. See \helpref{wxListCtrl}{wxlistctrl}.}
147
148\docparam{validator}{Window validator.}
149
150\docparam{name}{Window name.}
151
152\wxheading{See also}
153
154\helpref{wxListCtrl::Create}{wxlistctrlcreate}, \helpref{wxValidator}{wxvalidator}
155
97c611f8 156
f0e8a2d0 157\membersection{wxListCtrl::\destruct{wxListCtrl}}\label{wxlistctrldtor}
a660d684
KB
158
159\func{void}{\destruct{wxListCtrl}}{\void}
160
161Destructor, destroying the list control.
162
97c611f8 163
a660d684
KB
164\membersection{wxListCtrl::Arrange}\label{wxlistctrlarrange}
165
eaaa6a06 166\func{bool}{Arrange}{\param{int }{flag = wxLIST\_ALIGN\_DEFAULT}}
a660d684 167
0180dad6 168Arranges the items in icon or small icon view. This only has effect on Win32. {\it flag} is one of:
a660d684
KB
169
170\twocolwidtha{5cm}
171\begin{twocollist}\itemsep=0pt
172\twocolitem{wxLIST\_ALIGN\_DEFAULT}{Default alignment.}
173\twocolitem{wxLIST\_ALIGN\_LEFT}{Align to the left side of the control.}
174\twocolitem{wxLIST\_ALIGN\_TOP}{Align to the top side of the control.}
175\twocolitem{wxLIST\_ALIGN\_SNAP\_TO\_GRID}{Snap to grid.}
176\end{twocollist}
177
97c611f8 178
2e12c11a
VS
179\membersection{wxListCtrl::AssignImageList}\label{wxlistctrlassignimagelist}
180
181\func{void}{AssignImageList}{\param{wxImageList*}{ imageList}, \param{int }{which}}
182
52f2ad08 183Sets the image list associated with the control and
2e12c11a
VS
184takes ownership of it (i.e. the control will, unlike when using
185SetImageList, delete the list when destroyed). {\it which} is one of
186wxIMAGE\_LIST\_NORMAL, wxIMAGE\_LIST\_SMALL, wxIMAGE\_LIST\_STATE (the last is unimplemented).
187
188\wxheading{See also}
189
190\helpref{wxListCtrl::SetImageList}{wxlistctrlsetimagelist}
191
97c611f8 192
8b17ba72
RR
193\membersection{wxListCtrl::ClearAll}\label{wxlistctrlclearall}
194
195\func{void}{ClearAll}{}
196
197Deletes all items and all columns.
198
97c611f8 199
70b62288
GT
200\membersection{wxListCtrl::Create}\label{wxlistctrlcreate}
201
202\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
203\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
52f2ad08 204\param{long}{ style = wxLC\_ICON}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = wxListCtrlNameStr}}
70b62288 205
f0e8a2d0 206Creates the list control. See \helpref{wxListCtrl::wxListCtrl}{wxlistctrlctor} for further details.
70b62288 207
97c611f8 208
a660d684
KB
209\membersection{wxListCtrl::DeleteAllItems}\label{wxlistctrldeleteallitems}
210
8b17ba72 211\func{bool}{DeleteAllItems}{}
a660d684 212
4e43c815 213Deletes all items in the list control.
a660d684 214
aa9fb2be 215{\bf NB:} This function does {\it not} send the
bffa1c77 216{\tt wxEVT\_COMMAND\_LIST\_DELETE\_ITEM} event because deleting many items
fa482912 217from the control would be too slow then (unlike \helpref{DeleteItem}{wxlistctrldeleteitem}).
bffa1c77 218
97c611f8 219
a660d684
KB
220\membersection{wxListCtrl::DeleteColumn}\label{wxlistctrldeletecolumn}
221
eaaa6a06 222\func{bool}{DeleteColumn}{\param{int }{col}}
a660d684
KB
223
224Deletes a column.
225
97c611f8 226
2c8c812f
GT
227\membersection{wxListCtrl::DeleteItem}\label{wxlistctrldeleteitem}
228
229\func{bool}{DeleteItem}{\param{long }{item}}
230
231Deletes the specified item. This function sends the
232{\tt wxEVT\_COMMAND\_LIST\_DELETE\_ITEM} event for the item being deleted.
233
234See also: \helpref{DeleteAllItems}{wxlistctrldeleteallitems}
235
97c611f8 236
86f975a8 237\membersection{wxListCtrl::EditLabel}\label{wxlistctrledit}
a660d684 238
fd128b0c 239\func{void}{EditLabel}{\param{long }{item}}
a660d684 240
fd128b0c
RR
241Starts editing the label of the given item. This function generates a
242EVT\_LIST\_BEGIN\_LABEL\_EDIT event which can be vetoed so that no
243text control will appear for in-place editing.
86f975a8 244
fd128b0c 245If the user changed the label (i.e. s/he does not press ESC or leave
76e1c2de 246the text control without changes, a EVT\_LIST\_END\_LABEL\_EDIT event
fd128b0c 247will be sent which can be vetoed as well.
a660d684 248
97c611f8 249
a660d684
KB
250\membersection{wxListCtrl::EnsureVisible}\label{wxlistctrlensurevisible}
251
eaaa6a06 252\func{bool}{EnsureVisible}{\param{long }{item}}
a660d684
KB
253
254Ensures this item is visible.
255
97c611f8 256
a660d684
KB
257\membersection{wxListCtrl::FindItem}\label{wxlistctrlfinditem}
258
75d9e502 259\func{long}{FindItem}{\param{long }{start}, \param{const wxString\& }{str}, \param{bool }{partial = false}}
a660d684 260
055898b8 261Find an item whose label matches this string, starting from {\it start} or
23739465
RR
262the beginning if {\it start} is -1. The string comparison is case
263insensitive. If {\it partial} is true then this method will look for
264items which begin with {\it str}.
a660d684 265
eaaa6a06 266\func{long}{FindItem}{\param{long }{start}, \param{long }{data}}
a660d684 267
055898b8 268Find an item whose data matches this data, starting from {\it start} or
a660d684
KB
269the beginning if 'start' is -1.
270
eaaa6a06 271\func{long}{FindItem}{\param{long }{start}, \param{const wxPoint\& }{pt}, \param{int }{direction}}
a660d684 272
52f2ad08 273Find an item nearest this position in the specified direction, starting from
055898b8 274{\it start} or the beginning if {\it start} is -1.
a660d684 275
21f280f4
RD
276\pythonnote{In place of a single overloaded method name, wxPython
277implements the following methods:\par
278\indented{2cm}{\begin{twocollist}
cc81d32f 279\twocolitem{{\bf FindItem(start, str, partial=false)}}{}
c9110876
VS
280\twocolitem{{\bf FindItemData(start, data)}}{}
281\twocolitem{{\bf FindItemAtPos(start, point, direction)}}{}
21f280f4
RD
282\end{twocollist}}
283}
284
f3539882
VZ
285\perlnote{In wxPerl there are three methods instead of a single overloaded
286method:\par
287\indented{2cm}{\begin{twocollist}
cc81d32f 288\twocolitem{{\bf FindItem( start, str, partial = false ) }}{}
f3539882
VZ
289\twocolitem{{\bf FindItemData( start, data ) }}{}
290\twocolitem{{\bf FindItemAtPos( start, point, direction )}}{}
291\end{twocollist}
292}}
293
97c611f8 294
a660d684
KB
295\membersection{wxListCtrl::GetColumn}\label{wxlistctrlgetcolumn}
296
eaaa6a06 297\constfunc{bool}{GetColumn}{\param{int }{col}, \param{wxListItem\& }{item}}
a660d684
KB
298
299Gets information about this column. See \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem} for more
300information.
301
f3539882
VZ
302\perlnote{In wxPerl this method takes only the {\bf col} parameter and
303 returns a Wx::ListItem ( or undef ).}
304
97c611f8 305
62d3ee70
MB
306\membersection{wxListCtrl::GetColumnCount}\label{wxlistctrlgetcolumncount}
307
308\constfunc{int}{GetColumnCount}{\void}
309
310Returns the number of columns.
311
97c611f8 312
a660d684
KB
313\membersection{wxListCtrl::GetColumnWidth}\label{wxlistctrlgetcolumnwidth}
314
eaaa6a06 315\constfunc{int}{GetColumnWidth}{\param{int }{col}}
a660d684
KB
316
317Gets the column width (report view only).
318
97c611f8 319
a660d684
KB
320\membersection{wxListCtrl::GetCountPerPage}\label{wxlistctrlgetcountperpage}
321
322\constfunc{int}{GetCountPerPage}{\void}
323
324Gets the number of items that can fit vertically in the
325visible area of the list control (list or report view)
326or the total number of items in the list control (icon
327or small icon view).
328
97c611f8 329
a660d684
KB
330\membersection{wxListCtrl::GetEditControl}\label{wxlistctrlgeteditcontrol}
331
513e0cea 332\constfunc{wxTextCtrl *}{GetEditControl}{\void}
a660d684 333
513e0cea
VZ
334Returns the edit control being currently used to edit a label. Returns {\tt NULL}
335if no label is being edited.
336
31a7f7c5
RR
337{\bf NB:} It is currently only implemented for wxMSW and the generic version,
338not for the native Mac OS X version.
a660d684 339
97c611f8 340
a660d684
KB
341\membersection{wxListCtrl::GetImageList}\label{wxlistctrlgetimagelist}
342
eaaa6a06 343\constfunc{wxImageList*}{GetImageList}{\param{int }{which}}
a660d684
KB
344
345Returns the specified image list. {\it which} may be one of:
346
347\twocolwidtha{5cm}
348\begin{twocollist}\itemsep=0pt
349\twocolitem{\windowstyle{wxIMAGE\_LIST\_NORMAL}}{The normal (large icon) image list.}
350\twocolitem{\windowstyle{wxIMAGE\_LIST\_SMALL}}{The small icon image list.}
351\twocolitem{\windowstyle{wxIMAGE\_LIST\_STATE}}{The user-defined state image list (unimplemented).}
352\end{twocollist}
353
97c611f8 354
a660d684
KB
355\membersection{wxListCtrl::GetItem}\label{wxlistctrlgetitem}
356
357\constfunc{bool}{GetItem}{\param{wxListItem\& }{info}}
358
359Gets information about the item. See \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem} for more
360information.
361
1ddfb726 362You must call {\it info.SetId()} to the ID of item you're interested in
e5aff4c5
VS
363before calling this method.
364
76e1c2de 365\pythonnote{The wxPython version of this method takes an integer parameter
f6bcfd97 366for the item ID, an optional integer for the column number, and
1ddfb726 367returns the wxListItem object.}
21f280f4 368
f3539882
VZ
369\perlnote{In wxPerl this method takes as parameter the {\bf ID} of the item
370and ( optionally ) the column, and returns a Wx::ListItem object.}
371
97c611f8
VZ
372
373\membersection{wxListCtrl::GetItemBackgroundColour}\label{wxlistctrlgetitembackgroundcolour}
374
375\constfunc{wxColour}{GetItemBackgroundColour}{\param{long }{item}}
376
377Returns the colour for this item. If the item has no specific colour, returns
378an invalid colour (and not the default background control of the control
379itself).
380
381\wxheading{See also}
382
383\helpref{GetItemTextColour}{wxlistctrlgetitemtextcolour}
384
385
70b62288
GT
386\membersection{wxListCtrl::GetItemCount}\label{wxlistctrlgetitemcount}
387
388\constfunc{int}{GetItemCount}{\void}
389
390Returns the number of items in the list control.
391
97c611f8 392
a660d684
KB
393\membersection{wxListCtrl::GetItemData}\label{wxlistctrlgetitemdata}
394
eaaa6a06 395\constfunc{long}{GetItemData}{\param{long }{item}}
a660d684
KB
396
397Gets the application-defined data associated with this item.
398
97c611f8 399
35c2acd4
MW
400\membersection{wxListCtrl::GetItemFont}\label{wxlistctrlgetitemfont}
401
402\constfunc{wxFont}{GetItemFont}{\param{long }{item}}
403
404Returns the item's font.
405
406
a660d684
KB
407\membersection{wxListCtrl::GetItemPosition}\label{wxlistctrlgetitemposition}
408
eaaa6a06 409\constfunc{bool}{GetItemPosition}{\param{long }{item}, \param{wxPoint\& }{pos}}
a660d684
KB
410
411Returns the position of the item, in icon or small icon view.
412
b456d571 413\pythonnote{The wxPython version of this method accepts only the item
21f280f4
RD
414ID and returns the wxPoint.}
415
f3539882
VZ
416\perlnote{In wxPerl this method takes only the {\bf item} parameter and
417returns a Wx::Point ( or undef ).}
418
97c611f8 419
a660d684
KB
420\membersection{wxListCtrl::GetItemRect}\label{wxlistctrlgetitemrect}
421
eaaa6a06 422\constfunc{bool}{GetItemRect}{\param{long }{item}, \param{wxRect\& }{rect}, \param{int }{code = wxLIST\_RECT\_BOUNDS}}
a660d684 423
adfa6f1a
VZ
424Returns the rectangle representing the item's size and position, in physical
425coordinates.
a660d684
KB
426
427{\it code} is one of wxLIST\_RECT\_BOUNDS, wxLIST\_RECT\_ICON, wxLIST\_RECT\_LABEL.
428
b456d571 429\pythonnote{The wxPython version of this method accepts only the item
aa9fb2be 430ID and code and returns the wxRect.}
21f280f4 431
f3539882 432\perlnote{In wxPerl this method takes only the {\bf item} parameter and
2edb0bde 433returns a Wx::Rect ( or undef ).}
f3539882 434
5db8d758 435
97c611f8 436
164a7972
VZ
437\membersection{wxListCtrl::GetSubItemRect}\label{wxlistctrlgetsubitemrect}
438
439\constfunc{bool}{GetSubItemRect}{\param{long }{item}, \param{long }{subItem}, \param{wxRect\& }{rect}, \param{int }{code = wxLIST\_RECT\_BOUNDS}}
440
441Returns the rectangle representing the size and position, in physical
442coordinates, of the given subitem, i.e. the part of the row \arg{item} in the
443column \arg{subItem}.
444
445This method is only meaningfull when the wxListCtrl is in the report mode. If
446\arg{subItem} parameter is equal to the special value
447\texttt{wxLIST\_GETSUBITEMRECT\_WHOLEITEM} the return value is the same as
448for \helpref{GetItemRect}{wxlistctrlgetitemrect}.
449
450\arg{code} can be one of \texttt{wxLIST\_RECT\_BOUNDS},
451\texttt{wxLIST\_RECT\_ICON} or \texttt{wxLIST\_RECT\_LABEL}.
452
a4f7b480 453\newsince{2.7.0}
164a7972
VZ
454
455
a660d684
KB
456\membersection{wxListCtrl::GetItemSpacing}\label{wxlistctrlgetitemspacing}
457
5db8d758
VZ
458\constfunc{wxSize}{GetItemSpacing}{\void}
459
460Retrieves the spacing between icons in pixels: horizontal spacing is returned
461as \texttt{x} component of the \helpref{wxSize}{wxsize} object and the vertical
462spacing as its \texttt{y} component.
a660d684 463
a660d684 464
97c611f8 465
70b62288
GT
466\membersection{wxListCtrl::GetItemState}\label{wxlistctrlgetitemstate}
467
468\constfunc{int}{GetItemState}{\param{long }{item}, \param{long }{stateMask}}
469
470Gets the item state. For a list of state flags, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}.
471
472The {\bf stateMask} indicates which state flags are of interest.
473
97c611f8 474
a660d684
KB
475\membersection{wxListCtrl::GetItemText}\label{wxlistctrlgetitemtext}
476
eaaa6a06 477\constfunc{wxString}{GetItemText}{\param{long }{item}}
a660d684
KB
478
479Gets the item text for this item.
480
97c611f8
VZ
481
482\membersection{wxListCtrl::GetItemTextColour}\label{wxlistctrlgetitemtextcolour}
483
484\constfunc{wxColour}{GetItemTextColour}{\param{long }{item}}
485
486Returns the colour for this item. If the item has no specific colour, returns
487an invalid colour (and not the default foreground control of the control itself
488as this wouldn't allow distinguishing between items having the same colour as
489the current control foreground and items with default colour which, hence, have
490always the same colour as the control).
491
492
a660d684
KB
493\membersection{wxListCtrl::GetNextItem}\label{wxlistctrlgetnextitem}
494
eaaa6a06 495\constfunc{long}{GetNextItem}{\param{long }{item}, \param{int }{geometry = wxLIST\_NEXT\_ALL}, \param{int }{state = wxLIST\_STATE\_DONTCARE}}
a660d684 496
2edb0bde 497Searches for an item with the given geometry or state, starting from
8e21d9ad
VZ
498{\it item} but excluding the {\it item} itself. If {\it item} is -1,
499the first item that matches the specified flags will be returned.
500
501Returns the first item with given state following {\it item} or -1 if
502no such item found.
503
504This function may be used to find all selected items in the control like this:
fa482912 505
8e21d9ad
VZ
506\begin{verbatim}
507 long item = -1;
508 for ( ;; )
509 {
510 item = listctrl->GetNextItem(item,
511 wxLIST_NEXT_ALL,
512 wxLIST_STATE_SELECTED);
513 if ( item == -1 )
514 break;
515
516 // this item is selected - do whatever is needed with it
907c39f1 517 wxLogMessage("Item %ld is selected.", item);
8e21d9ad
VZ
518 }
519\end{verbatim}
a660d684
KB
520
521{\it geometry} can be one of:
522
523\twocolwidtha{5cm}
524\begin{twocollist}\itemsep=0pt
525\twocolitem{wxLIST\_NEXT\_ABOVE}{Searches for an item above the specified item.}
526\twocolitem{wxLIST\_NEXT\_ALL}{Searches for subsequent item by index.}
527\twocolitem{wxLIST\_NEXT\_BELOW}{Searches for an item below the specified item.}
528\twocolitem{wxLIST\_NEXT\_LEFT}{Searches for an item to the left of the specified item.}
529\twocolitem{wxLIST\_NEXT\_RIGHT}{Searches for an item to the right of the specified item.}
530\end{twocollist}
531
90e572f1 532{\bf NB:} this parameter is only supported by wxMSW currently and ignored on
8e21d9ad
VZ
533other platforms.
534
a660d684
KB
535{\it state} can be a bitlist of the following:
536
537\twocolwidtha{5cm}
538\begin{twocollist}\itemsep=0pt
539\twocolitem{wxLIST\_STATE\_DONTCARE}{Don't care what the state is.}
540\twocolitem{wxLIST\_STATE\_DROPHILITED}{The item indicates it is a drop target.}
541\twocolitem{wxLIST\_STATE\_FOCUSED}{The item has the focus.}
542\twocolitem{wxLIST\_STATE\_SELECTED}{The item is selected.}
543\twocolitem{wxLIST\_STATE\_CUT}{The item is selected as part of a cut and paste operation.}
544\end{twocollist}
545
97c611f8 546
a660d684
KB
547\membersection{wxListCtrl::GetSelectedItemCount}\label{wxlistctrlgetselecteditemcount}
548
549\constfunc{int}{GetSelectedItemCount}{\void}
550
551Returns the number of selected items in the list control.
552
97c611f8 553
a660d684
KB
554\membersection{wxListCtrl::GetTextColour}\label{wxlistctrlgettextcolour}
555
556\constfunc{wxColour}{GetTextColour}{\void}
557
558Gets the text colour of the list control.
559
97c611f8 560
a660d684
KB
561\membersection{wxListCtrl::GetTopItem}\label{wxlistctrlgettopitem}
562
563\constfunc{long}{GetTopItem}{\void}
564
565Gets the index of the topmost visible item when in
566list or report view.
567
11ebea16 568
97c611f8 569
c5e2dc6f 570\membersection{wxListCtrl::GetViewRect}\label{wxlistctrlgetviewrect}
11ebea16
VZ
571
572\constfunc{wxRect}{GetViewRect}{\void}
573
574Returns the rectangle taken by all items in the control. In other words, if the
575controls client size were equal to the size of this rectangle, no scrollbars
576would be needed and no free space would be left.
577
578Note that this function only works in the icon and small icon views, not in
579list or report views (this is a limitation of the native Win32 control).
580
581
97c611f8 582
a660d684
KB
583\membersection{wxListCtrl::HitTest}\label{wxlistctrlhittest}
584
be0e5d69 585\constfunc{long}{HitTest}{\param{const wxPoint\& }{point}, \param{int\& }{flags}, \param{long *}{ptrSubItem}}
a660d684
KB
586
587Determines which item (if any) is at the specified point,
97722b26
VS
588giving details in {\it flags}. Returns index of the item or {\tt wxNOT\_FOUND}
589if no item is at the specified point.
590{\it flags} will be a combination of the following flags:
a660d684
KB
591
592\twocolwidtha{5cm}
593\begin{twocollist}\itemsep=0pt
594\twocolitem{wxLIST\_HITTEST\_ABOVE}{Above the client area.}
595\twocolitem{wxLIST\_HITTEST\_BELOW}{Below the client area.}
596\twocolitem{wxLIST\_HITTEST\_NOWHERE}{In the client area but below the last item.}
597\twocolitem{wxLIST\_HITTEST\_ONITEMICON}{On the bitmap associated with an item.}
598\twocolitem{wxLIST\_HITTEST\_ONITEMLABEL}{On the label (string) associated with an item.}
599\twocolitem{wxLIST\_HITTEST\_ONITEMRIGHT}{In the area to the right of an item.}
600\twocolitem{wxLIST\_HITTEST\_ONITEMSTATEICON}{On the state icon for a tree view item that is in a user-defined state.}
601\twocolitem{wxLIST\_HITTEST\_TOLEFT}{To the right of the client area.}
602\twocolitem{wxLIST\_HITTEST\_TORIGHT}{To the left of the client area.}
603\twocolitem{wxLIST\_HITTEST\_ONITEM}{Combination of wxLIST\_HITTEST\_ONITEMICON, wxLIST\_HITTEST\_ONITEMLABEL,
604wxLIST\_HITTEST\_ONITEMSTATEICON.}
605\end{twocollist}
606
164a7972
VZ
607If \arg{ptrSubItem} is not \NULL and the wxListCtrl is in the report
608mode the subitem (or column) number will also be provided.
a4f7b480
VZ
609This feature is only available in version 2.7.0 or higher and is currently only
610implemented under wxMSW and requires at least comctl32.dll of verion 4.70 on
611the host system or the value stored in \arg{ptrSubItem} will be always -1. To
612compile this feature into wxWidgets library you need to have access to
613commctrl.h of version 4.70 that is provided by Microsoft.
164a7972 614
86e78222 615\pythonnote{A tuple of values is returned in the wxPython version of
fa482912 616this method. The first value is the item id and the second is the
86e78222
RD
617flags value mentioned above.}
618
f3539882 619\perlnote{In wxPerl this method only takes the {\bf point} parameter
9722642d 620 and returns a 2-element list {\tt ( item, flags )}.}
f3539882 621
97c611f8 622
a660d684
KB
623\membersection{wxListCtrl::InsertColumn}\label{wxlistctrlinsertcolumn}
624
eaaa6a06 625\func{long}{InsertColumn}{\param{long }{col}, \param{wxListItem\& }{info}}
a660d684 626
eaaa6a06
JS
627\func{long}{InsertColumn}{\param{long }{col}, \param{const wxString\& }{heading}, \param{int }{format = wxLIST\_FORMAT\_LEFT},\rtfsp
628\param{int }{width = -1}}
a660d684 629
e75f014a 630For report view mode (only), inserts a column. For more details, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}.
a660d684 631
21f280f4
RD
632\pythonnote{In place of a single overloaded method name, wxPython
633implements the following methods:\par
634\indented{2cm}{\begin{twocollist}
c9110876 635\twocolitem{{\bf InsertColumn(col, heading, format=wxLIST\_FORMAT\_LEFT,
21f280f4 636width=-1)}}{Creates a column using a header string only.}
3d70763c
RD
637\twocolitem{{\bf InsertColumnItem(col, item)}}{Creates a column using a
638wxListItem.}
21f280f4
RD
639\end{twocollist}}
640}
641
97c611f8 642
a660d684
KB
643\membersection{wxListCtrl::InsertItem}\label{wxlistctrlinsertitem}
644
645\func{long}{InsertItem}{\param{wxListItem\& }{info}}
646
647Inserts an item, returning the index of the new item if successful,
648-1 otherwise.
649
eaaa6a06 650\func{long}{InsertItem}{\param{long }{index}, \param{const wxString\& }{label}}
a660d684
KB
651
652Inserts a string item.
653
eaaa6a06 654\func{long}{InsertItem}{\param{long }{index}, \param{int }{imageIndex}}
a660d684
KB
655
656Inserts an image item.
657
eaaa6a06 658\func{long}{InsertItem}{\param{long }{index}, \param{const wxString\& }{label}, \param{int }{imageIndex}}
a660d684
KB
659
660Insert an image/string item.
661
884360bc
JS
662\wxheading{Parameters}
663
664\docparam{info}{wxListItem object}
665
666\docparam{index}{Index of the new item, supplied by the application}
667
668\docparam{label}{String label}
669
670\docparam{imageIndex}{index into the image list associated with this control and view style}
671
21f280f4
RD
672\pythonnote{In place of a single overloaded method name, wxPython
673implements the following methods:\par
ecf527c0 674\indented{2cm}{\begin{twocollist}\itemsep=0pt
c9110876
VS
675\twocolitem{{\bf InsertItem(item)}}{Inserts an item using a wxListItem.}
676\twocolitem{{\bf InsertStringItem(index, label)}}{Inserts a string item.}
677\twocolitem{{\bf InsertImageItem(index, imageIndex)}}{Inserts an image item.}
678\twocolitem{{\bf InsertImageStringItem(index, label, imageIndex)}}{Insert an image/string item.}
21f280f4
RD
679\end{twocollist}}
680}
681
f3539882
VZ
682\perlnote{In wxPerl there are four methods instead of a single overloaded
683method:\par
684\indented{2cm}{\begin{twocollist}
685\twocolitem{{\bf InsertItem( item )}}{Inserts a Wx::ListItem}
686\twocolitem{{\bf InsertStringItem( index, label )}}{Inserts a string item}
687\twocolitem{{\bf InsertImageItem( index, imageIndex )}}{Inserts an image item}
688\twocolitem{{\bf InsertImageStringItem( index, label, imageIndex )}}{Inserts
689 an item with a string and an image}
690\end{twocollist}
691}}
692
97c611f8 693
614391dc
VZ
694\membersection{wxListCtrl::OnGetItemAttr}\label{wxlistctrlongetitemattr}
695
65de19d8 696\constfunc{virtual wxListItemAttr *}{OnGetItemAttr}{\param{long }{item}}
614391dc 697
52f2ad08 698This function may be overloaded in the derived class for a control with
614391dc
VZ
699{\tt wxLC\_VIRTUAL} style. It should return the attribute for the
700for the specified {\tt item} or {\tt NULL} to use the default appearance
701parameters.
702
a376adb6
JS
703wxListCtrl will not delete the pointer or keep a reference of it. You can
704return the same wxListItemAttr pointer for every OnGetItemAttr call.
705
614391dc
VZ
706The base class version always returns {\tt NULL}.
707
708\wxheading{See also}
709
710\helpref{OnGetItemImage}{wxlistctrlongetitemimage},\\
208458a7 711\helpref{OnGetItemColumnImage}{wxlistctrlongetitemcolumnimage},\\
614391dc
VZ
712\helpref{OnGetItemText}{wxlistctrlongetitemtext}
713
97c611f8 714
614391dc
VZ
715\membersection{wxListCtrl::OnGetItemImage}\label{wxlistctrlongetitemimage}
716
907c39f1 717\constfunc{virtual int}{OnGetItemImage}{\param{long }{item}}
614391dc 718
52f2ad08
WS
719This function must be overloaded in the derived class for a control with
720{\tt wxLC\_VIRTUAL} style having an \helpref{image list}{wxlistctrlsetimagelist}
c27c87be
VZ
721(if the control doesn't have an image list, it is not necessary to overload
722 it). It should return the index of the items image in the controls image list
723or $-1$ for no image.
208458a7
RD
724In a control with {\tt wxLC\_REPORT} style, OnGetItemImage only gets called for
725the first column of each line.
614391dc
VZ
726
727The base class version always returns $-1$.
728
729\wxheading{See also}
730
731\helpref{OnGetItemText}{wxlistctrlongetitemtext},\\
208458a7 732\helpref{OnGetItemColumnImage}{wxlistctrlongetitemcolumnimage},\\
614391dc
VZ
733\helpref{OnGetItemAttr}{wxlistctrlongetitemattr}
734
208458a7
RD
735\membersection{wxListCtrl::OnGetItemColumnImage}\label{wxlistctrlongetitemcolumnimage}
736
737\constfunc{virtual int}{OnGetItemColumnImage}{\param{long }{item}, \param{long }{column}}
738
739Overload this function in the derived class for a control with
740{\tt wxLC\_VIRTUAL} and {\tt wxLC\_REPORT} styles in order to specify the image
741index for the given line and column.
742
743The base class version always calls OnGetItemImage for the first column, else
744it returns $-1$.
745
746\wxheading{See also}
747
748\helpref{OnGetItemText}{wxlistctrlongetitemtext},\\
749\helpref{OnGetItemImage}{wxlistctrlongetitemimage},\\
750\helpref{OnGetItemAttr}{wxlistctrlongetitemattr}
97c611f8 751
614391dc
VZ
752\membersection{wxListCtrl::OnGetItemText}\label{wxlistctrlongetitemtext}
753
f201b1e2 754\constfunc{virtual wxString}{OnGetItemText}{\param{long }{item}, \param{long }{column}}
614391dc 755
52f2ad08 756This function {\bf must} be overloaded in the derived class for a control with
614391dc
VZ
757{\tt wxLC\_VIRTUAL} style. It should return the string containing the text of
758the given {\it column} for the specified {\tt item}.
759
760\wxheading{See also}
761
762\helpref{SetItemCount}{wxlistctrlsetitemcount},\\
763\helpref{OnGetItemImage}{wxlistctrlongetitemimage},\\
208458a7 764\helpref{OnGetItemColumnImage}{wxlistctrlongetitemcolumnimage},\\
614391dc
VZ
765\helpref{OnGetItemAttr}{wxlistctrlongetitemattr}
766
97c611f8 767
497b8e09
VZ
768\membersection{wxListCtrl::RefreshItem}\label{wxlistctrlrefreshitem}
769
770\func{void}{RefreshItem}{\param{long }{item}}
771
772Redraws the given {\it item}. This is only useful for the virtual list controls
773as without calling this function the displayed value of the item doesn't change
774even when the underlying data does change.
775
776\wxheading{See also}
777
778\helpref{RefreshItems}{wxlistctrlrefreshitems}
779
780
97c611f8 781
497b8e09
VZ
782\membersection{wxListCtrl::RefreshItems}\label{wxlistctrlrefreshitems}
783
784\func{void}{RefreshItems}{\param{long }{itemFrom}, \param{long }{itemTo}}
785
786Redraws the items between {\it itemFrom} and {\it itemTo}. The starting item
787must be less than or equal to the ending one.
788
789Just as \helpref{RefreshItem}{wxlistctrlrefreshitem} this is only useful for
790virtual list controls.
791
792
97c611f8 793
a660d684
KB
794\membersection{wxListCtrl::ScrollList}\label{wxlistctrlscrolllist}
795
eaaa6a06 796\func{bool}{ScrollList}{\param{int }{dx}, \param{int }{dy}}
a660d684 797
52f2ad08
WS
798Scrolls the list control. If in icon, small icon or report view mode,
799{\it dx} specifies the number of pixels to scroll. If in list view mode,
2b5f62a0
VZ
800{\it dx} specifies the number of columns to scroll. {\it dy} always specifies
801the number of pixels to scroll vertically.
a660d684 802
2b5f62a0 803{\bf NB:} This method is currently only implemented in the Windows version.
a660d684 804
97c611f8 805
a660d684
KB
806\membersection{wxListCtrl::SetBackgroundColour}\label{wxlistctrlsetbackgroundcolour}
807
808\func{void}{SetBackgroundColour}{\param{const wxColour\& }{col}}
809
810Sets the background colour (GetBackgroundColour already implicit in
811wxWindow class).
812
97c611f8 813
a660d684
KB
814\membersection{wxListCtrl::SetColumn}\label{wxlistctrlsetcolumn}
815
eaaa6a06 816\func{bool}{SetColumn}{\param{int }{col}, \param{wxListItem\& }{item}}
a660d684
KB
817
818Sets information about this column. See \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem} for more
819information.
820
97c611f8 821
a660d684
KB
822\membersection{wxListCtrl::SetColumnWidth}\label{wxlistctrlsetcolumnwidth}
823
eaaa6a06 824\func{bool}{SetColumnWidth}{\param{int }{col}, \param{int }{width}}
a660d684 825
884360bc 826Sets the column width.
a660d684
KB
827
828{\it width} can be a width in pixels or wxLIST\_AUTOSIZE (-1) or wxLIST\_AUTOSIZE\_USEHEADER (-2).
0180dad6
RR
829wxLIST\_AUTOSIZE will resize the column to the length of its longest item. wxLIST\_AUTOSIZE\_USEHEADER
830will resize the column to the length of the header (Win32) or 80 pixels (other platforms).
884360bc
JS
831
832In small or normal icon view, {\it col} must be -1, and the column width is set for all columns.
a660d684 833
97c611f8 834
a660d684
KB
835\membersection{wxListCtrl::SetImageList}\label{wxlistctrlsetimagelist}
836
eaaa6a06 837\func{void}{SetImageList}{\param{wxImageList*}{ imageList}, \param{int }{which}}
a660d684
KB
838
839Sets the image list associated with the control. {\it which} is one of
840wxIMAGE\_LIST\_NORMAL, wxIMAGE\_LIST\_SMALL, wxIMAGE\_LIST\_STATE (the last is unimplemented).
841
2e12c11a
VS
842This method does not take ownership of the image list, you have to
843delete it yourself.
844
845\wxheading{See also}
846
847\helpref{wxListCtrl::AssignImageList}{wxlistctrlassignimagelist}
848
849
97c611f8 850
a660d684
KB
851\membersection{wxListCtrl::SetItem}\label{wxlistctrlsetitem}
852
853\func{bool}{SetItem}{\param{wxListItem\& }{info}}
854
2cb20bea
VS
855\func{long}{SetItem}{\param{long }{index}, \param{int }{col}, \param{const }{wxString\& label}, \param{int }{imageId = -1}}
856
a660d684
KB
857Sets information about the item.
858
859wxListItem is a class with the following members:
860
861\twocolwidtha{5cm}
862\begin{twocollist}\itemsep=0pt
863\twocolitem{long m\_mask}{Indicates which fields are valid. See the list of valid mask flags below.}
864\twocolitem{long m\_itemId}{The zero-based item position.}
865\twocolitem{int m\_col}{Zero-based column, if in report mode.}
866\twocolitem{long m\_state}{The state of the item. See the list of valid state flags below.}
867\twocolitem{long m\_stateMask}{A mask indicating which state flags are valid. See the list of valid state flags below.}
868\twocolitem{wxString m\_text}{The label/header text.}
869\twocolitem{int m\_image}{The zero-based index into an image list.}
870\twocolitem{long m\_data}{Application-defined data.}
871\twocolitem{int m\_format}{For columns only: the format. Can be wxLIST\_FORMAT\_LEFT, wxLIST\_FORMAT\_RIGHT or
872wxLIST\_FORMAT\_CENTRE.}
873\twocolitem{int m\_width}{For columns only: the column width.}
874\end{twocollist}
875
876The {\bf m\_mask} member contains a bitlist specifying which of the other fields are valid. The flags are:
877
878\twocolwidtha{5cm}
879\begin{twocollist}\itemsep=0pt
880\twocolitem{wxLIST\_MASK\_STATE}{The {\bf m\_state} field is valid.}
881\twocolitem{wxLIST\_MASK\_TEXT}{The {\bf m\_text} field is valid.}
882\twocolitem{wxLIST\_MASK\_IMAGE}{The {\bf m\_image} field is valid.}
883\twocolitem{wxLIST\_MASK\_DATA}{The {\bf m\_data} field is valid.}
884\twocolitem{wxLIST\_MASK\_WIDTH}{The {\bf m\_width} field is valid.}
885\twocolitem{wxLIST\_MASK\_FORMAT}{The {\bf m\_format} field is valid.}
886\end{twocollist}
887
888The {\bf m\_stateMask} and {\bf m\_state} members take flags from the following:
889
890\twocolwidtha{5cm}
891\begin{twocollist}\itemsep=0pt
0180dad6
RR
892\twocolitem{wxLIST\_STATE\_DONTCARE}{Don't care what the state is. Win32 only. }
893\twocolitem{wxLIST\_STATE\_DROPHILITED}{The item is highlighted to receive a drop event. Win32 only. }
a660d684
KB
894\twocolitem{wxLIST\_STATE\_FOCUSED}{The item has the focus.}
895\twocolitem{wxLIST\_STATE\_SELECTED}{The item is selected.}
0180dad6 896\twocolitem{wxLIST\_STATE\_CUT}{The item is in the cut state. Win32 only. }
a660d684
KB
897\end{twocollist}
898
c3627a00
JS
899The wxListItem object can also contain item-specific colour and font
900information: for this you need to call one of SetTextColour(),
901SetBackgroundColour() or SetFont() functions on it passing it the colour/font
902to use. If the colour/font is not specified, the default list control
903colour/font is used.
904
eaaa6a06 905\func{long}{SetItem}{\param{long }{index}, \param{int }{col}, \param{const wxString\& }{label}, \param{int }{imageId = -1}}
a660d684
KB
906
907Sets a string field at a particular column.
908
21f280f4
RD
909\pythonnote{In place of a single overloaded method name, wxPython
910implements the following methods:\par
911\indented{2cm}{\begin{twocollist}
c9110876
VS
912\twocolitem{{\bf SetItem(item)}}{Sets information about the given wxListItem.}
913\twocolitem{{\bf SetStringItem(index, col, label, imageId)}}{Sets a
21f280f4
RD
914string or image at a given location.}
915\end{twocollist}}
916}
917
97c611f8
VZ
918\membersection{wxListCtrl::SetItemBackgroundColour}\label{wxlistctrlsetitembackgroundcolour}
919
920\func{void}{SetItemBackgroundColour}{\param{long }{item}, \param{const wxColour\& }{col}}
921
922Sets the background colour for this item. This function only works in report view.
923
52f2ad08 924The colour can be retrieved using
97c611f8
VZ
925\helpref{GetItemBackgroundColour}{wxlistctrlgetitembackgroundcolour}.
926
927
928
614391dc
VZ
929\membersection{wxListCtrl::SetItemCount}\label{wxlistctrlsetitemcount}
930
931\func{void}{SetItemCount}{\param{long }{count}}
932
933This method can only be used with virtual list controls. It is used to indicate
934to the control the number of items it contains. After calling it, the main
935program should be ready to handle calls to various item callbacks (such as
2edb0bde 936\helpref{OnGetItemText}{wxlistctrlongetitemtext}) for all items in the range
614391dc
VZ
937from $0$ to {\it count}.
938
97c611f8 939
a660d684
KB
940\membersection{wxListCtrl::SetItemData}\label{wxlistctrlsetitemdata}
941
eaaa6a06 942\func{bool}{SetItemData}{\param{long }{item}, \param{long }{data}}
a660d684
KB
943
944Associates application-defined data with this item.
945
9fcd0bf7
VZ
946Notice that this function cannot be used to associate pointers with the control
947items, use \helpref{SetItemPtrData}{wxlistctrlsetitemptrdata} instead.
948
97c611f8 949
35c2acd4
MW
950\membersection{wxListCtrl::SetItemFont}\label{wxlistctrlsetitemfont}
951
952\func{void}{SetItemFont}{\param{long }{item}, \param{const wxFont\& }{font}}
953
954Sets the item's font.
955
956
a660d684
KB
957\membersection{wxListCtrl::SetItemImage}\label{wxlistctrlsetitemimage}
958
c3627a00
JS
959\func{bool}{SetItemImage}{\param{long }{item}, \param{int }{image}}
960
961Sets the image associated with the item. The image is an index into the
06db67bc
RD
962image list associated with the list control. In report view, this only sets
963the image for the first column.
c3627a00 964
eaaa6a06 965\func{bool}{SetItemImage}{\param{long }{item}, \param{int }{image}, \param{int }{selImage}}
a660d684
KB
966
967Sets the unselected and selected images associated with the item. The images are indices into the
c3627a00
JS
968image list associated with the list control. This form is deprecated: {\it selImage} is not
969used.
a660d684 970
97c611f8 971
06db67bc
RD
972\membersection{wxListCtrl::SetItemColumnImage}\label{wxlistctrlsetitemcolumnimage}
973
974\func{bool}{SetItemImage}{\param{long }{item}, \param{long }{column}\param{int }{image}}
975
976Sets the image associated with the item. In report view, you can specify the column.
977The image is an index into the image list associated with the list control.
978
979
a660d684
KB
980\membersection{wxListCtrl::SetItemPosition}\label{wxlistctrlsetitemposition}
981
eaaa6a06 982\func{bool}{SetItemPosition}{\param{long }{item}, \param{const wxPoint\& }{pos}}
a660d684 983
c3627a00 984Sets the position of the item, in icon or small icon view. Windows only.
a660d684 985
97c611f8 986
9fcd0bf7
VZ
987\membersection{wxListCtrl::SetItemPtrData}\label{wxlistctrlsetitemptrdata}
988
989\func{bool}{SetItemPtrData}{\param{long }{item}, \param{wxUIntPtr }{data}}
990
991Associates application-defined data with this item. The \arg{data} parameter may
992be either an integer or a pointer cast to the \texttt{wxUIntPtr} type which is
993guaranteed to be large enough to be able to contain all integer types and
994pointers.
995
996\newsince{2.8.4}
997
998
a660d684
KB
999\membersection{wxListCtrl::SetItemState}\label{wxlistctrlsetitemstate}
1000
eaaa6a06 1001\func{bool}{SetItemState}{\param{long }{item}, \param{long }{state}, \param{long }{stateMask}}
a660d684
KB
1002
1003Sets the item state. For a list of state flags, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}.
1004
1005The {\bf stateMask} indicates which state flags are valid.
1006
97c611f8 1007
a660d684
KB
1008\membersection{wxListCtrl::SetItemText}\label{wxlistctrlsetitemtext}
1009
eaaa6a06 1010\func{void}{SetItemText}{\param{long }{item}, \param{const wxString\& }{text}}
a660d684
KB
1011
1012Sets the item text for this item.
1013
97c611f8
VZ
1014
1015\membersection{wxListCtrl::SetItemTextColour}\label{wxlistctrlsetitemtextcolour}
1016
1017\func{void}{SetItemTextColour}{\param{long }{item}, \param{const wxColour\& }{col}}
1018
1019Sets the colour for this item. This function only works in report view.
1020
52f2ad08 1021The colour can be retrieved using
97c611f8
VZ
1022\helpref{GetItemTextColour}{wxlistctrlgetitemtextcolour}.
1023
1024
a660d684
KB
1025\membersection{wxListCtrl::SetSingleStyle}\label{wxlistctrlsetsinglestyle}
1026
75d9e502 1027\func{void}{SetSingleStyle}{\param{long }{style}, \param{bool }{add = true}}
a660d684
KB
1028
1029Adds or removes a single window style.
1030
97c611f8 1031
a660d684
KB
1032\membersection{wxListCtrl::SetTextColour}\label{wxlistctrlsettextcolour}
1033
1034\func{void}{SetTextColour}{\param{const wxColour\& }{col}}
1035
1036Sets the text colour of the list control.
1037
97c611f8 1038
a660d684
KB
1039\membersection{wxListCtrl::SetWindowStyleFlag}\label{wxlistctrlsetwindowstyleflag}
1040
eaaa6a06 1041\func{void}{SetWindowStyleFlag}{\param{long }{style}}
a660d684 1042
70ffa79c 1043Sets the whole window style, deleting all items.
97c611f8 1044
a660d684
KB
1045\membersection{wxListCtrl::SortItems}\label{wxlistctrlsortitems}
1046
963863ad 1047\func{bool}{SortItems}{\param{wxListCtrlCompare }{fnSortCallBack}, \param{long }{data}}
a660d684 1048
aa9fb2be 1049Call this function to sort the items in the list control. Sorting is done
963863ad
VZ
1050using the specified {\it fnSortCallBack} function. This function must have the
1051following prototype:
a660d684 1052
963863ad
VZ
1053\begin{verbatim}
1054int wxCALLBACK wxListCompareFunction(long item1, long item2, long sortData)
1055\end{verbatim}
a660d684 1056
963863ad
VZ
1057It is called each time when the two items must be compared and should return 0
1058if the items are equal, negative value if the first item is less than the
1059second one and positive value if the first one is greater than the second one
1060(the same convention as used by {\tt qsort(3)}).
a660d684 1061
963863ad 1062\wxheading{Parameters}
a660d684 1063
ecf527c0 1064\docparam{item1}{client data associated with the first item ({\bf NOT} the index).}
aa9fb2be 1065
ecf527c0 1066\docparam{item2}{client data associated with the second item ({\bf NOT} the index).}
aa9fb2be 1067
963863ad 1068\docparam{data}{the value passed to SortItems() itself.}
a660d684 1069
963863ad
VZ
1070Notice that the control may only be sorted on client data associated with the
1071items, so you {\bf must} use \helpref{SetItemData}{wxlistctrlsetitemdata} if
1072you want to be able to sort the items in the control.
a660d684 1073
963863ad
VZ
1074Please see the \helpref{listctrl sample}{samplelistctrl} for an example of
1075using this function.
ecf527c0 1076
aa9fb2be
RD
1077\pythonnote{wxPython uses the sortData parameter to pass the Python
1078function to call, so it is not available for programmer use. Call
1079SortItems with a reference to a callable object that expects two
1080parameters.}
281b0186 1081
f3539882 1082\perlnote{In wxPerl the comparison function must take just two parameters;
095e0f91
JS
1083however, you may use a closure to achieve an effect similar to the
1084SortItems third parameter.}
1085