/************************************************************************************************************************/ /// <summary>Draws a small button using the <see cref="TransitionPreviewWindow.Icon"/>.</summary> private static void DoPreviewButtonGUI(ref Rect area, SerializedProperty property, bool isPreviewing) { if (property.serializedObject.targetObjects.Length != 1 || !TransitionPreviewWindow.CanBePreviewed(property)) { return; } var enabled = GUI.enabled; var currentEvent = Event.current; if (currentEvent.button == 1)// Ignore Right Clicks on the Preview Button. { switch (currentEvent.type) { case EventType.MouseDown: case EventType.MouseUp: case EventType.ContextClick: GUI.enabled = false; break; } } var tooltip = isPreviewing ? TransitionPreviewWindow.Inspector.CloseTooltip : "Preview this transition"; if (DoPreviewButtonGUI(ref area, isPreviewing, tooltip)) { TransitionPreviewWindow.OpenOrClose(property); } GUI.enabled = enabled; }
/************************************************************************************************************************/ private void DoPreviewButtonGUI(ref Rect area, SerializedProperty property, bool wasPreviewing) { if (property.serializedObject.targetObjects.Length != 1 || !TransitionPreviewWindow.CanBePreviewed(property)) { return; } var buttonArea = AnimancerGUI.StealFromRight(ref area, area.height + AnimancerGUI.StandardSpacing * 2, AnimancerGUI.StandardSpacing); var content = AnimancerGUI.TempContent("", "Preview this transition"); content.image = TransitionPreviewWindow.Icon; var style = ObjectPool.GetCachedResult(() => new GUIStyle(AnimancerGUI.MiniButton) { #if UNITY_2019_3_OR_NEWER padding = new RectOffset(0, 0, 0, 1), #else padding = new RectOffset(), #endif fixedWidth = 0, fixedHeight = 0, }); var isPrevewing = GUI.Toggle(buttonArea, wasPreviewing, content, style); if (wasPreviewing != isPrevewing) { TransitionPreviewWindow.Open(property, isPrevewing); } content.image = null; }
/************************************************************************************************************************/ private void DoPreviewButtonGUI(ref Rect area, SerializedProperty property, bool wasPreviewing) { if (property.serializedObject.targetObjects.Length != 1 || !TransitionPreviewWindow.CanBePreviewed(property)) { return; } var buttonArea = AnimancerGUI.StealFromRight(ref area, area.height + AnimancerGUI.StandardSpacing * 2, AnimancerGUI.StandardSpacing); var content = AnimancerGUI.TempContent("", "Preview this transition"); content.image = TransitionPreviewWindow.Icon; EditorGUI.BeginProperty(buttonArea, content, property); var style = ObjectPool.GetCachedResult(() => new GUIStyle(AnimancerGUI.MiniButton) { #if UNITY_2019_3_OR_NEWER padding = new RectOffset(0, 0, 0, 1), #else padding = new RectOffset(), #endif fixedWidth = 0, fixedHeight = 0, }); var enabled = GUI.enabled; var currentEvent = Event.current; if (currentEvent.button == 1)// Ignore Right Clicks on the Preview Button. { switch (currentEvent.type) { case EventType.MouseDown: case EventType.MouseUp: case EventType.ContextClick: GUI.enabled = false; break; } } var isPrevewing = GUI.Toggle(buttonArea, wasPreviewing, content, style); if (wasPreviewing != isPrevewing) { TransitionPreviewWindow.Open(property, isPrevewing); } GUI.enabled = enabled; content.image = null; EditorGUI.EndProperty(); }
/************************************************************************************************************************/ private void DoPreviewButtonGUI(ref Rect area, SerializedProperty property, bool wasPreviewing) { if (property.serializedObject.targetObjects.Length != 1 || !TransitionPreviewWindow.CanBePreviewed(property)) { return; } var buttonArea = AnimancerGUI.StealFromRight(ref area, area.height + AnimancerGUI.StandardSpacing * 2, AnimancerGUI.StandardSpacing); var content = AnimancerGUI.TempContent("", "Preview this transition"); content.image = TransitionPreviewWindow.Icon; var isPrevewing = GUI.Toggle(buttonArea, wasPreviewing, content, Styles.PreviewButtonStyle); if (wasPreviewing != isPrevewing) { TransitionPreviewWindow.Open(property, isPrevewing); } content.image = null; }