34 lines
		
	
	
		
			861 B
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			34 lines
		
	
	
		
			861 B
		
	
	
	
		
			C#
		
	
	
	
	
	
|  | using UnityEditor; | ||
|  | using UnityEngine; | ||
|  | 
 | ||
|  | using PlasticGui; | ||
|  | 
 | ||
|  | namespace Unity.PlasticSCM.Editor.UI | ||
|  | { | ||
|  |     internal static class DrawCopyableLabel | ||
|  |     { | ||
|  |         internal static void For(string label, GUIStyle style) | ||
|  |         { | ||
|  |             Rect rect = GUILayoutUtility.GetRect( | ||
|  |                 new GUIContent(label), style); | ||
|  | 
 | ||
|  |             GUI.Label(rect, label, style); | ||
|  | 
 | ||
|  |             if (Event.current.type != EventType.ContextClick) | ||
|  |                 return; | ||
|  | 
 | ||
|  |             if (!rect.Contains(Event.current.mousePosition)) | ||
|  |                 return; | ||
|  | 
 | ||
|  |             GenericMenu menu = new GenericMenu(); | ||
|  |             menu.AddItem( | ||
|  |                 new GUIContent(PlasticLocalization.Name.Copy.GetString()), | ||
|  |                 false, | ||
|  |                 () => EditorGUIUtility.systemCopyBuffer = label); | ||
|  |             menu.ShowAsContext(); | ||
|  | 
 | ||
|  |             Event.current.Use(); | ||
|  |         } | ||
|  |     } | ||
|  | } |