summaryrefslogtreecommitdiff
path: root/Library/PackageCache/com.unity.timeline@1.2.13/Editor/inspectors/TimelineInspectorUtility.cs
diff options
context:
space:
mode:
authorAndrew Lee <alee14498@protonmail.com>2020-08-20 23:40:50 -0400
committerAndrew Lee <alee14498@protonmail.com>2020-08-20 23:40:50 -0400
commit3af4c218c0e70167db23a6303d2af30aff37d2fe (patch)
tree927f29edcf54ab562f40f3d1c6cb69287c7f5980 /Library/PackageCache/com.unity.timeline@1.2.13/Editor/inspectors/TimelineInspectorUtility.cs
parentb6daed0af784f4e9bc13329dd87c671b06ee1c65 (diff)
downloadProject-Sandbox-3af4c218c0e70167db23a6303d2af30aff37d2fe.tar.gz
Project-Sandbox-3af4c218c0e70167db23a6303d2af30aff37d2fe.tar.bz2
Project-Sandbox-3af4c218c0e70167db23a6303d2af30aff37d2fe.zip
Removed a bunch of stuff; Changes
Diffstat (limited to 'Library/PackageCache/com.unity.timeline@1.2.13/Editor/inspectors/TimelineInspectorUtility.cs')
-rw-r--r--Library/PackageCache/com.unity.timeline@1.2.13/Editor/inspectors/TimelineInspectorUtility.cs353
1 files changed, 0 insertions, 353 deletions
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Editor/inspectors/TimelineInspectorUtility.cs b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/inspectors/TimelineInspectorUtility.cs
deleted file mode 100644
index f1c9d4a..0000000
--- a/Library/PackageCache/com.unity.timeline@1.2.13/Editor/inspectors/TimelineInspectorUtility.cs
+++ /dev/null
@@ -1,353 +0,0 @@
-using System;
-using System.Linq;
-using UnityEngine;
-using UnityEngine.Timeline;
-
-namespace UnityEditor.Timeline
-{
- [Flags]
- enum InputEvent
- {
- None = 0,
- DragEnter = 1,
- DragExit = 2,
- Drag = 4,
- KeyboardInput = 8
- }
-
- static class InputEventMethods
- {
- public static bool InputHasBegun(this InputEvent evt)
- {
- return evt == InputEvent.DragEnter || evt == InputEvent.KeyboardInput;
- }
- }
-
- static class TimelineInspectorUtility
- {
- internal static class Styles
- {
- public static readonly GUIContent SecondsPrefix = EditorGUIUtility.TrTextContent("s", "Seconds");
- public static readonly GUIContent FramesPrefix = EditorGUIUtility.TrTextContent("f", "Frames");
- }
-
- public static void TimeField(SerializedProperty property, GUIContent label, bool readOnly, double frameRate, double minValue, double maxValue, ref InputEvent inputEvent)
- {
- var rect = EditorGUILayout.GetControlRect();
- TimeField(rect, property, label, readOnly, frameRate, minValue, maxValue, ref inputEvent);
- }
-
- // Display Time related properties in frames and seconds
- public static void TimeField(Rect rect, SerializedProperty property, GUIContent label, bool readOnly, double frameRate, double minValue, double maxValue, ref InputEvent inputEvent)
- {
- GUIContent title = EditorGUI.BeginProperty(rect, label, property);
- rect = EditorGUI.PrefixLabel(rect, title);
-
- int indentLevel = EditorGUI.indentLevel;
- float labelWidth = EditorGUIUtility.labelWidth;
- EditorGUI.indentLevel = 0;
- EditorGUIUtility.labelWidth = (int)EditorGUI.kMiniLabelW;
- using (new GUIMixedValueScope(property.hasMultipleDifferentValues))
- {
- var secondsRect = new Rect(rect.xMin, rect.yMin, rect.width / 2 - EditorGUI.kSpacingSubLabel, rect.height);
- var framesRect = new Rect(rect.xMin + rect.width / 2, rect.yMin, rect.width / 2, rect.height);
-
- if (readOnly)
- {
- EditorGUI.FloatField(secondsRect, Styles.SecondsPrefix, (float)property.doubleValue, EditorStyles.label);
- }
- else
- {
- EditorGUI.BeginChangeCheck();
- DelayedAndDraggableDoubleField(secondsRect, Styles.SecondsPrefix, property, ref inputEvent);
- if (EditorGUI.EndChangeCheck())
- {
- property.doubleValue = Clamp(property.doubleValue, minValue, maxValue);
- }
- }
-
- if (frameRate > TimeUtility.kTimeEpsilon)
- {
- EditorGUI.BeginChangeCheck();
-
- double time = property.doubleValue;
- int frames = TimeUtility.ToFrames(time, frameRate);
- double exactFrames = TimeUtility.ToExactFrames(time, frameRate);
- bool useIntField = TimeUtility.OnFrameBoundary(time, frameRate);
-
- if (readOnly)
- {
- if (useIntField)
- EditorGUI.IntField(framesRect, Styles.FramesPrefix, frames, EditorStyles.label);
- else
- EditorGUI.DoubleField(framesRect, Styles.FramesPrefix, exactFrames, EditorStyles.label);
- }
- else
- {
- if (useIntField)
- {
- int newFrames = DelayedAndDraggableIntField(framesRect, Styles.FramesPrefix, frames, ref inputEvent);
- time = Math.Max(0, TimeUtility.FromFrames(newFrames, frameRate));
- }
- else
- {
- double newExactFrames = DelayedAndDraggableDoubleField(framesRect, Styles.FramesPrefix, exactFrames, ref inputEvent);
- time = Math.Max(0, TimeUtility.FromFrames((int)Math.Floor(newExactFrames), frameRate));
- }
- }
-
- if (EditorGUI.EndChangeCheck())
- {
- property.doubleValue = Clamp(time, minValue, maxValue);
- }
- }
-
- EditorGUI.indentLevel = indentLevel;
- EditorGUIUtility.labelWidth = labelWidth;
- EditorGUI.EndProperty();
- }
- }
-
- public static double TimeFieldUsingTimeReference(
- GUIContent label, double time, bool readOnly, bool showMixed, double frameRate, double minValue,
- double maxValue, ref InputEvent inputEvent)
- {
- var state = TimelineWindow.instance.state;
- var needsTimeConversion = state != null && state.timeReferenceMode == TimeReferenceMode.Global;
-
- if (needsTimeConversion)
- time = state.editSequence.ToGlobalTime(time);
-
- var t = TimeField(label, time, readOnly, showMixed, frameRate, minValue, maxValue, ref inputEvent);
-
- if (needsTimeConversion)
- t = state.editSequence.ToLocalTime(t);
-
- return t;
- }
-
- public static double DurationFieldUsingTimeReference(
- GUIContent label, double start, double end, bool readOnly, bool showMixed, double frameRate,
- double minValue, double maxValue, ref InputEvent inputEvent)
- {
- var state = TimelineWindow.instance.state;
- var needsTimeConversion = state != null && state.timeReferenceMode == TimeReferenceMode.Global;
-
- if (needsTimeConversion)
- {
- start = state.editSequence.ToGlobalTime(start);
- end = state.editSequence.ToGlobalTime(end);
- }
-
- var duration = end - start;
-
- var t = TimeField(label, duration, readOnly, showMixed, frameRate, minValue, maxValue, ref inputEvent);
-
- end = start + t;
-
- if (needsTimeConversion)
- {
- start = state.editSequence.ToLocalTime(start);
- end = state.editSequence.ToLocalTime(end);
- }
-
- return end - start;
- }
-
- public static double TimeField(Rect rect, GUIContent label, double time, bool readOnly, bool showMixed, double frameRate, double minValue, double maxValue, ref InputEvent inputEvent)
- {
- EditorGUILayout.BeginHorizontal(label, GUIStyle.none);
- rect = EditorGUI.PrefixLabel(rect, label);
-
- int indentLevel = EditorGUI.indentLevel;
- float labelWidth = EditorGUIUtility.labelWidth;
- EditorGUI.indentLevel = 0;
- EditorGUIUtility.labelWidth = (int)EditorGUI.kMiniLabelW;
- using (new GUIMixedValueScope(showMixed))
- {
- var secondsRect = new Rect(rect.xMin, rect.yMin, rect.width / 2 - EditorGUI.kSpacingSubLabel, rect.height);
- var framesRect = new Rect(rect.xMin + rect.width / 2, rect.yMin, rect.width / 2, rect.height);
-
- if (readOnly)
- {
- EditorGUI.FloatField(secondsRect, Styles.SecondsPrefix, (float)time, EditorStyles.label);
- }
- else
- {
- time = DelayedAndDraggableDoubleField(secondsRect, Styles.SecondsPrefix, time, ref inputEvent);
- }
-
- if (frameRate > TimeUtility.kTimeEpsilon)
- {
- int frames = TimeUtility.ToFrames(time, frameRate);
- double exactFrames = TimeUtility.ToExactFrames(time, frameRate);
- bool useIntField = TimeUtility.OnFrameBoundary(time, frameRate);
- if (readOnly)
- {
- if (useIntField)
- EditorGUI.IntField(framesRect, Styles.FramesPrefix, frames, EditorStyles.label);
- else
- EditorGUI.FloatField(framesRect, Styles.FramesPrefix, (float)exactFrames, EditorStyles.label);
- }
- else
- {
- double newTime;
- EditorGUI.BeginChangeCheck();
- if (useIntField)
- {
- int newFrames = DelayedAndDraggableIntField(framesRect, Styles.FramesPrefix, frames, ref inputEvent);
- newTime = Math.Max(0, TimeUtility.FromFrames(newFrames, frameRate));
- }
- else
- {
- double newExactFrames = DelayedAndDraggableDoubleField(framesRect, Styles.FramesPrefix, exactFrames, ref inputEvent);
- newTime = Math.Max(0, TimeUtility.FromFrames((int)Math.Floor(newExactFrames), frameRate));
- }
-
- if (EditorGUI.EndChangeCheck())
- {
- time = newTime;
- }
- }
- }
-
- EditorGUILayout.EndHorizontal();
- EditorGUI.indentLevel = indentLevel;
- EditorGUIUtility.labelWidth = labelWidth;
- }
-
- return Clamp(time, minValue, maxValue);
- }
-
- public static double TimeField(GUIContent label, double time, bool readOnly, bool showMixed, double frameRate, double minValue, double maxValue, ref InputEvent inputEvent)
- {
- var rect = EditorGUILayout.GetControlRect();
- return TimeField(rect, label, time, readOnly, showMixed, frameRate, minValue, maxValue, ref inputEvent);
- }
-
- static InputEvent InputEventType(Rect rect, int id)
- {
- var evt = Event.current;
- switch (evt.GetTypeForControl(id))
- {
- case EventType.MouseDown:
- if (rect.Contains(evt.mousePosition) && evt.button == 0)
- {
- return InputEvent.DragEnter;
- }
- break;
- case EventType.MouseUp:
- if (GUIUtility.hotControl == id)
- {
- return InputEvent.DragExit;
- }
- break;
- case EventType.MouseDrag:
- if (GUIUtility.hotControl == id)
- {
- return InputEvent.Drag;
- }
- break;
- case EventType.KeyDown:
- if (GUIUtility.hotControl == id && evt.keyCode == KeyCode.Escape)
- {
- return InputEvent.DragExit;
- }
- break;
- }
- return InputEvent.None;
- }
-
- static double DelayedAndDraggableDoubleField(Rect rect, GUIContent label, double value, ref InputEvent inputEvent, double dragSensitivity)
- {
- var id = GUIUtility.GetControlID(FocusType.Keyboard);
- var fieldRect = EditorGUI.PrefixLabel(rect, id, label);
- rect.xMax = fieldRect.x;
-
- double refValue = value;
- long dummy = 0;
-
- inputEvent |= InputEventType(rect, id);
-
- EditorGUI.DragNumberValue(rect, id, true, ref refValue, ref dummy, dragSensitivity);
-
- EditorGUI.BeginChangeCheck();
- var result = EditorGUI.DelayedDoubleFieldInternal(fieldRect, GUIContent.none, refValue, EditorStyles.numberField);
- if (EditorGUI.EndChangeCheck())
- inputEvent |= InputEvent.KeyboardInput;
-
- return result;
- }
-
- static int DelayedAndDraggableIntField(Rect rect, GUIContent label, int value, ref InputEvent inputEvent, long dragSensitivity)
- {
- var id = GUIUtility.GetControlID(FocusType.Keyboard);
- var fieldRect = EditorGUI.PrefixLabel(rect, id, label);
- rect.xMax = fieldRect.x;
-
- double dummy = 0.0;
- long refValue = value;
-
- inputEvent |= InputEventType(rect, id);
-
- EditorGUI.DragNumberValue(rect, id, false, ref dummy, ref refValue, dragSensitivity);
-
- EditorGUI.BeginChangeCheck();
- var result = EditorGUI.DelayedIntFieldInternal(fieldRect, GUIContent.none, (int)refValue, EditorStyles.numberField);
- if (EditorGUI.EndChangeCheck())
- inputEvent |= InputEvent.KeyboardInput;
-
- return result;
- }
-
- internal static double DelayedAndDraggableDoubleField(GUIContent label, double value, ref InputEvent action, double dragSensitivity)
- {
- var r = EditorGUILayout.s_LastRect = EditorGUILayout.GetControlRect(false, EditorGUI.kSingleLineHeight);
- return DelayedAndDraggableDoubleField(r, label, value, ref action, dragSensitivity);
- }
-
- static void DelayedAndDraggableDoubleField(Rect rect, GUIContent label, SerializedProperty property, ref InputEvent inputEvent)
- {
- EditorGUI.BeginChangeCheck();
- var newValue = DelayedAndDraggableDoubleField(rect, label, property.doubleValue, ref inputEvent);
- if (EditorGUI.EndChangeCheck())
- property.doubleValue = newValue;
- }
-
- static double DelayedAndDraggableDoubleField(Rect rect, GUIContent label, double value, ref InputEvent inputEvent)
- {
- var dragSensitivity = NumericFieldDraggerUtility.CalculateFloatDragSensitivity(value);
- return DelayedAndDraggableDoubleField(rect, label, value, ref inputEvent, dragSensitivity);
- }
-
- static int DelayedAndDraggableIntField(Rect rect, GUIContent label, int value, ref InputEvent inputEvent)
- {
- var dragSensitivity = NumericFieldDraggerUtility.CalculateIntDragSensitivity(value);
- return DelayedAndDraggableIntField(rect, label, value, ref inputEvent, dragSensitivity);
- }
-
- internal static T Clamp<T>(this T val, T min, T max) where T : IComparable<T>
- {
- if (val.CompareTo(min) < 0) return min;
- if (val.CompareTo(max) > 0) return max;
- return val;
- }
-
- public static Editor GetInspectorForObjects(UnityEngine.Object[] objects)
- {
- // create cached editor throws on assembly reload...
- try
- {
- if (objects.Any(x => x != null))
- {
- var director = TimelineWindow.instance.state.editSequence.director;
- return Editor.CreateEditorWithContext(objects, director, null);
- }
- }
- catch (Exception)
- {}
-
- return null;
- }
- }
-}