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