| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | 
							- using UnityEditor;
 
- using UnityEngine;
 
- namespace MPUIKIT.Editor {
 
-     [CustomPropertyDrawer(typeof(Rectangle))]
 
-     public class RectanglePropertyDrawer : PropertyDrawer{
 
-         public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) {
 
-             EditorGUI.BeginProperty(position, label, property);
 
-             {
 
-                 Rect LabelRect = new Rect(position.x, position.y, position.width, EditorGUIUtility.singleLineHeight);
 
-                 Rect RadiusVectorRect = new Rect(position.x, 
 
-                     position.y + EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing, 
 
-                     position.width, EditorGUIUtility.singleLineHeight);
 
-                 
 
-                 SerializedProperty uniform = property.FindPropertyRelative("m_UniformCornerRadius");
 
-                 SerializedProperty radius = property.FindPropertyRelative("m_CornerRadius");
 
-                 
 
-                 MPEditorUtility.CornerRadiusModeGUI(LabelRect, ref uniform, new []{"Free", "Uniform"});
 
-                 float floatVal = radius.vector4Value.x;
 
-                 Vector4 vectorValue = radius.vector4Value;
 
-                 float[] zw = new[] {vectorValue.w, vectorValue.z};
 
-                 float[] xy = new[] {vectorValue.x, vectorValue.y};
 
-                 
 
-                 EditorGUI.BeginChangeCheck();
 
-                 {
 
-                     EditorGUI.showMixedValue = radius.hasMultipleDifferentValues;
 
-                     if (uniform.boolValue) {
 
-                         floatVal = EditorGUI.FloatField(RadiusVectorRect, "Uniform Radius", floatVal);
 
-                     }
 
-                     else {
 
-                         
 
-                         
 
-                         EditorGUI.MultiFloatField(RadiusVectorRect, new [] {
 
-                             new GUIContent("W"), new GUIContent("Z")}, zw );
 
-                         RadiusVectorRect.y +=
 
-                             EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
 
-                         EditorGUI.MultiFloatField(RadiusVectorRect, new [] {
 
-                             new GUIContent("X "), new GUIContent("Y")}, xy );
 
-                     }
 
-                     EditorGUI.showMixedValue = false;
 
-                 }
 
-                 if (EditorGUI.EndChangeCheck()) {
 
-                     radius.vector4Value = uniform.boolValue 
 
-                         ? new Vector4(floatVal, floatVal, floatVal, floatVal) 
 
-                         : new Vector4(xy[0], xy[1], zw[1], zw[0]);
 
-                 }
 
-             }
 
-             EditorGUI.EndProperty();
 
-         }
 
-         public override float GetPropertyHeight(SerializedProperty property, GUIContent label) {
 
-             if (property.FindPropertyRelative("m_UniformCornerRadius").boolValue) {
 
-                 return EditorGUIUtility.singleLineHeight * 2 + EditorGUIUtility.standardVerticalSpacing;
 
-             }
 
-             return EditorGUIUtility.singleLineHeight * 3 + EditorGUIUtility.standardVerticalSpacing * 2;
 
-         }
 
-     }
 
- }
 
 
  |