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:
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user