78 lines
2.2 KiB
C#

#if FRAMEWORK20
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using DevComponents.DotNetBar.Rendering;
using System.Windows.Forms;
using DevComponents.DotNetBar;
namespace DevComponents.Editors
{
public class VisualCheckBox : VisualToggleButton
{
#region Private Variables
private Size _DefaultSize = new Size(13, 13);
#endregion
#region Events
#endregion
#region Constructor
#endregion
#region Internal Implementation
public override void PerformLayout(PaintInfo pi)
{
this.Size = new System.Drawing.Size(Dpi.Width(_DefaultSize.Width + 2), Dpi.Height(_DefaultSize.Height));
this.CalculatedSize = this.Size;
base.PerformLayout(pi);
}
protected override void OnPaint(PaintInfo p)
{
Graphics g = p.Graphics;
Size defaultSize = Dpi.Size(_DefaultSize);
Rectangle r = new Rectangle(RenderBounds.X + 1, RenderBounds.Y + (RenderBounds.Height - defaultSize.Height) / 2,
defaultSize.Width, defaultSize.Height);
Office2007CheckBoxItemPainter painter = PainterFactory.CreateCheckBoxItemPainter(null);
Office2007CheckBoxColorTable ctt = GetCheckBoxColorTable();
Office2007CheckBoxStateColorTable ct = ctt.Default;
if (!this.GetIsEnabled(p))
ct = ctt.Disabled;
else if (this.IsMouseDown)
ct = ctt.Pressed;
else if (this.IsMouseOver)
ct = ctt.MouseOver;
painter.PaintCheckBox(g, r,
ct, this.Checked ? CheckState.Checked : CheckState.Unchecked);
base.OnPaint(p);
}
private Office2007CheckBoxColorTable GetCheckBoxColorTable()
{
Office2007Renderer r = this.GetRenderer() as Office2007Renderer;
if (r != null)
{
return r.ColorTable.CheckBoxItem;
}
return null;
}
private DevComponents.DotNetBar.Rendering.BaseRenderer GetRenderer()
{
return DevComponents.DotNetBar.Rendering.GlobalManager.Renderer;
}
#endregion
}
}
#endif