UnityEditor.ClothInspector.PaintField C# (CSharp) Method

PaintField() private method

private PaintField ( float value, bool &enabled, DrawMode mode ) : float
value float
enabled bool
mode DrawMode
return float
        private float PaintField(float value, ref bool enabled, DrawMode mode)
        {
            bool flag;
            float num;
            GUIContent modeString = this.GetModeString(mode);
            GUILayout.BeginHorizontal(new GUILayoutOption[0]);
            GUILayoutOption[] options = new GUILayoutOption[] { GUILayout.ExpandWidth(false) };
            enabled = GUILayout.Toggle(enabled, s_PaintIcon, "MiniButton", options);
            using (new EditorGUI.DisabledScope(!enabled))
            {
                EditorGUI.BeginChangeCheck();
                flag = EditorGUILayout.Toggle(GUIContent.none, value < float.MaxValue, new GUILayoutOption[0]);
                if (EditorGUI.EndChangeCheck())
                {
                    if (flag)
                    {
                        value = 0f;
                    }
                    else
                    {
                        value = float.MaxValue;
                    }
                    this.drawMode = mode;
                }
                GUILayout.Space(-162f);
                using (new EditorGUI.DisabledScope(!flag))
                {
                    num = value;
                    int keyboardControl = GUIUtility.keyboardControl;
                    EditorGUI.BeginChangeCheck();
                    if (flag)
                    {
                        num = EditorGUILayout.FloatField(modeString, value, new GUILayoutOption[0]);
                    }
                    else
                    {
                        EditorGUILayout.FloatField(modeString, 0f, new GUILayoutOption[0]);
                    }
                    if (num < 0f)
                    {
                        num = 0f;
                    }
                    if (EditorGUI.EndChangeCheck() || (keyboardControl != GUIUtility.keyboardControl))
                    {
                        this.drawMode = mode;
                    }
                }
            }
            if (flag)
            {
                float num3 = this.m_MinVisualizedValue[(int) mode];
                float num4 = this.m_MaxVisualizedValue[(int) mode];
                if ((num4 - num3) > 0f)
                {
                    this.DrawColorBox(null, this.GetGradientColor((value - num3) / (num4 - num3)));
                }
                else
                {
                    this.DrawColorBox(null, this.GetGradientColor((value > num3) ? ((float) 1) : ((float) 0)));
                }
            }
            else
            {
                this.DrawColorBox(null, Color.black);
            }
            GUILayout.EndHorizontal();
            return num;
        }