X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a660d684eda27638bca0384b2058911a31c8e845..c0ed460c2e7802793d591c84f3cfdbff159c5549:/docs/latex/wx/treectrl.tex diff --git a/docs/latex/wx/treectrl.tex b/docs/latex/wx/treectrl.tex index 2eef812861..c831025d97 100644 --- a/docs/latex/wx/treectrl.tex +++ b/docs/latex/wx/treectrl.tex @@ -1,7 +1,7 @@ \section{\class{wxTreeCtrl}}\label{wxtreectrl} A tree control presents information as a hierarchy, with items that may be expanded -to show further items. Items in a tree control are referenced by long integer handles. +to show further items. Items in a tree control are referenced by wxTreeItemId handles. To intercept events from a tree control, use the event table macros described in \helpref{wxTreeEvent}{wxtreeevent}. @@ -24,9 +24,30 @@ able to edit labels in the tree control.} See also \helpref{window styles overview}{windowstyles}. +\wxheading{Event handling} + +To process input from a tree control, use these event handler macros to direct input to member +functions that take a \helpref{wxTreeEvent}{wxtreeevent} argument. + +\twocolwidtha{7cm} +\begin{twocollist}\itemsep=0pt +\twocolitem{{\bf EVT\_TREE\_BEGIN\_DRAG(id, func)}}{Begin dragging with the left mouse button.} +\twocolitem{{\bf EVT\_TREE\_BEGIN\_RDRAG(id, func)}}{Begin dragging with the right mouse button.} +\twocolitem{{\bf EVT\_TREE\_BEGIN\_LABEL\_EDIT(id, func)}}{Begin editing a label.} +\twocolitem{{\bf EVT\_TREE\_END\_LABEL\_EDIT(id, func)}}{Finish editing a label.} +\twocolitem{{\bf EVT\_TREE\_DELETE\_ITEM(id, func)}}{Delete an item.} +\twocolitem{{\bf EVT\_TREE\_GET\_INFO(id, func)}}{Request information from the application.} +\twocolitem{{\bf EVT\_TREE\_SET\_INFO(id, func)}}{Information is being supplied.} +\twocolitem{{\bf EVT\_TREE\_ITEM\_EXPANDED(id, func)}}{Parent has been expanded.} +\twocolitem{{\bf EVT\_TREE\_ITEM\_EXPANDING(id, func)}}{Parent is being expanded.} +\twocolitem{{\bf EVT\_TREE\_SEL\_CHANGED(id, func)}}{Selection has changed.} +\twocolitem{{\bf EVT\_TREE\_SEL\_CHANGING(id, func)}}{Selection is changing.} +\twocolitem{{\bf EVT\_TREE\_KEY\_DOWN(id, func)}}{A key has been pressed.} +\end{twocollist}% + \wxheading{See also} -\helpref{wxTreeCtrl overview}{wxtreectrloverview}, \helpref{wxListBox}{wxlistbox}, \helpref{wxListCtrl}{wxlistctrl},\rtfsp +\helpref{wxTreeItemData}{wxtreeitemdata}, \helpref{wxTreeCtrl overview}{wxtreectrloverview}, \helpref{wxListBox}{wxlistbox}, \helpref{wxListCtrl}{wxlistctrl},\rtfsp \helpref{wxImageList}{wximagelist}, \helpref{wxTreeEvent}{wxtreeevent} \latexignore{\rtfignore{\wxheading{Members}}} @@ -37,9 +58,9 @@ See also \helpref{window styles overview}{windowstyles}. Default constructor. -\func{}{wxTreeCtrl}{\param{wxWindow*}{ parent}, \param{const wxWindowID}{ id},\rtfsp +\func{}{wxTreeCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{const long}{ style = wxTR\_HAS\_BUTTONS}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listCtrl"}} +\param{long}{ style = wxTR\_HAS\_BUTTONS}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listCtrl"}} Constructor, creating and showing a tree control. @@ -70,59 +91,111 @@ appropriately.} Destructor, destroying the list control. +\membersection{wxTreeCtrl::AddRoot}\label{wxtreectrladdroot} + +\func{wxTreeItemId}{AddRoot}{\param{const wxString\&}{ text}, + \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = NULL}} + +Adds the root node to the tree, returning the new item. + +If {\it image} > -1 and {\it selImage} is -1, the same image is used for +both selected and unselected items. + +\membersection{wxTreeCtrl::AppendItem}\label{wxtreectrlappenditem} + +\func{wxTreeItemId}{AppendItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxString\&}{ text}, + \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = NULL}} + +Appends an item to the end of the branch identified by {\it parent}, return a new item id. + +If {\it image} > -1 and {\it selImage} is -1, the same image is used for +both selected and unselected items. + +\membersection{wxTreeCtrl::Collapse}\label{wxtreectrlcollapse} + +\func{void}{Collapse}{\param{const wxTreeItemId\&}{ item}} + +Collapses the given item. + +\membersection{wxTreeCtrl::CollapseAndReset}\label{wxtreectrlcollapseandreset} + +\func{void}{CollapseAndReset}{\param{const wxTreeItemId\&}{ item}} + +Collapses the given item and removes all children. + \membersection{wxTreeCtrl::Create}\label{wxtreectrlcreate} -\func{bool}{wxTreeCtrl}{\param{wxWindow*}{ parent}, \param{const wxWindowID}{ id},\rtfsp +\func{bool}{wxTreeCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{const long}{ style = wxTR\_HAS\_BUTTONS}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listCtrl"}} +\param{long}{ style = wxTR\_HAS\_BUTTONS}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listCtrl"}} Creates the tree control. See \helpref{wxTreeCtrl::wxTreeCtrl}{wxtreectrlconstr} for further details. +\membersection{wxTreeCtrl::Delete}\label{wxtreectrldelete} + +\func{void}{Delete}{\param{const wxTreeItemId\&}{ item}} + +Deletes the specified item. + \membersection{wxTreeCtrl::DeleteAllItems}\label{wxtreectrldeleteallitems} -\func{bool}{DeleteAllItems}{\void} +\func{void}{DeleteAllItems}{\void} Deletes all the items in the control. -\membersection{wxTreeCtrl::DeleteItem}\label{wxtreectrldeleteitem} +\membersection{wxTreeCtrl::EditLabel}\label{wxtreectrleditlabel} -\func{bool}{DeleteItem}{\param{const long }{item}} +\func{wxTextCtrl*}{EditLabel}{\param{const wxTreeItemId\&}{ item}, \param{wxClassInfo*}{ textControlClass = CLASSINFO(wxTextCtrl)}} -Deletes the specified item. +Starts editing the label of the given item, returning the text control that the tree control uses for editing. -\membersection{wxTreeCtrl::Edit}\label{wxtreectrledit} +Pass another {\it textControlClass} if a derived class is required. It usually will be, in order for +the application to detect when editing has finished and to call \helpref{wxTreeCtrl::EndEditLabel}{wxtreectrlendeditlabel}. -\func{wxTextCtrl\&}{Edit}{\param{const long }{item}} +Do not delete the text control yourself. -Starts editing the label of the given item, returning the text control that the tree control uses for editing. +This function is currently supported under Windows only. + +\wxheading{See also} + +\helpref{wxTreeCtrl::EndEditLabel}{wxtreectrlendeditlabel} + +\membersection{wxTreeCtrl::EndEditLabel}\label{wxtreectrlendeditlabel} + +\func{void}{EndEditLabel}{\param{bool }{cancelEdit}} + +Ends label editing. If {\it cancelEdit} is TRUE, the edit will be cancelled. + +This function is currently supported under Windows only. + +\wxheading{See also} + +\helpref{wxTreeCtrl::EditLabel}{wxtreectrleditlabel} \membersection{wxTreeCtrl::EnsureVisible}\label{wxtreectrlensurevisible} -\func{bool}{EnsureVisible}{\param{const long }{item}} +\func{void}{EnsureVisible}{\param{const wxTreeItemId\&}{ item}} Scrolls and/or expands items to ensure that the given item is visible. -\membersection{wxTreeCtrl::ExpandItem}\label{wxtreectrlexpanditem} +\membersection{wxTreeCtrl::Expand}\label{wxtreectrlexpand} -\func{bool}{ExpandItem}{\param{const long }{item}, \param{const int }{action}} +\func{void}{Expand}{\param{const wxTreeItemId\&}{ item}} Expands the given item. -{\it action} may be one of: +\membersection{wxTreeCtrl::GetBoundingRect}\label{wxtreectrlgetitemrect} -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxTREE\_EXPAND\_EXPAND}}{Expands the item.} -\twocolitem{\windowstyle{wxTREE\_EXPAND\_COLLAPSE}}{Collapses the item.} -\twocolitem{\windowstyle{wxTREE\_EXPAND\_COLLAPSE\_RESET}}{Collapses the item and removes the child items.} -\twocolitem{\windowstyle{wxTREE\_EXPAND\_TOGGLE}}{Expands if the item is collapsed, collapses if the item is expanded.} -\end{twocollist} +\constfunc{void}{GetBoundingRect}{\param{const wxTreeItemId\&}{ item}, \param{wxRect\& }{rect}, \param{bool }{textOnly = FALSE}} -\membersection{wxTreeCtrl::GetChild}\label{wxtreectrlgetchild} +Returns the position and size of the rectangle bounding the item. + +\membersection{wxTreeCtrl::GetChildrenCount}\label{wxtreectrlgetchildrencount} -\constfunc{long}{GetChild}{\param{const long }{item}} +\constfunc{size\_t}{GetChildrenCount}{\param{const wxTreeItemId\&}{ item}, \param{bool}{ recursively = TRUE}} -Call this function to retrieve the tree view item that is the first child of the item specified by {\it item}. +Returns the number of items in the branch. If {\it recursively} is TRUE, returns the total number +of descendants, otherwise only one level of children is counted. \membersection{wxTreeCtrl::GetCount}\label{wxtreectrlgetcount} @@ -136,15 +209,33 @@ Returns the number of items in the control. Returns the edit control used to edit a label. +\membersection{wxTreeCtrl::GetFirstChild}\label{wxtreectrlgetfirstchild} + +\constfunc{wxTreeItemId}{GetFirstChild}{\param{const wxTreeItemId\&}{ item}, \param{long\& }{cookie}} + +Returns the first child; call \helpref{wxTreeCtrl::GetNextChild}{wxtreectrlgetnextchild} for the next child. + +For this enumeration function you must pass in a `cookie' parameter +which is opaque for the application but is necessary for the library +to make these functions reentrant (i.e. allow more than one +enumeration on one and the same object simultaneously). The cookie passed to +GetFirstChild and GetNextChild should be the same. + +Returns 0 if there are no further children. + +\wxheading{See also} + +\helpref{wxTreeCtrl::GetNextChild}{wxtreectrlgetnextchild} + \membersection{wxTreeCtrl::GetFirstVisibleItem}\label{wxtreectrlgetfirstvisibleitem} -\constfunc{long}{GetFirstVisibleItem}{\void} +\constfunc{wxTreeItemId}{GetFirstVisibleItem}{\void} Returns the first visible item. \membersection{wxTreeCtrl::GetImageList}\label{wxtreectrlgetimagelist} -\constfunc{wxImageList*}{GetImageList}{\param{const int }{which = wxIMAGE\_LIST\_NORMAL}} +\constfunc{wxImageList*}{GetImageList}{\param{int }{which = wxIMAGE\_LIST\_NORMAL}} Returns the specified image list. {\it which} may be one of: @@ -161,82 +252,103 @@ Returns the specified image list. {\it which} may be one of: Returns the current tree control indentation. -\membersection{wxTreeCtrl::GetItem}\label{wxtreectrlgetitem} +\membersection{wxTreeCtrl::GetItemData}\label{wxtreectrlgetitemdata} -\constfunc{bool}{GetItem}{\param{wxTreeItem\& }{info}} +\constfunc{wxTreeItemData*}{GetItemData}{\param{const wxTreeItemId\&}{ item}} -Gets information about the item. See \helpref{wxTreeCtrl::SetItem}{wxtreectrlsetitem} for more -information. +Returns the tree item data associated with the item. -\membersection{wxTreeCtrl::GetItemData}\label{wxtreectrlgetitemdata} +\wxheading{See also} -\constfunc{long}{GetItemData}{\param{const long }{item}} +\helpref{wxTreeItemData}{wxtreeitemdata} -Returns the client data associated with the item, if any. +\membersection{wxTreeCtrl::GetItemImage}\label{wxtreectrlgetitemimage} -\membersection{wxTreeCtrl::GetItemRect}\label{wxtreectrlgetitemrect} +\constfunc{int}{GetItemImage}{\param{const wxTreeItemId\& }{item}} -\constfunc{bool}{GetItemRect}{\param{const long }{item}, \param{wxRect\& }{rect}, \param{bool }{textOnly = FALSE}} +Gets the normal item image. -Returns the position and size of the rectangle bounding the item. +\membersection{wxTreeCtrl::GetItemText}\label{wxtreectrlgetitemtext} -\membersection{wxTreeCtrl::GetItemState}\label{wxtreectrlgetitemstate} +\constfunc{wxString}{GetItemText}{\param{const wxTreeItemId\&}{ item}} -\constfunc{int}{GetItemState}{\param{const long }{item}, \param{const long }{stateMask}} +Returns the item label. -Gets the item state. For a list of state flags, see \helpref{wxTreeCtrl::SetItem}{wxtreectrlsetitem}. +\membersection{wxTreeCtrl::GetNextChild}\label{wxtreectrlgetnextchild} -\membersection{wxTreeCtrl::GetItemText}\label{wxtreectrlgetitemtext} +\constfunc{wxTreeItemId}{GetNextChild}{\param{const wxTreeItemId\&}{ item}, \param{long\& }{cookie}} -\constfunc{wxString}{GetItemText}{\param{const long }{item}} +Returns the next child; call \helpref{wxTreeCtrl::GetFirstChild}{wxtreectrlgetfirstchild} for the first child. -Returns the item label. +For this enumeration function you must pass in a `cookie' parameter +which is opaque for the application but is necessary for the library +to make these functions reentrant (i.e. allow more than one +enumeration on one and the same object simultaneously). The cookie passed to +GetFirstChild and GetNextChild should be the same. -\membersection{wxTreeCtrl::GetNextItem}\label{wxtreectrlgetnextitem} +Returns 0 if there are no further children. -\constfunc{long}{GetNextItem}{\param{const long }{item}, \param{int }{code}} +\wxheading{See also} -Searches for an item using the given criterion, starting from {\it item}. +\helpref{wxTreeCtrl::GetFirstChild}{wxtreectrlgetfirstchild} -Returns the item or 0 if unsuccessful. +\membersection{wxTreeCtrl::GetNextSibling}\label{wxtreectrlgetnextsibling} -{\it code} can be one of: +\constfunc{wxTreeItemId}{GetNextSibling}{\param{const wxTreeItemId\&}{ item}} -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxTREE\_NEXT\_CARET}{Retrieves the currently selected item.} -\twocolitem{wxTREE\_NEXT\_CHILD}{Retrieves the first child item. The hItem parameter must be NULL.} -\twocolitem{wxTREE\_NEXT\_DROPHILITE}{Retrieves the item that is the target of a drag-and-drop operation.} -\twocolitem{wxTREE\_NEXT\_FIRSTVISIBLE}{Retrieves the first visible item.} -\twocolitem{wxTREE\_NEXT\_NEXT}{Retrieves the next sibling item.} -\twocolitem{wxTREE\_NEXT\_NEXTVISIBLE}{Retrieves the next visible item that follows the specified item.} -\twocolitem{wxTREE\_NEXT\_PARENT}{Retrieves the parent of the specified item.} -\twocolitem{wxTREE\_NEXT\_PREVIOUS}{Retrieves the previous sibling item.} -\twocolitem{wxTREE\_NEXT\_PREVIOUSVISIBLE}{Retrieves the first visible item that precedes the specified item.} -\twocolitem{wxTREE\_NEXT\_ROOT}{Retrieves the first child item of the root item of which the specified item is a part.} -\end{twocollist} +Returns the next sibling of the specified item; call \helpref{wxTreeCtrl::GetPrevSibling}{wxtreectrlgetprevsibling} for the previous sibling. + +Returns 0 if there are no further siblings. -\membersection{wxTreeCtrl::GetNextVisibleItem}\label{wxtreectrlgetnextvisibleitem} +\wxheading{See also} + +\helpref{wxTreeCtrl::GetPrevSibling}{wxtreectrlgetprevsibling} + +\membersection{wxTreeCtrl::GetNextVisible}\label{wxtreectrlgetnextvisible} -\constfunc{long}{GetNextVisibleItem}{\param{const long }{item}} +\constfunc{wxTreeItemId}{GetNextVisible}{\param{const wxTreeItemId\&}{ item}} Returns the next visible item. \membersection{wxTreeCtrl::GetParent}\label{wxtreectrlgetparent} -\constfunc{long}{GetParent}{\param{const long }{item}} +\constfunc{wxTreeItemId}{GetParent}{\param{const wxTreeItemId\&}{ item}} Returns the item's parent. +\membersection{wxTreeCtrl::GetPrevSibling}\label{wxtreectrlgetprevsibling} + +\constfunc{wxTreeItemId}{GetPrevSibling}{\param{const wxTreeItemId\&}{ item}} + +Returns the previous sibling of the specified item; call \helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling} for the next sibling. + +Returns 0 if there are no further children. + +\wxheading{See also} + +\helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling} + +\membersection{wxTreeCtrl::GetPrevVisible}\label{wxtreectrlgetprevvisible} + +\constfunc{wxTreeItemId}{GetPrevVisible}{\param{const wxTreeItemId\&}{ item}} + +Returns the previous visible item. + \membersection{wxTreeCtrl::GetRootItem}\label{wxtreectrlgetrootitem} -\constfunc{long}{GetRootItem}{\void} +\constfunc{wxTreeItemId}{GetRootItem}{\void} Returns the root item for the tree control. +\membersection{wxTreeCtrl::GetSelectedItemImage}\label{wxtreectrlgetselecteditemimage} + +\constfunc{int}{GetSelectedItemImage}{\param{const wxTreeItemId\& }{item}} + +Gets the selected item image. + \membersection{wxTreeCtrl::GetSelection}\label{wxtreectrlgetselection} -\constfunc{long}{GetSelection}{\void} +\constfunc{wxTreeItemId}{GetSelection}{\void} Returns the selection, or 0 if there is no selection. @@ -264,32 +376,57 @@ in {\it flags}. {\it flags} is a bitlist of the following: \membersection{wxTreeCtrl::InsertItem}\label{wxtreectrlinsertitem} -\func{long}{InsertItem}{\param{const long }{parent}, \param{wxTreeItem\& }{info}, \param{const long }{insertAfter = wxTREE\_INSERT\_LAST}} - -Inserts an item. For more information on {\it info}, see \helpref{wxTreeCtrl::SetItem}{wxtreectrlsetitem}. +\func{wxTreeItemId}{InsertItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxTreeItemId\& }{previous}, \param{const wxString\&}{ text}, + \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = NULL}} -\func{long}{InsertItem}{\param{const long }{parent}, \param{const wxString\& }{label}, \param{const int }{image = -1}, \param{const int }{selImage = -1}, \param{const long }{insertAfter = wxTREE\_INSERT\_LAST}} - -Inserts an item. +Inserts an item after a given one. If {\it image} > -1 and {\it selImage} is -1, the same image is used for both selected and unselected items. +\membersection{wxTreeCtrl::IsExpanded}\label{wxtreectrlisexpanded} + +\constfunc{bool}{IsExpanded}{\param{const wxTreeItemId\&}{ item}} + +Returns TRUE if the item is expanded (only makes sense if it has children). + +\membersection{wxTreeCtrl::IsSelected}\label{wxtreectrlisselected} + +\constfunc{bool}{IsSelected}{\param{const wxTreeItemId\&}{ item}} + +Returns TRUE if the item is selected. + +\membersection{wxTreeCtrl::IsVisible}\label{wxtreectrlisvisible} + +\constfunc{bool}{IsVisible}{\param{const wxTreeItemId\&}{ item}} + +Returns TRUE if the item is visible (it might be outside the view, or not expanded). + \membersection{wxTreeCtrl::ItemHasChildren}\label{wxtreectrlitemhaschildren} -\constfunc{bool}{ItemHasChildren}{\param{const long }{item}} +\constfunc{bool}{ItemHasChildren}{\param{const wxTreeItemId\&}{ item}} Returns TRUE if the item has children. +\membersection{wxTreeCtrl::PrependItem}\label{wxtreectrlprependitem} + +\func{wxTreeItemId}{PrependItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxString\&}{ text}, + \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = NULL}} + +Appends an item as the first child of {\it parent}, return a new item id. + +If {\it image} > -1 and {\it selImage} is -1, the same image is used for +both selected and unselected items. + \membersection{wxTreeCtrl::ScrollTo}\label{wxtreectrlscrollto} -\func{bool}{ScrollTo}{\param{const long }{item}} +\func{void}{ScrollTo}{\param{const wxTreeItemId\&}{ item}} -selects the specified item and scrolls the item into view, +Scrolls the specified item into view. \membersection{wxTreeCtrl::SelectItem}\label{wxtreectrlselectitem} -\func{bool}{SelectItem}{\param{const long }{item}} +\func{bool}{SelectItem}{\param{const wxTreeItemId\&}{ item}} Selects the given item. @@ -301,87 +438,122 @@ Sets the indentation for the tree control. \membersection{wxTreeCtrl::SetImageList}\label{wxtreectrlsetimagelist} -\func{void}{SetImageList}{\param{wxImageList*}{ imageList}, \param{const int }{which = wxIMAGE\_LIST\_NORMAL}} +\func{void}{SetImageList}{\param{wxImageList*}{ imageList}, \param{int }{which = wxIMAGE\_LIST\_NORMAL}} Sets the image list. {\it which} should be one of wxIMAGE\_LIST\_NORMAL, wxIMAGE\_LIST\_SMALL and wxIMAGE\_LIST\_STATE. -\membersection{wxTreeCtrl::SetItem}\label{wxtreectrlsetitem} - -\func{bool}{SetItem}{\param{wxTreeItem\& }{info}} - -Sets the properties of the item. +\membersection{wxTreeCtrl::SetItemData}\label{wxtreectrlsetitemdata} -The members of wxTreeItem are as follows: +\func{void}{SetItemData}{\param{const wxTreeItemId\&}{ item}, \param{wxTreeItemData* }{data}} -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{m\_mask}{A bitlist specifying the valid members. See below for mask flags.} -\twocolitem{m\_itemId}{The item identifier.} -\twocolitem{m\_state}{The item state. See below for state flags.} -\twocolitem{m\_stateMask}{A bitlist specifying the valid contents of {\it m\_state}. These flags -are taken from the same set of symbols as {\it m\_state}.} -\twocolitem{m\_text}{The item label.} -\twocolitem{m\_image}{The item image index (an index into the appropriate image list).} -\twocolitem{m\_selectedImage}{The item selected index (an index into the appropriate image list).} -\twocolitem{m\_children}{The number of child items that this item has.} -\twocolitem{m\_data}{The application-defined data associated with this item.} -\end{twocollist} +Sets the item client data. -Valid mask flags are: +\membersection{wxTreeCtrl::SetItemHasChildren}\label{wxtreectrlsetitemhaschildren} -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxTREE\_MASK\_HANDLE}{The {\it m\_itemId} member is valid.} -\twocolitem{wxTREE\_MASK\_STATE}{The {\it m\_state} member is valid.} -\twocolitem{wxTREE\_MASK\_TEXT}{The {\it m\_text} member is valid.} -\twocolitem{wxTREE\_MASK\_IMAGE}{The {\it m\_image} member is valid.} -\twocolitem{wxTREE\_MASK\_SELECTED\_IMAGE}{The {\it m\_selectedImage} member is valid.} -\twocolitem{wxTREE\_MASK\_CHILDREN}{The {\it m\_children} member is valid.} -\twocolitem{wxTREE\_MASK\_DATA}{The {\it m\_data} member is valid.} -\end{twocollist} +\func{void}{SetItemHasChildren}{\param{const wxTreeItemId\&}{ item}, \param{bool }{hasChildren = TRUE}} -Valid state and state mask flags are: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxTREE\_STATE\_BOLD}{The label is emboldened.} -\twocolitem{wxTREE\_STATE\_DROPHILITED}{The item indicates it is a drop target.} -\twocolitem{wxTREE\_STATE\_EXPANDED}{The item is expanded.} -\twocolitem{wxTREE\_STATE\_EXPANDEDONCE}{The item's list of child items has been expanded at least once.} -\twocolitem{wxTREE\_STATE\_FOCUSED}{The item has the focus, so it is surrounded by a standard focus rectangle. -Only one item can have the focus.} -\twocolitem{wxTREE\_STATE\_SELECTED}{The item is selected.} -\twocolitem{wxTREE\_STATE\_CUT}{The item is selected as part of a cut and paste operation.} -\end{twocollist} +Force appearance of the button next to the item. This is useful to +allow the user to expand the items which don't have any children now, +but instead adding them only when needed, thus minimizing memory +usage and loading time. \membersection{wxTreeCtrl::SetItemImage}\label{wxtreectrlsetitemimage} -\func{bool}{SetItemImage}{\param{const long }{item}, \param{const int }{image}, \param{const int }{selImage}} +\func{void}{SetItemImage}{\param{const wxTreeItemId\&}{ item}, \param{int }{image}} -Sets the item image and selected image. These are indices into the assciated image list. +Sets the normal item image. This is an index into the assciated image list. -\membersection{wxTreeCtrl::SetItemState}\label{wxtreectrlsetitemstate} +\membersection{wxTreeCtrl::SetItemSelectedImage}\label{wxtreectrlsetitemselectedimage} -\func{bool}{SetItemState}{\param{const long }{item}, \param{const long }{state}, \param{const long }{stateMask}} +\func{void}{SetItemSelectedImage}{\param{const wxTreeItemId\&}{ item}, \param{int }{selImage}} -Sets the item state. See \helpref{wxTreeCtrl::SetItem}{wxtreectrlsetitem} for valid state and state mask flags. +Sets the item selected image. This is an index into the assciated image list. \membersection{wxTreeCtrl::SetItemText}\label{wxtreectrlsetitemtext} -\func{void}{SetItemText}{\param{const long }{item}, \param{const wxString\& }{text}} +\func{void}{SetItemText}{\param{const wxTreeItemId\&}{ item}, \param{const wxString\& }{text}} Sets the item label. -\membersection{wxTreeCtrl::SetItemData}\label{wxtreectrlsetitemdata} +\membersection{wxTreeCtrl::SortChildren}\label{wxtreectrlsortchildren} -\func{bool}{SetItemData}{\param{const long }{item}, \param{long }{data}} +\func{void}{SortChildren}{\param{const wxTreeItemId\&}{ item}, \param{wxTreeItemCmpFunc*}{ cmpFunction = NULL}} -Sets the item client data. +Sorts the children of the given item. If {\it cmpFunction} is NULL, sorts in ascending alphabetical order; +otherwise the custom sort function is used, as follows: -\membersection{wxTreeCtrl::SortChildren}\label{wxtreectrlsortchildren} +{\small +\begin{verbatim} +// a callback function used for sorting tree items, it should return -1 if the +// first item precedes the second, +1 if the second precedes the first or 0 if +// they're equivalent +class wxTreeItemData; +typedef int (*wxTreeItemCmpFunc)(wxTreeItemData *item1, wxTreeItemData *item2); +\end{verbatim} +} + +\wxheading{See also} + +\helpref{wxTreeItemData}{wxtreeitemdata} + +\membersection{wxTreeCtrl::Toggle}\label{wxtreectrltoggle} + +\func{void}{Toggle}{\param{const wxTreeItemId\&}{ item}} + +Toggles the given item between collapsed and expanded states. + +\membersection{wxTreeCtrl::Unselect}\label{wxtreectrlunselect} + +\func{void}{Unselect}{\void} + +Removes the selection from the currently selected item (if any). + +\section{\class{wxTreeItemData}}\label{wxtreeitemdata} + +wxTreeItemData is some (arbitrary) user class associated with some item. The +main advantage of having this class (compared to the old untyped interface) is +that wxTreeItemData's are destroyed automatically by the tree and, as this +class has virtual dtor, it means that the memory will be automatically +freed. We don't just use wxObject instead of wxTreeItemData because +the size of this class is critical: in any real application, each tree leaf +will have wxTreeItemData associated with it and number of leaves may be +quite big. + +Because the objects of this class are deleted by the tree, they should +always be allocated on the heap. + +\wxheading{Derived from} + +wxTreeItemId + +\wxheading{See also} + +\helpref{wxTreeCtrl}{wxtreectrl} + +\latexignore{\rtfignore{\wxheading{Members}}} + +\membersection{wxTreeItemData::wxTreeItemData}\label{wxtreeitemdataconstr} + +\func{}{wxTreeItemData}{\void} + +Default constructor. + +\membersection{wxTreeItemData::\destruct{wxTreeItemData}} + +\func{void}{\destruct{wxTreeItemData}}{\void} + +Virtual destructor. + +\membersection{wxTreeItemData::GetId}\label{wxtreeitemdatagetid} + +\func{const wxTreeItem\&}{GetId}{\void} + +Returns the item associated with this node. + +\membersection{wxTreeItemData::SetId}\label{wxtreeitemdatasetid} -\func{bool}{SortChildren}{\param{const long }{item}} +\func{void}{SetId}{\param{const wxTreeItemId\&}{ id}} -Sorts the children of the given item in ascending alphabetical order. +Sets the item associated with this node.