/** * Return the width of the specified char[] in this Font. */ public int charsWidth(char chars[], int offset, int length) { Font font = getFont(); PlatformFont pf = ((PlatformFont) font.getPeer()); if (pf.mightHaveMultiFontMetrics()) { return getMFCharsWidth(chars, offset, length, font); } else { if (widths != null) { int w = 0; for (int i = offset; i < offset + length; i++) { int ch = chars[i]; if (ch < 0 || ch >= widths.length) { w += maxAdvance; } else { w += widths[ch]; } } return w; } else { return maxAdvance * length; } } }
protected int platformFontCount(Font font, String str) { if (mFontProps == null) { return 0; } CharsetString[] acs = ((PlatformFont)(font.getPeer())).makeMultiCharsetString(str,false); if (acs == null) { /* AWT can't convert all chars so use 2D path */ return 0; } int[] psFonts = getPSFontIndexArray(font, acs); return (psFonts == null) ? 0 : psFonts.length; }
protected int platformFontCount(Font font, String str) { if (mFontProps == null) { return 0; } PlatformFont peer = (PlatformFont) FontAccess.getFontAccess() .getFontPeer(font); CharsetString[] acs = peer.makeMultiCharsetString(str, false); if (acs == null) { /* AWT can't convert all chars so use 2D path */ return 0; } int[] psFonts = getPSFontIndexArray(font, acs); return (psFonts == null) ? 0 : psFonts.length; }