public override void CPDrawCaptionButton (Graphics graphics, Rectangle rectangle, CaptionButton button, ButtonState state) {
Rectangle captionRect;
int lineWidth;
CPDrawButtonInternal (graphics, rectangle, state, SystemPens.ControlDarkDark, SystemPens.ControlDark, SystemPens.ControlLightLight);
if (rectangle.Width<rectangle.Height) {
captionRect=new Rectangle(rectangle.X+1, rectangle.Y+rectangle.Height/2-rectangle.Width/2+1, rectangle.Width-4, rectangle.Width-4);
} else {
captionRect=new Rectangle(rectangle.X+rectangle.Width/2-rectangle.Height/2+1, rectangle.Y+1, rectangle.Height-4, rectangle.Height-4);
}
if ((state & ButtonState.Pushed)!=0) {
captionRect=new Rectangle(rectangle.X+2, rectangle.Y+2, rectangle.Width-3, rectangle.Height-3);
}
/* Make sure we've got at least a line width of 1 */
lineWidth=Math.Max(1, captionRect.Width/7);
switch(button) {
case CaptionButton.Close: {
Pen pen;
if ((state & ButtonState.Inactive)!=0) {
pen = ResPool.GetSizedPen (ColorControlLight, lineWidth);
DrawCaptionHelper(graphics, ColorControlLight, pen, lineWidth, 1, captionRect, button);
pen = ResPool.GetSizedPen (ColorControlDark, lineWidth);
DrawCaptionHelper(graphics, ColorControlDark, pen, lineWidth, 0, captionRect, button);
return;
} else {
pen = ResPool.GetSizedPen (ColorControlText, lineWidth);
DrawCaptionHelper(graphics, ColorControlText, pen, lineWidth, 0, captionRect, button);
return;
}
}
case CaptionButton.Help:
case CaptionButton.Maximize:
case CaptionButton.Minimize:
case CaptionButton.Restore: {
if ((state & ButtonState.Inactive)!=0) {
DrawCaptionHelper(graphics, ColorControlLight, SystemPens.ControlLightLight, lineWidth, 1, captionRect, button);
DrawCaptionHelper(graphics, ColorControlDark, SystemPens.ControlDark, lineWidth, 0, captionRect, button);
return;
} else {
DrawCaptionHelper(graphics, ColorControlText, SystemPens.ControlText, lineWidth, 0, captionRect, button);
return;
}
}
}
}