1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: interface of wxListCtrl
4 // Author: wxWidgets team
6 // Licence: wxWindows license
7 /////////////////////////////////////////////////////////////////////////////
13 A list control presents lists in a number of formats: list view, report view,
14 icon view and small icon view. In any case, elements are numbered from zero.
15 For all these modes, the items are stored in the control and must be added to
16 it using wxListCtrl::InsertItem method.
18 A special case of report view quite different from the other modes of the list
19 control is a virtual control in which the items data (including text, images
20 and attributes) is managed by the main program and is requested by the control
21 itself only when needed which allows to have controls with millions of items
22 without consuming much memory. To use virtual list control you must use
23 wxListCtrl::SetItemCount first and overload at least
24 wxListCtrl::OnGetItemText (and optionally
25 wxListCtrl::OnGetItemImage or wxListCtrl::OnGetItemColumnImage and
26 wxListCtrl::OnGetItemAttr) to return the information
27 about the items when the control requests it. Virtual list control can be used
28 as a normal one except that no operations which can take time proportional to
29 the number of items in the control happen -- this is required to allow having a
30 practically infinite number of items. For example, in a multiple selection
31 virtual list control, the selections won't be sent when many items are selected
32 at once because this could mean iterating over all the items.
34 Using many of wxListCtrl features is shown in the
35 @ref overview_samplelistctrl "corresponding sample".
37 To intercept events from a list control, use the event table macros described
40 @b Mac Note: Starting with 2.8, wxListCtrl uses a native implementation for
41 report mode, and uses a generic implementation for other modes. You can use the
42 generic implementation for report mode as well by setting the
43 mac.listctrl.always_use_generic wxSystemOption() to
48 Multicolumn list view, with optional small icons. Columns are
49 computed automatically, i.e. you don't set columns as in
50 wxLC_REPORT. In other words, the list wraps, unlike a wxListBox.
52 Single or multicolumn report view, with optional header.
54 The application provides items text on demand. May only be used
57 Large icon view, with optional labels.
58 @style{wxLC_SMALL_ICON}
59 Small icon view, with optional labels.
60 @style{wxLC_ALIGN_TOP}
61 Icons align to the top. Win32 default, Win32 only.
62 @style{wxLC_ALIGN_LEFT}
63 Icons align to the left.
64 @style{wxLC_AUTOARRANGE}
65 Icons arrange themselves. Win32 only.
66 @style{wxLC_EDIT_LABELS}
67 Labels are editable: the application will be notified when editing
69 @style{wxLC_NO_HEADER}
70 No header in report mode.
71 @style{wxLC_SINGLE_SEL}
72 Single selection (default is multiple).
73 @style{wxLC_SORT_ASCENDING}
74 Sort in ascending order (must still supply a comparison callback in
76 @style{wxLC_SORT_DESCENDING}
77 Sort in descending order (must still supply a comparison callback
80 Draws light horizontal rules between rows in report mode.
82 Draws light vertical rules between columns in report mode.
87 <!-- @appearance{listctrl.png} -->
89 @see @ref overview_wxlistctrloverview "wxListCtrl overview", wxListView,
90 wxListBox, wxTreeCtrl, wxImageList, wxListEvent, wxListItem
92 class wxListCtrl
: public wxControl
97 Constructor, creating and showing a list control.
100 Parent window. Must not be @NULL.
102 Window identifier. The value wxID_ANY indicates a default value.
106 Window size. If wxDefaultSize is specified then the window is
110 Window style. See wxListCtrl.
116 @see Create(), wxValidator
119 wxListCtrl(wxWindow
* parent
, wxWindowID id
,
120 const wxPoint
& pos
= wxDefaultPosition
,
121 const wxSize
& size
= wxDefaultSize
,
122 long style
= wxLC_ICON
,
123 const wxValidator
& validator
= wxDefaultValidator
,
124 const wxString
& name
= wxListCtrlNameStr
);
128 Destructor, destroying the list control.
133 Arranges the items in icon or small icon view. This only has effect on Win32.
142 Align to the left side of the control.
146 Align to the top side of the control.
148 wxLIST_ALIGN_SNAP_TO_GRID
152 bool Arrange(int flag
= wxLIST_ALIGN_DEFAULT
);
155 Sets the image list associated with the control and
156 takes ownership of it (i.e. the control will, unlike when using
157 SetImageList, delete the list when destroyed). @a which is one of
158 wxIMAGE_LIST_NORMAL, wxIMAGE_LIST_SMALL, wxIMAGE_LIST_STATE (the last is
163 void AssignImageList(wxImageList
* imageList
, int which
);
166 Deletes all items and all columns.
171 Creates the list control. See wxListCtrl() for further details.
173 bool Create(wxWindow
* parent
, wxWindowID id
,
174 const wxPoint
& pos
= wxDefaultPosition
,
175 const wxSize
& size
= wxDefaultSize
,
176 long style
= wxLC_ICON
,
177 const wxValidator
& validator
= wxDefaultValidator
,
178 const wxString
& name
= wxListCtrlNameStr
);
181 Deletes all items in the list control.
182 @note This function does @e not send the
183 @c wxEVT_COMMAND_LIST_DELETE_ITEM event because deleting many items
184 from the control would be too slow then (unlike wxListCtrl::DeleteItem).
186 bool DeleteAllItems();
191 bool DeleteColumn(int col
);
194 Deletes the specified item. This function sends the
195 @c wxEVT_COMMAND_LIST_DELETE_ITEM event for the item being deleted.
196 See also: DeleteAllItems()
198 bool DeleteItem(long item
);
201 Starts editing the label of the given item. This function generates a
202 EVT_LIST_BEGIN_LABEL_EDIT event which can be vetoed so that no
203 text control will appear for in-place editing.
204 If the user changed the label (i.e. s/he does not press ESC or leave
205 the text control without changes, a EVT_LIST_END_LABEL_EDIT event
206 will be sent which can be vetoed as well.
208 void EditLabel(long item
);
211 Ensures this item is visible.
213 bool EnsureVisible(long item
);
217 Find an item nearest this position in the specified direction, starting from
218 @a start or the beginning if @a start is -1.
221 @b FindItem( start, str, partial = @false )
224 @b FindItemData( start, data )
227 @b FindItemAtPos( start, point, direction )
229 long FindItem(long start
, const wxString
& str
,
230 bool partial
= false);
231 long FindItem(long start
, long data
);
232 long FindItem(long start
, const wxPoint
& pt
, int direction
);
236 Gets information about this column. See SetItem() for more
239 bool GetColumn(int col
, wxListItem
& item
) const;
242 Returns the number of columns.
244 int GetColumnCount() const;
247 Gets the column number by visual order index (report view only).
249 int GetColumnIndexFromOrder(int order
) const;
252 Gets the column visual order index (valid in report view only).
254 int GetColumnOrder(int col
) const;
257 Gets the column width (report view only).
259 int GetColumnWidth(int col
) const;
262 Returns the array containing the orders of all columns. On error, an empty
265 wxArrayInt
GetColumnsOrder() const;
268 Gets the number of items that can fit vertically in the
269 visible area of the list control (list or report view)
270 or the total number of items in the list control (icon
273 int GetCountPerPage() const;
276 Returns the edit control being currently used to edit a label. Returns @NULL
277 if no label is being edited.
278 @note It is currently only implemented for wxMSW and the generic version,
279 not for the native Mac OS X version.
281 wxTextCtrl
* GetEditControl() const;
284 Returns the specified image list. @a which may be one of:
286 @b wxIMAGE_LIST_NORMAL
288 The normal (large icon) image list.
290 @b wxIMAGE_LIST_SMALL
292 The small icon image list.
294 @b wxIMAGE_LIST_STATE
296 The user-defined state image list (unimplemented).
298 wxImageList
* GetImageList(int which
) const;
301 Gets information about the item. See SetItem() for more
303 You must call @e info.SetId() to the ID of item you're interested in
304 before calling this method.
306 bool GetItem(wxListItem
& info
) const;
309 Returns the colour for this item. If the item has no specific colour, returns
310 an invalid colour (and not the default background control of the control
313 @see GetItemTextColour()
315 wxColour
GetItemBackgroundColour(long item
) const;
318 Returns the number of items in the list control.
320 int GetItemCount() const;
323 Gets the application-defined data associated with this item.
325 long GetItemData(long item
) const;
328 Returns the item's font.
330 wxFont
GetItemFont(long item
) const;
333 Returns the position of the item, in icon or small icon view.
335 bool GetItemPosition(long item
, wxPoint
& pos
) const;
338 Returns the rectangle representing the item's size and position, in physical
340 @a code is one of wxLIST_RECT_BOUNDS, wxLIST_RECT_ICON, wxLIST_RECT_LABEL.
342 bool GetItemRect(long item
, wxRect
& rect
,
343 int code
= wxLIST_RECT_BOUNDS
) const;
346 Retrieves the spacing between icons in pixels: horizontal spacing is returned
347 as @c x component of the wxSize object and the vertical
348 spacing as its @c y component.
350 wxSize
GetItemSpacing() const;
353 Gets the item state. For a list of state flags, see SetItem().
354 The @b stateMask indicates which state flags are of interest.
356 int GetItemState(long item
, long stateMask
) const;
359 Gets the item text for this item.
361 wxString
GetItemText(long item
) const;
364 Returns the colour for this item. If the item has no specific colour, returns
365 an invalid colour (and not the default foreground control of the control itself
366 as this wouldn't allow distinguishing between items having the same colour as
367 the current control foreground and items with default colour which, hence, have
368 always the same colour as the control).
370 wxColour
GetItemTextColour(long item
) const;
373 Searches for an item with the given geometry or state, starting from
374 @a item but excluding the @a item itself. If @a item is -1,
375 the first item that matches the specified flags will be returned.
376 Returns the first item with given state following @a item or -1 if
378 This function may be used to find all selected items in the control like this:
380 @a geometry can be one of:
384 Searches for an item above the specified item.
388 Searches for subsequent item by index.
392 Searches for an item below the specified item.
396 Searches for an item to the left of the specified item.
400 Searches for an item to the right of the specified item.
402 @note this parameter is only supported by wxMSW currently and ignored on
404 @a state can be a bitlist of the following:
406 wxLIST_STATE_DONTCARE
408 Don't care what the state is.
410 wxLIST_STATE_DROPHILITED
412 The item indicates it is a drop target.
416 The item has the focus.
418 wxLIST_STATE_SELECTED
420 The item is selected.
424 The item is selected as part of a cut and paste operation.
426 long GetNextItem(long item
, int geometry
= wxLIST_NEXT_ALL
,
427 int state
= wxLIST_STATE_DONTCARE
) const;
430 Returns the number of selected items in the list control.
432 int GetSelectedItemCount() const;
435 Returns the rectangle representing the size and position, in physical
436 coordinates, of the given subitem, i.e. the part of the row @a item in the
438 This method is only meaningfull when the wxListCtrl is in the report mode. If
439 @a subItem parameter is equal to the special value
440 @c wxLIST_GETSUBITEMRECT_WHOLEITEM the return value is the same as
442 @a code can be one of @c wxLIST_RECT_BOUNDS,
443 @c wxLIST_RECT_ICON or @c wxLIST_RECT_LABEL.
447 bool GetSubItemRect(long item
, long subItem
, wxRect
& rect
,
448 int code
= wxLIST_RECT_BOUNDS
) const;
451 Gets the text colour of the list control.
453 wxColour
GetTextColour() const;
456 Gets the index of the topmost visible item when in
459 long GetTopItem() const;
462 Returns the rectangle taken by all items in the control. In other words, if the
463 controls client size were equal to the size of this rectangle, no scrollbars
464 would be needed and no free space would be left.
465 Note that this function only works in the icon and small icon views, not in
466 list or report views (this is a limitation of the native Win32 control).
468 wxRect
GetViewRect() const;
471 Determines which item (if any) is at the specified point,
472 giving details in @e flags. Returns index of the item or @c wxNOT_FOUND
473 if no item is at the specified point.
474 @a flags will be a combination of the following flags:
478 Above the client area.
482 Below the client area.
484 wxLIST_HITTEST_NOWHERE
486 In the client area but below the last item.
488 wxLIST_HITTEST_ONITEMICON
490 On the bitmap associated with an item.
492 wxLIST_HITTEST_ONITEMLABEL
494 On the label (string) associated with an item.
496 wxLIST_HITTEST_ONITEMRIGHT
498 In the area to the right of an item.
500 wxLIST_HITTEST_ONITEMSTATEICON
502 On the state icon for a tree view item that is in a user-defined state.
504 wxLIST_HITTEST_TOLEFT
506 To the right of the client area.
508 wxLIST_HITTEST_TORIGHT
510 To the left of the client area.
512 wxLIST_HITTEST_ONITEM
514 Combination of wxLIST_HITTEST_ONITEMICON, wxLIST_HITTEST_ONITEMLABEL,
515 wxLIST_HITTEST_ONITEMSTATEICON.
517 If @a ptrSubItem is not @NULL and the wxListCtrl is in the report
518 mode the subitem (or column) number will also be provided.
519 This feature is only available in version 2.7.0 or higher and is currently only
520 implemented under wxMSW and requires at least comctl32.dll of verion 4.70 on
521 the host system or the value stored in @a ptrSubItem will be always -1. To
522 compile this feature into wxWidgets library you need to have access to
523 commctrl.h of version 4.70 that is provided by Microsoft.
525 long HitTest(const wxPoint
& point
, int& flags
,
526 long* ptrSubItem
) const;
530 For report view mode (only), inserts a column. For more details, see SetItem().
532 long InsertColumn(long col
, wxListItem
& info
);
533 long InsertColumn(long col
, const wxString
& heading
,
534 int format
= wxLIST_FORMAT_LEFT
,
540 Insert an image/string item.
545 Index of the new item, supplied by the application
549 index into the image list associated with this control and view style
551 long InsertItem(wxListItem
& info
);
552 long InsertItem(long index
, const wxString
& label
);
553 long InsertItem(long index
, int imageIndex
);
554 long InsertItem(long index
, const wxString
& label
,
559 This function may be overloaded in the derived class for a control with
560 @c wxLC_VIRTUAL style. It should return the attribute for the
561 for the specified @c item or @NULL to use the default appearance
563 wxListCtrl will not delete the pointer or keep a reference of it. You can
564 return the same wxListItemAttr pointer for every OnGetItemAttr call.
565 The base class version always returns @NULL.
567 @see OnGetItemImage(), OnGetItemColumnImage(),
570 virtual wxListItemAttr
* OnGetItemAttr(long item
) const;
573 Overload this function in the derived class for a control with
574 @c wxLC_VIRTUAL and @c wxLC_REPORT styles in order to specify the image
575 index for the given line and column.
576 The base class version always calls OnGetItemImage for the first column, else
579 @see OnGetItemText(), OnGetItemImage(),
582 virtual int OnGetItemColumnImage(long item
, long column
) const;
585 This function must be overloaded in the derived class for a control with
586 @c wxLC_VIRTUAL style having an @ref setimagelist() "image list"
587 (if the control doesn't have an image list, it is not necessary to overload
588 it). It should return the index of the items image in the controls image list
590 In a control with @c wxLC_REPORT style, OnGetItemImage only gets called for
591 the first column of each line.
592 The base class version always returns -1.
594 @see OnGetItemText(), OnGetItemColumnImage(),
597 virtual int OnGetItemImage(long item
) const;
600 This function @b must be overloaded in the derived class for a control with
601 @c wxLC_VIRTUAL style. It should return the string containing the text of
602 the given @a column for the specified @c item.
604 @see SetItemCount(), OnGetItemImage(),
605 OnGetItemColumnImage(), OnGetItemAttr()
607 virtual wxString
OnGetItemText(long item
, long column
) const;
610 Redraws the given @e item. This is only useful for the virtual list controls
611 as without calling this function the displayed value of the item doesn't change
612 even when the underlying data does change.
616 void RefreshItem(long item
);
619 Redraws the items between @a itemFrom and @e itemTo. The starting item
620 must be less than or equal to the ending one.
621 Just as RefreshItem() this is only useful for
622 virtual list controls.
624 void RefreshItems(long itemFrom
, long itemTo
);
627 Scrolls the list control. If in icon, small icon or report view mode,
628 @a dx specifies the number of pixels to scroll. If in list view mode,
629 @a dx specifies the number of columns to scroll. @a dy always specifies
630 the number of pixels to scroll vertically.
631 @note This method is currently only implemented in the Windows version.
633 bool ScrollList(int dx
, int dy
);
636 Sets the background colour (GetBackgroundColour already implicit in
639 void SetBackgroundColour(const wxColour
& col
);
642 Sets information about this column. See SetItem() for more
645 bool SetColumn(int col
, wxListItem
& item
);
648 Sets the column width.
649 @a width can be a width in pixels or wxLIST_AUTOSIZE (-1) or
650 wxLIST_AUTOSIZE_USEHEADER (-2).
651 wxLIST_AUTOSIZE will resize the column to the length of its longest item.
652 wxLIST_AUTOSIZE_USEHEADER
653 will resize the column to the length of the header (Win32) or 80 pixels (other
655 In small or normal icon view, @a col must be -1, and the column width is set
658 bool SetColumnWidth(int col
, int width
);
661 Sets the order of all columns at once. The @a orders array must have the
662 same number elements as the number of columns and contain each position exactly
664 This function is valid in report view only.
666 bool SetColumnOrder(const wxArrayInt
& orders
) const;
669 Sets the image list associated with the control. @a which is one of
670 wxIMAGE_LIST_NORMAL, wxIMAGE_LIST_SMALL, wxIMAGE_LIST_STATE (the last is
672 This method does not take ownership of the image list, you have to
675 @see AssignImageList()
677 void SetImageList(wxImageList
* imageList
, int which
);
681 Sets a string field at a particular column.
683 bool SetItem(wxListItem
& info
);
684 long SetItem(long index
, int col
, const wxStringamp
; label
,
686 m_mask m_state field is valid
.
697 The m_text field is valid
.
708 The m_image field is valid
.
719 The m_data field is valid
.
730 The m_width field is valid
.
741 The m_format field is valid
.
747 The m_stateMask
and m_state members take flags from the following
:
755 wxLIST_STATE_DONTCARE
760 Don
't care what the state is. Win32 only.
766 wxLIST_STATE_DROPHILITED
771 The item is highlighted to receive a drop event. Win32 only.
782 The item has the focus.
788 wxLIST_STATE_SELECTED
793 The item is selected.
804 The item is in the cut state. Win32 only.
810 The wxListItem object can also contain item-specific colour and font
811 information: for this you need to call one of SetTextColour(),
812 SetBackgroundColour() or SetFont() functions on it passing it the colour/font
813 to use. If the colour/font is not specified, the default list control
815 long SetItem(long index, int col, const wxString& label,
820 Sets the background colour for this item. This function only works in report
822 The colour can be retrieved using
823 GetItemBackgroundColour().
825 void SetItemBackgroundColour(long item, const wxColour& col);
828 Sets the image associated with the item. In report view, you can specify the
830 The image is an index into the image list associated with the list control.
832 bool SetItemColumnImage(long item, long column, int image);
835 This method can only be used with virtual list controls.
837 It is used to indicate to the control the number of items it contains.
838 After calling it, the main program should be ready to handle calls to
839 various item callbacks (such as wxListCtrl::OnGetItemText) for all
840 items in the range from 0 to @a count.
842 Notice that the control is not necessarily redrawn after this call as
843 it may be undesirable if an item which is not visible on the screen
844 anyhow was added to or removed from a control displaying many items, if
845 you do need to refresh the display you can just call Refresh() manually.
847 void SetItemCount(long count);
850 Associates application-defined data with this item.
851 Notice that this function cannot be used to associate pointers with the control
852 items, use SetItemPtrData() instead.
854 bool SetItemData(long item, long data);
857 Sets the item's font
.
859 void SetItemFont(long item
, const wxFont
& font
);
863 Sets the unselected and selected images associated with the item. The images
865 image list associated with the list control. This form is deprecated: @a
869 bool SetItemImage(long item
, int image
);
870 bool SetItemImage(long item
, int image
, int selImage
);
874 Sets the position of the item, in icon or small icon view. Windows only.
876 bool SetItemPosition(long item
, const wxPoint
& pos
);
879 Associates application-defined data with this item. The @a data parameter may
880 be either an integer or a pointer cast to the @c wxUIntPtr type which is
881 guaranteed to be large enough to be able to contain all integer types and
886 bool SetItemPtrData(long item
, wxUIntPtr data
);
889 Sets the item state. For a list of state flags, see SetItem().
890 The @b stateMask indicates which state flags are valid.
892 bool SetItemState(long item
, long state
, long stateMask
);
895 Sets the item text for this item.
897 void SetItemText(long item
, const wxString
& text
);
900 Sets the colour for this item. This function only works in report view.
901 The colour can be retrieved using
904 void SetItemTextColour(long item
, const wxColour
& col
);
907 Adds or removes a single window style.
909 void SetSingleStyle(long style
, bool add
= true);
912 Sets the text colour of the list control.
914 void SetTextColour(const wxColour
& col
);
917 Sets the whole window style, deleting all items.
919 void SetWindowStyleFlag(long style
);
922 Call this function to sort the items in the list control. Sorting is done
923 using the specified @a fnSortCallBack function. This function must have the
926 It is called each time when the two items must be compared and should return 0
927 if the items are equal, negative value if the first item is less than the
928 second one and positive value if the first one is greater than the second one
929 (the same convention as used by @c qsort(3)).
932 client data associated with the first item (NOT the index).
934 client data associated with the second item (NOT the index).
936 the value passed to SortItems() itself.
938 bool SortItems(wxListCtrlCompare fnSortCallBack
, long data
);
945 @wxheader{listctrl.h}
947 A list event holds information about events associated with wxListCtrl objects.
954 class wxListEvent
: public wxNotifyEvent
960 wxListEvent(wxEventType commandType
= 0, int id
= 0);
963 For @c EVT_LIST_CACHE_HINT event only: return the first item which the
964 list control advises us to cache.
966 long GetCacheFrom() const;
969 For @c EVT_LIST_CACHE_HINT event only: return the last item (inclusive)
970 which the list control advises us to cache.
972 long GetCacheTo() const;
975 The column position: it is only used with @c COL events. For the column
976 dragging events, it is the column to the left of the divider being dragged, for
977 the column click events it may be -1 if the user clicked in the list control
978 header outside any column.
980 int GetColumn() const;
985 long GetData() const;
990 int GetImage() const;
995 long GetIndex() const;
998 An item object, used by some events. See also wxListCtrl::SetItem.
1000 const wxListItem
GetItem() const;
1003 Key code if the event is a keypress event.
1005 int GetKeyCode() const;
1008 The (new) item label for @c EVT_LIST_END_LABEL_EDIT event.
1010 const wxString
GetLabel() const;
1015 long GetMask() const;
1018 The position of the mouse pointer if the event is a drag event.
1020 wxPoint
GetPoint() const;
1025 const wxString
GetText() const;
1028 This method only makes sense for @c EVT_LIST_END_LABEL_EDIT message
1029 and returns @true if it the label editing has been cancelled by the user
1030 (GetLabel() returns an empty string in this case
1031 but it doesn't allow the application to distinguish between really cancelling
1033 the admittedly rare case when the user wants to rename it to an empty string).
1035 bool IsEditCancelled() const;
1041 @class wxListItemAttr
1042 @wxheader{listctrl.h}
1044 Represents the attributes (color, font, ...) of a
1045 wxListCtrl wxListItem.
1050 @see @ref overview_wxlistctrloverview "wxListCtrl overview", wxListCtrl,
1053 class wxListItemAttr
1058 Construct a wxListItemAttr with the specified foreground and
1059 background colors and font.
1062 wxListItemAttr(const wxColour colText
,
1063 const wxColour colBack
,
1068 Returns the currently set background color.
1070 const wxColour
GetBackgroundColour() const;
1073 Returns the currently set font.
1075 const wxFont
GetFont() const;
1078 Returns the currently set text color.
1080 const wxColour
GetTextColour() const;
1083 Returns @true if the currently set background color is valid.
1085 bool HasBackgroundColour() const;
1088 Returns @true if the currently set font is valid.
1090 bool HasFont() const;
1093 Returns @true if the currently set text color is valid.
1095 bool HasTextColour() const;
1098 Sets a new background color.
1100 void SetBackgroundColour(const wxColour
& colour
);
1105 void SetFont(const wxFont
& font
);
1108 Sets a new text color.
1110 void SetTextColour(const wxColour
& colour
);
1117 @wxheader{listctrl.h}
1119 This class currently simply presents a simpler to use interface for the
1120 wxListCtrl -- it can be thought of as a @e faade
1121 for that complicated class. Using it is preferable to using
1122 wxListCtrl directly whenever possible because in the
1123 future some ports might implement wxListView but not the full set of wxListCtrl
1126 Other than different interface, this class is identical to wxListCtrl. In
1127 particular, it uses the same events, same window styles and so on.
1131 <!-- @appearance{listview.png} -->
1133 @see wxListView::SetColumnImage
1135 class wxListView
: public wxListCtrl
1139 Resets the column image -- after calling this function, no image will be shown.
1142 the column to clear image for
1144 @see SetColumnImage()
1146 void ClearColumnImage(int col
);
1149 Sets focus to the item with the given @e index.
1151 void Focus(long index
);
1154 Returns the first selected item in a (presumably) multiple selection control.
1155 Together with GetNextSelected() it can be
1156 used to iterate over all selected items in the control.
1158 @return The first selected item, if any, -1 otherwise.
1160 long GetFirstSelected() const;
1163 Returns the currently focused item or -1 if none.
1165 @see IsSelected(), Focus()
1167 long GetFocusedItem() const;
1170 Used together with GetFirstSelected() to
1171 iterate over all selected items in the control.
1173 @return Returns the next selected item or -1 if there are no more of
1176 long GetNextSelected(long item
) const;
1179 Returns @true if the item with the given @a index is selected,
1182 @see GetFirstSelected(), GetNextSelected()
1184 bool IsSelected(long index
) const;
1187 Selects or unselects the given item.
1190 the item to select or unselect
1192 if @true (default), selects the item, otherwise unselects it
1194 @see wxListCtrl::SetItemState
1196 void Select(bool on
= true);
1199 Sets the column image for the specified column. To use the column images, the
1200 control must have a valid image list with at least one image.
1203 the column to set image for
1205 the index of the column image in the controls image list
1207 void SetColumnImage(int col
, int image
);
1214 @wxheader{listctrl.h}
1216 This class stores information about a wxListCtrl item or column.
1221 class wxListItem
: public wxObject
1230 Resets the item state to the default.
1235 Returns the alignment for this item. Can be one of
1236 wxLIST_FORMAT_LEFT, wxLIST_FORMAT_RIGHT or wxLIST_FORMAT_CENTRE.
1238 wxListColumnFormat
GetAlign() const;
1241 Returns the background colour for this item.
1243 wxColour
GetBackgroundColour() const;
1246 Returns the zero-based column; meaningful only in report mode.
1248 int GetColumn() const;
1251 Returns client data associated with the control. Please note that
1252 client data is associated with the item and not with subitems.
1254 long GetData() const;
1257 Returns the font used to display the item.
1259 wxFont
GetFont() const;
1262 Returns the zero-based item position.
1267 Returns the zero-based index of the image
1268 associated with the item into the image list.
1270 int GetImage() const;
1273 Returns a bit mask indicating which fields of the structure are valid;
1274 can be any combination of the following values:
1278 @b GetState is valid.
1282 @b GetText is valid.
1286 @b GetImage is valid.
1290 @b GetData is valid.
1294 @b GetWidth is valid.
1298 @b GetFormat is valid.
1300 long GetMask() const;
1303 Returns a bit field representing the state of the item. Can be any
1306 wxLIST_STATE_DONTCARE
1308 Don't care what the state is. Win32 only.
1310 wxLIST_STATE_DROPHILITED
1312 The item is highlighted to receive a drop event. Win32 only.
1314 wxLIST_STATE_FOCUSED
1316 The item has the focus.
1318 wxLIST_STATE_SELECTED
1320 The item is selected.
1324 The item is in the cut state. Win32 only.
1326 long GetState() const;
1329 Returns the label/header text.
1331 const wxString
GetText() const;
1334 Returns the text colour.
1336 wxColour
GetTextColour() const;
1339 Meaningful only for column headers in report mode. Returns the column width.
1341 int GetWidth() const;
1344 Sets the alignment for the item. See also
1347 void SetAlign(wxListColumnFormat align
);
1350 Sets the background colour for the item.
1352 void SetBackgroundColour(const wxColour
& colBack
);
1355 Sets the zero-based column. Meaningful only in report mode.
1357 void SetColumn(int col
);
1361 Sets client data for the item. Please note that
1362 client data is associated with the item and not with subitems.
1364 void SetData(long data
);
1365 void SetData(void* data
);
1369 Sets the font for the item.
1371 void SetFont(const wxFont
& font
);
1374 Sets the zero-based item position.
1376 void SetId(long id
);
1379 Sets the zero-based index of the image associated with the item
1380 into the image list.
1382 void SetImage(int image
);
1385 Sets the mask of valid fields. See GetMask().
1387 void SetMask(long mask
);
1390 Sets the item state flags (note that the valid state flags are influenced
1391 by the value of the state mask, see
1392 wxListItem::SetStateMask).
1393 See GetState() for valid flag
1396 void SetState(long state
);
1399 Sets the bitmask that is used to determine which of the state flags
1400 are to be set. See also SetState().
1402 void SetStateMask(long stateMask
);
1405 Sets the text label for the item.
1407 void SetText(const wxString
& text
);
1410 Sets the text colour for the item.
1412 void SetTextColour(const wxColour
& colText
);
1415 Meaningful only for column headers in report mode. Sets the column width.
1417 void SetWidth(int width
);