60bc6c5e2c4e5c8f8e5cbba499be0e5d4871d531
[jalviewjs.git] / site / j2s / java / awt / FontMetrics.js
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
4 this.font = null;\r
5 Clazz.instantialize (this, arguments);\r
6 }, java.awt, "FontMetrics");\r
7 Clazz.makeConstructor (c$, \r
8 function (font) {\r
9 this.font = font;\r
10 }, "java.awt.Font");\r
11 Clazz.defineMethod (c$, "getFont", \r
12 function () {\r
13 return this.font;\r
14 });\r
15 Clazz.defineMethod (c$, "getFontRenderContext", \r
16 function () {\r
17 return java.awt.FontMetrics.DEFAULT_FRC;\r
18 });\r
19 Clazz.defineMethod (c$, "getLeading", \r
20 function () {\r
21 return 0;\r
22 });\r
23 Clazz.defineMethod (c$, "getAscent", \r
24 function () {\r
25 return this.font.getSize ();\r
26 });\r
27 Clazz.defineMethod (c$, "getDescent", \r
28 function () {\r
29 return 0;\r
30 });\r
31 Clazz.defineMethod (c$, "getHeight", \r
32 function () {\r
33 return this.getLeading () + this.getAscent () + this.getDescent ();\r
34 });\r
35 Clazz.defineMethod (c$, "getMaxAscent", \r
36 function () {\r
37 return this.getAscent ();\r
38 });\r
39 Clazz.defineMethod (c$, "getMaxDescent", \r
40 function () {\r
41 return this.getDescent ();\r
42 });\r
43 Clazz.defineMethod (c$, "getMaxDecent", \r
44 function () {\r
45 return this.getMaxDescent ();\r
46 });\r
47 Clazz.defineMethod (c$, "getMaxAdvance", \r
48 function () {\r
49 return -1;\r
50 });\r
51 Clazz.defineMethod (c$, "charWidth", \r
52 function (codePoint) {\r
53 if (!Character.isValidCodePoint (codePoint)) {\r
54 codePoint = 0xffff;\r
55 }if (codePoint < 256) {\r
56 return this.getWidths ()[codePoint];\r
57 } else {\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
61 }}, "~N");\r
62 Clazz.defineMethod (c$, "charWidth", \r
63 function (ch) {\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
68 }, "~S");\r
69 Clazz.defineMethod (c$, "stringWidth", \r
70 function (str) {\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
75 }, "~S");\r
76 Clazz.defineMethod (c$, "charsWidth", \r
77 function (data, off, len) {\r
78 return this.stringWidth ( String.instantialize (data, off, len));\r
79 }, "~A,~N,~N");\r
80 Clazz.defineMethod (c$, "bytesWidth", \r
81 function (data, off, len) {\r
82 return this.stringWidth ( String.instantialize (data, 0, off, len));\r
83 }, "~A,~N,~N");\r
84 Clazz.defineMethod (c$, "getWidths", \r
85 function () {\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
89 }\r
90 return widths;\r
91 });\r
92 Clazz.overrideMethod (c$, "toString", \r
93 function () {\r
94 return this.getClass ().getName () + "[font=" + this.getFont () + "ascent=" + this.getAscent () + ", descent=" + this.getDescent () + ", height=" + this.getHeight () + "]";\r
95 });\r
96 c$.DEFAULT_FRC = c$.prototype.DEFAULT_FRC =  new java.awt.font.FontRenderContext (null, false, false);\r
97 });\r