study/first_study/Library/PackageCache/com.unity.collab-proxy@1ec4e416a4af/Editor/UnityInternals/UVCSToolbarBoostrap.cs
jh04010421 739d49f1a0 Unity | 2026.01.20
수업 실습 파일
2026-01-20 11:01:57 +09:00

60 lines
1.7 KiB
C#

#if UNITY_6000_3_OR_NEWER
using UnityEditor;
using UnityEngine;
using UnityEditor.Toolbars;
using Unity.PlasticSCM.Editor.Toolbar;
namespace Assets.Plugins.PlasticSCM.Editor.Toolbar
{
[InitializeOnLoad]
static class UVCSToolbarBoostrap
{
static UVCSToolbarBoostrap()
{
UVCSToolbar.Controller.OnToolbarInvalidated += RebuildToolbarButton;
UVCSToolbar.Controller.OnToolbarButtonInvalidated += RebuildToolbarButton;
}
[MainToolbarElement(ToolbarController.ToolbarButtonPath, defaultDockPosition = MainToolbarDockPosition.Left, defaultDockIndex = 13)]
[UnityOnlyMainToolbarPreset]
static MainToolbarDropdown CreateControl()
{
UVCSToolbarButtonData buttonData = UVCSToolbar.Controller.GetButtonData();
if (!buttonData.IsVisible)
return null;
return new MainToolbarDropdown(
new MainToolbarContent(
Truncate(buttonData.Text, mMaxTextLength),
buttonData.Icon as Texture2D,
buttonData.Tooltip),
OpenDropdown);
}
static string Truncate(string text, int maxTextLength)
{
const string ellipsis = "...";
if (text.Length <= maxTextLength)
return text;
return string.Concat(text.Substring(0, maxTextLength - ellipsis.Length), ellipsis);
}
static void RebuildToolbarButton()
{
MainToolbar.Refresh(ToolbarController.ToolbarButtonPath);
}
static void OpenDropdown(Rect rect)
{
UVCSToolbar.Controller.PopupClicked(rect);
}
const int mMaxTextLength = 35;
}
}
#endif