#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