mirror of
https://github.com/nsnail/spectre.console.git
synced 2025-06-18 21:08:15 +08:00
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.
This commit is contained in:

committed by
Patrik Svensson

parent
0e0f4b4220
commit
8261b25e5c
@ -1,5 +1,5 @@
|
||||
Title: Bar Chart
|
||||
Order: 1
|
||||
Order: 20
|
||||
---
|
||||
|
||||
Use `BarChart` to render bar charts to the console.
|
||||
|
@ -1,5 +1,5 @@
|
||||
Title: Calendar
|
||||
Order: 3
|
||||
Order: 40
|
||||
RedirectFrom: calendar
|
||||
---
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Title: Canvas Image
|
||||
Order: 6
|
||||
Order: 70
|
||||
---
|
||||
|
||||
To add [ImageSharp](https://github.com/SixLabors/ImageSharp) superpowers to
|
||||
|
@ -1,5 +1,5 @@
|
||||
Title: Canvas
|
||||
Order: 5
|
||||
Order: 60
|
||||
---
|
||||
|
||||
`Canvas` is a widget that allows you to render arbitrary "pixels"
|
||||
|
@ -1,5 +1,5 @@
|
||||
Title: Figlet
|
||||
Order: 4
|
||||
Order: 50
|
||||
RedirectFrom: figlet
|
||||
---
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Title: Rule
|
||||
Order: 2
|
||||
Order: 30
|
||||
RedirectFrom: rule
|
||||
---
|
||||
|
||||
|
70
docs/input/widgets/tree.md
Normal file
70
docs/input/widgets/tree.md
Normal file
@ -0,0 +1,70 @@
|
||||
Title: Tree
|
||||
Order: 10
|
||||
---
|
||||
|
||||
The `Tree` widget can be used to render hierarchical data.
|
||||
|
||||
<img src="../assets/images/tree.png" style="width: 100%;" />
|
||||
|
||||
# Usage
|
||||
|
||||
```csharp
|
||||
// Create the tree
|
||||
var tree = new Tree("Root");
|
||||
|
||||
// Add some nodes
|
||||
var foo = tree.AddNode("[yellow]Foo[/]");
|
||||
var table = foo.AddNode(new Table()
|
||||
.RoundedBorder()
|
||||
.AddColumn("First")
|
||||
.AddColumn("Second")
|
||||
.AddRow("1", "2")
|
||||
.AddRow("3", "4")
|
||||
.AddRow("5", "6"));
|
||||
|
||||
table.AddNode("[blue]Baz[/]");
|
||||
foo.AddNode("Qux");
|
||||
|
||||
var bar = tree.AddNode("[yellow]Bar[/]");
|
||||
bar.AddNode(new Calendar(2020, 12)
|
||||
.AddCalendarEvent(2020, 12, 12)
|
||||
.HideHeader());
|
||||
|
||||
// Render the tree
|
||||
AnsiConsole.Render(root);
|
||||
```
|
||||
|
||||
# Collapsing nodes
|
||||
|
||||
```csharp
|
||||
root.AddNode("Label").Collapsed();
|
||||
```
|
||||
|
||||
# Appearance
|
||||
|
||||
## Style
|
||||
|
||||
```csharp
|
||||
var root = new Tree("Root")
|
||||
.Style("white on red");
|
||||
```
|
||||
|
||||
## Guide lines
|
||||
|
||||
```csharp
|
||||
// ASCII guide lines
|
||||
var root = new Tree("Root")
|
||||
.Guide(TreeGuide.Ascii);
|
||||
|
||||
// Default guide lines
|
||||
var root = new Tree("Root")
|
||||
.Guide(TreeGuide.Line);
|
||||
|
||||
// Double guide lines
|
||||
var root = new Tree("Root")
|
||||
.Guide(TreeGuide.DoubleLine);
|
||||
|
||||
// Bold guide lines
|
||||
var root = new Tree("Root")
|
||||
.Guide(TreeGuide.BoldLine);
|
||||
```
|
Reference in New Issue
Block a user