Clean up status related code a bit

This commit is contained in:
Patrik Svensson 2020-12-09 08:23:44 +01:00 committed by Patrik Svensson
parent 501db5d287
commit acf01e056f
12 changed files with 9 additions and 56 deletions

View File

@ -20,11 +20,7 @@ namespace Spectre.Console
throw new ArgumentNullException(nameof(column));
}
if (style != null)
{
column.Style = style;
}
column.Style = style;
return column;
}
}

View File

@ -11,7 +11,7 @@ namespace Spectre.Console.Internal
private IRenderable? _renderable;
private string? _lastStatus;
public override TimeSpan RefreshRate => TimeSpan.FromSeconds(1);
public override TimeSpan RefreshRate => TimeSpan.FromMilliseconds(100);
public StatusFallbackRenderer()
{

View File

@ -54,7 +54,7 @@ namespace Spectre.Console.Rendering
var shape = SegmentShape.Calculate(context, lines);
_shape = _shape == null ? shape : _shape.Value.Inflate(shape);
_shape.Value.SetShape(context, lines);
_shape.Value.Apply(context, ref lines);
foreach (var (_, _, last, line) in lines.Enumerate())
{

View File

@ -620,49 +620,5 @@ namespace Spectre.Console.Rendering
return cells;
}
internal static (int Width, int Height) GetShape(RenderContext context, List<SegmentLine> lines)
{
if (context is null)
{
throw new ArgumentNullException(nameof(context));
}
if (lines is null)
{
throw new ArgumentNullException(nameof(lines));
}
var height = lines.Count;
var width = lines.Max(l => CellCount(context, l));
return (width, height);
}
internal static List<SegmentLine> SetShape(RenderContext context, List<SegmentLine> lines, (int Width, int Height) shape)
{
foreach (var line in lines)
{
var length = CellCount(context, line);
var missing = shape.Width - length;
if (missing > 0)
{
line.Add(new Segment(new string(' ', missing)));
}
}
if (lines.Count < shape.Height)
{
var missing = shape.Height - lines.Count;
for (int i = 0; i < missing; i++)
{
var line = new SegmentLine();
line.Add(new Segment(new string(' ', shape.Width)));
lines.Add(line);
}
}
return lines;
}
}
}

View File

@ -40,7 +40,7 @@ namespace Spectre.Console.Rendering
Math.Max(Height, other.Height));
}
public void SetShape(RenderContext context, List<SegmentLine> lines)
public void Apply(RenderContext context, ref List<SegmentLine> lines)
{
foreach (var line in lines)
{
@ -52,14 +52,15 @@ namespace Spectre.Console.Rendering
}
}
if (lines.Count < Height)
if (lines.Count < Height && Width > 0)
{
var missing = Height - lines.Count;
for (var i = 0; i < missing; i++)
{
var line = new SegmentLine();
line.Add(new Segment(new string(' ', Width)));
lines.Add(line);
lines.Add(new SegmentLine
{
new Segment(new string(' ', Width)),
});
}
}
}