public void InsertTab(IProfilingTab newTab, IProfilingTab after) { if (newTab == null) { throw new ArgumentNullException(nameof(newTab)); } if (after == null && newTab.GetType() != typeof(HomeTab)) //We don't want anyone to remove Home tab { throw new ArgumentNullException(nameof(after)); } if (after != null && !Tabs.Select(t => t.Tab).Contains(after)) { throw new ArgumentOutOfRangeException($"Tab '{after.GetType().Name}' not present in current tabs."); } //Remove everything after 'after'(if after is null remove everything) while (Tabs.Any() && Tabs.Last().Tab != after) { TabsOnLeft.Items.Remove(TabsOnLeft.Items.Last()); } newTab.InsertTab += InsertTab; var tabView = new TabView(newTab); tabView.Clicked += TabView_Clicked; TabsOnLeft.Items.Add(tabView); Select(tabView); }
public TabView(IProfilingTab tab) { Tab = tab; Items.Add(new Label { Text = tab.Title }); Items.Add(new Label { Text = tab.Details, Font = Fonts.Sans(10) }); Height = 40; Width = 90; }