Singularity/Library/PackageCache/com.unity.2d.animation@7.0.10/Editor/SkinningModule/UI/WeightInspectorIMGUIPanel.cs
2024-05-06 11:45:45 -07:00

48 lines
1.6 KiB
C#

using System;
using UnityEngine;
using UnityEngine.UIElements;
namespace UnityEditor.U2D.Animation
{
internal class WeightInspectorIMGUIPanel : VisualElement
{
public class CustomUXMLFactor : UxmlFactory<WeightInspectorIMGUIPanel, UxmlTraits> {}
private WeightInspector m_WeightInspector = new WeightInspector();
public WeightInspector weightInspector
{
get { return m_WeightInspector; }
}
public event Action weightsChanged = () => {};
public WeightInspectorIMGUIPanel()
{
name = "WeightInspectorIMGUIPanel";
styleSheets.Add(ResourceLoader.Load<StyleSheet>("SkinningModule/WeightInspectorIMGUIPanelStyle.uss"));
this.Add(new IMGUIContainer(OnGUI));
this.pickingMode = PickingMode.Ignore;
this.RegisterCallback<MouseDownEvent>((e) => { e.StopPropagation(); });
this.RegisterCallback<MouseUpEvent>((e) => { e.StopPropagation(); });
}
protected void OnGUI()
{
var selectionCount = 0;
if (weightInspector.selection != null)
selectionCount = weightInspector.selection.Count;
using (new EditorGUI.DisabledGroupScope(m_WeightInspector.spriteMeshData == null || selectionCount == 0))
{
GUILayout.Label(new GUIContent(TextContent.vertexWeight, TextContent.vertexWeightToolTip));
EditorGUI.BeginChangeCheck();
m_WeightInspector.OnInspectorGUI();
if (EditorGUI.EndChangeCheck())
weightsChanged();
}
}
}
}