using System; using System.Collections.Generic; using System.Threading.Tasks; namespace InABox.Core { public class CoreMenuHeader : ICoreMenuContentItem where T : class { public string Header { get; set; } public T? Image { get; set; } object? ICoreMenuContentItem.Image { get => Image; set => Image = (T?)value; } public List Items { get; } = new List(); public CoreMenuHeader(string header, T? image = null) { Header = header; Image = image; } public CoreMenuHeader AddItem(string header, T? image, Func> action) { var result = new CoreMenuItem(header, image, action); Items.Add(result); return this; } public CoreMenuHeader AddItem(string header, Func> action) { var result = new CoreMenuItem(header, null, action); Items.Add(result); return this; } public CoreMenuHeader AddSeparator() { Items.Add(new CoreMenuSeparator()); return this; } public CoreMenuHeader AddHeader(CoreMenuHeader header) { Items.Add(header); return this; } } }