demo.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using Terminal;
  2. class Demo {
  3. static void ShowTextAlignments (View container)
  4. {
  5. container.Add (
  6. new Label (new Rect (0, 0, 40, 3), "1-Hello world, how are you doing today") { TextAlignment = TextAlignment.Left },
  7. new Label (new Rect (0, 4, 40, 3), "2-Hello world, how are you doing today") { TextAlignment = TextAlignment.Right },
  8. new Label (new Rect (0, 8, 40, 3), "3-Hello world, how are you doing today") { TextAlignment = TextAlignment.Centered },
  9. new Label (new Rect (0, 12, 40, 3), "4-Hello world, how are you doing today") { TextAlignment = TextAlignment.Justified });
  10. }
  11. static void ShowEntries (View container)
  12. {
  13. container.Add (
  14. new Label (3, 2, "Login: "),
  15. new TextField (14, 2, 40, ""),
  16. new Label (3, 4, "Password: "),
  17. new TextField (14, 4, 40, "") { Secret = true },
  18. new CheckBox (3, 6, "Remember me"),
  19. new RadioGroup (3, 8, new [] { "_Personal", "_Company" }),
  20. new Button (3, 14, "Ok"),
  21. new Button (10, 14, "Cancel"),
  22. new Label (3, 18, "Press ESC and 9 to activate the menubar")
  23. );
  24. }
  25. public static Label ml2;
  26. static void NewFile ()
  27. {
  28. var d = new Dialog (
  29. "New File", 50, 20,
  30. new Button ("Ok", is_default: true ) { Clicked = () => { Application.RequestStop (); } },
  31. new Button ("Cancel") { Clicked = () => { Application.RequestStop (); } });
  32. ml2 = new Label (1, 1, "Mouse Debug Line");
  33. d.Add (ml2);
  34. Application.Run (d);
  35. }
  36. static bool Quit ()
  37. {
  38. var n = MessageBox.Query (50, 5, "Quit Demo", "Are you sure you want to quit this demo?", "Yes", "No");
  39. return n == 0;
  40. }
  41. public static Label ml;
  42. static void Main ()
  43. {
  44. Application.Init ();
  45. var top = Application.Top;
  46. var tframe = top.Frame;
  47. var win = new Window (new Rect (0, 1, tframe.Width, tframe.Height-1), "Hello");
  48. var menu = new MenuBar (new MenuBarItem [] {
  49. new MenuBarItem ("_File", new MenuItem [] {
  50. new MenuItem ("_New", "Creates new file", NewFile),
  51. new MenuItem ("_Open", "", null),
  52. new MenuItem ("_Close", "", null),
  53. new MenuItem ("_Quit", "", () => { if (Quit ()) top.Running = false; })
  54. }),
  55. new MenuBarItem ("_Edit", new MenuItem [] {
  56. new MenuItem ("_Copy", "", null),
  57. new MenuItem ("C_ut", "", null),
  58. new MenuItem ("_Paste", "", null)
  59. })
  60. });
  61. ShowEntries (win);
  62. int count = 0;
  63. ml = new Label (new Rect (3, 16, 50, 1), "Mouse: ");
  64. Application.RootMouseEvent += delegate (MouseEvent me) {
  65. ml.Text = $"Mouse: ({me.X},{me.Y}) - {me.Flags} {count++}";
  66. };
  67. win.Add (ml);
  68. // ShowTextAlignments (win);
  69. top.Add (win);
  70. top.Add (menu);
  71. Application.Run ();
  72. }
  73. }