diff options
Diffstat (limited to 'Library/PackageCache/com.unity.timeline@1.2.13/Editor/Manipulators/Sequence/SelectAndMoveItem.cs')
| -rw-r--r-- | Library/PackageCache/com.unity.timeline@1.2.13/Editor/Manipulators/Sequence/SelectAndMoveItem.cs | 297 |
1 files changed, 0 insertions, 297 deletions
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Manipulators/Sequence/SelectAndMoveItem.cs b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Manipulators/Sequence/SelectAndMoveItem.cs deleted file mode 100644 index b8d9a77..0000000 --- a/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Manipulators/Sequence/SelectAndMoveItem.cs +++ /dev/null @@ -1,297 +0,0 @@ -using System; -using System.Linq; -using UnityEngine; -using UnityEngine.Timeline; - -namespace UnityEditor.Timeline -{ - class ClearSelection : Manipulator - { - protected override bool MouseDown(Event evt, WindowState state) - { - // If we hit this point this means no one used the mouse down events. We can safely clear the selection if needed - if (evt.button != 0) - return false; - - var window = state.GetWindow(); - - if (!window.sequenceRect.Contains(evt.mousePosition)) - return false; - - if (ItemSelection.CanClearSelection(evt)) - { - SelectionManager.Clear(); - return true; - } - - return false; - } - } - - static class ItemSelection - { - public static bool CanClearSelection(Event evt) - { - return !evt.control && !evt.command && !evt.shift; - } - - public static void RangeSelectItems(ITimelineItem lastItemToSelect) - { - var selectSorted = SelectionManager.SelectedItems().ToList(); - var firstSelect = selectSorted.FirstOrDefault(); - if (firstSelect == null) - { - SelectionManager.Add(lastItemToSelect); - return; - } - - var allTracks = TimelineEditor.inspectedAsset.flattenedTracks; - var allItems = allTracks.SelectMany(ItemsUtils.GetItems).ToList(); - TimelineHelpers.RangeSelect(allItems, selectSorted, lastItemToSelect, SelectionManager.Add, SelectionManager.Remove); - } - - public static ISelectable HandleSingleSelection(Event evt) - { - var item = PickerUtils.PickedLayerableOfType<ISelectable>(); - - if (item != null) - { - var selected = item.IsSelected(); - if (!selected && CanClearSelection(evt)) - SelectionManager.Clear(); - - if (evt.modifiers == EventModifiers.Shift) - { - if (!selected) - RangeSelectItems((item as TimelineItemGUI).item); - } - else - { - HandleItemSelection(evt, item); - } - } - - return item; - } - - public static void HandleItemSelection(Event evt, ISelectable item) - { - if (evt.modifiers == ManipulatorsUtils.actionModifier) - { - if (item.IsSelected()) - item.Deselect(); - else - item.Select(); - } - else - { - if (!item.IsSelected()) - item.Select(); - } - } - } - - class SelectAndMoveItem : Manipulator - { - bool m_Dragged; - SnapEngine m_SnapEngine; - TimeAreaAutoPanner m_TimeAreaAutoPanner; - Vector2 m_MouseDownPosition; - - bool m_HorizontalMovementDone; - bool m_VerticalMovementDone; - - MoveItemHandler m_MoveItemHandler; - bool m_CycleMarkersPending; - - protected override bool MouseDown(Event evt, WindowState state) - { - if (evt.alt || evt.button != 0) - return false; - - m_Dragged = false; - - // Cycling markers and selection are mutually exclusive operations - if (!HandleMarkerCycle() && !HandleSingleSelection(evt)) - return false; - - m_MouseDownPosition = evt.mousePosition; - m_VerticalMovementDone = false; - m_HorizontalMovementDone = false; - - return true; - } - - protected override bool MouseUp(Event evt, WindowState state) - { - if (!m_Dragged) - { - var item = PickerUtils.PickedLayerableOfType<ISelectable>(); - - if (item == null) - return false; - - if (!item.IsSelected()) - return false; - - // Re-selecting an item part of a multi-selection should only keep this item selected. - if (SelectionManager.Count() > 1 && ItemSelection.CanClearSelection(evt)) - { - SelectionManager.Clear(); - item.Select(); - return true; - } - - if (m_CycleMarkersPending) - { - m_CycleMarkersPending = false; - TimelineMarkerClusterGUI.CycleMarkers(); - return true; - } - - return false; - } - - m_TimeAreaAutoPanner = null; - - DropItems(); - - m_SnapEngine = null; - m_MoveItemHandler = null; - - state.Evaluate(); - state.RemoveCaptured(this); - m_Dragged = false; - TimelineCursors.ClearCursor(); - - return true; - } - - protected override bool DoubleClick(Event evt, WindowState state) - { - return MouseDown(evt, state) && MouseUp(evt, state); - } - - protected override bool MouseDrag(Event evt, WindowState state) - { - if (state.editSequence.isReadOnly) - return false; - - // case 1099285 - ctrl-click can cause no clips to be selected - var selectedItemsGUI = SelectionManager.SelectedItems(); - if (!selectedItemsGUI.Any()) - { - m_Dragged = false; - return false; - } - - const float hDeadZone = 5.0f; - const float vDeadZone = 5.0f; - - bool vDone = m_VerticalMovementDone || Math.Abs(evt.mousePosition.y - m_MouseDownPosition.y) > vDeadZone; - bool hDone = m_HorizontalMovementDone || Math.Abs(evt.mousePosition.x - m_MouseDownPosition.x) > hDeadZone; - - m_CycleMarkersPending = false; - - if (!m_Dragged) - { - var canStartMove = vDone || hDone; - - if (canStartMove) - { - state.AddCaptured(this); - m_Dragged = true; - - var referenceTrack = GetTrackDropTargetAt(state, m_MouseDownPosition); - - foreach (var item in selectedItemsGUI) - item.gui.StartDrag(); - - m_MoveItemHandler = new MoveItemHandler(state); - - m_MoveItemHandler.Grab(selectedItemsGUI, referenceTrack, m_MouseDownPosition); - - m_SnapEngine = new SnapEngine(m_MoveItemHandler, m_MoveItemHandler, ManipulateEdges.Both, - state, m_MouseDownPosition); - - m_TimeAreaAutoPanner = new TimeAreaAutoPanner(state); - } - } - - if (!m_VerticalMovementDone) - { - m_VerticalMovementDone = vDone; - - if (m_VerticalMovementDone) - m_MoveItemHandler.OnTrackDetach(); - } - - if (!m_HorizontalMovementDone) - { - m_HorizontalMovementDone = hDone; - } - - if (m_Dragged) - { - if (m_HorizontalMovementDone) - m_SnapEngine.Snap(evt.mousePosition, evt.modifiers); - - if (m_VerticalMovementDone) - { - var track = GetTrackDropTargetAt(state, evt.mousePosition); - m_MoveItemHandler.UpdateTrackTarget(track); - } - - state.Evaluate(); - } - - return true; - } - - public override void Overlay(Event evt, WindowState state) - { - if (!m_Dragged) - return; - - if (m_TimeAreaAutoPanner != null) - m_TimeAreaAutoPanner.OnGUI(evt); - - m_MoveItemHandler.OnGUI(evt); - - if (!m_MoveItemHandler.allowTrackSwitch || m_MoveItemHandler.targetTrack != null) - { - TimeIndicator.Draw(state, m_MoveItemHandler.start, m_MoveItemHandler.end); - m_SnapEngine.OnGUI(); - } - } - - bool HandleMarkerCycle() - { - m_CycleMarkersPending = TimelineMarkerClusterGUI.CanCycleMarkers(); - return m_CycleMarkersPending; - } - - bool HandleSingleSelection(Event evt) - { - return ItemSelection.HandleSingleSelection(evt) != null; - } - - void DropItems() - { - // Order matters here: m_MoveItemHandler.movingItems is destroyed during call to Drop() - foreach (var movingItem in m_MoveItemHandler.movingItems) - { - foreach (var item in movingItem.items) - item.gui.StopDrag(); - } - - m_MoveItemHandler.Drop(); - } - - static TrackAsset GetTrackDropTargetAt(WindowState state, Vector2 point) - { - var track = state.spacePartitioner.GetItemsAtPosition<IRowGUI>(point).FirstOrDefault(); - return track != null ? track.asset : null; - } - } -} |
