public static ContextMenuStrip CreateContextMenu(object owner, string addInTreePath) { if (addInTreePath == null) { return(null); } try { ArrayList buildItems = AddInTree.GetTreeNode(addInTreePath).BuildChildItems(owner); ContextMenuStrip contextMenu = new ContextMenuStrip(); contextMenu.Items.Add(new ToolStripMenuItem("dummy")); contextMenu.Opening += delegate { contextMenu.Items.Clear(); foreach (object item in buildItems) { if (item is ToolStripItem) { contextMenu.Items.Add((ToolStripItem)item); } else { ISubmenuBuilder submenuBuilder = (ISubmenuBuilder)item; contextMenu.Items.AddRange(submenuBuilder.BuildSubmenu(null, owner)); } } }; contextMenu.Opened += ContextMenuOpened; contextMenu.Closed += ContextMenuClosed; return(contextMenu); } catch (TreePathNotFoundException) { MessageService.ShowError("Warning tree path '" + addInTreePath + "' not found."); return(null); } }
void CreateDropDownItems() { ToolStripItem[] itemsToAdd = null; DropDownItems.Clear(); foreach (object item in subItems) { if (item is ToolStripItem) { DropDownItems.Add((ToolStripItem)item); if (item is IStatusUpdate) { ((IStatusUpdate)item).UpdateStatus(); ((IStatusUpdate)item).UpdateText(); } } else { ISubmenuBuilder submenuBuilder = (ISubmenuBuilder)item; itemsToAdd = submenuBuilder.BuildSubmenu(codon, caller); if (itemsToAdd != null) { DropDownItems.AddRange(itemsToAdd); } } } }
public static ToolStripItem[] CreateToolStripItems(object owner, AddInTreeNode treeNode) { List <ToolStripItem> collection = new List <ToolStripItem>(); foreach (object item in treeNode.BuildChildItems(owner)) { if (item is ToolStripItem) { collection.Add((ToolStripItem)item); } else { ISubmenuBuilder submenuBuilder = (ISubmenuBuilder)item; collection.AddRange(submenuBuilder.BuildSubmenu(null, owner)); } } return(collection.ToArray()); }
static void AddItemsToMenu(ToolStripItemCollection collection, List <MenuItemDescriptor> descriptors) { foreach (MenuItemDescriptor descriptor in descriptors) { object item = CreateMenuItemFromDescriptor(descriptor); if (item is ToolStripItem) { collection.Add((ToolStripItem)item); if (item is IStatusUpdate) { ((IStatusUpdate)item).UpdateStatus(); } } else { ISubmenuBuilder submenuBuilder = (ISubmenuBuilder)item; collection.AddRange(submenuBuilder.BuildSubmenu(null, descriptor.Caller)); } } }
void CreateSubItems() { MenuItems.Clear(); foreach (object item in subItems) { if (item is MenuItem) { MenuItems.Add((MenuItem)item); if (item is IStatusUpdate) { ((IStatusUpdate)item).UpdateStatus(); ((IStatusUpdate)item).UpdateText(); } } else { ISubmenuBuilder submenuBuilder = (ISubmenuBuilder)item; MenuItems.AddRange(submenuBuilder.BuildSubmenu(codon, caller)); } } }
public static void AddItemsToMenu(ToolStripItemCollection collection, object owner, string addInTreePath) { ArrayList buildItems = AddInTree.GetTreeNode(addInTreePath).BuildChildItems(owner); foreach (object item in buildItems) { if (item is ToolStripItem) { collection.Add((ToolStripItem)item); if (item is IStatusUpdate) { ((IStatusUpdate)item).UpdateStatus(); } } else { ISubmenuBuilder submenuBuilder = (ISubmenuBuilder)item; collection.AddRange(submenuBuilder.BuildSubmenu(null, owner)); } } }
void CreateDropDownItems() { // let's assume that if a menuBuilder exists, // as in the Search Results panel or the Class // Browser toolbar, it will handle this step. if (menuBuilder != null) { return; } // also, let's prevent a null exception // in the event that there are no subitems if (subItems == null || subItems.Count == 0) { return; } DropDownItems.Clear(); foreach (object item in subItems) { if (item is ToolStripItem) { DropDownItems.Add((ToolStripItem)item); if (item is IStatusUpdate) { ((IStatusUpdate)item).UpdateStatus(); ((IStatusUpdate)item).UpdateText(); } } else { ISubmenuBuilder submenuBuilder = (ISubmenuBuilder)item; DropDownItems.AddRange(submenuBuilder.BuildSubmenu(codon, caller)); } } }
public static ToolStripItem[] CreateToolStripItems(object owner, AddInTreeNode treeNode) { if (treeNode == null) { return(new ToolStripItem[0]); } List <ToolStripItem> collection = new List <ToolStripItem>(); foreach (ToolbarItemDescriptor descriptor in treeNode.BuildChildItems <ToolbarItemDescriptor>(owner)) { object item = CreateToolbarItemFromDescriptor(descriptor); if (item is ToolStripItem) { collection.Add((ToolStripItem)item); } else { ISubmenuBuilder submenuBuilder = (ISubmenuBuilder)item; collection.AddRange(submenuBuilder.BuildSubmenu(null, owner)); } } return(collection.ToArray()); }