using System;
using UnityEngine;

namespace UnityEditor.Rendering
{
    [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
    public sealed class VolumeParameterDrawerAttribute : Attribute
    {
        public readonly Type parameterType;

        public VolumeParameterDrawerAttribute(Type parameterType)
        {
            this.parameterType = parameterType;
        }
    }

    // Default parameter drawer - simply displays the serialized property as Unity would
    public abstract class VolumeParameterDrawer
    {
        // Override this and return false if you want to customize the override checkbox position,
        // else it'll automatically draw it and put the property content in a horizontal scope.
        public virtual bool IsAutoProperty()
        {
            return true;
        }

        // Return false is the input parameter is invalid - unity will display the default editor
        // for this control then
        public abstract bool OnGUI(SerializedDataParameter parameter, GUIContent title);
    }
}
