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 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 (); } } }