A game about forced loneliness, made by TACStudios
1using UnityEditor;
2using UnityEngine;
3
4using PlasticGui;
5using Unity.PlasticSCM.Editor.UI;
6
7namespace Unity.PlasticSCM.Editor
8{
9 internal class SwitchModeConfirmationDialog : PlasticDialog
10 {
11 protected override Rect DefaultRect
12 {
13 get
14 {
15 var baseRect = base.DefaultRect;
16 return new Rect(baseRect.x, baseRect.y, 560, 180);
17 }
18 }
19
20 internal static bool SwitchMode(
21 bool isGluonMode,
22 EditorWindow parentWindow)
23 {
24 SwitchModeConfirmationDialog dialog = Create(isGluonMode);
25 return dialog.RunModal(parentWindow) == ResponseType.Ok;
26 }
27
28 protected override void OnModalGUI()
29 {
30 Title(PlasticLocalization.GetString(
31 PlasticLocalization.Name.SwitchModeConfirmationDialogTitle));
32
33 DoExplanationArea(mIsGluonMode);
34
35 GUILayout.Space(20);
36
37 DoButtonsArea();
38 }
39
40 protected override string GetTitle()
41 {
42 return PlasticLocalization.GetString(
43 PlasticLocalization.Name.SwitchModeConfirmationDialogTitle);
44 }
45
46 void DoExplanationArea(bool isGluonMode)
47 {
48 PlasticLocalization.Name currentMode = isGluonMode ?
49 PlasticLocalization.Name.GluonMode :
50 PlasticLocalization.Name.DeveloperMode;
51
52 PlasticLocalization.Name selectedMode = isGluonMode ?
53 PlasticLocalization.Name.DeveloperMode :
54 PlasticLocalization.Name.GluonMode;
55
56 string formattedExplanation = PlasticLocalization.GetString(
57 PlasticLocalization.Name.SwitchModeConfirmationDialogExplanation,
58 PlasticLocalization.GetString(currentMode),
59 PlasticLocalization.GetString(selectedMode));
60
61 TextBlockWithEndLink(UnityUrl.UnityWebsite.Gluon(), formattedExplanation, UnityStyles.Paragraph);
62 }
63
64 void DoButtonsArea()
65 {
66 using (new EditorGUILayout.HorizontalScope())
67 {
68 GUILayout.FlexibleSpace();
69
70 if (Application.platform == RuntimePlatform.WindowsEditor)
71 {
72 DoSwitchButton();
73 DoCancelButton();
74 return;
75 }
76
77 DoCancelButton();
78 DoSwitchButton();
79 }
80 }
81
82 void DoSwitchButton()
83 {
84 if (!AcceptButton(PlasticLocalization.GetString(
85 PlasticLocalization.Name.SwitchButton)))
86 return;
87
88 OkButtonAction();
89 }
90
91 void DoCancelButton()
92 {
93 if (!NormalButton(PlasticLocalization.GetString(
94 PlasticLocalization.Name.CancelButton)))
95 return;
96
97 CancelButtonAction();
98 }
99
100 static SwitchModeConfirmationDialog Create(
101 bool isGluonMode)
102 {
103 var instance = CreateInstance<SwitchModeConfirmationDialog>();
104 instance.mIsGluonMode = isGluonMode;
105 instance.mEnterKeyAction = instance.OkButtonAction;
106 instance.mEscapeKeyAction = instance.CancelButtonAction;
107 return instance;
108 }
109
110 bool mIsGluonMode;
111 }
112}