using UnityEditor;
using UnityEngine;
using XCharts.Runtime;

namespace XCharts.Editor
{
    [CustomPropertyDrawer(typeof(Settings), true)]
    public class SettingsDrawer : BasePropertyDrawer
    {
        public override string ClassName { get { return "Settings"; } }
        public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
        {
            base.OnGUI(pos, prop, label);
            if (MakeComponentFoldout(prop, "m_Show", false, new HeaderMenuInfo("Reset", () =>
                {
                    var chart = prop.serializedObject.targetObject as BaseChart;
                    chart.settings.Reset();
                })))
            {
                ++EditorGUI.indentLevel;
                PropertyField(prop, "m_ReversePainter");
                PropertyField(prop, "m_MaxPainter");
                PropertyField(prop, "m_BasePainterMaterial");
                PropertyField(prop, "m_SeriePainterMaterial");
                PropertyField(prop, "m_TopPainterMaterial");
                PropertyField(prop, "m_LineSmoothStyle");
                PropertyField(prop, "m_LineSmoothness");
                PropertyField(prop, "m_LineSegmentDistance");
                PropertyField(prop, "m_CicleSmoothness");
                PropertyField(prop, "m_LegendIconLineWidth");
                PropertyListField(prop, "m_LegendIconCornerRadius", true);
                --EditorGUI.indentLevel;
            }
        }
    }
}