public override void MenuWillOpen(NSMenu menu)
{
if (owner.currentMenu != menu)
{
var cancelEventArgs = new CancelEventArgs();
if (owner.owner_item != null && owner.owner_item is ToolStripDropDownItem)
{
ToolStripDropDownItem dropdown_owner = (ToolStripDropDownItem)owner.owner_item;
dropdown_owner.OnDropDownShow(cancelEventArgs);
}
if (!cancelEventArgs.Cancel)
{
owner.OnOpening(cancelEventArgs);
}
if (cancelEventArgs.Cancel)
{
menu.CancelTrackingWithoutAnimation();
return;
}
}
owner.is_visible = true;
owner.currentMenu = menu;
owner.OnVisibleChanged(EventArgs.Empty);
// Send WM_CANCELMODE to cancel any grabs
owner.CancelGrab();
// Convert all the menu items to NSMenuItems (w/ embedded views if necessary)
if (!beforePopupCalled)
{
BeforePopup();
}
owner.OnOpened(EventArgs.Empty);
}