using System; using System.Drawing; namespace GoldPrinter { public class DrawRectangle : DrawBase { private BordersEdgeFlag _borderEdge; private Color _backColor; public BordersEdgeFlag BordersEdge { get { return this._borderEdge; } set { this._borderEdge = value; } } public Color BackColor { get { return this._backColor; } set { this._backColor = value; } } public DrawRectangle() { this._borderEdge = BordersEdgeFlag.FourEdge; this._backColor = Color.White; } public override void Draw() { switch (this.BordersEdge) { case BordersEdgeFlag.Left: this.DrawLeftLine(); break; case BordersEdgeFlag.Right: this.DrawRightLine(); break; case BordersEdgeFlag.Top: this.DrawTopLine(); break; case BordersEdgeFlag.Bottom: this.DrawBottomLine(); break; case BordersEdgeFlag.DiagonalDown: this.DrawDiagonalDownLine(); break; case BordersEdgeFlag.DiagonalUp: this.DrawDiagonalUpLine(); break; default: this.Draw(base.Graphics, base.Pen, base.Rectangle); break; } if (this.BackColor != Color.White) { this.FillRectangle(); } } public void FillRectangle() { Pen pen = new Pen(this.BackColor); base.Brush = pen.Brush; this.DrawBackColor(base.Graphics, base.Brush, base.Rectangle); } public void DrawLeftLine() { this.DrawLeftLine(base.Graphics, base.Pen, base.Rectangle); } public void DrawRightLine() { this.DrawRightLine(base.Graphics, base.Pen, base.Rectangle); } public void DrawTopLine() { this.DrawTopLine(base.Graphics, base.Pen, base.Rectangle); } public void DrawBottomLine() { this.DrawBottomLine(base.Graphics, base.Pen, base.Rectangle); } public void DrawDiagonalDownLine() { this.DrawDiagonalDownLine(base.Graphics, base.Pen, base.Rectangle); } public void DrawDiagonalUpLine() { this.DrawDiagonalUpLine(base.Graphics, base.Pen, base.Rectangle); } protected void Draw(Graphics g, Pen pen, Rectangle rec) { g.DrawRectangle(pen, rec.X, rec.Y, rec.Width, rec.Height); } protected void DrawLeftLine(Graphics g, Pen pen, Rectangle rec) { int left = rec.Left; int top = rec.Top; int bottom = rec.Bottom; g.DrawLine(pen, left, top, left, bottom); } protected void DrawRightLine(Graphics g, Pen pen, Rectangle rec) { int right = rec.Right; int top = rec.Top; int bottom = rec.Bottom; g.DrawLine(pen, right, top, right, bottom); } protected void DrawTopLine(Graphics g, Pen pen, Rectangle rec) { int left = rec.Left; int right = rec.Right; int top = rec.Top; g.DrawLine(pen, left, top, right, top); } protected void DrawBottomLine(Graphics g, Pen pen, Rectangle rec) { int left = rec.Left; int right = rec.Right; int bottom = rec.Bottom; g.DrawLine(pen, left, bottom, right, bottom); } protected void DrawDiagonalDownLine(Graphics g, Pen pen, Rectangle rec) { int x = rec.X; int y = rec.Y; int right = rec.Right; int bottom = rec.Bottom; g.DrawLine(pen, x, y, right, bottom); } protected void DrawDiagonalUpLine(Graphics g, Pen pen, Rectangle rec) { int x = rec.X; int bottom = rec.Bottom; int right = rec.Right; int top = rec.Top; g.DrawLine(pen, x, bottom, right, top); } protected void DrawBackColor(Graphics g, Brush brush, Rectangle rec) { g.FillRectangle(brush, rec); } } }