private void DoOnItemClicked(RadMenuItemBase menuItem, MouseEventArgs e) { if (!menuItem.HasChildren && menuItem.GetSite() == null) { menuItem.Select(); PopupManager.Default.CloseAllToRoot(RadPopupCloseReason.Mouse, this); if (menuItem.RootItem == null || !(menuItem.RootItem.Owner is RadMenuElement)) { return; } if (menuItem.Owner is RadMenuElement) { if ((menuItem.Owner as RadMenuElement).ElementTree.Control is RadMenu) { ((menuItem.Owner as RadMenuElement).ElementTree.Control as RadMenu).SetMenuState(RadMenu.RadMenuState.NotActive); } } } else { if (!(menuItem.GetSite() != null && e.Button == MouseButtons.Right)) { menuItem.ShowChildItems(); } } }
protected override void OnMouseClick(MouseEventArgs e) { RadMenuItemBase menuItem = this.ElementTree.GetElementAtPoint(e.Location) as RadMenuItemBase; base.OnMouseClick(e); RadElement ownerElement = this.GetRootOwnerElement(); if (ownerElement != null && e.Button == MouseButtons.Left && ownerElement.IsDesignMode) { this.DoDesignTimeDoubleClick(e); } else { if (menuItem == null || !menuItem.Enabled) { return; } this.clickedItem = menuItem; this.DoOnItemClicked(menuItem, e); if (menuItem.GetSite() == null) { if (!menuItem.IsMouseOver) { menuItem.PerformClick(); } } this.clickedItem = null; } }
protected virtual void PerformMenuItemClick(RadMenuItemBase menuItem) { if (menuItem.GetSite() != null || menuItem.IsMouseOver) { return; } menuItem.PerformClick(); }
private void DoDesignTimeDoubleClick(MouseEventArgs e) { RadMenuItemBase oldElementUnderMouse = null; oldElementUnderMouse = elementUnderMouse; elementUnderMouse = this.ElementTree.GetElementAtPoint(e.Location) as RadMenuItemBase; if (dblClickStopWatch == null) { dblClickStopWatch = Stopwatch.StartNew(); return; } if (elementUnderMouse != oldElementUnderMouse) { if (dblClickStopWatch != null) { dblClickStopWatch.Reset(); dblClickStopWatch.Start(); } return; } if (dblClickStopWatch.ElapsedMilliseconds < SystemInformation.DoubleClickTime) { if (elementUnderMouse == null) { return; } ISite site = elementUnderMouse.GetSite(); if (site == null) { return; } IDesignerHost host = (IDesignerHost)site.GetService(typeof(IDesignerHost)); if (host == null) { return; } this.ClosePopup(RadPopupCloseReason.Mouse); if (this.OwnerPopup != null) { PopupManager.Default.CloseAllToRoot(RadPopupCloseReason.Mouse, this.OwnerPopup); } dblClickStopWatch.Reset(); elementUnderMouse = null; } else { dblClickStopWatch.Reset(); elementUnderMouse = null; } }