using System; using Terminal.Gui; using Terminal.Gui.Graphs; namespace UICatalog.Scenarios { [ScenarioMetadata (Name: "Drawing", Description: "Demonstrates StraightLineCanvas.")] [ScenarioCategory ("Controls")] [ScenarioCategory ("Layout")] public class Drawing : Scenario { public override void Setup () { var canvas = new DrawingPanel { Width = Dim.Fill (), Height = Dim.Fill () }; Win.Add(canvas); } class DrawingPanel : View { StraightLineCanvas canvas; Point? currentLineStart = null; public DrawingPanel () { canvas = new StraightLineCanvas (Application.Driver); } public override void Redraw (Rect bounds) { base.Redraw (bounds); var runes = canvas.GenerateImage (bounds); for(int y=0;y Math.Abs(start.Y - end.Y)) { orientation = Orientation.Horizontal; length = end.X - start.X; } canvas.AddLine (start, length, orientation, BorderStyle.Single); currentLineStart = null; SetNeedsDisplay (); } } return base.OnMouseEvent (mouseEvent); } } } }