From ef46ef23cb8aa259ea8b8894ad6a2254b57db31a Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 18 Mar 2005 15:13:41 +0000 Subject: [PATCH] added EVT_TREE_ITEM_MENU test git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32895 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- samples/treectrl/treetest.cpp | 29 +++++++++++++++++++++-------- samples/treectrl/treetest.h | 1 + 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/samples/treectrl/treetest.cpp b/samples/treectrl/treetest.cpp index 29cd8942d0..3a3f8d43e1 100644 --- a/samples/treectrl/treetest.cpp +++ b/samples/treectrl/treetest.cpp @@ -138,6 +138,8 @@ BEGIN_EVENT_TABLE(MyTreeCtrl, wxTreeCtrl) EVT_TREE_ITEM_COLLAPSING(TreeTest_Ctrl, MyTreeCtrl::OnItemCollapsing) EVT_CONTEXT_MENU(MyTreeCtrl::OnContextMenu) + EVT_TREE_ITEM_MENU(TreeTest_Ctrl, MyTreeCtrl::OnItemMenu) + EVT_TREE_SEL_CHANGED(TreeTest_Ctrl, MyTreeCtrl::OnSelChanged) EVT_TREE_SEL_CHANGING(TreeTest_Ctrl, MyTreeCtrl::OnSelChanging) EVT_TREE_KEY_DOWN(TreeTest_Ctrl, MyTreeCtrl::OnTreeKeyDown) @@ -1146,21 +1148,33 @@ void MyTreeCtrl::OnItemActivated(wxTreeEvent& event) wxLogMessage(wxT("OnItemActivated")); } +void MyTreeCtrl::OnItemMenu(wxTreeEvent& event) +{ + wxTreeItemId itemId = event.GetItem(); + MyTreeItemData *item = itemId.IsOk() ? (MyTreeItemData *)GetItemData(itemId) + : NULL; + + wxLogMessage(wxT("OnItemMenu for item \"%s\""), item ? item->GetDesc() + : _T("")); + + event.Skip(); +} + void MyTreeCtrl::OnContextMenu(wxContextMenuEvent& event) { wxPoint pt = event.GetPosition(); wxTreeItemId item = GetSelection(); wxLogMessage(wxT("OnContextMenu at screen coords (%i, %i)"), pt.x, pt.y); - //check if event was generated by keyboard (MSW-specific?) - if (pt.x==-1 && pt.y==-1) //(this is how MSW indicates it) + // check if event was generated by keyboard (MSW-specific?) + if ( pt.x == -1 && pt.y == -1 ) //(this is how MSW indicates it) { - //attempt to guess where to show the menu - if (item.IsOk()) + // attempt to guess where to show the menu + if ( item.IsOk() ) { - //if an item was clicked, show menu to the right of it + // if an item was clicked, show menu to the right of it wxRect rect; - GetBoundingRect(item, rect, true); //true = only the label + GetBoundingRect(item, rect, true /* only the label */); pt = wxPoint(rect.GetRight(), rect.GetTop()); } else @@ -1168,9 +1182,8 @@ void MyTreeCtrl::OnContextMenu(wxContextMenuEvent& event) pt = wxPoint(0, 0); } } - else + else // event was generated by mouse, use supplied coords { - //event was generated by mouse, use supplied coords pt = ScreenToClient(pt); } diff --git a/samples/treectrl/treetest.h b/samples/treectrl/treetest.h index c692ba3506..778be3b787 100644 --- a/samples/treectrl/treetest.h +++ b/samples/treectrl/treetest.h @@ -74,6 +74,7 @@ public: void OnEndLabelEdit(wxTreeEvent& event); void OnDeleteItem(wxTreeEvent& event); void OnContextMenu(wxContextMenuEvent& event); + void OnItemMenu(wxTreeEvent& event); void OnGetInfo(wxTreeEvent& event); void OnTreeRMouseClick(wxTreeEvent& event); void OnSetInfo(wxTreeEvent& event); -- 2.45.2