public GCodeDetailsView(GCodeFile gCodeMemoryFile, PrinterConfig printer, ThemeConfig theme) : base(FlowDirection.TopToBottom) { this.theme = theme; this.gCodeMemoryFile = gCodeMemoryFile; this.printer = printer; // put in the print time AddSetting("Print Time".Localize(), gCodeMemoryFile.EstimatedPrintTime()); // show the filament used AddSetting("Filament Length".Localize(), gCodeMemoryFile.FilamentUsed(printer)); AddSetting("Filament Volume".Localize(), gCodeMemoryFile.FilamentVolume(printer)); // Cost info is only displayed when available - conditionalCostPanel is invisible when cost <= 0 costTextWidget = AddSetting("Estimated Cost".Localize(), gCodeMemoryFile.EstimatedCost(printer)); massTextWidget = AddSetting("Estimated Mass".Localize(), gCodeMemoryFile.EstimatedMass(printer)); conditionalCostContainer = costTextWidget.Parent; conditionalCostContainer.Visible = gCodeMemoryFile.TotalCost(printer) > 0; printer.Settings.SettingChanged += Printer_SettingChanged; }