LineCanvasExperiment.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. using Terminal.Gui;
  2. namespace UICatalog.Scenarios;
  3. [ScenarioMetadata ("LineCanvas Experiments", "Experiments with LineCanvas")]
  4. [ScenarioCategory ("Drawing")]
  5. [ScenarioCategory ("Adornments")]
  6. [ScenarioCategory ("Proof of Concept")]
  7. public class LineCanvasExperiment : Scenario
  8. {
  9. public override void Main ()
  10. {
  11. Application.Init ();
  12. Window app = new ()
  13. {
  14. Title = GetQuitKeyAndName ()
  15. };
  16. var frame1 = new FrameView
  17. {
  18. Title = "LineCanvas Experiments",
  19. X = 0,
  20. Y = 0,
  21. Width = Dim.Fill (),
  22. Height = Dim.Fill (),
  23. ColorScheme = Colors.ColorSchemes ["Base"]
  24. };
  25. frame1.BorderStyle = LineStyle.Double;
  26. //View.Diagnostics ^= DiagnosticFlags.FrameRuler;
  27. app.Add (frame1);
  28. var win1 = new Window
  29. {
  30. Title = "win1",
  31. Text = "Win1 30%/50% Heavy",
  32. X = 20,
  33. Y = 0,
  34. Width = 30, //Dim.Percent (30) - 5,
  35. Height = 10, //Dim.Percent (50) - 5,
  36. //ColorScheme = Colors.ColorSchemes ["Base"],
  37. BorderStyle = LineStyle.Heavy,
  38. SuperViewRendersLineCanvas = true
  39. };
  40. win1.Padding.Thickness = new (1);
  41. frame1.Add (win1);
  42. var win2 = new Window
  43. {
  44. Title = "win2",
  45. Text = "Win2 right of win1, 30%/70% Single.",
  46. X = Pos.Right (win1) - 1,
  47. Y = 0,
  48. Width = Dim.Percent (30),
  49. Height = Dim.Percent (70),
  50. //ColorScheme = Colors.ColorSchemes ["Error"],
  51. SuperViewRendersLineCanvas = true
  52. };
  53. frame1.Add (win2);
  54. var view3 = new FrameView
  55. {
  56. Title = "View 3",
  57. Text = "View3 right of win2 Fill/Fill Single",
  58. X = Pos.Right (win2) - 1,
  59. Y = 0,
  60. Width = Dim.Fill (-1),
  61. Height = Dim.Fill (-1),
  62. SuperViewRendersLineCanvas = true
  63. //ColorScheme = Colors.ColorSchemes ["Menu"],
  64. };
  65. frame1.Add (view3);
  66. var view4 = new FrameView
  67. {
  68. Title = "View 4",
  69. Text = "View4 below win2 win2.Width/5 Single",
  70. X = Pos.Left (win2),
  71. Y = Pos.Bottom (win2) - 1,
  72. Width = win2.Width,
  73. Height = 5,
  74. SuperViewRendersLineCanvas = true
  75. //ColorScheme = Colors.ColorSchemes ["TopLevel"],
  76. };
  77. frame1.Add (view4);
  78. var win5 = new Window
  79. {
  80. Title = "Win 5",
  81. Text = "win5 below View4 view4.Width/5 Double",
  82. X = Pos.Left (win2),
  83. Y = Pos.Bottom (view4) - 1,
  84. Width = view4.Width,
  85. Height = 5,
  86. //ColorScheme = Colors.ColorSchemes ["TopLevel"],
  87. SuperViewRendersLineCanvas = true,
  88. BorderStyle = LineStyle.Double
  89. };
  90. frame1.Add (win5);
  91. var line = new Line
  92. {
  93. X = 1,
  94. Y = 1,
  95. Width = 10,
  96. Height = 1,
  97. Orientation = Orientation.Horizontal,
  98. SuperViewRendersLineCanvas = true
  99. };
  100. frame1.Add (line);
  101. var marginWindow = new Window
  102. {
  103. Title = "Positive Margin",
  104. X = 0,
  105. Y = 8,
  106. Width = 25,
  107. Height = 10,
  108. //ColorScheme = Colors.ColorSchemes ["Error"],
  109. SuperViewRendersLineCanvas = true
  110. };
  111. marginWindow.Margin.ColorScheme = Colors.ColorSchemes ["Dialog"];
  112. marginWindow.Margin.Thickness = new (1);
  113. marginWindow.Border.Thickness = new (1, 2, 1, 1);
  114. frame1.Add (marginWindow);
  115. Application.Run (app);
  116. app.Dispose ();
  117. Application.Shutdown ();
  118. }
  119. }