internal static void DoCurveField(Rect position, CubicBezierCurve curve, Color color, SerializedProperty property)
        {
            int   id      = GUIUtility.GetControlID(EditorGUIUtility.native, position);
            Event current = Event.current;

            position.width  = Mathf.Max(position.width, 2f);
            position.height = Mathf.Max(position.height, 2f);

            //TODO - update open curve editor window

            EventType typeForControl = current.GetTypeForControl(id);

            switch (typeForControl)
            {
            case EventType.KeyDown:

                break;

            case EventType.Repaint:
                Rect position1 = position;
                ++position1.y;
                --position1.height;
                SPEditorGUI.DrawCurveSwatch(position1, curve, color, Color.gray);
                //EditorStyles.colorPickerBox.Draw(position1, GUIContent.none, id, false);
                break;

            case EventType.mouseDown:
                if (position.Contains(current.mousePosition))
                {
                    //TODO - show CubicBezierCurveEditorWindow

                    current.Use();
                    GUIUtility.ExitGUI();
                }
                break;
            }
        }