Files
GameDevTVObstacleDodge/Library/PackageCache/com.unity.collab-proxy@1ec4e416a4af/Editor/Developer/IncomingChangesNotification.cs

91 lines
2.7 KiB
C#

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