123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- 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";
- }
- }
|