Example #1
0
        void OnResultChanged(object sender, BaseChangedData.ChangedEventsArgs e)
        {
            if (((ResultStruct)e._new).Born != ((ResultStruct)e._old).Born)
            {
                this.Invalidate();
            }
            else if (((ResultStruct)e._old).Quantity != ((ResultStruct)e._new).Quantity)
            {
                Graphics   g = this.CreateGraphics();
                RectangleF rf, rf2;
                rf  = SmallHelper.StringInMiddle(g, new Rectangle(m_rect_QuantityDecreaseBounds.Right, m_rect_QuantityDecreaseBounds.Top, m_rect_QuantityIncreaseBounds.Left - m_rect_QuantityDecreaseBounds.Right, m_rect_QuantityDecreaseBounds.Height), ((ResultStruct)e._old).ToString(), this.Font);
                rf2 = SmallHelper.StringInMiddle(g, new Rectangle(m_rect_QuantityDecreaseBounds.Right, m_rect_QuantityDecreaseBounds.Top, m_rect_QuantityIncreaseBounds.Left - m_rect_QuantityDecreaseBounds.Right, m_rect_QuantityDecreaseBounds.Height), ((ResultStruct)e._new).ToString(), this.Font);
                this.Invalidate(new Rectangle((int)rf.X, (int)rf.Y, (int)rf.Width, (int)rf.Height));
                this.Invalidate(new Rectangle((int)rf2.X, (int)rf2.Y, (int)rf2.Width, (int)rf2.Height));
                g.Dispose();

                if (((ResultStruct)e._new).Quantity > ((ResultStruct)e._old).Quantity && ((ResultStruct)e._old).IsMin)
                {
                    this.Invalidate(m_rect_QuantityDecreaseBounds);
                }

                if (((ResultStruct)e._new).Quantity < ((ResultStruct)e._old).Quantity && ((ResultStruct)e._old).IsMax)
                {
                    this.Invalidate(m_rect_QuantityIncreaseBounds);
                }
            }
        }
        protected override void OnPaint(PaintEventArgs pe)
        {
            base.OnPaint(pe);

            Graphics g = pe.Graphics;

            // рамка
            SmallHelper.DrawRect(g, m_pen_BorderBounds, m_rect_BorderBounds);

            // стрелка
            if (!_lock_)
            {
                if (triangle_bounds > 0)
                {
                    if (this.Focused || SelectorOpened)
                    {
                        SmallHelper.DrawRect(g, SelectorOpened ? m_pen_ArrowRectBounds_Pressed : m_pen_ArrowRectBounds, m_rect_ArrowRect);
                    }
                    SmallHelper.FillRectInside(g, SelectorOpened ? m_brush_ArrowRect_Pressed : m_brush_ArrowRect, m_rect_ArrowRect);
                }
                else
                {
                    if (this.Focused || SelectorOpened)
                    {
                        for (int i = 0; i < splitter_width; i++)
                        {
                            g.DrawLine(m_pens_Splitter[i >= m_pens_Splitter.Length ? m_pens_Splitter.Length - 1 : i], m_rect_ArrowRect.X - 1 - i, m_rect_BorderBounds.Top, m_rect_ArrowRect.X - 1 - i, m_rect_BorderBounds.Bottom - 1);
                        }
                    }
                    g.FillRectangle(SelectorOpened ? m_brush_ArrowRect_Pressed : m_brush_ArrowRect, m_rect_ArrowRect);
                }
                g.FillPolygon(SelectorOpened ? m_brush_Arrow_Pressed : m_brush_Arrow, m_points_Arrow);
            }
        }
Example #3
0
        protected override void OnPaint(PaintEventArgs pe)
        {
            base.OnPaint(pe);

            Graphics g = pe.Graphics;

            // Обводка, если нажата мышка
            if (bMousePressed && bMouseOver && !_lock_)
            {
                Rectangle r = m_rect_BorderBounds;
                for (int i = 0; i < highlightPens.Length; i++)
                {
                    SmallHelper.DrawRect(g, highlightPens[i], r);
                    r.X++;
                    r.Y++;
                    r.Width  -= 2;
                    r.Height -= 2;
                }
            }

            // Текст
            if (m_switcher != null && m_switcher.IsDefined())
            {
                SmallHelper.DrawMultiString(g, m_rect_BorderBounds, m_switcher.ToString(), this.Font, this.m_brush_String, align_x, StringAlignment.Near, StringAlignment.Center, offset_x, 0, 0);


                //m_rf_String = SmallHelper.StringInMiddle(g, m_rect_BorderBounds, m_switcher.ToString(), this.Font);
                //g.DrawString(this.m_switcher.ToString(), this.Font, this.m_brush_String, offset_x, m_rf_String.Y);
            }
        }
        protected override void OnPaint(PaintEventArgs pe)
        {
            base.OnPaint(pe);

            Graphics g = pe.Graphics;

            /*Graphics gbuf = Graphics.FromImage(bmpbuf);
             * gbuf.Clear(this.BackColor);*/

            // Текст
            if (m_value != null && m_value.IsDefined())
            {
                Rectangle m_rect_BorderBounds = new Rectangle(0, 0, this.Width, this.Height);
                if (strFonts == null && strBrushes == null)
                {
                    SmallHelper.DrawMultiString(g, m_rect_BorderBounds, this.m_value.ToString(), this.Font, this.m_brush_String, align_x, align_x2, StringAlignment.Center, offset_x, 0, interval_y);
                }
                else
                {
                    SmallHelper.DrawMultiString(g, m_rect_BorderBounds, this.m_value.ToString(), (this.strFonts == null || !bUseFonts) ? (new Font[] { this.Font }) : this.strFonts, (this.strBrushes == null || !bUseBrushes) ? (new Brush[] { this.m_brush_String }) : this.strBrushes, align_x, align_x2, StringAlignment.Center, offset_x, 0, interval_y);
                }
            }

            /*gbuf.Dispose();
             * g.DrawImage(bmpbuf, 0, 0);
             * g.Dispose();*/
        }
Example #5
0
        public static void LoadGraphicsResources()
        {
            /*m_bmp_Arrow_Left = new Bitmap(Program.ExeDir + "Resources\\" + "arrow_left.bmp");
             * m_bmp_Arrow_Left_Passive = new Bitmap(Program.ExeDir + "Resources\\" + "arrow_left_passive.bmp");
             * m_bmp_Arrow_Right = new Bitmap(Program.ExeDir + "Resources\\" + "arrow_right.bmp");
             * m_bmp_Arrow_Right_Passive = new Bitmap(Program.ExeDir + "Resources\\" + "arrow_right_passive.bmp");
             * m_bmp_CuteBtn = new Bitmap(Program.ExeDir + "Resources\\" + "cute_button.bmp");
             * m_bmp_CuteBtn_Selected = new Bitmap(Program.ExeDir + "Resources\\" + "cute_button_selected.bmp");
             * m_bmp_CuteBtn_Twice = new Bitmap(Program.ExeDir + "Resources\\" + "cute_big_button.bmp");
             * m_bmp_CuteBtn_Twice_Selected = new Bitmap(Program.ExeDir + "Resources\\" + "cute_big_button_selected.bmp");
             * m_bmp_CuteBtn_Long = new Bitmap(Program.ExeDir + "Resources\\" + "cute_long_button.bmp");
             * m_bmp_CuteBtn_Long_Selected = new Bitmap(Program.ExeDir + "Resources\\" + "cute_long_button_selected.bmp");
             * m_bmp_Check_False = new Bitmap(Program.ExeDir + "Resources\\" + "check_false.bmp");
             * m_bmp_Check_True = new Bitmap(Program.ExeDir + "Resources\\" + "check_true.bmp");
             * m_bmp_Check_Half = new Bitmap(Program.ExeDir + "Resources\\" + "check_hz.bmp");*/


            m_bmp_Arrow_Left             = BridgeProject.Properties.Resources.arrow_left;
            m_bmp_Arrow_Left_Passive     = BridgeProject.Properties.Resources.arrow_left_passive;
            m_bmp_Arrow_Right            = BridgeProject.Properties.Resources.arrow_right;
            m_bmp_Arrow_Right_Passive    = BridgeProject.Properties.Resources.arrow_right_passive;
            m_bmp_CuteBtn                = BridgeProject.Properties.Resources.cute_button;
            m_bmp_CuteBtn_Selected       = BridgeProject.Properties.Resources.cute_button_selected;
            m_bmp_CuteBtn_Twice          = BridgeProject.Properties.Resources.cute_big_button;
            m_bmp_CuteBtn_Twice_Selected = BridgeProject.Properties.Resources.cute_big_button_selected;
            m_bmp_CuteBtn_Long           = BridgeProject.Properties.Resources.cute_long_button;
            m_bmp_CuteBtn_Long_Selected  = BridgeProject.Properties.Resources.cute_long_button_selected;
            m_bmp_Check_False            = BridgeProject.Properties.Resources.check_false;
            m_bmp_Check_True             = BridgeProject.Properties.Resources.check_true;
            m_bmp_Check_Half             = BridgeProject.Properties.Resources.check_hz;

            m_pen_MainBounds1      = new Pen(Color.FromArgb(213, 150, 0));
            m_pen_MainBounds2      = new Pen(Color.FromArgb(255, 184, 51));
            m_pen_Arrows_NONACTIVE = new Pen(Color.Transparent);
            m_pen_Arrows_ACTIVE    = new Pen(Color.Gray);
            m_pen_Arrows_SELECTED  = new Pen(Color.Gray);
            m_pen_Arrows_REPEAT    = new Pen(Color.Gray);

            m_brush_Arrows_NONACTIVE = new SolidBrush(Color.Transparent);
            m_brush_Arrows_ACTIVE    = new SolidBrush(Color.White);
            m_brush_Arrows_SELECTED  = new SolidBrush(Color.DarkGray);
            m_brush_Arrows_REPEAT    = new SolidBrush(Color.DarkRed);
            m_brush_String           = new SolidBrush(SystemColors.ControlText);
            m_brush_String_RED       = new SolidBrush(Color.Red);
            m_brush_String_BLACK     = new SolidBrush(Color.Black);
            m_brush_String_BLUE      = new SolidBrush(Color.Blue);
            m_brush_String_GREEN     = new SolidBrush(Color.Green);
            m_brush_String_ANTIRED   = new SolidBrush(SmallHelper.AntiColor(Color.Red));
            m_brush_String_ANTIBLACK = new SolidBrush(SmallHelper.AntiColor(Color.Black));
            m_brush_String_ANTIBLUE  = new SolidBrush(SmallHelper.AntiColor(Color.Blue));
            m_brush_String_ANTIGREEN = new SolidBrush(SmallHelper.AntiColor(Color.Green));

            quantityNum_font = new Font("Tahoma", 10F, System.Drawing.FontStyle.Regular);
            suits_font       = new System.Drawing.Font("Courier New", 12F, System.Drawing.FontStyle.Regular);
            nt_font          = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Regular);
            re_contra_font   = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular);
            NO_font          = new System.Drawing.Font("Tahoma", 7F, System.Drawing.FontStyle.Regular);
        }
Example #6
0
        protected override void OnPaint(PaintEventArgs pe)
        {
            base.OnPaint(pe);

            Graphics g = pe.Graphics;

            // рамка
            SmallHelper.DrawRect(g, ContractSelector.m_pen_MainBounds2, m_rect_MainBorderBounds);
            m_rect_MainBorderBounds.Inflate(-1, -1);
            SmallHelper.DrawRect(g, ContractSelector.m_pen_MainBounds1, m_rect_MainBorderBounds);
            m_rect_MainBorderBounds.Inflate(1, 1);

            if (m_result == null)
            {
                return;
            }

            if (!this.m_result.IsDefined() || this.m_result.IsContractNo())
            {
                // надпись [контракт не определён] или [контракт не установлен]

                String s1         = "Контракт";
                String s2         = (!this.m_result.IsDefined() ? "не определён!" : "не установлен");
                SizeF  sf1        = g.MeasureString(s1, font2);
                SizeF  sf2        = g.MeasureString(s2, font2);
                int    y_distance = -8;
                g.DrawString(s1, font2, (!this.m_result.IsDefined() ? ContractSelector.m_brush_String_RED : ContractSelector.m_brush_String_BLACK), m_rect_MainBorderBounds.X + (m_rect_MainBorderBounds.Width - sf1.Width) / 2, m_rect_MainBorderBounds.Y + (m_rect_MainBorderBounds.Height - sf1.Height - sf2.Height - y_distance) / 2);
                g.DrawString(s2, font2, (!this.m_result.IsDefined() ? ContractSelector.m_brush_String_RED : ContractSelector.m_brush_String_BLACK), m_rect_MainBorderBounds.X + (m_rect_MainBorderBounds.Width - sf2.Width) / 2, m_rect_MainBorderBounds.Y + (m_rect_MainBorderBounds.Height - sf1.Height - sf2.Height - y_distance) / 2 + sf1.Height + y_distance);
            }
            else
            {
                // кнопка [<]
                SmallHelper.DrawRect(g, (!this.m_result.IsMin) ? (CapturedArea == Area.ArrowLeft && StickArea == CapturedArea ? ContractSelector.m_pen_Arrows_SELECTED : ContractSelector.m_pen_Arrows_ACTIVE) : ContractSelector.m_pen_Arrows_NONACTIVE, m_rect_QuantityDecreaseBounds);
                SmallHelper.FillRectInside(g, (!this.m_result.IsMin) ? (CapturedArea == Area.ArrowLeft && StickArea == CapturedArea ? ContractSelector.m_brush_Arrows_SELECTED : ContractSelector.m_brush_Arrows_ACTIVE) : ContractSelector.m_brush_Arrows_NONACTIVE, m_rect_QuantityDecreaseBounds);
                SmallHelper.DrawBmpTransp(g, (!this.m_result.IsMin) ? ContractSelector.m_bmp_Arrow_Left : ContractSelector.m_bmp_Arrow_Left_Passive, new Point(m_rect_QuantityDecreaseBounds.Right - arrow_offset - ContractSelector.m_bmp_Arrow_Left.Width, m_rect_QuantityDecreaseBounds.Top + (m_rect_QuantityDecreaseBounds.Height - ContractSelector.m_bmp_Arrow_Left.Height) / 2));

                // кнопка [>]
                SmallHelper.DrawRect(g, (!this.m_result.IsMax) ? (CapturedArea == Area.ArrowRight && StickArea == CapturedArea ? ContractSelector.m_pen_Arrows_SELECTED : ContractSelector.m_pen_Arrows_ACTIVE) : ContractSelector.m_pen_Arrows_NONACTIVE, m_rect_QuantityIncreaseBounds);
                SmallHelper.FillRectInside(g, (!this.m_result.IsMax) ? (CapturedArea == Area.ArrowRight && StickArea == CapturedArea ? ContractSelector.m_brush_Arrows_SELECTED : ContractSelector.m_brush_Arrows_ACTIVE) : ContractSelector.m_brush_Arrows_NONACTIVE, m_rect_QuantityIncreaseBounds);
                SmallHelper.DrawBmpTransp(g, (!this.m_result.IsMax) ? ContractSelector.m_bmp_Arrow_Right : ContractSelector.m_bmp_Arrow_Right_Passive, new Point(m_rect_QuantityIncreaseBounds.Left + arrow_offset, m_rect_QuantityIncreaseBounds.Top + (m_rect_QuantityIncreaseBounds.Height - ContractSelector.m_bmp_Arrow_Right.Height) / 2));

                // цифра
                RectangleF rf = SmallHelper.StringInMiddle(g, new Rectangle(m_rect_QuantityDecreaseBounds.Right, m_rect_QuantityDecreaseBounds.Top, m_rect_QuantityIncreaseBounds.Left - m_rect_QuantityDecreaseBounds.Right, m_rect_QuantityDecreaseBounds.Height), this.m_result.ToString(), this.Font);
                g.DrawString(this.m_result.ToString(), this.Font, this.m_result.Quantity >= 0 ? ContractSelector.m_brush_String_GREEN : ContractSelector.m_brush_String_RED, rf /*m_rect_QuantityNumber.X, m_rect_QuantityNumber.Y*/);
            }
        }
Example #7
0
        protected override void OnPaint(PaintEventArgs pe)
        {
            base.OnPaint(pe);

            Graphics g = pe.Graphics;

            if (m_bBorder)
            {
                Pen[] pens = (m_lock ? pens_Border_LOCKED : pens_Border);
                if (this.Controls[0].GetType() == typeof(BridgeProject.RobberScoreControl) || this.Controls[0].GetType().IsSubclassOf(typeof(BridgeProject.RobberScoreControl)))
                {
                    pens = pens_Border;
                }
                if (this.Controls[0].GetType() == typeof(BridgeProject.DealInfoControl) || this.Controls[0].GetType().IsSubclassOf(typeof(BridgeProject.DealInfoControl)))
                {
                    pens = pens_Border;
                }

                for (int i = 0; i < m_iBorderWidth; i++)
                {
                    SmallHelper.DrawRect(g, pens[m_iBorderWidth - 1 - i], new Rectangle(i, i, this.Width - 2 * i, this.Height - 2 * i));
                }
            }
        }
Example #8
0
        protected override void OnPaint(PaintEventArgs pe)
        {
            base.OnPaint(pe);

            Graphics g = pe.Graphics;

            // Текст
            String str = "";

            if (m_score != null && m_score.IsDefined())
            {
                if (m_pair != null && m_pair.IsDefined())
                {
                    str = m_score.ToString(m_pair.Pair);
                }
                else
                {
                    str = m_score.ToString(RelativePair);
                }
            }
            Rectangle m_rect_BorderBounds = new Rectangle(0, 0, this.Width, this.Height);

            SmallHelper.DrawMultiString(g, m_rect_BorderBounds, str, this.Font, this.m_brush_String, align_x, align_x2, StringAlignment.Center, offset_x, 0, 0);
        }
Example #9
0
        void CountScore()
        {
            bool ready = true;

            bool inzone            = checkBox1.Checked;
            int  contract_quantity = 0;

            if (comboBox1.SelectedIndex == -1)
            {
                ready = false;
            }
            else
            {
                contract_quantity = int.Parse(comboBox1.Items[comboBox1.SelectedIndex] as string);
            }
            CardTrump contract_trump = CardTrump.NotYetDefined;

            if (comboBox2.SelectedIndex == -1)
            {
                ready = false;
            }
            else
            {
                string trump_str = (string)comboBox2.Items[comboBox2.SelectedIndex];
                switch (trump_str)
                {
                case "Hearts":
                    contract_trump = CardTrump.Hearts;
                    break;

                case "Diamonds":
                    contract_trump = CardTrump.Diamonds;
                    break;

                case "Clubs":
                    contract_trump = CardTrump.Clubs;
                    break;

                case "Spades":
                    contract_trump = CardTrump.Spades;
                    break;

                case "NT":
                    contract_trump = CardTrump.NT;
                    break;
                }
            }
            bool contract_double   = checkBox2.Checked;
            bool contract_redouble = checkBox3.Checked;
            int  result            = -1;

            if (comboBox3.SelectedIndex == -1)
            {
                ready = false;
            }
            else
            {
                result = int.Parse(comboBox3.Items[comboBox3.SelectedIndex] as string);
            }


            //---------------------------------
            int score = 0;
            int bonus = 0;

            if (ready)
            {
                int result_diff = result - (6 + contract_quantity);
                // ----------------------------- robber ---------------------------
                if (IsRobber)
                {
                    // --- Если контракт сыгран ---
                    if (result_diff >= 0)
                    {
                        // Очки за взятки:
                        score = contract_quantity * (SmallHelper.WhatTrumpType(contract_trump) == TrumpType.Minor ? 20 : 30) + (contract_trump == CardTrump.NT ? 10 : 0);
                        if (contract_double)
                        {
                            score *= 2;
                        }
                        else if (contract_redouble)
                        {
                            score *= 4;
                        }
                        // Премия за превышение взяток:
                        ArrayOfInt bonuses = new ArrayOfInt();
                        if (result_diff > 0)
                        {
                            if (contract_double)
                            {
                                bonuses.Add(result_diff * (inzone ? 200 : 100));
                            }
                            else if (contract_redouble)
                            {
                                bonuses.Add(result_diff * (inzone ? 400 : 200));
                            }
                            else
                            {
                                bonuses.Add(result_diff * (SmallHelper.WhatTrumpType(contract_trump) == TrumpType.Minor ? 20 : 30));
                            }
                        }
                        if (contract_quantity == 6) //малый шлем
                        {
                            bonuses.Add(inzone ? 750 : 500);
                        }
                        else if (contract_quantity == 7) //большой шлем
                        {
                            bonuses.Add(inzone ? 1500 : 1000);
                        }
                        // Дополнительная премия за оскорбление:
                        if (contract_double)
                        {
                            bonuses.Add(50);
                        }
                        else if (contract_redouble)
                        {
                            bonuses.Add(100);
                        }

                        // Посчитать сумму бонусов
                        for (int i = 0; i < bonuses.Count; i++)
                        {
                            bonus += bonuses[i];
                        }
                    }
                    // --- Если контракт проигран ---
                    else
                    {
                        int enemy_score = 0;
                        for (int i = -1; i >= result_diff; i--)
                        {
                            if (i == -1)
                            {
                                if (contract_double)
                                {
                                    enemy_score += (inzone ? 200 : 100);
                                }
                                else if (contract_redouble)
                                {
                                    enemy_score += (inzone ? 400 : 200);
                                }
                                else
                                {
                                    enemy_score += (inzone ? 100 : 50);
                                }
                            }
                            else
                            {
                                if (contract_double)
                                {
                                    enemy_score += (inzone ? 300 : 200);
                                }
                                else if (contract_redouble)
                                {
                                    enemy_score += (inzone ? 600 : 400);
                                }
                                else
                                {
                                    enemy_score += (inzone ? 100 : 50);
                                }
                            }
                        }

                        bonus = -enemy_score;
                    }
                }
                // ----------------------------- sport ---------------------------
                else
                {
                    // --- Если контракт сыгран ---
                    if (result_diff >= 0)
                    {
                        // Очки за взятки:
                        score = contract_quantity * (SmallHelper.WhatTrumpType(contract_trump) == TrumpType.Minor ? 20 : 30) + (contract_trump == CardTrump.NT ? 10 : 0);
                        if (contract_double)
                        {
                            score *= 2;
                        }
                        else if (contract_redouble)
                        {
                            score *= 4;
                        }
                        // Премия за превышение взяток:
                        if (result_diff > 0)
                        {
                            if (contract_double)
                            {
                                bonus += result_diff * (inzone ? 200 : 100);
                            }
                            else if (contract_redouble)
                            {
                                bonus += result_diff * (inzone ? 400 : 200);
                            }
                            else
                            {
                                bonus += result_diff * (SmallHelper.WhatTrumpType(contract_trump) == TrumpType.Minor ? 20 : 30);
                            }
                        }
                        if (contract_quantity == 6) //малый шлем
                        {
                            bonus += (inzone ? 750 : 500);
                        }
                        if (contract_quantity == 7) //большой шлем
                        {
                            bonus += (inzone ? 1500 : 1000);
                        }
                        if (score >= 100) //за гейм
                        {
                            bonus += (inzone ? 500 : 300);
                        }
                        else //за частичную запись
                        {
                            bonus += 50;
                        }
                        // Дополнительная премия:
                        if (contract_double)
                        {
                            bonus += 50;
                        }
                        else if (contract_redouble)
                        {
                            bonus += 100;
                        }
                    }
                    // --- Если контракт проигран ---
                    else
                    {
                        int enemy_score = 0;
                        for (int i = -1; i >= result_diff; i--)
                        {
                            if (i == -1)
                            {
                                if (contract_double)
                                {
                                    enemy_score += (inzone ? 200 : 100);
                                }
                                else if (contract_redouble)
                                {
                                    enemy_score += (inzone ? 400 : 200);
                                }
                                else
                                {
                                    enemy_score += (inzone ? 100 : 50);
                                }
                            }
                            else if (i == -2 || i == -3)
                            {
                                if (contract_double)
                                {
                                    enemy_score += (inzone ? 300 : 200);
                                }
                                else if (contract_redouble)
                                {
                                    enemy_score += (inzone ? 600 : 400);
                                }
                                else
                                {
                                    enemy_score += (inzone ? 100 : 50);
                                }
                            }
                            else
                            {
                                if (contract_double)
                                {
                                    enemy_score += (inzone ? 300 : 300);
                                }
                                else if (contract_redouble)
                                {
                                    enemy_score += (inzone ? 600 : 600);
                                }
                                else
                                {
                                    enemy_score += (inzone ? 100 : 50);
                                }
                            }
                        }

                        bonus = -enemy_score;
                    }
                }
            }
            //---------------------------------



            if (IsRobber)
            {
                label6.Text = score.ToString();
                label7.Text = bonus.ToString();
            }
            else
            {
                label6.Text = (score + bonus).ToString();
            }
        }
Example #10
0
        protected override void OnPaint(PaintEventArgs pe)
        {
            base.OnPaint(pe);
            Graphics g = pe.Graphics;

            // [delme!!!] Заполнить чем-то всю область
            g.FillRectangle(new SolidBrush(Color.Gray), this.ClientRectangle);

            // Граница
            SmallHelper.DrawRect(g, m_pen_Black, new Rectangle(0, 0, total_width, total_height));
            SmallHelper.FillRectInside(g, m_brush, new Rectangle(0, 0, total_width, total_height));

            // Элементы
            Rectangle  r = new Rectangle();
            RectangleF rf;
            int        jw = 1, jh = 1;
            bool       jf = false;
            object     o;

            for (int i = 0; i < DATA__arr.Count; i++)
            {
                for (int j = 0; j < DATA__columns; j++)
                {
                    if (GetJoinInfo(j, i, out jf, out jw, out jh) == true)
                    {
                        if (!jf)
                        {
                            continue;
                        }
                    }

                    r.Width = (jw - 1) * PAINT__border_delay + 2 * jw;
                    for (int x = j; x < (j + jw); x++)
                    {
                        r.Width += PAINT__columns_widths[x];
                    }
                    r.Height = (jh - 1) * PAINT__border_delay + 2 * jh;
                    for (int x = i; x < (i + jh); x++)
                    {
                        r.Height += (x < PAINT__columns_heights.Count ? PAINT__columns_heights[x] : PAINT__data_height);
                    }
                    r.X = (1 + PAINT__border_delay);
                    for (int x = 0; x < j; x++)
                    {
                        r.X += (PAINT__columns_widths[x] + 1 + PAINT__border_delay + 1);
                    }
                    r.Y = (1 + PAINT__border_delay);
                    for (int x = 0; x < i; x++)
                    {
                        r.Y += (x < PAINT__columns_heights.Count ? PAINT__columns_heights[x] : PAINT__data_height) + 1 + PAINT__border_delay + 1;
                    }
                    SmallHelper.DrawRect(g, m_pen_Black, r);
                    bool isHeader = (i < PAINT__headerLinesUp) || (j < PAINT__headerLinesLeft);
                    SmallHelper.FillRectInside(g, (isHeader ? m_brushH : ((i - PAINT__headerLinesUp) % 2 == 0 ? m_brush1 : m_brush2)), r);
                    o  = ((ArrayList)DATA__arr[i])[j];
                    rf = SmallHelper.StringInMiddle(g, r, (o == null ? "" : o.ToString()), (isHeader ? this.FontBold : this.Font));
                    SmallHelper.DrawMultiString(g, r, (o == null ? "" : o.ToString()), (isHeader ? this.FontBold : this.Font), m_brush_Font, StringAlignment.Center, StringAlignment.Center, StringAlignment.Center, 0, 0, -5);
                    //g.DrawString((o == null ? "" : o.ToString()), (isHeader ? this.FontBold : this.Font), m_brush_Font, rf);
                }
            }

            g.Dispose();
        }
Example #11
0
        void OnContractChanged(object sender, BaseChangedData.ChangedEventsArgs e)
        {
            if (((ContractStruct)e._old).Quantity != ((ContractStruct)e._new).Quantity)
            {
                Graphics   g = this.CreateGraphics();
                RectangleF rf, rf2;
                rf  = SmallHelper.StringInMiddle(g, new Rectangle(m_rect_QuantityDecreaseBounds.Right, m_rect_QuantityDecreaseBounds.Top, m_rect_QuantityIncreaseBounds.Left - m_rect_QuantityDecreaseBounds.Right, m_rect_QuantityDecreaseBounds.Height), ((ContractStruct)e._old).GetString1(), quantityNum_font);
                rf2 = SmallHelper.StringInMiddle(g, new Rectangle(m_rect_QuantityDecreaseBounds.Right, m_rect_QuantityDecreaseBounds.Top, m_rect_QuantityIncreaseBounds.Left - m_rect_QuantityDecreaseBounds.Right, m_rect_QuantityDecreaseBounds.Height), ((ContractStruct)e._new).GetString1(), quantityNum_font);
                this.Invalidate(new Rectangle((int)rf.X, (int)rf.Y, (int)rf.Width, (int)rf.Height));
                this.Invalidate(new Rectangle((int)rf2.X, (int)rf2.Y, (int)rf2.Width, (int)rf2.Height));
                g.Dispose();

                if (((ContractStruct)e._new).Quantity == 0 || ((ContractStruct)e._old).Quantity == 0)
                {
                    this.Invalidate(m_rect_QuantityDecreaseBounds);
                    this.Invalidate(m_rect_QuantityIncreaseBounds);
                }
                else
                {
                    if (((ContractStruct)e._new).Quantity > ((ContractStruct)e._old).Quantity && ((ContractStruct)e._old).Quantity == 1)
                    {
                        this.Invalidate(m_rect_QuantityDecreaseBounds);
                    }
                    if (((ContractStruct)e._new).Quantity < ((ContractStruct)e._old).Quantity && ((ContractStruct)e._old).Quantity == 7)
                    {
                        this.Invalidate(m_rect_QuantityIncreaseBounds);
                    }
                }
            }

            if (((ContractStruct)e._old).Trump != ((ContractStruct)e._new).Trump)
            {
                switch (((ContractStruct)e._old).Trump)
                {
                case CardTrump.Clubs:
                    this.Invalidate(m_rect_ClubsBounds);
                    break;

                case CardTrump.Diamonds:
                    this.Invalidate(m_rect_DiamondsBounds);
                    break;

                case CardTrump.Hearts:
                    this.Invalidate(m_rect_HeartsBounds);
                    break;

                case CardTrump.Spades:
                    this.Invalidate(m_rect_SpadesBounds);
                    break;

                case CardTrump.NT:
                    this.Invalidate(m_rect_NTBounds);
                    break;
                }
            }

            if (((ContractStruct)e._old).Contra != ((ContractStruct)e._new).Contra)
            {
                this.Invalidate(new Rectangle(m_rect_ContraBounds.Left + check_offset_img.X, m_rect_ContraBounds.Top + check_offset_img.Y, m_bmp_Check_True.Width, m_bmp_Check_True.Height));
            }

            if (((ContractStruct)e._old).ReContra != ((ContractStruct)e._new).ReContra)
            {
                this.Invalidate(new Rectangle(m_rect_ReContraBounds.Left + check_offset_img.X, m_rect_ReContraBounds.Top + check_offset_img.Y, m_bmp_Check_True.Width, m_bmp_Check_True.Height));
            }

            if (((ContractStruct)e._old).NoContract != ((ContractStruct)e._new).NoContract)
            {
                this.Invalidate(m_rect_NOCONTRACT);
            }
        }
Example #12
0
        protected override void OnPaint(PaintEventArgs pe)
        {
            base.OnPaint(pe);

            Graphics   g = pe.Graphics;
            RectangleF rf, rf2;

            // рамка
            SmallHelper.DrawRect(g, m_pen_MainBounds2, m_rect_MainBorderBounds);
            m_rect_MainBorderBounds.Inflate(-1, -1);
            SmallHelper.DrawRect(g, m_pen_MainBounds1, m_rect_MainBorderBounds);
            m_rect_MainBorderBounds.Inflate(1, 1);

            if (this.m_contract == null)
            {
                return;
            }

            // кнопка [<]
            SmallHelper.DrawRect(g, (this.m_contract.Quantity > 1) ? (CapturedArea == Area.ArrowLeft && StickArea == CapturedArea ? m_pen_Arrows_SELECTED : m_pen_Arrows_ACTIVE) : m_pen_Arrows_NONACTIVE, m_rect_QuantityDecreaseBounds);
            SmallHelper.FillRectInside(g, (this.m_contract.Quantity > 1) ? (CapturedArea == Area.ArrowLeft && StickArea == CapturedArea ? m_brush_Arrows_SELECTED : m_brush_Arrows_ACTIVE) : m_brush_Arrows_NONACTIVE, m_rect_QuantityDecreaseBounds);
            SmallHelper.DrawBmpTransp(g, (this.m_contract.Quantity > 1) ? m_bmp_Arrow_Left : m_bmp_Arrow_Left_Passive, new Point(m_rect_QuantityDecreaseBounds.Right - arrow_offset - m_bmp_Arrow_Left.Width, m_rect_QuantityDecreaseBounds.Top + (m_rect_QuantityDecreaseBounds.Height - m_bmp_Arrow_Left.Height) / 2));

            // кнопка [>]
            SmallHelper.DrawRect(g, (this.m_contract.Quantity < 7 && this.m_contract.Quantity != 0) ? (CapturedArea == Area.ArrowRight && StickArea == CapturedArea ? m_pen_Arrows_SELECTED : m_pen_Arrows_ACTIVE) : m_pen_Arrows_NONACTIVE, m_rect_QuantityIncreaseBounds);
            SmallHelper.FillRectInside(g, (this.m_contract.Quantity < 7 && this.m_contract.Quantity != 0) ? (CapturedArea == Area.ArrowRight && StickArea == CapturedArea ? m_brush_Arrows_SELECTED : m_brush_Arrows_ACTIVE) : m_brush_Arrows_NONACTIVE, m_rect_QuantityIncreaseBounds);
            SmallHelper.DrawBmpTransp(g, (this.m_contract.Quantity < 7 && this.m_contract.Quantity != 0) ? m_bmp_Arrow_Right : m_bmp_Arrow_Right_Passive, new Point(m_rect_QuantityIncreaseBounds.Left + arrow_offset, m_rect_QuantityIncreaseBounds.Top + (m_rect_QuantityIncreaseBounds.Height - m_bmp_Arrow_Right.Height) / 2));

            // цифра
            rf = SmallHelper.StringInMiddle(g, new Rectangle(m_rect_QuantityDecreaseBounds.Right, m_rect_QuantityDecreaseBounds.Top, m_rect_QuantityIncreaseBounds.Left - m_rect_QuantityDecreaseBounds.Right, m_rect_QuantityDecreaseBounds.Height), this.m_contract.GetString1(), quantityNum_font);
            g.DrawString(this.m_contract.GetString1(), quantityNum_font, m_brush_String, rf /*m_rect_QuantityNumber.X, m_rect_QuantityNumber.Y*/);

            // козыри
            rf = SmallHelper.StringInMiddle(g, new Rectangle(m_rect_ClubsBounds.X, m_rect_ClubsBounds.Y, m_bmp_CuteBtn.Width, m_bmp_CuteBtn.Height), "♣", suits_font);
            SmallHelper.DrawBmpTransp(g, (this.m_contract.Trump == CardTrump.Clubs || CapturedArea == Area.Clubs && StickArea == CapturedArea) ? m_bmp_CuteBtn_Selected : m_bmp_CuteBtn, m_rect_ClubsBounds.Location);
            g.DrawString("♣", suits_font, (this.m_contract.Trump == CardTrump.Clubs || CapturedArea == Area.Clubs && StickArea == CapturedArea) ? m_brush_String_ANTIBLACK : m_brush_String_BLACK, rf.X, rf.Y);

            rf = SmallHelper.StringInMiddle(g, new Rectangle(m_rect_SpadesBounds.X, m_rect_SpadesBounds.Y, m_bmp_CuteBtn.Width, m_bmp_CuteBtn.Height), "♠", suits_font);
            SmallHelper.DrawBmpTransp(g, (this.m_contract.Trump == CardTrump.Spades || CapturedArea == Area.Spades && StickArea == CapturedArea) ? m_bmp_CuteBtn_Selected : m_bmp_CuteBtn, m_rect_SpadesBounds.Location);
            g.DrawString("♠", suits_font, (this.m_contract.Trump == CardTrump.Spades || CapturedArea == Area.Spades && StickArea == CapturedArea) ? m_brush_String_ANTIBLACK : m_brush_String_BLACK, rf.X, rf.Y);

            rf = SmallHelper.StringInMiddle(g, new Rectangle(m_rect_HeartsBounds.X, m_rect_HeartsBounds.Y, m_bmp_CuteBtn.Width, m_bmp_CuteBtn.Height), "♥", suits_font);
            SmallHelper.DrawBmpTransp(g, (this.m_contract.Trump == CardTrump.Hearts || CapturedArea == Area.Hearts && StickArea == CapturedArea) ? m_bmp_CuteBtn_Selected : m_bmp_CuteBtn, m_rect_HeartsBounds.Location);
            g.DrawString("♥", suits_font, (this.m_contract.Trump == CardTrump.Hearts || CapturedArea == Area.Hearts && StickArea == CapturedArea) ? m_brush_String_ANTIRED : m_brush_String_RED, rf.X, rf.Y);

            rf = SmallHelper.StringInMiddle(g, new Rectangle(m_rect_DiamondsBounds.X, m_rect_DiamondsBounds.Y, m_bmp_CuteBtn.Width, m_bmp_CuteBtn.Height), "♦", suits_font);
            SmallHelper.DrawBmpTransp(g, (this.m_contract.Trump == CardTrump.Diamonds || CapturedArea == Area.Diamonds && StickArea == CapturedArea) ? m_bmp_CuteBtn_Selected : m_bmp_CuteBtn, m_rect_DiamondsBounds.Location);
            g.DrawString("♦", suits_font, (this.m_contract.Trump == CardTrump.Diamonds || CapturedArea == Area.Diamonds && StickArea == CapturedArea) ? m_brush_String_ANTIRED : m_brush_String_RED, rf.X, rf.Y);

            rf  = SmallHelper.StringInMiddle(g, new Rectangle(m_rect_NTBounds.X, m_rect_NTBounds.Y, m_bmp_CuteBtn_Twice.Width, m_bmp_CuteBtn_Twice.Height), "N", nt_font);
            rf2 = SmallHelper.StringInMiddle(g, new Rectangle(m_rect_NTBounds.X, m_rect_NTBounds.Y, m_bmp_CuteBtn_Twice.Width, m_bmp_CuteBtn_Twice.Height), "T", nt_font);
            float nt_height = rf.Height + n_t_distance + rf2.Height;
            float n_y       = m_rect_NTBounds.Y + (m_bmp_CuteBtn_Twice.Height - nt_height) / 2;
            float t_y       = n_y + rf.Height + n_t_distance;

            SmallHelper.DrawBmpTransp(g, (this.m_contract.Trump == CardTrump.NT || CapturedArea == Area.NT && StickArea == CapturedArea) ? m_bmp_CuteBtn_Twice_Selected : m_bmp_CuteBtn_Twice, m_rect_NTBounds.Location);
            g.DrawString("N", nt_font, (this.m_contract.Trump == CardTrump.NT || CapturedArea == Area.NT && StickArea == CapturedArea) ? m_brush_String_ANTIBLACK : m_brush_String_BLACK, rf.X, n_y /*m_rect_NTBounds.X + nt_offset[0].X, m_rect_NTBounds.Y + nt_offset[0].Y*/);
            g.DrawString("T", nt_font, (this.m_contract.Trump == CardTrump.NT || CapturedArea == Area.NT && StickArea == CapturedArea) ? m_brush_String_ANTIBLACK : m_brush_String_BLACK, rf2.X, t_y /*m_rect_NTBounds.X + nt_offset[1].X, m_rect_NTBounds.Y + nt_offset[1].Y*/);


            // контра
            SmallHelper.DrawBmpTransp(g, (CapturedArea == Area.Contra && StickArea == CapturedArea) ? m_bmp_Check_Half : (this.m_contract.Contra ? m_bmp_Check_True : m_bmp_Check_False), new Point(m_rect_ContraBounds.Left + check_offset_img.X, m_rect_ContraBounds.Top + check_offset_img.Y));
            g.DrawString("Double", re_contra_font, m_brush_String, m_rect_ContraBounds.Left + check_offset_img.X + m_bmp_Check_False.Width + check_offset_text.X, m_rect_ContraBounds.Top + check_offset_text.Y);

            // реконтра
            SmallHelper.DrawBmpTransp(g, (CapturedArea == Area.ReContra && StickArea == CapturedArea) ? m_bmp_Check_Half : (this.m_contract.ReContra ? m_bmp_Check_True : m_bmp_Check_False), new Point(m_rect_ReContraBounds.Left + check_offset_img.X, m_rect_ReContraBounds.Top + check_offset_img.Y));
            g.DrawString("Redouble", re_contra_font, m_brush_String, m_rect_ReContraBounds.Left + check_offset_img.X + m_bmp_Check_False.Width + check_offset_text.X, m_rect_ReContraBounds.Top + check_offset_text.Y);

            // неконтракт
            rf = SmallHelper.StringInMiddle(g, m_rect_NOCONTRACT, "ВСЕ ПАС", NO_font);
            SmallHelper.DrawBmpTransp(g, (CapturedArea == Area.NOCONTRACT && StickArea == CapturedArea) ? (this.m_contract.NoContract == true ? m_bmp_CuteBtn_Long : m_bmp_CuteBtn_Long_Selected) : (this.m_contract.NoContract == true ? m_bmp_CuteBtn_Long_Selected : m_bmp_CuteBtn_Long), m_rect_NOCONTRACT.Location);
            g.DrawString("ВСЕ ПАС", NO_font, (CapturedArea == Area.NOCONTRACT && StickArea == CapturedArea) ? (this.m_contract.NoContract == true ? m_brush_String_RED : m_brush_String_ANTIRED) : (this.m_contract.NoContract == true ? m_brush_String_ANTIRED : m_brush_String_RED), rf.X, rf.Y);
        }
Example #13
0
        protected override void OnPaint(PaintEventArgs pe)
        {
            base.OnPaint(pe);

            if (m_robber == null)
            {
                return;
            }

            Graphics   g                 = pe.Graphics;
            Rectangle  rf1               = new Rectangle();
            RectangleF rf2               = new RectangleF();
            Pen        pen_Black         = new Pen(Color.Black);
            Pen        pen_BorderBetween = new Pen(Color.Blue);

            int ValidDealsCount     = m_robber.GetValidDealsCount();
            int CompletedDealsCount = m_robber.WhereCompleted() + 1;

            if (m_robber.WhereCompleted() != -1 && CompletedDealsCount < ValidDealsCount)
            {
                ValidDealsCount = CompletedDealsCount;
            }

            // V Разделитель
            int bonus_lines = 0, bonus_lines_ns = 0, bonus_lines_ew = 0;

            for (int i = 0; i < ValidDealsCount; i++)
            {
                if (m_robber.ScoreArray[i].NS_up != null && m_robber.ScoreArray[i].NS_up.Length != 0)
                {
                    bonus_lines_ns += m_robber.ScoreArray[i].NS_up.Length;
                }
                if (m_robber.ScoreArray[i].EW_up != null && m_robber.ScoreArray[i].EW_up.Length != 0)
                {
                    bonus_lines_ew += m_robber.ScoreArray[i].EW_up.Length;
                }
            }
            bonus_lines += (bonus_lines_ns > bonus_lines_ew ? bonus_lines_ns : bonus_lines_ew);

            int usual_lines = 0, usual_lines_ns = 0, usual_lines_ew = 0;
            int iNS = 0, iEW = 0;

            for (int i = 0; i < ValidDealsCount; i++)
            {
                if (m_robber.ScoreArray[i].EW_down != 0)
                {
                    usual_lines_ew++;
                    iEW += m_robber.ScoreArray[i].EW_down;
                }
                else if (m_robber.ScoreArray[i].NS_down != 0)
                {
                    usual_lines_ns++;
                    iNS += m_robber.ScoreArray[i].NS_down;
                }

                if (iNS >= 100 || iEW >= 100)
                {
                    usual_lines   += (usual_lines_ns > usual_lines_ew ? usual_lines_ns : usual_lines_ew);
                    usual_lines_ew = usual_lines_ns = 0;
                    iNS            = iEW = 0;
                }
            }
            usual_lines += (usual_lines_ns > usual_lines_ew ? usual_lines_ns : usual_lines_ew);

            int  total_lines               = bonus_lines + usual_lines;
            int  separators                = 1 + m_robber.HowManyValidGames();
            bool is_main_separator_half    = (usual_lines == 0 || bonus_lines == 0);
            bool is_closing_separator_half = (ValidDealsCount > 0 ? m_robber.IsClearAfterGame(ValidDealsCount - 1) : false);
            int  total_height              = total_lines * (int)size1.Height + separators * (1 + 2 * spaceV_Boundary);

            if (m_robber.IsCompleted())
            {
                total_height -= spaceV_Boundary;
            }

            if (total_lines > 0)
            {
                total_height += (total_lines - 1 - separators + (is_main_separator_half ? 1 : 0) + (is_closing_separator_half ? 1 : 0)) * space.Height;
            }

            // Посчитать, влезают ли все очки по вертикали:
            bool use_compact_bonuses     = false;                                                              // сжать бонусы?
            int  robber_line_full_height = offset.Height * 2 + (height_Header + spaceV_Header) + total_height; //полная высота

            if (robber_line_full_height > ClientSize.Height)
            {
                use_compact_bonuses = true;
            }
            if (bonus_lines == 0)
            {
                use_compact_bonuses = false;
            }

            // Сжать бонусы
            if (use_compact_bonuses)
            {
                bonus_lines  = 1;
                total_lines  = bonus_lines + usual_lines;
                total_height = total_lines * (int)size1.Height + separators * (1 + 2 * spaceV_Boundary);
                if (m_robber.IsCompleted())
                {
                    total_height -= spaceV_Boundary;
                }
                if (total_lines > 0)
                {
                    total_height += (total_lines - 1 - separators + (is_main_separator_half ? 1 : 0) + (is_closing_separator_half ? 1 : 0)) * space.Height;
                }
            }

            g.DrawLine(pen_Black, offset.Width + (int)size1.Width + 1 * space.Width, offset.Height + (height_Header + spaceV_Header), offset.Width + (int)size1.Width + 1 * space.Width, offset.Height + (height_Header + spaceV_Header) + total_height - 1); //добавить +1 за толстую черту


            // заголовок: NS и EW
            rf1.X      = offset.Width;
            rf1.Y      = offset.Height;
            rf1.Width  = (int)size1.Width;
            rf1.Height = height_Header;
            rf2        = SmallHelper.StringInMiddle(g, rf1, "NS", this.fontHeader);
            g.DrawString("NS", this.fontHeader, this.brushHeader, rf2);

            rf1.X = offset.Width + (int)size1.Width + 2 * space.Width + 1;
            rf2   = SmallHelper.StringInMiddle(g, rf1, "EW", this.fontHeader);
            g.DrawString("EW", this.fontHeader, this.brushHeader, rf2);



            // Бонусы
            if (!use_compact_bonuses)
            {
                bonus_lines_ns = 0;
                bonus_lines_ew = 0;
                rf1.Width      = (int)size1.Width;
                rf1.Height     = (int)size1.Height;
                for (int i = 0; i < ValidDealsCount; i++)
                {
                    if (m_robber.ScoreArray[i].NS_up != null && m_robber.ScoreArray[i].NS_up.Length != 0)
                    {
                        for (int j = 0; j < m_robber.ScoreArray[i].NS_up.Length; j++)
                        {
                            bonus_lines_ns++;
                            rf1.X = offset.Width;
                            rf1.Y = offset.Height + (height_Header + spaceV_Header) + (bonus_lines - bonus_lines_ns) * ((int)size1.Height + space.Height);
                            rf2   = SmallHelper.StringInMiddle(g, rf1, m_robber.ScoreArray[i].NS_up[j].ToString(), this.Font);
                            g.DrawString(m_robber.ScoreArray[i].NS_up[j].ToString(), this.Font, this.brushText, rf2);
                        }
                    }
                    if (m_robber.ScoreArray[i].EW_up != null && m_robber.ScoreArray[i].EW_up.Length != 0)
                    {
                        for (int j = 0; j < m_robber.ScoreArray[i].EW_up.Length; j++)
                        {
                            bonus_lines_ew++;
                            rf1.X = offset.Width + (int)size1.Width + 2 * space.Width + 1;
                            rf1.Y = offset.Height + (height_Header + spaceV_Header) + (bonus_lines - bonus_lines_ew) * ((int)size1.Height + space.Height);
                            rf2   = SmallHelper.StringInMiddle(g, rf1, m_robber.ScoreArray[i].EW_up[j].ToString(), this.Font);
                            g.DrawString(m_robber.ScoreArray[i].EW_up[j].ToString(), this.Font, this.brushText, rf2);
                        }
                    }
                }
            }
            else
            {
                int total_bonuses_NS = 0, total_bonuses_EW = 0;
                for (int i = 0; i < ValidDealsCount; i++)
                {
                    if (m_robber.ScoreArray[i].NS_up != null && m_robber.ScoreArray[i].NS_up.Length != 0)
                    {
                        for (int j = 0; j < m_robber.ScoreArray[i].NS_up.Length; j++)
                        {
                            total_bonuses_NS += m_robber.ScoreArray[i].NS_up[j];
                        }
                    }
                    if (m_robber.ScoreArray[i].EW_up != null && m_robber.ScoreArray[i].EW_up.Length != 0)
                    {
                        for (int j = 0; j < m_robber.ScoreArray[i].EW_up.Length; j++)
                        {
                            total_bonuses_EW += m_robber.ScoreArray[i].EW_up[j];
                        }
                    }
                }

                rf1.Width  = (int)size1.Width;
                rf1.Height = (int)size1.Height;
                rf1.X      = offset.Width;
                rf1.Y      = offset.Height + (height_Header + spaceV_Header);
                rf2        = SmallHelper.StringInMiddle(g, rf1, total_bonuses_NS.ToString(), this.Font);
                g.DrawString(total_bonuses_NS.ToString(), this.Font, this.brushText, rf2);
                rf1.X = offset.Width + (int)size1.Width + 2 * space.Width + 1;
                rf2   = SmallHelper.StringInMiddle(g, rf1, total_bonuses_EW.ToString(), this.Font);
                g.DrawString(total_bonuses_EW.ToString(), this.Font, this.brushText, rf2);
            }


            // Черта между бонусами и основным счетом:
            int yBorder = offset.Height + (height_Header + spaceV_Header) + spaceV_Boundary;

            if (bonus_lines > 0)
            {
                yBorder += bonus_lines * (int)size1.Height + (bonus_lines - 1) * space.Height;
            }
            g.DrawLine(pen_BorderBetween, offset.Width, yBorder, this.Width - offset.Width - 1, yBorder);
            //g.DrawLine(pen_Black, offset.Width, yBorder + 1, this.Width - offset.Width - 1, yBorder + 1); //тостая черта

            // Основные очки
            usual_lines    = 0;
            usual_lines_ns = 0;
            usual_lines_ew = 0;
            iNS            = 0;
            iEW            = 0;
            separators     = 1;
            for (int i = 0; i < ValidDealsCount; i++)
            {
                if (m_robber.ScoreArray[i].NS_down != 0)
                {
                    iNS += m_robber.ScoreArray[i].NS_down;
                    usual_lines_ns++;

                    rf1.X = offset.Width;
                    rf1.Y = offset.Height + (height_Header + spaceV_Header) + (bonus_lines + usual_lines + usual_lines_ns - 1) * (int)size1.Height + separators * (1 + 2 * spaceV_Boundary);
                    //rf1.Y++; // для толстой черты
                    if (bonus_lines + usual_lines + usual_lines_ns > 0)
                    {
                        rf1.Y += (bonus_lines + usual_lines + usual_lines_ns - 1 - separators + (is_main_separator_half ? 1 : 0)) * space.Height;
                    }
                    rf2 = SmallHelper.StringInMiddle(g, rf1, m_robber.ScoreArray[i].NS_down.ToString(), this.Font);
                    g.DrawString(m_robber.ScoreArray[i].NS_down.ToString(), this.Font, this.brushText, rf2);
                }
                else if (m_robber.ScoreArray[i].EW_down != 0)
                {
                    iEW += m_robber.ScoreArray[i].EW_down;
                    usual_lines_ew++;

                    rf1.X = offset.Width + (int)size1.Width + 2 * space.Width + 1;
                    rf1.Y = offset.Height + (height_Header + spaceV_Header) + (bonus_lines + usual_lines + usual_lines_ew - 1) * (int)size1.Height + separators * (1 + 2 * spaceV_Boundary);
                    //rf1.Y++; // для толстой черты
                    if (bonus_lines + usual_lines + usual_lines_ew > 0)
                    {
                        rf1.Y += (bonus_lines + usual_lines + usual_lines_ew - 1 - separators + (is_main_separator_half ? 1 : 0)) * space.Height;
                    }
                    rf2 = SmallHelper.StringInMiddle(g, rf1, m_robber.ScoreArray[i].EW_down.ToString(), this.Font);
                    g.DrawString(m_robber.ScoreArray[i].EW_down.ToString(), this.Font, this.brushText, rf2);
                }



                if (iEW >= 100 || iNS >= 100)
                {
                    usual_lines   += (usual_lines_ns > usual_lines_ew ? usual_lines_ns : usual_lines_ew);
                    usual_lines_ew = usual_lines_ns = 0;
                    iNS            = iEW = 0;

                    // Черта после гейма:
                    yBorder = offset.Height + (height_Header + spaceV_Header) + (bonus_lines + usual_lines) * (int)size1.Height + separators * (1 + 2 * spaceV_Boundary) + spaceV_Boundary;
                    //yBorder++; // для толстой черты
                    if (bonus_lines + usual_lines > 0)
                    {
                        yBorder += (bonus_lines + usual_lines - 1 - separators + (is_main_separator_half ? 1 : 0)) * space.Height;
                    }
                    g.DrawLine(pen_Black, offset.Width, yBorder, this.Width - offset.Width - 1, yBorder);

                    separators++;
                }
            }

            pen_Black.Dispose();
        }
Example #14
0
 public String GetSuitString()
 {
     return(SmallHelper.GetCardSuitString(this.suit));
 }
Example #15
0
 public String GetValueString()
 {
     return(SmallHelper.GetCardValueString(this.value));
 }