-
Notifications
You must be signed in to change notification settings - Fork 18
/
ExceptionMessage.cs
82 lines (75 loc) · 2.74 KB
/
ExceptionMessage.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/**
* Project: XBSlink: A XBox360 & PS3/2 System Link Proxy
* File name: ExceptionMessage.cs
*
* @author Oliver Seuffert, Copyright (C) 2011.
*/
/*
* XBSlink is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; If not, see <http://www.gnu.org/licenses/>
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace XBSlink
{
public partial class ExceptionMessage : Form
{
private static Thread t;
private static String message;
public static bool ABORTING = false;
private String additional_messages;
public ExceptionMessage( Form f, String messages )
{
InitializeComponent();
additional_messages = messages;
this.ShowDialog(f);
}
private void ExceptionMessage_Load(object sender, EventArgs e)
{
textBox_message.Text = ExceptionMessage.message + Environment.NewLine
+ " - - - - - - - - - - - - - - - -" + Environment.NewLine
+ additional_messages;
textBox_message.SelectionStart = textBox_message.Text.Length;
textBox_message.SelectionLength = 0;
textBox_header.Text = Properties.Resources.crash_message;
}
public static void ShowExceptionDialog( String ex_sender, Exception ex )
{
ExceptionMessage.ABORTING = true;
String str = "FATAL Error in XBSlink "+ex_sender+" thread."+Environment.NewLine;
str += Environment.NewLine + ex.ToString() + Environment.NewLine;
ExceptionMessage.message = str;
ExceptionMessage.t = new Thread(close_app_async);
t.IsBackground = true;
t.Start();
}
private static void close_app_async()
{
Program.main_form.Invoke(
new MethodInvoker(
delegate
{
new ExceptionMessage(Program.main_form, Program.main_form.getAllMessages());
Program.main_form.Close();
}
)
);
}
}
}