MarginEditor.cs 2.4 KB

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