// --------------------------------------------------------------------------------------------------------------------
// <copyright file="IMessageService.cs" company="Catel development team">
// Copyright (c) 2008 - 2011 Catel development team. All rights reserved.
// </copyright>
// <summary>
// Available message results.
// </summary>
// --------------------------------------------------------------------------------------------------------------------
using System;
namespace Catel.MVVM.Services
{
/// <summary>
/// Available message results.
/// </summary>
/// <remarks>
/// Although directly extracted from the WPF <see cref="MessageBoxResult"/>, this enum provides more flexibility to use
/// other ways to show messages to the user instead of the default <see cref="MessageBox"/>.
/// </remarks>
public enum MessageResult
{
/// <summary>
/// No result available.
/// </summary>
None,
/// <summary>
/// Message is acknowledged.
/// </summary>
OK,
/// <summary>
/// Message is canceled.
/// </summary>
Cancel,
/// <summary>
/// Message is acknowledged with yes.
/// </summary>
Yes,
/// <summary>
/// Message is acknowledged with no.
/// </summary>
No
}
/// <summary>
/// Available message buttons.
/// </summary>
/// <remarks>
/// Although directly extracted from the WPF <see cref="MessageBoxButton"/>, this enum provides more flexibility to use
/// other ways to show messages to the user instead of the default <see cref="MessageBox"/>.
/// </remarks>
public enum MessageButton
{
/// <summary>
/// OK button.
/// </summary>
OK,
/// <summary>
/// OK and Cancel buttons.
/// </summary>
OKCancel,
/// <summary>
/// Yes and No buttons.
/// </summary>
YesNo,
/// <summary>
/// Yes, No and Cancel buttons.
/// </summary>
YesNoCancel
}
/// <summary>
/// Available message images.
/// </summary>
/// <remarks>
/// Although directly extracted from the WPF <see cref="MessageBoxImage"/>, this enum provides more flexibility to use
/// other ways to show messages to the user instead of the default <see cref="MessageBox"/>.
/// </remarks>
public enum MessageImage
{
/// <summary>
/// Show no image.
/// </summary>
None,
/// <summary>
/// Information image.
/// </summary>
Information,
/// <summary>
/// Question image.
/// </summary>
Question,
/// <summary>
/// Exclamation image.
/// </summary>
Exclamation,
/// <summary>
/// Error image.
/// </summary>
Error,
/// <summary>
/// Stop image.
/// </summary>
Stop,
/// <summary>
/// Warning image.
/// </summary>
Warning
}
/// <summary>
/// Interface for the message service.
/// </summary>
public interface IMessageService
{
/// <summary>
/// Shows the error.
/// </summary>
/// <param name="exception">The exception.</param>
void ShowError(Exception exception);
/// <summary>
/// Shows the error.
/// </summary>
/// <param name="message">The message.</param>
void ShowError(string message);
/// <summary>
/// Shows the error.
/// </summary>
/// <param name="message">The message.</param>
/// <param name="caption">The caption.</param>
void ShowError(string message, string caption);
/// <summary>
/// Shows the warning.
/// </summary>
/// <param name="message">The message.</param>
void ShowWarning(string message);
/// <summary>
/// Shows the warning.
/// </summary>
/// <param name="message">The message.</param>
/// <param name="caption">The caption.</param>
void ShowWarning(string message, string caption);
/// <summary>
/// Shows the information.
/// </summary>
/// <param name="message">The message.</param>
void ShowInformation(string message);
/// <summary>
/// Shows the information.
/// </summary>
/// <param name="message">The message.</param>
/// <param name="caption">The caption.</param>
void ShowInformation(string message, string caption);
/// <summary>
/// Shows the specified message.
/// </summary>
/// <param name="message">The message.</param>
/// <returns>The <see cref="MessageResult"/>.</returns>
MessageResult Show(string message);
/// <summary>
/// Shows the specified message.
/// </summary>
/// <param name="message">The message.</param>
/// <param name="caption">The caption.</param>
/// <returns>The <see cref="MessageResult"/>.</returns>
MessageResult Show(string message, string caption);
/// <summary>
/// Shows the specified message.
/// </summary>
/// <param name="message">The message.</param>
/// <param name="caption">The caption.</param>
/// <param name="button">The button.</param>
/// <returns>The <see cref="MessageResult"/>.</returns>
MessageResult Show(string message, string caption, MessageButton button);
/// <summary>
/// Shows the specified message.
/// </summary>
/// <param name="message">The message.</param>
/// <param name="caption">The caption.</param>
/// <param name="button">The button.</param>
/// <param name="icon">The icon to show.</param>
/// <returns>The <see cref="MessageResult"/>.</returns>
MessageResult Show(string message, string caption, MessageButton button, MessageImage icon);
}
}