202 lines
6.9 KiB
C#
202 lines
6.9 KiB
C#
using UnityEditor;
|
|
|
|
using Codice.Client.Common;
|
|
using PlasticGui;
|
|
|
|
namespace Unity.PlasticSCM.Editor.UI
|
|
{
|
|
internal class UnityPlasticGuiMessage : GuiMessage.IGuiMessage
|
|
{
|
|
void GuiMessage.IGuiMessage.ShowMessage(
|
|
string title,
|
|
string message,
|
|
GuiMessage.GuiMessageType messageType)
|
|
{
|
|
if (!PlasticPlugin.ConnectionMonitor.IsConnected)
|
|
return;
|
|
|
|
EditorUtility.DisplayDialog(
|
|
GetDialogTitleForMessageType(title, messageType),
|
|
message,
|
|
PlasticLocalization.GetString(PlasticLocalization.Name.CloseButton));
|
|
}
|
|
|
|
void GuiMessage.IGuiMessage.ShowError(string message)
|
|
{
|
|
if (!PlasticPlugin.ConnectionMonitor.IsConnected)
|
|
return;
|
|
|
|
EditorUtility.DisplayDialog(
|
|
GetDialogTitleForMessageType(null, GuiMessage.GuiMessageType.Critical),
|
|
message,
|
|
PlasticLocalization.GetString(PlasticLocalization.Name.CloseButton));
|
|
}
|
|
|
|
GuiMessage.GuiMessageResponseButton GuiMessage.IGuiMessage.ShowQuestion(
|
|
string title,
|
|
string message,
|
|
string positiveActionButton,
|
|
string neutralActionButton,
|
|
string negativeActionButton)
|
|
{
|
|
if (string.IsNullOrEmpty(negativeActionButton))
|
|
{
|
|
bool result = EditorUtility.DisplayDialog(
|
|
GetDialogTitle(title),
|
|
message,
|
|
positiveActionButton,
|
|
neutralActionButton);
|
|
|
|
return (result) ?
|
|
GuiMessage.GuiMessageResponseButton.Positive :
|
|
GuiMessage.GuiMessageResponseButton.Neutral;
|
|
}
|
|
|
|
int intResult = EditorUtility.DisplayDialogComplex(
|
|
GetDialogTitle(title),
|
|
message,
|
|
positiveActionButton,
|
|
neutralActionButton,
|
|
negativeActionButton);
|
|
|
|
return GetResponse(intResult);
|
|
}
|
|
|
|
bool GuiMessage.IGuiMessage.ShowQuestion(
|
|
string title,
|
|
string message,
|
|
string yesButton)
|
|
{
|
|
return EditorUtility.DisplayDialog(
|
|
GetDialogTitle(title),
|
|
message,
|
|
yesButton,
|
|
PlasticLocalization.GetString(PlasticLocalization.Name.NoButton));
|
|
}
|
|
|
|
bool GuiMessage.IGuiMessage.ShowQuestionWithLearnMore(
|
|
string title,
|
|
string message,
|
|
string yesButton,
|
|
string noButton,
|
|
MultiLinkLabelData learnMoreContent)
|
|
{
|
|
return EditorUtility.DisplayDialog(
|
|
GetDialogTitle(title),
|
|
message,
|
|
yesButton,
|
|
noButton);
|
|
}
|
|
|
|
bool GuiMessage.IGuiMessage.ShowYesNoQuestion(string title, string message)
|
|
{
|
|
return EditorUtility.DisplayDialog(
|
|
GetDialogTitle(title),
|
|
message,
|
|
PlasticLocalization.GetString(PlasticLocalization.Name.YesButton),
|
|
PlasticLocalization.GetString(PlasticLocalization.Name.NoButton));
|
|
}
|
|
|
|
GuiMessage.GuiMessageResponseButton GuiMessage.IGuiMessage.ShowYesNoCancelQuestion(
|
|
string title, string message)
|
|
{
|
|
int intResult = EditorUtility.DisplayDialogComplex(
|
|
GetDialogTitle(title),
|
|
message,
|
|
PlasticLocalization.GetString(PlasticLocalization.Name.YesButton),
|
|
PlasticLocalization.GetString(PlasticLocalization.Name.CancelButton),
|
|
PlasticLocalization.GetString(PlasticLocalization.Name.NoButton));
|
|
|
|
return GetResponse(intResult);
|
|
}
|
|
|
|
bool GuiMessage.IGuiMessage.ShowYesNoQuestionWithType(
|
|
string title, string message, GuiMessage.GuiMessageType messageType)
|
|
{
|
|
return EditorUtility.DisplayDialog(
|
|
GetDialogTitleForMessageType(title, messageType),
|
|
message,
|
|
PlasticLocalization.GetString(PlasticLocalization.Name.YesButton),
|
|
PlasticLocalization.GetString(PlasticLocalization.Name.NoButton));
|
|
}
|
|
|
|
GuiMessage.GuiMessageResponseButton GuiMessage.IGuiMessage.ShowQuestionWithCheckBox(
|
|
string title,
|
|
string message,
|
|
string positiveButtonText,
|
|
string neutralButtonText,
|
|
string negativeButtonText,
|
|
MultiLinkLabelData dontShowAgainContent,
|
|
out bool checkBoxValue)
|
|
{
|
|
return DialogWithCheckBox.Show(
|
|
title,
|
|
message,
|
|
positiveButtonText,
|
|
neutralButtonText,
|
|
negativeButtonText,
|
|
dontShowAgainContent,
|
|
ParentWindow.Get(),
|
|
out checkBoxValue);
|
|
}
|
|
|
|
static string GetDialogTitle(string title)
|
|
{
|
|
if (string.IsNullOrEmpty(title))
|
|
return UnityConstants.PLASTIC_WINDOW_TITLE;
|
|
|
|
if (title.Contains(UnityConstants.PLASTIC_WINDOW_TITLE))
|
|
return title;
|
|
|
|
return string.Format("{0} - {1}",
|
|
UnityConstants.PLASTIC_WINDOW_TITLE, title);
|
|
}
|
|
|
|
static string GetDialogTitleForMessageType(
|
|
string title,
|
|
GuiMessage.GuiMessageType messageType)
|
|
{
|
|
string alertTypeText = GetMessageTypeText(messageType);
|
|
return string.Format("{0} - {1}", alertTypeText, GetDialogTitle(title));
|
|
}
|
|
|
|
static string GetMessageTypeText(GuiMessage.GuiMessageType messageType)
|
|
{
|
|
string alertTypeText = string.Empty;
|
|
|
|
switch (messageType)
|
|
{
|
|
case GuiMessage.GuiMessageType.Informational:
|
|
alertTypeText = "Information";
|
|
break;
|
|
case GuiMessage.GuiMessageType.Warning:
|
|
alertTypeText = "Warning";
|
|
break;
|
|
case GuiMessage.GuiMessageType.Critical:
|
|
alertTypeText = "Error";
|
|
break;
|
|
case GuiMessage.GuiMessageType.Question:
|
|
alertTypeText = "Question";
|
|
break;
|
|
}
|
|
|
|
return alertTypeText;
|
|
}
|
|
|
|
static GuiMessage.GuiMessageResponseButton GetResponse(int dialogResult)
|
|
{
|
|
switch (dialogResult)
|
|
{
|
|
case 0:
|
|
return GuiMessage.GuiMessageResponseButton.Positive;
|
|
case 1:
|
|
return GuiMessage.GuiMessageResponseButton.Neutral;
|
|
case 2:
|
|
return GuiMessage.GuiMessageResponseButton.Negative;
|
|
default:
|
|
return GuiMessage.GuiMessageResponseButton.Neutral;
|
|
}
|
|
}
|
|
}
|
|
}
|