void UnselectCurves()
 {
     if (Event.current.type == EventType.MouseDown)
     {
         if (m_ClipCurveEditor != null)
         {
             m_ClipCurveEditor.SetUpdateCurveCallback(null);
         }
         m_PreviewCurveState = PreviewCurveState.None;
     }
 }
        // Callback when the mixin/mixout properties are clicked on
        void OnMixCurveSelected(string title, CurvePresetLibrary library, SerializedProperty curveSelected, bool easeIn)
        {
            m_PreviewCurveState = easeIn ? PreviewCurveState.MixIn : PreviewCurveState.MixOut;

            m_CurvePresets = library;
            var animationCurve = curveSelected.animationCurveValue;

            m_ClipCurveEditor.headerString = title;
            m_ClipCurveEditor.SetCurve(animationCurve);
            m_ClipCurveEditor.SetSelected(animationCurve);
            if (easeIn)
            {
                m_ClipCurveEditor.SetUpdateCurveCallback(MixInCurveUpdated);
            }
            else
            {
                m_ClipCurveEditor.SetUpdateCurveCallback(MixOutCurveUpdated);
            }
            Repaint();
        }