X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bbcdf8bc7ca806d8278c7cb6d09d5590378b67d8..420455b510fc71f73d1ddfc02dbaf0dfcc8bce1c:/docs/latex/wx/treectrl.tex?ds=sidebyside diff --git a/docs/latex/wx/treectrl.tex b/docs/latex/wx/treectrl.tex index 2c2ac8ac38..fd9dda6277 100644 --- a/docs/latex/wx/treectrl.tex +++ b/docs/latex/wx/treectrl.tex @@ -1,7 +1,19 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Name: treectrl.tex +%% Purpose: wxTreeCtrl documentation +%% Author: wxWidgets Team +%% Modified by: +%% Created: +%% RCS-ID: $Id$ +%% Copyright: (c) wxWidgets Team +%% License: wxWindows license +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \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, +which may be tested for validity by calling \helpref{wxTreeItemId::IsOk}{wxtreeitemidisok}. To intercept events from a tree control, use the event table macros described in \helpref{wxTreeEvent}{wxtreeevent}. @@ -12,14 +24,49 @@ To intercept events from a tree control, use the event table macros described in \helpref{wxEvtHandler}{wxevthandler}\\ \helpref{wxObject}{wxobject} +\wxheading{Include files} + + + \wxheading{Window styles} \twocolwidtha{5cm} \begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxTR\_HAS\_BUTTONS}}{Use this style to show + and - buttons to the -left of parent items.} -\twocolitem{\windowstyle{wxTR\_EDIT\_LABELS}}{Use this style if you wish the user to be -able to edit labels in the tree control.} +\twocolitem{\windowstyle{wxTR\_EDIT\_LABELS}}{Use this style +if you wish the user to be able to edit labels in the tree control.} +\twocolitem{\windowstyle{wxTR\_NO\_BUTTONS}}{For convenience +to document that no buttons are to be drawn.} +\twocolitem{\windowstyle{wxTR\_HAS\_BUTTONS}}{Use this style +to show + and - buttons to the left of parent items.} +\twocolitem{\windowstyle{wxTR\_NO\_LINES}}{Use this style +to hide vertical level connectors.} +\twocolitem{\windowstyle{wxTR\_FULL\_ROW\_HIGHLIGHT}}{Use this style to have the background +colour and the selection highlight extend over the entire horizontal +row of the tree control window. (This flag is ignored under Windows unless you +specify wxTR\_NO\_LINES as well.) } +\twocolitem{\windowstyle{wxTR\_LINES\_AT\_ROOT}}{Use this style +to show lines between root nodes. +Only applicable if wxTR\_HIDE\_ROOT is set and wxTR\_NO\_LINES is not set.} +\twocolitem{\windowstyle{wxTR\_HIDE\_ROOT}}{Use this style +to suppress the display of the root node, +effectively causing the first-level nodes +to appear as a series of root nodes.} +\twocolitem{\windowstyle{wxTR\_ROW\_LINES}}{Use this style +to draw a contrasting border between displayed rows.} +\twocolitem{\windowstyle{wxTR\_HAS\_VARIABLE\_ROW\_HEIGHT}}{Use this style +to cause row heights to be just big enough to fit the content. +If not set, all rows use the largest row height. +The default is that this flag is unset. +Generic only.} +\twocolitem{\windowstyle{wxTR\_SINGLE}}{For convenience +to document that only one item may be selected at a time. +Selecting another item causes the current selection, if any, +to be deselected. This is the default.} +\twocolitem{\windowstyle{wxTR\_MULTIPLE}}{Use this style +to allow a range of items to be selected. +If a second range is selected, the current range, if any, is deselected.} +\twocolitem{\windowstyle{wxTR\_DEFAULT\_STYLE}}{The set of flags that are +closest to the defaults for the native control for a particular toolkit.} \end{twocollist} See also \helpref{window styles overview}{windowstyles}. @@ -33,25 +80,46 @@ functions that take a \helpref{wxTreeEvent}{wxtreeevent} argument. \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\_END\_DRAG(id, func)}}{End dragging with the left or right mouse button.} +\twocolitem{{\bf EVT\_TREE\_BEGIN\_LABEL\_EDIT(id, func)}}{Begin editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} +\twocolitem{{\bf EVT\_TREE\_END\_LABEL\_EDIT(id, func)}}{Finish editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} \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\_ITEM\_ACTIVATED(id, func)}}{The item has been activated, i.e. chosen by double clicking it with mouse or from keyboard} +\twocolitem{{\bf EVT\_TREE\_ITEM\_COLLAPSED(id, func)}}{The item has been collapsed.} +\twocolitem{{\bf EVT\_TREE\_ITEM\_COLLAPSING(id, func)}}{The item is being collapsed. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} +\twocolitem{{\bf EVT\_TREE\_ITEM\_EXPANDED(id, func)}}{The item has been expanded.} +\twocolitem{{\bf EVT\_TREE\_ITEM\_EXPANDING(id, func)}}{The item is being expanded. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} +\twocolitem{{\bf EVT\_TREE\_ITEM\_RIGHT\_CLICK(id, func)}}{The user has clicked the item with the right mouse button.} +\twocolitem{{\bf EVT\_TREE\_ITEM\_MIDDLE\_CLICK(id, func)}}{The user has clicked the item with the middle mouse button.} \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\_SEL\_CHANGING(id, func)}}{Selection is changing. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} \twocolitem{{\bf EVT\_TREE\_KEY\_DOWN(id, func)}}{A key has been pressed.} -\end{twocollist}% +\twocolitem{{\bf EVT\_TREE\_ITEM\_GETTOOLTIP(id, func)}}{The opportunity to set the item tooltip +is being given to the application (call wxTreeEvent::SetToolTip). Windows only.} +\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.} +\twocolitem{{\bf EVT\_TREE\_STATE\_IMAGE\_CLICK(id, func)}}{The state image has been clicked. Windows only.} +\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} +\wxheading{Win32 notes} + +wxTreeCtrl class uses the standard common treeview control under Win32 +implemented in the system library {\tt comctl32.dll}. Some versions of this +library are known to have bugs with handling the tree control colours: the +usual symptom is that the expanded items leave black (or otherwise incorrectly +coloured) background behind them, especially for the controls using non-default background colour. The recommended solution is to upgrade the {\tt comctl32.dll} +to a newer version: see +\urlref{http://www.microsoft.com/downloads/release.asp?ReleaseID=11916}{http://www.microsoft.com/downloads/release.asp?ReleaseID=11916}. + \latexignore{\rtfignore{\wxheading{Members}}} + \membersection{wxTreeCtrl::wxTreeCtrl}\label{wxtreectrlconstr} \func{}{wxTreeCtrl}{\void} @@ -60,13 +128,13 @@ Default constructor. \func{}{wxTreeCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{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 = ``treeCtrl"}} Constructor, creating and showing a tree control. \wxheading{Parameters} -\docparam{parent}{Parent window. Must not be NULL.} +\docparam{parent}{Parent window. Must not be {\tt NULL}.} \docparam{id}{Window identifier. A value of -1 indicates a default value.} @@ -85,54 +153,182 @@ appropriately.} \helpref{wxTreeCtrl::Create}{wxtreectrlcreate}, \helpref{wxValidator}{wxvalidator} -\membersection{wxTreeCtrl::\destruct{wxTreeCtrl}} + +\membersection{wxTreeCtrl::\destruct{wxTreeCtrl}}\label{wxtreectrldtor} \func{void}{\destruct{wxTreeCtrl}}{\void} -Destructor, destroying the list control. +Destructor, destroying the tree control. + + +\membersection{wxTreeCtrl::AddRoot}\label{wxtreectrladdroot} + +\func{wxTreeItemId}{AddRoot}{\param{const wxString\&}{ text}, + \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = {\tt NULL}}} + +Adds the root node to the tree, returning the new item. + +The {\it image} and {\it selImage} parameters are an index within +the normal image list specifying the image to use for unselected and +selected items, respectively. +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 = {\tt NULL}}} + +Appends an item to the end of the branch identified by {\it parent}, return a new item id. + +The {\it image} and {\it selImage} parameters are an index within +the normal image list specifying the image to use for unselected and +selected items, respectively. +If {\it image} > -1 and {\it selImage} is -1, the same image is used for +both selected and unselected items. + + +\membersection{wxTreeCtrl::AssignButtonsImageList}\label{wxtreectrlassignbuttonsimagelist} + +\func{void}{AssignButtonsImageList}{\param{wxImageList*}{ imageList}} + +Sets the buttons image list. The button images assigned with this method will +be automatically deleted by wxTreeCtrl as appropriate +(i.e. it takes ownership of the list). + +Setting or assigning the button image list enables the display of image buttons. +Once enabled, the only way to disable the display of button images is to set +the button image list to {\tt NULL}. + +This function is only available in the generic version. + +See also \helpref{SetButtonsImageList}{wxtreectrlsetbuttonsimagelist}. + + +\membersection{wxTreeCtrl::AssignImageList}\label{wxtreectrlassignimagelist} + +\func{void}{AssignImageList}{\param{wxImageList*}{ imageList}} + +Sets the normal image list. Image list assigned with this method will +be automatically deleted by wxTreeCtrl as appropriate +(i.e. it takes ownership of the list). + +See also \helpref{SetImageList}{wxtreectrlsetimagelist}. + + +\membersection{wxTreeCtrl::AssignStateImageList}\label{wxtreectrlassignstateimagelist} + +\func{void}{AssignStateImageList}{\param{wxImageList*}{ imageList}} + +Sets the state image list. Image list assigned with this method will +be automatically deleted by wxTreeCtrl as appropriate +(i.e. it takes ownership of the list). + +See also \helpref{SetStateImageList}{wxtreectrlsetstateimagelist}. + + + +\membersection{wxTreeCtrl::Collapse}\label{wxtreectrlcollapse} + +\func{void}{Collapse}{\param{const wxTreeItemId\&}{ item}} + +Collapses the given item. + + +\membersection{wxTreeCtrl::CollapseAll}\label{wxtreectrlcollapseall} + +\func{void}{CollapseAll}{\void} + +Collapses the root item. + +\wxheading{See also} + +\helpref{ExpandAll}{wxtreectrlexpandall} + + +\membersection{wxTreeCtrl::CollapseAllChildren}\label{wxtreectrlcollapseallchildren} + +\func{void}{CollapseAllChildren}{\param{const wxTreeItemId\&}{ item}} + +Collapses this item and all of its children, recursively. + +\wxheading{See also} + +\helpref{ExpandAllChildren}{wxtreectrlexpandallchildren} + + +\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{wxWindowID}{ id},\rtfsp \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{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 = ``treeCtrl"}} 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. A {\tt EVT\_TREE\_DELETE\_ITEM} event will be +generated. + +This function may cause a subsequent call to GetNextChild to fail. + + \membersection{wxTreeCtrl::DeleteAllItems}\label{wxtreectrldeleteallitems} -\func{bool}{DeleteAllItems}{\void} +\func{void}{DeleteAllItems}{\void} -Deletes all the items in the control. +Deletes all items in the control. Note that this may not generate +{\tt EVT\_TREE\_DELETE\_ITEM} events under some Windows versions although +normally such event is generated for each removed item. -\membersection{wxTreeCtrl::DeleteItem}\label{wxtreectrldeleteitem} -\func{bool}{DeleteItem}{\param{long }{item}} +\membersection{wxTreeCtrl::DeleteChildren}\label{wxtreectrldeletechildren} -Deletes the specified item. +\func{void}{DeleteChildren}{\param{const wxTreeItemId\& }{item}} -\membersection{wxTreeCtrl::EditLabel}\label{wxtreectrleditlabel} +Deletes all children of the given item (but not the item itself). Note that +this will {\bf not} generate any events unlike +\helpref{Delete}{wxtreectrldelete} method. + +If you have called \helpref{wxTreeCtrl::SetItemHasChildren}{wxtreectrlsetitemhaschildren}, you +may need to call it again since {\it DeleteChildren} does not automatically +clear the setting. -\func{wxTextCtrl*}{EditLabel}{\param{long }{item}, \param{wxClassInfo*}{ textControlClass = CLASSINFO(wxTextCtrl)}} -Starts editing the label of the given item, returning the text control that the tree control uses for editing. +\membersection{wxTreeCtrl::EditLabel}\label{wxtreectrleditlabel} -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{void}{EditLabel}{\param{const wxTreeItemId\&}{ item}} -Do not delete the text control yourself. +Starts editing the label of the given item. This function generates a +EVT\_TREE\_BEGIN\_LABEL\_EDIT event which can be vetoed so that no +text control will appear for in-place editing. -This function is currently supported under Windows only. +If the user changed the label (i.e. s/he does not press ESC or leave +the text control without changes, a EVT\_TREE\_END\_LABEL\_EDIT event +will be sent which can be vetoed as well. \wxheading{See also} -\helpref{wxTreeCtrl::EndEditLabel}{wxtreectrlendeditlabel} +\helpref{wxTreeCtrl::EndEditLabel}{wxtreectrlendeditlabel}, +\helpref{wxTreeEvent}{wxtreeevent} + \membersection{wxTreeCtrl::EndEditLabel}\label{wxtreectrlendeditlabel} -\func{bool}{EndEditLabel}{\param{bool }{cancelEdit}} +\func{void}{EndEditLabel}{\param{bool }{cancelEdit}} -Ends label editing. If {\it cancelEdit} is TRUE, the edit will be cancelled. +Ends label editing. If {\it cancelEdit} is {\tt true}, the edit will be cancelled. This function is currently supported under Windows only. @@ -140,64 +336,132 @@ This function is currently supported under Windows only. \helpref{wxTreeCtrl::EditLabel}{wxtreectrleditlabel} + \membersection{wxTreeCtrl::EnsureVisible}\label{wxtreectrlensurevisible} -\func{bool}{EnsureVisible}{\param{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} -\func{bool}{ExpandItem}{\param{long }{item}, \param{int }{action}} +\membersection{wxTreeCtrl::Expand}\label{wxtreectrlexpand} + +\func{void}{Expand}{\param{const wxTreeItemId\&}{ item}} Expands the given item. -{\it action} may be one of: -\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} +\membersection{wxTreeCtrl::ExpandAll}\label{wxtreectrlexpandall} + +\func{void}{ExpandAll}{\void} + +Expands all items in the tree. + + +\membersection{wxTreeCtrl::ExpandAllChildren}\label{wxtreectrlexpandallchildren} + +\func{void}{ExpandAllChildren}{\param{const wxTreeItemId\&}{ item}} + +Expands the given item and all its children recursively. + + +\membersection{wxTreeCtrl::GetBoundingRect}\label{wxtreectrlgetitemrect} + +\constfunc{bool}{GetBoundingRect}{\param{const wxTreeItemId\&}{ item}, \param{wxRect\& }{rect}, \param{bool }{textOnly = {\tt false}}} + +Retrieves the rectangle bounding the {\it item}. If {\it textOnly} is {\tt true}, +only the rectangle around the item's label will be returned, otherwise the +item's image is also taken into account. + +The return value is {\tt true} if the rectangle was successfully retrieved or {\tt false} +if it was not (in this case {\it rect} is not changed) -- for example, if the +item is currently invisible. -\membersection{wxTreeCtrl::GetChild}\label{wxtreectrlgetchild} +Notice that the rectangle coordinates are logical, not physical ones. So, for +example, the x coordinate may be negative if the tree has a horizontal +scrollbar and its position is not $0$. -\constfunc{long}{GetChild}{\param{long }{item}} +\pythonnote{The wxPython version of this method requires only the +{\tt item} and {\tt textOnly} parameters. The return value is either a +{\tt wxRect} object or {\tt None}.} + +\perlnote{In wxPerl this method only takes the parameters {\tt item} and + {\tt textOnly}, and returns a Wx::Rect ( or undef ).} + + +\membersection{wxTreeCtrl::GetButtonsImageList}\label{wxtreectrlgetbuttonsimagelist} + +\constfunc{wxImageList*}{GetButtonsImageList}{\void} + +Returns the buttons image list (from which application-defined button images are taken). + +This function is only available in the generic version. + + +\membersection{wxTreeCtrl::GetChildrenCount}\label{wxtreectrlgetchildrencount} + +\constfunc{unsigned int}{GetChildrenCount}{\param{const wxTreeItemId\&}{ item}, \param{bool}{ recursively = {\tt true}}} + +Returns the number of items in the branch. If {\it recursively} is {\tt true}, returns the total number +of descendants, otherwise only one level of children is counted. -Call this function to retrieve the tree view item that is the first child of the item specified by {\it item}. \membersection{wxTreeCtrl::GetCount}\label{wxtreectrlgetcount} -\constfunc{int}{GetCount}{\void} +\constfunc{unsigned int}{GetCount}{\void} Returns the number of items in the control. + \membersection{wxTreeCtrl::GetEditControl}\label{wxtreectrlgeteditcontrol} -\constfunc{wxTextCtrl\&}{GetEditControl}{\void} +\constfunc{wxTextCtrl *}{GetEditControl}{\void} + +Returns the edit control being currently used to edit a label. Returns {\tt NULL} +if no label is being edited. + +{\bf NB:} It is currently only implemented for wxMSW. + + +\membersection{wxTreeCtrl::GetFirstChild}\label{wxtreectrlgetfirstchild} + +\constfunc{wxTreeItemId}{GetFirstChild}{\param{const wxTreeItemId\&}{ item}, \param{wxTreeItemIdValue \& }{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 variable. + +Returns an invalid tree item (i.e. IsOk() returns {\tt false}) if there are no further children. + +\wxheading{See also} + +\helpref{wxTreeCtrl::GetNextChild}{wxtreectrlgetnextchild}, +\helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling} + +\pythonnote{In wxPython the returned wxTreeItemId and the new cookie +value are both returned as a tuple containing the two values.} + +\perlnote{In wxPerl this method only takes the {\tt item} parameter, and + returns a 2-element list {\tt ( item, cookie )}.} -Returns the edit control used to edit a label. \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{int }{which = wxIMAGE\_LIST\_NORMAL}} +\constfunc{wxImageList*}{GetImageList}{\void} -Returns the specified image list. {\it which} may be one of: +Returns the normal image list. -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxIMAGE\_LIST\_NORMAL}}{The normal (large icon) image list.} -\twocolitem{\windowstyle{wxIMAGE\_LIST\_SMALL}}{The small icon image list.} -\twocolitem{\windowstyle{wxIMAGE\_LIST\_STATE}}{The user-defined state image list (unimplemented).} -\end{twocollist} \membersection{wxTreeCtrl::GetIndent}\label{wxtreectrlgetindent} @@ -205,91 +469,232 @@ Returns the specified image list. {\it which} may be one of: Returns the current tree control indentation. -\membersection{wxTreeCtrl::GetItem}\label{wxtreectrlgetitem} -\constfunc{bool}{GetItem}{\param{wxTreeItem\& }{info}} +\membersection{wxTreeCtrl::GetItemBackgroundColour}\label{wxtreectrlgetitembackgroundcolour} + +\constfunc{wxColour}{GetItemBackgroundColour}{\param{const wxTreeItemId\&}{ item}} + +Returns the background colour of the item. -Gets information about the item. See \helpref{wxTreeCtrl::SetItem}{wxtreectrlsetitem} for more -information. \membersection{wxTreeCtrl::GetItemData}\label{wxtreectrlgetitemdata} -\constfunc{long}{GetItemData}{\param{long }{item}} +\constfunc{wxTreeItemData*}{GetItemData}{\param{const wxTreeItemId\&}{ item}} + +Returns the tree item data associated with the item. + +\wxheading{See also} + +\helpref{wxTreeItemData}{wxtreeitemdata} -Returns the client data associated with the item, if any. +\pythonnote{wxPython provides the following shortcut method: -\membersection{wxTreeCtrl::GetItemRect}\label{wxtreectrlgetitemrect} +\indented{2cm}{\begin{twocollist}\itemsep=0pt +\twocolitem{{\bf GetPyData(item)}}{Returns the Python Object +associated with the wxTreeItemData for the given item Id.} +\end{twocollist}} +}% -\constfunc{bool}{GetItemRect}{\param{long }{item}, \param{wxRect\& }{rect}, \param{bool }{textOnly = FALSE}} +\perlnote{wxPerl provides the following shortcut method: +\indented{2cm}{ +\begin{twocollist}\itemsep=0pt +\twocolitem{{\bf GetPlData( item )}}{Returns the Perl data +associated with the Wx::TreeItemData. It is just the same as +tree->GetItemData(item)->GetData().} +\end{twocollist}} +}% + +\membersection{wxTreeCtrl::GetItemFont}\label{wxtreectrlgetitemfont} + +\constfunc{wxFont}{GetItemFont}{\param{const wxTreeItemId\&}{ item}} + +Returns the font of the item label. + + +\membersection{wxTreeCtrl::GetItemImage}\label{wxtreectrlgetitemimage} -Returns the position and size of the rectangle bounding the item. +\constfunc{int}{GetItemImage}{\param{const wxTreeItemId\& }{item}, + \param{wxTreeItemIcon }{which = wxTreeItemIcon\_Normal}} -\membersection{wxTreeCtrl::GetItemState}\label{wxtreectrlgetitemstate} +Gets the specified item image. The value of {\it which} may be: -\constfunc{int}{GetItemState}{\param{long }{item}, \param{long }{stateMask}} +\begin{itemize}\itemsep=0pt +\item{wxTreeItemIcon\_Normal} to get the normal item image +\item{wxTreeItemIcon\_Selected} to get the selected item image (i.e. the image +which is shown when the item is currently selected) +\item{wxTreeItemIcon\_Expanded} to get the expanded image (this only +makes sense for items which have children - then this image is shown when the +item is expanded and the normal image is shown when it is collapsed) +\item{wxTreeItemIcon\_SelectedExpanded} to get the selected expanded image +(which is shown when an expanded item is currently selected) +\end{itemize} -Gets the item state. For a list of state flags, see \helpref{wxTreeCtrl::SetItem}{wxtreectrlsetitem}. \membersection{wxTreeCtrl::GetItemText}\label{wxtreectrlgetitemtext} -\constfunc{wxString}{GetItemText}{\param{long }{item}} +\constfunc{wxString}{GetItemText}{\param{const wxTreeItemId\&}{ item}} Returns the item label. -\membersection{wxTreeCtrl::GetNextItem}\label{wxtreectrlgetnextitem} -\constfunc{long}{GetNextItem}{\param{long }{item}, \param{int }{code}} +\membersection{wxTreeCtrl::GetItemTextColour}\label{wxtreectrlgetitemtextcolour} -Searches for an item using the given criterion, starting from {\it item}. +\constfunc{wxColour}{GetItemTextColour}{\param{const wxTreeItemId\&}{ item}} -Returns the item or 0 if unsuccessful. +Returns the colour of the item label. -{\it code} can be one of: -\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} +\membersection{wxTreeCtrl::GetLastChild}\label{wxtreectrlgetlastchild} -\membersection{wxTreeCtrl::GetNextVisibleItem}\label{wxtreectrlgetnextvisibleitem} +\constfunc{wxTreeItemId}{GetLastChild}{\param{const wxTreeItemId\&}{ item}} -\constfunc{long}{GetNextVisibleItem}{\param{long }{item}} +Returns the last child of the item (or an invalid tree item if this item has no children). + +\wxheading{See also} + +\helpref{GetFirstChild}{wxtreectrlgetfirstchild}, +\helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling}, +\helpref{GetLastChild}{wxtreectrlgetlastchild} + + +\membersection{wxTreeCtrl::GetNextChild}\label{wxtreectrlgetnextchild} + +\constfunc{wxTreeItemId}{GetNextChild}{\param{const wxTreeItemId\&}{ item}, \param{wxTreeItemIdValue \& }{cookie}} + +Returns the next child; call \helpref{wxTreeCtrl::GetFirstChild}{wxtreectrlgetfirstchild} for the first 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 an invalid tree item if there are no further children. + +\wxheading{See also} + +\helpref{wxTreeCtrl::GetFirstChild}{wxtreectrlgetfirstchild} + +\pythonnote{In wxPython the returned wxTreeItemId and the new cookie +value are both returned as a tuple containing the two values.} + +\perlnote{In wxPerl this method returns a 2-element list + {\tt ( item, cookie )}, instead of modifying its parameters.} + + +\membersection{wxTreeCtrl::GetNextSibling}\label{wxtreectrlgetnextsibling} + +\constfunc{wxTreeItemId}{GetNextSibling}{\param{const wxTreeItemId\&}{ item}} + +Returns the next sibling of the specified item; call \helpref{wxTreeCtrl::GetPrevSibling}{wxtreectrlgetprevsibling} for the previous sibling. + +Returns an invalid tree item if there are no further siblings. + +\wxheading{See also} + +\helpref{wxTreeCtrl::GetPrevSibling}{wxtreectrlgetprevsibling} + + +\membersection{wxTreeCtrl::GetNextVisible}\label{wxtreectrlgetnextvisible} + +\constfunc{wxTreeItemId}{GetNextVisible}{\param{const wxTreeItemId\&}{ item}} Returns the next visible item. -\membersection{wxTreeCtrl::GetParent}\label{wxtreectrlgetparent} -\constfunc{long}{GetParent}{\param{long }{item}} +\membersection{wxTreeCtrl::GetItemParent}\label{wxtreectrlgetitemparent} + +\constfunc{wxTreeItemId}{GetItemParent}{\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 an invalid tree item 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::GetQuickBestSize}\label{wxtreectrlgetquickbestsize} + +\constfunc{bool}{GetQuickBestSize}{\void} + +Returns true if the control will use a quick calculation for the best size, +looking only at the first and last items. The default is false. + +\wxheading{See also} + +\helpref{wxTreeCtrl::SetQuickBestSize}{wxtreectrlsetquickbestsize} + + \membersection{wxTreeCtrl::GetRootItem}\label{wxtreectrlgetrootitem} -\constfunc{long}{GetRootItem}{\void} +\constfunc{wxTreeItemId}{GetRootItem}{\void} Returns the root item for the tree control. + +\membersection{wxTreeCtrl::GetItemSelectedImage}\label{wxtreectrlgetitemselectedimage} + +\constfunc{int}{GetItemSelectedImage}{\param{const wxTreeItemId\& }{item}} + +Gets the selected item image (this function is obsolete, use +{\tt GetItemImage(item, wxTreeItemIcon\_Selected}) instead). + + \membersection{wxTreeCtrl::GetSelection}\label{wxtreectrlgetselection} -\constfunc{long}{GetSelection}{\void} +\constfunc{wxTreeItemId}{GetSelection}{\void} + +Returns the selection, or an invalid item if there is no selection. +This function only works with the controls without wxTR\_MULTIPLE style, use +\helpref{GetSelections}{wxtreectrlgetselections} for the controls which do have +this style. + + +\membersection{wxTreeCtrl::GetSelections}\label{wxtreectrlgetselections} + +\constfunc{unsigned int}{GetSelections}{\param{wxArrayTreeItemIds\& }{selection}} + +Fills the array of tree items passed in with the currently selected items. This +function can be called only if the control has the wxTR\_MULTIPLE style. + +Returns the number of selected items. + +\pythonnote{The wxPython version of this method accepts no parameters +and returns a Python list of {\tt wxTreeItemId}s.} + +\perlnote{In wxPerl this method takes no parameters and returns a list of + {\tt Wx::TreeItemId}s.} + + +\membersection{wxTreeCtrl::GetStateImageList}\label{wxtreectrlgetstateimagelist} + +\constfunc{wxImageList*}{GetStateImageList}{\void} + +Returns the state image list (from which application-defined state images are taken). -Returns the selection, or 0 if there is no selection. \membersection{wxTreeCtrl::HitTest}\label{wxtreectrlhittest} -\func{long}{HitTest}{\param{const wxPoint\& }{point}, \param{int\& }{flags}} +\constfunc{wxTreeItemId}{HitTest}{\param{const wxPoint\& }{point}, \param{int\& }{flags}} -Calculates which (if any) item is under the given point, returning extra information -in {\it flags}. {\it flags} is a bitlist of the following: +Calculates which (if any) item is under the given point, returning the tree item +id at this point plus extra information {\it flags}. {\it flags} is a bitlist of the following: \twocolwidtha{5cm} \begin{twocollist}\itemsep=0pt @@ -306,36 +711,142 @@ in {\it flags}. {\it flags} is a bitlist of the following: \twocolitem{wxTREE\_HITTEST\_TORIGHT}{To the left of the client area.} \end{twocollist} -\membersection{wxTreeCtrl::InsertItem}\label{wxtreectrlinsertitem} +\pythonnote{in wxPython both the wxTreeItemId and the flags are +returned as a tuple.} -\func{long}{InsertItem}{\param{long }{parent}, \param{wxTreeItem\& }{info}, \param{long }{insertAfter = wxTREE\_INSERT\_LAST}} +\perlnote{In wxPerl this method only takes the {\tt point} parameter + and returns a 2-element list {\tt ( item, flags )}.} -Inserts an item. For more information on {\it info}, see \helpref{wxTreeCtrl::SetItem}{wxtreectrlsetitem}. -\func{long}{InsertItem}{\param{long }{parent}, \param{const wxString\& }{label}, \param{int }{image = -1}, \param{int }{selImage = -1}, \param{long }{insertAfter = wxTREE\_INSERT\_LAST}} +\membersection{wxTreeCtrl::InsertItem}\label{wxtreectrlinsertitem} + +\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 = {\tt NULL}}} + +\func{wxTreeItemId}{InsertItem}{\param{const wxTreeItemId\& }{parent}, \param{size\_t}{ before}, \param{const wxString\&}{ text}, + \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = {\tt NULL}}} -Inserts an item. +Inserts an item after a given one ({\it previous}) or before one identified by its position ({\it before}). +{\it before} must be less than the number of children. +The {\it image} and {\it selImage} parameters are an index within +the normal image list specifying the image to use for unselected and +selected items, respectively. If {\it image} > -1 and {\it selImage} is -1, the same image is used for both selected and unselected items. +\pythonnote{The second form of this method is called +{\tt InsertItemBefore} in wxPython.} + + +\membersection{wxTreeCtrl::IsBold}\label{wxtreectrlisbold} + +\constfunc{bool}{IsBold}{\param{const wxTreeItemId\& }{item}} + +Returns {\tt true} if the given item is in bold state. + +See also: \helpref{SetItemBold}{wxtreectrlsetitembold} + + +\membersection{wxTreeCtrl::IsEmpty}\label{wxtreectrlisempty} + +\constfunc{bool}{IsEmpty}{} + +Returns \true if the control is empty (i.e. has no items, even no root one). + + +\membersection{wxTreeCtrl::IsExpanded}\label{wxtreectrlisexpanded} + +\constfunc{bool}{IsExpanded}{\param{const wxTreeItemId\&}{ item}} + +Returns {\tt 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 {\tt true} if the item is selected. + + +\membersection{wxTreeCtrl::IsVisible}\label{wxtreectrlisvisible} + +\constfunc{bool}{IsVisible}{\param{const wxTreeItemId\&}{ item}} + +Returns {\tt true} if the item is visible (it might be outside the view, or not expanded). + + \membersection{wxTreeCtrl::ItemHasChildren}\label{wxtreectrlitemhaschildren} -\constfunc{bool}{ItemHasChildren}{\param{long }{item}} +\constfunc{bool}{ItemHasChildren}{\param{const wxTreeItemId\&}{ item}} + +Returns {\tt true} if the item has children. + + +\membersection{wxTreeCtrl::OnCompareItems}\label{wxtreectrloncompareitems} + +\func{int}{OnCompareItems}{\param{const wxTreeItemId\& }{item1}, \param{const wxTreeItemId\& }{item2}} + +Override this function in the derived class to change the sort order of the +items in the tree control. The function should return a negative, zero or +positive value if the first item is less than, equal to or greater than the +second one. + +Please note that you \textbf{must} use wxRTTI macros +\helpref{DECLARE\_DYNAMIC\_CLASS}{declaredynamicclass} and +\helpref{IMPLEMENT\_DYNAMIC\_CLASS}{implementdynamicclass} if you override this +function because otherwise the base class considers that it is not overridden +and uses the default comparison, i.e. sorts the items alphabetically, which +allows it optimize away the calls to the virtual function completely. + +See also: \helpref{SortChildren}{wxtreectrlsortchildren} + + +\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 = {\tt NULL}}} + +Appends an item as the first child of {\it parent}, return a new item id. + +The {\it image} and {\it selImage} parameters are an index within +the normal image list specifying the image to use for unselected and +selected items, respectively. +If {\it image} > -1 and {\it selImage} is -1, the same image is used for +both selected and unselected items. -Returns TRUE if the item has children. \membersection{wxTreeCtrl::ScrollTo}\label{wxtreectrlscrollto} -\func{bool}{ScrollTo}{\param{long }{item}} +\func{void}{ScrollTo}{\param{const wxTreeItemId\&}{ item}} + +Scrolls the specified item into view. -selects the specified item and scrolls the item into view, \membersection{wxTreeCtrl::SelectItem}\label{wxtreectrlselectitem} -\func{bool}{SelectItem}{\param{long }{item}} +\func{void}{SelectItem}{\param{const wxTreeItemId\&}{ item}, \param{bool }{select = \true}} + +Selects the given item. In multiple selection controls, can be also used to +deselect a currently selected item if the value of \arg{select} is false. + + +\membersection{wxTreeCtrl::SetButtonsImageList}\label{wxtreectrlsetbuttonsimagelist} + +\func{void}{SetButtonsImageList}{\param{wxImageList*}{ imageList}} + +Sets the buttons image list (from which application-defined button images are taken). +The button images assigned with this method will +{\bf not} be deleted by wxTreeCtrl's destructor, you must delete it yourself. + +Setting or assigning the button image list enables the display of image buttons. +Once enabled, the only way to disable the display of button images is to set +the button image list to {\tt NULL}. + +This function is only available in the generic version. + +See also \helpref{AssignButtonsImageList}{wxtreectrlassignbuttonsimagelist}. -Selects the given item. \membersection{wxTreeCtrl::SetIndent}\label{wxtreectrlsetindent} @@ -343,89 +854,255 @@ Selects the given item. Sets the indentation for the tree control. + \membersection{wxTreeCtrl::SetImageList}\label{wxtreectrlsetimagelist} -\func{void}{SetImageList}{\param{wxImageList*}{ imageList}, \param{int }{which = wxIMAGE\_LIST\_NORMAL}} +\func{void}{SetImageList}{\param{wxImageList*}{ imageList}} -Sets the image list. {\it which} should be one of wxIMAGE\_LIST\_NORMAL, wxIMAGE\_LIST\_SMALL and -wxIMAGE\_LIST\_STATE. +Sets the normal image list. Image list assigned with this method will +{\bf not} be deleted by wxTreeCtrl's destructor, you must delete it yourself. -\membersection{wxTreeCtrl::SetItem}\label{wxtreectrlsetitem} +See also \helpref{AssignImageList}{wxtreectrlassignimagelist}. -\func{bool}{SetItem}{\param{wxTreeItem\& }{info}} -Sets the properties of the item. -The members of wxTreeItem are as follows: +\membersection{wxTreeCtrl::SetItemBackgroundColour}\label{wxtreectrlsetitembackgroundcolour} -\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} +\func{void}{SetItemBackgroundColour}{\param{const wxTreeItemId\&}{ item}, \param{const wxColour\& }{col}} -Valid mask flags are: +Sets the colour of the item's background. -\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} -Valid state and state mask flags are: +\membersection{wxTreeCtrl::SetItemBold}\label{wxtreectrlsetitembold} -\twocolwidtha{5cm} +\func{void}{SetItemBold}{\param{const wxTreeItemId\& }{item}, \param{bool}{ bold = {\tt true}}} + +Makes item appear in bold font if {\it bold} parameter is {\tt true} or resets it to +the normal state. + +See also: \helpref{IsBold}{wxtreectrlisbold} + + +\membersection{wxTreeCtrl::SetItemData}\label{wxtreectrlsetitemdata} + +\func{void}{SetItemData}{\param{const wxTreeItemId\&}{ item}, \param{wxTreeItemData* }{data}} + +Sets the item client data. + +\pythonnote{wxPython provides the following shortcut method:\par +\indented{2cm}{\begin{twocollist}\itemsep=0pt +\twocolitem{{\bf SetPyData(item, obj)}}{Associate the given Python +Object with the wxTreeItemData for the given item Id.} +\end{twocollist}} +}% + +\perlnote{wxPerl provides the following shortcut method: +\indented{2cm}{ \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} +\twocolitem{{\bf SetPlData( item, data )}}{Sets the Perl data +associated with the Wx::TreeItemData. It is just the same as +tree->GetItemData(item)->SetData(data).} +\end{twocollist}} +}% + +\membersection{wxTreeCtrl::SetItemDropHighlight}\label{wxtreectrlsetitemdrophighlight} + +\func{void}{SetItemDropHighlight}{\param{const wxTreeItemId\&}{ item}, \param{bool}{highlight = {\tt true}}} + +Gives the item the visual feedback for Drag'n'Drop actions, which is +useful if something is dragged from the outside onto the tree control +(as opposed to a DnD operation within the tree control, which already +is implemented internally). + +\membersection{wxTreeCtrl::SetItemFont}\label{wxtreectrlsetitemfont} + +\func{void}{SetItemFont}{\param{const wxTreeItemId\&}{ item}, \param{const wxFont\& }{font}} + +Sets the item's font. All items in the tree should have the same height to avoid +text clipping, so the fonts height should be the same for all of them, +although font attributes may vary. + +\wxheading{See also} + +\helpref{SetItemBold}{wxtreectrlsetitembold} + + +\membersection{wxTreeCtrl::SetItemHasChildren}\label{wxtreectrlsetitemhaschildren} + +\func{void}{SetItemHasChildren}{\param{const wxTreeItemId\&}{ item}, \param{bool }{hasChildren = {\tt true}}} + +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{long }{item}, \param{int }{image}, \param{int }{selImage}} +\func{void}{SetItemImage}{\param{const wxTreeItemId\&}{ item}, + \param{int }{image}, \param{wxTreeItemIcon }{which = wxTreeItemIcon\_Normal}} + +Sets the specified item image. See \helpref{GetItemImage}{wxtreectrlgetitemimage} +for the description of the {\it which} parameter. + -Sets the item image and selected image. These are indices into the assciated image list. +\membersection{wxTreeCtrl::SetItemSelectedImage}\label{wxtreectrlsetitemselectedimage} -\membersection{wxTreeCtrl::SetItemState}\label{wxtreectrlsetitemstate} +\func{void}{SetItemSelectedImage}{\param{const wxTreeItemId\&}{ item}, \param{int }{selImage}} -\func{bool}{SetItemState}{\param{long }{item}, \param{long }{state}, \param{long }{stateMask}} +Sets the selected item image (this function is obsolete, use {\tt SetItemImage(item, wxTreeItemIcon\_Selected}) instead). -Sets the item state. See \helpref{wxTreeCtrl::SetItem}{wxtreectrlsetitem} for valid state and state mask flags. \membersection{wxTreeCtrl::SetItemText}\label{wxtreectrlsetitemtext} -\func{void}{SetItemText}{\param{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} -\func{bool}{SetItemData}{\param{long }{item}, \param{long }{data}} +\membersection{wxTreeCtrl::SetItemTextColour}\label{wxtreectrlsetitemtextcolour} + +\func{void}{SetItemTextColour}{\param{const wxTreeItemId\&}{ item}, \param{const wxColour\& }{col}} + +Sets the colour of the item's text. + + +\membersection{wxTreeCtrl::SetQuickBestSize}\label{wxtreectrlsetquickbestsize} + +\func{void}{SetQuickBestSize}{\param{bool}{ quickBestSize}} + +If true is passed, specifies that the control will use a quick calculation for the best size, +looking only at the first and last items. Otherwise, it will look at all items. +The default is false. + +\wxheading{See also} + +\helpref{wxTreeCtrl::GetQuickBestSize}{wxtreectrlgetquickbestsize} + + +\membersection{wxTreeCtrl::SetStateImageList}\label{wxtreectrlsetstateimagelist} + +\func{void}{SetStateImageList}{\param{wxImageList*}{ imageList}} + +Sets the state image list (from which application-defined state images are taken). +Image list assigned with this method will +{\bf not} be deleted by wxTreeCtrl's destructor, you must delete it yourself. + +See also \helpref{AssignStateImageList}{wxtreectrlassignstateimagelist}. + +\membersection{wxTreeCtrl::SetWindowStyle}\label{wxtreectrlsetwindowstyle} + +\func{void}{SetWindowStyle}{\param{long}{styles}} + +Sets the mode flags associated with the display of the tree control. +The new mode takes effect immediately. +(Generic only; MSW ignores changes.) -Sets the item client data. \membersection{wxTreeCtrl::SortChildren}\label{wxtreectrlsortchildren} -\func{bool}{SortChildren}{\param{long }{item}} +\func{void}{SortChildren}{\param{const wxTreeItemId\&}{ item}} + +Sorts the children of the given item using +\helpref{OnCompareItems}{wxtreectrloncompareitems} method of wxTreeCtrl. You +should override that method to change the sort order (the default is ascending +case-sensitive alphabetical order). + +\wxheading{See also} + +\helpref{wxTreeItemData}{wxtreeitemdata}, \helpref{OnCompareItems}{wxtreectrloncompareitems} + + +\membersection{wxTreeCtrl::Toggle}\label{wxtreectrltoggle} + +\func{void}{Toggle}{\param{const wxTreeItemId\&}{ item}} + +Toggles the given item between collapsed and expanded states. + + +\membersection{wxTreeCtrl::ToggleItemSelection}\label{wxtreectrltoggleitemselection} + +\func{void}{ToggleItemSelection}{\param{const wxTreeItemId\&}{ item}} + +Toggles the given item between selected and unselected states. For +multiselection controls only. + + +\membersection{wxTreeCtrl::Unselect}\label{wxtreectrlunselect} + +\func{void}{Unselect}{\void} + +Removes the selection from the currently selected item (if any). + + +\membersection{wxTreeCtrl::UnselectAll}\label{wxtreectrlunselectall} + +\func{void}{UnselectAll}{\void} + +This function either behaves the same as \helpref{Unselect}{wxtreectrlunselect} +if the control doesn't have wxTR\_MULTIPLE style, or removes the selection from +all items if it does have this style. + + +\membersection{wxTreeCtrl::UnselectItem}\label{wxtreectrlunselectitem} + +\func{void}{UnselectItem}{\param{const wxTreeItemId\& }{item}} + +Unselects the given item. This works in multiselection controls only. + + + + + +%% the wxTreeItemId opaque class + + +\section{\class{wxTreeItemId}}\label{wxtreeitemid} + +An opaque reference to a tree item. + + +\wxheading{Derived from} + +None + +\wxheading{Include files} + + + +\wxheading{See also} + +\helpref{wxTreeCtrl}{wxtreectrl}, \helpref{wxTreeItemData}{wxtreeitemdata},\\ +\helpref{wxTreeCtrl overview}{wxtreectrloverview} + + +\latexignore{\rtfignore{\wxheading{Members}}} + +\membersection{wxTreeItemId::wxTreeItemId}\label{wxtreeitemidconstr} + +\func{}{wxTreeItemId}{\void} + +Default constructor. wxTreemItemIds are not meant to be constructed explicitly by +the user; they are returned by the \helpref{wxTreeCtrl}{wxtreectrl} functions instead. + + +\membersection{wxTreeItemId::IsOk}\label{wxtreeitemidisok} + +\constfunc{bool}{IsOk}{} + +Returns \true if this instance is referencing a valid tree item. + + +\membersection{Operators}\label{wxtreeitemidoperators} + +\constfunc{void}{operator $!$}{} + +Synonim for \helpref{IsOk}{wxtreeitemidisok} + + +\constfunc{bool}{operator $==$}{\param{const wxTreeItemId\& }{item}} + +\constfunc{bool}{operator $!=$}{\param{const wxTreeItemId\& }{item}} -Sorts the children of the given item in ascending alphabetical order. +Operators for comparison between \helpref{wxTreeItemId}{wxtreeitemid} objects.