0fc2e9bc8fa255bbac1bc8292e0b9603eade7e6e
[jalviewjs.git] / site / swingjs / j2s / swingjs / JSFontMetrics.js
1 Clazz.declarePackage ("swingjs");\r
2 Clazz.load (["java.awt.FontMetrics"], "swingjs.JSFontMetrics", ["swingjs.JSToolkit"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.widths = null;\r
5 this.iwidths = null;\r
6 Clazz.instantialize (this, arguments);\r
7 }, swingjs, "JSFontMetrics", java.awt.FontMetrics);\r
8 Clazz.makeConstructor (c$, \r
9 function () {\r
10 Clazz.superConstructor (this, swingjs.JSFontMetrics, [null]);\r
11 });\r
12 Clazz.defineMethod (c$, "setFont", \r
13 function (f) {\r
14 this.font = f;\r
15 }, "java.awt.Font");\r
16 Clazz.overrideMethod (c$, "getLeading", \r
17 function () {\r
18 return Clazz.doubleToInt (this.font.getSize () / 20) + 1;\r
19 });\r
20 Clazz.overrideMethod (c$, "getAscent", \r
21 function () {\r
22 return this.font.getSize ();\r
23 });\r
24 Clazz.overrideMethod (c$, "getDescent", \r
25 function () {\r
26 return Clazz.doubleToInt (this.font.getSize () / 4) + 1;\r
27 });\r
28 Clazz.defineMethod (c$, "charWidth", \r
29 function (pt) {\r
30 return (pt.charCodeAt (0) < 256 ? Clazz.floatToInt (this.getWidthsFloat ()[pt.charCodeAt (0)]) : this.stringWidth ("" + pt));\r
31 }, "~S");\r
32 Clazz.defineMethod (c$, "charWidth", \r
33 function (pt) {\r
34 return (pt < 256 ? Clazz.floatToInt (this.getWidthsFloat ()[pt]) : this.stringWidth ("" + String.fromCharCode (pt)));\r
35 }, "~N");\r
36 Clazz.overrideMethod (c$, "stringWidth", \r
37 function (s) {\r
38 return Clazz.floatToInt (swingjs.JSToolkit.getStringWidth (null, this.font, s));\r
39 }, "~S");\r
40 Clazz.overrideMethod (c$, "getWidths", \r
41 function () {\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
47 }\r
48 return this.iwidths;\r
49 });\r
50 Clazz.defineMethod (c$, "getWidthsFloat", \r
51 function () {\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
56 }\r
57 return this.widths;\r
58 });\r
59 });\r