using HMI.Core.Util;
|
using Panuon.WPF.UI;
|
using System.Runtime.CompilerServices;
|
using System.Windows;
|
using System.Windows.Controls;
|
|
namespace HMI.UI.Util
|
{
|
public interface ToastHandler
|
{
|
void Success(Window window,
|
string message,
|
MessageBoxIcon icon,
|
ToastPosition position, double offset, int durationMs,
|
ToastWindow targetWindow);
|
|
void Warning(Window window,
|
string message,
|
MessageBoxIcon icon,
|
ToastPosition position, double offset, int durationMs,
|
ToastWindow targetWindow);
|
|
void Error(Window window,
|
string message,
|
MessageBoxIcon icon,
|
ToastPosition position, double offset, int durationMs,
|
ToastWindow targetWindow);
|
|
void Info(Window window,
|
string message,
|
MessageBoxIcon icon,
|
ToastPosition position, double offset, int durationMs,
|
ToastWindow targetWindow);
|
}
|
|
public class ToastHelper
|
{
|
private static ToastHandler Instance;
|
|
public static void Register(ToastHandler helper)
|
{
|
if (Instance == null) { Instance = helper; }
|
}
|
|
public static void Success(string message,
|
MessageBoxIcon icon = MessageBoxIcon.Success,
|
ToastPosition position = ToastPosition.Top, double offset = 0, int durationMs = 3000,
|
ToastWindow targetWindow = ToastWindow.ActiveWindow)
|
{
|
var window = Application.Current.MainWindow;
|
if (window is WindowX)
|
{
|
Instance.Success(window, message, icon, position, offset, durationMs, targetWindow);
|
}
|
else
|
{
|
MessageBox.Show(message, LangUtil.Get("App.Success"));
|
}
|
}
|
|
public static void Warning(string message,
|
MessageBoxIcon icon = MessageBoxIcon.Warning,
|
ToastPosition position = ToastPosition.Top, double offset = 0, int durationMs = 3000,
|
ToastWindow targetWindow = ToastWindow.ActiveWindow)
|
{
|
var window = Application.Current.MainWindow;
|
if (window is WindowX)
|
{
|
Instance.Warning(window, message, icon, position, offset, durationMs, targetWindow);
|
}
|
else
|
{
|
MessageBox.Show(message, LangUtil.Get("App.Warn"));
|
}
|
}
|
|
public static void Error(string message,
|
MessageBoxIcon icon = MessageBoxIcon.Error,
|
ToastPosition position = ToastPosition.Top, double offset = 0, int durationMs = 3000,
|
ToastWindow targetWindow = ToastWindow.ActiveWindow)
|
{
|
var window = Application.Current.MainWindow;
|
if (window is WindowX)
|
{
|
|
Instance.Error(window, message, icon, position, offset, durationMs, targetWindow);
|
}
|
else
|
{
|
MessageBox.Show(message, LangUtil.Get("App.Error"));
|
}
|
}
|
|
public static void Info(string message,
|
MessageBoxIcon icon = MessageBoxIcon.Info,
|
ToastPosition position = ToastPosition.Top, double offset = 0, int durationMs = 3000,
|
ToastWindow targetWindow = ToastWindow.ActiveWindow)
|
{
|
var window = Application.Current.MainWindow;
|
if (window is WindowX)
|
{
|
|
Instance.Info(window, message, icon, position, offset, durationMs, targetWindow);
|
}
|
else
|
{
|
MessageBox.Show(message, LangUtil.Get("App.Info"));
|
}
|
}
|
|
|
public static void Success(DependencyObject dp,
|
string message,
|
MessageBoxIcon icon = MessageBoxIcon.Success,
|
ToastPosition position = ToastPosition.Top, double offset = 0, int durationMs = 3000,
|
ToastWindow targetWindow = ToastWindow.ActiveWindow)
|
{
|
if (!(dp is Window window))
|
{
|
window = Window.GetWindow(dp);
|
}
|
Instance.Success(window, message, icon, position, offset, durationMs, targetWindow);
|
}
|
|
public static void Warning(DependencyObject dp,
|
string message,
|
MessageBoxIcon icon = MessageBoxIcon.Warning,
|
ToastPosition position = ToastPosition.Top, double offset = 0, int durationMs = 3000,
|
ToastWindow targetWindow = ToastWindow.ActiveWindow)
|
{
|
if (!(dp is Window window))
|
{
|
window = Window.GetWindow(dp);
|
}
|
Instance.Warning(window, message, icon, position, offset, durationMs, targetWindow);
|
}
|
|
public static void Error(DependencyObject dp,
|
string message,
|
MessageBoxIcon icon = MessageBoxIcon.Error,
|
ToastPosition position = ToastPosition.Top, double offset = 0, int durationMs = 3000,
|
ToastWindow targetWindow = ToastWindow.ActiveWindow)
|
{
|
if (!(dp is Window window))
|
{
|
window = Window.GetWindow(dp);
|
}
|
Instance.Error(window, message, icon, position, offset, durationMs, targetWindow);
|
}
|
|
public static void Info(DependencyObject dp,
|
string message,
|
MessageBoxIcon icon = MessageBoxIcon.Info,
|
ToastPosition position = ToastPosition.Top, double offset = 0, int durationMs = 3000,
|
ToastWindow targetWindow = ToastWindow.ActiveWindow)
|
{
|
if (!(dp is Window window))
|
{
|
window = Window.GetWindow(dp);
|
}
|
Instance.Info(window, message, icon, position, offset, durationMs, targetWindow);
|
}
|
}
|
|
public static class ToastUtil
|
{
|
|
public static void Success(this Window window,
|
string message,
|
MessageBoxIcon icon = MessageBoxIcon.Success,
|
ToastPosition position = ToastPosition.Top, double offset = 0, int durationMs = 3000,
|
ToastWindow targetWindow = ToastWindow.ActiveWindow)
|
{
|
ToastHelper.Success(window, message, icon, position, offset, durationMs, targetWindow);
|
}
|
|
public static void Warning(this Window window,
|
string message,
|
MessageBoxIcon icon = MessageBoxIcon.Warning,
|
ToastPosition position = ToastPosition.Top, double offset = 0, int durationMs = 3000,
|
ToastWindow targetWindow = ToastWindow.ActiveWindow)
|
{
|
ToastHelper.Warning(window, message, icon, position, offset, durationMs, targetWindow);
|
}
|
|
public static void Error(this Window window,
|
string message,
|
MessageBoxIcon icon = MessageBoxIcon.Error,
|
ToastPosition position = ToastPosition.Top, double offset = 0, int durationMs = 3000,
|
ToastWindow targetWindow = ToastWindow.ActiveWindow)
|
{
|
ToastHelper.Error(window, message, icon, position, offset, durationMs, targetWindow);
|
}
|
|
public static void Info(this Window window,
|
string message,
|
MessageBoxIcon icon = MessageBoxIcon.Info,
|
ToastPosition position = ToastPosition.Top, double offset = 0, int durationMs = 3000,
|
ToastWindow targetWindow = ToastWindow.ActiveWindow)
|
{
|
ToastHelper.Info(window, message, icon, position, offset, durationMs, targetWindow);
|
}
|
|
|
public static void Success(this UserControl control,
|
string message,
|
MessageBoxIcon icon = MessageBoxIcon.Success,
|
ToastPosition position = ToastPosition.Top, double offset = 0, int durationMs = 3000,
|
ToastWindow targetWindow = ToastWindow.ActiveWindow)
|
{
|
ToastHelper.Success(Window.GetWindow(control), message, icon, position, offset, durationMs, targetWindow);
|
}
|
|
public static void Warning(this UserControl control,
|
string message,
|
MessageBoxIcon icon = MessageBoxIcon.Warning,
|
ToastPosition position = ToastPosition.Top, double offset = 0, int durationMs = 3000,
|
ToastWindow targetWindow = ToastWindow.ActiveWindow)
|
{
|
ToastHelper.Warning(Window.GetWindow(control), message, icon, position, offset, durationMs, targetWindow);
|
}
|
|
public static void Error(this UserControl control,
|
string message,
|
MessageBoxIcon icon = MessageBoxIcon.Error,
|
ToastPosition position = ToastPosition.Top, double offset = 0, int durationMs = 3000,
|
ToastWindow targetWindow = ToastWindow.ActiveWindow)
|
{
|
Application.Current.Dispatcher.Invoke(() =>
|
{
|
ToastHelper.Error(Window.GetWindow(control), message, icon, position, offset, durationMs, targetWindow);
|
});
|
}
|
|
public static void Info(this UserControl control,
|
string message,
|
MessageBoxIcon icon = MessageBoxIcon.Error,
|
ToastPosition position = ToastPosition.Top, double offset = 0, int durationMs = 3000,
|
ToastWindow targetWindow = ToastWindow.ActiveWindow)
|
{
|
ToastHelper.Info(Window.GetWindow(control), message, icon, position, offset, durationMs, targetWindow);
|
}
|
}
|
}
|