public static ResultData Show(UIControl parent, string text, string caption, EMessageBoxButtons buttons) { var window = CreateWindow(parent, text, caption); if (window == null) { return(null); } EDialogResult[] results = null; switch (buttons) { case EMessageBoxButtons.OK: results = new EDialogResult[] { EDialogResult.OK }; break; case EMessageBoxButtons.OKCancel: results = new EDialogResult[] { EDialogResult.OK, EDialogResult.Cancel }; break; case EMessageBoxButtons.AbortRetryIgnore: results = new EDialogResult[] { EDialogResult.Abort, EDialogResult.Retry, EDialogResult.Ignore }; break; case EMessageBoxButtons.YesNoCancel: results = new EDialogResult[] { EDialogResult.Yes, EDialogResult.No, EDialogResult.Cancel }; break; case EMessageBoxButtons.YesNo: results = new EDialogResult[] { EDialogResult.Yes, EDialogResult.No }; break; case EMessageBoxButtons.RetryCancel: results = new EDialogResult[] { EDialogResult.Retry, EDialogResult.Cancel }; break; } var resultData = new ResultData(); ConfigureButtons(window, results, resultData); //add to parent and enable parent.AddComponent(window); return(resultData); }
protected override void OnGUI() { if (string.IsNullOrEmpty(message)) { var rect = new Rect(20, Size.y / 2 - 8, Size.x - 35, 16); value = EditorGUI.TextField(rect, value); } else { var recta = new Rect(20, Size.y / 2 - 20, Size.x - 35, 16); EditorGUI.LabelField(recta, message, style); var rect = new Rect(20, Size.y / 2 - 4, Size.x - 35, 16); value = EditorGUI.TextField(rect, value); } if (GUI.Button(new Rect(Size.x - 175, Size.y - 35, 75, 20), "OK")) { result = EDialogResult.OK; Close(); } if (GUI.Button(new Rect(Size.x - 90, Size.y - 35, 75, 20), "Cancel")) { result = EDialogResult.Cancel; Close(); } if (Input.KeyReleased(KeyCode.KeypadEnter) || Input.KeyReleased(KeyCode.Return)) { result = EDialogResult.OK; Close(); } if (Input.KeyReleased(KeyCode.Escape)) { result = EDialogResult.Cancel; Close(); } }
protected override void OnGUI() { var rect = new Rect(20, 20, Size.x - 35, Size.y - 60); EditorGUI.LabelField(rect, message, style); switch (buttons) { case EMessageBoxButtons.OK: if (GUI.Button(new Rect(Size.x - 90, Size.y - 35, 75, 20), "OK")) { result = EDialogResult.OK; Close(); } break; case EMessageBoxButtons.OKCancel: if (GUI.Button(new Rect(Size.x - 175, Size.y - 35, 75, 20), "OK")) { result = EDialogResult.OK; Close(); } if (GUI.Button(new Rect(Size.x - 90, Size.y - 35, 75, 20), "Cancel")) { result = EDialogResult.Cancel; Close(); } break; case EMessageBoxButtons.YesNo: if (GUI.Button(new Rect(Size.x - 175, Size.y - 35, 75, 20), "Yes")) { result = EDialogResult.Yes; Close(); } if (GUI.Button(new Rect(Size.x - 90, Size.y - 35, 75, 20), "No")) { result = EDialogResult.No; Close(); } break; case EMessageBoxButtons.YesNoCancel: if (GUI.Button(new Rect(Size.x - 260, Size.y - 35, 75, 20), "Yes")) { result = EDialogResult.Yes; Close(); } if (GUI.Button(new Rect(Size.x - 175, Size.y - 35, 75, 20), "No")) { result = EDialogResult.No; Close(); } if (GUI.Button(new Rect(Size.x - 90, Size.y - 35, 75, 20), "Cancel")) { result = EDialogResult.Cancel; Close(); } break; } }