public ExperimentSubjectList(KsmGuiBase parent, ExperimentInfo expInfo) : base(parent) { KnownSubjectsToggle = new KsmGuiToggle(this, "Show only known subjects", true, ToggleKnownSubjects, null, -1, 21); KsmGuiBase listHeader = new KsmGuiBase(this); listHeader.SetLayoutElement(true, false, -1, 16); listHeader.AddImageComponentWithColor(KsmGuiStyle.boxColor); KsmGuiText rndHeaderText = new KsmGuiText(listHeader, "RnD", "Science points\nretrieved in RnD", TextAlignmentOptions.Left); rndHeaderText.TextComponent.color = Lib.KolorToColor(Lib.Kolor.Science); rndHeaderText.TextComponent.fontStyle = FontStyles.Bold; rndHeaderText.TopTransform.SetAnchorsAndPosition(TextAnchor.MiddleLeft, TextAnchor.MiddleLeft, 10, 0); rndHeaderText.TopTransform.SetSizeDelta(50, 16); KsmGuiText flightHeaderText = new KsmGuiText(listHeader, "Flight", "Science points\ncollected in all vessels", TextAlignmentOptions.Left); flightHeaderText.TextComponent.color = Lib.KolorToColor(Lib.Kolor.Science); flightHeaderText.TextComponent.fontStyle = FontStyles.Bold; flightHeaderText.TopTransform.SetAnchorsAndPosition(TextAnchor.MiddleLeft, TextAnchor.MiddleLeft, 60, 0); flightHeaderText.TopTransform.SetSizeDelta(50, 16); KsmGuiText valueHeaderText = new KsmGuiText(listHeader, "Value", "Remaining science value\naccounting for data retrieved in RnD\nand collected in flight", TextAlignmentOptions.Left); valueHeaderText.TextComponent.color = Lib.KolorToColor(Lib.Kolor.Science); valueHeaderText.TextComponent.fontStyle = FontStyles.Bold; valueHeaderText.TopTransform.SetAnchorsAndPosition(TextAnchor.MiddleLeft, TextAnchor.MiddleLeft, 110, 0); valueHeaderText.TopTransform.SetSizeDelta(50, 16); KsmGuiText completedHeaderText = new KsmGuiText(listHeader, "Completed", "How many times the subject\nhas been retrieved in RnD", TextAlignmentOptions.Left); completedHeaderText.TextComponent.color = Lib.KolorToColor(Lib.Kolor.Yellow); completedHeaderText.TextComponent.fontStyle = FontStyles.Bold; completedHeaderText.TopTransform.SetAnchorsAndPosition(TextAnchor.MiddleLeft, TextAnchor.MiddleLeft, 160, 0); completedHeaderText.TopTransform.SetSizeDelta(100, 16); KsmGuiVerticalScrollView scrollView = new KsmGuiVerticalScrollView(this); scrollView.SetLayoutElement(true, true, 320, -1, -1, 250); scrollView.ContentGroup.padding = new RectOffset(0, 5, 5, 5); BodiesSituationsBiomesSubject subjects = GetSubjectsForExperiment(expInfo); if (subjects != null) { foreach (ObjectPair <int, SituationsBiomesSubject> bodySubjects in GetSubjectsForExperiment(expInfo)) { CelestialBody body = FlightGlobals.Bodies[bodySubjects.Key]; BodyContainer bodyEntry = new BodyContainer(scrollView, body, bodySubjects.Value); BodyContainers.Add(bodyEntry); } } SetUpdateCoroutine(new KsmGuiUpdateCoroutine(Update)); ForceExecuteCoroutine(); ToggleKnownSubjects(true); }
public BodyContainer(KsmGuiBase parent, CelestialBody body, SituationsBiomesSubject situationsAndSubjects) : base(parent) { KsmGuiHeader header = new KsmGuiHeader(this, body.name, KsmGuiStyle.boxColor); header.TextObject.TextComponent.fontStyle = FontStyles.Bold; header.TextObject.TextComponent.color = Lib.KolorToColor(Lib.Kolor.Orange); header.TextObject.TextComponent.alignment = TextAlignmentOptions.Left; bodyToggle = new KsmGuiIconButton(header, Textures.KsmGuiTexHeaderArrowsUp, ToggleBody); bodyToggle.SetIconColor(Lib.Kolor.Orange); bodyToggle.MoveAsFirstChild(); SubjectsContainer = new SubjectsContainer(this, situationsAndSubjects); }