Пример #1
0
 public void AddMessage(Message message, ChatControlBackEnd engine, MessageStyle style = MessageStyle.None)
 {
     messageHistory.Add(new Cortege2 <Message, MessageStyle>(message, style));
     PostMessage(message, style, engine);
 }
Пример #2
0
 private void PostMessage(Message message, MessageStyle style, ChatControlBackEnd engine)
 {
     if (style == MessageStyle.Notify && !ChatSettings.Instance.ShowNotifications)
         return;
     var nickName = "";
     var user = AllUsers.Instance.GetUser(message.Sender);
     if (user != null)
     {
         nickName = user.NickName + ": ";
         style = MessageStyle.Others;
     }
     if (message.Sender == ChatSettings.Instance.Id) // detect own
         style = MessageStyle.Mine;
     else // detect owner
     {
         var room = engine.GetActiveRooms().Find(r => r.Name == message.Room);
         if (room != null && message.Sender == room.Owner)
             style = MessageStyle.Owner;
     }
     var text = "[" + message.TimeStamp.ToString(ChatSettings.Instance.DateTimeFormat) + "] " + nickName + message.Text;
     var length = allMessagesRichTextBox.TextLength;
     allMessagesRichTextBox.AppendText(text + Environment.NewLine);
     if (style == MessageStyle.None)
         return;
     allMessagesRichTextBox.SelectionStart = length;
     allMessagesRichTextBox.SelectionLength = text.Length;
     switch (style)
     {
         case MessageStyle.Mine:
             allMessagesRichTextBox.SelectionColor = ChatSettings.Instance.OwnColor;
             allMessagesRichTextBox.SelectionFont = ChatSettings.Instance.OwnFont;
             break;
         case MessageStyle.Owner:
             allMessagesRichTextBox.SelectionColor = ChatSettings.Instance.OwnerColor;
             allMessagesRichTextBox.SelectionFont = ChatSettings.Instance.OwnerFont;
             break;
         case MessageStyle.Others:
             allMessagesRichTextBox.SelectionColor = ChatSettings.Instance.OthersColor;
             allMessagesRichTextBox.SelectionFont = ChatSettings.Instance.OthersFont;
             break;
         case MessageStyle.Error:
             allMessagesRichTextBox.SelectionColor = Color.DarkRed;
             allMessagesRichTextBox.SelectionFont = Font;
             break;
         case MessageStyle.Notify:
             allMessagesRichTextBox.SelectionColor = Color.Gray;
             allMessagesRichTextBox.SelectionFont = Font;
             break;
     }
     allMessagesRichTextBox.SelectionStart = allMessagesRichTextBox.TextLength;
     allMessagesRichTextBox.ScrollToCaret();
 }
Пример #3
0
        private void PostMessage(Message message, MessageStyle style, ChatControlBackEnd engine)
        {
            if (style == MessageStyle.Notify && !ChatSettings.Instance.ShowNotifications)
            {
                return;
            }
            var nickName = "";
            var user     = AllUsers.Instance.GetUser(message.Sender);

            if (user != null)
            {
                nickName = user.NickName + ": ";
                style    = MessageStyle.Others;
            }
            if (message.Sender == ChatSettings.Instance.Id) // detect own
            {
                style = MessageStyle.Mine;
            }
            else // detect owner
            {
                var room = engine.GetActiveRooms().Find(r => r.Name == message.Room);
                if (room != null && message.Sender == room.Owner)
                {
                    style = MessageStyle.Owner;
                }
            }
            var text   = "[" + message.TimeStamp.ToString(ChatSettings.Instance.DateTimeFormat) + "] " + nickName + message.Text;
            var length = allMessagesRichTextBox.TextLength;

            allMessagesRichTextBox.AppendText(text + Environment.NewLine);
            if (style == MessageStyle.None)
            {
                return;
            }
            allMessagesRichTextBox.SelectionStart  = length;
            allMessagesRichTextBox.SelectionLength = text.Length;
            switch (style)
            {
            case MessageStyle.Mine:
                allMessagesRichTextBox.SelectionColor = ChatSettings.Instance.OwnColor;
                allMessagesRichTextBox.SelectionFont  = ChatSettings.Instance.OwnFont;
                break;

            case MessageStyle.Owner:
                allMessagesRichTextBox.SelectionColor = ChatSettings.Instance.OwnerColor;
                allMessagesRichTextBox.SelectionFont  = ChatSettings.Instance.OwnerFont;
                break;

            case MessageStyle.Others:
                allMessagesRichTextBox.SelectionColor = ChatSettings.Instance.OthersColor;
                allMessagesRichTextBox.SelectionFont  = ChatSettings.Instance.OthersFont;
                break;

            case MessageStyle.Error:
                allMessagesRichTextBox.SelectionColor = Color.DarkRed;
                allMessagesRichTextBox.SelectionFont  = Font;
                break;

            case MessageStyle.Notify:
                allMessagesRichTextBox.SelectionColor = Color.Gray;
                allMessagesRichTextBox.SelectionFont  = Font;
                break;
            }
            allMessagesRichTextBox.SelectionStart = allMessagesRichTextBox.TextLength;
            allMessagesRichTextBox.ScrollToCaret();
        }
Пример #4
0
 public void AddMessage(Message message, ChatControlBackEnd engine, MessageStyle style = MessageStyle.None)
 {
     messageHistory.Add(new Cortege2<Message, MessageStyle>(message, style));
     PostMessage(message, style, engine);
 }