]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/treectrl.tex
Added VC++ project files for remaining Gizmo samples
[wxWidgets.git] / docs / latex / wx / treectrl.tex
index 47f182a80058a510be7745d1042926744c3bc512..76b0f77a5fece3915bb8df64592f8f7c8a184e47 100644 (file)
@@ -20,13 +20,47 @@ To intercept events from a tree control, use the event table macros described in
 
 \twocolwidtha{5cm}
 \begin{twocollist}\itemsep=0pt
 
 \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}.
 \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\_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.}
 \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}
 
 \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}
 \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.
 
 
 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.
 
 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.
 
 
 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.
 
 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}}
 \membersection{wxTreeCtrl::Collapse}\label{wxtreectrlcollapse}
 
 \func{void}{Collapse}{\param{const wxTreeItemId\&}{ item}}
@@ -159,7 +250,7 @@ EVT\_TREE\_BEGIN\_LABEL\_EDIT event which can be vetoed so that no
 text control will appear for in-place editing.
 
 If the user changed the label (i.e. s/he does not press ESC or leave
 text control will appear for in-place editing.
 
 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 
+the text control without changes, a EVT\_TREE\_END\_LABEL\_EDIT event
 will be sent which can be vetoed as well.
 
 \wxheading{See also}
 will be sent which can be vetoed as well.
 
 \wxheading{See also}
@@ -196,13 +287,28 @@ 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,
 \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.
 
 
 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}.}
+
+\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{size\_t}{GetChildrenCount}{\param{const wxTreeItemId\&}{ item}, \param{bool}{ recursively = TRUE}}
 \membersection{wxTreeCtrl::GetChildrenCount}\label{wxtreectrlgetchildrencount}
 
 \constfunc{size\_t}{GetChildrenCount}{\param{const wxTreeItemId\&}{ item}, \param{bool}{ recursively = TRUE}}
@@ -243,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.}
 
 \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 )}.}
+
 \membersection{wxTreeCtrl::GetFirstVisibleItem}\label{wxtreectrlgetfirstvisibleitem}
 
 \constfunc{wxTreeItemId}{GetFirstVisibleItem}{\void}
 \membersection{wxTreeCtrl::GetFirstVisibleItem}\label{wxtreectrlgetfirstvisibleitem}
 
 \constfunc{wxTreeItemId}{GetFirstVisibleItem}{\void}
@@ -251,16 +360,9 @@ Returns the first visible item.
 
 \membersection{wxTreeCtrl::GetImageList}\label{wxtreectrlgetimagelist}
 
 
 \membersection{wxTreeCtrl::GetImageList}\label{wxtreectrlgetimagelist}
 
-\constfunc{wxImageList*}{GetImageList}{\param{int }{which = wxIMAGE\_LIST\_NORMAL}}
-
-Returns the specified image list. {\it which} may be one of:
+\constfunc{wxImageList*}{GetImageList}{\void}
 
 
-\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}
+Returns the normal image list.
 
 \membersection{wxTreeCtrl::GetIndent}\label{wxtreectrlgetindent}
 
 
 \membersection{wxTreeCtrl::GetIndent}\label{wxtreectrlgetindent}
 
@@ -278,18 +380,40 @@ Returns the tree item data associated with the item.
 
 \helpref{wxTreeItemData}{wxtreeitemdata}
 
 
 \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}}
 }
 
 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}
 
 \membersection{wxTreeCtrl::GetItemImage}\label{wxtreectrlgetitemimage}
 
-\constfunc{int}{GetItemImage}{\param{const wxTreeItemId\& }{item}}
+\constfunc{int}{GetItemImage}{\param{const wxTreeItemId\& }{item},
+ \param{wxTreeItemIcon }{which = wxTreeItemIcon\_Normal}}
+
+Gets the specified item image. The value of {\it which} may be:
 
 
-Gets the normal item image.
+\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}
 
 \membersection{wxTreeCtrl::GetItemText}\label{wxtreectrlgetitemtext}
 
 
 \membersection{wxTreeCtrl::GetItemText}\label{wxtreectrlgetitemtext}
 
@@ -329,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.}
 
 \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}}
 \membersection{wxTreeCtrl::GetNextSibling}\label{wxtreectrlgetnextsibling}
 
 \constfunc{wxTreeItemId}{GetNextSibling}{\param{const wxTreeItemId\&}{ item}}
@@ -353,6 +480,9 @@ Returns the next visible item.
 
 Returns the item's parent.
 
 
 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}}
 \membersection{wxTreeCtrl::GetPrevSibling}\label{wxtreectrlgetprevsibling}
 
 \constfunc{wxTreeItemId}{GetPrevSibling}{\param{const wxTreeItemId\&}{ item}}
@@ -381,14 +511,15 @@ Returns the root item for the tree control.
 
 \constfunc{int}{GetItemSelectedImage}{\param{const wxTreeItemId\& }{item}}
 
 
 \constfunc{int}{GetItemSelectedImage}{\param{const wxTreeItemId\& }{item}}
 
-Gets the selected item image.
+Gets the selected item image (this function is obsolete, use
+{\tt GetItemImage(item, wxTreeItemIcon\_Selected}) instead).
 
 \membersection{wxTreeCtrl::GetSelection}\label{wxtreectrlgetselection}
 
 \constfunc{wxTreeItemId}{GetSelection}{\void}
 
 Returns the selection, or an invalid item if there is no selection.
 
 \membersection{wxTreeCtrl::GetSelection}\label{wxtreectrlgetselection}
 
 \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 
+This function only works with the controls without wxTR\_MULTIPLE style, use
 \helpref{GetSelections}{wxtreectrlgetselections} for the controls which do have
 this style.
 
 \helpref{GetSelections}{wxtreectrlgetselections} for the controls which do have
 this style.
 
@@ -401,12 +532,24 @@ function can be called only if the control has the wxTR\_MULTIPLE style.
 
 Returns the number of selected items.
 
 
 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).
+
 \membersection{wxTreeCtrl::HitTest}\label{wxtreectrlhittest}
 
 \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
 
 \twocolwidtha{5cm}
 \begin{twocollist}\itemsep=0pt
@@ -423,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}
 
 \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 {\tt ( 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}}
 
 \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.
 
 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}}
 \membersection{wxTreeCtrl::IsBold}\label{wxtreectrlisbold}
 
 \constfunc{bool}{IsBold}{\param{const wxTreeItemId\& }{item}}
@@ -485,6 +643,9 @@ See also: \helpref{SortChildren}{wxtreectrlsortchildren}
 
 Appends an item as the first child of {\it parent}, return a new item id.
 
 
 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.
 
 If {\it image} > -1 and {\it selImage} is -1, the same image is used for
 both selected and unselected items.
 
@@ -500,6 +661,22 @@ Scrolls the specified item into view.
 
 Selects the given item.
 
 
 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}}
 \membersection{wxTreeCtrl::SetIndent}\label{wxtreectrlsetindent}
 
 \func{void}{SetIndent}{\param{int }{indent}}
@@ -508,10 +685,19 @@ Sets the indentation for the tree control.
 
 \membersection{wxTreeCtrl::SetImageList}\label{wxtreectrlsetimagelist}
 
 
 \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 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}.
 
 
-Sets the image list. {\it which} should be one of wxIMAGE\_LIST\_NORMAL, wxIMAGE\_LIST\_SMALL and
-wxIMAGE\_LIST\_STATE.
+
+\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}
 
 
 \membersection{wxTreeCtrl::SetItemBold}\label{wxtreectrlsetitembold}
 
@@ -529,12 +715,33 @@ See also: \helpref{IsBold}{wxtreectrlisbold}
 Sets the item client data.
 
 \pythonnote{wxPython provides the following shortcut method:\par
 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}}
 }
 
 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}}
 \membersection{wxTreeCtrl::SetItemHasChildren}\label{wxtreectrlsetitemhaschildren}
 
 \func{void}{SetItemHasChildren}{\param{const wxTreeItemId\&}{ item}, \param{bool }{hasChildren = TRUE}}
@@ -546,15 +753,17 @@ usage and loading time.
 
 \membersection{wxTreeCtrl::SetItemImage}\label{wxtreectrlsetitemimage}
 
 
 \membersection{wxTreeCtrl::SetItemImage}\label{wxtreectrlsetitemimage}
 
-\func{void}{SetItemImage}{\param{const wxTreeItemId\&}{ item}, \param{int }{image}}
+\func{void}{SetItemImage}{\param{const wxTreeItemId\&}{ item},
+ \param{int }{image}, \param{wxTreeItemIcon }{which = wxTreeItemIcon\_Normal}}
 
 
-Sets the normal item image. This is an index into the assciated image list.
+Sets the specified item image. See \helpref{GetItemImage}{wxtreectrlgetitemimage}
+for the description of the {\it which} parameter.
 
 \membersection{wxTreeCtrl::SetItemSelectedImage}\label{wxtreectrlsetitemselectedimage}
 
 \func{void}{SetItemSelectedImage}{\param{const wxTreeItemId\&}{ item}, \param{int }{selImage}}
 
 
 \membersection{wxTreeCtrl::SetItemSelectedImage}\label{wxtreectrlsetitemselectedimage}
 
 \func{void}{SetItemSelectedImage}{\param{const wxTreeItemId\&}{ item}, \param{int }{selImage}}
 
-Sets the item selected image. This is an index into the assciated image list.
+Sets the selected item image (this function is obsolete, use {\tt SetItemImage(item, wxTreeItemIcon\_Selected}) instead).
 
 \membersection{wxTreeCtrl::SetItemText}\label{wxtreectrlsetitemtext}
 
 
 \membersection{wxTreeCtrl::SetItemText}\label{wxtreectrlsetitemtext}
 
@@ -562,13 +771,35 @@ Sets the item selected image. This is an index into the assciated image list.
 
 Sets the item label.
 
 
 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}
 
 \func{void}{SortChildren}{\param{const wxTreeItemId\&}{ item}}
 
 Sorts the children of the given item using
 \helpref{OnCompareItems}{wxtreectrloncompareitems} method of wxTreeCtrl. You
 \membersection{wxTreeCtrl::SortChildren}\label{wxtreectrlsortchildren}
 
 \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 (default is ascending
+should override that method to change the sort order (the default is ascending
 alphabetical order).
 
 \wxheading{See also}
 alphabetical order).
 
 \wxheading{See also}
@@ -591,74 +822,7 @@ Removes the selection from the currently selected item (if any).
 
 \func{void}{UnselectAll}{\void}
 
 
 \func{void}{UnselectAll}{\void}
 
-This function either behaves the same as \helpref{Unselect}{wxtreectrlunselect} 
+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.
 
 if the control doesn't have wxTR\_MULTIPLE style, or removes the selection from
 all items if it does have this style.
 
-\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{Include files}
-
-<wx/treectrl.h>
-
-\wxheading{See also}
-
-\helpref{wxTreeCtrl}{wxtreectrl}
-
-\latexignore{\rtfignore{\wxheading{Members}}}
-
-\membersection{wxTreeItemData::wxTreeItemData}\label{wxtreeitemdataconstr}
-
-\func{}{wxTreeItemData}{\void}
-
-Default constructor.
-
-\pythonnote{The wxPython version of this constructor optionally
-accepts any Python object as a parameter.  This object is then
-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
-wxTreeItemData}
-\end{twocollist}}
-}
-
-
-\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{void}{SetId}{\param{const wxTreeItemId\&}{ id}}
-
-Sets the item associated with this node.
-