SchemeViewer.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #nullable enable
  2. using Terminal.Gui;
  3. namespace UICatalog.Scenarios;
  4. public class SchemeViewer : FrameView
  5. {
  6. public SchemeViewer ()
  7. {
  8. TabStop = TabBehavior.TabStop;
  9. CanFocus = true;
  10. Height = Dim.Auto ();
  11. Width = Dim.Auto ();
  12. VisualRoleViewer? prevRoleViewer = null;
  13. foreach (VisualRole role in Enum.GetValues<VisualRole> ())
  14. {
  15. var roleViewer = new VisualRoleViewer
  16. {
  17. Role = role
  18. };
  19. if (prevRoleViewer is { })
  20. {
  21. roleViewer.Y = Pos.Bottom (prevRoleViewer);
  22. }
  23. base.Add (roleViewer);
  24. prevRoleViewer = roleViewer;
  25. }
  26. }
  27. /// <inheritdoc/>
  28. protected override bool OnSettingSchemeName (in string? currentName, ref string? newName)
  29. {
  30. Title = newName ?? "null";
  31. foreach (VisualRoleViewer v in SubViews.OfType<VisualRoleViewer> ())
  32. {
  33. v.SchemeName = newName;
  34. }
  35. return base.OnSettingSchemeName (in currentName, ref newName);
  36. }
  37. }