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