Applied patch [ 827011 ] Event-based processing of item tooltips in wxTreeCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@24732 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
905f21104d
commit
156194e1d5
@ -64,7 +64,7 @@ which is generated by a wxComboBox control.}
|
|||||||
\twocolitem{{\bf EVT\_TOOL(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event
|
\twocolitem{{\bf EVT\_TOOL(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event
|
||||||
(a synonym for wxEVT\_COMMAND\_MENU\_SELECTED). Pass the id of the tool.}
|
(a synonym for wxEVT\_COMMAND\_MENU\_SELECTED). Pass the id of the tool.}
|
||||||
\twocolitem{{\bf EVT\_TOOL\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event
|
\twocolitem{{\bf EVT\_TOOL\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event
|
||||||
for a range id identifiers. Pass the ids of the tools.}
|
for a range of identifiers. Pass the ids of the tools.}
|
||||||
\twocolitem{{\bf EVT\_TOOL\_RCLICKED(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event.
|
\twocolitem{{\bf EVT\_TOOL\_RCLICKED(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event.
|
||||||
Pass the id of the tool.}
|
Pass the id of the tool.}
|
||||||
\twocolitem{{\bf EVT\_TOOL\_RCLICKED\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event
|
\twocolitem{{\bf EVT\_TOOL\_RCLICKED\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event
|
||||||
|
@ -88,6 +88,8 @@ functions that take a \helpref{wxTreeEvent}{wxtreeevent} argument.
|
|||||||
\twocolitem{{\bf EVT\_TREE\_SEL\_CHANGED(id, func)}}{Selection has changed.}
|
\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\_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\_KEY\_DOWN(id, func)}}{A key has been pressed.}
|
||||||
|
\twocolitem{{\bf EVT\_TREE\_ITEM\_GETTOOLTIP(id, func)}}{The opportunity to set the item tooltip
|
||||||
|
is being given to the application (call wxTreeEvent::SetToolTip). Windows only.}
|
||||||
\end{twocollist}
|
\end{twocollist}
|
||||||
|
|
||||||
\wxheading{See also}
|
\wxheading{See also}
|
||||||
|
@ -39,6 +39,9 @@ functions that take a wxTreeEvent argument.
|
|||||||
\twocolitem{{\bf EVT\_TREE\_KEY\_DOWN(id, func)}}{A key has been pressed.}
|
\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\_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\_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\_ITEM\_GETTOOLTIP(id, func)}}{The opportunity to set the item tooltip
|
||||||
|
is being given to the application (call wxTreeEvent::SetToolTip). Windows only.}
|
||||||
\end{twocollist}%
|
\end{twocollist}%
|
||||||
|
|
||||||
\wxheading{See also}
|
\wxheading{See also}
|
||||||
@ -98,3 +101,10 @@ Returns the position of the mouse pointer if the event is a drag event.
|
|||||||
Returns true if the label edit was cancelled. This should be
|
Returns true if the label edit was cancelled. This should be
|
||||||
called from within an EVT\_TREE\_END\_LABEL\_EDIT handler.
|
called from within an EVT\_TREE\_END\_LABEL\_EDIT handler.
|
||||||
|
|
||||||
|
\membersection{wxTreeEvent::SetToolTip}
|
||||||
|
|
||||||
|
\func{void}{SetToolTip}{\param{const wxString\&}{ tooltip}}
|
||||||
|
|
||||||
|
Set the tooltip for the item (valid for EVT\_TREE\_ITEM\_GETTOOLTIP events).
|
||||||
|
Windows only.
|
||||||
|
|
||||||
|
@ -274,6 +274,9 @@ public:
|
|||||||
bool IsEditCancelled() const { return m_editCancelled; }
|
bool IsEditCancelled() const { return m_editCancelled; }
|
||||||
void SetEditCanceled(bool editCancelled) { m_editCancelled = editCancelled; }
|
void SetEditCanceled(bool editCancelled) { m_editCancelled = editCancelled; }
|
||||||
|
|
||||||
|
// Set the tooltip for the item (for EVT\_TREE\_ITEM\_GETTOOLTIP events)
|
||||||
|
void SetToolTip(const wxString& toolTip) { m_label = toolTip; }
|
||||||
|
|
||||||
#if WXWIN_COMPATIBILITY_2_2
|
#if WXWIN_COMPATIBILITY_2_2
|
||||||
// for compatibility only, don't use
|
// for compatibility only, don't use
|
||||||
int GetCode() const { return m_evtKey.GetKeyCode(); }
|
int GetCode() const { return m_evtKey.GetKeyCode(); }
|
||||||
@ -320,6 +323,7 @@ BEGIN_DECLARE_EVENT_TYPES()
|
|||||||
DECLARE_EVENT_TYPE(wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK, 616)
|
DECLARE_EVENT_TYPE(wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK, 616)
|
||||||
DECLARE_EVENT_TYPE(wxEVT_COMMAND_TREE_END_DRAG, 617)
|
DECLARE_EVENT_TYPE(wxEVT_COMMAND_TREE_END_DRAG, 617)
|
||||||
DECLARE_EVENT_TYPE(wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK, 618)
|
DECLARE_EVENT_TYPE(wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK, 618)
|
||||||
|
DECLARE_EVENT_TYPE(wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP, 619)
|
||||||
END_DECLARE_EVENT_TYPES()
|
END_DECLARE_EVENT_TYPES()
|
||||||
|
|
||||||
// GetItem() returns the item being dragged, GetPoint() the mouse coords
|
// GetItem() returns the item being dragged, GetPoint() the mouse coords
|
||||||
@ -375,6 +379,9 @@ END_DECLARE_EVENT_TYPES()
|
|||||||
// GetItem() returns the item whose state image was clicked on
|
// GetItem() returns the item whose state image was clicked on
|
||||||
#define EVT_TREE_STATE_IMAGE_CLICK(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL ),
|
#define EVT_TREE_STATE_IMAGE_CLICK(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL ),
|
||||||
|
|
||||||
|
// GetItem() is the item for which the tooltip is being requested
|
||||||
|
#define EVT_TREE_ITEM_GETTOOLTIP(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL ),
|
||||||
|
|
||||||
#endif // wxUSE_TREECTRL
|
#endif // wxUSE_TREECTRL
|
||||||
|
|
||||||
#endif // _WX_TREEBASE_H_
|
#endif // _WX_TREEBASE_H_
|
||||||
|
@ -62,6 +62,7 @@ DEFINE_EVENT_TYPE(wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK)
|
|||||||
DEFINE_EVENT_TYPE(wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK)
|
DEFINE_EVENT_TYPE(wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK)
|
||||||
DEFINE_EVENT_TYPE(wxEVT_COMMAND_TREE_END_DRAG)
|
DEFINE_EVENT_TYPE(wxEVT_COMMAND_TREE_END_DRAG)
|
||||||
DEFINE_EVENT_TYPE(wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK)
|
DEFINE_EVENT_TYPE(wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK)
|
||||||
|
DEFINE_EVENT_TYPE(wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP)
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// Tree event
|
// Tree event
|
||||||
|
@ -674,6 +674,9 @@ bool wxTreeCtrl::Create(wxWindow *parent,
|
|||||||
wstyle |= TVS_CHECKBOXES;
|
wstyle |= TVS_CHECKBOXES;
|
||||||
#endif // wxUSE_CHECKBOXES_IN_MULTI_SEL_TREE
|
#endif // wxUSE_CHECKBOXES_IN_MULTI_SEL_TREE
|
||||||
|
|
||||||
|
// Need so that TVN_GETINFOTIP messages will be sent
|
||||||
|
wstyle |= TVS_INFOTIP;
|
||||||
|
|
||||||
// Create the tree control.
|
// Create the tree control.
|
||||||
if ( !MSWCreateControl(WC_TREEVIEW, wstyle) )
|
if ( !MSWCreateControl(WC_TREEVIEW, wstyle) )
|
||||||
return false;
|
return false;
|
||||||
@ -2459,6 +2462,29 @@ bool wxTreeCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// These *must* not be removed or TVN_GETINFOTIP will
|
||||||
|
// not be processed each time the mouse is moved
|
||||||
|
// and the tooltip will only ever update once.
|
||||||
|
case TTN_NEEDTEXTA:
|
||||||
|
case TTN_NEEDTEXTW:
|
||||||
|
{
|
||||||
|
*result = 0;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case TVN_GETINFOTIP:
|
||||||
|
{
|
||||||
|
eventType = wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP;
|
||||||
|
NMTVGETINFOTIP *info = (NMTVGETINFOTIP*)lParam;
|
||||||
|
|
||||||
|
// Which item are we trying to get a tooltip for?
|
||||||
|
event.m_item = (WXHTREEITEM) info->hItem;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case TVN_GETDISPINFO:
|
case TVN_GETDISPINFO:
|
||||||
eventType = wxEVT_COMMAND_TREE_GET_INFO;
|
eventType = wxEVT_COMMAND_TREE_GET_INFO;
|
||||||
// fall through
|
// fall through
|
||||||
@ -2805,6 +2831,16 @@ bool wxTreeCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
|
|||||||
DeleteTextCtrl();
|
DeleteTextCtrl();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case TVN_GETINFOTIP:
|
||||||
|
{
|
||||||
|
// If the user permitted a tooltip change, change it
|
||||||
|
if (event.IsAllowed())
|
||||||
|
{
|
||||||
|
SetToolTip(event.m_label);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case TVN_SELCHANGING:
|
case TVN_SELCHANGING:
|
||||||
case TVN_ITEMEXPANDING:
|
case TVN_ITEMEXPANDING:
|
||||||
// return true to prevent the action from happening
|
// return true to prevent the action from happening
|
||||||
|
Loading…
Reference in New Issue
Block a user