WindowContentElement.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using System.Diagnostics.CodeAnalysis;
  2. using PixiEditor.Extensions.CommonApi.FlyUI.Events;
  3. using PixiEditor.Extensions.CommonApi.FlyUI.Properties;
  4. using PixiEditor.Extensions.Sdk;
  5. using PixiEditor.Extensions.Sdk.Api.FlyUI;
  6. using PixiEditor.Extensions.Sdk.Api.Window;
  7. namespace FlyUISample;
  8. [SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1118:Parameter should not span multiple lines",
  9. Justification = "FlyUI style")]
  10. public class WindowContentElement : StatelessElement
  11. {
  12. public PopupWindow Window { get; set; }
  13. public override ControlDefinition BuildNative()
  14. {
  15. SizeInputField field = new SizeInputField();
  16. field.SizeChanged += args =>
  17. {
  18. PixiEditorExtension.Api.Logger.Log(field.Value.ToString());
  19. };
  20. Layout layout = new Layout(body:
  21. new Container(margin: Edges.All(25), child:
  22. new Column(
  23. crossAxisAlignment: CrossAxisAlignment.Center,
  24. mainAxisAlignment: MainAxisAlignment.SpaceEvenly,
  25. children:
  26. [
  27. new Center(
  28. new Text(
  29. "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vitae neque nibh. Duis sed pharetra dolor. Donec dui sapien, aliquam id sodales in, ornare et urna. Mauris nunc odio, sagittis eget lectus at, imperdiet ornare quam. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam euismod pellentesque blandit. Vestibulum sagittis, ligula non finibus lobortis, dolor lacus consectetur turpis, id facilisis ligula dolor vitae augue.",
  30. wrap: TextWrap.Wrap,
  31. textStyle: new TextStyle(fontSize: 16))
  32. ),
  33. new Align(
  34. alignment: Alignment.CenterRight,
  35. child: new Text("- Paulo Coelho, The Alchemist (1233)",
  36. textStyle: new TextStyle(fontStyle: FontStyle.Italic))
  37. ),
  38. new Container(
  39. margin: Edges.Symmetric(25, 0),
  40. backgroundColor: Color.FromRgba(25, 25, 25, 255),
  41. child: new Column(
  42. new Image(
  43. "/Pizza.png",
  44. filterQuality: FilterQuality.None,
  45. width: 256, height: 256))
  46. ),
  47. new CheckBox(new Text("heloo"),
  48. onCheckedChanged: args =>
  49. {
  50. PixiEditorExtension.Api.Logger.Log(((CheckBox)args.Sender).IsChecked
  51. ? "Checked"
  52. : "Unchecked");
  53. }),
  54. field,
  55. new Center(
  56. new Button(
  57. child: new Text("Close"), onClick: _ => { Window.Close(); }))
  58. ]
  59. )
  60. )
  61. );
  62. return layout.BuildNative();
  63. }
  64. }