Row.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using PixiEditor.Extensions.CommonApi.FlyUI;
  2. using PixiEditor.Extensions.Sdk.Attributes;
  3. namespace PixiEditor.Extensions.Sdk.Api.FlyUI;
  4. [ControlTypeId("Row")]
  5. public class Row : MultiChildLayoutElement
  6. {
  7. public MainAxisAlignment MainAxisAlignment { get; set; }
  8. public CrossAxisAlignment CrossAxisAlignment { get; set; }
  9. public Row(params LayoutElement[] children)
  10. {
  11. Children = new List<LayoutElement>(children);
  12. MainAxisAlignment = MainAxisAlignment.Start;
  13. CrossAxisAlignment = CrossAxisAlignment.Start;
  14. }
  15. public Row(
  16. MainAxisAlignment mainAxisAlignment = MainAxisAlignment.Start,
  17. CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.Start,
  18. LayoutElement[] children = null, Cursor? cursor = null) : base(cursor)
  19. {
  20. MainAxisAlignment = mainAxisAlignment;
  21. CrossAxisAlignment = crossAxisAlignment;
  22. Children = new List<LayoutElement>(children);
  23. }
  24. protected override ControlDefinition CreateControl()
  25. {
  26. ControlDefinition controlDefinition = new ControlDefinition(UniqueId, GetType());
  27. controlDefinition.AddProperty(MainAxisAlignment);
  28. controlDefinition.AddProperty(CrossAxisAlignment);
  29. controlDefinition.Children.AddRange(Children.Select(x => x.BuildNative()));
  30. return controlDefinition;
  31. }
  32. }