1 Clazz.declarePackage ("java.awt");
\r
2 Clazz.load (["java.awt.font.FontRenderContext"], "java.awt.FontMetrics", ["java.lang.Character"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
5 Clazz.instantialize (this, arguments);
\r
6 }, java.awt, "FontMetrics");
\r
7 Clazz.makeConstructor (c$,
\r
10 }, "java.awt.Font");
\r
11 Clazz.defineMethod (c$, "getFont",
\r
15 Clazz.defineMethod (c$, "getFontRenderContext",
\r
17 return java.awt.FontMetrics.DEFAULT_FRC;
\r
19 Clazz.defineMethod (c$, "getLeading",
\r
23 Clazz.defineMethod (c$, "getAscent",
\r
25 return this.font.getSize ();
\r
27 Clazz.defineMethod (c$, "getDescent",
\r
31 Clazz.defineMethod (c$, "getHeight",
\r
33 return this.getLeading () + this.getAscent () + this.getDescent ();
\r
35 Clazz.defineMethod (c$, "getMaxAscent",
\r
37 return this.getAscent ();
\r
39 Clazz.defineMethod (c$, "getMaxDescent",
\r
41 return this.getDescent ();
\r
43 Clazz.defineMethod (c$, "getMaxDecent",
\r
45 return this.getMaxDescent ();
\r
47 Clazz.defineMethod (c$, "getMaxAdvance",
\r
51 Clazz.defineMethod (c$, "charWidth",
\r
52 function (codePoint) {
\r
53 if (!Character.isValidCodePoint (codePoint)) {
\r
55 }if (codePoint < 256) {
\r
56 return this.getWidths ()[codePoint];
\r
58 var buffer = Clazz.newCharArray (2, '\0');
\r
59 var len = Character.toChars (codePoint, buffer, 0);
\r
60 return this.charsWidth (buffer, 0, len);
\r
62 Clazz.defineMethod (c$, "charWidth",
\r
64 if (ch.charCodeAt (0) < 256) {
\r
65 return this.getWidths ()[ch.charCodeAt (0)];
\r
66 }var data = Clazz.newCharArray (-1, [ch]);
\r
67 return this.charsWidth (data, 0, 1);
\r
69 Clazz.defineMethod (c$, "stringWidth",
\r
71 var len = str.length;
\r
72 var data = Clazz.newCharArray (len, '\0');
\r
73 str.getChars (0, len, data, 0);
\r
74 return this.charsWidth (data, 0, len);
\r
76 Clazz.defineMethod (c$, "charsWidth",
\r
77 function (data, off, len) {
\r
78 return this.stringWidth ( String.instantialize (data, off, len));
\r
80 Clazz.defineMethod (c$, "bytesWidth",
\r
81 function (data, off, len) {
\r
82 return this.stringWidth ( String.instantialize (data, 0, off, len));
\r
84 Clazz.defineMethod (c$, "getWidths",
\r
86 var widths = Clazz.newIntArray (256, 0);
\r
87 for (var ch = String.fromCharCode (0); ch.charCodeAt (0) < 256; ch = String.fromCharCode (ch.charCodeAt (0) + 1)) {
\r
88 widths[ch.charCodeAt (0)] = this.charWidth (ch);
\r
92 Clazz.overrideMethod (c$, "toString",
\r
94 return this.getClass ().getName () + "[font=" + this.getFont () + "ascent=" + this.getAscent () + ", descent=" + this.getDescent () + ", height=" + this.getHeight () + "]";
\r
96 c$.DEFAULT_FRC = c$.prototype.DEFAULT_FRC = new java.awt.font.FontRenderContext (null, false, false);
\r