public static void SetShowInlineCurves(TrackAsset track, bool inlineOn) { if (!(track == null)) { TimelineWindowViewPrefs.GetTrackViewModelData(track).showInlineCurves = inlineOn; } }
public static TrackViewModelData GetTrackViewModelData(TrackAsset track) { TrackViewModelData result; if (track == null) { result = new TrackViewModelData(); } else if (track.timelineAsset == null) { result = new TrackViewModelData(); } else { TimelineAssetViewModel timelineAssetViewData = TimelineWindowViewPrefs.GetTimelineAssetViewData(track.timelineAsset); TrackViewModelData trackViewModelData; if (timelineAssetViewData.tracksViewModelData.TryGetValue(track, out trackViewModelData)) { result = trackViewModelData; } else { trackViewModelData = new TrackViewModelData(); timelineAssetViewData.tracksViewModelData[track] = trackViewModelData; result = trackViewModelData; } } return(result); }
public static void SetTrackCollapsed(TrackAsset track, bool collapsed) { if (!(track == null)) { TimelineWindowViewPrefs.GetTrackViewModelData(track).collapsed = collapsed; } }
public TimelineTreeViewGUI(TimelineWindow sequencerWindow, TimelineAsset timeline, Rect rect) { m_Timeline = timeline; m_Window = sequencerWindow; var treeviewState = new TreeViewState(); treeviewState.scrollPos = new Vector2(treeviewState.scrollPos.x, TimelineWindowViewPrefs.GetOrCreateViewModel(m_Timeline).verticalScroll); m_TreeView = new TreeViewController(sequencerWindow, treeviewState); m_TreeView.horizontalScrollbarStyle = GUIStyle.none; m_TreeView.scrollViewStyle = GUI.skin.scrollView; m_TreeView.keyboardInputCallback = sequencerWindow.TreeViewKeyboardCallback; m_TimelineTreeView = new TimelineTreeView(sequencerWindow, m_TreeView); var dragging = new TimelineDragging(m_TreeView, m_Window, m_Timeline); m_DataSource = new TimelineDataSource(this, m_TreeView, sequencerWindow); m_DataSource.onVisibleRowsChanged += m_TimelineTreeView.CalculateRowRects; m_TreeView.Init(rect, m_DataSource, m_TimelineTreeView, dragging); m_DataSource.ExpandItems(m_DataSource.root); }
public static void SetInlineCurveHeight(TrackAsset asset, float height) { if (asset != null) { TimelineWindowViewPrefs.GetTrackViewModelData(asset).inlineAnimationCurveHeight = height; } }
public void OnGUI(Rect rect) { int keyboardControl = GUIUtility.GetControlID(FocusType.Passive, rect); m_TreeView.OnGUI(rect, keyboardControl); TimelineWindowViewPrefs.GetOrCreateViewModel(m_Timeline).verticalScroll = m_TreeView.state.scrollPos.y; }
static void CommitExtension(TimelineTrackGUI trackGUI) { if (trackGUI != null) { TimelineWindowViewPrefs.SetTrackHeightExtension(trackGUI.track, trackGUI.heightExtension); } }
public void Dispose() { if (asset != null) { asset.AssetModifiedOnDisk -= AssetOnAssetModifiedOnDisk; } TimelineWindowViewPrefs.SaveViewModel(asset); }
void CreateLists(IRowGUI parent) { var markerCount = parent.asset.GetMarkerCount(); if (markerCount == 0) { return; } var accumulator = new List <IMarker>(); var sortedMarkers = new List <IMarker>(parent.asset.GetMarkers()); var vm = TimelineWindowViewPrefs.GetTrackViewModelData(parent.asset); sortedMarkers.Sort((lhs, rhs) => { // Sort by time first var timeComparison = lhs.time.CompareTo(rhs.time); if (timeComparison != 0) { return(timeComparison); } // If there's a collision, sort by edit timestamp var lhsObject = lhs as object; var rhsObject = rhs as object; if (lhsObject.Equals(null) || rhsObject.Equals(null)) { return(0); } var lhsHash = lhsObject.GetHashCode(); var rhsHash = rhsObject.GetHashCode(); if (vm.markerTimeStamps.ContainsKey(lhsHash) && vm.markerTimeStamps.ContainsKey(rhsHash)) { return(vm.markerTimeStamps[lhsHash].CompareTo(vm.markerTimeStamps[rhsHash])); } return(0); }); foreach (var current in sortedMarkers) { // TODO: Take zoom factor into account? if (accumulator.Count > 0 && Math.Abs(current.time - accumulator[accumulator.Count - 1].time) > TimeUtility.kTimeEpsilon) { ProcessAccumulator(accumulator, parent); } accumulator.Add(current); } ProcessAccumulator(accumulator, parent); }
void OnPlayModeStateChanged(PlayModeStateChange playModeState) { // case 923506 - make sure we save view data before switching modes if (playModeState == PlayModeStateChange.ExitingEditMode || playModeState == PlayModeStateChange.ExitingPlayMode) TimelineWindowViewPrefs.SaveAll(); bool isPlaymodeAboutToChange = playModeState == PlayModeStateChange.ExitingEditMode || playModeState == PlayModeStateChange.ExitingPlayMode; // Important to stop the graph on any director so temporary objects are properly cleaned up if (isPlaymodeAboutToChange && state != null) state.Stop(); }
public static float GetInlineCurveHeight(TrackAsset asset) { float result; if (asset == null) { result = TrackViewModelData.k_DefaultinlineAnimationCurveHeight; } else { result = TimelineWindowViewPrefs.GetTrackViewModelData(asset).inlineAnimationCurveHeight; } return(result); }
float InlineCurveHeight() { if (!track.GetShowInlineCurves()) { return(0.0f); } if (!TimelineUtility.TrackHasAnimationCurves(track)) { return(0.0f); } return(TimelineWindowViewPrefs.GetInlineCurveHeight(track)); }
void UpdateViewModel() { var curveEditor = currentCurveEditor.clipCurveEditor; if (curveEditor == null || curveEditor.bindingHierarchy.treeViewController == null) { return; } var vm = TimelineWindowViewPrefs.GetTrackViewModelData(m_TrackGUI.track); vm.inlineCurvesState = curveEditor.bindingHierarchy.treeViewController.state; vm.inlineCurvesShownAreaInsideMargins = curveEditor.shownAreaInsideMargins; vm.lastInlineCurveDataID = curveEditor.dataSource.id; }
protected override bool MouseDown(Event evt, WindowState state) { m_Target = PickerUtils.FirstPickedElementOfType <InlineCurveResizeHandle>(); if (m_Target == null) { return(false); } m_Captured = true; m_CapturedHeight = TimelineWindowViewPrefs.GetInlineCurveHeight(m_Target.trackGUI.track); m_CaptureMouseYPos = GUIUtility.GUIToScreenPoint(Event.current.mousePosition).y; state.AddCaptured(this); return(true); }
void OnAfterSequenceChange() { Repaint(); m_SequencePath = state.GetCurrentSequencePath(); m_LastFrameHadSequence = state.editSequence.asset != null; TimelineWindowViewPrefs.SaveAll(); // this prevent clearing the animation window when going in/out of playmode, but // clears it when we switch master timelines if (m_PreviousMasterSequence != null && m_PreviousMasterSequence != state.masterSequence.asset) { TimelineAnimationUtilities.UnlinkAnimationWindow(); } }
public float InlineAnimationCurveHeight() { float result; if (!base.track.GetShowInlineCurves()) { result = 0f; } else if (!TimelineUtility.TrackHasAnimationCurves(base.track)) { result = 0f; } else { result = TimelineWindowViewPrefs.GetInlineCurveHeight(base.track); } return(result); }
protected override bool MouseDrag(Event evt, WindowState state) { if (!m_Captured || m_Target == null) { return(false); } var trackGUI = m_Target.trackGUI; float inlineTrackHeight = m_CapturedHeight + (GUIUtility.GUIToScreenPoint(Event.current.mousePosition).y - m_CaptureMouseYPos); TimelineWindowViewPrefs.SetInlineCurveHeight(trackGUI.track, Mathf.Max(inlineTrackHeight, 60.0f)); state.GetWindow().treeView.CalculateRowRects(); return(true); }
void OnAfterSequenceChange() { Repaint(); m_SequencePath = state.GetCurrentSequencePath(); m_LastFrameHadSequence = state.editSequence.asset != null; TimelineWindowViewPrefs.SaveAll(); // this prevent clearing the animation window when going in/out of playmode, but // clears it when we switch master timelines // the cast to a object will handle the case where the sequence has been deleted. object previousMasterSequence = m_PreviousMasterSequence; bool isDeleted = previousMasterSequence != null && m_PreviousMasterSequence == null; bool hasChanged = m_PreviousMasterSequence != null && m_PreviousMasterSequence != state.masterSequence.asset; if (isDeleted || hasChanged) { TimelineAnimationUtilities.UnlinkAnimationWindow(); } }
void OnDisable() { if (instance == this) { instance = null; } if (state != null) { state.Reset(); } if (instance == null) { SelectionManager.RemoveTimelineSelection(); } AnimationClipCurveCache.Instance.OnDisable(); TrackAsset.OnClipPlayableCreate -= m_PlayableLookup.UpdatePlayableLookup; TrackAsset.OnTrackAnimationPlayableCreate -= m_PlayableLookup.UpdatePlayableLookup; TimelineWindowViewPrefs.SaveAll(); TimelineWindowViewPrefs.UnloadAllViewModels(); }
internal static void SetShowInlineCurves(this TrackAsset track, bool inlineOn) { TimelineWindowViewPrefs.SetShowInlineCurves(track, inlineOn); }
internal static bool GetShowInlineCurves(this TrackAsset track) { return(TimelineWindowViewPrefs.GetShowInlineCurves(track)); }
internal static void SetShowMarkers(this TrackAsset track, bool collapsed) { TimelineWindowViewPrefs.SetTrackShowMarkers(track, collapsed); }
internal static bool GetShowMarkers(this TrackAsset track) { return(TimelineWindowViewPrefs.IsShowMarkers(track)); }
internal static void SetCollapsed(this TrackAsset track, bool collapsed) { TimelineWindowViewPrefs.SetTrackCollapsed(track, collapsed); }
internal static bool GetCollapsed(this TrackAsset track) { return(TimelineWindowViewPrefs.IsTrackCollapsed(track)); }
void OnEditorQuit() { TimelineWindowViewPrefs.SaveAll(); }
/// <summary> /// Queries whether the children of the Track are currently visible in the Timeline Editor. /// </summary> /// <param name="track">The track asset to query.</param> /// <returns>True if the track is collapsed and false otherwise.</returns> public static bool IsCollapsed(this TrackAsset track) { return(TimelineWindowViewPrefs.IsTrackCollapsed(track)); }
public override void Select() { zOrder = zOrderProvider.Next(); SelectionManager.Add(marker); TimelineWindowViewPrefs.GetTrackViewModelData(parent.asset).markerTimeStamps[m_MarkerHash] = DateTime.UtcNow.Ticks; }
public void Dispose() { TimelineWindowViewPrefs.SaveViewModel(asset); }
float InlineCurveHeight() { return(track.GetShowInlineCurves() && CanDrawInlineCurve() ? TimelineWindowViewPrefs.GetInlineCurveHeight(track) : 0.0f); }