You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
3.4 KiB
116 lines
3.4 KiB
using UnityEditor; |
|
using UnityEngine; |
|
|
|
using PlasticGui; |
|
using Unity.PlasticSCM.Editor.UI; |
|
|
|
namespace Unity.PlasticSCM.Editor |
|
{ |
|
internal class SwitchModeConfirmationDialog : PlasticDialog |
|
{ |
|
protected override Rect DefaultRect |
|
{ |
|
get |
|
{ |
|
var baseRect = base.DefaultRect; |
|
return new Rect(baseRect.x, baseRect.y, 560, 180); |
|
} |
|
} |
|
|
|
internal static bool SwitchMode( |
|
bool isGluonMode, |
|
EditorWindow parentWindow) |
|
{ |
|
SwitchModeConfirmationDialog dialog = Create(isGluonMode); |
|
return dialog.RunModal(parentWindow) == ResponseType.Ok; |
|
} |
|
|
|
protected override void OnModalGUI() |
|
{ |
|
Title(PlasticLocalization.GetString( |
|
PlasticLocalization.Name.SwitchModeConfirmationDialogTitle)); |
|
|
|
DoExplanationArea(mIsGluonMode); |
|
|
|
GUILayout.Space(20); |
|
|
|
DoButtonsArea(); |
|
} |
|
|
|
protected override string GetTitle() |
|
{ |
|
return PlasticLocalization.GetString( |
|
PlasticLocalization.Name.SwitchModeConfirmationDialogTitle); |
|
} |
|
|
|
void DoExplanationArea(bool isGluonMode) |
|
{ |
|
PlasticLocalization.Name currentMode = isGluonMode ? |
|
PlasticLocalization.Name.GluonMode : |
|
PlasticLocalization.Name.DeveloperMode; |
|
|
|
PlasticLocalization.Name selectedMode = isGluonMode ? |
|
PlasticLocalization.Name.DeveloperMode : |
|
PlasticLocalization.Name.GluonMode; |
|
|
|
string formattedExplanation = PlasticLocalization.GetString( |
|
PlasticLocalization.Name.SwitchModeConfirmationDialogExplanation, |
|
PlasticLocalization.GetString(currentMode), |
|
PlasticLocalization.GetString(selectedMode), |
|
"{0}"); |
|
|
|
TextBlockWithEndLink( |
|
GLUON_HELP_URL, formattedExplanation, UnityStyles.Paragraph); |
|
} |
|
|
|
void DoButtonsArea() |
|
{ |
|
using (new EditorGUILayout.HorizontalScope()) |
|
{ |
|
GUILayout.FlexibleSpace(); |
|
|
|
if (Application.platform == RuntimePlatform.WindowsEditor) |
|
{ |
|
DoSwitchButton(); |
|
DoCancelButton(); |
|
return; |
|
} |
|
|
|
DoCancelButton(); |
|
DoSwitchButton(); |
|
} |
|
} |
|
|
|
void DoSwitchButton() |
|
{ |
|
if (!AcceptButton(PlasticLocalization.GetString( |
|
PlasticLocalization.Name.SwitchButton))) |
|
return; |
|
|
|
OkButtonAction(); |
|
} |
|
|
|
void DoCancelButton() |
|
{ |
|
if (!NormalButton(PlasticLocalization.GetString( |
|
PlasticLocalization.Name.CancelButton))) |
|
return; |
|
|
|
CancelButtonAction(); |
|
} |
|
|
|
static SwitchModeConfirmationDialog Create( |
|
bool isGluonMode) |
|
{ |
|
var instance = CreateInstance<SwitchModeConfirmationDialog>(); |
|
instance.mIsGluonMode = isGluonMode; |
|
instance.mEnterKeyAction = instance.OkButtonAction; |
|
instance.mEscapeKeyAction = instance.CancelButtonAction; |
|
return instance; |
|
} |
|
|
|
bool mIsGluonMode; |
|
|
|
const string GLUON_HELP_URL = "https://www.plasticscm.com/gluon"; |
|
} |
|
}
|
|
|