using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Drawing; using System.Text; namespace InABox.Core { public class DFLayoutHeader : DFLayoutControl { [TextBoxEditor] [EditorSequence(-1)] public string Header { get; set; } [CheckBoxEditor] [EditorSequence(0)] public bool Collapsed { get; set; } [EditorSequence("Style", 0)] public DFLayoutTextStyle Style { get; set; } protected override void Init() { base.Init(); Header = ""; Collapsed = false; Style = new DFLayoutTextStyle { IsBold = true }; } protected override string GetDescription() { return $"Header: {Header}"; } protected override void LoadProperties() { base.LoadProperties(); Header = GetProperty("Header", ""); Collapsed = GetProperty("Collapsed", false); Style = Serialization.Deserialize(GetProperty("Style", null)) ?? new DFLayoutTextStyle { IsBold = true }; } protected override void SaveProperties() { base.SaveProperties(); SetProperty("Header", Header); SetProperty("Collapsed", Collapsed); SetProperty("Style", Serialization.Serialize(Style)); } public T GetStyleProperty(string name, T defaultValue) { return GetProperty($"Style.{name}", defaultValue); } public void SetStyleProperty(string name, object? value) { SetProperty($"Style.{name}", value); } } }