using System; using Spectre.Console.Rendering; namespace Spectre.Console { /// /// A column showing the elapsed time of a task. /// public sealed class ElapsedTimeColumn : ProgressColumn { /// protected internal override bool NoWrap => true; /// /// Gets or sets the style of the remaining time text. /// public Style Style { get; set; } = new Style(foreground: Color.Blue); /// public override IRenderable Render(RenderContext context, ProgressTask task, TimeSpan deltaTime) { var elapsed = task.ElapsedTime; if (elapsed == null) { return new Markup("--:--:--"); } if (elapsed.Value.TotalHours > 99) { return new Markup("**:**:**"); } return new Text($"{elapsed.Value:hh\\:mm\\:ss}", Style ?? Style.Plain); } /// public override int? GetColumnWidth(RenderContext context) { return 8; } } }