git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32895
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
EVT_TREE_ITEM_COLLAPSING(TreeTest_Ctrl, MyTreeCtrl::OnItemCollapsing)
EVT_CONTEXT_MENU(MyTreeCtrl::OnContextMenu)
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)
EVT_TREE_SEL_CHANGED(TreeTest_Ctrl, MyTreeCtrl::OnSelChanged)
EVT_TREE_SEL_CHANGING(TreeTest_Ctrl, MyTreeCtrl::OnSelChanging)
EVT_TREE_KEY_DOWN(TreeTest_Ctrl, MyTreeCtrl::OnTreeKeyDown)
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)
{
wxPoint pt = event.GetPosition();
wxTreeItemId item = GetSelection();
wxLogMessage(wxT("OnContextMenu at screen coords (%i, %i)"), pt.x, pt.y);
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
- GetBoundingRect(item, rect, true); //true = only the label
+ GetBoundingRect(item, rect, true /* only the label */);
pt = wxPoint(rect.GetRight(), rect.GetTop());
}
else
pt = wxPoint(rect.GetRight(), rect.GetTop());
}
else
+ else // event was generated by mouse, use supplied coords
- //event was generated by mouse, use supplied coords
pt = ScreenToClient(pt);
}
pt = ScreenToClient(pt);
}
void OnEndLabelEdit(wxTreeEvent& event);
void OnDeleteItem(wxTreeEvent& event);
void OnContextMenu(wxContextMenuEvent& event);
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);
void OnGetInfo(wxTreeEvent& event);
void OnTreeRMouseClick(wxTreeEvent& event);
void OnSetInfo(wxTreeEvent& event);