CombiningMarks.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using Terminal.Gui;
  2. namespace UICatalog.Scenarios;
  3. [ScenarioMetadata ("Combining Marks", "Illustrates how Unicode Combining Marks work (or don't).")]
  4. [ScenarioCategory ("Text and Formatting")]
  5. public class CombiningMarks : Scenario
  6. {
  7. public override void Main ()
  8. {
  9. Application.Init ();
  10. ConfigurationManager.Themes!.Theme = Theme;
  11. ConfigurationManager.Apply ();
  12. var top = new Toplevel { ColorScheme = Colors.ColorSchemes [TopLevelColorScheme] };
  13. top.DrawContentComplete += (s, e) =>
  14. {
  15. Application.Driver?.Move (0, 0);
  16. Application.Driver?.AddStr ("Terminal.Gui only supports combining marks that normalize. See Issue #2616.");
  17. Application.Driver?.Move (0, 2);
  18. Application.Driver?.AddStr ("\u0301\u0301\u0328<- \"\\u301\\u301\\u328]\" using AddStr.");
  19. Application.Driver?.Move (0, 3);
  20. Application.Driver?.AddStr ("[a\u0301\u0301\u0328]<- \"[a\\u301\\u301\\u328]\" using AddStr.");
  21. Application.Driver?.Move (0, 4);
  22. Application.Driver?.AddRune ('[');
  23. Application.Driver?.AddRune ('a');
  24. Application.Driver?.AddRune ('\u0301');
  25. Application.Driver?.AddRune ('\u0301');
  26. Application.Driver?.AddRune ('\u0328');
  27. Application.Driver?.AddRune (']');
  28. Application.Driver?.AddStr ("<- \"[a\\u301\\u301\\u328]\" using AddRune for each.");
  29. };
  30. Application.Run (top);
  31. top.Dispose ();
  32. Application.Shutdown ();
  33. }
  34. }