module-project-validator/Editor/Utilities/EditorIconUtility.cs

44 lines
No EOL
1.7 KiB
C#

using UnityEngine;
namespace Module.ProjectValidator.Editor
{
internal static class EditorIconUtility
{
private static bool _initialized;
private static GUIContent _warning;
private static GUIContent _error;
private static GUIContent _warningRedirect;
private static GUIContent _errorRedirect;
private static GUIStyle _style;
private static void Initialize()
{
_initialized = true;
_warning = new GUIContent(EditorAssetUtility.LoadFirstAsset<Texture>("editor_project_validator_warning"));
_error = new GUIContent(EditorAssetUtility.LoadFirstAsset<Texture>("editor_project_validator_error"));
_warningRedirect = new GUIContent(EditorAssetUtility.LoadFirstAsset<Texture>("editor_project_validator_warning_redirect"));
_errorRedirect = new GUIContent(EditorAssetUtility.LoadFirstAsset<Texture>("editor_project_validator_error_redirect"));
_style = new GUIStyle();
}
public static GUIContent GetIcon(EValidatorSeverity severity, bool isRedirect)
{
if (!_initialized)
Initialize();
if (isRedirect)
return severity == EValidatorSeverity.Warning ? _warningRedirect : _errorRedirect;
return severity == EValidatorSeverity.Warning ? _warning : _error;
}
public static void Draw(Rect rect, EValidatorSeverity severity, bool isRedirect)
{
if (Event.current.type != EventType.Repaint)
return;
var content = GetIcon(severity, isRedirect);
_style.Draw(rect, content, -1);
}
}
}