private void AddPageBorder(GraphicsPath path, Rectangle pageBounds, Rectangle tabBounds)
{
switch (this.Alignment) {
case TabAlignment.Top:
path.AddLine(tabBounds.Right, pageBounds.Y, pageBounds.Right, pageBounds.Y);
path.AddLine(pageBounds.Right, pageBounds.Y, pageBounds.Right, pageBounds.Bottom);
path.AddLine(pageBounds.Right, pageBounds.Bottom, pageBounds.X, pageBounds.Bottom);
path.AddLine(pageBounds.X, pageBounds.Bottom, pageBounds.X, pageBounds.Y);
path.AddLine(pageBounds.X, pageBounds.Y, tabBounds.X, pageBounds.Y);
break;
case TabAlignment.Bottom:
path.AddLine(tabBounds.X, pageBounds.Bottom, pageBounds.X, pageBounds.Bottom);
path.AddLine(pageBounds.X, pageBounds.Bottom, pageBounds.X, pageBounds.Y);
path.AddLine(pageBounds.X, pageBounds.Y, pageBounds.Right, pageBounds.Y);
path.AddLine(pageBounds.Right, pageBounds.Y, pageBounds.Right, pageBounds.Bottom);
path.AddLine(pageBounds.Right, pageBounds.Bottom, tabBounds.Right, pageBounds.Bottom);
break;
case TabAlignment.Left:
path.AddLine(pageBounds.X, tabBounds.Y, pageBounds.X, pageBounds.Y);
path.AddLine(pageBounds.X, pageBounds.Y, pageBounds.Right, pageBounds.Y);
path.AddLine(pageBounds.Right, pageBounds.Y, pageBounds.Right, pageBounds.Bottom);
path.AddLine(pageBounds.Right, pageBounds.Bottom, pageBounds.X, pageBounds.Bottom);
path.AddLine(pageBounds.X, pageBounds.Bottom, pageBounds.X, tabBounds.Bottom);
break;
case TabAlignment.Right:
path.AddLine(pageBounds.Right, tabBounds.Bottom, pageBounds.Right, pageBounds.Bottom);
path.AddLine(pageBounds.Right, pageBounds.Bottom, pageBounds.X, pageBounds.Bottom);
path.AddLine(pageBounds.X, pageBounds.Bottom, pageBounds.X, pageBounds.Y);
path.AddLine(pageBounds.X, pageBounds.Y, pageBounds.Right, pageBounds.Y);
path.AddLine(pageBounds.Right, pageBounds.Y, pageBounds.Right, tabBounds.Y);
break;
}
}