@Override public void drawGlyph(String c, int x, int y, int size, Context2d ctx) { FontW derived = new DefaultFont(name, style, size); try { ctx.setFont(derived.getCssFontString()); } catch (Exception e) { // invisible frame in FF throws this } ctx.fillText(c, x, y); }
static void configContext(Context2d ctx, TextFormat format) { Font font = getFont(format); ctx.setFont(HtmlFont.toCSS(font)); ctx.setTextBaseline(Context2d.TextBaseline.TOP); }
static void configContext(Context2d ctx, TextFormat format) { Font font = getFont(format); ctx.setFont(HtmlFont.toCSS(font)); ctx.setTextBaseline(Context2d.TextBaseline.TOP); }
static void configContext(Context2d ctx, TextFormat format) { Font font = getFont(format); String style = ""; switch (font.style()) { case BOLD: style = "bold"; break; case ITALIC: style = "italic"; break; case BOLD_ITALIC: style = "bold italic"; break; default: break; // nada } ctx.setFont(style + " " + font.size() + "px " + font.name()); ctx.setTextBaseline(Context2d.TextBaseline.TOP); }
@Override protected PreciseRectangle getBBoxText(TextSprite sprite) { Context2d ctx = getContext(); ctx.setFont(sprite.getFontSize() + "px " + sprite.getFont()); TextMetrics text = ctx.measureText(sprite.getText()); //TODO real height return new PreciseRectangle(sprite.getX(), sprite.getY(), text.getWidth(), sprite.getFontSize() * 4/3); } protected CanvasElement getCanvas() {
TextSprite text = (TextSprite) sprite; ctx.setFont(text.getFontSize() + "px " + text.getFont()); ctx.setTextAlign(getTextAlign(text.getTextAnchor())); ctx.setTextBaseline(getTextBaseline(text.getTextBaseline()));