public static BrokenLine CreateLine(Point A, Point B) { BrokenLine line = new BrokenLine(); if (A.Y == B.Y) { line.Left = A.X; line.Top = A.Y; line.Width = B.X - A.X; line.Height = OlympicPainterSettings.Scaled(5); line.Orient = Orientation.Left_Right; } if (A.Y > B.Y) { line.Left = A.X; line.Top = B.Y + OlympicPainterSettings.Scaled(6); line.Width = B.X - A.X; line.Height = A.Y - B.Y - OlympicPainterSettings.Scaled(4); line.Orient = Orientation.LeftBottom_RightTop; } if (A.Y < B.Y) { line.Left = A.X; line.Top = A.Y; line.Width = B.X - A.X; line.Height = B.Y - A.Y - OlympicPainterSettings.Scaled(4); line.Orient = Orientation.LeftTop_RightBottom; } return(line); }
public override void Draw(Graphics gr) { if (!Visible) { return; } string PlayerA = FMatch.PlayerA.Label; string PlayerB = FMatch.PlayerB.Label; Font FontA = null; Font FontB = null; FontStyle winner_style = FontStyle.Bold; FontStyle looser_style = FontStyle.Regular; FontStyle normal_style = FontStyle.Regular; Font font_normal = new Font(FontFamily.GenericSansSerif, OlympicPainterSettings.FontSize, FontStyle.Regular); Font font_bold = new Font(FontFamily.GenericSansSerif, OlympicPainterSettings.FontSize, FontStyle.Bold); switch (FMatch.Winner) { case MatchLabel.PlayerLetters.A: FontA = new Font(FontFamily.GenericSansSerif, OlympicPainterSettings.FontSize, winner_style); FontB = new Font(FontFamily.GenericSansSerif, OlympicPainterSettings.FontSize, looser_style); BackColor = OlympicPainterSettings.MatchLabelColors.Finished; break; case MatchLabel.PlayerLetters.B: FontA = new Font(FontFamily.GenericSansSerif, OlympicPainterSettings.FontSize, looser_style); FontB = new Font(FontFamily.GenericSansSerif, OlympicPainterSettings.FontSize, winner_style); BackColor = OlympicPainterSettings.MatchLabelColors.Finished; break; case MatchLabel.PlayerLetters.Unknown: FontA = new Font(FontFamily.GenericSansSerif, OlympicPainterSettings.FontSize, normal_style); FontB = new Font(FontFamily.GenericSansSerif, OlympicPainterSettings.FontSize, normal_style); BackColor = OlympicPainterSettings.MatchLabelColors.Started; break; } if (FMatch.PlayerA.Id == -1 || FMatch.PlayerB.Id == -1) { if (FMatch.PlayerA.Id == -1 && FMatch.PlayerB.Id == -1) { BackColor = OlympicPainterSettings.MatchLabelColors.Empty; } else { BackColor = OlympicPainterSettings.MatchLabelColors.Seeding; } } /*gr.FillRectangle(new SolidBrush(Color.LightGray), Left + 3, Top + 3, Size.Width, Size.Height); * gr.FillRectangle(new SolidBrush(BackColor), Left, Top, Size.Width, Size.Height); * gr.DrawRectangle(new Pen(Color.Black), Left, Top, Size.Width, Size.Height);*/ //----------------------------------------------------------------------------- SmoothingMode sm = gr.SmoothingMode; gr.SmoothingMode = SmoothingMode.HighQuality; GraphicsPath shadowPath = RoundedRectangle.Create(Left + OlympicPainterSettings.ShadowStep, Top + OlympicPainterSettings.ShadowStep, Size.Width, Size.Height); gr.FillPath(new SolidBrush(OlympicPainterSettings.ShadowColor), shadowPath); GraphicsPath boxPath = RoundedRectangle.Create(Left, Top, Size.Width, Size.Height); gr.FillPath(new SolidBrush(BackColor), boxPath); gr.DrawPath(new Pen(OlympicPainterSettings.BorderColor), boxPath); gr.SmoothingMode = sm; //----------------------------------------------------------------------------- gr.DrawString(PlayerA, FontA, new SolidBrush(OlympicPainterSettings.MatchLabelColors.ForeColor), new Point(Left + 3, Top + 1)); gr.DrawString(PlayerB, FontB, new SolidBrush(OlympicPainterSettings.MatchLabelColors.ForeColor), new Point(Left + 3, Top + OlympicPainterSettings.Scaled(17))); SizeF pointAsize = gr.MeasureString(PointsA, FontA); SizeF pointBsize = gr.MeasureString(PointsB, FontB); gr.DrawString(PointsA, font_normal, new SolidBrush(OlympicPainterSettings.MatchLabelColors.ForeColor), new PointF(Left + Size.Width - pointAsize.Width - OlympicPainterSettings.Scaled(5), Top + 1)); gr.DrawString(PointsB, font_normal, new SolidBrush(OlympicPainterSettings.MatchLabelColors.ForeColor), new PointF(Left + Size.Width - pointBsize.Width - OlympicPainterSettings.Scaled(5), Top + OlympicPainterSettings.Scaled(17))); if (FMatch.Title != "") { SizeF titleSize = gr.MeasureString(FMatch.Title, font_bold); gr.DrawString(FMatch.Title, font_bold, new SolidBrush(OlympicPainterSettings.MatchLabelColors.ForeColor), new PointF(Left + (Size.Width - titleSize.Width) / 2, Top - titleSize.Height)); } }