public void Show(string messageBoxText, string messageBoxTitle = ConstStrings.EMPTY, EMessageBoxButton style = EMessageBoxButton.OK, bool animate = false, MessageBoxResultCallback resultCallback = null, string button1Text = null, string button2Text = null, string button3Text = null) { this.animate = animate; this.Style = style; promptText.text = messageBoxText; titleText.text = messageBoxTitle; OnResult = resultCallback; switch (style) { case EMessageBoxButton.OK: Debug.Assert(string.IsNullOrEmpty(button2Text), "Too many button texts supplied."); Debug.Assert(string.IsNullOrEmpty(button3Text), "Too many button texts supplied."); SetupSingleButton(button1Text); break; case EMessageBoxButton.OKCancel: Debug.Assert(string.IsNullOrEmpty(button3Text), "Too many button texts supplied."); SetupDoubleButton(button1Text, button2Text); break; case EMessageBoxButton.YesNo: Debug.Assert(string.IsNullOrEmpty(button3Text), "Too many button texts supplied."); SetupDoubleButton(button1Text, button2Text); break; case EMessageBoxButton.YesNoCancel: SetupTripleButton(button1Text, button2Text, button3Text); break; default: throw new NotImplementedException($"{style} not implemented."); } Show(); //show visuals if (animate && transitionINAnimator != null) { ToggleButtonInteractivity(false); //disallow interaction until open. transitionINAnimator.Animate(windowTransform, onCompleteCallback: () => ToggleButtonInteractivity(true)); } }
/// <summary> /// /// </summary> /// <param name="window"></param> /// <param name="text"></param> /// <param name="title"></param> /// <param name="messageBoxButton"></param> /// <param name="messageBoxImage"></param> /// <param name="messageBoxResult"></param> /// <returns></returns> public static EMessageBoxResult ShowMessageBox(Window window, string text, [NotNull] string title, EMessageBoxButton messageBoxButton, EMessageBoxImage messageBoxImage, EMessageBoxResult messageBoxResult) { Debug.Assert(!string.IsNullOrEmpty(text)); Debug.Assert(!string.IsNullOrEmpty(title)); MessageBoxButton button; switch (messageBoxButton) { case EMessageBoxButton.Ok: button = MessageBoxButton.OK; break; case EMessageBoxButton.YesNo: button = MessageBoxButton.YesNo; break; case EMessageBoxButton.YesNoCancel: button = MessageBoxButton.YesNoCancel; break; default: throw new ApplicationException("Illegal message box button"); } MessageBoxImage image; switch (messageBoxImage) { case EMessageBoxImage.Error: image = MessageBoxImage.Error; break; case EMessageBoxImage.Warning: image = MessageBoxImage.Warning; break; case EMessageBoxImage.Exclamation: image = MessageBoxImage.Exclamation; break; case EMessageBoxImage.Information: image = MessageBoxImage.Information; break; default: throw new ApplicationException("Illegal message box image"); } MessageBoxResult result; switch (messageBoxResult) { case EMessageBoxResult.Ok: result = MessageBoxResult.OK; break; case EMessageBoxResult.Yes: result = MessageBoxResult.Yes; break; case EMessageBoxResult.No: result = MessageBoxResult.No; break; case EMessageBoxResult.None: result = MessageBoxResult.None; break; case EMessageBoxResult.Cancel: result = MessageBoxResult.Cancel; break; default: throw new ApplicationException("Illegal message box result"); } MessageBoxResult dialogResult = window == null?MessageBox.Show(text, title, button, image, result) : MessageBox.Show(window, text, title, button, image, result); EMessageBoxResult returnResult; switch (dialogResult) { case MessageBoxResult.OK: returnResult = EMessageBoxResult.Ok; break; case MessageBoxResult.Yes: returnResult = EMessageBoxResult.Yes; break; case MessageBoxResult.No: returnResult = EMessageBoxResult.No; break; case MessageBoxResult.Cancel: returnResult = EMessageBoxResult.Cancel; break; case MessageBoxResult.None: returnResult = EMessageBoxResult.None; break; default: throw new ApplicationException("Illegal message box result"); } return(returnResult); }