public static void OnClipMenu(ITimelineState state, TimelineClip[] clips, GenericMenu menu)
 {
     if (!(state.currentDirector == null))
     {
         TimelineClip[] array = (from c in clips
                                 where c.asset as AnimationPlayableAsset != null && c.parentTrack.clips.Any((TimelineClip x) => x.start < c.start)
                                 select c).ToArray <TimelineClip>();
         TimelineClip[] array2 = (from c in clips
                                  where c.asset as AnimationPlayableAsset != null && c.parentTrack.clips.Any((TimelineClip x) => x.start > c.start)
                                  select c).ToArray <TimelineClip>();
         if (array.Any <TimelineClip>() || array2.Any <TimelineClip>())
         {
             if (array.Any <TimelineClip>())
             {
                 menu.AddItem(AnimationOffsetMenu.MatchPreviousMenuItem, false, delegate(object x)
                 {
                     AnimationOffsetMenu.MatchClipsToPrevious(state, (TimelineClip[])x);
                 }, array);
             }
             if (array2.Any <TimelineClip>())
             {
                 menu.AddItem(AnimationOffsetMenu.MatchNextMenuItem, false, delegate(object x)
                 {
                     AnimationOffsetMenu.MatchClipsToNext(state, (TimelineClip[])x);
                 }, array2);
             }
             menu.AddItem(AnimationOffsetMenu.ResetOffsetMenuItem, false, delegate
             {
                 AnimationOffsetMenu.ResetClipOffsets(state, clips);
             });
         }
     }
 }
 public override bool Execute(IEnumerable <TimelineClip> clips)
 {
     AnimationOffsetMenu.ResetClipOffsets(clips.Where(TimelineAnimationUtilities.IsAnimationClip).ToArray());
     return(true);
 }
 public override bool Execute(WindowState state, TimelineClip[] items)
 {
     AnimationOffsetMenu.ResetClipOffsets(state, items.Where(TimelineAnimationUtilities.IsAnimationClip).ToArray());
     return(true);
 }