60 lines
1.7 KiB
C#
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
|