public override bool DrawSpecial(Rect rect, WidgetRow row) { if (Sel.degreeDatas.Count > 1 && row.ButtonText(Sel.DataAtDegree(traitDegree).label.CapitalizeFirst())) { List <FloatMenuOption> options = new List <FloatMenuOption>(); foreach (TraitDegreeData deg in Sel.degreeDatas) { options.Add(new FloatMenuOption(deg.label.CapitalizeFirst(), () => traitDegree = deg.degree)); } MainTabWindow_List.DoFloatMenu(options); } return(false); }
private void DoStageDropdown(WidgetRow row, int setI, Action <int> selectedAction) { if (row.ButtonText(Sel.stages[setI]?.label.CapitalizeFirst() ?? "TD.Invisible".Translate())) { List <FloatMenuOption> options = new List <FloatMenuOption>(); IEnumerable <int> stageIndices = ContentsUtility.onlyAvailable ? ContentsUtility.AvailableInGame(t => ThoughtStagesForThing(t, Sel)) : Enumerable.Range(0, Sel.stages.Count); foreach (int i in stageIndices.Where(i => DebugSettings.godMode || (Sel.stages[i]?.visible ?? false))) { int localI = i; options.Add(new FloatMenuOption(Sel.stages[i]?.label.CapitalizeFirst() ?? "TD.Invisible".Translate(), () => selectedAction(localI))); } MainTabWindow_List.DoFloatMenu(options); } }
public override bool DrawOption(Rect rect) { WidgetRow row = new WidgetRow(rect.x, rect.y); if (row.ButtonText(sel.def.LabelCap)) { List <FloatMenuOption> options = new List <FloatMenuOption>(); foreach (ListFilterDef def in def.subFilters) { options.Add(new FloatMenuOption(def.LabelCap, () => SetSelectedFilter(def))); } MainTabWindow_List.DoFloatMenu(options); return(true); } rect.xMin += row.FinalX; return(sel.DrawOption(rect)); }