No Description
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.

SwitchModeConfirmationDialog.cs 3.4KB

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