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