SwitchModeConfirmationDialog.cs
3.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
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";
}
}