Ejemplo n.º 1
0
        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));
            }
        }