Files
2026-02-21 16:45:37 +08:00

77 lines
1.2 KiB
C#

using UnityEngine;
namespace UIWidgets
{
public class TreeViewComponent : TreeViewComponentBase<TreeViewItem>
{
private TreeViewItem item;
public TreeViewItem Item
{
get
{
return item;
}
set
{
if (item != null)
{
item.OnChange -= UpdateView;
}
item = value;
if (item != null)
{
item.OnChange += UpdateView;
}
UpdateView();
}
}
public override void SetData(TreeNode<TreeViewItem> newNode, int depth)
{
base.Node = newNode;
base.SetData(base.Node, depth);
Item = ((!(base.Node == null)) ? base.Node.Item : null);
}
protected virtual void UpdateView()
{
if (!(Icon == null) && !(Text == null))
{
if (Item == null)
{
Icon.sprite = null;
Text.text = string.Empty;
}
else
{
Icon.sprite = Item.Icon;
Text.text = Item.LocalizedName ?? Item.Name;
}
if (SetNativeSize)
{
Icon.SetNativeSize();
}
Icon.color = ((!(Icon.sprite == null)) ? Color.white : Color.clear);
}
}
public override void MovedToCache()
{
if (Icon != null)
{
Icon.sprite = null;
}
}
protected override void OnDestroy()
{
if (item != null)
{
item.OnChange -= UpdateView;
}
base.OnDestroy();
}
}
}