-
Notifications
You must be signed in to change notification settings - Fork 14
/
LogView.cs
131 lines (122 loc) · 4.09 KB
/
LogView.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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace SRecordizer
{
public partial class LogView : DockContent
{
#region _CONSTANTS_
#endregion
#region _DATA_TYPES_
public enum LogType
{ Info, Warning, Error }
#endregion
#region _PUBLIC_PROPERTIES_
#endregion
#region _PRIVATE_MEMBERS_
const int MAX_LOG_LENGTH = 50000;
bool AutoClearLogLimit = true;
#endregion
#region _CONSTRUCTORS_
/*********************************************************************/
/// <summary>
/// Constructor
/// </summary>
public LogView()
{
InitializeComponent();
}
#endregion
#region _PUBLIC_METHODS_
#endregion
#region _PRIVATE_METHODS_
#endregion
#region _GUI_CALLBACKS_
/*********************************************************************/
/// <summary>
/// Standard WinForms Gui Callback
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void clearLogButton_Click(object sender, EventArgs e)
{
logBox.ResetText();
}
/*********************************************************************/
/// <summary>
/// Standard WinForms Gui Callback
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void saveLogButton_Click(object sender, EventArgs e)
{
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
dlg.FilterIndex = 1;
dlg.RestoreDirectory = true;
DialogResult dlgRes = dlg.ShowDialog();
if (dlgRes == System.Windows.Forms.DialogResult.OK)
{
logBox.SaveFile(dlg.FileName, RichTextBoxStreamType.PlainText);
}
}
/*********************************************************************/
/// <summary>
/// Standard WinForms Gui Callback
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void resumeLogUpdatesButton_Click(object sender, EventArgs e)
{
logBox.Enabled = true;
}
/*********************************************************************/
/// <summary>
/// Standard WinForms Gui Callback
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void copyLogButton_Click(object sender, EventArgs e)
{
if ((logBox.SelectedText != null) && (logBox.SelectedText != ""))
Clipboard.SetText(logBox.SelectedText);
}
/*********************************************************************/
/// <summary>
/// Standard WinForms Gui Callback
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void LogView_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
this.DockState = WeifenLuo.WinFormsUI.Docking.DockState.Hidden;
}
/*********************************************************************/
/// <summary>
/// Standard WinForms Gui Callback
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void logBox_TextChanged(object sender, EventArgs e)
{
logBox.Focus();
logBox.SelectionStart = logBox.Text.Length;
if (AutoClearLogLimit)
{
if (logBox.TextLength > MAX_LOG_LENGTH)
{
logBox.ResetText();
}
}
//logBox.ScrollToCaret();
}
#endregion
}
}