public void OnEnable()
        {
            m_ClipCurveEditor = new ClipInspectorCurveEditor();

            m_SelectionCache = new List <EditorClipSelection>();
            var selectedClips = new List <TimelineClip>();

            foreach (var editorClipObject in targets)
            {
                var editorClip = editorClipObject as EditorClip;
                if (editorClip != null)
                {
                    //all selected clips should have the same TimelineAsset
                    if (!IsTimelineAssetValidForEditorClip(editorClip))
                    {
                        m_SelectionCache.Clear();
                        return;
                    }
                    m_SelectionCache.Add(new EditorClipSelection(editorClip));
                    selectedClips.Add(editorClip.clip);
                }
            }

            InitializeProperties();
            m_SelectionInfo = new ClipInspectorSelectionInfo(selectedClips);

            if (m_SelectionInfo.selectedAssetTypesAreHomogeneous)
            {
                var selectedAssets = m_SelectionCache.Select(e => e.clip.asset).ToArray();
                m_SelectedPlayableAssetsInspector = TimelineInspectorUtility.GetInspectorForObjects(selectedAssets);
            }

            m_MultiselectionHeaderTitle = m_SelectionCache.Count + " " + Styles.MultipleSelectionTitle.text;
            m_ClipAssetTitle.text       = PlayableAssetSectionTitle();
        }
 public void OnEnable()
 {
     this.m_ClipCurveEditor = new ClipInspectorCurveEditor();
     this.m_DefaultIcon     = EditorGUIUtility.FindTexture("DefaultAsset Icon");
     this.m_SelectionCache  = new List <ClipInspector.EditorClipSelection>();
     Object[] targets = base.get_targets();
     for (int i = 0; i < targets.Length; i++)
     {
         Object     @object    = targets[i];
         EditorClip editorClip = @object as EditorClip;
         if (editorClip != null)
         {
             if (!this.IsTimelineAssetValidForEditorClip(editorClip))
             {
                 this.m_SelectionCache.Clear();
                 return;
             }
             this.m_SelectionCache.Add(new ClipInspector.EditorClipSelection(editorClip));
         }
     }
     this.m_SelectionInfo = this.BuildSelectionInfo();
     if (this.m_SelectionInfo.selectedAssetTypesAreHomogeneous)
     {
         Object[] objects = (from e in this.m_SelectionCache
                             select e.clip.asset).ToArray <Object>();
         this.m_SelectedPlayableAssetsInspector = TimelineInspectorUtility.GetInspectorForObjects(objects);
     }
     this.m_MultiselectionHeaderTitle = this.m_SelectionCache.Count + " " + ClipInspector.Styles.MultipleSelectionTitle.get_text();
     this.m_ClipAssetTitle.set_text(this.PlayableAssetSectionTitle());
     this.InitializeProperties();
 }
        public static void CurveField(GUIContent title, SerializedProperty property, Action <SerializedProperty> onClick)
        {
            Rect controlRect = EditorGUILayout.GetControlRect(new GUILayoutOption[]
            {
                GUILayout.MinWidth(20f)
            });

            EditorGUI.BeginProperty(controlRect, title, property);
            ClipInspectorCurveEditor.DrawCurve(controlRect, property, onClick, EditorGUI.kCurveColor, EditorGUI.kCurveBGColor);
            EditorGUI.EndProperty();
        }
 private void DrawBlendCurve(GUIContent title, SerializedProperty modeProperty, SerializedProperty curveProperty, Action <SerializedProperty> onCurveClick)
 {
     EditorGUILayout.BeginHorizontal(new GUILayoutOption[0]);
     EditorGUILayout.PropertyField(modeProperty, title, new GUILayoutOption[0]);
     if (this.hasMultipleSelection)
     {
         GUILayout.FlexibleSpace();
     }
     else
     {
         using (new EditorGUI.DisabledScope(modeProperty.get_intValue() != 1))
         {
             ClipInspectorCurveEditor.CurveField(GUIContent.none, curveProperty, onCurveClick);
         }
     }
     EditorGUILayout.EndHorizontal();
 }
        void DrawBlendCurve(GUIContent title, SerializedProperty modeProperty, SerializedProperty curveProperty, Action <SerializedProperty> onCurveClick)
        {
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.PropertyField(modeProperty, title);
            if (hasMultipleSelection)
            {
                GUILayout.FlexibleSpace();
            }
            else
            {
                using (new EditorGUI.DisabledScope(modeProperty.intValue != (int)TimelineClip.BlendCurveMode.Manual))
                {
                    ClipInspectorCurveEditor.CurveField(GUIContent.none, curveProperty, onCurveClick);
                }
            }

            EditorGUILayout.EndHorizontal();
        }
 private void DrawLegend(Rect r)
 {
     if (this.m_CurveWrappers != null && this.m_CurveWrappers.Length != 0)
     {
         Color color = GUI.get_color();
         float num   = r.get_width() / (float)this.m_CurveWrappers.Length;
         for (int i = 0; i < this.m_CurveWrappers.Length; i++)
         {
             CurveWrapper curveWrapper = this.m_CurveWrappers[i];
             if (curveWrapper != null)
             {
                 Rect  rect   = new Rect(r.get_x() + (float)i * num, r.get_y(), num, r.get_height());
                 Color color2 = curveWrapper.color;
                 color2.a = 1f;
                 GUI.set_color(color2);
                 string text = ClipInspectorCurveEditor.LabelName(curveWrapper.binding.propertyName);
                 EditorGUI.LabelField(rect, text, this.m_LegendStyle);
             }
         }
         GUI.set_color(color);
     }
 }