Files
Terminal.Gui/UICatalog/Scenarios/LineCanvasExperiment.cs
Nutzzz 1bc25900e7 Add additional LineStyles (#2533)
* Add additional LineStyles

* Fix WizardTests because of renamed runes

* BorderFrame -> Border

* Fix the layout of Border Scenarios

* Fix for LineCanvas clipping

Based on comment https://github.com/gui-cs/Terminal.Gui/pull/2533#issuecomment-1508982468

* Update LineCanvasTests.cs

* Rename Thick border to Heavy

(less confusion with "Thickness")
Also:
* Add a few more runes for potential future use
* Fix Unit Tests

* Fix LineDrawing scenario to use 1 unit longer lines (matching new LineCanvas API).

* Fix LineDrawing scenario to better match mouse cursor location

---------

Co-authored-by: tznind <tznind@dundee.ac.uk>
2023-04-17 09:31:45 -06:00

136 lines
3.3 KiB
C#

using System;
using Terminal.Gui;
using System.Linq;
namespace UICatalog.Scenarios {
[ScenarioMetadata (Name: "LineCanvas Experiments", Description: "Experiments with LineCanvas")]
[ScenarioCategory ("LineCanvas")]
public class LineCanvasExperiment : Scenario {
public override void Init ()
{
Application.Init ();
}
/// <summary>
/// Setup the scenario.
/// </summary>
public override void Setup ()
{
//var menu = new MenuBar (new MenuBarItem [] {
//new MenuBarItem ("_File", new MenuItem [] {
// new MenuItem ("_Quit", "", () => Application.RequestStop()),
//}) });
//Application.Top.Add (menu);
var frame1 = new FrameView () {
Title = "LineCanvas Experiments",
X = 0,
Y = 0,
Width = Dim.Fill (),
Height = Dim.Fill (),
ColorScheme = Colors.ColorSchemes ["Base"],
};
frame1.BorderStyle = LineStyle.Double;
//ConsoleDriver.Diagnostics ^= ConsoleDriver.DiagnosticFlags.FrameRuler;
Application.Top.Add (frame1);
var win1 = new Window () {
AutoSize = false,
Title = "win1",
Text = "Win1 30%/50% Heavy",
X = 20,
Y = 0,
Width = 30, //Dim.Percent (30) - 5,
Height = 10, //Dim.Percent (50) - 5,
//ColorScheme = Colors.ColorSchemes ["Base"],
BorderStyle = LineStyle.Heavy,
SuperViewRendersLineCanvas = true
};
win1.Padding.Thickness = new Thickness (1);
frame1.Add (win1);
var win2 = new Window () {
Title = "win2",
Text = "Win2 right of win1, 30%/70% Single.",
X = Pos.Right (win1) - 1,
Y = 0,
Width = Dim.Percent (30),
Height = Dim.Percent (70),
//ColorScheme = Colors.ColorSchemes ["Error"],
SuperViewRendersLineCanvas = true
};
frame1.Add (win2);
var view3 = new FrameView () {
Title = "View 3",
Text = "View3 right of win2 Fill/Fill Single",
X = Pos.Right (win2) - 1,
Y = 0,
Width = Dim.Fill (-1),
Height = Dim.Fill (-1),
SuperViewRendersLineCanvas = true,
//ColorScheme = Colors.ColorSchemes ["Menu"],
};
frame1.Add (view3);
var view4 = new FrameView () {
Title = "View 4",
Text = "View4 below win2 win2.Width/5 Single",
X = Pos.Left (win2),
Y = Pos.Bottom (win2) - 1,
Width = win2.Width,
Height = 5,
SuperViewRendersLineCanvas = true,
//ColorScheme = Colors.ColorSchemes ["TopLevel"],
};
frame1.Add (view4);
var win5 = new Window () {
Title = "Win 5",
Text = "win5 below View4 view4.Width/5 Double",
X = Pos.Left (win2),
Y = Pos.Bottom (view4) - 1,
Width = view4.Width,
Height = 5,
//ColorScheme = Colors.ColorSchemes ["TopLevel"],
SuperViewRendersLineCanvas = true,
BorderStyle = LineStyle.Double
};
frame1.Add (win5);
var line = new Line () {
X = 1,
Y = 1,
Width = 10,
Height = 1,
Orientation = Orientation.Horizontal,
SuperViewRendersLineCanvas = true
};
frame1.Add (line);
var marginWindow = new Window () {
Title = "Positive Margin",
X = 0,
Y = 8,
Width = 25,
Height = 10,
//ColorScheme = Colors.Error,
SuperViewRendersLineCanvas = true
};
marginWindow.Margin.ColorScheme = Colors.Dialog;
marginWindow.Margin.Thickness = new Thickness (1);
marginWindow.Border.Thickness = new Thickness (1,2,1,1);
frame1.Add (marginWindow);
}
}
}