92 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using UnityEngine;
 | |
| 
 | |
| namespace UnityEditor.Timeline
 | |
| {
 | |
|     enum TimelineModeGUIState
 | |
|     {
 | |
|         Disabled,
 | |
|         Hidden,
 | |
|         Enabled
 | |
|     }
 | |
| 
 | |
|     abstract class TimelineMode
 | |
|     {
 | |
|         public struct HeaderState
 | |
|         {
 | |
|             public TimelineModeGUIState breadCrumb;
 | |
|             public TimelineModeGUIState sequenceSelector;
 | |
|             public TimelineModeGUIState options;
 | |
|         }
 | |
| 
 | |
|         public struct TrackOptionsState
 | |
|         {
 | |
|             public TimelineModeGUIState newButton;
 | |
|             public TimelineModeGUIState editAsAssetButton;
 | |
|         }
 | |
| 
 | |
|         public HeaderState headerState { get; protected set; }
 | |
|         public TrackOptionsState trackOptionsState { get; protected set; }
 | |
|         public TimelineModes mode { get; protected set; }
 | |
| 
 | |
|         public abstract bool ShouldShowPlayRange(WindowState state);
 | |
|         public abstract bool ShouldShowTimeCursor(WindowState state);
 | |
| 
 | |
|         public virtual bool ShouldShowTrackBindings(WindowState state)
 | |
|         {
 | |
|             return ShouldShowTimeCursor(state);
 | |
|         }
 | |
| 
 | |
|         public virtual bool ShouldShowTimeArea(WindowState state)
 | |
|         {
 | |
|             return !state.IsEditingAnEmptyTimeline();
 | |
|         }
 | |
| 
 | |
|         public abstract TimelineModeGUIState TrackState(WindowState state);
 | |
|         public abstract TimelineModeGUIState ToolbarState(WindowState state);
 | |
| 
 | |
|         public virtual TimelineModeGUIState PreviewState(WindowState state)
 | |
|         {
 | |
|             return state.ignorePreview ? TimelineModeGUIState.Disabled : TimelineModeGUIState.Enabled;
 | |
|         }
 | |
| 
 | |
|         public virtual TimelineModeGUIState EditModeButtonsState(WindowState state)
 | |
|         {
 | |
|             return TimelineModeGUIState.Enabled;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /// <summary>
 | |
|     /// Different mode for Timeline
 | |
|     /// </summary>
 | |
|     [Flags]
 | |
|     public enum TimelineModes
 | |
|     {
 | |
|         /// <summary>
 | |
|         /// A playable director with a valid timeline is selected in editor.
 | |
|         /// </summary>
 | |
|         Active = 1,
 | |
|         /// <summary>
 | |
|         /// The timeline is not editable. (the TimelineAsset file is either readonly on disk or locked by source control).
 | |
|         /// </summary>
 | |
|         ReadOnly = 2,
 | |
|         /// <summary>
 | |
|         /// The timeline cannot be played or previewed.
 | |
|         /// </summary>
 | |
|         Inactive = 4,
 | |
|         /// <summary>
 | |
|         /// Disabled Timeline.
 | |
|         /// </summary>
 | |
|         Disabled = 8,
 | |
|         /// <summary>
 | |
|         /// Timeline in AssetEditing mode.
 | |
|         /// This mode is enabled when a timeline asset is selected in the project window.
 | |
|         /// </summary>
 | |
|         AssetEdition = 16,
 | |
|         /// <summary>
 | |
|         /// The timeline can be edited (either through playable director or selected timeline asset in project window).
 | |
|         /// </summary>
 | |
|         Default = Active | AssetEdition
 | |
|     }
 | |
| }
 |