public override void DrawBalloonWindow (Graphics dc, Rectangle clip, NotifyIcon.BalloonWindow control)
{
Brush solidbrush = ResPool.GetSolidBrush (this.ColorInfoText);
Rectangle rect = control.ClientRectangle;
int iconsize = (control.Icon == ToolTipIcon.None) ? 0 : balloon_iconsize;
// Rectangle borders and background.
dc.FillRectangle (ResPool.GetSolidBrush (ColorInfo), rect);
dc.DrawRectangle (ResPool.GetPen (ColorWindowFrame), 0, 0, rect.Width - 1, rect.Height - 1);
// Icon
Image image;
switch (control.Icon) {
case ToolTipIcon.Info: {
image = ThemeEngine.Current.Images(UIIcon.MessageBoxInfo, balloon_iconsize);
break;
}
case ToolTipIcon.Warning: {
image = ThemeEngine.Current.Images(UIIcon.MessageBoxError, balloon_iconsize);
break;
}
case ToolTipIcon.Error: {
image = ThemeEngine.Current.Images(UIIcon.MessageBoxWarning, balloon_iconsize);
break;
}
default: {
image = null;
break;
}
}
if (control.Icon != ToolTipIcon.None)
dc.DrawImage (image, new Rectangle (balloon_bordersize, balloon_bordersize, iconsize, iconsize));
// Title
Rectangle titlerect = new Rectangle (rect.X + balloon_bordersize + iconsize + (iconsize > 0 ? balloon_bordersize : 0),
rect.Y + balloon_bordersize,
rect.Width - ((3 * balloon_bordersize) + iconsize),
rect.Height - (2 * balloon_bordersize));
Font titlefont = new Font (control.Font.FontFamily, control.Font.Size, control.Font.Style | FontStyle.Bold, control.Font.Unit);
dc.DrawString (control.Title, titlefont, solidbrush, titlerect, control.Format);
// Text
Rectangle textrect = new Rectangle (rect.X + balloon_bordersize,
rect.Y + balloon_bordersize,
rect.Width - (2 * balloon_bordersize),
rect.Height - (2 * balloon_bordersize));
StringFormat textformat = control.Format;
textformat.LineAlignment = StringAlignment.Far;
dc.DrawString (control.Text, control.Font, solidbrush, textrect, textformat);
}