using System.Collections.Generic; using O5Kit.Control; using O5Kit.Core; using TMPro; namespace ADOFAIRenderer.Util.UI; internal abstract record UIWrapperBase(TextMeshProUGUI? label) { public readonly TextMeshProUGUI? label = label; #pragma warning disable CS0649 public ITweenHandle? tween; #pragma warning restore CS0649 } internal record O5InputFieldWrapper(O5InputField component, TextMeshProUGUI? label) : UIWrapperBase(label) { public readonly O5InputField component = component; public string Value => component.Value; public void Set(string value, bool invoke = true) => component.Set(value, invoke); } internal record O5ToggleWrapper(O5Toggle component, TextMeshProUGUI? label) : UIWrapperBase(label) { public readonly O5Toggle component = component; public bool Value => component.Value; public void Set(bool value, bool invoke = true) => component.Set(value, invoke); } internal record O5DropdownWrapper(O5Dropdown component, TextMeshProUGUI? label) : UIWrapperBase(label) { public readonly O5Dropdown component = component; public T? Value => component.Value; public IReadOnlyList Values => component.Values; public void Set(T? value, bool invoke = true) => component.Set(value, invoke); public void SetValues(IReadOnlyList values) => component.SetValues(values); }