mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-26 03:58:45 +08:00
38 lines
1.2 KiB
C#
38 lines
1.2 KiB
C#
using System;
|
|
using System.Windows.Forms;
|
|
using mRemoteNG.UI.Controls;
|
|
using mRemoteNG.UI.Window;
|
|
|
|
namespace mRemoteNG.Messages.MessageWriters
|
|
{
|
|
public class NotificationPanelMessageWriter : IMessageWriter
|
|
{
|
|
private readonly ErrorAndInfoWindow _messageWindow;
|
|
|
|
public NotificationPanelMessageWriter(ErrorAndInfoWindow messageWindow)
|
|
{
|
|
if (messageWindow == null)
|
|
throw new ArgumentNullException(nameof(messageWindow));
|
|
|
|
_messageWindow = messageWindow;
|
|
}
|
|
|
|
public void Write(IMessage message)
|
|
{
|
|
var lvItem = new NotificationMessageListViewItem(message);
|
|
AddToList(lvItem);
|
|
}
|
|
|
|
private void AddToList(ListViewItem lvItem)
|
|
{
|
|
if (_messageWindow.lvErrorCollector.InvokeRequired)
|
|
_messageWindow.lvErrorCollector.Invoke((MethodInvoker)(() => AddToList(lvItem)));
|
|
else
|
|
{
|
|
_messageWindow.lvErrorCollector.Items.Insert(0, lvItem);
|
|
if (_messageWindow.lvErrorCollector.Items.Count > 0)
|
|
_messageWindow.pbError.Visible = true;
|
|
}
|
|
}
|
|
}
|
|
} |