]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/listctrl.tex
fixed nonsenses in tnoneng.tex
[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
aa9fb2be 6Using many of wxListCtrl is shown in the
963863ad
VZ
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.}
b96340e6
JS
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.}
a660d684
KB
44\end{twocollist}
45
46See also \helpref{window styles overview}{windowstyles}.
47
5de76427
JS
48\wxheading{Event handling}
49
50To process input from a list control, use these event handler macros to direct input to member
51functions 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.}
fd128b0c
RR
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}.}
5de76427
JS
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.}
8b17ba72 65\twocolitem{{\bf EVT\_LIST\_ITEM\_ACTIVATED(id, func)}}{The item has been activated (ENTER or double click).}
5de76427
JS
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.}
a07a98db 69\twocolitem{{\bf EVT\_LIST\_ITEM\_RIGHT\_CLICK(id, func)}}{An item has been right-clicked.}
5de76427
JS
70\end{twocollist}%
71
a660d684
KB
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
83Default constructor.
84
eaaa6a06 85\func{}{wxListCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
a660d684 86\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
eaaa6a06 87\param{long}{ style = wxLC\_ICON}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listCtrl"}}
a660d684
KB
88
89Constructor, 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
100appropriately.}
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
116Destructor, destroying the list control.
117
118\membersection{wxListCtrl::Arrange}\label{wxlistctrlarrange}
119
eaaa6a06 120\func{bool}{Arrange}{\param{int }{flag = wxLIST\_ALIGN\_DEFAULT}}
a660d684 121
0180dad6 122Arranges the items in icon or small icon view. This only has effect on Win32. {\it flag} is one of:
a660d684
KB
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
2e12c11a
VS
132\membersection{wxListCtrl::AssignImageList}\label{wxlistctrlassignimagelist}
133
134\func{void}{AssignImageList}{\param{wxImageList*}{ imageList}, \param{int }{which}}
135
136Sets the image list associated with the control and
137takes ownership of it (i.e. the control will, unlike when using
138SetImageList, delete the list when destroyed). {\it which} is one of
139wxIMAGE\_LIST\_NORMAL, wxIMAGE\_LIST\_SMALL, wxIMAGE\_LIST\_STATE (the last is unimplemented).
140
141\wxheading{See also}
142
143\helpref{wxListCtrl::SetImageList}{wxlistctrlsetimagelist}
144
a660d684
KB
145\membersection{wxListCtrl::Create}\label{wxlistctrlcreate}
146
eaaa6a06 147\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
a660d684 148\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
eaaa6a06 149\param{long}{ style = wxLC\_ICON}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listCtrl"}}
a660d684
KB
150
151Creates the list control. See \helpref{wxListCtrl::wxListCtrl}{wxlistctrlconstr} for further details.
152
8b17ba72
RR
153\membersection{wxListCtrl::ClearAll}\label{wxlistctrlclearall}
154
155\func{void}{ClearAll}{}
156
157Deletes all items and all columns.
158
a660d684
KB
159\membersection{wxListCtrl::DeleteItem}\label{wxlistctrldeleteitem}
160
eaaa6a06 161\func{bool}{DeleteItem}{\param{long }{item}}
a660d684 162
aa9fb2be 163Deletes the specified item. This function sends the
bffa1c77
VZ
164{\tt wxEVT\_COMMAND\_LIST\_DELETE\_ITEM} event for the item being deleted.
165
166See also: \helpref{DeleteAllItems}{wxlistctrldeleteallitems}
a660d684
KB
167
168\membersection{wxListCtrl::DeleteAllItems}\label{wxlistctrldeleteallitems}
169
8b17ba72 170\func{bool}{DeleteAllItems}{}
a660d684
KB
171
172Deletes all the items in the list control.
173
aa9fb2be 174{\bf NB:} This function does {\it not} send the
bffa1c77 175{\tt wxEVT\_COMMAND\_LIST\_DELETE\_ITEM} event because deleting many items
fa482912 176from the control would be too slow then (unlike \helpref{DeleteItem}{wxlistctrldeleteitem}).
bffa1c77 177
a660d684
KB
178\membersection{wxListCtrl::DeleteColumn}\label{wxlistctrldeletecolumn}
179
eaaa6a06 180\func{bool}{DeleteColumn}{\param{int }{col}}
a660d684
KB
181
182Deletes a column.
183
86f975a8 184\membersection{wxListCtrl::EditLabel}\label{wxlistctrledit}
a660d684 185
fd128b0c 186\func{void}{EditLabel}{\param{long }{item}}
a660d684 187
fd128b0c
RR
188Starts editing the label of the given item. This function generates a
189EVT\_LIST\_BEGIN\_LABEL\_EDIT event which can be vetoed so that no
190text control will appear for in-place editing.
86f975a8 191
fd128b0c 192If the user changed the label (i.e. s/he does not press ESC or leave
76e1c2de 193the text control without changes, a EVT\_LIST\_END\_LABEL\_EDIT event
fd128b0c 194will be sent which can be vetoed as well.
a660d684
KB
195
196\membersection{wxListCtrl::EnsureVisible}\label{wxlistctrlensurevisible}
197
eaaa6a06 198\func{bool}{EnsureVisible}{\param{long }{item}}
a660d684
KB
199
200Ensures this item is visible.
201
202\membersection{wxListCtrl::FindItem}\label{wxlistctrlfinditem}
203
eaaa6a06 204\func{long}{FindItem}{\param{long }{start}, \param{const wxString\& }{str}, \param{const bool }{partial = FALSE}}
a660d684
KB
205
206Find an item whose label matches this string, starting from the item after {\it start} or
207the beginning if {\it start} is -1.
208
eaaa6a06 209\func{long}{FindItem}{\param{long }{start}, \param{long }{data}}
a660d684
KB
210
211Find an item whose data matches this data, starting from the item after {\it start} or
212the beginning if 'start' is -1.
213
eaaa6a06 214\func{long}{FindItem}{\param{long }{start}, \param{const wxPoint\& }{pt}, \param{int }{direction}}
a660d684
KB
215
216Find an item nearest this position in the specified direction, starting from
217the item after {\it start} or the beginning if {\it start} is -1.
218
21f280f4
RD
219\pythonnote{In place of a single overloaded method name, wxPython
220implements the following methods:\par
221\indented{2cm}{\begin{twocollist}
c9110876
VS
222\twocolitem{{\bf FindItem(start, str, partial=FALSE)}}{}
223\twocolitem{{\bf FindItemData(start, data)}}{}
224\twocolitem{{\bf FindItemAtPos(start, point, direction)}}{}
21f280f4
RD
225\end{twocollist}}
226}
227
a660d684
KB
228\membersection{wxListCtrl::GetColumn}\label{wxlistctrlgetcolumn}
229
eaaa6a06 230\constfunc{bool}{GetColumn}{\param{int }{col}, \param{wxListItem\& }{item}}
a660d684
KB
231
232Gets information about this column. See \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem} for more
233information.
234
235\membersection{wxListCtrl::GetColumnWidth}\label{wxlistctrlgetcolumnwidth}
236
eaaa6a06 237\constfunc{int}{GetColumnWidth}{\param{int }{col}}
a660d684
KB
238
239Gets the column width (report view only).
240
241\membersection{wxListCtrl::GetCountPerPage}\label{wxlistctrlgetcountperpage}
242
243\constfunc{int}{GetCountPerPage}{\void}
244
245Gets the number of items that can fit vertically in the
246visible area of the list control (list or report view)
247or the total number of items in the list control (icon
248or small icon view).
249
250\membersection{wxListCtrl::GetEditControl}\label{wxlistctrlgeteditcontrol}
251
252\constfunc{wxTextCtrl\&}{GetEditControl}{\void}
253
254Gets the edit control for editing labels.
255
256\membersection{wxListCtrl::GetImageList}\label{wxlistctrlgetimagelist}
257
eaaa6a06 258\constfunc{wxImageList*}{GetImageList}{\param{int }{which}}
a660d684
KB
259
260Returns 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
273Gets information about the item. See \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem} for more
274information.
275
e5aff4c5
VS
276You must call {\it info.SetId()} to se ID of item you're interested in
277before calling this method.
278
76e1c2de 279\pythonnote{The wxPython version of this method takes an integer parameter
f6bcfd97
BP
280for the item ID, an optional integer for the column number, and
281returns the wxListItem object. }
21f280f4 282
a660d684
KB
283\membersection{wxListCtrl::GetItemData}\label{wxlistctrlgetitemdata}
284
eaaa6a06 285\constfunc{long}{GetItemData}{\param{long }{item}}
a660d684
KB
286
287Gets the application-defined data associated with this item.
288
289\membersection{wxListCtrl::GetItemPosition}\label{wxlistctrlgetitemposition}
290
eaaa6a06 291\constfunc{bool}{GetItemPosition}{\param{long }{item}, \param{wxPoint\& }{pos}}
a660d684
KB
292
293Returns the position of the item, in icon or small icon view.
294
b456d571 295\pythonnote{The wxPython version of this method accepts only the item
21f280f4
RD
296ID and returns the wxPoint.}
297
a660d684
KB
298\membersection{wxListCtrl::GetItemRect}\label{wxlistctrlgetitemrect}
299
eaaa6a06 300\constfunc{bool}{GetItemRect}{\param{long }{item}, \param{wxRect\& }{rect}, \param{int }{code = wxLIST\_RECT\_BOUNDS}}
a660d684
KB
301
302Returns the rectangle representing the item's size and position, in client coordinates.
303
304{\it code} is one of wxLIST\_RECT\_BOUNDS, wxLIST\_RECT\_ICON, wxLIST\_RECT\_LABEL.
305
b456d571 306\pythonnote{The wxPython version of this method accepts only the item
aa9fb2be 307ID and code and returns the wxRect.}
21f280f4 308
a660d684
KB
309\membersection{wxListCtrl::GetItemState}\label{wxlistctrlgetitemstate}
310
eaaa6a06 311\constfunc{int}{GetItemState}{\param{long }{item}, \param{long }{stateMask}}
a660d684
KB
312
313Gets the item state. For a list of state flags, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}.
314
315The {\bf stateMask} indicates which state flags are of interest.
316
317\membersection{wxListCtrl::GetItemCount}\label{wxlistctrlgetitemcount}
318
319\constfunc{int}{GetItemCount}{\void}
320
321Returns the number of items in the list control.
322
323\membersection{wxListCtrl::GetItemSpacing}\label{wxlistctrlgetitemspacing}
324
325\constfunc{int}{GetItemSpacing}{\param{bool }{isSmall}}
326
327Retrieves the spacing between icons in pixels.
328If {\it small} is TRUE, gets the spacing for the small icon
329view, otherwise the large icon view.
330
331\membersection{wxListCtrl::GetItemText}\label{wxlistctrlgetitemtext}
332
eaaa6a06 333\constfunc{wxString}{GetItemText}{\param{long }{item}}
a660d684
KB
334
335Gets the item text for this item.
336
337\membersection{wxListCtrl::GetNextItem}\label{wxlistctrlgetnextitem}
338
eaaa6a06 339\constfunc{long}{GetNextItem}{\param{long }{item}, \param{int }{geometry = wxLIST\_NEXT\_ALL}, \param{int }{state = wxLIST\_STATE\_DONTCARE}}
a660d684 340
aa9fb2be 341Searches for an item with the given goemetry or state, starting from
8e21d9ad
VZ
342{\it item} but excluding the {\it item} itself. If {\it item} is -1,
343the first item that matches the specified flags will be returned.
344
345Returns the first item with given state following {\it item} or -1 if
346no such item found.
347
348This function may be used to find all selected items in the control like this:
fa482912 349
8e21d9ad
VZ
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}
a660d684
KB
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
8e21d9ad
VZ
376{\bf NB:} this parameters is only supported by wxMSW currently and ignored on
377other platforms.
378
a660d684
KB
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
394Returns the number of selected items in the list control.
395
396\membersection{wxListCtrl::GetTextColour}\label{wxlistctrlgettextcolour}
397
398\constfunc{wxColour}{GetTextColour}{\void}
399
400Gets the text colour of the list control.
401
402\membersection{wxListCtrl::GetTopItem}\label{wxlistctrlgettopitem}
403
404\constfunc{long}{GetTopItem}{\void}
405
406Gets the index of the topmost visible item when in
407list or report view.
408
409\membersection{wxListCtrl::HitTest}\label{wxlistctrlhittest}
410
411\func{long}{HitTest}{\param{const wxPoint\& }{point}, \param{int\& }{flags}}
412
413Determines which item (if any) is at the specified point,
414giving 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,
428wxLIST\_HITTEST\_ONITEMSTATEICON.}
429\end{twocollist}
430
86e78222 431\pythonnote{A tuple of values is returned in the wxPython version of
fa482912 432this method. The first value is the item id and the second is the
86e78222
RD
433flags value mentioned above.}
434
a660d684
KB
435\membersection{wxListCtrl::InsertColumn}\label{wxlistctrlinsertcolumn}
436
eaaa6a06 437\func{long}{InsertColumn}{\param{long }{col}, \param{wxListItem\& }{info}}
a660d684
KB
438
439For list view mode (only), inserts a column. For more details, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}.
440
eaaa6a06
JS
441\func{long}{InsertColumn}{\param{long }{col}, \param{const wxString\& }{heading}, \param{int }{format = wxLIST\_FORMAT\_LEFT},\rtfsp
442\param{int }{width = -1}}
a660d684
KB
443
444For list view mode (only), inserts a column. For more details, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}.
445
21f280f4
RD
446\pythonnote{In place of a single overloaded method name, wxPython
447implements the following methods:\par
448\indented{2cm}{\begin{twocollist}
c9110876 449\twocolitem{{\bf InsertColumn(col, heading, format=wxLIST\_FORMAT\_LEFT,
21f280f4 450width=-1)}}{Creates a column using a header string only.}
c9110876 451\twocolitem{{\bf InsertColumnInfo(col, item)}}{Creates a column using a
21f280f4
RD
452wxListInfo.}
453\end{twocollist}}
454}
455
a660d684
KB
456\membersection{wxListCtrl::InsertItem}\label{wxlistctrlinsertitem}
457
458\func{long}{InsertItem}{\param{wxListItem\& }{info}}
459
460Inserts an item, returning the index of the new item if successful,
461-1 otherwise.
462
eaaa6a06 463\func{long}{InsertItem}{\param{long }{index}, \param{const wxString\& }{label}}
a660d684
KB
464
465Inserts a string item.
466
eaaa6a06 467\func{long}{InsertItem}{\param{long }{index}, \param{int }{imageIndex}}
a660d684
KB
468
469Inserts an image item.
470
eaaa6a06 471\func{long}{InsertItem}{\param{long }{index}, \param{const wxString\& }{label}, \param{int }{imageIndex}}
a660d684
KB
472
473Insert an image/string item.
474
884360bc
JS
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
21f280f4
RD
485\pythonnote{In place of a single overloaded method name, wxPython
486implements the following methods:\par
ecf527c0 487\indented{2cm}{\begin{twocollist}\itemsep=0pt
c9110876
VS
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.}
21f280f4
RD
492\end{twocollist}}
493}
494
a660d684
KB
495\membersection{wxListCtrl::ScrollList}\label{wxlistctrlscrolllist}
496
eaaa6a06 497\func{bool}{ScrollList}{\param{int }{dx}, \param{int }{dy}}
a660d684
KB
498
499Scrolls the list control. If in icon, small icon or report view mode,
500dx specifies the number of pixels to scroll. If in list view mode, dx
501specifies the number of columns to scroll.
502
503If in icon, small icon or list view mode, dy specifies the number of pixels
504to 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
510Sets the background colour (GetBackgroundColour already implicit in
511wxWindow class).
512
513\membersection{wxListCtrl::SetColumn}\label{wxlistctrlsetcolumn}
514
eaaa6a06 515\func{bool}{SetColumn}{\param{int }{col}, \param{wxListItem\& }{item}}
a660d684
KB
516
517Sets information about this column. See \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem} for more
518information.
519
520\membersection{wxListCtrl::SetColumnWidth}\label{wxlistctrlsetcolumnwidth}
521
eaaa6a06 522\func{bool}{SetColumnWidth}{\param{int }{col}, \param{int }{width}}
a660d684 523
884360bc 524Sets the column width.
a660d684
KB
525
526{\it width} can be a width in pixels or wxLIST\_AUTOSIZE (-1) or wxLIST\_AUTOSIZE\_USEHEADER (-2).
0180dad6
RR
527wxLIST\_AUTOSIZE will resize the column to the length of its longest item. wxLIST\_AUTOSIZE\_USEHEADER
528will resize the column to the length of the header (Win32) or 80 pixels (other platforms).
884360bc
JS
529
530In small or normal icon view, {\it col} must be -1, and the column width is set for all columns.
a660d684
KB
531
532\membersection{wxListCtrl::SetImageList}\label{wxlistctrlsetimagelist}
533
eaaa6a06 534\func{void}{SetImageList}{\param{wxImageList*}{ imageList}, \param{int }{which}}
a660d684
KB
535
536Sets the image list associated with the control. {\it which} is one of
537wxIMAGE\_LIST\_NORMAL, wxIMAGE\_LIST\_SMALL, wxIMAGE\_LIST\_STATE (the last is unimplemented).
538
2e12c11a
VS
539This method does not take ownership of the image list, you have to
540delete it yourself.
541
542\wxheading{See also}
543
544\helpref{wxListCtrl::AssignImageList}{wxlistctrlassignimagelist}
545
546
a660d684
KB
547\membersection{wxListCtrl::SetItem}\label{wxlistctrlsetitem}
548
549\func{bool}{SetItem}{\param{wxListItem\& }{info}}
550
2cb20bea
VS
551\func{long}{SetItem}{\param{long }{index}, \param{int }{col}, \param{const }{wxString\& label}, \param{int }{imageId = -1}}
552
a660d684
KB
553Sets information about the item.
554
555wxListItem 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
568wxLIST\_FORMAT\_CENTRE.}
569\twocolitem{int m\_width}{For columns only: the column width.}
570\end{twocollist}
571
572The {\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
584The {\bf m\_stateMask} and {\bf m\_state} members take flags from the following:
585
0530737d
VZ
586The wxListItem object can also contain item-specific colour and font
587information: for this you need to call one of SetTextColour(),
588SetBackgroundColour() or SetFont() functions on it passing it the colour/font
589to use. If the colour/font is not specified, the default list control
590colour/font is used.
591
a660d684
KB
592\twocolwidtha{5cm}
593\begin{twocollist}\itemsep=0pt
0180dad6
RR
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. }
a660d684
KB
596\twocolitem{wxLIST\_STATE\_FOCUSED}{The item has the focus.}
597\twocolitem{wxLIST\_STATE\_SELECTED}{The item is selected.}
0180dad6 598\twocolitem{wxLIST\_STATE\_CUT}{The item is in the cut state. Win32 only. }
a660d684
KB
599\end{twocollist}
600
eaaa6a06 601\func{long}{SetItem}{\param{long }{index}, \param{int }{col}, \param{const wxString\& }{label}, \param{int }{imageId = -1}}
a660d684
KB
602
603Sets a string field at a particular column.
604
21f280f4
RD
605\pythonnote{In place of a single overloaded method name, wxPython
606implements the following methods:\par
607\indented{2cm}{\begin{twocollist}
c9110876
VS
608\twocolitem{{\bf SetItem(item)}}{Sets information about the given wxListItem.}
609\twocolitem{{\bf SetStringItem(index, col, label, imageId)}}{Sets a
21f280f4
RD
610string or image at a given location.}
611\end{twocollist}}
612}
613
a660d684
KB
614\membersection{wxListCtrl::SetItemData}\label{wxlistctrlsetitemdata}
615
eaaa6a06 616\func{bool}{SetItemData}{\param{long }{item}, \param{long }{data}}
a660d684
KB
617
618Associates application-defined data with this item.
619
620\membersection{wxListCtrl::SetItemImage}\label{wxlistctrlsetitemimage}
621
eaaa6a06 622\func{bool}{SetItemImage}{\param{long }{item}, \param{int }{image}, \param{int }{selImage}}
a660d684
KB
623
624Sets the unselected and selected images associated with the item. The images are indices into the
625image list associated with the list control.
626
627\membersection{wxListCtrl::SetItemPosition}\label{wxlistctrlsetitemposition}
628
eaaa6a06 629\func{bool}{SetItemPosition}{\param{long }{item}, \param{const wxPoint\& }{pos}}
a660d684
KB
630
631Sets the position of the item, in icon or small icon view.
632
633\membersection{wxListCtrl::SetItemState}\label{wxlistctrlsetitemstate}
634
eaaa6a06 635\func{bool}{SetItemState}{\param{long }{item}, \param{long }{state}, \param{long }{stateMask}}
a660d684
KB
636
637Sets the item state. For a list of state flags, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}.
638
639The {\bf stateMask} indicates which state flags are valid.
640
641\membersection{wxListCtrl::SetItemText}\label{wxlistctrlsetitemtext}
642
eaaa6a06 643\func{void}{SetItemText}{\param{long }{item}, \param{const wxString\& }{text}}
a660d684
KB
644
645Sets the item text for this item.
646
647\membersection{wxListCtrl::SetSingleStyle}\label{wxlistctrlsetsinglestyle}
648
eaaa6a06 649\func{void}{SetSingleStyle}{\param{long }{style}, \param{const bool }{add = TRUE}}
a660d684
KB
650
651Adds or removes a single window style.
652
653\membersection{wxListCtrl::SetTextColour}\label{wxlistctrlsettextcolour}
654
655\func{void}{SetTextColour}{\param{const wxColour\& }{col}}
656
657Sets the text colour of the list control.
658
659\membersection{wxListCtrl::SetWindowStyleFlag}\label{wxlistctrlsetwindowstyleflag}
660
eaaa6a06 661\func{void}{SetWindowStyleFlag}{\param{long }{style}}
a660d684
KB
662
663Sets the whole window style.
664
665\membersection{wxListCtrl::SortItems}\label{wxlistctrlsortitems}
666
963863ad 667\func{bool}{SortItems}{\param{wxListCtrlCompare }{fnSortCallBack}, \param{long }{data}}
a660d684 668
aa9fb2be 669Call this function to sort the items in the list control. Sorting is done
963863ad
VZ
670using the specified {\it fnSortCallBack} function. This function must have the
671following prototype:
a660d684 672
963863ad
VZ
673\begin{verbatim}
674int wxCALLBACK wxListCompareFunction(long item1, long item2, long sortData)
675\end{verbatim}
a660d684 676
963863ad
VZ
677It is called each time when the two items must be compared and should return 0
678if the items are equal, negative value if the first item is less than the
679second one and positive value if the first one is greater than the second one
680(the same convention as used by {\tt qsort(3)}).
a660d684 681
963863ad 682\wxheading{Parameters}
a660d684 683
ecf527c0 684\docparam{item1}{client data associated with the first item ({\bf NOT} the index).}
aa9fb2be 685
ecf527c0 686\docparam{item2}{client data associated with the second item ({\bf NOT} the index).}
aa9fb2be 687
963863ad 688\docparam{data}{the value passed to SortItems() itself.}
a660d684 689
963863ad
VZ
690Notice that the control may only be sorted on client data associated with the
691items, so you {\bf must} use \helpref{SetItemData}{wxlistctrlsetitemdata} if
692you want to be able to sort the items in the control.
a660d684 693
963863ad
VZ
694Please see the \helpref{listctrl sample}{samplelistctrl} for an example of
695using this function.
ecf527c0 696
aa9fb2be
RD
697\pythonnote{wxPython uses the sortData parameter to pass the Python
698function to call, so it is not available for programmer use. Call
699SortItems with a reference to a callable object that expects two
700parameters.}
281b0186 701