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; | ||
|  |     } | ||
|  | } |