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 BuildDrawActions( bool hasOkIcon, string text, MultiLinkLabelData multiLinkLabelData) { List result = new List() { () => { 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; } }