BordersComparisons.cs 3.7 KB

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