summaryrefslogtreecommitdiff
path: root/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Manipulators/Sequence/RectangleSelect.cs
blob: 17342ef5c449107f0f7a024788bf2e8a6e059b27 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System.Linq;
using UnityEngine;

namespace UnityEditor.Timeline
{
    class RectangleSelect : RectangleTool
    {
        protected override bool enableAutoPan { get { return false; } }

        protected override bool CanStartRectangle(Event evt, Vector2 mousePosition, WindowState state)
        {
            if (evt.button != 0 || evt.alt)
                return false;

            return PickerUtils.pickedElements.All(e => e is IRowGUI);
        }

        protected override bool OnFinish(Event evt, WindowState state, Rect rect)
        {
            var selectables = state.spacePartitioner.GetItemsInArea<ISelectable>(rect).ToList();

            if (!selectables.Any())
                return false;

            if (ItemSelection.CanClearSelection(evt))
                SelectionManager.Clear();

            foreach (var selectable in selectables)
            {
                ItemSelection.HandleItemSelection(evt, selectable);
            }

            return true;
        }
    }
}