70 lines
1.9 KiB
C#
70 lines
1.9 KiB
C#
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
using PlasticGui;
|
|
using Unity.PlasticSCM.Editor;
|
|
using Unity.PlasticSCM.Editor.UI;
|
|
|
|
namespace Unity.Cloud.Collaborate
|
|
{
|
|
[InitializeOnLoad]
|
|
internal static class ToolbarBootstrap
|
|
{
|
|
static ToolbarBootstrap()
|
|
{
|
|
CooldownWindowDelayer cooldownInitializeAction = new CooldownWindowDelayer(
|
|
ToolbarButton.InitializeIfNeeded, UnityConstants.PLUGIN_DELAYED_INITIALIZE_INTERVAL);
|
|
cooldownInitializeAction.Ping();
|
|
}
|
|
}
|
|
|
|
internal class ToolbarButton : SubToolbar
|
|
{
|
|
internal static void InitializeIfNeeded()
|
|
{
|
|
if (CollabPlugin.IsEnabled())
|
|
return;
|
|
|
|
ToolbarButton toolbar = new ToolbarButton { Width = 32f };
|
|
Toolbar.AddSubToolbar(toolbar);
|
|
}
|
|
|
|
ToolbarButton()
|
|
{
|
|
PlasticPlugin.OnNotificationUpdated += OnPlasticNotificationUpdated;
|
|
}
|
|
|
|
~ToolbarButton()
|
|
{
|
|
PlasticPlugin.OnNotificationUpdated -= OnPlasticNotificationUpdated;
|
|
}
|
|
|
|
void OnPlasticNotificationUpdated()
|
|
{
|
|
Toolbar.RepaintToolbar();
|
|
}
|
|
|
|
public override void OnGUI(Rect rect)
|
|
{
|
|
using (new EditorGUI.DisabledScope(EditorApplication.isPlaying))
|
|
{
|
|
Texture icon = PlasticPlugin.GetPluginStatusIcon();
|
|
EditorGUIUtility.SetIconSize(new Vector2(16, 16));
|
|
|
|
mButtonGUIContent.image = icon;
|
|
|
|
if (GUI.Button(rect, mButtonGUIContent, "AppCommand"))
|
|
{
|
|
PlasticPlugin.OpenPlasticWindowDisablingOfflineModeIfNeeded();
|
|
}
|
|
|
|
EditorGUIUtility.SetIconSize(Vector2.zero);
|
|
}
|
|
}
|
|
|
|
static GUIContent mButtonGUIContent = new GUIContent(
|
|
string.Empty, PlasticLocalization.GetString(
|
|
PlasticLocalization.Name.UnityVersionControl));
|
|
}
|
|
}
|