Patrik Svensson 8261b25e5c Fix tree rendering
Fixes some tree rendering problems where lines were not properly drawn
at some levels during some circumstances.

* Change the API back to only allow one root.
* Now uses a stack based approach to rendering instead of recursion.
* Removes the need for measuring the whole tree in advance.
  Leave this up to each child to render.
2021-01-10 15:55:11 +01:00

22 lines
725 B
C#

using Spectre.Console.Rendering;
namespace Spectre.Console
{
/// <summary>
/// Represents tree guide lines.
/// </summary>
public abstract partial class TreeGuide
{
/// <summary>
/// Gets the safe guide lines or <c>null</c> if none exist.
/// </summary>
public virtual TreeGuide? SafeTreeGuide { get; }
/// <summary>
/// Get the set of characters used to render the corresponding <see cref="TreeGuidePart"/>.
/// </summary>
/// <param name="part">The part of the tree to get rendering string for.</param>
/// <returns>Rendering string for the tree part.</returns>
public abstract string GetPart(TreeGuidePart part);
}
}