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