260 lines
8.0 KiB
C#
260 lines
8.0 KiB
C#
using MahApps.Metro.Controls;
|
|
using System;
|
|
using System.Drawing;
|
|
using System.Windows;
|
|
|
|
namespace Plane.Windows.Messages
|
|
{
|
|
internal partial class AlertWindow : MetroWindow
|
|
{
|
|
internal string Caption
|
|
{
|
|
get
|
|
{
|
|
return Title;
|
|
}
|
|
set
|
|
{
|
|
Title = value;
|
|
}
|
|
}
|
|
|
|
internal string Message
|
|
{
|
|
get
|
|
{
|
|
return TextBlock_Message.Text;
|
|
}
|
|
set
|
|
{
|
|
TextBlock_Message.Text = value;
|
|
}
|
|
}
|
|
|
|
internal string OkButtonText
|
|
{
|
|
get
|
|
{
|
|
return Label_Ok.Content.ToString();
|
|
}
|
|
set
|
|
{
|
|
Label_Ok.Content = value.TryAddKeyboardAccellerator();
|
|
}
|
|
}
|
|
|
|
internal string CancelButtonText
|
|
{
|
|
get
|
|
{
|
|
return Label_Cancel.Content.ToString();
|
|
}
|
|
set
|
|
{
|
|
Label_Cancel.Content = value.TryAddKeyboardAccellerator();
|
|
}
|
|
}
|
|
|
|
internal string YesButtonText
|
|
{
|
|
get
|
|
{
|
|
return Label_Yes.Content.ToString();
|
|
}
|
|
set
|
|
{
|
|
Label_Yes.Content = value.TryAddKeyboardAccellerator();
|
|
}
|
|
}
|
|
|
|
internal string NoButtonText
|
|
{
|
|
get
|
|
{
|
|
return Label_No.Content.ToString();
|
|
}
|
|
set
|
|
{
|
|
Label_No.Content = value.TryAddKeyboardAccellerator();
|
|
}
|
|
}
|
|
|
|
public MessageBoxResult Result { get; set; }
|
|
|
|
private AlertWindow()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
internal AlertWindow(string message)
|
|
{
|
|
InitializeComponent();
|
|
|
|
Message = message;
|
|
Image_MessageBox.Visibility = System.Windows.Visibility.Collapsed;
|
|
DisplayButtons(MessageBoxButton.OK);
|
|
}
|
|
|
|
internal AlertWindow(string message, string caption)
|
|
{
|
|
InitializeComponent();
|
|
|
|
Message = message;
|
|
Caption = caption;
|
|
Image_MessageBox.Visibility = System.Windows.Visibility.Collapsed;
|
|
DisplayButtons(MessageBoxButton.OK);
|
|
}
|
|
|
|
internal AlertWindow(string message, string caption, MessageBoxButton button)
|
|
{
|
|
InitializeComponent();
|
|
|
|
Message = message;
|
|
Caption = caption;
|
|
Image_MessageBox.Visibility = System.Windows.Visibility.Collapsed;
|
|
|
|
DisplayButtons(button);
|
|
}
|
|
|
|
internal AlertWindow(string message, string caption, MessageBoxImage image)
|
|
{
|
|
InitializeComponent();
|
|
|
|
Message = message;
|
|
Caption = caption;
|
|
DisplayImage(image);
|
|
DisplayButtons(MessageBoxButton.OK);
|
|
}
|
|
|
|
internal AlertWindow(string message, string caption, MessageBoxButton button, MessageBoxImage image)
|
|
{
|
|
InitializeComponent();
|
|
|
|
Message = message;
|
|
Caption = caption;
|
|
Image_MessageBox.Visibility = System.Windows.Visibility.Collapsed;
|
|
|
|
DisplayButtons(button);
|
|
DisplayImage(image);
|
|
}
|
|
|
|
internal static AlertWindow CreateProgressWindow(string loadingText)
|
|
{
|
|
var window = new AlertWindow();
|
|
window.Message = loadingText;
|
|
window.progressBar.Visibility = Visibility.Visible;
|
|
window.Image_MessageBox.Visibility = System.Windows.Visibility.Collapsed;
|
|
window.Button_OK.Visibility = System.Windows.Visibility.Collapsed;
|
|
window.Button_Yes.Visibility = System.Windows.Visibility.Collapsed;
|
|
window.Button_No.Visibility = System.Windows.Visibility.Collapsed;
|
|
window.Button_Cancel.Visibility = System.Windows.Visibility.Collapsed;
|
|
return window;
|
|
}
|
|
|
|
internal void CompleteProgress(string completedText)
|
|
{
|
|
this.Dispatcher.Invoke(new Action(() =>
|
|
{
|
|
Message = completedText;
|
|
progressBar.Visibility = Visibility.Hidden;
|
|
Button_OK.Visibility = Visibility.Visible;
|
|
Button_OK.Focus();
|
|
}));
|
|
}
|
|
|
|
private void DisplayButtons(MessageBoxButton button)
|
|
{
|
|
switch (button)
|
|
{
|
|
case MessageBoxButton.OKCancel:
|
|
// Hide all but OK, Cancel
|
|
Button_OK.Visibility = System.Windows.Visibility.Visible;
|
|
Button_OK.Focus();
|
|
Button_Cancel.Visibility = System.Windows.Visibility.Visible;
|
|
|
|
Button_Yes.Visibility = System.Windows.Visibility.Collapsed;
|
|
Button_No.Visibility = System.Windows.Visibility.Collapsed;
|
|
break;
|
|
case MessageBoxButton.YesNo:
|
|
// Hide all but Yes, No
|
|
Button_Yes.Visibility = System.Windows.Visibility.Visible;
|
|
Button_Yes.Focus();
|
|
Button_No.Visibility = System.Windows.Visibility.Visible;
|
|
|
|
Button_OK.Visibility = System.Windows.Visibility.Collapsed;
|
|
Button_Cancel.Visibility = System.Windows.Visibility.Collapsed;
|
|
break;
|
|
case MessageBoxButton.YesNoCancel:
|
|
// Hide only OK
|
|
Button_Yes.Visibility = System.Windows.Visibility.Visible;
|
|
Button_Yes.Focus();
|
|
Button_No.Visibility = System.Windows.Visibility.Visible;
|
|
Button_Cancel.Visibility = System.Windows.Visibility.Visible;
|
|
|
|
Button_OK.Visibility = System.Windows.Visibility.Collapsed;
|
|
break;
|
|
default:
|
|
// Hide all but OK
|
|
Button_OK.Visibility = System.Windows.Visibility.Visible;
|
|
Button_OK.Focus();
|
|
|
|
Button_Yes.Visibility = System.Windows.Visibility.Collapsed;
|
|
Button_No.Visibility = System.Windows.Visibility.Collapsed;
|
|
Button_Cancel.Visibility = System.Windows.Visibility.Collapsed;
|
|
break;
|
|
}
|
|
}
|
|
|
|
private void DisplayImage(MessageBoxImage image)
|
|
{
|
|
Icon icon;
|
|
|
|
switch (image)
|
|
{
|
|
case MessageBoxImage.Exclamation: // Enumeration value 48 - also covers "Warning"
|
|
icon = SystemIcons.Exclamation;
|
|
break;
|
|
case MessageBoxImage.Error: // Enumeration value 16, also covers "Hand" and "Stop"
|
|
icon = SystemIcons.Hand;
|
|
break;
|
|
case MessageBoxImage.Information: // Enumeration value 64 - also covers "Asterisk"
|
|
icon = SystemIcons.Information;
|
|
break;
|
|
case MessageBoxImage.Question:
|
|
icon = SystemIcons.Question;
|
|
break;
|
|
default:
|
|
icon = SystemIcons.Information;
|
|
break;
|
|
}
|
|
|
|
Image_MessageBox.Source = icon.ToImageSource();
|
|
Image_MessageBox.Visibility = System.Windows.Visibility.Visible;
|
|
}
|
|
|
|
private void Button_OK_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
Result = MessageBoxResult.OK;
|
|
Close();
|
|
}
|
|
|
|
private void Button_Cancel_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
Result = MessageBoxResult.Cancel;
|
|
Close();
|
|
}
|
|
|
|
private void Button_Yes_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
Result = MessageBoxResult.Yes;
|
|
Close();
|
|
}
|
|
|
|
private void Button_No_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
Result = MessageBoxResult.No;
|
|
Close();
|
|
}
|
|
}
|
|
}
|