/// <summary> /// Show the modal dialog in the indicated mode, and call the callback when it receives a response /// </summary> public static void ShowInputModal( Mode mode, string headerText, string bodyText, ModalInputCallback inputCallback, ModalButtonCallback buttonCallback = null) { Debug.Assert( condition: mode == Mode.InputAccept || mode == Mode.InputConfirmCancel, message: "Incorrect method call. Don't call ShowInputModal if not using input."); //Update text instance.SetHeaderText(headerText); instance.SetBodyText(bodyText); //Update buttons instance.SetMode(mode); //Set dialog visible instance.gameObject.SetActive(true); //Update callbacks instance.buttonCallback = buttonCallback; instance.inputCallback = inputCallback; instance.doubleInputCallback = null; }
/// <summary> /// Show the modal dialog in the indicated mode, and call the callback when it receives a response /// </summary> public static void ShowSimpleModal( Mode mode, string headerText, string bodyText, ModalButtonCallback callback = null) { Debug.Assert( condition: mode != Mode.InputAccept && mode != Mode.InputConfirmCancel, message: "Incorrect method call. Call ShowInputModal instead."); Debug.Assert( condition: mode != Mode.InputInputConfirmCancel, message: "Incorrect method call. Call ShowInputModal instead."); //Update text instance.SetHeaderText(headerText); instance.SetBodyText(bodyText); //Update buttons instance.SetMode(mode); //Set dialog visible instance.gameObject.SetActive(true); //Update Callbacks instance.buttonCallback = callback; instance.inputCallback = null; instance.doubleInputCallback = null; }
/// <summary> /// Show the modal dialog in the indicated mode, and call the callback when it receives a response /// </summary> public static void ShowInputModalABC( string headerText, string bodyText, string buttonALabel, string buttonBLabel, string buttonCLabel, ModalInputCallback inputCallback, ModalButtonCallback buttonCallback = null, InputField.ContentType inputType = InputField.ContentType.Alphanumeric) { //Update text instance.SetHeaderText(headerText); instance.SetBodyText(bodyText); //Update buttons instance.SetMode(Mode.InputABC); instance.SetButtonText(buttonALabel, buttonBLabel, buttonCLabel); //Set dialog visible instance.gameObject.SetActive(true); //Update callbacks instance.buttonCallback = buttonCallback; instance.inputCallback = inputCallback; instance.inputToggleCallback = null; instance.doubleInputCallback = null; instance.dropdownInputCallback = null; instance.primaryInputField.contentType = inputType; }
/// <summary> /// Show the modal dialog in the indicated mode, and call the callback when it receives a response /// </summary> public static void ShowDropdownInputModal( string headerText, string primaryBodyText, string secondaryBodyText, IEnumerable <string> dropdownOptions, ModalDropdownInputCallback inputCallback, ModalButtonCallback buttonCallback = null, InputField.ContentType inputType = InputField.ContentType.Alphanumeric) { //Update text instance.SetHeaderText(headerText); instance.SetBodyText(primaryBodyText, secondaryBodyText); //Update buttons instance.SetMode(Mode.DropdownInput); //Update dropdown instance.optionDropdown.ClearOptions(); instance.optionDropdown.AddOptions(dropdownOptions.ToList()); instance.optionDropdown.value = 0; instance.optionDropdown.RefreshShownValue(); //Set dialog visible instance.gameObject.SetActive(true); //Update callbacks instance.buttonCallback = buttonCallback; instance.inputCallback = null; instance.inputToggleCallback = null; instance.doubleInputCallback = null; instance.dropdownInputCallback = inputCallback; instance.secondaryInputField.contentType = inputType; }
/// <summary> /// Show the modal dialog in the indicated mode, and call the callback when it receives a response /// </summary> public static void ShowInputModal( string headerText, string primaryBodyText, string secondaryBodyText, ModalDoubleInputCallback inputCallback, ModalButtonCallback buttonCallback = null, InputField.ContentType primaryInputType = InputField.ContentType.Alphanumeric, InputField.ContentType secondaryInputType = InputField.ContentType.Alphanumeric) { //Update text instance.SetHeaderText(headerText); instance.SetBodyText(primaryBodyText, secondaryBodyText); //Update buttons instance.SetMode(Mode.InputInputConfirmCancel); //Set dialog visible instance.gameObject.SetActive(true); //Update callbacks instance.buttonCallback = buttonCallback; instance.inputCallback = null; instance.inputToggleCallback = null; instance.doubleInputCallback = inputCallback; instance.dropdownInputCallback = null; instance.primaryInputField.contentType = primaryInputType; instance.secondaryInputField.contentType = secondaryInputType; }
/// <summary> /// Show the modal dialog in the indicated mode, and call the callback when it receives a response /// </summary> public static void ShowCustomSimpleModal( string headerText, string bodyText, string buttonALabel, string buttonBLabel, string buttonCLabel, ModalButtonCallback callback) { //Update Text instance.SetHeaderText(headerText); instance.SetBodyText(bodyText); //Update buttons instance.SetMode(Mode.ABC); instance.SetButtonText(buttonALabel, buttonBLabel, buttonCLabel); //Set dialog visible instance.gameObject.SetActive(true); //Update Callbacks instance.buttonCallback = callback; instance.inputCallback = null; instance.inputToggleCallback = null; instance.doubleInputCallback = null; instance.dropdownInputCallback = null; }
/// <summary> /// Accept the button repsonse as input, invoke and clear the callbacks, and hide the dialog /// </summary> private void HandleButtons(Response response) { //Temporary copy to allow for the calling of the dialog within a callback ModalButtonCallback tmpCallback = buttonCallback; ModalInputCallback tmpInputCallback = inputCallback; ModalDoubleInputCallback tmpDoubleInputCallback = doubleInputCallback; buttonCallback = null; inputCallback = null; doubleInputCallback = null; gameObject.SetActive(false); tmpCallback?.Invoke(response); tmpInputCallback?.Invoke(response, primaryInputField.text); tmpDoubleInputCallback?.Invoke(response, primaryInputField.text, secondaryInputField.text); }
/// <summary> /// Show the modal dialog in the indicated mode, and call the callback when it receives a response /// </summary> public static void ShowInputModal( string headerText, string primaryBodyText, string secondaryBodyText, ModalDoubleInputCallback inputCallback, ModalButtonCallback buttonCallback = null) { //Update text instance.SetHeaderText(headerText); instance.SetBodyText(primaryBodyText, secondaryBodyText); //Update buttons instance.SetMode(Mode.InputInputConfirmCancel); //Set dialog visible instance.gameObject.SetActive(true); //Update callbacks instance.buttonCallback = buttonCallback; instance.inputCallback = null; instance.doubleInputCallback = inputCallback; }