using System; using System.Windows; using System.Windows.Controls; using System.Windows.Input; namespace GARbro.GUI { /// /// Interaction logic for FileErrorDialog.xaml /// public partial class FileErrorDialog : Rnd.Windows.ModalWindow { public FileErrorDialog (string title, string error_text) { InitializeComponent(); this.DataContext = new ViewModel { Title = title, Text = error_text }; } new public FileErrorDialogResult ShowDialog () { bool dialog_result = base.ShowDialog() ?? false; return new FileErrorDialogResult { Continue = dialog_result, IgnoreErrors = IgnoreErrors.IsChecked ?? false }; } private void ContinueButton_Click (object sender, RoutedEventArgs e) { this.DialogResult = true; } private void AbortButton_Click (object sender, RoutedEventArgs e) { this.DialogResult = false; } private class ViewModel { public string Title { get; set; } public string Text { get; set; } public ICommand CopyCommand { get; private set; } public ViewModel () { CopyCommand = new ActionCommand (CopyText); } private void CopyText () { try { Clipboard.SetText (Text); } catch (Exception X) { System.Diagnostics.Trace.WriteLine (X.Message, "Clipboard error"); } } } private class ActionCommand : ICommand { readonly Action m_action; public ActionCommand (Action action) { m_action = action; } public void Execute (object parameter) { m_action(); } public bool CanExecute (object parameter) { return true; } #pragma warning disable 67 public event EventHandler CanExecuteChanged; } } public struct FileErrorDialogResult { public bool Continue; public bool IgnoreErrors; } }