package org.geogebra.desktop.awt;
import java.awt.font.TextLayout;
import org.geogebra.common.awt.GFont;
import org.geogebra.common.awt.GFontRenderContext;
import org.geogebra.common.awt.GGraphics2D;
import org.geogebra.common.awt.font.GTextLayout;
public class GTextLayoutD implements GTextLayout {
private TextLayout impl;
private String str;
private GFont font;
public GTextLayoutD(String string, GFont font, GFontRenderContext frc) {
this.font = font;
this.str = string;
impl = new TextLayout(string, GFontD.getAwtFont(font),
GFontRenderContextD.getAwtFrc(frc));
}
@Override
public double getAdvance() {
return impl.getAdvance();
}
@Override
public GRectangle2DD getBounds() {
return new GGenericRectangle2DD(impl.getBounds());
}
@Override
public double getAscent() {
return impl.getAscent();
}
@Override
public double getDescent() {
return impl.getDescent();
}
@Override
public void draw(GGraphics2D g2, int x, int y) {
if (g2 instanceof GGraphics2DD) {
impl.draw(GGraphics2DD.getAwtGraphics(g2), x, y);
} else {
GFont tempFont = g2.getFont();
g2.setFont(font);
g2.drawString(str, x, y);
g2.setFont(tempFont);
}
}
public TextLayout getImpl() {
return impl;
}
}