arenos-nexus/Arenos Nexus/Library/PackageCache/com.unity.2d.psdimporter@0adcab25a8fd/Editor/UTK/LayerNameColumn.cs
Daniel 2e704cae70 init
Init Commit Unity
2025-09-25 22:01:28 +02:00

81 lines
2.2 KiB
C#

using UnityEditor.U2D.Common;
using UnityEngine;
using UnityEngine.UIElements;
namespace UnityEditor.U2D.PSD
{
internal class UICellLabelElement : UICellElement
{
static readonly Texture2D s_FolderIcon = EditorGUIUtility.FindTexture("Folder Icon") as Texture2D;
Label m_Label;
VisualElement m_FolderIcon;
bool m_ShowFolderIcon;
public UICellLabelElement()
{
m_FolderIcon = new VisualElement()
{
name = "UICellFolderElement"
};
m_Label = new Label()
{
name = "UICellLabelElement"
};
this.Add(m_FolderIcon);
this.Add(m_Label);
}
public string text
{
set { m_Label.text = value; }
}
public bool showFolderIcon
{
get => m_ShowFolderIcon;
set
{
m_ShowFolderIcon = value;
if (m_ShowFolderIcon)
{
m_FolderIcon.SetHiddenFromLayout(false);
m_FolderIcon.style.backgroundImage = new StyleBackground(s_FolderIcon);
}
else
{
m_FolderIcon.SetHiddenFromLayout(true);
}
}
}
}
internal class UILayerNameColumn : UIColumn
{
PSDImporterLayerManagementMultiColumnTreeView m_TreeView;
public UILayerNameColumn(PSDImporterLayerManagementMultiColumnTreeView treeView) : base(treeView)
{
makeCell = () => new UICellLabelElement();
bindCell = BindCell;
sortable = false;
stretchable = true;
title = "Layers";
}
public virtual void BindCell(VisualElement e, int index)
{
PSDTreeViewNode item = treeView.GetFromIndex(index);
UICellLabelElement label = (UICellLabelElement)e;
label.text = item.displayName;
label.showFolderIcon = item is PSDGroupTreeViewNode;
label.SetEnabled(!item.disable);
if (item.disable)
label.tooltip = Tooltips.layerHiddenToolTip;
else
label.tooltip = "";
}
}
}