Esempio n. 1
0
        private void DrawChatMessage(ChatMessage msg, Graphics gfx, ref int lastx)
        {
            int mleft = msg.Send ? HORIZONTAL_MESSAGE_PADDING : START_MESSAGE_PADDING;
            int mwidth = pnlThread.Width - HORIZONTAL_MESSAGE_PADDING - START_MESSAGE_PADDING*2;

            var ms = gfx.MeasureString(msg.Message, Font, new Size(mwidth - START_MESSAGE_PADDING*2, int.MaxValue));
            
            Brush mbkbrush = new SolidBrush(msg.Send ? SendMessageColor : ReciveMessageColor);

            Rectangle mrect = new Rectangle(mleft, lastx + 2, mwidth, (int) ms.Height + INFO_LINE_HEIGHT);
            Rectangle mrectText = new Rectangle(mleft, lastx + 2, mwidth, (int) ms.Height);

            gfx.FillRectangle(mbkbrush, mrect);
            gfx.DrawString(msg.Message, Font, Brushes.Black, mrectText);

            if(!msg.Send)
                gfx.DrawString(msg.SendBy, _smallInfoFont, Brushes.Black, mleft, mrectText.Bottom + 1);

            var msend = msg.GetWhenSend();

            var mssend = gfx.MeasureString(msend, _smallInfoFont);

            gfx.DrawString(msend, _smallInfoFont, Brushes.Black, mrect.Right - mssend.Width - 2, mrectText.Bottom + 1);

            _toolTips.Add(new Rectangle(mrect.Right - (int)mssend.Width - 2, 
                                        mrectText.Bottom + 1,
                                        (int) mssend.Width,
                                        (int) mssend.Height),
                           msg.DateTime.ToString(CultureInfo.DefaultThreadCurrentCulture));

            lastx += START_MESSAGE_PADDING + (int)ms.Height + INFO_LINE_HEIGHT + PaddingBetweenMessages;
        }
Esempio n. 2
0
        private int CalculateMessageHeight(ChatMessage msg, Graphics gfx)
        {
            var mmsgHeight = gfx.MeasureString(msg.Message,
                                               Font,
                                               new SizeF(pnlThread.Width -
                                                         HORIZONTAL_MESSAGE_PADDING -
                                                         START_MESSAGE_PADDING*3,
                                                         int.MaxValue));

            return (int)mmsgHeight.Height + INFO_LINE_HEIGHT;
        }