using System.Windows.Forms; namespace Core.Common.Controls.Swf { /// /// Wraps normal windows.forms messagebox but adds testability. When CustomMessageBox is set it wil be used instead of the normal windows.forms.messagebox /// public class MessageBox { /// /// When set the show message of this messagebox will be called and used as a dialogresult /// public static IMessageBox CustomMessageBox { get; set; } public static DialogResult Show(string text) { return Show(text, ""); } public static DialogResult Show(string text, string caption) { return Show(text, caption, MessageBoxButtons.OK); } public static DialogResult Show(string text, string caption, MessageBoxButtons buttons) { return Show(text, caption, buttons, MessageBoxIcon.None); } public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon) { //default uses system windows forms implementation return Show(text, caption, buttons, icon, MessageBoxDefaultButton.Button1); } public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton) { //custom box ignores icon and defaultbutton if (CustomMessageBox != null) { //ignore the icon in the custom messagebox for now...add it when you need it. return CustomMessageBox.Show(text, caption, buttons); } return System.Windows.Forms.MessageBox.Show(text, caption, buttons, icon, defaultButton); } } public interface IMessageBox { /// /// /// /// /// /// /// DialogResult Show(string text, string caption, MessageBoxButtons buttons); } }