public void OverlayOnGUI() { if (!hasSelection) { return; } if (Event.current.type != EventType.Repaint) { return; } Color oldColor = GUI.color; RectangleToolFlags flags = m_CurveEditor.settings.rectangleToolFlags; if (flags == RectangleToolFlags.FullRectangleTool) { GUI.color = Color.white; m_HBar.OnGUI(m_Layout.hBarRect); m_HBarLeft.OnGUI(m_Layout.hBarLeftRect); m_HBarRight.OnGUI(m_Layout.hBarRightRect); m_VBar.OnGUI(m_Layout.vBarRect); m_VBarBottom.OnGUI(m_Layout.vBarBottomRect); m_VBarTop.OnGUI(m_Layout.vBarTopRect); } DrawLabels(); GUI.color = oldColor; }
public void HandleEvents() { RectangleToolFlags flags = m_CurveEditor.settings.rectangleToolFlags; if (flags == RectangleToolFlags.NoRectangleTool) { return; } m_SelectionScaleTop.HandleEvents(); m_SelectionScaleBottom.HandleEvents(); if (rippleTime) { m_SelectionRippleLeft.HandleEvents(); m_SelectionRippleRight.HandleEvents(); } else { m_SelectionScaleLeft.HandleEvents(); m_SelectionScaleRight.HandleEvents(); } m_SelectionBox.HandleEvents(); }
public void OnGUI() { if (!hasSelection) { return; } if (Event.current.type != EventType.Repaint) { return; } RectangleToolFlags flags = m_CurveEditor.settings.rectangleToolFlags; if (flags == RectangleToolFlags.NoRectangleTool) { return; } Color oldColor = GUI.color; GUI.color = Color.white; m_Layout = CalculateLayout(); if (flags == RectangleToolFlags.FullRectangleTool) { GUI.Label(m_Layout.selectionLeftRect, GUIContent.none, styles.rectangleToolHighlight); GUI.Label(m_Layout.selectionTopRect, GUIContent.none, styles.rectangleToolHighlight); GUI.Label(m_Layout.underlayLeftRect, GUIContent.none, styles.rectangleToolHighlight); GUI.Label(m_Layout.underlayTopRect, GUIContent.none, styles.rectangleToolHighlight); } m_SelectionBox.OnGUI(m_Layout.selectionRect); m_SelectionScaleTop.OnGUI(m_Layout.scaleTopRect); m_SelectionScaleBottom.OnGUI(m_Layout.scaleBottomRect); bool showRippleHandles = (rippleTime && dragMode == DragMode.None) || (m_RippleTime && dragMode != DragMode.None); if (showRippleHandles) { m_SelectionRippleLeft.OnGUI(m_Layout.scaleLeftRect); m_SelectionRippleRight.OnGUI(m_Layout.scaleRightRect); } else { m_SelectionScaleLeft.OnGUI(m_Layout.scaleLeftRect); m_SelectionScaleRight.OnGUI(m_Layout.scaleRightRect); } GUI.color = oldColor; }
public void HandleOverlayEvents() { RectangleToolFlags flags = m_CurveEditor.settings.rectangleToolFlags; if (flags == RectangleToolFlags.NoRectangleTool) { return; } if (flags == RectangleToolFlags.FullRectangleTool) { m_VBarBottom.HandleEvents(); m_VBarTop.HandleEvents(); m_VBar.HandleEvents(); m_HBarLeft.HandleEvents(); m_HBarRight.HandleEvents(); m_HBar.HandleEvents(); } }
private void DrawLabels() { if (dragMode == DragMode.None) { return; } RectangleToolFlags flags = m_CurveEditor.settings.rectangleToolFlags; bool canScaleX = !Mathf.Approximately(selectionBounds.size.x, 0f); bool canScaleY = !Mathf.Approximately(selectionBounds.size.y, 0f); if (flags == RectangleToolFlags.FullRectangleTool) { // Horizontal labels if ((dragMode & DragMode.MoveScaleHorizontal) != 0) { if (canScaleX) { GUIContent leftLabelContent = new GUIContent(string.Format("{0}", m_CurveEditor.FormatTime(selectionBounds.min.x, m_CurveEditor.invSnap, m_CurveEditor.timeFormat))); GUIContent rightLabelContent = new GUIContent(string.Format("{0}", m_CurveEditor.FormatTime(selectionBounds.max.x, m_CurveEditor.invSnap, m_CurveEditor.timeFormat))); Vector2 leftLabelSize = styles.dragLabel.CalcSize(leftLabelContent); Vector2 rightLabelSize = styles.dragLabel.CalcSize(rightLabelContent); EditorGUI.DoDropShadowLabel(new Rect(m_Layout.leftLabelAnchor.x - leftLabelSize.x, m_Layout.leftLabelAnchor.y, leftLabelSize.x, leftLabelSize.y), leftLabelContent, styles.dragLabel, 0.3f); EditorGUI.DoDropShadowLabel(new Rect(m_Layout.rightLabelAnchor.x, m_Layout.rightLabelAnchor.y, rightLabelSize.x, rightLabelSize.y), rightLabelContent, styles.dragLabel, 0.3f); } else { GUIContent labelContent = new GUIContent(string.Format("{0}", m_CurveEditor.FormatTime(selectionBounds.center.x, m_CurveEditor.invSnap, m_CurveEditor.timeFormat))); Vector2 labelSize = styles.dragLabel.CalcSize(labelContent); EditorGUI.DoDropShadowLabel(new Rect(m_Layout.leftLabelAnchor.x, m_Layout.leftLabelAnchor.y, labelSize.x, labelSize.y), labelContent, styles.dragLabel, 0.3f); } } // Vertical labels if ((dragMode & DragMode.MoveScaleVertical) != 0) { if (canScaleY) { GUIContent bottomLabelContent = new GUIContent(string.Format("{0}", m_CurveEditor.FormatValue(selectionBounds.min.y))); GUIContent topLabelContent = new GUIContent(string.Format("{0}", m_CurveEditor.FormatValue(selectionBounds.max.y))); Vector2 bottomLabelSize = styles.dragLabel.CalcSize(bottomLabelContent); Vector2 topLabelSize = styles.dragLabel.CalcSize(topLabelContent); EditorGUI.DoDropShadowLabel(new Rect(m_Layout.bottomLabelAnchor.x, m_Layout.bottomLabelAnchor.y, bottomLabelSize.x, bottomLabelSize.y), bottomLabelContent, styles.dragLabel, 0.3f); EditorGUI.DoDropShadowLabel(new Rect(m_Layout.topLabelAnchor.x, m_Layout.topLabelAnchor.y - topLabelSize.y, topLabelSize.x, topLabelSize.y), topLabelContent, styles.dragLabel, 0.3f); } else { GUIContent labelContent = new GUIContent(string.Format("{0}", m_CurveEditor.FormatValue(selectionBounds.center.y))); Vector2 labelSize = styles.dragLabel.CalcSize(labelContent); EditorGUI.DoDropShadowLabel(new Rect(m_Layout.topLabelAnchor.x, m_Layout.topLabelAnchor.y - labelSize.y, labelSize.x, labelSize.y), labelContent, styles.dragLabel, 0.3f); } } } else if (flags == RectangleToolFlags.MiniRectangleTool) { if ((dragMode & DragMode.MoveBothAxis) != 0) { Vector2 localPosition = (canScaleX || canScaleY) ? new Vector2(PixelToTime(Event.current.mousePosition.x, frameRate), PixelToValue(Event.current.mousePosition.y)) : (Vector2)selectionBounds.center; Vector2 labelPosition = new Vector2(TimeToPixel(localPosition.x), ValueToPixel(localPosition.y)); GUIContent labelContent = new GUIContent(string.Format("{0}, {1}", m_CurveEditor.FormatTime(localPosition.x, m_CurveEditor.invSnap, m_CurveEditor.timeFormat), m_CurveEditor.FormatValue(localPosition.y))); Vector2 labelSize = styles.dragLabel.CalcSize(labelContent); EditorGUI.DoDropShadowLabel(new Rect(labelPosition.x, labelPosition.y - labelSize.y, labelSize.x, labelSize.y), labelContent, styles.dragLabel, 0.3f); } } }