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; } }