added EVT_TREE_ITEM_MENU test

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32895 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2005-03-18 15:13:41 +00:00
parent bee09d36e2
commit ef46ef23cb
2 changed files with 22 additions and 8 deletions

View File

@@ -138,6 +138,8 @@ BEGIN_EVENT_TABLE(MyTreeCtrl, wxTreeCtrl)
EVT_TREE_ITEM_COLLAPSING(TreeTest_Ctrl, MyTreeCtrl::OnItemCollapsing) EVT_TREE_ITEM_COLLAPSING(TreeTest_Ctrl, MyTreeCtrl::OnItemCollapsing)
EVT_CONTEXT_MENU(MyTreeCtrl::OnContextMenu) EVT_CONTEXT_MENU(MyTreeCtrl::OnContextMenu)
EVT_TREE_ITEM_MENU(TreeTest_Ctrl, MyTreeCtrl::OnItemMenu)
EVT_TREE_SEL_CHANGED(TreeTest_Ctrl, MyTreeCtrl::OnSelChanged) EVT_TREE_SEL_CHANGED(TreeTest_Ctrl, MyTreeCtrl::OnSelChanged)
EVT_TREE_SEL_CHANGING(TreeTest_Ctrl, MyTreeCtrl::OnSelChanging) EVT_TREE_SEL_CHANGING(TreeTest_Ctrl, MyTreeCtrl::OnSelChanging)
EVT_TREE_KEY_DOWN(TreeTest_Ctrl, MyTreeCtrl::OnTreeKeyDown) EVT_TREE_KEY_DOWN(TreeTest_Ctrl, MyTreeCtrl::OnTreeKeyDown)
@@ -1146,21 +1148,33 @@ void MyTreeCtrl::OnItemActivated(wxTreeEvent& event)
wxLogMessage(wxT("OnItemActivated")); 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) void MyTreeCtrl::OnContextMenu(wxContextMenuEvent& event)
{ {
wxPoint pt = event.GetPosition(); wxPoint pt = event.GetPosition();
wxTreeItemId item = GetSelection(); wxTreeItemId item = GetSelection();
wxLogMessage(wxT("OnContextMenu at screen coords (%i, %i)"), pt.x, pt.y); wxLogMessage(wxT("OnContextMenu at screen coords (%i, %i)"), pt.x, pt.y);
//check if event was generated by keyboard (MSW-specific?) // check if event was generated by keyboard (MSW-specific?)
if (pt.x==-1 && pt.y==-1) //(this is how MSW indicates it) if ( pt.x == -1 && pt.y == -1 ) //(this is how MSW indicates it)
{ {
//attempt to guess where to show the menu // attempt to guess where to show the menu
if (item.IsOk()) 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; wxRect rect;
GetBoundingRect(item, rect, true); //true = only the label GetBoundingRect(item, rect, true /* only the label */);
pt = wxPoint(rect.GetRight(), rect.GetTop()); pt = wxPoint(rect.GetRight(), rect.GetTop());
} }
else else
@@ -1168,9 +1182,8 @@ void MyTreeCtrl::OnContextMenu(wxContextMenuEvent& event)
pt = wxPoint(0, 0); 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); pt = ScreenToClient(pt);
} }

View File

@@ -74,6 +74,7 @@ public:
void OnEndLabelEdit(wxTreeEvent& event); void OnEndLabelEdit(wxTreeEvent& event);
void OnDeleteItem(wxTreeEvent& event); void OnDeleteItem(wxTreeEvent& event);
void OnContextMenu(wxContextMenuEvent& event); void OnContextMenu(wxContextMenuEvent& event);
void OnItemMenu(wxTreeEvent& event);
void OnGetInfo(wxTreeEvent& event); void OnGetInfo(wxTreeEvent& event);
void OnTreeRMouseClick(wxTreeEvent& event); void OnTreeRMouseClick(wxTreeEvent& event);
void OnSetInfo(wxTreeEvent& event); void OnSetInfo(wxTreeEvent& event);