Exemple #1
0
        public virtual Size A(Graphics graphics, Font font, string text, out string ptr)
        {
            D.a.a         a = this.a(graphics, font);
            float         num;
            IList <D.a.A> list = this.B(a, text, out num);

            return(this.b(a, list, num, out ptr));
        }
Exemple #2
0
        private new string A(D.a.a a, IList <D.a.A> list, int num, bool flag, out int ptr)
        {
            int num2 = 0;

            ptr = 0;
            StringBuilder stringBuilder = new StringBuilder();
            float         num3          = 2f * a.A.Height * 2.4f;
            int           num4          = 0;
            int           i             = 0;

            while (i < list.Count)
            {
                num2++;
                int num5 = 2 * num2;
                int num6 = (num5 < num) ? 1 : ((num5 > num) ? -1 : 0);
                num4 += num6;
                if (num4 <= 0)
                {
                    return(null);
                }
                float num7 = (float)num4 * num3;
                D.a.A a2   = null;
                float num8 = 0f;
                while (i < list.Count)
                {
                    D.a.A a3   = list[i];
                    float num9 = num8 + a3.A;
                    if (a2 != null && a2.A)
                    {
                        num9 += a.A.Width;
                    }
                    if (num9 > num7 || (flag && num2 <= 1) || (a2 != null && a2.a))
                    {
                        if (a2 != null && !a2.A && !a2.a && !a2.A.EndsWith("" + '-'))
                        {
                            stringBuilder.Append('-');
                        }
                        stringBuilder.Append("\n");
                        break;
                    }
                    if (a2 != null && a2.A)
                    {
                        stringBuilder.Append(' ');
                    }
                    stringBuilder.Append(a3.A);
                    num8 = num9;
                    a2   = a3;
                    i++;
                }
            }
            ptr   = num4 - 1;
            num2 += ptr;
            for (int j = 0; j < num4; j++)
            {
                stringBuilder.Append("\n");
            }
            return(stringBuilder.ToString());
        }
Exemple #3
0
        protected virtual D.a.a a(Graphics graphics, Font font)
        {
            D.a.a a      = new D.a.a(graphics, font);
            SizeF sizeF  = graphics.MeasureString("Wi", font);
            SizeF sizeF2 = graphics.MeasureString("WiWi", font);
            SizeF sizeF3 = graphics.MeasureString("Wi Wi", font);
            SizeF sizeF4 = graphics.MeasureString("Wi-Wi", font);
            SizeF sizeF5 = graphics.MeasureString("Wi\nWi", font);

            a.A = new SizeF(sizeF3.Width - sizeF2.Width, sizeF5.Height - sizeF.Height);
            float num = sizeF2.Width - sizeF.Width;

            a.a = sizeF.Width - num;
            a.A = sizeF4.Width - sizeF2.Width;
            return(a);
        }
Exemple #4
0
        protected override Size b(D.a.a a, IList <D.a.A> list, float num, out string ptr)
        {
            float num2 = 1f + (float)Math.Sqrt((double)(1f + 2f * num / 2.4f / a.A.Height));
            int   num3 = (int)Math.Round((double)num2);

            ptr = null;
            int num4;

            while (true)
            {
                num4 = 0;
                ptr  = this.A(a, list, num3, false, out num4);
                if (ptr != null)
                {
                    break;
                }
                num3++;
            }
            if (num4 > 1)
            {
                string text = this.A(a, list, num3, true, out num4);
                if (text != null)
                {
                    ptr = text;
                }
            }
            num3 = Math.Max(4, num3);
            float num5 = a.A.Height * (float)num3;
            float num6 = num5 * 2.4f;
            float num7 = 0f * a.A.Height / 14f;
            float num8 = (float)Math.Sqrt(2.4);

            num6 += num7 * num8;
            num5 += 0f / num8;
            return(new Size((int)num6, (int)num5));
        }
Exemple #5
0
        protected virtual IList <D.a.A> B(D.a.a a, string text, out float ptr)
        {
            ptr = 0f;
            List <D.a.A>  list          = new List <D.a.A>();
            StringBuilder stringBuilder = new StringBuilder();
            bool          flag          = false;
            bool          flag2         = false;
            int           num           = 0;

            while (num < text.Length || stringBuilder.Length > 0)
            {
                if (num < text.Length)
                {
                    char c  = text[num];
                    char c2 = c;
                    switch (c2)
                    {
                    case '\t':
                        goto IL_5B;

                    case '\n':
                        goto IL_EE;

                    case '\v':
                    case '\f':
                        break;

                    case '\r':
                        flag2 = true;
                        goto IL_82;

                    default:
                        if (c2 == ' ')
                        {
                            goto IL_5B;
                        }
                        break;
                    }
                    if (c == '~')
                    {
                        goto IL_82;
                    }
                    stringBuilder.Append(c);
                    if (c == '-' || stringBuilder.Length >= 25)
                    {
                        goto IL_82;
                    }
                    goto IL_EE;
IL_5B:
                    flag = true;
                    goto IL_82;
                }
                goto IL_82;
IL_EE:
                num++;
                continue;
IL_82:
                if (stringBuilder.Length >= 0)
                {
                    string text2 = stringBuilder.ToString();
                    float  num2  = a.A.MeasureString(text2, a.A).Width - a.a;
                    list.Add(new D.a.A(text2, num2, flag, flag2));
                    ptr += num2;
                    if (flag)
                    {
                        ptr += a.A.Width;
                    }
                    stringBuilder.Length = 0;
                    flag  = false;
                    flag2 = false;
                    goto IL_EE;
                }
                goto IL_EE;
            }
            return(list.ToArray());
        }
Exemple #6
0
 protected abstract Size b(D.a.a, IList <D.a.A>, float, out string);