internal void GenerateView(IContextMenuProvider provider, KryptonContextMenuItems items, object parent, ViewLayoutStack columns, bool standardStyle, bool imageColumn) { // Create the initial column ViewBase column = AddColumn(provider, items, columns, standardStyle, imageColumn); // Process each item in the collection in turn foreach (KryptonContextMenuItemBase item in this) { if (item.Visible) { // Special handling of separator items if (item is KryptonContextMenuSeparator) { // Cast to correct type KryptonContextMenuSeparator separator = (KryptonContextMenuSeparator)item; // If vertical break.... if (!separator.Horizontal) { // Add separator as next column view element columns.Add(separator.GenerateView(provider, this, columns, standardStyle, imageColumn)); // Start new column for subsequent child items column = AddColumn(provider, items, columns, standardStyle, imageColumn); } else { // Add separator view into the current column column.Add(separator.GenerateView(provider, this, columns, standardStyle, imageColumn)); } } else { // All other items we just ask them for the view to add column.Add(item.GenerateView(provider, this, columns, standardStyle, imageColumn)); } } } }
/// <summary> /// Append a view to the collection. /// </summary> /// <param name="item">ViewBase reference.</param> public override void Add(ViewBase item) { _child.Add(item); }