88 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			88 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
|  | using UnityEngine; | ||
|  | 
 | ||
|  | using Codice.CM.Common; | ||
|  | using PlasticGui; | ||
|  | using PlasticGui.WorkspaceWindow.PendingChanges; | ||
|  | using Unity.PlasticSCM.Editor.StatusBar; | ||
|  | using Unity.PlasticSCM.Editor.UI; | ||
|  | 
 | ||
|  | namespace Unity.PlasticSCM.Editor.Developer | ||
|  | { | ||
|  |     internal class IncomingChangesNotification : | ||
|  |         WindowStatusBar.IIncomingChangesNotification | ||
|  |     { | ||
|  |         internal IncomingChangesNotification( | ||
|  |             WorkspaceInfo wkInfo, | ||
|  |             IMergeViewLauncher mergeViewLauncher) | ||
|  |         { | ||
|  |             mWkInfo = wkInfo; | ||
|  |             mMergeViewLauncher = mergeViewLauncher; | ||
|  |         } | ||
|  | 
 | ||
|  |         internal void SetWorkspaceWindow(WorkspaceWindow workspaceWindow) | ||
|  |         { | ||
|  |             mWorkspaceWindow = workspaceWindow; | ||
|  |         } | ||
|  | 
 | ||
|  |         bool WindowStatusBar.IIncomingChangesNotification.HasNotification | ||
|  |         { | ||
|  |             get { return mHasNotification; } | ||
|  |         } | ||
|  | 
 | ||
|  |         void WindowStatusBar.IIncomingChangesNotification.OnGUI() | ||
|  |         { | ||
|  |             Texture2D icon = mData.Status == UVCSNotificationStatus.IncomingChangesStatus.Conflicts ? | ||
|  |                 Images.GetConflictedIcon() : | ||
|  |                 Images.GetOutOfSyncIcon(); | ||
|  | 
 | ||
|  |             WindowStatusBar.DrawIcon(icon); | ||
|  | 
 | ||
|  |             WindowStatusBar.DrawNotification(new GUIContentNotification( | ||
|  |                 new GUIContent(mData.InfoText))); | ||
|  | 
 | ||
|  |             if (WindowStatusBar.DrawButton(new GUIContent(mData.ActionText, mData.TooltipText))) | ||
|  |             { | ||
|  |                 if (mData.HasUpdateAction) | ||
|  |                 { | ||
|  |                     mWorkspaceWindow.UpdateWorkspace(); | ||
|  |                     return; | ||
|  |                 } | ||
|  | 
 | ||
|  |                 ShowIncomingChanges.FromNotificationBar(mWkInfo, mMergeViewLauncher); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         void WindowStatusBar.IIncomingChangesNotification.Show( | ||
|  |             string infoText, | ||
|  |             string actionText, | ||
|  |             string tooltipText, | ||
|  |             bool hasUpdateAction, | ||
|  |             UVCSNotificationStatus.IncomingChangesStatus status) | ||
|  |         { | ||
|  |             mData.UpdateData( | ||
|  |                 infoText, | ||
|  |                 actionText, | ||
|  |                 tooltipText, | ||
|  |                 hasUpdateAction, | ||
|  |                 status); | ||
|  | 
 | ||
|  |             mHasNotification = true; | ||
|  |         } | ||
|  | 
 | ||
|  |         void WindowStatusBar.IIncomingChangesNotification.Hide() | ||
|  |         { | ||
|  |             mData.Clear(); | ||
|  | 
 | ||
|  |             mHasNotification = false; | ||
|  |         } | ||
|  | 
 | ||
|  |         bool mHasNotification; | ||
|  |         WindowStatusBar.IncomingChangesNotificationData mData = | ||
|  |             new WindowStatusBar.IncomingChangesNotificationData(); | ||
|  |         WorkspaceWindow mWorkspaceWindow; | ||
|  | 
 | ||
|  |         readonly IMergeViewLauncher mMergeViewLauncher; | ||
|  |         readonly WorkspaceInfo mWkInfo; | ||
|  |     } | ||
|  | } |