Column.cs 1.3 KB

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