1 package org.jmol.awtjs2d;
2 
3 import org.jmol.util.Font;
4 
5 /**
6  * methods required by Jmol that access java.awt.Font
7  *
8  * private to org.jmol.awtjs2d
9  *
10  */
11 
12 class JSFont {
13 
newFont(String fontFace, boolean isBold, boolean isItalic, float fontSize, String type)14   static Object newFont(String fontFace, boolean isBold, boolean isItalic, float fontSize, String type) {
15     // "px" are different from "pt" here.
16     // "pt" is the height of an X, ascent.
17     // "px" is the ascent + descent.
18     fontFace = (fontFace.equals("Monospaced") ? "Courier" : fontFace.startsWith("Sans") ? "Helvetica Neue, Sans-serif" : "Serif");
19     return (isBold ? "bold " : "")
20         + (isItalic ? "italic " : "")
21         + fontSize + type + " " + fontFace;
22   }
23 
24   /**
25    * @param font
26    * @param context
27    * @return the context
28    */
getFontMetrics(Font font, Object context)29   static Object getFontMetrics(Font font, Object context) {
30     /**
31      *
32      * @j2sNative
33      *
34      * if (context.font != font.font) {
35      *  context.font = font.font;
36      *  font.font = context.font;
37      *  context._fontAscent = Math.ceil(font.fontSize); //pt, not px
38      *  // the descent is actually (px - pt)
39      *  // but I know of no way of getting access to the drawn height
40      *  context._fontDescent = Math.ceil(font.fontSize * 0.25);//approx
41      * }
42      */
43     {
44     }
45     return context;
46   }
47 
48   /**
49    * @param context
50    * @return height of the font
51    */
getAscent(Object context)52   static int getAscent(Object context) {
53     /**
54      *
55      * @j2sNative
56      *
57      * return Math.ceil(context._fontAscent);
58      */
59     {
60     return 0;
61     }
62   }
63 
64   /**
65    * @param context
66    * @return descent of "g"
67    */
getDescent(Object context)68   static int getDescent(Object context) {
69     /**
70      *
71      * @j2sNative
72      *
73      * return Math.ceil(context._fontDescent);
74      */
75     {
76     return 0;
77     }
78   }
79 
80   /**
81    * @param font
82    * @param context
83    * @param text
84    * @return width
85    */
stringWidth(Font font, Object context, String text)86   static int stringWidth(Font font, Object context, String text) {
87     /**
88      * @j2sNative
89      * context.font = font.font;
90      * return Math.ceil(context.measureText(text).width);
91      */
92     {
93      return 0;
94     }
95   }
96 }
97