X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/232fdc630c42eb165f7659981043e794be03b3b7..36a0190ebd5bd9a7302f60f6dcd608b80574e21c:/interface/wx/treectrl.h diff --git a/interface/wx/treectrl.h b/interface/wx/treectrl.h index d41d5d4336..2b1f1caef8 100644 --- a/interface/wx/treectrl.h +++ b/interface/wx/treectrl.h @@ -2,7 +2,6 @@ // Name: treectrl.h // Purpose: interface of wxTreeItemData // Author: wxWidgets team -// RCS-ID: $Id$ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -15,7 +14,7 @@ wxTreeItemId handles, which may be tested for validity by calling wxTreeItemId::IsOk(). - A similar control with a fully native implemtation for GTK+ and OS X + A similar control with a fully native implementation for GTK+ and OS X as well is wxDataViewTreeCtrl. To intercept events from a tree control, use the event table macros @@ -29,6 +28,14 @@ For convenience to document that no buttons are to be drawn. @style{wxTR_HAS_BUTTONS} Use this style to show + and - buttons to the left of parent items. + @style{wxTR_TWIST_BUTTONS} + Selects alternative style of @c +/@c - buttons and shows rotating + ("twisting") arrows instead. Currently this style is only implemented + under Microsoft Windows Vista and later Windows versions and is ignored + under the other platforms. Notice that under Vista this style results + in the same appearance as used by the tree control in Explorer and + other built-in programs and so using it may be preferable to the + default style. @style{wxTR_NO_LINES} Use this style to hide vertical level connectors. @style{wxTR_FULL_ROW_HIGHLIGHT} @@ -64,74 +71,74 @@ @event{EVT_TREE_BEGIN_DRAG(id, func)} Begin dragging with the left mouse button. If you want to enable left-dragging you need to intercept this event - and explicitely call wxTreeEvent::Allow(), as it's vetoed by default. - Processes a @c wxEVT_COMMAND_TREE_BEGIN_DRAG event type. + and explicitly call wxTreeEvent::Allow(), as it's vetoed by default. + Processes a @c wxEVT_TREE_BEGIN_DRAG event type. @event{EVT_TREE_BEGIN_RDRAG(id, func)} Begin dragging with the right mouse button. If you want to enable right-dragging you need to intercept this event - and explicitely call wxTreeEvent::Allow(), as it's vetoed by default. - Processes a @c wxEVT_COMMAND_TREE_BEGIN_RDRAG event type. + and explicitly call wxTreeEvent::Allow(), as it's vetoed by default. + Processes a @c wxEVT_TREE_BEGIN_RDRAG event type. @event{EVT_TREE_END_DRAG(id, func)} End dragging with the left or right mouse button. - Processes a @c wxEVT_COMMAND_TREE_END_DRAG event type. + Processes a @c wxEVT_TREE_END_DRAG event type. @event{EVT_TREE_BEGIN_LABEL_EDIT(id, func)} Begin editing a label. This can be prevented by calling Veto(). - Processes a @c wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT event type. + Processes a @c wxEVT_TREE_BEGIN_LABEL_EDIT event type. @event{EVT_TREE_END_LABEL_EDIT(id, func)} Finish editing a label. This can be prevented by calling Veto(). - Processes a @c wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT event type. + Processes a @c wxEVT_TREE_END_LABEL_EDIT event type. @event{EVT_TREE_DELETE_ITEM(id, func)} An item was deleted. - Processes a @c wxEVT_COMMAND_TREE_DELETE_ITEM event type. + Processes a @c wxEVT_TREE_DELETE_ITEM event type. @event{EVT_TREE_GET_INFO(id, func)} Request information from the application. - Processes a @c wxEVT_COMMAND_TREE_GET_INFO event type. + Processes a @c wxEVT_TREE_GET_INFO event type. @event{EVT_TREE_SET_INFO(id, func)} Information is being supplied. - Processes a @c wxEVT_COMMAND_TREE_SET_INFO event type. + Processes a @c wxEVT_TREE_SET_INFO event type. @event{EVT_TREE_ITEM_ACTIVATED(id, func)} The item has been activated, i.e. chosen by double clicking it with mouse or from keyboard. - Processes a @c wxEVT_COMMAND_TREE_ITEM_ACTIVATED event type. + Processes a @c wxEVT_TREE_ITEM_ACTIVATED event type. @event{EVT_TREE_ITEM_COLLAPSED(id, func)} The item has been collapsed. - Processes a @c wxEVT_COMMAND_TREE_ITEM_COLLAPSED event type. + Processes a @c wxEVT_TREE_ITEM_COLLAPSED event type. @event{EVT_TREE_ITEM_COLLAPSING(id, func)} The item is being collapsed. This can be prevented by calling Veto(). - Processes a @c wxEVT_COMMAND_TREE_ITEM_COLLAPSING event type. + Processes a @c wxEVT_TREE_ITEM_COLLAPSING event type. @event{EVT_TREE_ITEM_EXPANDED(id, func)} The item has been expanded. - Processes a @c wxEVT_COMMAND_TREE_ITEM_EXPANDED event type. + Processes a @c wxEVT_TREE_ITEM_EXPANDED event type. @event{EVT_TREE_ITEM_EXPANDING(id, func)} The item is being expanded. This can be prevented by calling Veto(). - Processes a @c wxEVT_COMMAND_TREE_ITEM_EXPANDING event type. + Processes a @c wxEVT_TREE_ITEM_EXPANDING event type. @event{EVT_TREE_ITEM_RIGHT_CLICK(id, func)} The user has clicked the item with the right mouse button. - Processes a @c wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK event type. + Processes a @c wxEVT_TREE_ITEM_RIGHT_CLICK event type. @event{EVT_TREE_ITEM_MIDDLE_CLICK(id, func)} The user has clicked the item with the middle mouse button. This is only supported by the generic control. - Processes a @c wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK event type. + Processes a @c wxEVT_TREE_ITEM_MIDDLE_CLICK event type. @event{EVT_TREE_SEL_CHANGED(id, func)} Selection has changed. - Processes a @c wxEVT_COMMAND_TREE_SEL_CHANGED event type. + Processes a @c wxEVT_TREE_SEL_CHANGED event type. @event{EVT_TREE_SEL_CHANGING(id, func)} Selection is changing. This can be prevented by calling Veto(). - Processes a @c wxEVT_COMMAND_TREE_SEL_CHANGING event type. + Processes a @c wxEVT_TREE_SEL_CHANGING event type. @event{EVT_TREE_KEY_DOWN(id, func)} A key has been pressed. - Processes a @c wxEVT_COMMAND_TREE_KEY_DOWN event type. + Processes a @c wxEVT_TREE_KEY_DOWN event type. @event{EVT_TREE_ITEM_GETTOOLTIP(id, func)} The opportunity to set the item tooltip is being given to the application (call wxTreeEvent::SetToolTip). Windows only. - Processes a @c wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP event type. + Processes a @c wxEVT_TREE_ITEM_GETTOOLTIP event type. @event{EVT_TREE_ITEM_MENU(id, func)} The context menu for the selected item has been requested, either by a right click or by using the menu key. - Processes a @c wxEVT_COMMAND_TREE_ITEM_MENU event type. + Processes a @c wxEVT_TREE_ITEM_MENU event type. @event{EVT_TREE_STATE_IMAGE_CLICK(id, func)} - The state image has been clicked. Windows only. - Processes a @c wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK event type. + The state image has been clicked. + Processes a @c wxEVT_TREE_STATE_IMAGE_CLICK event type. @endEventTable @@ -150,7 +157,7 @@ @library{wxcore} @category{ctrl} - @appearance{treectrl.png} + @appearance{treectrl} @see wxDataViewTreeCtrl, wxTreeEvent, wxTreeItemData, @ref overview_treectrl, wxListBox, wxListCtrl, wxImageList @@ -331,6 +338,18 @@ public: virtual wxTextCtrl *EditLabel(const wxTreeItemId& item, wxClassInfo* textCtrlClass = wxCLASSINFO(wxTextCtrl)); + /** + Enable or disable a beep if there is no match for the currently + entered text when searching for the item from keyboard. + + The default is to not beep in this case except in wxMSW where the + beep is always generated by the native control and cannot be disabled, + i.e. calls to this function do nothing there. + + @since 2.9.5 + */ + void EnableBellOnNoMatch(bool on = true); + /** Ends label editing. If @a cancelEdit is @true, the edit will be cancelled. @@ -375,12 +394,6 @@ public: So, for example, the x coordinate may be negative if the tree has a horizontal scrollbar and its position is not 0. - @beginWxPythonOnly - The wxPython version of this method requires only the @a item and @a - textOnly parameters. The return value is either a wxRect object or @c - None. - @endWxPythonOnly - @beginWxPerlOnly In wxPerl this method only takes the @a item and @a textOnly parameters and returns a @c Wx::Rect (or @c undef). @@ -430,11 +443,6 @@ public: Returns an invalid tree item (i.e. wxTreeItemId::IsOk() returns @false) if there are no further children. - @beginWxPythonOnly - In wxPython the returned wxTreeItemId and the new cookie value are both - returned as a tuple containing the two values. - @endWxPythonOnly - @beginWxPerlOnly In wxPerl this method only takes the @a item parameter, and returns a 2-element list (item, cookie). @@ -497,12 +505,6 @@ public: @see wxTreeItemData - @beginWxPythonOnly - wxPython provides the following shortcut method: - @li GetPyData(item): Returns the Python Object associated with the - wxTreeItemData for the given item Id. - @endWxPythonOnly - @beginWxPerlOnly wxPerl provides the following shortcut method: - GetPlData(item): returns the Perl data @@ -514,6 +516,11 @@ public: /** Returns the font of the item label. + + If the font hadn't been explicitly set for the specified @a item with + SetItemFont(), returns an invalid ::wxNullFont font. GetFont() can be + used to retrieve the global tree control font used for the items + without any specific font. */ virtual wxFont GetItemFont(const wxTreeItemId& item) const; @@ -570,11 +577,6 @@ public: Returns an invalid tree item if there are no further children. - @beginWxPythonOnly - In wxPython the returned wxTreeItemId and the new cookie value are both - returned as a tuple containing the two values. - @endWxPythonOnly - @beginWxPerlOnly In wxPerl this method returns a 2-element list (item, cookie) instead of modifying its parameters. @@ -649,11 +651,6 @@ public: Returns the number of selected items. - @beginWxPythonOnly - The wxPython version of this method accepts no parameters and returns a - Python list of @ref wxTreeItemId "wxTreeItemId"s. - @endWxPythonOnly - @beginWxPerlOnly In wxPerl this method takes no parameters and returns a list of @c Wx::TreeItemId. @@ -685,10 +682,6 @@ public: - @c wxTREE_HITTEST_TOLEFT: To the right of the client area. - @c wxTREE_HITTEST_TORIGHT: To the left of the client area. - @beginWxPythonOnly - In wxPython both the wxTreeItemId and the flags are returned as a tuple. - @endWxPythonOnly - @beginWxPerlOnly In wxPerl this method only takes the @a point parameter and returns a 2-element list (item, flags). @@ -714,20 +707,16 @@ public: /** Inserts an item before one identified - by its position (@a before). @a before must be less than the number of - children. + by its position (@a pos). @a pos must be less than or equal to + the number of children. The @a image and @a selImage parameters are an index within the normal image list specifying the image to use for unselected and selected items, respectively. If @a image -1 and @a selImage is -1, the same image is used for both selected and unselected items. - - @beginWxPythonOnly - In wxPython, this form of this method is called @c InsertItemBefore(). - @endWxPythonOnly */ wxTreeItemId InsertItem(const wxTreeItemId& parent, - size_t before, + size_t pos, const wxString& text, int image = -1, int selImage = -1, @@ -741,7 +730,7 @@ public: virtual bool IsBold(const wxTreeItemId& item) const; /** - Returns @true if the control is empty (i.e. has no items, even no root + Returns @true if the control is empty (i.e.\ has no items, even no root one). */ bool IsEmpty() const; @@ -804,9 +793,14 @@ public: virtual void ScrollTo(const wxTreeItemId& item); /** - Selects the given item. In multiple selection controls, can be also used - to deselect a currently selected item if the value of @a select is - @false. + Selects the given item. + + In multiple selection controls, can be also used to deselect a + currently selected item if the value of @a select is @false. + + Notice that calling this method will generate + @c wxEVT_TREE_SEL_CHANGING and @c wxEVT_TREE_SEL_CHANGED + events and that the change could be vetoed by the former event handler. */ virtual void SelectItem(const wxTreeItemId& item, bool select = true); @@ -862,11 +856,6 @@ public: multiple times for the same item will result in memory leaks unless you delete the old item data pointer yourself. - @beginWxPythonOnly - - @b SetPyData( @a item, @c obj): Associate the given Python Object with - the wxTreeItemData for the given item Id. - @endWxPythonOnly - @beginWxPerlOnly wxPerl provides the following shortcut method: - SetPlData(item, data): sets the Perl data @@ -1019,13 +1008,13 @@ public: @beginEventTable{wxTreeEvent} @event{EVT_TREE_BEGIN_DRAG(id, func)} Begin dragging with the left mouse button. If you want to enable - left-dragging you need to intercept this event and explicitely call + left-dragging you need to intercept this event and explicitly call wxTreeEvent::Allow(), as it's vetoed by default. Also notice that the control must have an associated image list (see SetImageList()) to drag its items under MSW. @event{EVT_TREE_BEGIN_RDRAG(id, func)} Begin dragging with the right mouse button. If you want to enable - right-dragging you need to intercept this event and explicitely call + right-dragging you need to intercept this event and explicitly call wxTreeEvent::Allow(), as it's vetoed by default. @event{EVT_TREE_END_DRAG(id, func)} End dragging with the left or right mouse button. @@ -1070,7 +1059,7 @@ public: The state image has been clicked. @endEventTable - @library{wxbase} + @library{wxcore} @category{events} @see wxTreeCtrl @@ -1133,3 +1122,27 @@ public: */ void SetToolTip(const wxString& tooltip); }; + + +wxEventType wxEVT_TREE_BEGIN_DRAG; +wxEventType wxEVT_TREE_BEGIN_RDRAG; +wxEventType wxEVT_TREE_BEGIN_LABEL_EDIT; +wxEventType wxEVT_TREE_END_LABEL_EDIT; +wxEventType wxEVT_TREE_DELETE_ITEM; +wxEventType wxEVT_TREE_GET_INFO; +wxEventType wxEVT_TREE_SET_INFO; +wxEventType wxEVT_TREE_ITEM_EXPANDED; +wxEventType wxEVT_TREE_ITEM_EXPANDING; +wxEventType wxEVT_TREE_ITEM_COLLAPSED; +wxEventType wxEVT_TREE_ITEM_COLLAPSING; +wxEventType wxEVT_TREE_SEL_CHANGED; +wxEventType wxEVT_TREE_SEL_CHANGING; +wxEventType wxEVT_TREE_KEY_DOWN; +wxEventType wxEVT_TREE_ITEM_ACTIVATED; +wxEventType wxEVT_TREE_ITEM_RIGHT_CLICK; +wxEventType wxEVT_TREE_ITEM_MIDDLE_CLICK; +wxEventType wxEVT_TREE_END_DRAG; +wxEventType wxEVT_TREE_STATE_IMAGE_CLICK; +wxEventType wxEVT_TREE_ITEM_GETTOOLTIP; +wxEventType wxEVT_TREE_ITEM_MENU; +