public static ISelectable HandleSingleSelection(Event evt) { var item = PickerUtils.TopmostPickedItemOfType <ISelectable>(i => i.CanSelect(evt)); 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 CycleMarkers() { var cluster = PickerUtils.TopmostPickedItemOfType <TimelineMarkerClusterGUI>(); if (cluster == null) { return; } cluster.topMarker.Deselect(); cluster.CycleTop(); cluster.topMarker.Select(); }
public static bool CanCycleMarkers() { if (!SelectionManager.SelectedMarkers().Any()) { return(false); } var cluster = PickerUtils.TopmostPickedItemOfType <TimelineMarkerClusterGUI>(); if (cluster == null) { return(false); } // Only cycle if the marker is selected and nothing else is selected return(cluster.topMarker.IsSelected() && SelectionManager.Count() == 1); }