chore: initial commit
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
// Animancer // https://kybernetik.com.au/animancer // Copyright 2018-2026 Kybernetik //
|
||||
|
||||
#if UNITY_EDITOR
|
||||
|
||||
using Animancer.TransitionLibraries;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Animancer.Editor.TransitionLibraries
|
||||
{
|
||||
/// <summary>[Editor-Only]
|
||||
/// An <see cref="EditorWindow"/> for configuring <see cref="TransitionLibraryAsset"/>.
|
||||
/// </summary>
|
||||
/// https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionLibraryWindowHighlighter
|
||||
public class TransitionLibraryWindowHighlighter
|
||||
{
|
||||
/************************************************************************************************************************/
|
||||
|
||||
private static readonly Color
|
||||
SelectionHighlightColor = new(0.5f, 0.5f, 1, 0.1f),
|
||||
HoverHighlightColor = new(0.5f, 1, 0.5f, 0.1f);
|
||||
|
||||
/************************************************************************************************************************/
|
||||
|
||||
/// <summary>The current <see cref="Event.type"/>.</summary>
|
||||
public EventType EventType { get; private set; }
|
||||
|
||||
/// <summary>The the mouse currently over the highlighter area.</summary>
|
||||
public bool IsMouseOver { get; private set; }
|
||||
|
||||
/// <summary>The the hover highlight currently visible.</summary>
|
||||
public bool DidHoverHighlight { get; private set; }
|
||||
|
||||
/************************************************************************************************************************/
|
||||
|
||||
/// <summary>Gathers the details of the <see cref="Event.current"/>.</summary>
|
||||
public void BeginGUI(Rect area)
|
||||
{
|
||||
var currentEvent = Event.current;
|
||||
EventType = currentEvent.type;
|
||||
IsMouseOver = area.Contains(currentEvent.mousePosition);
|
||||
DidHoverHighlight = false;
|
||||
}
|
||||
|
||||
/************************************************************************************************************************/
|
||||
|
||||
/// <summary>Repaints the `window` if necessary.</summary>
|
||||
public void EndGUI(TransitionLibraryWindow window)
|
||||
{
|
||||
if (DidHoverHighlight && window != EditorWindow.mouseOverWindow)
|
||||
{
|
||||
DidHoverHighlight = false;
|
||||
window.Repaint();
|
||||
}
|
||||
else if (EventType == EventType.MouseMove)
|
||||
{
|
||||
window.Repaint();
|
||||
}
|
||||
}
|
||||
|
||||
/************************************************************************************************************************/
|
||||
|
||||
/// <summary>Draws highlights for the `area`.</summary>
|
||||
public void DrawHighlightGUI(Rect area, bool selected, bool hover)
|
||||
{
|
||||
if (selected)
|
||||
{
|
||||
EditorGUI.DrawRect(area, SelectionHighlightColor);
|
||||
}
|
||||
|
||||
if (hover)
|
||||
{
|
||||
DidHoverHighlight = true;
|
||||
EditorGUI.DrawRect(area, HoverHighlightColor);
|
||||
}
|
||||
}
|
||||
|
||||
/************************************************************************************************************************/
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user