arenos-nexus/Arenos Nexus/Library/PackageCache/com.unity.collab-proxy@ab839cc7d2ad/Editor/Developer/IncomingChangesNotification.cs

88 lines
2.6 KiB
C#
Raw Normal View History

2025-09-25 22:01:28 +02:00
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;
}
}