]> git.saurik.com Git - wxWidgets.git/commitdiff
added wxTreeCtrl::UnselectItem() and ToggleItemSelection() (includes patch 832281)
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 10 Feb 2004 18:58:27 +0000 (18:58 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 10 Feb 2004 18:58:27 +0000 (18:58 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25714 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/treectrl.tex
include/wx/msw/treectrl.h
src/msw/treectrl.cpp

index 7f5a1b3eb739a395ed936092c17e450bbd077462..fb72fb361885a4c5c08f6823aad8c1895677a4ea 100644 (file)
@@ -110,6 +110,7 @@ to a newer version: see
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
+
 \membersection{wxTreeCtrl::wxTreeCtrl}\label{wxtreectrlconstr}
 
 \func{}{wxTreeCtrl}{\void}
 \membersection{wxTreeCtrl::wxTreeCtrl}\label{wxtreectrlconstr}
 
 \func{}{wxTreeCtrl}{\void}
@@ -143,12 +144,14 @@ appropriately.}
 
 \helpref{wxTreeCtrl::Create}{wxtreectrlcreate}, \helpref{wxValidator}{wxvalidator}
 
 
 \helpref{wxTreeCtrl::Create}{wxtreectrlcreate}, \helpref{wxValidator}{wxvalidator}
 
+
 \membersection{wxTreeCtrl::\destruct{wxTreeCtrl}}
 
 \func{void}{\destruct{wxTreeCtrl}}{\void}
 
 Destructor, destroying the list control.
 
 \membersection{wxTreeCtrl::\destruct{wxTreeCtrl}}
 
 \func{void}{\destruct{wxTreeCtrl}}{\void}
 
 Destructor, destroying the list control.
 
+
 \membersection{wxTreeCtrl::AddRoot}\label{wxtreectrladdroot}
 
 \func{wxTreeItemId}{AddRoot}{\param{const wxString\&}{ text},
 \membersection{wxTreeCtrl::AddRoot}\label{wxtreectrladdroot}
 
 \func{wxTreeItemId}{AddRoot}{\param{const wxString\&}{ text},
@@ -162,6 +165,7 @@ 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::AppendItem}\label{wxtreectrlappenditem}
 
 \func{wxTreeItemId}{AppendItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxString\&}{ text},
 \membersection{wxTreeCtrl::AppendItem}\label{wxtreectrlappenditem}
 
 \func{wxTreeItemId}{AppendItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxString\&}{ text},
@@ -175,6 +179,7 @@ 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}}
 \membersection{wxTreeCtrl::AssignButtonsImageList}\label{wxtreectrlassignbuttonsimagelist}
 
 \func{void}{AssignButtonsImageList}{\param{wxImageList*}{ imageList}}
@@ -191,6 +196,7 @@ This function is only available in the generic version.
 
 See also \helpref{SetButtonsImageList}{wxtreectrlsetbuttonsimagelist}.
 
 
 See also \helpref{SetButtonsImageList}{wxtreectrlsetbuttonsimagelist}.
 
+
 \membersection{wxTreeCtrl::AssignImageList}\label{wxtreectrlassignimagelist}
 
 \func{void}{AssignImageList}{\param{wxImageList*}{ imageList}}
 \membersection{wxTreeCtrl::AssignImageList}\label{wxtreectrlassignimagelist}
 
 \func{void}{AssignImageList}{\param{wxImageList*}{ imageList}}
@@ -201,6 +207,7 @@ be automatically deleted by wxTreeCtrl as appropriate
 
 See also \helpref{SetImageList}{wxtreectrlsetimagelist}.
 
 
 See also \helpref{SetImageList}{wxtreectrlsetimagelist}.
 
+
 \membersection{wxTreeCtrl::AssignStateImageList}\label{wxtreectrlassignstateimagelist}
 
 \func{void}{AssignStateImageList}{\param{wxImageList*}{ imageList}}
 \membersection{wxTreeCtrl::AssignStateImageList}\label{wxtreectrlassignstateimagelist}
 
 \func{void}{AssignStateImageList}{\param{wxImageList*}{ imageList}}
@@ -212,18 +219,21 @@ be automatically deleted by wxTreeCtrl as appropriate
 See also \helpref{SetStateImageList}{wxtreectrlsetstateimagelist}.
 
 
 See also \helpref{SetStateImageList}{wxtreectrlsetstateimagelist}.
 
 
+
 \membersection{wxTreeCtrl::Collapse}\label{wxtreectrlcollapse}
 
 \func{void}{Collapse}{\param{const wxTreeItemId\&}{ item}}
 
 Collapses the given item.
 
 \membersection{wxTreeCtrl::Collapse}\label{wxtreectrlcollapse}
 
 \func{void}{Collapse}{\param{const wxTreeItemId\&}{ item}}
 
 Collapses the given item.
 
+
 \membersection{wxTreeCtrl::CollapseAndReset}\label{wxtreectrlcollapseandreset}
 
 \func{void}{CollapseAndReset}{\param{const wxTreeItemId\&}{ item}}
 
 Collapses the given item and removes all children.
 
 \membersection{wxTreeCtrl::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
 \membersection{wxTreeCtrl::Create}\label{wxtreectrlcreate}
 
 \func{bool}{wxTreeCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
@@ -232,6 +242,7 @@ Collapses the given item and removes all children.
 
 Creates the tree control. See \helpref{wxTreeCtrl::wxTreeCtrl}{wxtreectrlconstr} for further details.
 
 
 Creates the tree control. See \helpref{wxTreeCtrl::wxTreeCtrl}{wxtreectrlconstr} for further details.
 
+
 \membersection{wxTreeCtrl::Delete}\label{wxtreectrldelete}
 
 \func{void}{Delete}{\param{const wxTreeItemId\&}{ item}}
 \membersection{wxTreeCtrl::Delete}\label{wxtreectrldelete}
 
 \func{void}{Delete}{\param{const wxTreeItemId\&}{ item}}
@@ -241,6 +252,7 @@ generated.
 
 This function may cause a subsequent call to GetNextChild to fail.
 
 
 This function may cause a subsequent call to GetNextChild to fail.
 
+
 \membersection{wxTreeCtrl::DeleteAllItems}\label{wxtreectrldeleteallitems}
 
 \func{void}{DeleteAllItems}{\void}
 \membersection{wxTreeCtrl::DeleteAllItems}\label{wxtreectrldeleteallitems}
 
 \func{void}{DeleteAllItems}{\void}
@@ -249,6 +261,7 @@ Deletes all the 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.
 
 {\tt EVT\_TREE\_DELETE\_ITEM} events under some Windows versions although
 normally such event is generated for each removed item.
 
+
 \membersection{wxTreeCtrl::DeleteChildren}\label{wxtreectrldeletechildren}
 
 \func{void}{DeleteChildren}{\param{const wxTreeItemId\& }{item}}
 \membersection{wxTreeCtrl::DeleteChildren}\label{wxtreectrldeletechildren}
 
 \func{void}{DeleteChildren}{\param{const wxTreeItemId\& }{item}}
@@ -261,6 +274,7 @@ If you have called \helpref{wxTreeCtrl::SetItemHasChildren}{wxtreectrlsetitemhas
 may need to call it again since {\it DeleteChildren} does not automatically
 clear the setting.
 
 may need to call it again since {\it DeleteChildren} does not automatically
 clear the setting.
 
+
 \membersection{wxTreeCtrl::EditLabel}\label{wxtreectrleditlabel}
 
 \func{void}{EditLabel}{\param{const wxTreeItemId\&}{ item}}
 \membersection{wxTreeCtrl::EditLabel}\label{wxtreectrleditlabel}
 
 \func{void}{EditLabel}{\param{const wxTreeItemId\&}{ item}}
@@ -278,6 +292,7 @@ will be sent which can be vetoed as well.
 \helpref{wxTreeCtrl::EndEditLabel}{wxtreectrlendeditlabel},
 \helpref{wxTreeEvent}{wxtreeevent}
 
 \helpref{wxTreeCtrl::EndEditLabel}{wxtreectrlendeditlabel},
 \helpref{wxTreeEvent}{wxtreeevent}
 
+
 \membersection{wxTreeCtrl::EndEditLabel}\label{wxtreectrlendeditlabel}
 
 \func{void}{EndEditLabel}{\param{bool }{cancelEdit}}
 \membersection{wxTreeCtrl::EndEditLabel}\label{wxtreectrlendeditlabel}
 
 \func{void}{EndEditLabel}{\param{bool }{cancelEdit}}
@@ -290,18 +305,21 @@ This function is currently supported under Windows only.
 
 \helpref{wxTreeCtrl::EditLabel}{wxtreectrleditlabel}
 
 
 \helpref{wxTreeCtrl::EditLabel}{wxtreectrleditlabel}
 
+
 \membersection{wxTreeCtrl::EnsureVisible}\label{wxtreectrlensurevisible}
 
 \func{void}{EnsureVisible}{\param{const wxTreeItemId\&}{ item}}
 
 Scrolls and/or expands items to ensure that the given item is visible.
 
 \membersection{wxTreeCtrl::EnsureVisible}\label{wxtreectrlensurevisible}
 
 \func{void}{EnsureVisible}{\param{const wxTreeItemId\&}{ item}}
 
 Scrolls and/or expands items to ensure that the given item is visible.
 
+
 \membersection{wxTreeCtrl::Expand}\label{wxtreectrlexpand}
 
 \func{void}{Expand}{\param{const wxTreeItemId\&}{ item}}
 
 Expands the given item.
 
 \membersection{wxTreeCtrl::Expand}\label{wxtreectrlexpand}
 
 \func{void}{Expand}{\param{const wxTreeItemId\&}{ item}}
 
 Expands the given item.
 
+
 \membersection{wxTreeCtrl::GetBoundingRect}\label{wxtreectrlgetitemrect}
 
 \constfunc{bool}{GetBoundingRect}{\param{const wxTreeItemId\&}{ item}, \param{wxRect\& }{rect}, \param{bool }{textOnly = {\tt false}}}
 \membersection{wxTreeCtrl::GetBoundingRect}\label{wxtreectrlgetitemrect}
 
 \constfunc{bool}{GetBoundingRect}{\param{const wxTreeItemId\&}{ item}, \param{wxRect\& }{rect}, \param{bool }{textOnly = {\tt false}}}
@@ -321,6 +339,7 @@ item is currently invisible.
 \perlnote{In wxPerl this method only takes the parameters {\tt item} and 
   {\tt textOnly}, and returns a Wx::Rect ( or undef ).}
 
 \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}
 \membersection{wxTreeCtrl::GetButtonsImageList}\label{wxtreectrlgetbuttonsimagelist}
 
 \constfunc{wxImageList*}{GetButtonsImageList}{\void}
@@ -329,6 +348,7 @@ Returns the buttons image list (from which application-defined button images are
 
 This function is only available in the generic version.
 
 
 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 = {\tt true}}}
 \membersection{wxTreeCtrl::GetChildrenCount}\label{wxtreectrlgetchildrencount}
 
 \constfunc{size\_t}{GetChildrenCount}{\param{const wxTreeItemId\&}{ item}, \param{bool}{ recursively = {\tt true}}}
@@ -336,12 +356,14 @@ This function is only available in the generic version.
 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.
 
 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.
 
+
 \membersection{wxTreeCtrl::GetCount}\label{wxtreectrlgetcount}
 
 \constfunc{int}{GetCount}{\void}
 
 Returns the number of items in the control.
 
 \membersection{wxTreeCtrl::GetCount}\label{wxtreectrlgetcount}
 
 \constfunc{int}{GetCount}{\void}
 
 Returns the number of items in the control.
 
+
 \membersection{wxTreeCtrl::GetEditControl}\label{wxtreectrlgeteditcontrol}
 
 \constfunc{wxTextCtrl *}{GetEditControl}{\void}
 \membersection{wxTreeCtrl::GetEditControl}\label{wxtreectrlgeteditcontrol}
 
 \constfunc{wxTextCtrl *}{GetEditControl}{\void}
@@ -351,6 +373,7 @@ if no label is being edited.
 
 {\bf NB:} It is currently only implemented for wxMSW.
 
 
 {\bf NB:} It is currently only implemented for wxMSW.
 
+
 \membersection{wxTreeCtrl::GetFirstChild}\label{wxtreectrlgetfirstchild}
 
 \constfunc{wxTreeItemId}{GetFirstChild}{\param{const wxTreeItemId\&}{ item}, \param{wxTreeItemIdValue \& }{cookie}}
 \membersection{wxTreeCtrl::GetFirstChild}\label{wxtreectrlgetfirstchild}
 
 \constfunc{wxTreeItemId}{GetFirstChild}{\param{const wxTreeItemId\&}{ item}, \param{wxTreeItemIdValue \& }{cookie}}
@@ -376,30 +399,35 @@ 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 )}.}
 
 \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}
 
 Returns the first visible item.
 
 \membersection{wxTreeCtrl::GetFirstVisibleItem}\label{wxtreectrlgetfirstvisibleitem}
 
 \constfunc{wxTreeItemId}{GetFirstVisibleItem}{\void}
 
 Returns the first visible item.
 
+
 \membersection{wxTreeCtrl::GetImageList}\label{wxtreectrlgetimagelist}
 
 \constfunc{wxImageList*}{GetImageList}{\void}
 
 Returns the normal image list.
 
 \membersection{wxTreeCtrl::GetImageList}\label{wxtreectrlgetimagelist}
 
 \constfunc{wxImageList*}{GetImageList}{\void}
 
 Returns the normal image list.
 
+
 \membersection{wxTreeCtrl::GetIndent}\label{wxtreectrlgetindent}
 
 \constfunc{int}{GetIndent}{\void}
 
 Returns the current tree control indentation.
 
 \membersection{wxTreeCtrl::GetIndent}\label{wxtreectrlgetindent}
 
 \constfunc{int}{GetIndent}{\void}
 
 Returns the current tree control indentation.
 
+
 \membersection{wxTreeCtrl::GetItemBackgroundColour}\label{wxtreectrlgetitembackgroundcolour}
 
 \constfunc{wxColour}{GetItemBackgroundColour}{\param{const wxTreeItemId\&}{ item}}
 
 Returns the background colour of the item.
 
 \membersection{wxTreeCtrl::GetItemBackgroundColour}\label{wxtreectrlgetitembackgroundcolour}
 
 \constfunc{wxColour}{GetItemBackgroundColour}{\param{const wxTreeItemId\&}{ item}}
 
 Returns the background colour of the item.
 
+
 \membersection{wxTreeCtrl::GetItemData}\label{wxtreectrlgetitemdata}
 
 \constfunc{wxTreeItemData*}{GetItemData}{\param{const wxTreeItemId\&}{ item}}
 \membersection{wxTreeCtrl::GetItemData}\label{wxtreectrlgetitemdata}
 
 \constfunc{wxTreeItemData*}{GetItemData}{\param{const wxTreeItemId\&}{ item}}
@@ -427,12 +455,14 @@ tree->GetItemData( item )->GetData(); ).}
 \end{twocollist}}
 }
 
 \end{twocollist}}
 }
 
+
 \membersection{wxTreeCtrl::GetItemFont}\label{wxtreectrlgetitemfont}
 
 \constfunc{wxFont}{GetItemFont}{\param{const wxTreeItemId\&}{ item}}
 
 Returns the font of the item label.
 
 \membersection{wxTreeCtrl::GetItemFont}\label{wxtreectrlgetitemfont}
 
 \constfunc{wxFont}{GetItemFont}{\param{const wxTreeItemId\&}{ item}}
 
 Returns the font of the item label.
 
+
 \membersection{wxTreeCtrl::GetItemImage}\label{wxtreectrlgetitemimage}
 
 \constfunc{int}{GetItemImage}{\param{const wxTreeItemId\& }{item},
 \membersection{wxTreeCtrl::GetItemImage}\label{wxtreectrlgetitemimage}
 
 \constfunc{int}{GetItemImage}{\param{const wxTreeItemId\& }{item},
@@ -451,18 +481,21 @@ item is expanded and the normal image is shown when it is collapsed)
 (which is shown when an expanded item is currently selected)
 \end{itemize}
 
 (which is shown when an expanded item is currently selected)
 \end{itemize}
 
+
 \membersection{wxTreeCtrl::GetItemText}\label{wxtreectrlgetitemtext}
 
 \constfunc{wxString}{GetItemText}{\param{const wxTreeItemId\&}{ item}}
 
 Returns the item label.
 
 \membersection{wxTreeCtrl::GetItemText}\label{wxtreectrlgetitemtext}
 
 \constfunc{wxString}{GetItemText}{\param{const wxTreeItemId\&}{ item}}
 
 Returns the item label.
 
+
 \membersection{wxTreeCtrl::GetItemTextColour}\label{wxtreectrlgetitemtextcolour}
 
 \constfunc{wxColour}{GetItemTextColour}{\param{const wxTreeItemId\&}{ item}}
 
 Returns the colour of the item label.
 
 \membersection{wxTreeCtrl::GetItemTextColour}\label{wxtreectrlgetitemtextcolour}
 
 \constfunc{wxColour}{GetItemTextColour}{\param{const wxTreeItemId\&}{ item}}
 
 Returns the colour of the item label.
 
+
 \membersection{wxTreeCtrl::GetLastChild}\label{wxtreectrlgetlastchild}
 
 \constfunc{wxTreeItemId}{GetLastChild}{\param{const wxTreeItemId\&}{ item}}
 \membersection{wxTreeCtrl::GetLastChild}\label{wxtreectrlgetlastchild}
 
 \constfunc{wxTreeItemId}{GetLastChild}{\param{const wxTreeItemId\&}{ item}}
@@ -475,6 +508,7 @@ Returns the last child of the item (or an invalid tree item if this item has no
 \helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling},
 \helpref{GetLastChild}{wxtreectrlgetlastchild}
 
 \helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling},
 \helpref{GetLastChild}{wxtreectrlgetlastchild}
 
+
 \membersection{wxTreeCtrl::GetNextChild}\label{wxtreectrlgetnextchild}
 
 \constfunc{wxTreeItemId}{GetNextChild}{\param{const wxTreeItemId\&}{ item}, \param{wxTreeItemIdValue \& }{cookie}}
 \membersection{wxTreeCtrl::GetNextChild}\label{wxtreectrlgetnextchild}
 
 \constfunc{wxTreeItemId}{GetNextChild}{\param{const wxTreeItemId\&}{ item}, \param{wxTreeItemIdValue \& }{cookie}}
@@ -499,6 +533,7 @@ 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.}
 
 \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}}
@@ -511,18 +546,21 @@ Returns an invalid tree item if there are no further siblings.
 
 \helpref{wxTreeCtrl::GetPrevSibling}{wxtreectrlgetprevsibling}
 
 
 \helpref{wxTreeCtrl::GetPrevSibling}{wxtreectrlgetprevsibling}
 
+
 \membersection{wxTreeCtrl::GetNextVisible}\label{wxtreectrlgetnextvisible}
 
 \constfunc{wxTreeItemId}{GetNextVisible}{\param{const wxTreeItemId\&}{ item}}
 
 Returns the next visible item.
 
 \membersection{wxTreeCtrl::GetNextVisible}\label{wxtreectrlgetnextvisible}
 
 \constfunc{wxTreeItemId}{GetNextVisible}{\param{const wxTreeItemId\&}{ item}}
 
 Returns the next visible item.
 
+
 \membersection{wxTreeCtrl::GetItemParent}\label{wxtreectrlgetitemparent}
 
 \constfunc{wxTreeItemId}{GetItemParent}{\param{const wxTreeItemId\&}{ item}}
 
 Returns the item's parent.
 
 \membersection{wxTreeCtrl::GetItemParent}\label{wxtreectrlgetitemparent}
 
 \constfunc{wxTreeItemId}{GetItemParent}{\param{const wxTreeItemId\&}{ item}}
 
 Returns the item's parent.
 
+
 \membersection{wxTreeCtrl::GetParent}\label{wxtreectrlgetparent}
 
 \constfunc{wxTreeItemId}{GetParent}{\param{const wxTreeItemId\&}{ item}}
 \membersection{wxTreeCtrl::GetParent}\label{wxtreectrlgetparent}
 
 \constfunc{wxTreeItemId}{GetParent}{\param{const wxTreeItemId\&}{ item}}
@@ -535,6 +573,7 @@ Returns the item's parent.
 \pythonnote{This method is named {\tt GetItemParent} to avoid a name
 clash with wxWindow::GetParent.}
 
 \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}}
@@ -547,18 +586,21 @@ Returns an invalid tree item if there are no further children.
 
 \helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling}
 
 
 \helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling}
 
+
 \membersection{wxTreeCtrl::GetPrevVisible}\label{wxtreectrlgetprevvisible}
 
 \constfunc{wxTreeItemId}{GetPrevVisible}{\param{const wxTreeItemId\&}{ item}}
 
 Returns the previous visible item.
 
 \membersection{wxTreeCtrl::GetPrevVisible}\label{wxtreectrlgetprevvisible}
 
 \constfunc{wxTreeItemId}{GetPrevVisible}{\param{const wxTreeItemId\&}{ item}}
 
 Returns the previous visible item.
 
+
 \membersection{wxTreeCtrl::GetRootItem}\label{wxtreectrlgetrootitem}
 
 \constfunc{wxTreeItemId}{GetRootItem}{\void}
 
 Returns the root item for the tree control.
 
 \membersection{wxTreeCtrl::GetRootItem}\label{wxtreectrlgetrootitem}
 
 \constfunc{wxTreeItemId}{GetRootItem}{\void}
 
 Returns the root item for the tree control.
 
+
 \membersection{wxTreeCtrl::GetItemSelectedImage}\label{wxtreectrlgetitemselectedimage}
 
 \constfunc{int}{GetItemSelectedImage}{\param{const wxTreeItemId\& }{item}}
 \membersection{wxTreeCtrl::GetItemSelectedImage}\label{wxtreectrlgetitemselectedimage}
 
 \constfunc{int}{GetItemSelectedImage}{\param{const wxTreeItemId\& }{item}}
@@ -566,6 +608,7 @@ Returns the root item for the tree control.
 Gets the selected item image (this function is obsolete, use
 {\tt GetItemImage(item, wxTreeItemIcon\_Selected}) instead).
 
 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}
 \membersection{wxTreeCtrl::GetSelection}\label{wxtreectrlgetselection}
 
 \constfunc{wxTreeItemId}{GetSelection}{\void}
@@ -575,6 +618,7 @@ 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.
 
+
 \membersection{wxTreeCtrl::GetSelections}\label{wxtreectrlgetselections}
 
 \constfunc{size\_t}{GetSelections}{\param{wxArrayTreeItemIds\& }{selection}}
 \membersection{wxTreeCtrl::GetSelections}\label{wxtreectrlgetselections}
 
 \constfunc{size\_t}{GetSelections}{\param{wxArrayTreeItemIds\& }{selection}}
@@ -590,12 +634,14 @@ 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.}
 
 \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::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}
 
 \func{wxTreeItemId}{HitTest}{\param{const wxPoint\& }{point}, \param{int\& }{flags}}
 \membersection{wxTreeCtrl::HitTest}\label{wxtreectrlhittest}
 
 \func{wxTreeItemId}{HitTest}{\param{const wxPoint\& }{point}, \param{int\& }{flags}}
@@ -624,6 +670,7 @@ returned as a tuple.}
 \perlnote{In wxPerl this method only takes the {\tt point} parameter
   and returns a 2-element list {\tt ( item, flags )}.}
 
 \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},
 \membersection{wxTreeCtrl::InsertItem}\label{wxtreectrlinsertitem}
 
 \func{wxTreeItemId}{InsertItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxTreeItemId\& }{previous}, \param{const wxString\&}{ text},
@@ -644,6 +691,7 @@ both selected and unselected items.
 \pythonnote{The second form of this method is called
 {\tt InsertItemBefore} in wxPython.}
 
 \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}}
@@ -652,30 +700,35 @@ Returns {\tt true} if the given item is in bold state.
 
 See also: \helpref{SetItemBold}{wxtreectrlsetitembold}
 
 
 See also: \helpref{SetItemBold}{wxtreectrlsetitembold}
 
+
 \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::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::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::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{const wxTreeItemId\&}{ item}}
 
 Returns {\tt true} if the item has children.
 
 \membersection{wxTreeCtrl::ItemHasChildren}\label{wxtreectrlitemhaschildren}
 
 \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}}
 \membersection{wxTreeCtrl::OnCompareItems}\label{wxtreectrloncompareitems}
 
 \func{int}{OnCompareItems}{\param{const wxTreeItemId\& }{item1}, \param{const wxTreeItemId\& }{item2}}
@@ -689,6 +742,7 @@ The base class version compares items alphabetically.
 
 See also: \helpref{SortChildren}{wxtreectrlsortchildren}
 
 
 See also: \helpref{SortChildren}{wxtreectrlsortchildren}
 
+
 \membersection{wxTreeCtrl::PrependItem}\label{wxtreectrlprependitem}
 
 \func{wxTreeItemId}{PrependItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxString\&}{ text},
 \membersection{wxTreeCtrl::PrependItem}\label{wxtreectrlprependitem}
 
 \func{wxTreeItemId}{PrependItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxString\&}{ text},
@@ -702,17 +756,21 @@ 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::ScrollTo}\label{wxtreectrlscrollto}
 
 \func{void}{ScrollTo}{\param{const wxTreeItemId\&}{ item}}
 
 Scrolls the specified item into view.
 
 \membersection{wxTreeCtrl::ScrollTo}\label{wxtreectrlscrollto}
 
 \func{void}{ScrollTo}{\param{const wxTreeItemId\&}{ item}}
 
 Scrolls the specified item into view.
 
+
 \membersection{wxTreeCtrl::SelectItem}\label{wxtreectrlselectitem}
 
 \membersection{wxTreeCtrl::SelectItem}\label{wxtreectrlselectitem}
 
-\func{bool}{SelectItem}{\param{const wxTreeItemId\&}{ item}}
+\func{bool}{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.
 
 
-Selects the given item.
 
 \membersection{wxTreeCtrl::SetButtonsImageList}\label{wxtreectrlsetbuttonsimagelist}
 
 
 \membersection{wxTreeCtrl::SetButtonsImageList}\label{wxtreectrlsetbuttonsimagelist}
 
@@ -730,12 +788,14 @@ This function is only available in the generic version.
 
 See also \helpref{AssignButtonsImageList}{wxtreectrlassignbuttonsimagelist}.
 
 
 See also \helpref{AssignButtonsImageList}{wxtreectrlassignbuttonsimagelist}.
 
+
 \membersection{wxTreeCtrl::SetIndent}\label{wxtreectrlsetindent}
 
 \func{void}{SetIndent}{\param{int }{indent}}
 
 Sets the indentation for the tree control.
 
 \membersection{wxTreeCtrl::SetIndent}\label{wxtreectrlsetindent}
 
 \func{void}{SetIndent}{\param{int }{indent}}
 
 Sets the indentation for the tree control.
 
+
 \membersection{wxTreeCtrl::SetImageList}\label{wxtreectrlsetimagelist}
 
 \func{void}{SetImageList}{\param{wxImageList*}{ imageList}}
 \membersection{wxTreeCtrl::SetImageList}\label{wxtreectrlsetimagelist}
 
 \func{void}{SetImageList}{\param{wxImageList*}{ imageList}}
@@ -746,12 +806,14 @@ Sets the normal image list. Image list assigned with this method will
 See also \helpref{AssignImageList}{wxtreectrlassignimagelist}.
 
 
 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::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}
 
 \func{void}{SetItemBold}{\param{const wxTreeItemId\& }{item}, \param{bool}{ bold = {\tt true}}}
 \membersection{wxTreeCtrl::SetItemBold}\label{wxtreectrlsetitembold}
 
 \func{void}{SetItemBold}{\param{const wxTreeItemId\& }{item}, \param{bool}{ bold = {\tt true}}}
@@ -761,6 +823,7 @@ the normal state.
 
 See also: \helpref{IsBold}{wxtreectrlisbold}
 
 
 See also: \helpref{IsBold}{wxtreectrlisbold}
 
+
 \membersection{wxTreeCtrl::SetItemData}\label{wxtreectrlsetitemdata}
 
 \func{void}{SetItemData}{\param{const wxTreeItemId\&}{ item}, \param{wxTreeItemData* }{data}}
 \membersection{wxTreeCtrl::SetItemData}\label{wxtreectrlsetitemdata}
 
 \func{void}{SetItemData}{\param{const wxTreeItemId\&}{ item}, \param{wxTreeItemData* }{data}}
@@ -783,6 +846,7 @@ tree->GetItemData( item )->SetData( data ); ).}
 \end{twocollist}}
 }
 
 \end{twocollist}}
 }
 
+
 \membersection{wxTreeCtrl::SetItemFont}\label{wxtreectrlsetitemfont}
 
 \func{void}{SetItemFont}{\param{const wxTreeItemId\&}{ item}, \param{const wxFont\& }{font}}
 \membersection{wxTreeCtrl::SetItemFont}\label{wxtreectrlsetitemfont}
 
 \func{void}{SetItemFont}{\param{const wxTreeItemId\&}{ item}, \param{const wxFont\& }{font}}
@@ -795,6 +859,7 @@ although font attributes may vary.
 
 \helpref{SetItemBold}{wxtreectrlsetitembold}
 
 
 \helpref{SetItemBold}{wxtreectrlsetitembold}
 
+
 \membersection{wxTreeCtrl::SetItemHasChildren}\label{wxtreectrlsetitemhaschildren}
 
 \func{void}{SetItemHasChildren}{\param{const wxTreeItemId\&}{ item}, \param{bool }{hasChildren = {\tt true}}}
 \membersection{wxTreeCtrl::SetItemHasChildren}\label{wxtreectrlsetitemhaschildren}
 
 \func{void}{SetItemHasChildren}{\param{const wxTreeItemId\&}{ item}, \param{bool }{hasChildren = {\tt true}}}
@@ -804,6 +869,7 @@ 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.
 
 but instead adding them only when needed, thus minimizing memory
 usage and loading time.
 
+
 \membersection{wxTreeCtrl::SetItemImage}\label{wxtreectrlsetitemimage}
 
 \func{void}{SetItemImage}{\param{const wxTreeItemId\&}{ item},
 \membersection{wxTreeCtrl::SetItemImage}\label{wxtreectrlsetitemimage}
 
 \func{void}{SetItemImage}{\param{const wxTreeItemId\&}{ item},
@@ -812,24 +878,28 @@ usage and loading time.
 Sets the specified item image. See \helpref{GetItemImage}{wxtreectrlgetitemimage}
 for the description of the {\it which} parameter.
 
 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}}
 
 Sets the selected item image (this function is obsolete, use {\tt SetItemImage(item, wxTreeItemIcon\_Selected}) instead).
 
 \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).
 
+
 \membersection{wxTreeCtrl::SetItemText}\label{wxtreectrlsetitemtext}
 
 \func{void}{SetItemText}{\param{const wxTreeItemId\&}{ item}, \param{const wxString\& }{text}}
 
 Sets the item label.
 
 \membersection{wxTreeCtrl::SetItemText}\label{wxtreectrlsetitemtext}
 
 \func{void}{SetItemText}{\param{const wxTreeItemId\&}{ item}, \param{const wxString\& }{text}}
 
 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::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}}
 \membersection{wxTreeCtrl::SetStateImageList}\label{wxtreectrlsetstateimagelist}
 
 \func{void}{SetStateImageList}{\param{wxImageList*}{ imageList}}
@@ -846,6 +916,7 @@ Sets the mode flags associated with the display of the tree control.
 The new mode takes effect immediately.
 (Generic only; MSW ignores changes.)
 
 The new mode takes effect immediately.
 (Generic only; MSW ignores changes.)
 
+
 \membersection{wxTreeCtrl::SortChildren}\label{wxtreectrlsortchildren}
 
 \func{void}{SortChildren}{\param{const wxTreeItemId\&}{ item}}
 \membersection{wxTreeCtrl::SortChildren}\label{wxtreectrlsortchildren}
 
 \func{void}{SortChildren}{\param{const wxTreeItemId\&}{ item}}
@@ -859,18 +930,29 @@ case-sensitive alphabetical order).
 
 \helpref{wxTreeItemData}{wxtreeitemdata}, \helpref{OnCompareItems}{wxtreectrloncompareitems}
 
 
 \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::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::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}
 \membersection{wxTreeCtrl::UnselectAll}\label{wxtreectrlunselectall}
 
 \func{void}{UnselectAll}{\void}
@@ -879,3 +961,11 @@ 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.
 
+
+\membersection{wxTreeCtrl::UnselectItem}\label{wxtreectrlunselectitem}
+
+\func{void}{UnselectItem}{\param{const wxTreeItemId\& }{item}}
+
+Unselects the given item. This works in multiselection controls only.
+
+
index 83b30bcff9565a56f7c2975a39b61f4029dff1b4..4a0a5278f8ca28eebdb01e1fd7f2f60ceb788af2 100644 (file)
@@ -317,7 +317,12 @@ public:
         // unselect all items (only makes sense for multiple selection control)
     void UnselectAll();
         // select this item
         // unselect all items (only makes sense for multiple selection control)
     void UnselectAll();
         // select this item
-    void SelectItem(const wxTreeItemId& item);
+    void SelectItem(const wxTreeItemId& item, bool select = true);
+        // unselect this item
+    void UnselectItem(const wxTreeItemId& item);
+        // toggle item selection
+    void ToggleItemSelection(const wxTreeItemId& item);
+
         // make sure this item is visible (expanding the parent item and/or
         // scrolling to this item if necessary)
     void EnsureVisible(const wxTreeItemId& item);
         // make sure this item is visible (expanding the parent item and/or
         // scrolling to this item if necessary)
     void EnsureVisible(const wxTreeItemId& item);
index 26ba49eea1da9a195d8a79f00d94bf5a2766833f..d99f419e0956f03e62014d773989239f4af44e56 100644 (file)
@@ -97,7 +97,7 @@ static bool IsItemSelected(HWND hwndTV, HTREEITEM hItem)
     return (tvi.state & TVIS_SELECTED) != 0;
 }
 
     return (tvi.state & TVIS_SELECTED) != 0;
 }
 
-static void SelectItem(HWND hwndTV, HTREEITEM hItem, bool select = true)
+static bool SelectItem(HWND hwndTV, HTREEITEM hItem, bool select = true)
 {
     TV_ITEM tvi;
     tvi.mask = TVIF_STATE | TVIF_HANDLE;
 {
     TV_ITEM tvi;
     tvi.mask = TVIF_STATE | TVIF_HANDLE;
@@ -108,7 +108,10 @@ static void SelectItem(HWND hwndTV, HTREEITEM hItem, bool select = true)
     if ( TreeView_SetItem(hwndTV, &tvi) == -1 )
     {
         wxLogLastError(wxT("TreeView_SetItem"));
     if ( TreeView_SetItem(hwndTV, &tvi) == -1 )
     {
         wxLogLastError(wxT("TreeView_SetItem"));
+        return false;
     }
     }
+
+    return true;
 }
 
 static inline void UnselectItem(HWND hwndTV, HTREEITEM htItem)
 }
 
 static inline void UnselectItem(HWND hwndTV, HTREEITEM htItem)
@@ -1864,19 +1867,22 @@ void wxTreeCtrl::UnselectAll()
     }
 }
 
     }
 }
 
-void wxTreeCtrl::SelectItem(const wxTreeItemId& item)
+void wxTreeCtrl::SelectItem(const wxTreeItemId& item, bool select)
 {
     if ( m_windowStyle & wxTR_MULTIPLE )
     {
 #if wxUSE_CHECKBOXES_IN_MULTI_SEL_TREE
         // selecting the item means checking it
 {
     if ( m_windowStyle & wxTR_MULTIPLE )
     {
 #if wxUSE_CHECKBOXES_IN_MULTI_SEL_TREE
         // selecting the item means checking it
-        SetItemCheck(item);
+        SetItemCheck(item, select);
 #else // !wxUSE_CHECKBOXES_IN_MULTI_SEL_TREE
 #else // !wxUSE_CHECKBOXES_IN_MULTI_SEL_TREE
-        ::SelectItem(GetHwnd(), HITEM(item));
+        ::SelectItem(GetHwnd(), HITEM(item), select);
 #endif // wxUSE_CHECKBOXES_IN_MULTI_SEL_TREE/!wxUSE_CHECKBOXES_IN_MULTI_SEL_TREE
     }
     else
     {
 #endif // wxUSE_CHECKBOXES_IN_MULTI_SEL_TREE/!wxUSE_CHECKBOXES_IN_MULTI_SEL_TREE
     }
     else
     {
+        wxASSERT_MSG( select,
+                      _T("SelectItem(false) works only for multiselect") );
+
         // inspite of the docs (MSDN Jan 99 edition), we don't seem to receive
         // the notification from the control (i.e. TVN_SELCHANG{ED|ING}), so
         // send them ourselves
         // inspite of the docs (MSDN Jan 99 edition), we don't seem to receive
         // the notification from the control (i.e. TVN_SELCHANG{ED|ING}), so
         // send them ourselves
@@ -1888,11 +1894,7 @@ void wxTreeCtrl::SelectItem(const wxTreeItemId& item)
         event.SetEventType(wxEVT_COMMAND_TREE_SEL_CHANGING);
         if ( !GetEventHandler()->ProcessEvent(event) || event.IsAllowed() )
         {
         event.SetEventType(wxEVT_COMMAND_TREE_SEL_CHANGING);
         if ( !GetEventHandler()->ProcessEvent(event) || event.IsAllowed() )
         {
-            if ( !TreeView_SelectItem(GetHwnd(), HITEM(item)) )
-            {
-                wxLogLastError(wxT("TreeView_SelectItem"));
-            }
-            else
+            if ( ::SelectItem(GetHwnd(), HITEM(item), select) )
             {
                 event.SetEventType(wxEVT_COMMAND_TREE_SEL_CHANGED);
                 (void)GetEventHandler()->ProcessEvent(event);
             {
                 event.SetEventType(wxEVT_COMMAND_TREE_SEL_CHANGED);
                 (void)GetEventHandler()->ProcessEvent(event);
@@ -1902,6 +1904,16 @@ void wxTreeCtrl::SelectItem(const wxTreeItemId& item)
     }
 }
 
     }
 }
 
+void wxTreeCtrl::UnselectItem(const wxTreeItemId& item)
+{
+    SelectItem(item, false);
+}
+
+void wxTreeCtrl::ToggleItemSelection(const wxTreeItemId& item)
+{
+    SelectItem(item, !IsSelected(item));
+}
+
 void wxTreeCtrl::EnsureVisible(const wxTreeItemId& item)
 {
     // no error return
 void wxTreeCtrl::EnsureVisible(const wxTreeItemId& item)
 {
     // no error return
@@ -2162,7 +2174,7 @@ long wxTreeCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
                         SetFocus();
 
                         // toggle selected state
                         SetFocus();
 
                         // toggle selected state
-                        ToggleItemSelection(GetHwnd(), htItem);
+                        ::ToggleItemSelection(GetHwnd(), htItem);
 
                         ::SetFocus(GetHwnd(), htItem);
 
 
                         ::SetFocus(GetHwnd(), htItem);
 
@@ -2325,7 +2337,7 @@ long wxTreeCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
         {
             if ( bCtrl )
             {
         {
             if ( bCtrl )
             {
-                ToggleItemSelection(GetHwnd(), htSel);
+                ::ToggleItemSelection(GetHwnd(), htSel);
             }
             else
             {
             }
             else
             {