Cosmos/source/Cosmos.VS.Package/TitleDivision.cs

92 lines
2.3 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.VisualStudio.Project;
using Microsoft.VisualStudio;
namespace Cosmos.VS.Package
{
public partial class TitleDivision : UserControl
{
public TitleDivision()
{
InitializeComponent();
this.Resize += new EventHandler(TitleDivision_Resize);
this.Paint += new PaintEventHandler(TitleDivision_Paint);
this.labelTitle.Resize += new EventHandler(Title_Resize);
this.FontChanged += new EventHandler(TitleDivision_FontChanged);
this.LineColor = SystemColors.ControlDark;
}
void TitleDivision_FontChanged(object sender, EventArgs e)
{
this.labelTitle.Font = this.Font;
}
void TitleDivision_Resize(object sender, EventArgs e)
{
Single halfHeight;
halfHeight = this.Size.Height * 0.5f;
halfHeight = halfHeight - (this.labelTitle.Size.Height * 0.5f);
this.labelTitle.Location = new Point(0, (Int32)halfHeight);
this.Invalidate();
}
void TitleDivision_Paint(object sender, PaintEventArgs e)
{
Pen linePen;
Single halfHeight;
Single start;
Single end;
halfHeight = (this.Size.Height * 0.5f) + 1.0f;
start = (Single)this.labelTitle.Right;
if (String.IsNullOrEmpty(this.labelTitle.Text) == false)
{
start += (Single)this.labelTitle.Margin.Right;
}else{
start += (Single)this.Padding.Left;
}
end = this.Size.Width - (Single)this.Padding.Right;
linePen = new Pen(this.LineColor);
e.Graphics.DrawLine(linePen, start, halfHeight, end, halfHeight);
linePen.Dispose();
linePen = null;
}
void Title_Resize(object sender, EventArgs e)
{
this.Size = new Size(this.Size.Width, this.labelTitle.Size.Height);
this.Invalidate();
}
[SRCategoryAttribute("Category")]
[DisplayName("Line Color")]
[SRDescriptionAttribute("Description")]
public Color LineColor
{ get; set; }
[SRCategoryAttribute("Category")]
[DisplayName("Title")]
[SRDescriptionAttribute("Description")]
public String Title
{
get{ return this.labelTitle.Text; }
set{ this.labelTitle.Text = value; }
}
}
}