A game about forced loneliness, made by TACStudios
1using UnityEngine; 2 3using UnityEditor; 4 5using PlasticGui; 6using Unity.PlasticSCM.Editor.UI; 7using Unity.PlasticSCM.Editor.UI.Progress; 8using Codice.Client.Common.Authentication; 9using Codice.Client.Common.Connection; 10using Codice.CM.Common; 11using PlasticGui.WorkspaceWindow.Home; 12 13namespace Unity.PlasticSCM.Editor.Configuration 14{ 15 internal class CredentialsDialog : PlasticDialog 16 { 17 protected override Rect DefaultRect 18 { 19 get 20 { 21 var baseRect = base.DefaultRect; 22 return new Rect(baseRect.x, baseRect.y, 525, 250); 23 } 24 } 25 26 internal static AskCredentialsToUser.DialogData RequestCredentials( 27 string server, 28 SEIDWorkingMode seidWorkingMode, 29 EditorWindow parentWindow) 30 { 31 CredentialsDialog dialog = Create( 32 server, seidWorkingMode, new ProgressControlsForDialogs()); 33 34 ResponseType dialogResult = dialog.RunModal(parentWindow); 35 36 return dialog.BuildCredentialsDialogData(dialogResult); 37 } 38 39 protected override void OnModalGUI() 40 { 41 Title(PlasticLocalization.Name.CredentialsDialogTitle.GetString()); 42 43 Paragraph(PlasticLocalization.Name.CredentialsDialogExplanation.GetString(mOrganizationInfo.DisplayName)); 44 45 GUILayout.Space(5); 46 47 DoEntriesArea(); 48 49 GUILayout.Space(10); 50 51 DrawProgressForDialogs.For( 52 mProgressControls.ProgressData); 53 54 GUILayout.Space(10); 55 56 DoButtonsArea(); 57 } 58 59 protected override string GetTitle() 60 { 61 return PlasticLocalization.Name.CredentialsDialogTitle.GetString(); 62 } 63 64 AskCredentialsToUser.DialogData BuildCredentialsDialogData( 65 ResponseType dialogResult) 66 { 67 return dialogResult == ResponseType.Ok 68 ? AskCredentialsToUser.DialogData.Success( 69 new Credentials( 70 new SEID(mUser, false, mPassword), 71 mSeidWorkingMode)) 72 : AskCredentialsToUser.DialogData.Failure(mSeidWorkingMode); 73 } 74 75 void DoEntriesArea() 76 { 77 mUser = TextEntry(PlasticLocalization.Name.UserName.GetString(), 78 mUser, ENTRY_WIDTH, ENTRY_X); 79 80 GUILayout.Space(5); 81 82 mPassword = PasswordEntry(PlasticLocalization.Name.Password.GetString(), 83 mPassword, ENTRY_WIDTH, ENTRY_X); 84 85 GUILayout.Space(5); 86 87 mSaveProfile = ToggleEntry(PlasticLocalization.Name.RememberCredentialsAsProfile.GetString(), 88 mSaveProfile, ENTRY_WIDTH, ENTRY_X); 89 } 90 91 void DoButtonsArea() 92 { 93 using (new EditorGUILayout.HorizontalScope()) 94 { 95 GUILayout.FlexibleSpace(); 96 97 if (Application.platform == RuntimePlatform.WindowsEditor) 98 { 99 DoOkButton(); 100 DoCancelButton(); 101 return; 102 } 103 104 DoCancelButton(); 105 DoOkButton(); 106 } 107 } 108 109 void DoOkButton() 110 { 111 if (!AcceptButton(PlasticLocalization.Name.OkButton.GetString())) 112 return; 113 114 OkButtonWithValidationAction(); 115 } 116 117 void DoCancelButton() 118 { 119 if (!NormalButton(PlasticLocalization.Name.CancelButton.GetString())) 120 return; 121 122 CancelButtonAction(); 123 } 124 125 void OkButtonWithValidationAction() 126 { 127 CredentialsDialogValidation.Validate(mUser, mPassword, this, mProgressControls); 128 } 129 130 static CredentialsDialog Create( 131 string server, 132 SEIDWorkingMode seidWorkingMode, 133 ProgressControlsForDialogs progressControls) 134 { 135 var instance = CreateInstance<CredentialsDialog>(); 136 instance.mOrganizationInfo = OrganizationsInformation.FromServer(server); 137 instance.mSeidWorkingMode = seidWorkingMode; 138 instance.mProgressControls = progressControls; 139 instance.mEnterKeyAction = instance.OkButtonWithValidationAction; 140 instance.mEscapeKeyAction = instance.CancelButtonAction; 141 return instance; 142 } 143 144 string mUser; 145 string mPassword = string.Empty; 146 147 ProgressControlsForDialogs mProgressControls; 148 bool mSaveProfile; 149 150 OrganizationInfo mOrganizationInfo; 151 SEIDWorkingMode mSeidWorkingMode; 152 153 const float ENTRY_WIDTH = 345f; 154 const float ENTRY_X = 150f; 155 } 156}