]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/treectrl.tex
no changes, just come cleanup and more comments
[wxWidgets.git] / docs / latex / wx / treectrl.tex
index ad174cb31a03e1a239e3676720a0149365fb7950..48fed6862a43e5eb09233daefa6167ef9ab262d9 100644 (file)
@@ -13,7 +13,7 @@
 
 A tree control presents information as a hierarchy, with items that may be expanded
 to show further items. Items in a tree control are referenced by wxTreeItemId handles,
-which may be tested for validity by calling wxTreeItemId::IsOk.
+which may be tested for validity by calling \helpref{wxTreeItemId::IsOk}{wxtreeitemidisok}.
 
 To intercept events from a tree control, use the event table macros described in \helpref{wxTreeEvent}{wxtreeevent}.
 
@@ -28,6 +28,10 @@ To intercept events from a tree control, use the event table macros described in
 
 <wx/treectrl.h>
 
+\wxheading{Library}
+
+\helpref{wxCore}{librarieslist}
+
 \wxheading{Window styles}
 
 \twocolwidtha{5cm}
@@ -65,8 +69,6 @@ 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}
@@ -130,7 +132,7 @@ Default constructor.
 
 \func{}{wxTreeCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
 \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
-\param{long}{ style = wxTR\_HAS\_BUTTONS}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listCtrl"}}
+\param{long}{ style = wxTR\_HAS\_BUTTONS}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``treeCtrl"}}
 
 Constructor, creating and showing a tree control.
 
@@ -160,7 +162,7 @@ appropriately.}
 
 \func{void}{\destruct{wxTreeCtrl}}{\void}
 
-Destructor, destroying the list control.
+Destructor, destroying the tree control.
 
 
 \membersection{wxTreeCtrl::AddRoot}\label{wxtreectrladdroot}
@@ -238,6 +240,28 @@ See also \helpref{SetStateImageList}{wxtreectrlsetstateimagelist}.
 Collapses the given item.
 
 
+\membersection{wxTreeCtrl::CollapseAll}\label{wxtreectrlcollapseall}
+
+\func{void}{CollapseAll}{\void}
+
+Collapses the root item.
+
+\wxheading{See also}
+
+\helpref{ExpandAll}{wxtreectrlexpandall}
+
+
+\membersection{wxTreeCtrl::CollapseAllChildren}\label{wxtreectrlcollapseallchildren}
+
+\func{void}{CollapseAllChildren}{\param{const wxTreeItemId\&}{ item}}
+
+Collapses this item and all of its children, recursively.
+
+\wxheading{See also}
+
+\helpref{ExpandAllChildren}{wxtreectrlexpandallchildren}
+
+
 \membersection{wxTreeCtrl::CollapseAndReset}\label{wxtreectrlcollapseandreset}
 
 \func{void}{CollapseAndReset}{\param{const wxTreeItemId\&}{ item}}
@@ -249,7 +273,7 @@ Collapses the given item and removes all children.
 
 \func{bool}{wxTreeCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
 \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
-\param{long}{ style = wxTR\_HAS\_BUTTONS}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listCtrl"}}
+\param{long}{ style = wxTR\_HAS\_BUTTONS}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``treeCtrl"}}
 
 Creates the tree control. See \helpref{wxTreeCtrl::wxTreeCtrl}{wxtreectrlconstr} for further details.
 
@@ -308,7 +332,7 @@ will be sent which can be vetoed as well.
 
 \func{void}{EndEditLabel}{\param{bool }{cancelEdit}}
 
-Ends label editing. If {\it cancelEdit} is {\tt true}, the edit will be cancelled.
+Ends label editing. If {\it cancelEdit} is \true, the edit will be cancelled.
 
 This function is currently supported under Windows only.
 
@@ -331,15 +355,29 @@ Scrolls and/or expands items to ensure that the given item is visible.
 Expands the given item.
 
 
+\membersection{wxTreeCtrl::ExpandAll}\label{wxtreectrlexpandall}
+
+\func{void}{ExpandAll}{\void}
+
+Expands all items in the tree.
+
+
+\membersection{wxTreeCtrl::ExpandAllChildren}\label{wxtreectrlexpandallchildren}
+
+\func{void}{ExpandAllChildren}{\param{const wxTreeItemId\&}{ item}}
+
+Expands the given item and all its children recursively.
+
+
 \membersection{wxTreeCtrl::GetBoundingRect}\label{wxtreectrlgetitemrect}
 
-\constfunc{bool}{GetBoundingRect}{\param{const wxTreeItemId\&}{ item}, \param{wxRect\& }{rect}, \param{bool }{textOnly = {\tt false}}}
+\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 {\tt true},
+Retrieves the rectangle bounding the {\it item}. If {\it textOnly} is \true,
 only the rectangle around the item's label will be returned, otherwise the
 item's image is also taken into account.
 
-The return value is {\tt true} if the rectangle was successfully retrieved or {\tt false}
+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.
 
@@ -366,9 +404,9 @@ This function is only available in the generic version.
 
 \membersection{wxTreeCtrl::GetChildrenCount}\label{wxtreectrlgetchildrencount}
 
-\constfunc{unsigned int}{GetChildrenCount}{\param{const wxTreeItemId\&}{ item}, \param{bool}{ recursively = {\tt true}}}
+\constfunc{unsigned int}{GetChildrenCount}{\param{const wxTreeItemId\&}{ item}, \param{bool}{ recursively = \true}}
 
-Returns the number of items in the branch. If {\it recursively} is {\tt true}, returns the total number
+Returns the number of items in the branch. If {\it recursively} is \true, returns the total number
 of descendants, otherwise only one level of children is counted.
 
 
@@ -401,7 +439,7 @@ to make these functions reentrant (i.e. allow more than one
 enumeration on one and the same object simultaneously). The cookie passed to
 GetFirstChild and GetNextChild should be the same variable.
 
-Returns an invalid tree item (i.e. IsOk() returns {\tt false}) if there are no further children.
+Returns an invalid tree item (i.e. IsOk() returns \false) if there are no further children.
 
 \wxheading{See also}
 
@@ -565,7 +603,10 @@ Returns an invalid tree item if there are no further siblings.
 
 \constfunc{wxTreeItemId}{GetNextVisible}{\param{const wxTreeItemId\&}{ item}}
 
-Returns the next visible item.
+Returns the next visible item or an invalid item if this item is the last
+visible one.
+
+Notice that the \arg{item} itself must be visible.
 
 
 \membersection{wxTreeCtrl::GetItemParent}\label{wxtreectrlgetitemparent}
@@ -592,7 +633,22 @@ Returns an invalid tree item if there are no further children.
 
 \constfunc{wxTreeItemId}{GetPrevVisible}{\param{const wxTreeItemId\&}{ item}}
 
-Returns the previous visible item.
+Returns the previous visible item or an invalid item if this item is the first
+visible one.
+
+Notice that the \arg{item} itself must be visible.
+
+
+\membersection{wxTreeCtrl::GetQuickBestSize}\label{wxtreectrlgetquickbestsize}
+
+\constfunc{bool}{GetQuickBestSize}{\void}
+
+Returns true if the control will use a quick calculation for the best size,
+looking only at the first and last items. The default is false.
+
+\wxheading{See also}
+
+\helpref{wxTreeCtrl::SetQuickBestSize}{wxtreectrlsetquickbestsize}
 
 
 \membersection{wxTreeCtrl::GetRootItem}\label{wxtreectrlgetrootitem}
@@ -606,8 +662,8 @@ 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).
+Gets the selected item image (this function is obsolete, use 
+{\tt GetItemImage(item, wxTreeItemIcon\_Selected)} instead).
 
 
 \membersection{wxTreeCtrl::GetSelection}\label{wxtreectrlgetselection}
@@ -645,7 +701,7 @@ Returns the state image list (from which application-defined state images are ta
 
 \membersection{wxTreeCtrl::HitTest}\label{wxtreectrlhittest}
 
-\func{wxTreeItemId}{HitTest}{\param{const wxPoint\& }{point}, \param{int\& }{flags}}
+\constfunc{wxTreeItemId}{HitTest}{\param{const wxPoint\& }{point}, \param{int\& }{flags}}
 
 Calculates which (if any) item is under the given point, returning the tree item
 id at this point plus extra information {\it flags}. {\it flags} is a bitlist of the following:
@@ -697,37 +753,44 @@ both selected and unselected items.
 
 \constfunc{bool}{IsBold}{\param{const wxTreeItemId\& }{item}}
 
-Returns {\tt true} if the given item is in bold state.
+Returns \true if the given item is in bold state.
 
 See also: \helpref{SetItemBold}{wxtreectrlsetitembold}
 
 
+\membersection{wxTreeCtrl::IsEmpty}\label{wxtreectrlisempty}
+
+\constfunc{bool}{IsEmpty}{}
+
+Returns \true if the control is empty (i.e. has no items, even no root one).
+
+
 \membersection{wxTreeCtrl::IsExpanded}\label{wxtreectrlisexpanded}
 
 \constfunc{bool}{IsExpanded}{\param{const wxTreeItemId\&}{ item}}
 
-Returns {\tt true} if the item is expanded (only makes sense if it has children).
+Returns \true if the item is expanded (only makes sense if it has children).
 
 
 \membersection{wxTreeCtrl::IsSelected}\label{wxtreectrlisselected}
 
 \constfunc{bool}{IsSelected}{\param{const wxTreeItemId\&}{ item}}
 
-Returns {\tt true} if the item is selected.
+Returns \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).
+Returns \true if the item is visible on the screen.
 
 
 \membersection{wxTreeCtrl::ItemHasChildren}\label{wxtreectrlitemhaschildren}
 
 \constfunc{bool}{ItemHasChildren}{\param{const wxTreeItemId\&}{ item}}
 
-Returns {\tt true} if the item has children.
+Returns \true if the item has children.
 
 
 \membersection{wxTreeCtrl::OnCompareItems}\label{wxtreectrloncompareitems}
@@ -739,7 +802,12 @@ items in the tree control. The function should return a negative, zero or
 positive value if the first item is less than, equal to or greater than the
 second one.
 
-The base class version compares items alphabetically.
+Please note that you \textbf{must} use wxRTTI macros 
+\helpref{DECLARE\_DYNAMIC\_CLASS}{declaredynamicclass} and 
+\helpref{IMPLEMENT\_DYNAMIC\_CLASS}{implementdynamicclass} if you override this
+function because otherwise the base class considers that it is not overridden
+and uses the default comparison, i.e. sorts the items alphabetically, which
+allows it optimize away the calls to the virtual function completely.
 
 See also: \helpref{SortChildren}{wxtreectrlsortchildren}
 
@@ -767,7 +835,7 @@ Scrolls the specified item into view.
 
 \membersection{wxTreeCtrl::SelectItem}\label{wxtreectrlselectitem}
 
-\func{bool}{SelectItem}{\param{const wxTreeItemId\&}{ item}, \param{bool }{select = \true}}
+\func{void}{SelectItem}{\param{const wxTreeItemId\&}{ item}, \param{bool }{select = \true}}
 
 Selects the given item. In multiple selection controls, can be also used to
 deselect a currently selected item if the value of \arg{select} is false.
@@ -817,9 +885,9 @@ 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}}}
+\func{void}{SetItemBold}{\param{const wxTreeItemId\& }{item}, \param{bool}{ bold = \true}}
 
-Makes item appear in bold font if {\it bold} parameter is {\tt true} or resets it to
+Makes item appear in bold font if {\it bold} parameter is \true or resets it to
 the normal state.
 
 See also: \helpref{IsBold}{wxtreectrlisbold}
@@ -849,7 +917,7 @@ tree->GetItemData(item)->SetData(data).}
 
 \membersection{wxTreeCtrl::SetItemDropHighlight}\label{wxtreectrlsetitemdrophighlight}
 
-\func{void}{SetItemDropHighlight}{\param{const wxTreeItemId\&}{ item}, \param{bool}{highlight = {\tt true}}}
+\func{void}{SetItemDropHighlight}{\param{const wxTreeItemId\&}{ item}, \param{bool}{highlight = \true}}
 
 Gives the item the visual feedback for Drag'n'Drop actions, which is
 useful if something is dragged from the outside onto the tree control
@@ -871,7 +939,7 @@ although font attributes may vary.
 
 \membersection{wxTreeCtrl::SetItemHasChildren}\label{wxtreectrlsetitemhaschildren}
 
-\func{void}{SetItemHasChildren}{\param{const wxTreeItemId\&}{ item}, \param{bool }{hasChildren = {\tt true}}}
+\func{void}{SetItemHasChildren}{\param{const wxTreeItemId\&}{ item}, \param{bool }{hasChildren = \true}}
 
 Force appearance of the button next to the item. This is useful to
 allow the user to expand the items which don't have any children now,
@@ -892,7 +960,8 @@ for the description of the {\it which} parameter.
 
 \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}
@@ -909,6 +978,19 @@ Sets the item label.
 Sets the colour of the item's text.
 
 
+\membersection{wxTreeCtrl::SetQuickBestSize}\label{wxtreectrlsetquickbestsize}
+
+\func{void}{SetQuickBestSize}{\param{bool}{ quickBestSize}}
+
+If true is passed, specifies that the control will use a quick calculation for the best size,
+looking only at the first and last items. Otherwise, it will look at all items.
+The default is false.
+
+\wxheading{See also}
+
+\helpref{wxTreeCtrl::GetQuickBestSize}{wxtreectrlgetquickbestsize}
+
+
 \membersection{wxTreeCtrl::SetStateImageList}\label{wxtreectrlsetstateimagelist}
 
 \func{void}{SetStateImageList}{\param{wxImageList*}{ imageList}}
@@ -978,3 +1060,65 @@ all items if it does have this style.
 \func{void}{UnselectItem}{\param{const wxTreeItemId\& }{item}}
 
 Unselects the given item. This works in multiselection controls only.
+
+
+
+
+
+%% the wxTreeItemId opaque class
+
+
+\section{\class{wxTreeItemId}}\label{wxtreeitemid}
+
+An opaque reference to a tree item.
+
+
+\wxheading{Derived from}
+
+None
+
+\wxheading{Include files}
+
+<wx/treebase.h>
+
+\wxheading{Library}
+
+\helpref{wxCore}{librarieslist}
+
+\wxheading{See also}
+
+\helpref{wxTreeCtrl}{wxtreectrl}, \helpref{wxTreeItemData}{wxtreeitemdata},\\
+\helpref{wxTreeCtrl overview}{wxtreectrloverview}
+
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxTreeItemId::wxTreeItemId}\label{wxtreeitemidconstr}
+
+\func{}{wxTreeItemId}{\void}
+
+Default constructor. wxTreemItemIds are not meant to be constructed explicitly by
+the user; they are returned by the \helpref{wxTreeCtrl}{wxtreectrl} functions instead.
+
+
+\membersection{wxTreeItemId::IsOk}\label{wxtreeitemidisok}
+
+\constfunc{bool}{IsOk}{}
+
+Returns \true if this instance is referencing a valid tree item.
+
+
+\membersection{Operators}\label{wxtreeitemidoperators}
+
+\constfunc{void}{operator $!$}{}
+
+Antonym of \helpref{IsOk}{wxtreeitemidisok}, i.e. returns \true only if the
+item is not valid.
+
+
+\constfunc{bool}{operator $==$}{\param{const wxTreeItemId\& }{item}}
+
+\constfunc{bool}{operator $!=$}{\param{const wxTreeItemId\& }{item}}
+
+Operators for comparison between \helpref{wxTreeItemId}{wxtreeitemid} objects.
+