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