A game about forced loneliness, made by TACStudios
at master 7.0 kB view raw
1using UnityEditor; 2 3using Codice.Client.Common; 4using PlasticGui; 5 6namespace Unity.PlasticSCM.Editor.UI 7{ 8 internal class UnityPlasticGuiMessage : GuiMessage.IGuiMessage 9 { 10 void GuiMessage.IGuiMessage.ShowMessage( 11 string title, 12 string message, 13 GuiMessage.GuiMessageType messageType) 14 { 15 if (!PlasticPlugin.ConnectionMonitor.IsConnected) 16 return; 17 18 EditorUtility.DisplayDialog( 19 GetDialogTitleForMessageType(title, messageType), 20 message, 21 PlasticLocalization.GetString(PlasticLocalization.Name.CloseButton)); 22 } 23 24 void GuiMessage.IGuiMessage.ShowError(string message) 25 { 26 if (!PlasticPlugin.ConnectionMonitor.IsConnected) 27 return; 28 29 EditorUtility.DisplayDialog( 30 GetDialogTitleForMessageType(null, GuiMessage.GuiMessageType.Critical), 31 message, 32 PlasticLocalization.GetString(PlasticLocalization.Name.CloseButton)); 33 } 34 35 GuiMessage.GuiMessageResponseButton GuiMessage.IGuiMessage.ShowQuestion( 36 string title, 37 string message, 38 string positiveActionButton, 39 string neutralActionButton, 40 string negativeActionButton) 41 { 42 if (string.IsNullOrEmpty(negativeActionButton)) 43 { 44 bool result = EditorUtility.DisplayDialog( 45 GetDialogTitle(title), 46 message, 47 positiveActionButton, 48 neutralActionButton); 49 50 return (result) ? 51 GuiMessage.GuiMessageResponseButton.Positive : 52 GuiMessage.GuiMessageResponseButton.Neutral; 53 } 54 55 int intResult = EditorUtility.DisplayDialogComplex( 56 GetDialogTitle(title), 57 message, 58 positiveActionButton, 59 neutralActionButton, 60 negativeActionButton); 61 62 return GetResponse(intResult); 63 } 64 65 bool GuiMessage.IGuiMessage.ShowQuestion( 66 string title, 67 string message, 68 string yesButton) 69 { 70 return EditorUtility.DisplayDialog( 71 GetDialogTitle(title), 72 message, 73 yesButton, 74 PlasticLocalization.GetString(PlasticLocalization.Name.NoButton)); 75 } 76 77 bool GuiMessage.IGuiMessage.ShowQuestionWithLearnMore( 78 string title, 79 string message, 80 string yesButton, 81 string noButton, 82 MultiLinkLabelData learnMoreContent) 83 { 84 return EditorUtility.DisplayDialog( 85 GetDialogTitle(title), 86 message, 87 yesButton, 88 noButton); 89 } 90 91 bool GuiMessage.IGuiMessage.ShowYesNoQuestion(string title, string message) 92 { 93 return EditorUtility.DisplayDialog( 94 GetDialogTitle(title), 95 message, 96 PlasticLocalization.GetString(PlasticLocalization.Name.YesButton), 97 PlasticLocalization.GetString(PlasticLocalization.Name.NoButton)); 98 } 99 100 GuiMessage.GuiMessageResponseButton GuiMessage.IGuiMessage.ShowYesNoCancelQuestion( 101 string title, string message) 102 { 103 int intResult = EditorUtility.DisplayDialogComplex( 104 GetDialogTitle(title), 105 message, 106 PlasticLocalization.GetString(PlasticLocalization.Name.YesButton), 107 PlasticLocalization.GetString(PlasticLocalization.Name.CancelButton), 108 PlasticLocalization.GetString(PlasticLocalization.Name.NoButton)); 109 110 return GetResponse(intResult); 111 } 112 113 bool GuiMessage.IGuiMessage.ShowYesNoQuestionWithType( 114 string title, string message, GuiMessage.GuiMessageType messageType) 115 { 116 return EditorUtility.DisplayDialog( 117 GetDialogTitleForMessageType(title, messageType), 118 message, 119 PlasticLocalization.GetString(PlasticLocalization.Name.YesButton), 120 PlasticLocalization.GetString(PlasticLocalization.Name.NoButton)); 121 } 122 123 GuiMessage.GuiMessageResponseButton GuiMessage.IGuiMessage.ShowQuestionWithCheckBox( 124 string title, 125 string message, 126 string positiveButtonText, 127 string neutralButtonText, 128 string negativeButtonText, 129 MultiLinkLabelData dontShowAgainContent, 130 out bool checkBoxValue) 131 { 132 return DialogWithCheckBox.Show( 133 title, 134 message, 135 positiveButtonText, 136 neutralButtonText, 137 negativeButtonText, 138 dontShowAgainContent, 139 ParentWindow.Get(), 140 out checkBoxValue); 141 } 142 143 static string GetDialogTitle(string title) 144 { 145 if (string.IsNullOrEmpty(title)) 146 return UnityConstants.PLASTIC_WINDOW_TITLE; 147 148 if (title.Contains(UnityConstants.PLASTIC_WINDOW_TITLE)) 149 return title; 150 151 return string.Format("{0} - {1}", 152 UnityConstants.PLASTIC_WINDOW_TITLE, title); 153 } 154 155 static string GetDialogTitleForMessageType( 156 string title, 157 GuiMessage.GuiMessageType messageType) 158 { 159 string alertTypeText = GetMessageTypeText(messageType); 160 return string.Format("{0} - {1}", alertTypeText, GetDialogTitle(title)); 161 } 162 163 static string GetMessageTypeText(GuiMessage.GuiMessageType messageType) 164 { 165 string alertTypeText = string.Empty; 166 167 switch (messageType) 168 { 169 case GuiMessage.GuiMessageType.Informational: 170 alertTypeText = "Information"; 171 break; 172 case GuiMessage.GuiMessageType.Warning: 173 alertTypeText = "Warning"; 174 break; 175 case GuiMessage.GuiMessageType.Critical: 176 alertTypeText = "Error"; 177 break; 178 case GuiMessage.GuiMessageType.Question: 179 alertTypeText = "Question"; 180 break; 181 } 182 183 return alertTypeText; 184 } 185 186 static GuiMessage.GuiMessageResponseButton GetResponse(int dialogResult) 187 { 188 switch (dialogResult) 189 { 190 case 0: 191 return GuiMessage.GuiMessageResponseButton.Positive; 192 case 1: 193 return GuiMessage.GuiMessageResponseButton.Neutral; 194 case 2: 195 return GuiMessage.GuiMessageResponseButton.Negative; 196 default: 197 return GuiMessage.GuiMessageResponseButton.Neutral; 198 } 199 } 200 } 201}