BordersComparisons.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. using Terminal.Gui;
  2. namespace UICatalog.Scenarios {
  3. [ScenarioMetadata (Name: "Borders Comparisons", Description: "Compares Window, Toplevel and FrameView borders.")]
  4. [ScenarioCategory ("Layout")]
  5. [ScenarioCategory ("Borders")]
  6. public class BordersComparisons : Scenario {
  7. public override void Init (ColorScheme colorScheme)
  8. {
  9. Application.Init ();
  10. var borderStyle = BorderStyle.Double;
  11. var drawMarginFrame = false;
  12. var borderThickness = new Thickness (1, 2, 3, 4);
  13. var borderBrush = Color.BrightMagenta;
  14. ;
  15. var padding = new Thickness (1, 2, 3, 4);
  16. var background = Color.Cyan;
  17. var effect3D = true;
  18. var win = new Window (new Rect (5, 5, 40, 20), "Test", 8,
  19. new Border () {
  20. BorderStyle = borderStyle,
  21. DrawMarginFrame = drawMarginFrame,
  22. BorderThickness = borderThickness,
  23. BorderBrush = borderBrush,
  24. Padding = padding,
  25. Background = background,
  26. Effect3D = effect3D
  27. });
  28. var tf1 = new TextField ("1234567890") { Width = 10 };
  29. var button = new Button ("Press me!") {
  30. X = Pos.Center (),
  31. Y = Pos.Center (),
  32. };
  33. button.Clicked += () => MessageBox.Query (20, 7, "Hi", "I'm a Window?", "Yes", "No");
  34. var label = new Label ("I'm a Window") {
  35. X = Pos.Center (),
  36. Y = Pos.Center () - 3,
  37. };
  38. var tv = new TextView () {
  39. Y = Pos.AnchorEnd (2),
  40. Width = 10,
  41. Height = Dim.Fill (),
  42. Text = "1234567890"
  43. };
  44. var tf2 = new TextField ("1234567890") {
  45. X = Pos.AnchorEnd (10),
  46. Y = Pos.AnchorEnd (1),
  47. Width = 10
  48. };
  49. win.Add (tf1, button, label, tv, tf2);
  50. Application.Top.Add (win);
  51. var top2 = new Border.ToplevelContainer (new Rect (50, 5, 40, 20),
  52. new Border () {
  53. BorderStyle = borderStyle,
  54. DrawMarginFrame = drawMarginFrame,
  55. BorderThickness = borderThickness,
  56. BorderBrush = borderBrush,
  57. Padding = padding,
  58. Background = background,
  59. Effect3D = effect3D,
  60. Title = "Test2"
  61. }) {
  62. ColorScheme = Colors.Base,
  63. };
  64. var tf3 = new TextField ("1234567890") { Width = 10 };
  65. var button2 = new Button ("Press me!") {
  66. X = Pos.Center (),
  67. Y = Pos.Center (),
  68. };
  69. button2.Clicked += () => MessageBox.Query (20, 7, "Hi", "I'm a Toplevel?", "Yes", "No");
  70. var label2 = new Label ("I'm a Toplevel") {
  71. X = Pos.Center (),
  72. Y = Pos.Center () - 3,
  73. };
  74. var tv2 = new TextView () {
  75. Y = Pos.AnchorEnd (2),
  76. Width = 10,
  77. Height = Dim.Fill (),
  78. Text = "1234567890"
  79. };
  80. var tf4 = new TextField ("1234567890") {
  81. X = Pos.AnchorEnd (10),
  82. Y = Pos.AnchorEnd (1),
  83. Width = 10
  84. };
  85. top2.Add (tf3, button2, label2, tv2, tf4);
  86. Application.Top.Add (top2);
  87. var frm = new FrameView (new Rect (95, 5, 40, 20), "Test3", null,
  88. new Border () {
  89. BorderStyle = borderStyle,
  90. DrawMarginFrame = drawMarginFrame,
  91. BorderThickness = borderThickness,
  92. BorderBrush = borderBrush,
  93. Padding = padding,
  94. Background = background,
  95. Effect3D = effect3D
  96. }) { ColorScheme = Colors.Base };
  97. var tf5 = new TextField ("1234567890") { Width = 10 };
  98. var button3 = new Button ("Press me!") {
  99. X = Pos.Center (),
  100. Y = Pos.Center (),
  101. };
  102. button3.Clicked += () => MessageBox.Query (20, 7, "Hi", "I'm a FrameView?", "Yes", "No");
  103. var label3 = new Label ("I'm a FrameView") {
  104. X = Pos.Center (),
  105. Y = Pos.Center () - 3,
  106. };
  107. var tv3 = new TextView () {
  108. Y = Pos.AnchorEnd (2),
  109. Width = 10,
  110. Height = Dim.Fill (),
  111. Text = "1234567890"
  112. };
  113. var tf6 = new TextField ("1234567890") {
  114. X = Pos.AnchorEnd (10),
  115. Y = Pos.AnchorEnd (1),
  116. Width = 10
  117. };
  118. frm.Add (tf5, button3, label3, tv3, tf6);
  119. Application.Top.Add (frm);
  120. Application.Run ();
  121. }
  122. public override void Run ()
  123. {
  124. // Do nothing
  125. }
  126. }
  127. }