DFLayoutControl.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System;
  2. namespace InABox.Core
  3. {
  4. public abstract class DFLayoutControl : DFLayoutObject, ISequenceable
  5. {
  6. [IntegerEditor]
  7. [EditorSequence(1)]
  8. public int Row { get; set; } = 1;
  9. [IntegerEditor]
  10. [EditorSequence(2)]
  11. public int RowSpan { get; set; } = 1;
  12. [EnumLookupEditor(typeof(DFLayoutAlignment))]
  13. [EditorSequence(3)]
  14. public DFLayoutAlignment VerticalAlignment { get; set; } = DFLayoutAlignment.Stretch;
  15. [IntegerEditor]
  16. [EditorSequence(4)]
  17. public int Column { get; set; } = 1;
  18. [IntegerEditor]
  19. [EditorSequence(5)]
  20. public int ColumnSpan { get; set; } = 1;
  21. [EnumLookupEditor(typeof(DFLayoutAlignment))]
  22. [EditorSequence(6)]
  23. public DFLayoutAlignment HorizontalAlignment { get; set; } = DFLayoutAlignment.Stretch;
  24. [TextBoxEditor(Visible = Visible.Default, Editable = Editable.Hidden)]
  25. [DoNotSerialize]
  26. public string Description => GetDescription();
  27. [NullEditor]
  28. public long Sequence { get; set; }
  29. protected virtual string GetDescription()
  30. {
  31. return GetType().Name;
  32. }
  33. protected override void LoadProperties()
  34. {
  35. Row = GetProperty(nameof(Row), 1);
  36. RowSpan = GetProperty(nameof(RowSpan), 1);
  37. VerticalAlignment = GetProperty(nameof(VerticalAlignment), DFLayoutAlignment.Middle);
  38. Column = GetProperty(nameof(Column), 1);
  39. ColumnSpan = GetProperty(nameof(ColumnSpan), 1);
  40. HorizontalAlignment = GetProperty(nameof(HorizontalAlignment), DFLayoutAlignment.Middle);
  41. Sequence = GetProperty(nameof(Sequence), DateTime.Now.Ticks);
  42. }
  43. protected override void SaveProperties()
  44. {
  45. SetProperty(nameof(Row), Row);
  46. SetProperty(nameof(RowSpan), RowSpan);
  47. SetProperty(nameof(VerticalAlignment), VerticalAlignment);
  48. SetProperty(nameof(Column), Column);
  49. SetProperty(nameof(ColumnSpan), ColumnSpan);
  50. SetProperty(nameof(HorizontalAlignment), HorizontalAlignment);
  51. SetProperty(nameof(Sequence), Sequence);
  52. }
  53. }
  54. }