Files
inf3/src/Gui/ChatOutputBox.cs

53 lines
1.2 KiB
C#

using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
namespace WorldOfPeacecraft
{
public class ChatOutputBox : RichTextBox
{
private IBackend Backend;
private Font MessageFont;
private Font SenderFont;
private Font IregularSenderFont;
public ChatOutputBox (IBackend backend)
{
Backend = backend;
this.ReadOnly = true;
this.Multiline = true;
MessageFont = this.SelectionFont;
SenderFont = new Font (MessageFont, FontStyle.Bold);
IregularSenderFont = new Font (MessageFont, FontStyle.Bold | FontStyle.Italic);
}
public void UpdateData ()
{
this.SuspendLayout ();
this.Clear ();
IEnumerable<IChatMessage> chatMessages = Backend.GetChatMessages ();
bool firstline = true;
lock (Backend) {
foreach (IChatMessage message in chatMessages) {
if (firstline) {
firstline = false;
} else {
this.AppendText ("\n");
}
if (message.IsSenderPlayer ()) {
this.SelectionFont = SenderFont;
} else {
this.SelectionFont = IregularSenderFont;
}
this.AppendText (message.GetSender ());
this.AppendText (": ");
this.SelectionFont = MessageFont;
this.AppendText (message.GetMessage ());
}
}
this.ResumeLayout ();
}
}
}