BordersComparisons.cs 3.8 KB

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