]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/treectrl.tex
API change: a single SELECTION_CHANGED not lots of SELECT and UNSELECT events
[wxWidgets.git] / docs / latex / wx / treectrl.tex
CommitLineData
afbe150a
WS
1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2%% Name: treectrl.tex
3%% Purpose: wxTreeCtrl documentation
4%% Author: wxWidgets Team
5%% Modified by:
6%% Created:
7%% RCS-ID: $Id$
8%% Copyright: (c) wxWidgets Team
9%% License: wxWindows license
10%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11
a660d684
KB
12\section{\class{wxTreeCtrl}}\label{wxtreectrl}
13
14A tree control presents information as a hierarchy, with items that may be expanded
2b5f62a0 15to show further items. Items in a tree control are referenced by wxTreeItemId handles,
9248adc8 16which may be tested for validity by calling \helpref{wxTreeItemId::IsOk}{wxtreeitemidisok}.
a660d684
KB
17
18To intercept events from a tree control, use the event table macros described in \helpref{wxTreeEvent}{wxtreeevent}.
19
20\wxheading{Derived from}
21
22\helpref{wxControl}{wxcontrol}\\
23\helpref{wxWindow}{wxwindow}\\
24\helpref{wxEvtHandler}{wxevthandler}\\
25\helpref{wxObject}{wxobject}
26
954b8ae6
JS
27\wxheading{Include files}
28
29<wx/treectrl.h>
30
a7af285d
VZ
31\wxheading{Library}
32
33\helpref{wxCore}{librarieslist}
34
a660d684
KB
35\wxheading{Window styles}
36
37\twocolwidtha{5cm}
38\begin{twocollist}\itemsep=0pt
ea91314f
VS
39\twocolitem{\windowstyle{wxTR\_EDIT\_LABELS}}{Use this style
40if you wish the user to be able to edit labels in the tree control.}
41\twocolitem{\windowstyle{wxTR\_NO\_BUTTONS}}{For convenience
42to document that no buttons are to be drawn.}
43\twocolitem{\windowstyle{wxTR\_HAS\_BUTTONS}}{Use this style
44to show + and - buttons to the left of parent items.}
ea91314f
VS
45\twocolitem{\windowstyle{wxTR\_NO\_LINES}}{Use this style
46to hide vertical level connectors.}
c6f4913a
VS
47\twocolitem{\windowstyle{wxTR\_FULL\_ROW\_HIGHLIGHT}}{Use this style to have the background
48colour and the selection highlight extend over the entire horizontal
afbe150a 49row of the tree control window. (This flag is ignored under Windows unless you
63969272 50specify wxTR\_NO\_LINES as well.) }
ea91314f
VS
51\twocolitem{\windowstyle{wxTR\_LINES\_AT\_ROOT}}{Use this style
52to show lines between root nodes.
53Only applicable if wxTR\_HIDE\_ROOT is set and wxTR\_NO\_LINES is not set.}
54\twocolitem{\windowstyle{wxTR\_HIDE\_ROOT}}{Use this style
55to suppress the display of the root node,
56effectively causing the first-level nodes
f6ed3823 57to appear as a series of root nodes.}
ea91314f
VS
58\twocolitem{\windowstyle{wxTR\_ROW\_LINES}}{Use this style
59to draw a contrasting border between displayed rows.}
60\twocolitem{\windowstyle{wxTR\_HAS\_VARIABLE\_ROW\_HEIGHT}}{Use this style
61to cause row heights to be just big enough to fit the content.
62If not set, all rows use the largest row height.
63The default is that this flag is unset.
64Generic only.}
65\twocolitem{\windowstyle{wxTR\_SINGLE}}{For convenience
66to document that only one item may be selected at a time.
67Selecting another item causes the current selection, if any,
68to be deselected. This is the default.}
69\twocolitem{\windowstyle{wxTR\_MULTIPLE}}{Use this style
70to allow a range of items to be selected.
71If a second range is selected, the current range, if any, is deselected.}
ea91314f
VS
72\twocolitem{\windowstyle{wxTR\_DEFAULT\_STYLE}}{The set of flags that are
73closest to the defaults for the native control for a particular toolkit.}
a660d684
KB
74\end{twocollist}
75
76See also \helpref{window styles overview}{windowstyles}.
77
5de76427
JS
78\wxheading{Event handling}
79
80To process input from a tree control, use these event handler macros to direct input to member
81functions that take a \helpref{wxTreeEvent}{wxtreeevent} argument.
82
83\twocolwidtha{7cm}
84\begin{twocollist}\itemsep=0pt
85\twocolitem{{\bf EVT\_TREE\_BEGIN\_DRAG(id, func)}}{Begin dragging with the left mouse button.}
86\twocolitem{{\bf EVT\_TREE\_BEGIN\_RDRAG(id, func)}}{Begin dragging with the right mouse button.}
01a01d10 87\twocolitem{{\bf EVT\_TREE\_END\_DRAG(id, func)}}{End dragging with the left or right mouse button.}
fd128b0c
RR
88\twocolitem{{\bf EVT\_TREE\_BEGIN\_LABEL\_EDIT(id, func)}}{Begin editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.}
89\twocolitem{{\bf EVT\_TREE\_END\_LABEL\_EDIT(id, func)}}{Finish editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.}
5de76427
JS
90\twocolitem{{\bf EVT\_TREE\_DELETE\_ITEM(id, func)}}{Delete an item.}
91\twocolitem{{\bf EVT\_TREE\_GET\_INFO(id, func)}}{Request information from the application.}
92\twocolitem{{\bf EVT\_TREE\_SET\_INFO(id, func)}}{Information is being supplied.}
9711961c 93\twocolitem{{\bf EVT\_TREE\_ITEM\_ACTIVATED(id, func)}}{The item has been activated, i.e. chosen by double clicking it with mouse or from keyboard}
fb96bc75
VZ
94\twocolitem{{\bf EVT\_TREE\_ITEM\_COLLAPSED(id, func)}}{The item has been collapsed.}
95\twocolitem{{\bf EVT\_TREE\_ITEM\_COLLAPSING(id, func)}}{The item is being collapsed. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.}
96\twocolitem{{\bf EVT\_TREE\_ITEM\_EXPANDED(id, func)}}{The item has been expanded.}
97\twocolitem{{\bf EVT\_TREE\_ITEM\_EXPANDING(id, func)}}{The item is being expanded. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.}
f525dc54
JS
98\twocolitem{{\bf EVT\_TREE\_ITEM\_RIGHT\_CLICK(id, func)}}{The user has clicked the item with the right mouse button.}
99\twocolitem{{\bf EVT\_TREE\_ITEM\_MIDDLE\_CLICK(id, func)}}{The user has clicked the item with the middle mouse button.}
5de76427 100\twocolitem{{\bf EVT\_TREE\_SEL\_CHANGED(id, func)}}{Selection has changed.}
fd128b0c 101\twocolitem{{\bf EVT\_TREE\_SEL\_CHANGING(id, func)}}{Selection is changing. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.}
5de76427 102\twocolitem{{\bf EVT\_TREE\_KEY\_DOWN(id, func)}}{A key has been pressed.}
156194e1
JS
103\twocolitem{{\bf EVT\_TREE\_ITEM\_GETTOOLTIP(id, func)}}{The opportunity to set the item tooltip
104is being given to the application (call wxTreeEvent::SetToolTip). Windows only.}
6eb7ee61 105\twocolitem{{\bf EVT\_TREE\_ITEM\_MENU(id, func)}}{The context menu for the selected item has been requested, either by a right click or by using the menu key.}
6bce9756
KH
106\twocolitem{{\bf EVT\_TREE\_STATE\_IMAGE\_CLICK(id, func)}}{The state image has been clicked. Windows only.}
107\end{twocollist}
108
a660d684
KB
109\wxheading{See also}
110
4fabb575 111\helpref{wxTreeItemData}{wxtreeitemdata}, \helpref{wxTreeCtrl overview}{wxtreectrloverview}, \helpref{wxListBox}{wxlistbox}, \helpref{wxListCtrl}{wxlistctrl},\rtfsp
a660d684
KB
112\helpref{wxImageList}{wximagelist}, \helpref{wxTreeEvent}{wxtreeevent}
113
61714c23
VZ
114\wxheading{Win32 notes}
115
116wxTreeCtrl class uses the standard common treeview control under Win32
117implemented in the system library {\tt comctl32.dll}. Some versions of this
118library are known to have bugs with handling the tree control colours: the
119usual symptom is that the expanded items leave black (or otherwise incorrectly
4e43c815 120coloured) background behind them, especially for the controls using non-default background colour. The recommended solution is to upgrade the {\tt comctl32.dll}
afbe150a 121to a newer version: see
ad4a6192 122\urlref{http://www.microsoft.com/downloads/release.asp?ReleaseID=11916}{http://www.microsoft.com/downloads/release.asp?ReleaseID=11916}.
61714c23 123
a660d684
KB
124\latexignore{\rtfignore{\wxheading{Members}}}
125
3e9af289 126
a660d684
KB
127\membersection{wxTreeCtrl::wxTreeCtrl}\label{wxtreectrlconstr}
128
129\func{}{wxTreeCtrl}{\void}
130
131Default constructor.
132
eaaa6a06 133\func{}{wxTreeCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
a660d684 134\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
ab3165fb 135\param{long}{ style = wxTR\_HAS\_BUTTONS}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``treeCtrl"}}
a660d684
KB
136
137Constructor, creating and showing a tree control.
138
139\wxheading{Parameters}
140
513e0cea 141\docparam{parent}{Parent window. Must not be {\tt NULL}.}
a660d684
KB
142
143\docparam{id}{Window identifier. A value of -1 indicates a default value.}
144
145\docparam{pos}{Window position.}
146
147\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized
148appropriately.}
149
150\docparam{style}{Window style. See \helpref{wxTreeCtrl}{wxtreectrl}.}
151
152\docparam{validator}{Window validator.}
153
154\docparam{name}{Window name.}
155
156\wxheading{See also}
157
158\helpref{wxTreeCtrl::Create}{wxtreectrlcreate}, \helpref{wxValidator}{wxvalidator}
159
3e9af289 160
6d06e061 161\membersection{wxTreeCtrl::\destruct{wxTreeCtrl}}\label{wxtreectrldtor}
a660d684
KB
162
163\func{void}{\destruct{wxTreeCtrl}}{\void}
164
ab3165fb 165Destructor, destroying the tree control.
a660d684 166
3e9af289 167
4fabb575
JS
168\membersection{wxTreeCtrl::AddRoot}\label{wxtreectrladdroot}
169
170\func{wxTreeItemId}{AddRoot}{\param{const wxString\&}{ text},
513e0cea 171 \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = {\tt NULL}}}
4fabb575
JS
172
173Adds the root node to the tree, returning the new item.
174
ea91314f
VS
175The {\it image} and {\it selImage} parameters are an index within
176the normal image list specifying the image to use for unselected and
177selected items, respectively.
4fabb575
JS
178If {\it image} > -1 and {\it selImage} is -1, the same image is used for
179both selected and unselected items.
180
3e9af289 181
4fabb575
JS
182\membersection{wxTreeCtrl::AppendItem}\label{wxtreectrlappenditem}
183
184\func{wxTreeItemId}{AppendItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxString\&}{ text},
513e0cea 185 \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = {\tt NULL}}}
4fabb575
JS
186
187Appends an item to the end of the branch identified by {\it parent}, return a new item id.
188
ea91314f
VS
189The {\it image} and {\it selImage} parameters are an index within
190the normal image list specifying the image to use for unselected and
191selected items, respectively.
4fabb575
JS
192If {\it image} > -1 and {\it selImage} is -1, the same image is used for
193both selected and unselected items.
194
3e9af289 195
ea91314f
VS
196\membersection{wxTreeCtrl::AssignButtonsImageList}\label{wxtreectrlassignbuttonsimagelist}
197
198\func{void}{AssignButtonsImageList}{\param{wxImageList*}{ imageList}}
199
200Sets the buttons image list. The button images assigned with this method will
201be automatically deleted by wxTreeCtrl as appropriate
202(i.e. it takes ownership of the list).
203
204Setting or assigning the button image list enables the display of image buttons.
205Once enabled, the only way to disable the display of button images is to set
513e0cea 206the button image list to {\tt NULL}.
ea91314f
VS
207
208This function is only available in the generic version.
209
210See also \helpref{SetButtonsImageList}{wxtreectrlsetbuttonsimagelist}.
211
3e9af289 212
46cd520d
VS
213\membersection{wxTreeCtrl::AssignImageList}\label{wxtreectrlassignimagelist}
214
215\func{void}{AssignImageList}{\param{wxImageList*}{ imageList}}
216
217Sets the normal image list. Image list assigned with this method will
ea91314f
VS
218be automatically deleted by wxTreeCtrl as appropriate
219(i.e. it takes ownership of the list).
46cd520d
VS
220
221See also \helpref{SetImageList}{wxtreectrlsetimagelist}.
222
3e9af289 223
46cd520d
VS
224\membersection{wxTreeCtrl::AssignStateImageList}\label{wxtreectrlassignstateimagelist}
225
226\func{void}{AssignStateImageList}{\param{wxImageList*}{ imageList}}
227
228Sets the state image list. Image list assigned with this method will
ea91314f
VS
229be automatically deleted by wxTreeCtrl as appropriate
230(i.e. it takes ownership of the list).
46cd520d
VS
231
232See also \helpref{SetStateImageList}{wxtreectrlsetstateimagelist}.
233
234
3e9af289 235
4fabb575
JS
236\membersection{wxTreeCtrl::Collapse}\label{wxtreectrlcollapse}
237
238\func{void}{Collapse}{\param{const wxTreeItemId\&}{ item}}
239
240Collapses the given item.
241
3e9af289 242
9248adc8
VZ
243\membersection{wxTreeCtrl::CollapseAll}\label{wxtreectrlcollapseall}
244
245\func{void}{CollapseAll}{\void}
246
247Collapses the root item.
248
249\wxheading{See also}
250
251\helpref{ExpandAll}{wxtreectrlexpandall}
252
253
254\membersection{wxTreeCtrl::CollapseAllChildren}\label{wxtreectrlcollapseallchildren}
255
256\func{void}{CollapseAllChildren}{\param{const wxTreeItemId\&}{ item}}
257
258Collapses this item and all of its children, recursively.
259
260\wxheading{See also}
261
262\helpref{ExpandAllChildren}{wxtreectrlexpandallchildren}
263
264
4fabb575
JS
265\membersection{wxTreeCtrl::CollapseAndReset}\label{wxtreectrlcollapseandreset}
266
267\func{void}{CollapseAndReset}{\param{const wxTreeItemId\&}{ item}}
268
269Collapses the given item and removes all children.
270
3e9af289 271
a660d684
KB
272\membersection{wxTreeCtrl::Create}\label{wxtreectrlcreate}
273
eaaa6a06 274\func{bool}{wxTreeCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
a660d684 275\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
ab3165fb 276\param{long}{ style = wxTR\_HAS\_BUTTONS}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``treeCtrl"}}
a660d684
KB
277
278Creates the tree control. See \helpref{wxTreeCtrl::wxTreeCtrl}{wxtreectrlconstr} for further details.
279
3e9af289 280
4fabb575 281\membersection{wxTreeCtrl::Delete}\label{wxtreectrldelete}
a660d684 282
4fabb575 283\func{void}{Delete}{\param{const wxTreeItemId\&}{ item}}
a660d684 284
2b5f62a0
VZ
285Deletes the specified item. A {\tt EVT\_TREE\_DELETE\_ITEM} event will be
286generated.
a660d684 287
2f930c85
JS
288This function may cause a subsequent call to GetNextChild to fail.
289
3e9af289 290
4fabb575 291\membersection{wxTreeCtrl::DeleteAllItems}\label{wxtreectrldeleteallitems}
a660d684 292
4fabb575 293\func{void}{DeleteAllItems}{\void}
a660d684 294
afbe150a 295Deletes all items in the control. Note that this may not generate
64f590ea
VZ
296{\tt EVT\_TREE\_DELETE\_ITEM} events under some Windows versions although
297normally such event is generated for each removed item.
2b5f62a0 298
3e9af289 299
2b5f62a0
VZ
300\membersection{wxTreeCtrl::DeleteChildren}\label{wxtreectrldeletechildren}
301
302\func{void}{DeleteChildren}{\param{const wxTreeItemId\& }{item}}
303
304Deletes all children of the given item (but not the item itself). Note that
afbe150a 305this will {\bf not} generate any events unlike
2b5f62a0 306\helpref{Delete}{wxtreectrldelete} method.
a660d684 307
2f930c85
JS
308If you have called \helpref{wxTreeCtrl::SetItemHasChildren}{wxtreectrlsetitemhaschildren}, you
309may need to call it again since {\it DeleteChildren} does not automatically
310clear the setting.
311
3e9af289 312
bbcdf8bc 313\membersection{wxTreeCtrl::EditLabel}\label{wxtreectrleditlabel}
a660d684 314
fd128b0c 315\func{void}{EditLabel}{\param{const wxTreeItemId\&}{ item}}
a660d684 316
fd128b0c
RR
317Starts editing the label of the given item. This function generates a
318EVT\_TREE\_BEGIN\_LABEL\_EDIT event which can be vetoed so that no
319text control will appear for in-place editing.
a660d684 320
fd128b0c 321If the user changed the label (i.e. s/he does not press ESC or leave
76e1c2de 322the text control without changes, a EVT\_TREE\_END\_LABEL\_EDIT event
fd128b0c 323will be sent which can be vetoed as well.
bbcdf8bc
JS
324
325\wxheading{See also}
326
f6bcfd97 327\helpref{wxTreeCtrl::EndEditLabel}{wxtreectrlendeditlabel},
86f975a8 328\helpref{wxTreeEvent}{wxtreeevent}
bbcdf8bc 329
3e9af289 330
bbcdf8bc
JS
331\membersection{wxTreeCtrl::EndEditLabel}\label{wxtreectrlendeditlabel}
332
4fabb575 333\func{void}{EndEditLabel}{\param{bool }{cancelEdit}}
bbcdf8bc 334
cc81d32f 335Ends label editing. If {\it cancelEdit} is {\tt true}, the edit will be cancelled.
bbcdf8bc
JS
336
337This function is currently supported under Windows only.
338
339\wxheading{See also}
340
341\helpref{wxTreeCtrl::EditLabel}{wxtreectrleditlabel}
342
3e9af289 343
a660d684
KB
344\membersection{wxTreeCtrl::EnsureVisible}\label{wxtreectrlensurevisible}
345
4fabb575 346\func{void}{EnsureVisible}{\param{const wxTreeItemId\&}{ item}}
a660d684
KB
347
348Scrolls and/or expands items to ensure that the given item is visible.
349
3e9af289 350
4fabb575 351\membersection{wxTreeCtrl::Expand}\label{wxtreectrlexpand}
a660d684 352
4fabb575 353\func{void}{Expand}{\param{const wxTreeItemId\&}{ item}}
a660d684
KB
354
355Expands the given item.
356
3e9af289 357
70934138
VZ
358\membersection{wxTreeCtrl::ExpandAll}\label{wxtreectrlexpandall}
359
9248adc8 360\func{void}{ExpandAll}{\void}
70934138
VZ
361
362Expands all items in the tree.
363
364
365\membersection{wxTreeCtrl::ExpandAllChildren}\label{wxtreectrlexpandallchildren}
366
367\func{void}{ExpandAllChildren}{\param{const wxTreeItemId\&}{ item}}
368
369Expands the given item and all its children recursively.
370
371
4fabb575 372\membersection{wxTreeCtrl::GetBoundingRect}\label{wxtreectrlgetitemrect}
a660d684 373
cc81d32f 374\constfunc{bool}{GetBoundingRect}{\param{const wxTreeItemId\&}{ item}, \param{wxRect\& }{rect}, \param{bool }{textOnly = {\tt false}}}
4fabb575 375
cc81d32f 376Retrieves the rectangle bounding the {\it item}. If {\it textOnly} is {\tt true},
ea91314f
VS
377only the rectangle around the item's label will be returned, otherwise the
378item's image is also taken into account.
296ec7d3 379
cc81d32f 380The return value is {\tt true} if the rectangle was successfully retrieved or {\tt false}
402dfce7 381if it was not (in this case {\it rect} is not changed) -- for example, if the
296ec7d3 382item is currently invisible.
a660d684 383
402dfce7
VZ
384Notice that the rectangle coordinates are logical, not physical ones. So, for
385example, the x coordinate may be negative if the tree has a horizontal
386scrollbar and its position is not $0$.
387
76e1c2de 388\pythonnote{The wxPython version of this method requires only the
c9110876
VS
389{\tt item} and {\tt textOnly} parameters. The return value is either a
390{\tt wxRect} object or {\tt None}.}
76e1c2de 391
afbe150a 392\perlnote{In wxPerl this method only takes the parameters {\tt item} and
f3539882
VZ
393 {\tt textOnly}, and returns a Wx::Rect ( or undef ).}
394
3e9af289 395
ea91314f
VS
396\membersection{wxTreeCtrl::GetButtonsImageList}\label{wxtreectrlgetbuttonsimagelist}
397
398\constfunc{wxImageList*}{GetButtonsImageList}{\void}
399
400Returns the buttons image list (from which application-defined button images are taken).
401
402This function is only available in the generic version.
403
3e9af289 404
4fabb575 405\membersection{wxTreeCtrl::GetChildrenCount}\label{wxtreectrlgetchildrencount}
a660d684 406
aa61d352 407\constfunc{unsigned int}{GetChildrenCount}{\param{const wxTreeItemId\&}{ item}, \param{bool}{ recursively = {\tt true}}}
a660d684 408
cc81d32f 409Returns the number of items in the branch. If {\it recursively} is {\tt true}, returns the total number
4fabb575 410of descendants, otherwise only one level of children is counted.
a660d684 411
3e9af289 412
a660d684
KB
413\membersection{wxTreeCtrl::GetCount}\label{wxtreectrlgetcount}
414
aa61d352 415\constfunc{unsigned int}{GetCount}{\void}
a660d684
KB
416
417Returns the number of items in the control.
418
3e9af289 419
a660d684
KB
420\membersection{wxTreeCtrl::GetEditControl}\label{wxtreectrlgeteditcontrol}
421
513e0cea 422\constfunc{wxTextCtrl *}{GetEditControl}{\void}
a660d684 423
513e0cea
VZ
424Returns the edit control being currently used to edit a label. Returns {\tt NULL}
425if no label is being edited.
426
427{\bf NB:} It is currently only implemented for wxMSW.
a660d684 428
3e9af289 429
4fabb575
JS
430\membersection{wxTreeCtrl::GetFirstChild}\label{wxtreectrlgetfirstchild}
431
2f7b6734 432\constfunc{wxTreeItemId}{GetFirstChild}{\param{const wxTreeItemId\&}{ item}, \param{wxTreeItemIdValue \& }{cookie}}
4fabb575
JS
433
434Returns the first child; call \helpref{wxTreeCtrl::GetNextChild}{wxtreectrlgetnextchild} for the next child.
435
436For this enumeration function you must pass in a `cookie' parameter
437which is opaque for the application but is necessary for the library
438to make these functions reentrant (i.e. allow more than one
439enumeration on one and the same object simultaneously). The cookie passed to
2b5f62a0 440GetFirstChild and GetNextChild should be the same variable.
4fabb575 441
3980000c 442Returns an invalid tree item (i.e. IsOk() returns {\tt false}) if there are no further children.
4fabb575
JS
443
444\wxheading{See also}
445
2b5f62a0
VZ
446\helpref{wxTreeCtrl::GetNextChild}{wxtreectrlgetnextchild},
447\helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling}
4fabb575 448
f899db6d
RD
449\pythonnote{In wxPython the returned wxTreeItemId and the new cookie
450value are both returned as a tuple containing the two values.}
451
f3539882 452\perlnote{In wxPerl this method only takes the {\tt item} parameter, and
9722642d 453 returns a 2-element list {\tt ( item, cookie )}.}
f3539882 454
3e9af289 455
a660d684
KB
456\membersection{wxTreeCtrl::GetFirstVisibleItem}\label{wxtreectrlgetfirstvisibleitem}
457
4fabb575 458\constfunc{wxTreeItemId}{GetFirstVisibleItem}{\void}
a660d684
KB
459
460Returns the first visible item.
461
3e9af289 462
a660d684
KB
463\membersection{wxTreeCtrl::GetImageList}\label{wxtreectrlgetimagelist}
464
e2b34251 465\constfunc{wxImageList*}{GetImageList}{\void}
a660d684 466
e2b34251 467Returns the normal image list.
a660d684 468
3e9af289 469
a660d684
KB
470\membersection{wxTreeCtrl::GetIndent}\label{wxtreectrlgetindent}
471
472\constfunc{int}{GetIndent}{\void}
473
474Returns the current tree control indentation.
475
3e9af289 476
2b5f62a0
VZ
477\membersection{wxTreeCtrl::GetItemBackgroundColour}\label{wxtreectrlgetitembackgroundcolour}
478
479\constfunc{wxColour}{GetItemBackgroundColour}{\param{const wxTreeItemId\&}{ item}}
480
481Returns the background colour of the item.
482
3e9af289 483
4fabb575 484\membersection{wxTreeCtrl::GetItemData}\label{wxtreectrlgetitemdata}
a660d684 485
4fabb575 486\constfunc{wxTreeItemData*}{GetItemData}{\param{const wxTreeItemId\&}{ item}}
a660d684 487
4fabb575 488Returns the tree item data associated with the item.
a660d684 489
4fabb575 490\wxheading{See also}
a660d684 491
4fabb575 492\helpref{wxTreeItemData}{wxtreeitemdata}
a660d684 493
ecf527c0
JS
494\pythonnote{wxPython provides the following shortcut method:
495
496\indented{2cm}{\begin{twocollist}\itemsep=0pt
c9110876 497\twocolitem{{\bf GetPyData(item)}}{Returns the Python Object
f899db6d
RD
498associated with the wxTreeItemData for the given item Id.}
499\end{twocollist}}
d2c2afc9 500}%
f899db6d 501
f3539882
VZ
502\perlnote{wxPerl provides the following shortcut method:
503\indented{2cm}{
504\begin{twocollist}\itemsep=0pt
505\twocolitem{{\bf GetPlData( item )}}{Returns the Perl data
d2c2afc9
JS
506associated with the Wx::TreeItemData. It is just the same as
507tree->GetItemData(item)->GetData().}
f3539882 508\end{twocollist}}
d2c2afc9 509}%
3e9af289 510
2b5f62a0
VZ
511\membersection{wxTreeCtrl::GetItemFont}\label{wxtreectrlgetitemfont}
512
513\constfunc{wxFont}{GetItemFont}{\param{const wxTreeItemId\&}{ item}}
514
515Returns the font of the item label.
516
3e9af289 517
4fabb575 518\membersection{wxTreeCtrl::GetItemImage}\label{wxtreectrlgetitemimage}
a660d684 519
74b31181 520\constfunc{int}{GetItemImage}{\param{const wxTreeItemId\& }{item},
ecf527c0 521 \param{wxTreeItemIcon }{which = wxTreeItemIcon\_Normal}}
74b31181
VZ
522
523Gets the specified item image. The value of {\it which} may be:
ecf527c0 524
74b31181
VZ
525\begin{itemize}\itemsep=0pt
526\item{wxTreeItemIcon\_Normal} to get the normal item image
527\item{wxTreeItemIcon\_Selected} to get the selected item image (i.e. the image
528which is shown when the item is currently selected)
529\item{wxTreeItemIcon\_Expanded} to get the expanded image (this only
530makes sense for items which have children - then this image is shown when the
531item is expanded and the normal image is shown when it is collapsed)
532\item{wxTreeItemIcon\_SelectedExpanded} to get the selected expanded image
533(which is shown when an expanded item is currently selected)
534\end{itemize}
a660d684 535
3e9af289 536
4fabb575 537\membersection{wxTreeCtrl::GetItemText}\label{wxtreectrlgetitemtext}
a660d684 538
4fabb575 539\constfunc{wxString}{GetItemText}{\param{const wxTreeItemId\&}{ item}}
a660d684 540
4fabb575 541Returns the item label.
a660d684 542
3e9af289 543
2b5f62a0
VZ
544\membersection{wxTreeCtrl::GetItemTextColour}\label{wxtreectrlgetitemtextcolour}
545
546\constfunc{wxColour}{GetItemTextColour}{\param{const wxTreeItemId\&}{ item}}
547
548Returns the colour of the item label.
549
3e9af289 550
978f38c2
VZ
551\membersection{wxTreeCtrl::GetLastChild}\label{wxtreectrlgetlastchild}
552
553\constfunc{wxTreeItemId}{GetLastChild}{\param{const wxTreeItemId\&}{ item}}
554
ed93168b 555Returns the last child of the item (or an invalid tree item if this item has no children).
978f38c2
VZ
556
557\wxheading{See also}
558
f6bcfd97 559\helpref{GetFirstChild}{wxtreectrlgetfirstchild},
2b5f62a0 560\helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling},
978f38c2
VZ
561\helpref{GetLastChild}{wxtreectrlgetlastchild}
562
3e9af289 563
4fabb575 564\membersection{wxTreeCtrl::GetNextChild}\label{wxtreectrlgetnextchild}
a660d684 565
2f7b6734 566\constfunc{wxTreeItemId}{GetNextChild}{\param{const wxTreeItemId\&}{ item}, \param{wxTreeItemIdValue \& }{cookie}}
a660d684 567
4fabb575 568Returns the next child; call \helpref{wxTreeCtrl::GetFirstChild}{wxtreectrlgetfirstchild} for the first child.
a660d684 569
4fabb575
JS
570For this enumeration function you must pass in a `cookie' parameter
571which is opaque for the application but is necessary for the library
572to make these functions reentrant (i.e. allow more than one
573enumeration on one and the same object simultaneously). The cookie passed to
574GetFirstChild and GetNextChild should be the same.
a660d684 575
ed93168b 576Returns an invalid tree item if there are no further children.
a660d684 577
4fabb575 578\wxheading{See also}
a660d684 579
4fabb575 580\helpref{wxTreeCtrl::GetFirstChild}{wxtreectrlgetfirstchild}
a660d684 581
f899db6d
RD
582\pythonnote{In wxPython the returned wxTreeItemId and the new cookie
583value are both returned as a tuple containing the two values.}
584
f3539882 585\perlnote{In wxPerl this method returns a 2-element list
9722642d 586 {\tt ( item, cookie )}, instead of modifying its parameters.}
f3539882 587
3e9af289 588
4fabb575 589\membersection{wxTreeCtrl::GetNextSibling}\label{wxtreectrlgetnextsibling}
a660d684 590
4fabb575 591\constfunc{wxTreeItemId}{GetNextSibling}{\param{const wxTreeItemId\&}{ item}}
a660d684 592
4fabb575 593Returns the next sibling of the specified item; call \helpref{wxTreeCtrl::GetPrevSibling}{wxtreectrlgetprevsibling} for the previous sibling.
a660d684 594
ed93168b 595Returns an invalid tree item if there are no further siblings.
a660d684 596
4fabb575
JS
597\wxheading{See also}
598
599\helpref{wxTreeCtrl::GetPrevSibling}{wxtreectrlgetprevsibling}
600
3e9af289 601
4fabb575
JS
602\membersection{wxTreeCtrl::GetNextVisible}\label{wxtreectrlgetnextvisible}
603
604\constfunc{wxTreeItemId}{GetNextVisible}{\param{const wxTreeItemId\&}{ item}}
a660d684
KB
605
606Returns the next visible item.
607
3e9af289 608
99006e44
RL
609\membersection{wxTreeCtrl::GetItemParent}\label{wxtreectrlgetitemparent}
610
611\constfunc{wxTreeItemId}{GetItemParent}{\param{const wxTreeItemId\&}{ item}}
612
613Returns the item's parent.
614
3e9af289 615
4fabb575
JS
616\membersection{wxTreeCtrl::GetPrevSibling}\label{wxtreectrlgetprevsibling}
617
618\constfunc{wxTreeItemId}{GetPrevSibling}{\param{const wxTreeItemId\&}{ item}}
619
620Returns the previous sibling of the specified item; call \helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling} for the next sibling.
621
ed93168b 622Returns an invalid tree item if there are no further children.
4fabb575
JS
623
624\wxheading{See also}
625
626\helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling}
627
3e9af289 628
4fabb575
JS
629\membersection{wxTreeCtrl::GetPrevVisible}\label{wxtreectrlgetprevvisible}
630
631\constfunc{wxTreeItemId}{GetPrevVisible}{\param{const wxTreeItemId\&}{ item}}
632
633Returns the previous visible item.
634
3e9af289 635
77a17719
JS
636\membersection{wxTreeCtrl::GetQuickBestSize}\label{wxtreectrlgetquickbestsize}
637
638\constfunc{bool}{GetQuickBestSize}{\void}
639
640Returns true if the control will use a quick calculation for the best size,
641looking only at the first and last items. The default is false.
642
643\wxheading{See also}
644
645\helpref{wxTreeCtrl::SetQuickBestSize}{wxtreectrlsetquickbestsize}
646
647
a660d684
KB
648\membersection{wxTreeCtrl::GetRootItem}\label{wxtreectrlgetrootitem}
649
4fabb575 650\constfunc{wxTreeItemId}{GetRootItem}{\void}
a660d684
KB
651
652Returns the root item for the tree control.
653
3e9af289 654
ed93168b 655\membersection{wxTreeCtrl::GetItemSelectedImage}\label{wxtreectrlgetitemselectedimage}
4fabb575 656
ed93168b 657\constfunc{int}{GetItemSelectedImage}{\param{const wxTreeItemId\& }{item}}
4fabb575 658
f6bcfd97 659Gets the selected item image (this function is obsolete, use
b2cf617c 660{\tt GetItemImage(item, wxTreeItemIcon\_Selected}) instead).
4fabb575 661
3e9af289 662
a660d684
KB
663\membersection{wxTreeCtrl::GetSelection}\label{wxtreectrlgetselection}
664
4fabb575 665\constfunc{wxTreeItemId}{GetSelection}{\void}
a660d684 666
ed93168b 667Returns the selection, or an invalid item if there is no selection.
f6bcfd97 668This function only works with the controls without wxTR\_MULTIPLE style, use
9dfbf520
VZ
669\helpref{GetSelections}{wxtreectrlgetselections} for the controls which do have
670this style.
671
3e9af289 672
9dfbf520
VZ
673\membersection{wxTreeCtrl::GetSelections}\label{wxtreectrlgetselections}
674
aa61d352 675\constfunc{unsigned int}{GetSelections}{\param{wxArrayTreeItemIds\& }{selection}}
9dfbf520
VZ
676
677Fills the array of tree items passed in with the currently selected items. This
678function can be called only if the control has the wxTR\_MULTIPLE style.
679
680Returns the number of selected items.
a660d684 681
76e1c2de 682\pythonnote{The wxPython version of this method accepts no parameters
ecf527c0 683and returns a Python list of {\tt wxTreeItemId}s.}
76e1c2de 684
f3539882
VZ
685\perlnote{In wxPerl this method takes no parameters and returns a list of
686 {\tt Wx::TreeItemId}s.}
687
3e9af289 688
e2b34251
JS
689\membersection{wxTreeCtrl::GetStateImageList}\label{wxtreectrlgetstateimagelist}
690
691\constfunc{wxImageList*}{GetStateImageList}{\void}
692
693Returns the state image list (from which application-defined state images are taken).
694
3e9af289 695
a660d684
KB
696\membersection{wxTreeCtrl::HitTest}\label{wxtreectrlhittest}
697
be0e5d69 698\constfunc{wxTreeItemId}{HitTest}{\param{const wxPoint\& }{point}, \param{int\& }{flags}}
a660d684 699
f6bcfd97
BP
700Calculates which (if any) item is under the given point, returning the tree item
701id at this point plus extra information {\it flags}. {\it flags} is a bitlist of the following:
a660d684
KB
702
703\twocolwidtha{5cm}
704\begin{twocollist}\itemsep=0pt
705\twocolitem{wxTREE\_HITTEST\_ABOVE}{Above the client area.}
706\twocolitem{wxTREE\_HITTEST\_BELOW}{Below the client area.}
707\twocolitem{wxTREE\_HITTEST\_NOWHERE}{In the client area but below the last item.}
708\twocolitem{wxTREE\_HITTEST\_ONITEMBUTTON}{On the button associated with an item.}
709\twocolitem{wxTREE\_HITTEST\_ONITEMICON}{On the bitmap associated with an item.}
710\twocolitem{wxTREE\_HITTEST\_ONITEMINDENT}{In the indentation associated with an item.}
711\twocolitem{wxTREE\_HITTEST\_ONITEMLABEL}{On the label (string) associated with an item.}
712\twocolitem{wxTREE\_HITTEST\_ONITEMRIGHT}{In the area to the right of an item.}
713\twocolitem{wxTREE\_HITTEST\_ONITEMSTATEICON}{On the state icon for a tree view item that is in a user-defined state.}
714\twocolitem{wxTREE\_HITTEST\_TOLEFT}{To the right of the client area.}
715\twocolitem{wxTREE\_HITTEST\_TORIGHT}{To the left of the client area.}
716\end{twocollist}
717
aa9fb2be
RD
718\pythonnote{in wxPython both the wxTreeItemId and the flags are
719returned as a tuple.}
720
f3539882 721\perlnote{In wxPerl this method only takes the {\tt point} parameter
9722642d 722 and returns a 2-element list {\tt ( item, flags )}.}
f3539882 723
3e9af289 724
a660d684
KB
725\membersection{wxTreeCtrl::InsertItem}\label{wxtreectrlinsertitem}
726
4fabb575 727\func{wxTreeItemId}{InsertItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxTreeItemId\& }{previous}, \param{const wxString\&}{ text},
513e0cea 728 \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = {\tt NULL}}}
a660d684 729
f2593d0d 730\func{wxTreeItemId}{InsertItem}{\param{const wxTreeItemId\& }{parent}, \param{size\_t}{ before}, \param{const wxString\&}{ text},
513e0cea 731 \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = {\tt NULL}}}
f2593d0d
RR
732
733Inserts an item after a given one ({\it previous}) or before one identified by its position ({\it before}).
2f930c85 734{\it before} must be less than the number of children.
a660d684 735
ea91314f
VS
736The {\it image} and {\it selImage} parameters are an index within
737the normal image list specifying the image to use for unselected and
738selected items, respectively.
a660d684
KB
739If {\it image} > -1 and {\it selImage} is -1, the same image is used for
740both selected and unselected items.
741
f6bcfd97 742\pythonnote{The second form of this method is called
7af3ca16 743{\tt InsertItemBefore} in wxPython.}
f6bcfd97 744
3e9af289 745
ed93168b
VZ
746\membersection{wxTreeCtrl::IsBold}\label{wxtreectrlisbold}
747
748\constfunc{bool}{IsBold}{\param{const wxTreeItemId\& }{item}}
749
cc81d32f 750Returns {\tt true} if the given item is in bold state.
ed93168b
VZ
751
752See also: \helpref{SetItemBold}{wxtreectrlsetitembold}
753
3e9af289 754
9248adc8
VZ
755\membersection{wxTreeCtrl::IsEmpty}\label{wxtreectrlisempty}
756
757\constfunc{bool}{IsEmpty}{}
758
759Returns \true if the control is empty (i.e. has no items, even no root one).
760
761
4fabb575
JS
762\membersection{wxTreeCtrl::IsExpanded}\label{wxtreectrlisexpanded}
763
764\constfunc{bool}{IsExpanded}{\param{const wxTreeItemId\&}{ item}}
765
cc81d32f 766Returns {\tt true} if the item is expanded (only makes sense if it has children).
4fabb575 767
3e9af289 768
4fabb575
JS
769\membersection{wxTreeCtrl::IsSelected}\label{wxtreectrlisselected}
770
771\constfunc{bool}{IsSelected}{\param{const wxTreeItemId\&}{ item}}
772
cc81d32f 773Returns {\tt true} if the item is selected.
4fabb575 774
3e9af289 775
4fabb575
JS
776\membersection{wxTreeCtrl::IsVisible}\label{wxtreectrlisvisible}
777
778\constfunc{bool}{IsVisible}{\param{const wxTreeItemId\&}{ item}}
779
cc81d32f 780Returns {\tt true} if the item is visible (it might be outside the view, or not expanded).
4fabb575 781
3e9af289 782
a660d684
KB
783\membersection{wxTreeCtrl::ItemHasChildren}\label{wxtreectrlitemhaschildren}
784
4fabb575 785\constfunc{bool}{ItemHasChildren}{\param{const wxTreeItemId\&}{ item}}
a660d684 786
cc81d32f 787Returns {\tt true} if the item has children.
a660d684 788
3e9af289 789
ed93168b
VZ
790\membersection{wxTreeCtrl::OnCompareItems}\label{wxtreectrloncompareitems}
791
792\func{int}{OnCompareItems}{\param{const wxTreeItemId\& }{item1}, \param{const wxTreeItemId\& }{item2}}
793
794Override this function in the derived class to change the sort order of the
795items in the tree control. The function should return a negative, zero or
796positive value if the first item is less than, equal to or greater than the
797second one.
798
22bea944
VZ
799Please note that you \textbf{must} use wxRTTI macros
800\helpref{DECLARE\_DYNAMIC\_CLASS}{declaredynamicclass} and
801\helpref{IMPLEMENT\_DYNAMIC\_CLASS}{implementdynamicclass} if you override this
802function because otherwise the base class considers that it is not overridden
803and uses the default comparison, i.e. sorts the items alphabetically, which
804allows it optimize away the calls to the virtual function completely.
ed93168b
VZ
805
806See also: \helpref{SortChildren}{wxtreectrlsortchildren}
807
3e9af289 808
4fabb575
JS
809\membersection{wxTreeCtrl::PrependItem}\label{wxtreectrlprependitem}
810
811\func{wxTreeItemId}{PrependItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxString\&}{ text},
513e0cea 812 \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = {\tt NULL}}}
4fabb575
JS
813
814Appends an item as the first child of {\it parent}, return a new item id.
815
ea91314f
VS
816The {\it image} and {\it selImage} parameters are an index within
817the normal image list specifying the image to use for unselected and
818selected items, respectively.
4fabb575
JS
819If {\it image} > -1 and {\it selImage} is -1, the same image is used for
820both selected and unselected items.
821
3e9af289 822
a660d684
KB
823\membersection{wxTreeCtrl::ScrollTo}\label{wxtreectrlscrollto}
824
4fabb575 825\func{void}{ScrollTo}{\param{const wxTreeItemId\&}{ item}}
a660d684 826
4fabb575 827Scrolls the specified item into view.
a660d684 828
3e9af289 829
a660d684
KB
830\membersection{wxTreeCtrl::SelectItem}\label{wxtreectrlselectitem}
831
3f1ed856 832\func{void}{SelectItem}{\param{const wxTreeItemId\&}{ item}, \param{bool }{select = \true}}
3e9af289
VZ
833
834Selects the given item. In multiple selection controls, can be also used to
835deselect a currently selected item if the value of \arg{select} is false.
a660d684 836
a660d684 837
ea91314f
VS
838\membersection{wxTreeCtrl::SetButtonsImageList}\label{wxtreectrlsetbuttonsimagelist}
839
840\func{void}{SetButtonsImageList}{\param{wxImageList*}{ imageList}}
841
842Sets the buttons image list (from which application-defined button images are taken).
843The button images assigned with this method will
844{\bf not} be deleted by wxTreeCtrl's destructor, you must delete it yourself.
845
846Setting or assigning the button image list enables the display of image buttons.
847Once enabled, the only way to disable the display of button images is to set
513e0cea 848the button image list to {\tt NULL}.
ea91314f
VS
849
850This function is only available in the generic version.
851
852See also \helpref{AssignButtonsImageList}{wxtreectrlassignbuttonsimagelist}.
853
3e9af289 854
a660d684
KB
855\membersection{wxTreeCtrl::SetIndent}\label{wxtreectrlsetindent}
856
857\func{void}{SetIndent}{\param{int }{indent}}
858
859Sets the indentation for the tree control.
860
3e9af289 861
a660d684
KB
862\membersection{wxTreeCtrl::SetImageList}\label{wxtreectrlsetimagelist}
863
e2b34251 864\func{void}{SetImageList}{\param{wxImageList*}{ imageList}}
a660d684 865
46cd520d
VS
866Sets the normal image list. Image list assigned with this method will
867{\bf not} be deleted by wxTreeCtrl's destructor, you must delete it yourself.
868
869See also \helpref{AssignImageList}{wxtreectrlassignimagelist}.
870
a660d684 871
3e9af289 872
9ec64fa7
VZ
873\membersection{wxTreeCtrl::SetItemBackgroundColour}\label{wxtreectrlsetitembackgroundcolour}
874
875\func{void}{SetItemBackgroundColour}{\param{const wxTreeItemId\&}{ item}, \param{const wxColour\& }{col}}
876
ea91314f 877Sets the colour of the item's background.
9ec64fa7 878
3e9af289 879
ed93168b
VZ
880\membersection{wxTreeCtrl::SetItemBold}\label{wxtreectrlsetitembold}
881
cc81d32f 882\func{void}{SetItemBold}{\param{const wxTreeItemId\& }{item}, \param{bool}{ bold = {\tt true}}}
ed93168b 883
cc81d32f 884Makes item appear in bold font if {\it bold} parameter is {\tt true} or resets it to
ed93168b
VZ
885the normal state.
886
887See also: \helpref{IsBold}{wxtreectrlisbold}
888
3e9af289 889
4fabb575 890\membersection{wxTreeCtrl::SetItemData}\label{wxtreectrlsetitemdata}
a660d684 891
4fabb575 892\func{void}{SetItemData}{\param{const wxTreeItemId\&}{ item}, \param{wxTreeItemData* }{data}}
a660d684 893
4fabb575 894Sets the item client data.
a660d684 895
f899db6d 896\pythonnote{wxPython provides the following shortcut method:\par
ecf527c0 897\indented{2cm}{\begin{twocollist}\itemsep=0pt
c9110876 898\twocolitem{{\bf SetPyData(item, obj)}}{Associate the given Python
f899db6d
RD
899Object with the wxTreeItemData for the given item Id.}
900\end{twocollist}}
d2c2afc9 901}%
f899db6d 902
f3539882
VZ
903\perlnote{wxPerl provides the following shortcut method:
904\indented{2cm}{
905\begin{twocollist}\itemsep=0pt
906\twocolitem{{\bf SetPlData( item, data )}}{Sets the Perl data
d2c2afc9
JS
907associated with the Wx::TreeItemData. It is just the same as
908tree->GetItemData(item)->SetData(data).}
f3539882 909\end{twocollist}}
d2c2afc9 910}%
3e9af289 911
bee44427 912\membersection{wxTreeCtrl::SetItemDropHighlight}\label{wxtreectrlsetitemdrophighlight}
18832389
RR
913
914\func{void}{SetItemDropHighlight}{\param{const wxTreeItemId\&}{ item}, \param{bool}{highlight = {\tt true}}}
915
916Gives the item the visual feedback for Drag'n'Drop actions, which is
917useful if something is dragged from the outside onto the tree control
918(as opposed to a DnD operation within the tree control, which already
919is implemented internally).
920
9ec64fa7
VZ
921\membersection{wxTreeCtrl::SetItemFont}\label{wxtreectrlsetitemfont}
922
923\func{void}{SetItemFont}{\param{const wxTreeItemId\&}{ item}, \param{const wxFont\& }{font}}
924
ea91314f 925Sets the item's font. All items in the tree should have the same height to avoid
9ec64fa7
VZ
926text clipping, so the fonts height should be the same for all of them,
927although font attributes may vary.
928
929\wxheading{See also}
930
931\helpref{SetItemBold}{wxtreectrlsetitembold}
932
3e9af289 933
4fabb575 934\membersection{wxTreeCtrl::SetItemHasChildren}\label{wxtreectrlsetitemhaschildren}
a660d684 935
cc81d32f 936\func{void}{SetItemHasChildren}{\param{const wxTreeItemId\&}{ item}, \param{bool }{hasChildren = {\tt true}}}
a660d684 937
4fabb575
JS
938Force appearance of the button next to the item. This is useful to
939allow the user to expand the items which don't have any children now,
940but instead adding them only when needed, thus minimizing memory
941usage and loading time.
a660d684 942
3e9af289 943
a660d684
KB
944\membersection{wxTreeCtrl::SetItemImage}\label{wxtreectrlsetitemimage}
945
74b31181 946\func{void}{SetItemImage}{\param{const wxTreeItemId\&}{ item},
ecf527c0 947 \param{int }{image}, \param{wxTreeItemIcon }{which = wxTreeItemIcon\_Normal}}
a660d684 948
f6bcfd97 949Sets the specified item image. See \helpref{GetItemImage}{wxtreectrlgetitemimage}
b2cf617c 950for the description of the {\it which} parameter.
a660d684 951
3e9af289 952
4fabb575 953\membersection{wxTreeCtrl::SetItemSelectedImage}\label{wxtreectrlsetitemselectedimage}
a660d684 954
4fabb575 955\func{void}{SetItemSelectedImage}{\param{const wxTreeItemId\&}{ item}, \param{int }{selImage}}
a660d684 956
b2cf617c 957Sets the selected item image (this function is obsolete, use {\tt SetItemImage(item, wxTreeItemIcon\_Selected}) instead).
a660d684 958
3e9af289 959
a660d684
KB
960\membersection{wxTreeCtrl::SetItemText}\label{wxtreectrlsetitemtext}
961
4fabb575 962\func{void}{SetItemText}{\param{const wxTreeItemId\&}{ item}, \param{const wxString\& }{text}}
a660d684
KB
963
964Sets the item label.
965
3e9af289 966
9ec64fa7
VZ
967\membersection{wxTreeCtrl::SetItemTextColour}\label{wxtreectrlsetitemtextcolour}
968
969\func{void}{SetItemTextColour}{\param{const wxTreeItemId\&}{ item}, \param{const wxColour\& }{col}}
970
ea91314f 971Sets the colour of the item's text.
9ec64fa7 972
3e9af289 973
77a17719
JS
974\membersection{wxTreeCtrl::SetQuickBestSize}\label{wxtreectrlsetquickbestsize}
975
976\func{void}{SetQuickBestSize}{\param{bool}{ quickBestSize}}
977
978If true is passed, specifies that the control will use a quick calculation for the best size,
979looking only at the first and last items. Otherwise, it will look at all items.
980The default is false.
981
982\wxheading{See also}
983
984\helpref{wxTreeCtrl::GetQuickBestSize}{wxtreectrlgetquickbestsize}
985
986
e2b34251
JS
987\membersection{wxTreeCtrl::SetStateImageList}\label{wxtreectrlsetstateimagelist}
988
989\func{void}{SetStateImageList}{\param{wxImageList*}{ imageList}}
990
991Sets the state image list (from which application-defined state images are taken).
46cd520d
VS
992Image list assigned with this method will
993{\bf not} be deleted by wxTreeCtrl's destructor, you must delete it yourself.
994
995See also \helpref{AssignStateImageList}{wxtreectrlassignstateimagelist}.
e2b34251 996
d2c2afc9
JS
997\membersection{wxTreeCtrl::SetWindowStyle}\label{wxtreectrlsetwindowstyle}
998
ea91314f
VS
999\func{void}{SetWindowStyle}{\param{long}{styles}}
1000
1001Sets the mode flags associated with the display of the tree control.
1002The new mode takes effect immediately.
1003(Generic only; MSW ignores changes.)
1004
3e9af289 1005
4fabb575 1006\membersection{wxTreeCtrl::SortChildren}\label{wxtreectrlsortchildren}
a660d684 1007
ed93168b 1008\func{void}{SortChildren}{\param{const wxTreeItemId\&}{ item}}
a660d684 1009
f6bcfd97 1010Sorts the children of the given item using
ed93168b 1011\helpref{OnCompareItems}{wxtreectrloncompareitems} method of wxTreeCtrl. You
b2cf617c 1012should override that method to change the sort order (the default is ascending
2f930c85 1013case-sensitive alphabetical order).
4fabb575
JS
1014
1015\wxheading{See also}
1016
ed93168b 1017\helpref{wxTreeItemData}{wxtreeitemdata}, \helpref{OnCompareItems}{wxtreectrloncompareitems}
4fabb575 1018
3e9af289 1019
4fabb575
JS
1020\membersection{wxTreeCtrl::Toggle}\label{wxtreectrltoggle}
1021
1022\func{void}{Toggle}{\param{const wxTreeItemId\&}{ item}}
1023
1024Toggles the given item between collapsed and expanded states.
1025
3e9af289
VZ
1026
1027\membersection{wxTreeCtrl::ToggleItemSelection}\label{wxtreectrltoggleitemselection}
1028
1029\func{void}{ToggleItemSelection}{\param{const wxTreeItemId\&}{ item}}
1030
1031Toggles the given item between selected and unselected states. For
1032multiselection controls only.
1033
1034
4fabb575
JS
1035\membersection{wxTreeCtrl::Unselect}\label{wxtreectrlunselect}
1036
1037\func{void}{Unselect}{\void}
1038
1039Removes the selection from the currently selected item (if any).
1040
3e9af289 1041
9dfbf520
VZ
1042\membersection{wxTreeCtrl::UnselectAll}\label{wxtreectrlunselectall}
1043
1044\func{void}{UnselectAll}{\void}
1045
f6bcfd97 1046This function either behaves the same as \helpref{Unselect}{wxtreectrlunselect}
9dfbf520
VZ
1047if the control doesn't have wxTR\_MULTIPLE style, or removes the selection from
1048all items if it does have this style.
1049
3e9af289
VZ
1050
1051\membersection{wxTreeCtrl::UnselectItem}\label{wxtreectrlunselectitem}
1052
1053\func{void}{UnselectItem}{\param{const wxTreeItemId\& }{item}}
1054
1055Unselects the given item. This works in multiselection controls only.
77a17719 1056
9248adc8
VZ
1057
1058
1059
1060
1061%% the wxTreeItemId opaque class
1062
1063
1064\section{\class{wxTreeItemId}}\label{wxtreeitemid}
1065
1066An opaque reference to a tree item.
1067
1068
1069\wxheading{Derived from}
1070
1071None
1072
1073\wxheading{Include files}
1074
1075<wx/treebase.h>
1076
a7af285d
VZ
1077\wxheading{Library}
1078
1079\helpref{wxCore}{librarieslist}
1080
9248adc8
VZ
1081\wxheading{See also}
1082
df0468c7 1083\helpref{wxTreeCtrl}{wxtreectrl}, \helpref{wxTreeItemData}{wxtreeitemdata},\\
9248adc8
VZ
1084\helpref{wxTreeCtrl overview}{wxtreectrloverview}
1085
1086
1087\latexignore{\rtfignore{\wxheading{Members}}}
1088
1089\membersection{wxTreeItemId::wxTreeItemId}\label{wxtreeitemidconstr}
1090
1091\func{}{wxTreeItemId}{\void}
1092
1093Default constructor. wxTreemItemIds are not meant to be constructed explicitly by
df0468c7 1094the user; they are returned by the \helpref{wxTreeCtrl}{wxtreectrl} functions instead.
9248adc8
VZ
1095
1096
1097\membersection{wxTreeItemId::IsOk}\label{wxtreeitemidisok}
1098
1099\constfunc{bool}{IsOk}{}
1100
1101Returns \true if this instance is referencing a valid tree item.
1102
1103
1104\membersection{Operators}\label{wxtreeitemidoperators}
1105
1106\constfunc{void}{operator $!$}{}
1107
1108Synonim for \helpref{IsOk}{wxtreeitemidisok}
1109
1110
1111\constfunc{bool}{operator $==$}{\param{const wxTreeItemId\& }{item}}
1112
1113\constfunc{bool}{operator $!=$}{\param{const wxTreeItemId\& }{item}}
1114
1115Operators for comparison between \helpref{wxTreeItemId}{wxtreeitemid} objects.
1116