arenos-nexus/Arenos Nexus/Library/PackageCache/com.unity.collab-proxy@ab839cc7d2ad/Editor/UI/Tree/EmptyStatePanel.cs
Daniel 2e704cae70 init
Init Commit Unity
2025-09-25 22:01:28 +02:00

76 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
using Codice.Client.Common;
namespace Unity.PlasticSCM.Editor.UI.Tree
{
internal class EmptyStatePanel : CenteredContentPanel
{
internal string Text { get { return mText; } }
internal EmptyStatePanel(Action repaintAction)
: base(repaintAction)
{
}
internal bool IsEmpty()
{
return string.IsNullOrEmpty(mText);
}
internal void UpdateContent(
string contentText,
bool bDrawOkIcon = false,
MultiLinkLabelData multiLinkLabelData = null)
{
mText = contentText;
mbDrawOkIcon = bDrawOkIcon;
mMultiLinkLabelData = multiLinkLabelData;
}
protected override void DrawGUI()
{
CenterContent(BuildDrawActions(
mbDrawOkIcon, mText, mMultiLinkLabelData).ToArray());
}
static List<Action> BuildDrawActions(
bool hasOkIcon,
string text,
MultiLinkLabelData multiLinkLabelData)
{
List<Action> result = new List<Action>()
{
() =>
{
if (hasOkIcon)
GUILayout.Label(Images.GetStepOkIcon(), UnityStyles.EmptyState.Icon);
GUILayout.Label(text);
}
};
if (multiLinkLabelData == null)
return result;
result.Add(
() =>
{
DrawTextBlockWithLink.ForMultiLinkLabel(
multiLinkLabelData,
UnityStyles.EmptyState.LabelForMultiLinkLabel,
UnityStyles.EmptyState.LinkForMultiLinkLabel);
});
return result;
}
bool mbDrawOkIcon;
string mText;
MultiLinkLabelData mMultiLinkLabelData;
}
}