SchemeViewer.cs 1.1 KB

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