LineCanvasExperiment.cs 4.0 KB

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