private async void Display(HistoryList hl) { pictureBox.ClearImageList(); current_historylist = hl; if (hl != null && hl.Count > 0) // just for safety { List <HistoryEntry> result = current_historylist.LatestFirst(); // Standard filtering int ftotal; // event filter result = HistoryList.FilterByJournalEvent(result, GetSetting(dbFilter, "All"), out ftotal); result = FilterHelpers.FilterHistory(result, fieldfilter, discoveryform.Globals, out ftotal); // and the field filter.. RevertToNormalSize(); // ensure size is back to normal.. scanpostextoffset = new Point(0, 0); // left/ top used by scan display Color textcolour = IsTransparent ? discoveryform.theme.SPanelColor : discoveryform.theme.LabelColor; Color backcolour = IsTransparent ? (Config(Configuration.showBlackBoxAroundText) ? Color.Black : Color.Transparent) : this.BackColor; bool drawnnootherstuff = DrawScanText(true, textcolour, backcolour); // go 1 for some of the scan positions if (!drawnnootherstuff) // and it may indicate its overwriting all stuff, which is fine { int rowpos = scanpostextoffset.Y; int rowmargin = displayfont.ScalePixels(4); // Check if need to hide the UI var ts = hl.CurrentTravelState(); if (Config(Configuration.showNothingWhenDocked) && (ts == HistoryEntryStatus.TravelStateType.Docked)) { if (!Config(Configuration.showNoTitleWhenHidden)) { AddColText(0, 0, rowpos, "<>", textcolour, backcolour, null); // just show a marker } } else if (uistate != EliteDangerousCore.UIEvents.UIGUIFocus.Focus.NoFocus && Config(Configuration.showNothingWhenPanel)) { if (!Config(Configuration.showNoTitleWhenHidden)) { AddColText(0, 0, rowpos, uistate.ToString().SplitCapsWord(), textcolour, backcolour, null); } } else { string name; Point3D tpos; bool targetpresent = TargetClass.GetTargetPosition(out name, out tpos); ISystem currentsystem = hl.CurrentSystem(); // may be null HistoryEntry last = hl.GetLast; // last = hl.FindByName("Myeia Thaa QY-H c23-0"); if (Config(Configuration.showSystemInformation) && last != null) { string allegiance, economy, gov, faction, factionstate, security; hl.ReturnSystemInfo(last, out allegiance, out economy, out gov, out faction, out factionstate, out security); string str = last.System.Name + " : " + BaseUtils.FieldBuilder.Build( "", faction, "", factionstate, "", security, "", allegiance, "", economy, "", gov ); HistoryEntry lastfsd = hl.GetLastHistoryEntry(x => x.journalEntry is EliteDangerousCore.JournalEvents.JournalFSDJump, last); bool firstdiscovery = (lastfsd != null && (lastfsd.journalEntry as EliteDangerousCore.JournalEvents.JournalFSDJump).EDSMFirstDiscover); rowpos = rowmargin + AddColText(0, 0, rowpos, str, textcolour, backcolour, null, firstdiscovery ? EDDiscovery.Icons.Controls.firstdiscover : null, "Shows if EDSM indicates your it's first discoverer").Location.Bottom; } if (Config(Configuration.showHabInformation) && last != null) { StarScan scan = hl.StarScan; StarScan.SystemNode sn = await scan.FindSystemAsync(last.System, true); // EDSM look up here.. StringBuilder res = new StringBuilder(); if (sn != null && sn.StarNodes.Count > 0 && sn.StarNodes.Values[0].ScanData != null) { JournalScan js = sn.StarNodes.Values[0].ScanData; if (showCircumstellarZonesToolStripMenuItem.Checked) { string hz = js.CircumstellarZonesString(false, JournalScan.CZPrint.CZHab); res.AppendFormat(hz + Environment.NewLine); } if (showMetalRichPlanetsToolStripMenuItem.Checked) { string hz = js.CircumstellarZonesString(false, JournalScan.CZPrint.CZMR); res.AppendFormat(hz + Environment.NewLine); } if (showWaterWorldsToolStripMenuItem.Checked) { string hz = js.CircumstellarZonesString(false, JournalScan.CZPrint.CZWW); res.AppendFormat(hz + Environment.NewLine); } if (showEarthLikeToolStripMenuItem.Checked) { string hz = js.CircumstellarZonesString(false, JournalScan.CZPrint.CZEL); res.AppendFormat(hz + Environment.NewLine); } if (showAmmoniaWorldsToolStripMenuItem.Checked) { string hz = js.CircumstellarZonesString(false, JournalScan.CZPrint.CZAW); res.AppendFormat(hz + Environment.NewLine); } if (showIcyPlanetsToolStripMenuItem.Checked) { string hz = js.CircumstellarZonesString(false, JournalScan.CZPrint.CZIP); res.AppendFormat(hz + Environment.NewLine); } } if (res.ToString().HasChars()) { rowpos = rowmargin + AddColText(0, 0, rowpos, res.ToString(), textcolour, backcolour, null).Location.Bottom; } } if (targetpresent && Config(Configuration.showTargetLine) && currentsystem != null) { string dist = (currentsystem.HasCoordinate) ? currentsystem.Distance(tpos.X, tpos.Y, tpos.Z).ToString("0.00") : "Unknown".T(EDTx.Unknown); rowpos = rowmargin + AddColText(0, 0, rowpos, "Target".T(EDTx.UserControlSpanel_Target) + ": " + name + " @ " + dist + " ly", textcolour, backcolour, null).Location.Bottom; } foreach (HistoryEntry rhe in result) { rowpos = rowmargin + DrawHistoryEntry(rhe, rowpos, tpos, textcolour, backcolour); if (rowpos > ClientRectangle.Height) // stop when off of screen { break; } } } } DrawScanText(false, textcolour, backcolour); // go 2 } pictureBox.Render(); }