public override void DrawManagedWindowDecorations (Graphics dc, Rectangle clip, InternalWindowManager wm)
{
#if debug
Console.WriteLine (DateTime.Now.ToLongTimeString () + " DrawManagedWindowDecorations");
dc.FillRectangle (Brushes.Black, clip);
#endif
Rectangle tb = ManagedWindowDrawTitleBarAndBorders (dc, clip, wm);
Form form = wm.Form;
if (wm.ShowIcon) {
Rectangle icon = ManagedWindowGetTitleBarIconArea (wm);
if (icon.IntersectsWith (clip))
dc.DrawIcon (form.Icon, icon);
const int SpacingBetweenIconAndCaption = 2;
tb.Width -= icon.Right + SpacingBetweenIconAndCaption - tb.X ;
tb.X = icon.Right + SpacingBetweenIconAndCaption;
}
foreach (TitleButton button in wm.TitleButtons.AllButtons) {
tb.Width -= Math.Max (0, tb.Right - DrawTitleButton (dc, button, clip, form));
}
const int SpacingBetweenCaptionAndLeftMostButton = 3;
tb.Width -= SpacingBetweenCaptionAndLeftMostButton;
string window_caption = form.Text;
window_caption = window_caption.Replace (Environment.NewLine, string.Empty);
if (window_caption != null && window_caption != string.Empty) {
StringFormat format = new StringFormat ();
format.FormatFlags = StringFormatFlags.NoWrap;
format.Trimming = StringTrimming.EllipsisCharacter;
format.LineAlignment = StringAlignment.Center;
if (tb.IntersectsWith (clip))
dc.DrawString (window_caption, WindowBorderFont,
ThemeEngine.Current.ResPool.GetSolidBrush (Color.White),
tb, format);
}
}