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)); }
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()); }
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); }
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)); }
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()); }
protected abstract Size b(D.a.a, IList <D.a.A>, float, out string);