using UnityEditor;
namespace Unity.VisualScripting
{
public static class ProgressUtility
{
private static string _progressBarTitleOverride = null;
internal static void SetTitleOverride(string title)
{
_progressBarTitleOverride = title;
}
internal static void ClearTitleOverride()
{
_progressBarTitleOverride = null;
}
public static void DisplayProgressBar(string title, string info, float progress)
{
var actualTitle = $"Visual Scripting: {title}";
if (_progressBarTitleOverride != null)
{
actualTitle = _progressBarTitleOverride;
}
if (UnityThread.allowsAPI)
{
EditorUtility.DisplayProgressBar(actualTitle, info, progress);
}
else
{
BackgroundWorker.ReportProgress(actualTitle, progress);
}
}
#if VISUAL_SCRIPT_INTERNAL
[MenuItem("Tools/Bolt/Internal/Force Clear Progress Bar", priority = LudiqProduct.DeveloperToolsMenuPriority + 601)]
#endif
public static void ClearProgressBar()
{
if (UnityThread.allowsAPI)
{
EditorUtility.ClearProgressBar();
}
BackgroundWorker.ClearProgress();
}
}
}