]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/listctrl.tex
added and documented wxApp::OnAssert
[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
8b17ba72
RR
145\membersection{wxListCtrl::ClearAll}\label{wxlistctrlclearall}
146
147\func{void}{ClearAll}{}
148
149Deletes all items and all columns.
150
70b62288
GT
151\membersection{wxListCtrl::Create}\label{wxlistctrlcreate}
152
153\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
154\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
155\param{long}{ style = wxLC\_ICON}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listCtrl"}}
156
157Creates the list control. See \helpref{wxListCtrl::wxListCtrl}{wxlistctrlconstr} for further details.
158
a660d684
KB
159\membersection{wxListCtrl::DeleteAllItems}\label{wxlistctrldeleteallitems}
160
8b17ba72 161\func{bool}{DeleteAllItems}{}
a660d684
KB
162
163Deletes all the items in the list control.
164
aa9fb2be 165{\bf NB:} This function does {\it not} send the
bffa1c77 166{\tt wxEVT\_COMMAND\_LIST\_DELETE\_ITEM} event because deleting many items
fa482912 167from the control would be too slow then (unlike \helpref{DeleteItem}{wxlistctrldeleteitem}).
bffa1c77 168
a660d684
KB
169\membersection{wxListCtrl::DeleteColumn}\label{wxlistctrldeletecolumn}
170
eaaa6a06 171\func{bool}{DeleteColumn}{\param{int }{col}}
a660d684
KB
172
173Deletes a column.
174
2c8c812f
GT
175\membersection{wxListCtrl::DeleteItem}\label{wxlistctrldeleteitem}
176
177\func{bool}{DeleteItem}{\param{long }{item}}
178
179Deletes the specified item. This function sends the
180{\tt wxEVT\_COMMAND\_LIST\_DELETE\_ITEM} event for the item being deleted.
181
182See also: \helpref{DeleteAllItems}{wxlistctrldeleteallitems}
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
f3539882
VZ
228\perlnote{In wxPerl there are three methods instead of a single overloaded
229method:\par
230\indented{2cm}{\begin{twocollist}
231\twocolitem{{\bf FindItem( start, str, partial = FALSE ) }}{}
232\twocolitem{{\bf FindItemData( start, data ) }}{}
233\twocolitem{{\bf FindItemAtPos( start, point, direction )}}{}
234\end{twocollist}
235}}
236
a660d684
KB
237\membersection{wxListCtrl::GetColumn}\label{wxlistctrlgetcolumn}
238
eaaa6a06 239\constfunc{bool}{GetColumn}{\param{int }{col}, \param{wxListItem\& }{item}}
a660d684
KB
240
241Gets information about this column. See \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem} for more
242information.
243
f3539882
VZ
244\perlnote{In wxPerl this method takes only the {\bf col} parameter and
245 returns a Wx::ListItem ( or undef ).}
246
a660d684
KB
247\membersection{wxListCtrl::GetColumnWidth}\label{wxlistctrlgetcolumnwidth}
248
eaaa6a06 249\constfunc{int}{GetColumnWidth}{\param{int }{col}}
a660d684
KB
250
251Gets the column width (report view only).
252
253\membersection{wxListCtrl::GetCountPerPage}\label{wxlistctrlgetcountperpage}
254
255\constfunc{int}{GetCountPerPage}{\void}
256
257Gets the number of items that can fit vertically in the
258visible area of the list control (list or report view)
259or the total number of items in the list control (icon
260or small icon view).
261
262\membersection{wxListCtrl::GetEditControl}\label{wxlistctrlgeteditcontrol}
263
264\constfunc{wxTextCtrl\&}{GetEditControl}{\void}
265
266Gets the edit control for editing labels.
267
268\membersection{wxListCtrl::GetImageList}\label{wxlistctrlgetimagelist}
269
eaaa6a06 270\constfunc{wxImageList*}{GetImageList}{\param{int }{which}}
a660d684
KB
271
272Returns the specified image list. {\it which} may be one of:
273
274\twocolwidtha{5cm}
275\begin{twocollist}\itemsep=0pt
276\twocolitem{\windowstyle{wxIMAGE\_LIST\_NORMAL}}{The normal (large icon) image list.}
277\twocolitem{\windowstyle{wxIMAGE\_LIST\_SMALL}}{The small icon image list.}
278\twocolitem{\windowstyle{wxIMAGE\_LIST\_STATE}}{The user-defined state image list (unimplemented).}
279\end{twocollist}
280
281\membersection{wxListCtrl::GetItem}\label{wxlistctrlgetitem}
282
283\constfunc{bool}{GetItem}{\param{wxListItem\& }{info}}
284
285Gets information about the item. See \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem} for more
286information.
287
1ddfb726 288You must call {\it info.SetId()} to the ID of item you're interested in
e5aff4c5
VS
289before calling this method.
290
76e1c2de 291\pythonnote{The wxPython version of this method takes an integer parameter
f6bcfd97 292for the item ID, an optional integer for the column number, and
1ddfb726 293returns the wxListItem object.}
21f280f4 294
f3539882
VZ
295\perlnote{In wxPerl this method takes as parameter the {\bf ID} of the item
296and ( optionally ) the column, and returns a Wx::ListItem object.}
297
70b62288
GT
298\membersection{wxListCtrl::GetItemCount}\label{wxlistctrlgetitemcount}
299
300\constfunc{int}{GetItemCount}{\void}
301
302Returns the number of items in the list control.
303
a660d684
KB
304\membersection{wxListCtrl::GetItemData}\label{wxlistctrlgetitemdata}
305
eaaa6a06 306\constfunc{long}{GetItemData}{\param{long }{item}}
a660d684
KB
307
308Gets the application-defined data associated with this item.
309
310\membersection{wxListCtrl::GetItemPosition}\label{wxlistctrlgetitemposition}
311
eaaa6a06 312\constfunc{bool}{GetItemPosition}{\param{long }{item}, \param{wxPoint\& }{pos}}
a660d684
KB
313
314Returns the position of the item, in icon or small icon view.
315
b456d571 316\pythonnote{The wxPython version of this method accepts only the item
21f280f4
RD
317ID and returns the wxPoint.}
318
f3539882
VZ
319\perlnote{In wxPerl this method takes only the {\bf item} parameter and
320returns a Wx::Point ( or undef ).}
321
a660d684
KB
322\membersection{wxListCtrl::GetItemRect}\label{wxlistctrlgetitemrect}
323
eaaa6a06 324\constfunc{bool}{GetItemRect}{\param{long }{item}, \param{wxRect\& }{rect}, \param{int }{code = wxLIST\_RECT\_BOUNDS}}
a660d684
KB
325
326Returns the rectangle representing the item's size and position, in client coordinates.
327
328{\it code} is one of wxLIST\_RECT\_BOUNDS, wxLIST\_RECT\_ICON, wxLIST\_RECT\_LABEL.
329
b456d571 330\pythonnote{The wxPython version of this method accepts only the item
aa9fb2be 331ID and code and returns the wxRect.}
21f280f4 332
f3539882
VZ
333\perlnote{In wxPerl this method takes only the {\bf item} parameter and
334retutrns a Wx::Rect ( or undef ).}
335
a660d684
KB
336\membersection{wxListCtrl::GetItemSpacing}\label{wxlistctrlgetitemspacing}
337
338\constfunc{int}{GetItemSpacing}{\param{bool }{isSmall}}
339
340Retrieves the spacing between icons in pixels.
341If {\it small} is TRUE, gets the spacing for the small icon
342view, otherwise the large icon view.
343
70b62288
GT
344\membersection{wxListCtrl::GetItemState}\label{wxlistctrlgetitemstate}
345
346\constfunc{int}{GetItemState}{\param{long }{item}, \param{long }{stateMask}}
347
348Gets the item state. For a list of state flags, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}.
349
350The {\bf stateMask} indicates which state flags are of interest.
351
a660d684
KB
352\membersection{wxListCtrl::GetItemText}\label{wxlistctrlgetitemtext}
353
eaaa6a06 354\constfunc{wxString}{GetItemText}{\param{long }{item}}
a660d684
KB
355
356Gets the item text for this item.
357
358\membersection{wxListCtrl::GetNextItem}\label{wxlistctrlgetnextitem}
359
eaaa6a06 360\constfunc{long}{GetNextItem}{\param{long }{item}, \param{int }{geometry = wxLIST\_NEXT\_ALL}, \param{int }{state = wxLIST\_STATE\_DONTCARE}}
a660d684 361
aa9fb2be 362Searches for an item with the given goemetry or state, starting from
8e21d9ad
VZ
363{\it item} but excluding the {\it item} itself. If {\it item} is -1,
364the first item that matches the specified flags will be returned.
365
366Returns the first item with given state following {\it item} or -1 if
367no such item found.
368
369This function may be used to find all selected items in the control like this:
fa482912 370
8e21d9ad
VZ
371\begin{verbatim}
372 long item = -1;
373 for ( ;; )
374 {
375 item = listctrl->GetNextItem(item,
376 wxLIST_NEXT_ALL,
377 wxLIST_STATE_SELECTED);
378 if ( item == -1 )
379 break;
380
381 // this item is selected - do whatever is needed with it
382 wxLogMessage("Item %ld is selected."), item);
383 }
384\end{verbatim}
a660d684
KB
385
386{\it geometry} can be one of:
387
388\twocolwidtha{5cm}
389\begin{twocollist}\itemsep=0pt
390\twocolitem{wxLIST\_NEXT\_ABOVE}{Searches for an item above the specified item.}
391\twocolitem{wxLIST\_NEXT\_ALL}{Searches for subsequent item by index.}
392\twocolitem{wxLIST\_NEXT\_BELOW}{Searches for an item below the specified item.}
393\twocolitem{wxLIST\_NEXT\_LEFT}{Searches for an item to the left of the specified item.}
394\twocolitem{wxLIST\_NEXT\_RIGHT}{Searches for an item to the right of the specified item.}
395\end{twocollist}
396
8e21d9ad
VZ
397{\bf NB:} this parameters is only supported by wxMSW currently and ignored on
398other platforms.
399
a660d684
KB
400{\it state} can be a bitlist of the following:
401
402\twocolwidtha{5cm}
403\begin{twocollist}\itemsep=0pt
404\twocolitem{wxLIST\_STATE\_DONTCARE}{Don't care what the state is.}
405\twocolitem{wxLIST\_STATE\_DROPHILITED}{The item indicates it is a drop target.}
406\twocolitem{wxLIST\_STATE\_FOCUSED}{The item has the focus.}
407\twocolitem{wxLIST\_STATE\_SELECTED}{The item is selected.}
408\twocolitem{wxLIST\_STATE\_CUT}{The item is selected as part of a cut and paste operation.}
409\end{twocollist}
410
411\membersection{wxListCtrl::GetSelectedItemCount}\label{wxlistctrlgetselecteditemcount}
412
413\constfunc{int}{GetSelectedItemCount}{\void}
414
415Returns the number of selected items in the list control.
416
417\membersection{wxListCtrl::GetTextColour}\label{wxlistctrlgettextcolour}
418
419\constfunc{wxColour}{GetTextColour}{\void}
420
421Gets the text colour of the list control.
422
423\membersection{wxListCtrl::GetTopItem}\label{wxlistctrlgettopitem}
424
425\constfunc{long}{GetTopItem}{\void}
426
427Gets the index of the topmost visible item when in
428list or report view.
429
430\membersection{wxListCtrl::HitTest}\label{wxlistctrlhittest}
431
432\func{long}{HitTest}{\param{const wxPoint\& }{point}, \param{int\& }{flags}}
433
434Determines which item (if any) is at the specified point,
435giving details in {\it flags}. {\it flags} will be a combination of the following flags:
436
437\twocolwidtha{5cm}
438\begin{twocollist}\itemsep=0pt
439\twocolitem{wxLIST\_HITTEST\_ABOVE}{Above the client area.}
440\twocolitem{wxLIST\_HITTEST\_BELOW}{Below the client area.}
441\twocolitem{wxLIST\_HITTEST\_NOWHERE}{In the client area but below the last item.}
442\twocolitem{wxLIST\_HITTEST\_ONITEMICON}{On the bitmap associated with an item.}
443\twocolitem{wxLIST\_HITTEST\_ONITEMLABEL}{On the label (string) associated with an item.}
444\twocolitem{wxLIST\_HITTEST\_ONITEMRIGHT}{In the area to the right of an item.}
445\twocolitem{wxLIST\_HITTEST\_ONITEMSTATEICON}{On the state icon for a tree view item that is in a user-defined state.}
446\twocolitem{wxLIST\_HITTEST\_TOLEFT}{To the right of the client area.}
447\twocolitem{wxLIST\_HITTEST\_TORIGHT}{To the left of the client area.}
448\twocolitem{wxLIST\_HITTEST\_ONITEM}{Combination of wxLIST\_HITTEST\_ONITEMICON, wxLIST\_HITTEST\_ONITEMLABEL,
449wxLIST\_HITTEST\_ONITEMSTATEICON.}
450\end{twocollist}
451
86e78222 452\pythonnote{A tuple of values is returned in the wxPython version of
fa482912 453this method. The first value is the item id and the second is the
86e78222
RD
454flags value mentioned above.}
455
f3539882
VZ
456\perlnote{In wxPerl this method only takes the {\bf point} parameter
457 and returns a 2-element list ( item, flags ).}
458
a660d684
KB
459\membersection{wxListCtrl::InsertColumn}\label{wxlistctrlinsertcolumn}
460
eaaa6a06 461\func{long}{InsertColumn}{\param{long }{col}, \param{wxListItem\& }{info}}
a660d684
KB
462
463For list view mode (only), inserts a column. For more details, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}.
464
eaaa6a06
JS
465\func{long}{InsertColumn}{\param{long }{col}, \param{const wxString\& }{heading}, \param{int }{format = wxLIST\_FORMAT\_LEFT},\rtfsp
466\param{int }{width = -1}}
a660d684
KB
467
468For list view mode (only), inserts a column. For more details, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}.
469
21f280f4
RD
470\pythonnote{In place of a single overloaded method name, wxPython
471implements the following methods:\par
472\indented{2cm}{\begin{twocollist}
c9110876 473\twocolitem{{\bf InsertColumn(col, heading, format=wxLIST\_FORMAT\_LEFT,
21f280f4 474width=-1)}}{Creates a column using a header string only.}
c9110876 475\twocolitem{{\bf InsertColumnInfo(col, item)}}{Creates a column using a
21f280f4
RD
476wxListInfo.}
477\end{twocollist}}
478}
479
a660d684
KB
480\membersection{wxListCtrl::InsertItem}\label{wxlistctrlinsertitem}
481
482\func{long}{InsertItem}{\param{wxListItem\& }{info}}
483
484Inserts an item, returning the index of the new item if successful,
485-1 otherwise.
486
eaaa6a06 487\func{long}{InsertItem}{\param{long }{index}, \param{const wxString\& }{label}}
a660d684
KB
488
489Inserts a string item.
490
eaaa6a06 491\func{long}{InsertItem}{\param{long }{index}, \param{int }{imageIndex}}
a660d684
KB
492
493Inserts an image item.
494
eaaa6a06 495\func{long}{InsertItem}{\param{long }{index}, \param{const wxString\& }{label}, \param{int }{imageIndex}}
a660d684
KB
496
497Insert an image/string item.
498
884360bc
JS
499\wxheading{Parameters}
500
501\docparam{info}{wxListItem object}
502
503\docparam{index}{Index of the new item, supplied by the application}
504
505\docparam{label}{String label}
506
507\docparam{imageIndex}{index into the image list associated with this control and view style}
508
21f280f4
RD
509\pythonnote{In place of a single overloaded method name, wxPython
510implements the following methods:\par
ecf527c0 511\indented{2cm}{\begin{twocollist}\itemsep=0pt
c9110876
VS
512\twocolitem{{\bf InsertItem(item)}}{Inserts an item using a wxListItem.}
513\twocolitem{{\bf InsertStringItem(index, label)}}{Inserts a string item.}
514\twocolitem{{\bf InsertImageItem(index, imageIndex)}}{Inserts an image item.}
515\twocolitem{{\bf InsertImageStringItem(index, label, imageIndex)}}{Insert an image/string item.}
21f280f4
RD
516\end{twocollist}}
517}
518
f3539882
VZ
519\perlnote{In wxPerl there are four methods instead of a single overloaded
520method:\par
521\indented{2cm}{\begin{twocollist}
522\twocolitem{{\bf InsertItem( item )}}{Inserts a Wx::ListItem}
523\twocolitem{{\bf InsertStringItem( index, label )}}{Inserts a string item}
524\twocolitem{{\bf InsertImageItem( index, imageIndex )}}{Inserts an image item}
525\twocolitem{{\bf InsertImageStringItem( index, label, imageIndex )}}{Inserts
526 an item with a string and an image}
527\end{twocollist}
528}}
529
a660d684
KB
530\membersection{wxListCtrl::ScrollList}\label{wxlistctrlscrolllist}
531
eaaa6a06 532\func{bool}{ScrollList}{\param{int }{dx}, \param{int }{dy}}
a660d684
KB
533
534Scrolls the list control. If in icon, small icon or report view mode,
535dx specifies the number of pixels to scroll. If in list view mode, dx
536specifies the number of columns to scroll.
537
538If in icon, small icon or list view mode, dy specifies the number of pixels
539to scroll. If in report view mode, dy specifies the number of lines to scroll.
540
541\membersection{wxListCtrl::SetBackgroundColour}\label{wxlistctrlsetbackgroundcolour}
542
543\func{void}{SetBackgroundColour}{\param{const wxColour\& }{col}}
544
545Sets the background colour (GetBackgroundColour already implicit in
546wxWindow class).
547
548\membersection{wxListCtrl::SetColumn}\label{wxlistctrlsetcolumn}
549
eaaa6a06 550\func{bool}{SetColumn}{\param{int }{col}, \param{wxListItem\& }{item}}
a660d684
KB
551
552Sets information about this column. See \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem} for more
553information.
554
555\membersection{wxListCtrl::SetColumnWidth}\label{wxlistctrlsetcolumnwidth}
556
eaaa6a06 557\func{bool}{SetColumnWidth}{\param{int }{col}, \param{int }{width}}
a660d684 558
884360bc 559Sets the column width.
a660d684
KB
560
561{\it width} can be a width in pixels or wxLIST\_AUTOSIZE (-1) or wxLIST\_AUTOSIZE\_USEHEADER (-2).
0180dad6
RR
562wxLIST\_AUTOSIZE will resize the column to the length of its longest item. wxLIST\_AUTOSIZE\_USEHEADER
563will resize the column to the length of the header (Win32) or 80 pixels (other platforms).
884360bc
JS
564
565In small or normal icon view, {\it col} must be -1, and the column width is set for all columns.
a660d684
KB
566
567\membersection{wxListCtrl::SetImageList}\label{wxlistctrlsetimagelist}
568
eaaa6a06 569\func{void}{SetImageList}{\param{wxImageList*}{ imageList}, \param{int }{which}}
a660d684
KB
570
571Sets the image list associated with the control. {\it which} is one of
572wxIMAGE\_LIST\_NORMAL, wxIMAGE\_LIST\_SMALL, wxIMAGE\_LIST\_STATE (the last is unimplemented).
573
2e12c11a
VS
574This method does not take ownership of the image list, you have to
575delete it yourself.
576
577\wxheading{See also}
578
579\helpref{wxListCtrl::AssignImageList}{wxlistctrlassignimagelist}
580
581
a660d684
KB
582\membersection{wxListCtrl::SetItem}\label{wxlistctrlsetitem}
583
584\func{bool}{SetItem}{\param{wxListItem\& }{info}}
585
2cb20bea
VS
586\func{long}{SetItem}{\param{long }{index}, \param{int }{col}, \param{const }{wxString\& label}, \param{int }{imageId = -1}}
587
a660d684
KB
588Sets information about the item.
589
590wxListItem is a class with the following members:
591
592\twocolwidtha{5cm}
593\begin{twocollist}\itemsep=0pt
594\twocolitem{long m\_mask}{Indicates which fields are valid. See the list of valid mask flags below.}
595\twocolitem{long m\_itemId}{The zero-based item position.}
596\twocolitem{int m\_col}{Zero-based column, if in report mode.}
597\twocolitem{long m\_state}{The state of the item. See the list of valid state flags below.}
598\twocolitem{long m\_stateMask}{A mask indicating which state flags are valid. See the list of valid state flags below.}
599\twocolitem{wxString m\_text}{The label/header text.}
600\twocolitem{int m\_image}{The zero-based index into an image list.}
601\twocolitem{long m\_data}{Application-defined data.}
602\twocolitem{int m\_format}{For columns only: the format. Can be wxLIST\_FORMAT\_LEFT, wxLIST\_FORMAT\_RIGHT or
603wxLIST\_FORMAT\_CENTRE.}
604\twocolitem{int m\_width}{For columns only: the column width.}
605\end{twocollist}
606
607The {\bf m\_mask} member contains a bitlist specifying which of the other fields are valid. The flags are:
608
609\twocolwidtha{5cm}
610\begin{twocollist}\itemsep=0pt
611\twocolitem{wxLIST\_MASK\_STATE}{The {\bf m\_state} field is valid.}
612\twocolitem{wxLIST\_MASK\_TEXT}{The {\bf m\_text} field is valid.}
613\twocolitem{wxLIST\_MASK\_IMAGE}{The {\bf m\_image} field is valid.}
614\twocolitem{wxLIST\_MASK\_DATA}{The {\bf m\_data} field is valid.}
615\twocolitem{wxLIST\_MASK\_WIDTH}{The {\bf m\_width} field is valid.}
616\twocolitem{wxLIST\_MASK\_FORMAT}{The {\bf m\_format} field is valid.}
617\end{twocollist}
618
619The {\bf m\_stateMask} and {\bf m\_state} members take flags from the following:
620
0530737d
VZ
621The wxListItem object can also contain item-specific colour and font
622information: for this you need to call one of SetTextColour(),
623SetBackgroundColour() or SetFont() functions on it passing it the colour/font
624to use. If the colour/font is not specified, the default list control
625colour/font is used.
626
a660d684
KB
627\twocolwidtha{5cm}
628\begin{twocollist}\itemsep=0pt
0180dad6
RR
629\twocolitem{wxLIST\_STATE\_DONTCARE}{Don't care what the state is. Win32 only. }
630\twocolitem{wxLIST\_STATE\_DROPHILITED}{The item is highlighted to receive a drop event. Win32 only. }
a660d684
KB
631\twocolitem{wxLIST\_STATE\_FOCUSED}{The item has the focus.}
632\twocolitem{wxLIST\_STATE\_SELECTED}{The item is selected.}
0180dad6 633\twocolitem{wxLIST\_STATE\_CUT}{The item is in the cut state. Win32 only. }
a660d684
KB
634\end{twocollist}
635
eaaa6a06 636\func{long}{SetItem}{\param{long }{index}, \param{int }{col}, \param{const wxString\& }{label}, \param{int }{imageId = -1}}
a660d684
KB
637
638Sets a string field at a particular column.
639
21f280f4
RD
640\pythonnote{In place of a single overloaded method name, wxPython
641implements the following methods:\par
642\indented{2cm}{\begin{twocollist}
c9110876
VS
643\twocolitem{{\bf SetItem(item)}}{Sets information about the given wxListItem.}
644\twocolitem{{\bf SetStringItem(index, col, label, imageId)}}{Sets a
21f280f4
RD
645string or image at a given location.}
646\end{twocollist}}
647}
648
a660d684
KB
649\membersection{wxListCtrl::SetItemData}\label{wxlistctrlsetitemdata}
650
eaaa6a06 651\func{bool}{SetItemData}{\param{long }{item}, \param{long }{data}}
a660d684
KB
652
653Associates application-defined data with this item.
654
655\membersection{wxListCtrl::SetItemImage}\label{wxlistctrlsetitemimage}
656
eaaa6a06 657\func{bool}{SetItemImage}{\param{long }{item}, \param{int }{image}, \param{int }{selImage}}
a660d684
KB
658
659Sets the unselected and selected images associated with the item. The images are indices into the
660image list associated with the list control.
661
662\membersection{wxListCtrl::SetItemPosition}\label{wxlistctrlsetitemposition}
663
eaaa6a06 664\func{bool}{SetItemPosition}{\param{long }{item}, \param{const wxPoint\& }{pos}}
a660d684
KB
665
666Sets the position of the item, in icon or small icon view.
667
668\membersection{wxListCtrl::SetItemState}\label{wxlistctrlsetitemstate}
669
eaaa6a06 670\func{bool}{SetItemState}{\param{long }{item}, \param{long }{state}, \param{long }{stateMask}}
a660d684
KB
671
672Sets the item state. For a list of state flags, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}.
673
674The {\bf stateMask} indicates which state flags are valid.
675
676\membersection{wxListCtrl::SetItemText}\label{wxlistctrlsetitemtext}
677
eaaa6a06 678\func{void}{SetItemText}{\param{long }{item}, \param{const wxString\& }{text}}
a660d684
KB
679
680Sets the item text for this item.
681
682\membersection{wxListCtrl::SetSingleStyle}\label{wxlistctrlsetsinglestyle}
683
eaaa6a06 684\func{void}{SetSingleStyle}{\param{long }{style}, \param{const bool }{add = TRUE}}
a660d684
KB
685
686Adds or removes a single window style.
687
688\membersection{wxListCtrl::SetTextColour}\label{wxlistctrlsettextcolour}
689
690\func{void}{SetTextColour}{\param{const wxColour\& }{col}}
691
692Sets the text colour of the list control.
693
694\membersection{wxListCtrl::SetWindowStyleFlag}\label{wxlistctrlsetwindowstyleflag}
695
eaaa6a06 696\func{void}{SetWindowStyleFlag}{\param{long }{style}}
a660d684
KB
697
698Sets the whole window style.
699
700\membersection{wxListCtrl::SortItems}\label{wxlistctrlsortitems}
701
963863ad 702\func{bool}{SortItems}{\param{wxListCtrlCompare }{fnSortCallBack}, \param{long }{data}}
a660d684 703
aa9fb2be 704Call this function to sort the items in the list control. Sorting is done
963863ad
VZ
705using the specified {\it fnSortCallBack} function. This function must have the
706following prototype:
a660d684 707
963863ad
VZ
708\begin{verbatim}
709int wxCALLBACK wxListCompareFunction(long item1, long item2, long sortData)
710\end{verbatim}
a660d684 711
963863ad
VZ
712It is called each time when the two items must be compared and should return 0
713if the items are equal, negative value if the first item is less than the
714second one and positive value if the first one is greater than the second one
715(the same convention as used by {\tt qsort(3)}).
a660d684 716
963863ad 717\wxheading{Parameters}
a660d684 718
ecf527c0 719\docparam{item1}{client data associated with the first item ({\bf NOT} the index).}
aa9fb2be 720
ecf527c0 721\docparam{item2}{client data associated with the second item ({\bf NOT} the index).}
aa9fb2be 722
963863ad 723\docparam{data}{the value passed to SortItems() itself.}
a660d684 724
963863ad
VZ
725Notice that the control may only be sorted on client data associated with the
726items, so you {\bf must} use \helpref{SetItemData}{wxlistctrlsetitemdata} if
727you want to be able to sort the items in the control.
a660d684 728
963863ad
VZ
729Please see the \helpref{listctrl sample}{samplelistctrl} for an example of
730using this function.
ecf527c0 731
aa9fb2be
RD
732\pythonnote{wxPython uses the sortData parameter to pass the Python
733function to call, so it is not available for programmer use. Call
734SortItems with a reference to a callable object that expects two
735parameters.}
281b0186 736
f3539882
VZ
737\perlnote{In wxPerl the comparison function must take just two parameters;
738 however, you may use a closure to achieve an effect similar to the
739 SortItems third parameter.}
740