Files
stas-barecky/Library/PackageCache/com.unity.collab-proxy@3351acaba9c9/Editor/Toolbar/UVCSToolbarBoostrap_Legacy.cs
2026-01-08 20:43:08 +05:00

65 lines
1.8 KiB
C#

#if !UNITY_6000_3_OR_NEWER
using UnityEditor;
using Unity.PlasticSCM.Editor.Configuration;
using Unity.PlasticSCM.Editor.Toolbar;
namespace Unity.Cloud.Collaborate
{
[InitializeOnLoad]
static class UVCSToolbarBoostrap
{
static UVCSToolbarBoostrap()
{
mDropDownButton = new UVCSToolbarButton(
UVCSToolbar.Controller.PopupClicked,
Toolbar.RepaintToolbar);
Toolbar.AddSubToolbar(mDropDownButton);
UVCSToolbar.Controller.OnToolbarInvalidated += ToolbarInvalidated;
UVCSToolbar.Controller.OnToolbarButtonInvalidated += ButtonInvalidated;
// Wait for editor to be ready to invalidate the button
EditorApplication.update += InvalidateButtonWhenEditorIsReady;
}
static void InvalidateButtonWhenEditorIsReady()
{
if (EditorApplication.isUpdating ||
EditorApplication.isCompiling)
return;
EditorApplication.update -= InvalidateButtonWhenEditorIsReady;
ButtonInvalidated();
}
static void ToolbarInvalidated()
{
Toolbar.RepaintToolbar();
}
static void ButtonInvalidated()
{
UVCSToolbarButtonData buttonData = UVCSToolbar.Controller.GetButtonData();
mDropDownButton.BeginUpdate();
try
{
mDropDownButton.Text = buttonData.Text;
mDropDownButton.Tooltip = buttonData.Tooltip;
mDropDownButton.Icon = buttonData.Icon;
mDropDownButton.IsVisible = buttonData.IsVisible;
}
finally
{
mDropDownButton.EndUpdate();
}
}
static UVCSToolbarButton mDropDownButton;
}
}
#endif