Zzz – Rev 4
?pathlinks?
using System.Collections.Specialized;
using System.Threading;
using System.Windows.Forms;
using Zzz.Utilities;
using Zzz;
namespace Zzz
{
public partial class LogViewForm : Form
{
private readonly MainForm _mainForm;
private readonly LogMemorySink _memorySink;
private readonly object _memorySinkLock;
public LogViewForm()
{
InitializeComponent();
}
public LogViewForm(MainForm mainForm) : this()
{
_mainForm = mainForm;
_mainForm.MemorySinkEnabled = true;
}
public LogViewForm(MainForm mainForm, LogMemorySink memorySink, object memorySinkLock) :
this(mainForm)
{
_memorySink = memorySink;
_memorySinkLock = memorySinkLock;
_memorySink.Events.CollectionChanged += Events_CollectionChanged;
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && components != null)
{
components.Dispose();
}
_mainForm.MemorySinkEnabled = false;
lock (_memorySinkLock)
{
_memorySink.Events.CollectionChanged -= Events_CollectionChanged;
_memorySink.Clear();
}
base.Dispose(disposing);
}
private void Events_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
switch (e.Action)
{
case NotifyCollectionChangedAction.Add:
foreach (var item in e.NewItems)
{
var line = (string)item;
textBox1.InvokeIfRequired(textbox => { textbox.AppendText(line); });
}
break;
}
}
private void LogViewForm_Load(object sender, System.EventArgs e)
{
Utilities.WindowState.FormTracker.Track(this);
}
}
}
Generated by GNU Enscript 1.6.5.90.