44 lines
No EOL
1.7 KiB
C#
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);
|
|
}
|
|
}
|
|
} |