public virtual void Draw(Rect trackRect, TimelineWindow.TimelineState state, TrackDrawer drawer) { int num = this.ComputeDirtyHash(); int num2 = state.timeAreaTranslation.GetHashCode() ^ state.timeAreaScale.GetHashCode() ^ trackRect.GetHashCode(); this.CalculateClipRectangle(base.parentTrackGUI.track, trackRect, state, num ^ num2); this.DrawInto(base.rect, DirectorStyles.Instance.eventIcon, state); }
public virtual void Draw(Rect trackRect, TimelineWindow.TimelineState state, TrackDrawer drawer) { if (SelectionManager.Contains(this.clip)) { this.clip.dirtyHash = 0; } int num = this.ComputeDirtyHash(); int h = HashUtility.CombineHash(state.timeAreaTranslation.GetHashCode(), state.timeAreaScale.GetHashCode(), trackRect.GetHashCode()); this.CalculateClipRectangle(base.parentTrackGUI.track, trackRect, state, num.CombineHash(h)); this.CalculateBlendRect(); this.CalculateLoopRects(trackRect, state, num); this.clip.dirtyHash = num; if (drawer.canDrawExtrapolationIcon) { this.DrawExtrapolation(trackRect, base.UnClippedRect); } this.DrawInto(base.rect, this.m_Styles.displayBackground, state); }
public void DrawBlendingCurves(TimelineWindow.TimelineState state) { if (Event.get_current().get_type() == 7) { Color color = (!SelectionManager.Contains(this.clip)) ? Color.get_white() : TrackDrawer.GetHighlightColor(Color.get_white()); Color colorTrackBackground = DirectorStyles.Instance.customSkin.colorTrackBackground; Color color2 = (!SelectionManager.Contains(this.clip)) ? DirectorStyles.Instance.customSkin.colorTrackBackground : Color.get_white(); if (this.blendInKind == TimelineClipGUI.BlendKind.Ease) { ClipRenderer.RenderTexture(this.mixInRect, DirectorStyles.Instance.timelineClip.get_normal().get_background(), DirectorStyles.Instance.blendingIn.get_normal().get_background(), color, false); EditorGUI.DrawRect(new Rect(this.mixInRect.get_xMax() - 2f, this.mixInRect.get_yMin(), 2f, this.mixInRect.get_height()), colorTrackBackground); Graphics.DrawAAPolyLine(4f, new Vector3[] { new Vector3(this.mixInRect.get_xMin() + 1f, this.mixInRect.get_yMax() - 1f, 0f), new Vector3(this.mixInRect.get_xMax(), this.mixInRect.get_yMin() - 1.5f, 0f) }, color2); } if (this.blendOutKind == TimelineClipGUI.BlendKind.Ease || this.blendOutKind == TimelineClipGUI.BlendKind.Mix) { ClipRenderer.RenderTexture(this.mixOutRect, DirectorStyles.Instance.timelineClip.get_normal().get_background(), DirectorStyles.Instance.blendingOut.get_normal().get_background(), color, false); EditorGUI.DrawRect(new Rect(this.mixOutRect.get_xMin(), this.mixOutRect.get_yMin(), 2f, this.mixOutRect.get_height()), colorTrackBackground); Graphics.DrawLineAA(4f, new Vector3(this.mixOutRect.get_xMin() + 1.5f, this.mixOutRect.get_yMin() + 1.5f, 0f), new Vector3(this.mixOutRect.get_xMax(), this.mixOutRect.get_yMax() - 1f, 0f), color2); } if (this.blendInKind == TimelineClipGUI.BlendKind.Mix) { ClipRenderer.RenderTexture(this.mixInRect, DirectorStyles.Instance.timelineClip.get_normal().get_background(), DirectorStyles.Instance.blendingOut.get_normal().get_background(), color, false); EditorGUI.DrawRect(new Rect(this.mixInRect.get_xMax(), this.mixInRect.get_yMin(), 2f, this.mixOutRect.get_height()), colorTrackBackground); Graphics.DrawAAPolyLine(4f, new Vector3[] { new Vector3(this.mixInRect.get_xMin(), this.mixInRect.get_yMin(), 0f), new Vector3(this.mixInRect.get_xMax(), this.mixInRect.get_yMax() - 1f, 0f) }, color2); } } }
public void OnGUI(Rect rect) { Rect itemRect = Rect.zero; itemRect.x = m_ActionData.FireTime * m_DrawerConfig.WidthForSecond - m_DrawerConfig.ScrollPosX; itemRect.y = rect.y; itemRect.height = m_DrawerConfig.TrackLineHeight; if (m_DurationActionData != null) { if (m_DurationActionData.Duration <= 0) { m_DurationActionData.Duration = m_DrawerConfig.TimeStep; } itemRect.width = Mathf.Max(m_DrawerConfig.TimeStepWidth, m_DurationActionData.Duration * m_DrawerConfig.WidthForSecond); } else { itemRect.width = m_DrawerConfig.TimeStepWidth; } GUI.Label(itemRect, m_ActionBriefName, IsSelected ? "flow node 6" : "flow node 5"); int eventBtn = Event.current.button; EventType eventType = Event.current.type; bool isContains = itemRect.Contains(Event.current.mousePosition); if (eventBtn == 0 && eventType == EventType.MouseDown && isContains) { m_IsPressed = true; IsSelected = true; Event.current.Use(); } else if (eventBtn == 0 && m_IsPressed && eventType == EventType.MouseUp) { m_IsPressed = false; Event.current.Use(); } else if (eventBtn == 0 && m_IsPressed && IsSelected && eventType == EventType.MouseDrag) { Vector2 deltaPos = Event.current.delta; float deltaTime = deltaPos.x / m_DrawerConfig.WidthForSecond; m_ActionData.FireTime += deltaTime; if (m_ActionData.FireTime < 0) { m_ActionData.FireTime = 0; } else { float endTime = m_ActionData.FireTime; if (m_DurationActionData != null) { endTime += m_DurationActionData.Duration; } if (endTime > m_DrawerConfig.TimeLength) { m_ActionData.FireTime = m_DrawerConfig.TimeLength - (endTime - m_ActionData.FireTime); } } Event.current.Use(); } else if (eventBtn == 1 && isContains && eventType == EventType.MouseUp) { if (!IsSelected) { IsSelected = true; } GenericMenu menu = new GenericMenu(); menu.AddItem(new GUIContent("Delete"), false, () => { TrackDrawer.OnItemDelete(this); }); menu.AddItem(new GUIContent("Copy"), false, () => { TrackDrawer.OnActionCopy(m_ActionData); }); menu.ShowAsContext(); Event.current.Use(); } }
protected TimelineTrackBaseGUI(int id, int depth, TreeViewItem parent, string displayName, TrackAsset trackAsset, TreeViewController tv, TimelineTreeViewGUI tvgui) : base(id, depth, parent, displayName) { this.m_Drawer = TrackDrawer.CreateInstance(trackAsset); this.m_Drawer.track = trackAsset; this.m_Drawer.sequencerState = tvgui.TimelineWindow.state; this.m_Drawer.ConfigureUITrack(this); this.isExpanded = false; this.isDropTarget = false; this.track = trackAsset; this.< treeView > k__BackingField = tv; this.m_TreeViewGUI = tvgui; if (TimelineTrackBaseGUI.< > f__mg$cache0 == null) { TimelineTrackBaseGUI.< > f__mg$cache0 = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp); } this.MouseDown += TimelineTrackBaseGUI.< > f__mg$cache0; if (TimelineTrackBaseGUI.< > f__mg$cache1 == null) { TimelineTrackBaseGUI.< > f__mg$cache1 = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp); } this.MouseDrag += TimelineTrackBaseGUI.< > f__mg$cache1; if (TimelineTrackBaseGUI.< > f__mg$cache2 == null) { TimelineTrackBaseGUI.< > f__mg$cache2 = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp); } this.MouseUp += TimelineTrackBaseGUI.< > f__mg$cache2; if (TimelineTrackBaseGUI.< > f__mg$cache3 == null) { TimelineTrackBaseGUI.< > f__mg$cache3 = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp); } this.DoubleClick += TimelineTrackBaseGUI.< > f__mg$cache3; if (TimelineTrackBaseGUI.< > f__mg$cache4 == null) { TimelineTrackBaseGUI.< > f__mg$cache4 = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp); } this.KeyDown += TimelineTrackBaseGUI.< > f__mg$cache4; if (TimelineTrackBaseGUI.< > f__mg$cache5 == null) { TimelineTrackBaseGUI.< > f__mg$cache5 = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp); } this.KeyUp += TimelineTrackBaseGUI.< > f__mg$cache5; if (TimelineTrackBaseGUI.< > f__mg$cache6 == null) { TimelineTrackBaseGUI.< > f__mg$cache6 = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp); } this.DragPerform += TimelineTrackBaseGUI.< > f__mg$cache6; if (TimelineTrackBaseGUI.< > f__mg$cache7 == null) { TimelineTrackBaseGUI.< > f__mg$cache7 = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp); } this.DragExited += TimelineTrackBaseGUI.< > f__mg$cache7; if (TimelineTrackBaseGUI.< > f__mg$cache8 == null) { TimelineTrackBaseGUI.< > f__mg$cache8 = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp); } this.DragUpdated += TimelineTrackBaseGUI.< > f__mg$cache8; if (TimelineTrackBaseGUI.< > f__mg$cache9 == null) { TimelineTrackBaseGUI.< > f__mg$cache9 = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp); } this.MouseWheel += TimelineTrackBaseGUI.< > f__mg$cache9; if (TimelineTrackBaseGUI.< > f__mg$cacheA == null) { TimelineTrackBaseGUI.< > f__mg$cacheA = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp); } this.ContextClick += TimelineTrackBaseGUI.< > f__mg$cacheA; }