internal static void DisplayDialogInternal(string id, string text, ButtonOptions OkOptions = null, ButtonOptions NoOptions = null, ButtonOptions CancelOptions = null, DialogType type = DialogType.Info , DialogButtons buttons = DialogButtons.None, float TimeOut = 0f) { UDialogManager manager = Instance; if (manager.db.ContainsKey(id)) { return; } UDialogMessage msg = Instantiate(manager.DialogWindowBase, manager.WindowsContainer.transform). GetComponent <UDialogMessage>(); Sprite _icon = null; switch (type) { case DialogType.Error: _icon = manager.ErrorIcon; break; case DialogType.Info: _icon = manager.InfoIcon; break; case DialogType.Loading: _icon = manager.LoadingIcon; break; case DialogType.Warning: _icon = manager.WarningIcon; break; } msg.Init(id, _icon, type == DialogType.Loading, buttons, text, OkOptions, NoOptions, CancelOptions, TimeOut); manager.db.Add(id, msg); manager.Background.gameObject.SetActive(true); }
public void Init(string id, Sprite Icon, bool animate, DialogButtons buttons, string text, ButtonOptions OkOptions, ButtonOptions NoOptions, ButtonOptions CancelOptions, float timeout) { Id = id; DisplayText.text = text; DisplayIcon.gameObject.SetActive(Icon != null); DisplayIcon.transform.rotation = Quaternion.identity; DisplayIcon.sprite = Icon; if (animate) { StartCoroutine(I_RotateIcon()); } if (timeout > 0f) { StartCoroutine(I_AutoHide(timeout)); } if (buttons == DialogButtons.None) { ActivateButton(OkButton, false); ActivateButton(NoButton, false); ActivateButton(CancelButton, false); ButtonContainer.SetActive(false); return; } ButtonContainer.SetActive(true); if (buttons == DialogButtons.Ok || buttons == DialogButtons.YesNo) { OkButton.onClick.AddListener(() => { if (OkOptions != null && OkOptions.action != null) { OkOptions.action.Invoke(this); } OkButtonClick.Invoke(); }); if (OkOptions != null) { UpdateText(OkButton, OkOptions.displayText); } else { UpdateText(NoButton, DefaultOkText); } ActivateButton(OkButton, true); } else { ActivateButton(OkButton, false); } if (buttons == DialogButtons.YesNo || buttons == DialogButtons.YesNoCancel) { NoButton.onClick.AddListener(() => { if (NoOptions != null && NoOptions.action != null) { NoOptions.action.Invoke(this); } NoButtonClick.Invoke(); }); if (NoOptions != null) { UpdateText(NoButton, NoOptions.displayText); } else { UpdateText(NoButton, DefaultNoText); } ActivateButton(NoButton, true); } else { ActivateButton(NoButton, false); } if (buttons == DialogButtons.YesNoCancel) { CancelButton.onClick.AddListener(() => { if (CancelOptions != null && CancelOptions.action != null) { CancelOptions.action.Invoke(this); } CancelButtonClick.Invoke(); }); if (CancelOptions != null) { UpdateText(CancelButton, CancelOptions.displayText); } else { UpdateText(CancelButton, DefaultCancelText); } ActivateButton(CancelButton, true); } else { ActivateButton(CancelButton, false); } }
public static void DisplayDialogWindow(string id, string text, DialogType type, DialogButtons buttons, float timeout, ButtonOptions OkOptions = null , ButtonOptions NoOptions = null, ButtonOptions CancelOptions = null) { DisplayDialogInternal(id, text, OkOptions, NoOptions, CancelOptions, type, buttons, timeout); }