Exemplo n.º 1
0
        /************************************************************************************************************************/

        /// <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;
        }
Exemplo n.º 2
0
        /************************************************************************************************************************/

        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;
        }
Exemplo n.º 3
0
        /************************************************************************************************************************/

        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();
        }
Exemplo n.º 4
0
        /************************************************************************************************************************/

        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;
        }