MarginEditor.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #nullable enable
  2. namespace UICatalog.Scenarios;
  3. public class MarginEditor : AdornmentEditor
  4. {
  5. public MarginEditor ()
  6. {
  7. Title = "_Margin";
  8. Initialized += MarginEditor_Initialized;
  9. AdornmentChanged += MarginEditor_AdornmentChanged;
  10. }
  11. private OptionSelector<ShadowStyle>? _optionsShadow;
  12. private FlagSelector? _flagSelectorTransparent;
  13. private void MarginEditor_AdornmentChanged (object? sender, EventArgs e)
  14. {
  15. if (AdornmentToEdit is { })
  16. {
  17. _optionsShadow!.Value = ((Margin)AdornmentToEdit).ShadowStyle;
  18. }
  19. if (AdornmentToEdit is { })
  20. {
  21. _flagSelectorTransparent!.Value = (int)((Margin)AdornmentToEdit).ViewportSettings;
  22. }
  23. }
  24. private void MarginEditor_Initialized (object? sender, EventArgs e)
  25. {
  26. _optionsShadow = new ()
  27. {
  28. X = 0,
  29. Y = Pos.Bottom (SubViews.ElementAt (SubViews.Count - 1)),
  30. SuperViewRendersLineCanvas = true,
  31. Title = "_Shadow",
  32. BorderStyle = LineStyle.Single,
  33. AssignHotKeys = true
  34. };
  35. if (AdornmentToEdit is { })
  36. {
  37. _optionsShadow.Value = ((Margin)AdornmentToEdit).ShadowStyle;
  38. }
  39. _optionsShadow.ValueChanged += (_, args) => ((Margin)AdornmentToEdit!).ShadowStyle = args.Value!.Value;
  40. Add (_optionsShadow);
  41. _flagSelectorTransparent = new FlagSelector<ViewportSettingsFlags>
  42. {
  43. X = 0,
  44. Y = Pos.Bottom (_optionsShadow),
  45. SuperViewRendersLineCanvas = true,
  46. Title = "_ViewportSettings",
  47. BorderStyle = LineStyle.Single
  48. };
  49. _flagSelectorTransparent.Values = [(int)ViewportSettingsFlags.Transparent, (int)ViewportSettingsFlags.TransparentMouse];
  50. _flagSelectorTransparent.Labels = ["Transparent", "TransparentMouse"];
  51. _flagSelectorTransparent.AssignHotKeys = true;
  52. Add (_flagSelectorTransparent);
  53. if (AdornmentToEdit is { })
  54. {
  55. _flagSelectorTransparent.Value = (int)((Margin)AdornmentToEdit).ViewportSettings;
  56. }
  57. _flagSelectorTransparent.ValueChanged += (_, args) => { ((Margin)AdornmentToEdit!).ViewportSettings = (ViewportSettingsFlags)args.Value!; };
  58. }
  59. }