]> git.saurik.com Git - wxWidgets.git/blob - docs/latex/wx/treectrl.tex
wxSplitPath() bugs corrected and it's documented
[wxWidgets.git] / docs / latex / wx / treectrl.tex
1 \section{\class{wxTreeCtrl}}\label{wxtreectrl}
2
3 A tree control presents information as a hierarchy, with items that may be expanded
4 to show further items. Items in a tree control are referenced by wxTreeItemId handles.
5
6 To intercept events from a tree control, use the event table macros described in \helpref{wxTreeEvent}{wxtreeevent}.
7
8 \wxheading{Derived from}
9
10 \helpref{wxControl}{wxcontrol}\\
11 \helpref{wxWindow}{wxwindow}\\
12 \helpref{wxEvtHandler}{wxevthandler}\\
13 \helpref{wxObject}{wxobject}
14
15 \wxheading{Include files}
16
17 <wx/treectrl.h>
18
19 \wxheading{Window styles}
20
21 \twocolwidtha{5cm}
22 \begin{twocollist}\itemsep=0pt
23 \twocolitem{\windowstyle{wxTR\_HAS\_BUTTONS}}{Use this style to show + and - buttons to the
24 left of parent items.}
25 \twocolitem{\windowstyle{wxTR\_EDIT\_LABELS}}{Use this style if you wish the user to be
26 able to edit labels in the tree control.}
27 \end{twocollist}
28
29 See also \helpref{window styles overview}{windowstyles}.
30
31 \wxheading{Event handling}
32
33 To process input from a tree control, use these event handler macros to direct input to member
34 functions that take a \helpref{wxTreeEvent}{wxtreeevent} argument.
35
36 \twocolwidtha{7cm}
37 \begin{twocollist}\itemsep=0pt
38 \twocolitem{{\bf EVT\_TREE\_BEGIN\_DRAG(id, func)}}{Begin dragging with the left mouse button.}
39 \twocolitem{{\bf EVT\_TREE\_BEGIN\_RDRAG(id, func)}}{Begin dragging with the right mouse button.}
40 \twocolitem{{\bf EVT\_TREE\_BEGIN\_LABEL\_EDIT(id, func)}}{Begin editing a label.}
41 \twocolitem{{\bf EVT\_TREE\_END\_LABEL\_EDIT(id, func)}}{Finish editing a label.}
42 \twocolitem{{\bf EVT\_TREE\_DELETE\_ITEM(id, func)}}{Delete an item.}
43 \twocolitem{{\bf EVT\_TREE\_GET\_INFO(id, func)}}{Request information from the application.}
44 \twocolitem{{\bf EVT\_TREE\_SET\_INFO(id, func)}}{Information is being supplied.}
45 \twocolitem{{\bf EVT\_TREE\_ITEM\_EXPANDED(id, func)}}{Parent has been expanded.}
46 \twocolitem{{\bf EVT\_TREE\_ITEM\_EXPANDING(id, func)}}{Parent is being expanded.}
47 \twocolitem{{\bf EVT\_TREE\_SEL\_CHANGED(id, func)}}{Selection has changed.}
48 \twocolitem{{\bf EVT\_TREE\_SEL\_CHANGING(id, func)}}{Selection is changing.}
49 \twocolitem{{\bf EVT\_TREE\_KEY\_DOWN(id, func)}}{A key has been pressed.}
50 \end{twocollist}%
51
52 \wxheading{See also}
53
54 \helpref{wxTreeItemData}{wxtreeitemdata}, \helpref{wxTreeCtrl overview}{wxtreectrloverview}, \helpref{wxListBox}{wxlistbox}, \helpref{wxListCtrl}{wxlistctrl},\rtfsp
55 \helpref{wxImageList}{wximagelist}, \helpref{wxTreeEvent}{wxtreeevent}
56
57 \latexignore{\rtfignore{\wxheading{Members}}}
58
59 \membersection{wxTreeCtrl::wxTreeCtrl}\label{wxtreectrlconstr}
60
61 \func{}{wxTreeCtrl}{\void}
62
63 Default constructor.
64
65 \func{}{wxTreeCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
66 \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
67 \param{long}{ style = wxTR\_HAS\_BUTTONS}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listCtrl"}}
68
69 Constructor, creating and showing a tree control.
70
71 \wxheading{Parameters}
72
73 \docparam{parent}{Parent window. Must not be NULL.}
74
75 \docparam{id}{Window identifier. A value of -1 indicates a default value.}
76
77 \docparam{pos}{Window position.}
78
79 \docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized
80 appropriately.}
81
82 \docparam{style}{Window style. See \helpref{wxTreeCtrl}{wxtreectrl}.}
83
84 \docparam{validator}{Window validator.}
85
86 \docparam{name}{Window name.}
87
88 \wxheading{See also}
89
90 \helpref{wxTreeCtrl::Create}{wxtreectrlcreate}, \helpref{wxValidator}{wxvalidator}
91
92 \membersection{wxTreeCtrl::\destruct{wxTreeCtrl}}
93
94 \func{void}{\destruct{wxTreeCtrl}}{\void}
95
96 Destructor, destroying the list control.
97
98 \membersection{wxTreeCtrl::AddRoot}\label{wxtreectrladdroot}
99
100 \func{wxTreeItemId}{AddRoot}{\param{const wxString\&}{ text},
101 \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = NULL}}
102
103 Adds the root node to the tree, returning the new item.
104
105 If {\it image} > -1 and {\it selImage} is -1, the same image is used for
106 both selected and unselected items.
107
108 \membersection{wxTreeCtrl::AppendItem}\label{wxtreectrlappenditem}
109
110 \func{wxTreeItemId}{AppendItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxString\&}{ text},
111 \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = NULL}}
112
113 Appends an item to the end of the branch identified by {\it parent}, return a new item id.
114
115 If {\it image} > -1 and {\it selImage} is -1, the same image is used for
116 both selected and unselected items.
117
118 \membersection{wxTreeCtrl::Collapse}\label{wxtreectrlcollapse}
119
120 \func{void}{Collapse}{\param{const wxTreeItemId\&}{ item}}
121
122 Collapses the given item.
123
124 \membersection{wxTreeCtrl::CollapseAndReset}\label{wxtreectrlcollapseandreset}
125
126 \func{void}{CollapseAndReset}{\param{const wxTreeItemId\&}{ item}}
127
128 Collapses the given item and removes all children.
129
130 \membersection{wxTreeCtrl::Create}\label{wxtreectrlcreate}
131
132 \func{bool}{wxTreeCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
133 \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
134 \param{long}{ style = wxTR\_HAS\_BUTTONS}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listCtrl"}}
135
136 Creates the tree control. See \helpref{wxTreeCtrl::wxTreeCtrl}{wxtreectrlconstr} for further details.
137
138 \membersection{wxTreeCtrl::Delete}\label{wxtreectrldelete}
139
140 \func{void}{Delete}{\param{const wxTreeItemId\&}{ item}}
141
142 Deletes the specified item.
143
144 \membersection{wxTreeCtrl::DeleteAllItems}\label{wxtreectrldeleteallitems}
145
146 \func{void}{DeleteAllItems}{\void}
147
148 Deletes all the items in the control.
149
150 \membersection{wxTreeCtrl::EditLabel}\label{wxtreectrleditlabel}
151
152 \func{wxTextCtrl*}{EditLabel}{\param{const wxTreeItemId\&}{ item}, \param{wxClassInfo*}{ textControlClass = CLASSINFO(wxTextCtrl)}}
153
154 Starts editing the label of the given item, returning the text control that the tree control uses for editing.
155
156 Pass another {\it textControlClass} if a derived class is required. It usually will be, in order for
157 the application to detect when editing has finished and to call \helpref{wxTreeCtrl::EndEditLabel}{wxtreectrlendeditlabel}.
158
159 Do not delete the text control yourself.
160
161 This function is currently supported under Windows only.
162
163 \wxheading{See also}
164
165 \helpref{wxTreeCtrl::EndEditLabel}{wxtreectrlendeditlabel}
166
167 \membersection{wxTreeCtrl::EndEditLabel}\label{wxtreectrlendeditlabel}
168
169 \func{void}{EndEditLabel}{\param{bool }{cancelEdit}}
170
171 Ends label editing. If {\it cancelEdit} is TRUE, the edit will be cancelled.
172
173 This function is currently supported under Windows only.
174
175 \wxheading{See also}
176
177 \helpref{wxTreeCtrl::EditLabel}{wxtreectrleditlabel}
178
179 \membersection{wxTreeCtrl::EnsureVisible}\label{wxtreectrlensurevisible}
180
181 \func{void}{EnsureVisible}{\param{const wxTreeItemId\&}{ item}}
182
183 Scrolls and/or expands items to ensure that the given item is visible.
184
185 \membersection{wxTreeCtrl::Expand}\label{wxtreectrlexpand}
186
187 \func{void}{Expand}{\param{const wxTreeItemId\&}{ item}}
188
189 Expands the given item.
190
191 \membersection{wxTreeCtrl::GetBoundingRect}\label{wxtreectrlgetitemrect}
192
193 \constfunc{void}{GetBoundingRect}{\param{const wxTreeItemId\&}{ item}, \param{wxRect\& }{rect}, \param{bool }{textOnly = FALSE}}
194
195 Returns the position and size of the rectangle bounding the item.
196
197 \membersection{wxTreeCtrl::GetChildrenCount}\label{wxtreectrlgetchildrencount}
198
199 \constfunc{size\_t}{GetChildrenCount}{\param{const wxTreeItemId\&}{ item}, \param{bool}{ recursively = TRUE}}
200
201 Returns the number of items in the branch. If {\it recursively} is TRUE, returns the total number
202 of descendants, otherwise only one level of children is counted.
203
204 \membersection{wxTreeCtrl::GetCount}\label{wxtreectrlgetcount}
205
206 \constfunc{int}{GetCount}{\void}
207
208 Returns the number of items in the control.
209
210 \membersection{wxTreeCtrl::GetEditControl}\label{wxtreectrlgeteditcontrol}
211
212 \constfunc{wxTextCtrl\&}{GetEditControl}{\void}
213
214 Returns the edit control used to edit a label.
215
216 \membersection{wxTreeCtrl::GetFirstChild}\label{wxtreectrlgetfirstchild}
217
218 \constfunc{wxTreeItemId}{GetFirstChild}{\param{const wxTreeItemId\&}{ item}, \param{long\& }{cookie}}
219
220 Returns the first child; call \helpref{wxTreeCtrl::GetNextChild}{wxtreectrlgetnextchild} for the next child.
221
222 For this enumeration function you must pass in a `cookie' parameter
223 which is opaque for the application but is necessary for the library
224 to make these functions reentrant (i.e. allow more than one
225 enumeration on one and the same object simultaneously). The cookie passed to
226 GetFirstChild and GetNextChild should be the same.
227
228 Returns 0 if there are no further children.
229
230 \wxheading{See also}
231
232 \helpref{wxTreeCtrl::GetNextChild}{wxtreectrlgetnextchild}
233
234 \membersection{wxTreeCtrl::GetFirstVisibleItem}\label{wxtreectrlgetfirstvisibleitem}
235
236 \constfunc{wxTreeItemId}{GetFirstVisibleItem}{\void}
237
238 Returns the first visible item.
239
240 \membersection{wxTreeCtrl::GetImageList}\label{wxtreectrlgetimagelist}
241
242 \constfunc{wxImageList*}{GetImageList}{\param{int }{which = wxIMAGE\_LIST\_NORMAL}}
243
244 Returns the specified image list. {\it which} may be one of:
245
246 \twocolwidtha{5cm}
247 \begin{twocollist}\itemsep=0pt
248 \twocolitem{\windowstyle{wxIMAGE\_LIST\_NORMAL}}{The normal (large icon) image list.}
249 \twocolitem{\windowstyle{wxIMAGE\_LIST\_SMALL}}{The small icon image list.}
250 \twocolitem{\windowstyle{wxIMAGE\_LIST\_STATE}}{The user-defined state image list (unimplemented).}
251 \end{twocollist}
252
253 \membersection{wxTreeCtrl::GetIndent}\label{wxtreectrlgetindent}
254
255 \constfunc{int}{GetIndent}{\void}
256
257 Returns the current tree control indentation.
258
259 \membersection{wxTreeCtrl::GetItemData}\label{wxtreectrlgetitemdata}
260
261 \constfunc{wxTreeItemData*}{GetItemData}{\param{const wxTreeItemId\&}{ item}}
262
263 Returns the tree item data associated with the item.
264
265 \wxheading{See also}
266
267 \helpref{wxTreeItemData}{wxtreeitemdata}
268
269 \membersection{wxTreeCtrl::GetItemImage}\label{wxtreectrlgetitemimage}
270
271 \constfunc{int}{GetItemImage}{\param{const wxTreeItemId\& }{item}}
272
273 Gets the normal item image.
274
275 \membersection{wxTreeCtrl::GetItemText}\label{wxtreectrlgetitemtext}
276
277 \constfunc{wxString}{GetItemText}{\param{const wxTreeItemId\&}{ item}}
278
279 Returns the item label.
280
281 \membersection{wxTreeCtrl::GetLastChild}\label{wxtreectrlgetlastchild}
282
283 \constfunc{wxTreeItemId}{GetLastChild}{\param{const wxTreeItemId\&}{ item}}
284
285 Returns the last child of the item (or 0 if this item has no children).
286
287 \wxheading{See also}
288
289 \helpref{GetFirstChild}{wxtreectrlgetfirstchild},
290 \helpref{GetLastChild}{wxtreectrlgetlastchild}
291
292 \membersection{wxTreeCtrl::GetNextChild}\label{wxtreectrlgetnextchild}
293
294 \constfunc{wxTreeItemId}{GetNextChild}{\param{const wxTreeItemId\&}{ item}, \param{long\& }{cookie}}
295
296 Returns the next child; call \helpref{wxTreeCtrl::GetFirstChild}{wxtreectrlgetfirstchild} for the first child.
297
298 For this enumeration function you must pass in a `cookie' parameter
299 which is opaque for the application but is necessary for the library
300 to make these functions reentrant (i.e. allow more than one
301 enumeration on one and the same object simultaneously). The cookie passed to
302 GetFirstChild and GetNextChild should be the same.
303
304 Returns 0 if there are no further children.
305
306 \wxheading{See also}
307
308 \helpref{wxTreeCtrl::GetFirstChild}{wxtreectrlgetfirstchild}
309
310 \membersection{wxTreeCtrl::GetNextSibling}\label{wxtreectrlgetnextsibling}
311
312 \constfunc{wxTreeItemId}{GetNextSibling}{\param{const wxTreeItemId\&}{ item}}
313
314 Returns the next sibling of the specified item; call \helpref{wxTreeCtrl::GetPrevSibling}{wxtreectrlgetprevsibling} for the previous sibling.
315
316 Returns 0 if there are no further siblings.
317
318 \wxheading{See also}
319
320 \helpref{wxTreeCtrl::GetPrevSibling}{wxtreectrlgetprevsibling}
321
322 \membersection{wxTreeCtrl::GetNextVisible}\label{wxtreectrlgetnextvisible}
323
324 \constfunc{wxTreeItemId}{GetNextVisible}{\param{const wxTreeItemId\&}{ item}}
325
326 Returns the next visible item.
327
328 \membersection{wxTreeCtrl::GetParent}\label{wxtreectrlgetparent}
329
330 \constfunc{wxTreeItemId}{GetParent}{\param{const wxTreeItemId\&}{ item}}
331
332 Returns the item's parent.
333
334 \membersection{wxTreeCtrl::GetPrevSibling}\label{wxtreectrlgetprevsibling}
335
336 \constfunc{wxTreeItemId}{GetPrevSibling}{\param{const wxTreeItemId\&}{ item}}
337
338 Returns the previous sibling of the specified item; call \helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling} for the next sibling.
339
340 Returns 0 if there are no further children.
341
342 \wxheading{See also}
343
344 \helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling}
345
346 \membersection{wxTreeCtrl::GetPrevVisible}\label{wxtreectrlgetprevvisible}
347
348 \constfunc{wxTreeItemId}{GetPrevVisible}{\param{const wxTreeItemId\&}{ item}}
349
350 Returns the previous visible item.
351
352 \membersection{wxTreeCtrl::GetRootItem}\label{wxtreectrlgetrootitem}
353
354 \constfunc{wxTreeItemId}{GetRootItem}{\void}
355
356 Returns the root item for the tree control.
357
358 \membersection{wxTreeCtrl::GetSelectedItemImage}\label{wxtreectrlgetselecteditemimage}
359
360 \constfunc{int}{GetSelectedItemImage}{\param{const wxTreeItemId\& }{item}}
361
362 Gets the selected item image.
363
364 \membersection{wxTreeCtrl::GetSelection}\label{wxtreectrlgetselection}
365
366 \constfunc{wxTreeItemId}{GetSelection}{\void}
367
368 Returns the selection, or 0 if there is no selection.
369
370 \membersection{wxTreeCtrl::HitTest}\label{wxtreectrlhittest}
371
372 \func{long}{HitTest}{\param{const wxPoint\& }{point}, \param{int\& }{flags}}
373
374 Calculates which (if any) item is under the given point, returning extra information
375 in {\it flags}. {\it flags} is a bitlist of the following:
376
377 \twocolwidtha{5cm}
378 \begin{twocollist}\itemsep=0pt
379 \twocolitem{wxTREE\_HITTEST\_ABOVE}{Above the client area.}
380 \twocolitem{wxTREE\_HITTEST\_BELOW}{Below the client area.}
381 \twocolitem{wxTREE\_HITTEST\_NOWHERE}{In the client area but below the last item.}
382 \twocolitem{wxTREE\_HITTEST\_ONITEMBUTTON}{On the button associated with an item.}
383 \twocolitem{wxTREE\_HITTEST\_ONITEMICON}{On the bitmap associated with an item.}
384 \twocolitem{wxTREE\_HITTEST\_ONITEMINDENT}{In the indentation associated with an item.}
385 \twocolitem{wxTREE\_HITTEST\_ONITEMLABEL}{On the label (string) associated with an item.}
386 \twocolitem{wxTREE\_HITTEST\_ONITEMRIGHT}{In the area to the right of an item.}
387 \twocolitem{wxTREE\_HITTEST\_ONITEMSTATEICON}{On the state icon for a tree view item that is in a user-defined state.}
388 \twocolitem{wxTREE\_HITTEST\_TOLEFT}{To the right of the client area.}
389 \twocolitem{wxTREE\_HITTEST\_TORIGHT}{To the left of the client area.}
390 \end{twocollist}
391
392 \membersection{wxTreeCtrl::InsertItem}\label{wxtreectrlinsertitem}
393
394 \func{wxTreeItemId}{InsertItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxTreeItemId\& }{previous}, \param{const wxString\&}{ text},
395 \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = NULL}}
396
397 Inserts an item after a given one.
398
399 If {\it image} > -1 and {\it selImage} is -1, the same image is used for
400 both selected and unselected items.
401
402 \membersection{wxTreeCtrl::IsExpanded}\label{wxtreectrlisexpanded}
403
404 \constfunc{bool}{IsExpanded}{\param{const wxTreeItemId\&}{ item}}
405
406 Returns TRUE if the item is expanded (only makes sense if it has children).
407
408 \membersection{wxTreeCtrl::IsSelected}\label{wxtreectrlisselected}
409
410 \constfunc{bool}{IsSelected}{\param{const wxTreeItemId\&}{ item}}
411
412 Returns TRUE if the item is selected.
413
414 \membersection{wxTreeCtrl::IsVisible}\label{wxtreectrlisvisible}
415
416 \constfunc{bool}{IsVisible}{\param{const wxTreeItemId\&}{ item}}
417
418 Returns TRUE if the item is visible (it might be outside the view, or not expanded).
419
420 \membersection{wxTreeCtrl::ItemHasChildren}\label{wxtreectrlitemhaschildren}
421
422 \constfunc{bool}{ItemHasChildren}{\param{const wxTreeItemId\&}{ item}}
423
424 Returns TRUE if the item has children.
425
426 \membersection{wxTreeCtrl::PrependItem}\label{wxtreectrlprependitem}
427
428 \func{wxTreeItemId}{PrependItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxString\&}{ text},
429 \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = NULL}}
430
431 Appends an item as the first child of {\it parent}, return a new item id.
432
433 If {\it image} > -1 and {\it selImage} is -1, the same image is used for
434 both selected and unselected items.
435
436 \membersection{wxTreeCtrl::ScrollTo}\label{wxtreectrlscrollto}
437
438 \func{void}{ScrollTo}{\param{const wxTreeItemId\&}{ item}}
439
440 Scrolls the specified item into view.
441
442 \membersection{wxTreeCtrl::SelectItem}\label{wxtreectrlselectitem}
443
444 \func{bool}{SelectItem}{\param{const wxTreeItemId\&}{ item}}
445
446 Selects the given item.
447
448 \membersection{wxTreeCtrl::SetIndent}\label{wxtreectrlsetindent}
449
450 \func{void}{SetIndent}{\param{int }{indent}}
451
452 Sets the indentation for the tree control.
453
454 \membersection{wxTreeCtrl::SetImageList}\label{wxtreectrlsetimagelist}
455
456 \func{void}{SetImageList}{\param{wxImageList*}{ imageList}, \param{int }{which = wxIMAGE\_LIST\_NORMAL}}
457
458 Sets the image list. {\it which} should be one of wxIMAGE\_LIST\_NORMAL, wxIMAGE\_LIST\_SMALL and
459 wxIMAGE\_LIST\_STATE.
460
461 \membersection{wxTreeCtrl::SetItemData}\label{wxtreectrlsetitemdata}
462
463 \func{void}{SetItemData}{\param{const wxTreeItemId\&}{ item}, \param{wxTreeItemData* }{data}}
464
465 Sets the item client data.
466
467 \membersection{wxTreeCtrl::SetItemHasChildren}\label{wxtreectrlsetitemhaschildren}
468
469 \func{void}{SetItemHasChildren}{\param{const wxTreeItemId\&}{ item}, \param{bool }{hasChildren = TRUE}}
470
471 Force appearance of the button next to the item. This is useful to
472 allow the user to expand the items which don't have any children now,
473 but instead adding them only when needed, thus minimizing memory
474 usage and loading time.
475
476 \membersection{wxTreeCtrl::SetItemImage}\label{wxtreectrlsetitemimage}
477
478 \func{void}{SetItemImage}{\param{const wxTreeItemId\&}{ item}, \param{int }{image}}
479
480 Sets the normal item image. This is an index into the assciated image list.
481
482 \membersection{wxTreeCtrl::SetItemSelectedImage}\label{wxtreectrlsetitemselectedimage}
483
484 \func{void}{SetItemSelectedImage}{\param{const wxTreeItemId\&}{ item}, \param{int }{selImage}}
485
486 Sets the item selected image. This is an index into the assciated image list.
487
488 \membersection{wxTreeCtrl::SetItemText}\label{wxtreectrlsetitemtext}
489
490 \func{void}{SetItemText}{\param{const wxTreeItemId\&}{ item}, \param{const wxString\& }{text}}
491
492 Sets the item label.
493
494 \membersection{wxTreeCtrl::SortChildren}\label{wxtreectrlsortchildren}
495
496 \func{void}{SortChildren}{\param{const wxTreeItemId\&}{ item}, \param{wxTreeItemCmpFunc*}{ cmpFunction = NULL}}
497
498 Sorts the children of the given item. If {\it cmpFunction} is NULL, sorts in ascending alphabetical order;
499 otherwise the custom sort function is used, as follows:
500
501 {\small
502 \begin{verbatim}
503 // a callback function used for sorting tree items, it should return -1 if the
504 // first item precedes the second, +1 if the second precedes the first or 0 if
505 // they're equivalent
506 class wxTreeItemData;
507 typedef int (*wxTreeItemCmpFunc)(wxTreeItemData *item1, wxTreeItemData *item2);
508 \end{verbatim}
509 }
510
511 \wxheading{See also}
512
513 \helpref{wxTreeItemData}{wxtreeitemdata}
514
515 \membersection{wxTreeCtrl::Toggle}\label{wxtreectrltoggle}
516
517 \func{void}{Toggle}{\param{const wxTreeItemId\&}{ item}}
518
519 Toggles the given item between collapsed and expanded states.
520
521 \membersection{wxTreeCtrl::Unselect}\label{wxtreectrlunselect}
522
523 \func{void}{Unselect}{\void}
524
525 Removes the selection from the currently selected item (if any).
526
527 \section{\class{wxTreeItemData}}\label{wxtreeitemdata}
528
529 wxTreeItemData is some (arbitrary) user class associated with some item. The
530 main advantage of having this class (compared to the old untyped interface) is
531 that wxTreeItemData's are destroyed automatically by the tree and, as this
532 class has virtual dtor, it means that the memory will be automatically
533 freed. We don't just use wxObject instead of wxTreeItemData because
534 the size of this class is critical: in any real application, each tree leaf
535 will have wxTreeItemData associated with it and number of leaves may be
536 quite big.
537
538 Because the objects of this class are deleted by the tree, they should
539 always be allocated on the heap.
540
541 \wxheading{Derived from}
542
543 wxTreeItemId
544
545 \wxheading{Include files}
546
547 <wx/treectrl.h>
548
549 \wxheading{See also}
550
551 \helpref{wxTreeCtrl}{wxtreectrl}
552
553 \latexignore{\rtfignore{\wxheading{Members}}}
554
555 \membersection{wxTreeItemData::wxTreeItemData}\label{wxtreeitemdataconstr}
556
557 \func{}{wxTreeItemData}{\void}
558
559 Default constructor.
560
561 \membersection{wxTreeItemData::\destruct{wxTreeItemData}}
562
563 \func{void}{\destruct{wxTreeItemData}}{\void}
564
565 Virtual destructor.
566
567 \membersection{wxTreeItemData::GetId}\label{wxtreeitemdatagetid}
568
569 \func{const wxTreeItem\&}{GetId}{\void}
570
571 Returns the item associated with this node.
572
573 \membersection{wxTreeItemData::SetId}\label{wxtreeitemdatasetid}
574
575 \func{void}{SetId}{\param{const wxTreeItemId\&}{ id}}
576
577 Sets the item associated with this node.
578