Cosmos/source/Cosmos.VS.ProjectSystem/PropertyPages/TitleDivision.cs
2017-04-11 13:17:59 -05:00

87 lines
1.8 KiB
C#

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