68 lines
1.8 KiB
C#
68 lines
1.8 KiB
C#
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
using PlasticGui;
|
|
using Unity.PlasticSCM.Editor;
|
|
using Unity.PlasticSCM.Editor.Configuration;
|
|
|
|
namespace Unity.Cloud.Collaborate
|
|
{
|
|
[InitializeOnLoad]
|
|
internal static class ToolbarBootstrap
|
|
{
|
|
static ToolbarBootstrap()
|
|
{
|
|
if (ToolConfig.EnableNewUVCSToolbarButtonTokenExists())
|
|
return;
|
|
|
|
ToolbarButton.Initialize(UVCSPlugin.Instance);
|
|
}
|
|
}
|
|
|
|
internal class ToolbarButton : SubToolbar
|
|
{
|
|
internal static void Initialize(UVCSPlugin uvcsPlugin)
|
|
{
|
|
ToolbarButton toolbar = new ToolbarButton(uvcsPlugin);
|
|
Toolbar.AddSubToolbar(toolbar);
|
|
}
|
|
|
|
ToolbarButton(UVCSPlugin uvcsPlugin)
|
|
{
|
|
mUVCSPlugin = uvcsPlugin;
|
|
mButtonGUIContent = new GUIContent(
|
|
string.Empty, PlasticLocalization.Name.UnityVersionControl.GetString());
|
|
|
|
Width = 32f;
|
|
|
|
mUVCSPlugin.OnNotificationStatusUpdated += OnUVCSNotificationUpdated;
|
|
}
|
|
|
|
~ToolbarButton()
|
|
{
|
|
mUVCSPlugin.OnNotificationStatusUpdated -= OnUVCSNotificationUpdated;
|
|
}
|
|
|
|
void OnUVCSNotificationUpdated()
|
|
{
|
|
Toolbar.RepaintToolbar();
|
|
}
|
|
|
|
public override void OnGUI(Rect rect)
|
|
{
|
|
Texture icon = mUVCSPlugin.GetPluginStatusIcon();
|
|
EditorGUIUtility.SetIconSize(new Vector2(16, 16));
|
|
|
|
mButtonGUIContent.image = icon;
|
|
|
|
if (GUI.Button(rect, mButtonGUIContent, "AppCommand"))
|
|
SwitchUVCSPlugin.OnIfNeeded(mUVCSPlugin);
|
|
|
|
EditorGUIUtility.SetIconSize(Vector2.zero);
|
|
}
|
|
|
|
readonly GUIContent mButtonGUIContent;
|
|
readonly UVCSPlugin mUVCSPlugin;
|
|
}
|
|
}
|