﻿using UnityEngine;
using UnityEditor;

namespace ExternPropertyAttributes.Editor
{
	[CustomPropertyDrawer(typeof(ReadOnlyAttribute))]
	public class ReadOnlyPropertyDrawer : PropertyDrawerBase
	{
		protected override float GetPropertyHeight_Internal(SerializedProperty property, GUIContent label)
		{
			return GetPropertyHeight(property);
		}

		protected override void OnGUI_Internal(Rect rect, SerializedProperty property, GUIContent label)
		{
			EditorGUI.BeginProperty(rect, label, property);

			using (new EditorGUI.DisabledScope(disabled: true))
			{
				EditorGUI.PropertyField(rect, property, label, true);
			}

			EditorGUI.EndProperty();
		}
	}
}