X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e2b34251cba8fd13818d99d04a336bd16126d44a..8dba8632c5bcd64724e2e9e2d40e295555a0cb86:/docs/latex/wx/treectrl.tex?ds=sidebyside diff --git a/docs/latex/wx/treectrl.tex b/docs/latex/wx/treectrl.tex index fad69db3bf..a52bf932a7 100644 --- a/docs/latex/wx/treectrl.tex +++ b/docs/latex/wx/treectrl.tex @@ -20,13 +20,47 @@ To intercept events from a tree control, use the event table macros described in \twocolwidtha{5cm} \begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxTR\_HAS\_BUTTONS}}{Use this style to show + and - buttons to the -left of parent items. Win32 only. } -\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\_MULTIPLE}}{Use this style to allow the user to -select more than one item in the control - by default, only one item may be -selected.} +\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\_TWIST\_BUTTONS}}{Use this style +to show Mac-style twister buttons to the left of parent items. +If both wxTR\_HAS\_BUTTONS and wxTR\_TWIST\_BUTTONS are given, +twister buttons are generated. Generic only.} +\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. Generic only.} +\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\_EXTENDED}}{Use this style +to allow disjoint items to be selected. (Only partially implemented; may not work in all cases.)} +\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}. @@ -45,8 +79,11 @@ functions that take a \helpref{wxTreeEvent}{wxtreeevent} argument. \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. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} +\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\_SEL\_CHANGED(id, func)}}{Selection has changed.} \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.} @@ -57,6 +94,17 @@ functions that take a \helpref{wxTreeEvent}{wxtreeevent} argument. \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/msdownload/ieplatform/ie/comctrlx86.asp}{http://www.microsoft.com/msdownload/ieplatform/ie/comctrlx86.asp}. + \latexignore{\rtfignore{\wxheading{Members}}} \membersection{wxTreeCtrl::wxTreeCtrl}\label{wxtreectrlconstr} @@ -105,6 +153,9 @@ Destructor, destroying the list control. 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. @@ -115,9 +166,49 @@ both selected and unselected items. 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 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}} @@ -196,16 +287,27 @@ Expands the given item. \constfunc{bool}{GetBoundingRect}{\param{const wxTreeItemId\&}{ item}, \param{wxRect\& }{rect}, \param{bool }{textOnly = FALSE}} Retrieves the rectangle bounding the {\it item}. If {\it textOnly} is TRUE, -only the rectangle around the items label will be returned, otherwise the -items image is also taken into account. +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 TRUE if the rectangle was successfully retrieved or FALSE if it was not (in this case {\it rect} is not changed) - for example, if the item is currently invisible. \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}.} +{\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} @@ -247,6 +349,9 @@ Returns an invalid tree item if there are no further children. \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 ( item, cookie ).} + \membersection{wxTreeCtrl::GetFirstVisibleItem}\label{wxtreectrlgetfirstvisibleitem} \constfunc{wxTreeItemId}{GetFirstVisibleItem}{\void} @@ -275,19 +380,30 @@ Returns the tree item data associated with the item. \helpref{wxTreeItemData}{wxtreeitemdata} -\pythonnote{wxPython provides the following shortcut method:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{GetPyData(item)}}{Returns the Python Object +\pythonnote{wxPython provides the following shortcut method: + +\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}} } +\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::GetItemImage}\label{wxtreectrlgetitemimage} \constfunc{int}{GetItemImage}{\param{const wxTreeItemId\& }{item}, -\param{wxTreeItemIcon }{which = wxTreeItemIcon\_Normal}} + \param{wxTreeItemIcon }{which = wxTreeItemIcon\_Normal}} Gets the specified item image. The value of {\it which} may be: + \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 @@ -337,6 +453,9 @@ Returns an invalid tree item if there are no further children. \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 + ( item, cookie ), instead of modifying its parameters.} + \membersection{wxTreeCtrl::GetNextSibling}\label{wxtreectrlgetnextsibling} \constfunc{wxTreeItemId}{GetNextSibling}{\param{const wxTreeItemId\&}{ item}} @@ -361,6 +480,9 @@ Returns the next visible item. Returns the item's parent. +\pythonnote{This method is named {\tt GetItemParent} to avoid a name +clash with wxWindow::GetParent.} + \membersection{wxTreeCtrl::GetPrevSibling}\label{wxtreectrlgetprevsibling} \constfunc{wxTreeItemId}{GetPrevSibling}{\param{const wxTreeItemId\&}{ item}} @@ -390,7 +512,7 @@ Returns the root item for the tree control. \constfunc{int}{GetItemSelectedImage}{\param{const wxTreeItemId\& }{item}} Gets the selected item image (this function is obsolete, use -{\tt GetItemImage(item, wxTreeItemIcon\_Selected} instead). +{\tt GetItemImage(item, wxTreeItemIcon\_Selected}) instead). \membersection{wxTreeCtrl::GetSelection}\label{wxtreectrlgetselection} @@ -411,7 +533,10 @@ 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.} +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} @@ -421,10 +546,10 @@ Returns the state image list (from which application-defined state images are ta \membersection{wxTreeCtrl::HitTest}\label{wxtreectrlhittest} -\func{long}{HitTest}{\param{const wxPoint\& }{point}, \param{int\& }{flags}} +\func{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 @@ -441,16 +566,31 @@ in {\it flags}. {\it flags} is a bitlist of the following: \twocolitem{wxTREE\_HITTEST\_TORIGHT}{To the left of the client area.} \end{twocollist} +\pythonnote{in wxPython both the wxTreeItemId and the flags are +returned as a tuple.} + +\perlnote{In wxPerl this method only takes the {\tt point} parameter + and returns a 2-element list ( item, flags ).} + \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 = NULL}} -Inserts an item after a given one. +\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 = NULL}} + +Inserts an item after a given one ({\it previous}) or before one identified by its position ({\it before}). +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}} @@ -503,6 +643,9 @@ See also: \helpref{SortChildren}{wxtreectrlsortchildren} 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. @@ -518,6 +661,22 @@ Scrolls the specified item into view. Selects the given item. +\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 NULL. + +This function is only available in the generic version. + +See also \helpref{AssignButtonsImageList}{wxtreectrlassignbuttonsimagelist}. + \membersection{wxTreeCtrl::SetIndent}\label{wxtreectrlsetindent} \func{void}{SetIndent}{\param{int }{indent}} @@ -528,7 +687,17 @@ Sets the indentation for the tree control. \func{void}{SetImageList}{\param{wxImageList*}{ imageList}} -Sets the normal image list. +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. + +See also \helpref{AssignImageList}{wxtreectrlassignimagelist}. + + +\membersection{wxTreeCtrl::SetItemBackgroundColour}\label{wxtreectrlsetitembackgroundcolour} + +\func{void}{SetItemBackgroundColour}{\param{const wxTreeItemId\&}{ item}, \param{const wxColour\& }{col}} + +Sets the colour of the item's background. \membersection{wxTreeCtrl::SetItemBold}\label{wxtreectrlsetitembold} @@ -546,12 +715,33 @@ See also: \helpref{IsBold}{wxtreectrlisbold} Sets the item client data. \pythonnote{wxPython provides the following shortcut method:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{SetPyData(item, obj)}}{Associate the given Python +\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{{\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::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 = TRUE}} @@ -564,18 +754,16 @@ usage and loading time. \membersection{wxTreeCtrl::SetItemImage}\label{wxtreectrlsetitemimage} \func{void}{SetItemImage}{\param{const wxTreeItemId\&}{ item}, -\param{int }{image}, -\param{wxTreeItemIcon }{which = wxTreeItemIcon\_Normal}} + \param{int }{image}, \param{wxTreeItemIcon }{which = wxTreeItemIcon\_Normal}} Sets the specified item image. See \helpref{GetItemImage}{wxtreectrlgetitemimage} -for the description of {\it which} parameter. +for the description of the {\it which} parameter. \membersection{wxTreeCtrl::SetItemSelectedImage}\label{wxtreectrlsetitemselectedimage} \func{void}{SetItemSelectedImage}{\param{const wxTreeItemId\&}{ item}, \param{int }{selImage}} -Sets the selected item image (this function is obsolete, use -{\tt SetItemImage(item, wxTreeItemIcon\_Selected} instead). +Sets the selected item image (this function is obsolete, use {\tt SetItemImage(item, wxTreeItemIcon\_Selected}) instead). \membersection{wxTreeCtrl::SetItemText}\label{wxtreectrlsetitemtext} @@ -583,11 +771,27 @@ Sets the selected item image (this function is obsolete, use Sets the item label. +\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::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}. + +\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.) \membersection{wxTreeCtrl::SortChildren}\label{wxtreectrlsortchildren} @@ -595,7 +799,7 @@ Sets the state image list (from which application-defined state images are taken Sorts the children of the given item using \helpref{OnCompareItems}{wxtreectrloncompareitems} method of wxTreeCtrl. You -should override that method to change the sort order (default is ascending +should override that method to change the sort order (the default is ascending alphabetical order). \wxheading{See also} @@ -662,14 +866,19 @@ associated with the tree item using the wxTreeItemData as a container. In addition, the following methods are added in wxPython for accessing -the object:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{GetData()}}{Returns a reference to the Python Object} -\twocolitem{\bf{SetData(obj)}}{Associates a new Python Object with the +the object: + +\indented{2cm}{\begin{twocollist}\itemsep=0pt +\twocolitem{{\bf GetData()}}{Returns a reference to the Python Object} +\twocolitem{{\bf SetData(obj)}}{Associates a new Python Object with the wxTreeItemData} \end{twocollist}} } +\perlnote{In wxPerl the constructor accepts as parameter an optional scalar, + and stores it as client data. You may retrieve this data by calling + {\bf GetData()}, and set it by callling {\bf SetData( data ).} +} \membersection{wxTreeItemData::\destruct{wxTreeItemData}}