1 Clazz.declarePackage ("swingjs");
\r
2 Clazz.load (["java.awt.FontMetrics"], "swingjs.JSFontMetrics", ["swingjs.JSToolkit"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
6 Clazz.instantialize (this, arguments);
\r
7 }, swingjs, "JSFontMetrics", java.awt.FontMetrics);
\r
8 Clazz.makeConstructor (c$,
\r
10 Clazz.superConstructor (this, swingjs.JSFontMetrics, [null]);
\r
12 Clazz.defineMethod (c$, "setFont",
\r
15 }, "java.awt.Font");
\r
16 Clazz.overrideMethod (c$, "getLeading",
\r
18 return Clazz.doubleToInt (this.font.getSize () / 20) + 1;
\r
20 Clazz.overrideMethod (c$, "getAscent",
\r
22 return this.font.getSize ();
\r
24 Clazz.overrideMethod (c$, "getDescent",
\r
26 return Clazz.doubleToInt (this.font.getSize () / 4) + 1;
\r
28 Clazz.defineMethod (c$, "charWidth",
\r
30 return (pt.charCodeAt (0) < 256 ? Clazz.floatToInt (this.getWidthsFloat ()[pt.charCodeAt (0)]) : this.stringWidth ("" + pt));
\r
32 Clazz.defineMethod (c$, "charWidth",
\r
34 return (pt < 256 ? Clazz.floatToInt (this.getWidthsFloat ()[pt]) : this.stringWidth ("" + String.fromCharCode (pt)));
\r
36 Clazz.overrideMethod (c$, "stringWidth",
\r
38 return Clazz.floatToInt (swingjs.JSToolkit.getStringWidth (null, this.font, s));
\r
40 Clazz.overrideMethod (c$, "getWidths",
\r
42 if (this.iwidths != null) return this.iwidths;
\r
43 this.iwidths = Clazz.newIntArray (256, 0);
\r
44 this.getWidthsFloat ();
\r
45 for (var ch = 0; ch < 256; ch++) {
\r
46 this.iwidths[ch] = Clazz.floatToInt (this.widths[ch]);
\r
48 return this.iwidths;
\r
50 Clazz.defineMethod (c$, "getWidthsFloat",
\r
52 if (this.widths != null) return this.widths;
\r
53 this.widths = Clazz.newFloatArray (256, 0);
\r
54 for (var ch = 0; ch < 256; ch++) {
\r
55 this.widths[ch] = swingjs.JSToolkit.getStringWidth (null, this.font, "" + String.fromCharCode (ch));
\r