From f7c6f947cf77ebfd11a860e7d07262e6de31e2a1 Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Sun, 26 Dec 2004 17:37:59 +0000 Subject: [PATCH] Added TREE_ITEM_MENU event that gets sent if the user hits the "Menu" key on the newer keyboards. So far generic control only. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31148 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/latex/wx/treectrl.tex | 1 + include/wx/treebase.h | 4 ++++ src/common/treebase.cpp | 1 + src/generic/treectlg.cpp | 8 ++++++++ 4 files changed, 14 insertions(+) diff --git a/docs/latex/wx/treectrl.tex b/docs/latex/wx/treectrl.tex index 2d00ee1eed..44c52544c9 100644 --- a/docs/latex/wx/treectrl.tex +++ b/docs/latex/wx/treectrl.tex @@ -93,6 +93,7 @@ functions that take a \helpref{wxTreeEvent}{wxtreeevent} argument. \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.} +\twocolitem{{\bf EVT\_TREE\_ITEM\_MENU(id, func)}}{The menu key has been pressed, asking for a context menu for the selected item.} \end{twocollist} \wxheading{See also} diff --git a/include/wx/treebase.h b/include/wx/treebase.h index 15944f0476..28ec4e5271 100644 --- a/include/wx/treebase.h +++ b/include/wx/treebase.h @@ -331,6 +331,7 @@ BEGIN_DECLARE_EVENT_TYPES() 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_ITEM_GETTOOLTIP, 619) + DECLARE_EVENT_TYPE(wxEVT_COMMAND_TREE_ITEM_MENU, 620) END_DECLARE_EVENT_TYPES() // GetItem() returns the item being dragged, GetPoint() the mouse coords @@ -379,6 +380,9 @@ END_DECLARE_EVENT_TYPES() // GetItem() returns the item that was activated (double click, enter, space) #define EVT_TREE_ITEM_ACTIVATED(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_COMMAND_TREE_ITEM_ACTIVATED, id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxTreeEventFunction, & fn ), NULL ), +// GetItem() returns the item for which the context menu shall be shown +#define EVT_TREE_ITEM_MENU(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_COMMAND_TREE_ITEM_MENU, id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxTreeEventFunction, & fn ), (wxObject *) NULL ), + // GetItem() returns the item that was clicked on #define EVT_TREE_ITEM_RIGHT_CLICK(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK, id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxTreeEventFunction, & fn ), NULL ), #define EVT_TREE_ITEM_MIDDLE_CLICK(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK, id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxTreeEventFunction, & fn ), NULL ), diff --git a/src/common/treebase.cpp b/src/common/treebase.cpp index 54b9c28d4a..d166c7d705 100644 --- a/src/common/treebase.cpp +++ b/src/common/treebase.cpp @@ -63,6 +63,7 @@ DEFINE_EVENT_TYPE(wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK) DEFINE_EVENT_TYPE(wxEVT_COMMAND_TREE_END_DRAG) DEFINE_EVENT_TYPE(wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK) DEFINE_EVENT_TYPE(wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP) +DEFINE_EVENT_TYPE(wxEVT_COMMAND_TREE_ITEM_MENU) // ---------------------------------------------------------------------------- // Tree event diff --git a/src/generic/treectlg.cpp b/src/generic/treectlg.cpp index a75a6d7183..b27512a242 100644 --- a/src/generic/treectlg.cpp +++ b/src/generic/treectlg.cpp @@ -2653,6 +2653,14 @@ void wxGenericTreeCtrl::OnChar( wxKeyEvent &event ) } break; + case WXK_MENU: + { + wxTreeEvent event( wxEVT_COMMAND_TREE_ITEM_MENU, GetId() ); + event.m_item = m_current; + event.SetEventObject( this ); + GetEventHandler()->ProcessEvent( event ); + break; + } case ' ': case WXK_RETURN: if ( !event.HasModifiers() )