private CustomTabWindow CreateWindow(PrisonersTabDef def) { CustomTabWindow window = (CustomTabWindow)Activator.CreateInstance(def.workerClass); window.PostOpen(); return(window); }
private CustomTabWindow GetTable(PrisonersTabDef def) { if (!tabsView.TryGetValue(def, out CustomTabWindow table)) { table = CreateWindow(def); tabsView.Add(def, table); } return(table); }
public override void PostOpen() { base.PostOpen(); tabs.Clear(); foreach (PrisonersTabDef tabDef in DefDatabase <PrisonersTabDef> .AllDefs.Where(def => !def.dev || def.dev == Prefs.DevMode).OrderBy(def => def.order)) { tabs.Add(new PrisonerWindowTab(tabDef, tabDef.LabelCap, delegate { CurTab = tabDef; }, () => CurTab == tabDef)); GetTable(tabDef); } CurTab = tabs[1].def; foreach (var tab in tabsView.Values) { tab.PostOpen(); } }
public PrisonerWindowTab(PrisonersTabDef def, string label, Action clickedAction, Func <bool> selected) : base(label, clickedAction, selected) { this.def = def; }