| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | using System;namespace InABox.Core{    public abstract class DFLayoutField : DFLayoutControl    {        public DFLayoutField()        {        }        [CodeEditor(Editable = Editable.Disabled)]        [EditorSequence(-999)]        public string Name { get; set; }        protected override string GetDescription()        {            return Name;        }        protected override void LoadProperties()        {            base.LoadProperties();            Name = GetProperty("Name", "");        }        protected override void SaveProperties()        {            base.SaveProperties();            SetProperty("Name", Name);        }        public abstract TValue GetPropertyValue<TValue>(string name);        public abstract object? ParseValue(object? value);    }    public class DFLayoutField<T> : DFLayoutField where T : DFLayoutFieldProperties, new()    {        public DFLayoutField()        {            Properties = new T();        }        public T Properties { get; }        public override TValue GetPropertyValue<TValue>(string name)        {            try            {                return (TValue)CoreUtils.GetPropertyValue(Properties, name);            }            catch (Exception)            {                return default;            }        }        public override object? ParseValue(object? value)        {            return Properties.ParseValue(value);        }    }}
 |