// Add dynamic menu item in a submenu. Parameter menuItems // contains existing menu items in the submenu. private void AddMenuItemInSubmenu(MenuItem menuItem, Menu.MenuItemCollection menuItems) { switch (_itemInsertMode) { case ItemInsertMode.Append: if (_itemCount == _maxItems) { menuItems.RemoveAt(0); _itemCount--; } menuItems.Add(menuItem); break; case ItemInsertMode.Prepend: if (_itemCount == _maxItems) { menuItems.RemoveAt(_maxItems - 1); _itemCount--; } menuItems.Add(0, menuItem); break; default: break; } _itemCount++; _anchor.Enabled = true; }
// Add inline dynamic menu item. Parameter menuItems contains // existing inline dynamic menu items. private void AddMenuItemInline(MenuItem menuItem, Menu.MenuItemCollection menuItems) { int anchorIndex = _anchor.Index; switch (_itemInsertMode) { case ItemInsertMode.Append: if (_itemCount == _maxItems) { menuItems.RemoveAt(anchorIndex + 1); _itemCount--; } menuItems.Add(anchorIndex + _itemCount + 1, menuItem); break; case ItemInsertMode.Prepend: if (_itemCount == _maxItems) { menuItems.RemoveAt(anchorIndex + _maxItems); _itemCount--; } menuItems.Add(anchorIndex + 1, menuItem); break; default: break; } _itemCount++; _separator.Visible = true; }