private static void drawGlyph(RenderingContext c, BlockBox box,
CalculatedStyle style, IdentValue listStyle) {
Object aa_key = c.getOutputDevice().getRenderingHint(RenderingHints.KEY_ANTIALIASING);
c.getOutputDevice().setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
StrutMetrics strutMetrics = box.getMarkerData().getStructMetrics();
MarkerData.GlyphMarker marker = box.getMarkerData().getGlyphMarker();
int x = getReferenceX(c, box);
if (style.getDirection() == IdentValue.LTR) {
x += -marker.getLayoutWidth();
}
if (style.getDirection() == IdentValue.RTL){
x += box.getMarkerData().getReferenceLine().getWidth() + marker.getLayoutWidth();
}
int y = getReferenceBaseline(c, box)
- (int)strutMetrics.getAscent() / 2 - marker.getDiameter() / 2;
if (listStyle == IdentValue.DISC) {
c.getOutputDevice().fillOval(x, y, marker.getDiameter(), marker.getDiameter());
} else if (listStyle == IdentValue.SQUARE) {
c.getOutputDevice().fillRect(x, y, marker.getDiameter(), marker.getDiameter());
} else if (listStyle == IdentValue.CIRCLE) {
c.getOutputDevice().drawOval(x, y, marker.getDiameter(), marker.getDiameter());
}
c.getOutputDevice().setRenderingHint(RenderingHints.KEY_ANTIALIASING,
aa_key == null ? RenderingHints.VALUE_ANTIALIAS_DEFAULT : aa_key);
}