private void OnContextMenuStripOpening(object sender, CancelEventArgs e) { if (_tileController == null || _tileController.ContextMenuProvider == null) { e.Cancel = true; return; } if (_tileController.ContextMenuEnabled) { ActionModelNode menuModel = _tileController.ContextMenuProvider.GetContextMenuModel(_tileController); if (menuModel != null && menuModel.ChildNodes.Count > 0) { ToolStripBuilder.Clear(_contextMenuStrip.Items); ToolStripBuilder.BuildMenu(_contextMenuStrip.Items, menuModel.ChildNodes); // filter unavailable items out of list since they wreck the display of the overflow and scroll portions of the menu dropdown // (ClearCanvas Ticket #4775, Microsoft Connect Issue #136061) FilterUnavailableItems(_contextMenuStrip.Items); // cancel list if, after filtering, no items are left to display. e.Cancel = (_contextMenuStrip.Items.Count == 0); } else { e.Cancel = true; } } else { e.Cancel = true; } }
private void InitializeMenu() { ToolStripBuilder.Clear(_contextMenu.Items); if (_menuModel != null) { ToolStripBuilder.BuildMenu(_contextMenu.Items, _menuModel.ChildNodes); } }
private static void ShowContextMenu(ContextMenuStrip contextMenuStrip, ActionModelNode actionModel, Point screenPoint, int minWidth, bool alignRight) { ToolStripBuilder.Clear(contextMenuStrip.Items); if (actionModel != null) { ToolStripBuilder.BuildMenu(contextMenuStrip.Items, actionModel.ChildNodes); if (alignRight) { screenPoint.Offset(-contextMenuStrip.Width, 0); } contextMenuStrip.Show(screenPoint); } }
public LocalImageExplorerControl(LocalImageExplorerComponent component) { _component = component; _folderViewSelectionUpdatePublisher = new DelayedEventPublisher(OnFolderViewSelectionUpdatePublished); InitializeComponent(); InitializeHistoryMenu(); InitializeIcons(); InitializeFocusList(); SetViewMode(Settings.Default.FolderViewMode, false); SetHomeLocation(Settings.Default.HomeLocation); _folderView.ExceptionRaised += OnFolderControlExceptionRaised; _folderTree.ExceptionRaised += OnFolderControlExceptionRaised; ResetFocus(); // reset focus must happen after explorer controls are initially populated // Initialize menus here ToolStripBuilder.BuildMenu(_folderViewContextMenu.Items, _component.ContextMenuModel.ChildNodes); ToolStripBuilder.BuildMenu(_folderTreeContextMenu.Items, _component.ContextMenuModel.ChildNodes); }