mirror of https://github.com/tuyoogame/YooAsset
52 lines
1.3 KiB
C#
52 lines
1.3 KiB
C#
#if UNITY_2019_4_OR_NEWER
|
|
using System;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
using UnityEditor.UIElements;
|
|
using UnityEngine.UIElements;
|
|
|
|
namespace YooAsset.Editor
|
|
{
|
|
/// <summary>
|
|
/// 显示开关(眼睛图标)
|
|
/// </summary>
|
|
public class ToggleDisplay : Toggle
|
|
{
|
|
public new class UxmlFactory : UxmlFactory<ToggleDisplay, UxmlTraits>
|
|
{
|
|
}
|
|
|
|
private readonly VisualElement _checkbox;
|
|
|
|
public ToggleDisplay()
|
|
{
|
|
_checkbox = this.Q<VisualElement>("unity-checkmark");
|
|
RefreshIcon();
|
|
}
|
|
public override void SetValueWithoutNotify(bool newValue)
|
|
{
|
|
base.SetValueWithoutNotify(newValue);
|
|
RefreshIcon();
|
|
}
|
|
protected override void ToggleValue()
|
|
{
|
|
base.ToggleValue();
|
|
RefreshIcon();
|
|
}
|
|
|
|
private void RefreshIcon()
|
|
{
|
|
if (this.value)
|
|
{
|
|
var icon = EditorGUIUtility.IconContent(UIElementsIcon.VisibilityToggleOff).image as Texture2D;
|
|
_checkbox.style.backgroundImage = icon;
|
|
}
|
|
else
|
|
{
|
|
var icon = EditorGUIUtility.IconContent(UIElementsIcon.VisibilityToggleOn).image as Texture2D;
|
|
_checkbox.style.backgroundImage = icon;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endif |