private static int getReferenceBaseline(RenderingContext c, BlockBox box) { MarkerData markerData = box.getMarkerData(); StrutMetrics strutMetrics = box.getMarkerData().getStructMetrics(); if (markerData.getReferenceLine() != null) { return markerData.getReferenceLine().getAbsY() + strutMetrics.getBaseline(); } else { return box.getAbsY() + box.getTy() + strutMetrics.getBaseline(); } }
private static int getReferenceBaseline(RenderingContext c, BlockBox box) { MarkerData markerData = box.getMarkerData(); StrutMetrics strutMetrics = box.getMarkerData().getStructMetrics(); if (markerData.getReferenceLine() != null) { return markerData.getReferenceLine().getAbsY() + strutMetrics.getBaseline(); } else { return box.getAbsY() + box.getTy() + strutMetrics.getBaseline(); } }
private static int getReferenceX(RenderingContext c, BlockBox box) { MarkerData markerData = box.getMarkerData(); if (markerData.getReferenceLine() != null) { return markerData.getReferenceLine().getAbsX(); } else { return box.getAbsX() + (int)box.getMargin(c).left(); } }
private static int getReferenceX(RenderingContext c, BlockBox box) { MarkerData markerData = box.getMarkerData(); if (markerData.getReferenceLine() != null) { return markerData.getReferenceLine().getAbsX(); } else { return box.getAbsX() + (int)box.getMargin(c).left(); } }
public static void paint(RenderingContext c, BlockBox box) { if (box.getMarkerData() == null) { return; } MarkerData markerData = box.getMarkerData(); if (markerData.getImageMarker() != null) { drawImage(c, box, markerData); } else { CalculatedStyle style = box.getStyle(); IdentValue listStyle = style.getIdent(CSSName.LIST_STYLE_TYPE); c.getOutputDevice().setColor(style.getColor()); if (markerData.getGlyphMarker() != null) { drawGlyph(c, box, style, listStyle); } else if (markerData.getTextMarker() != null){ drawText(c, box, listStyle); } } }
public static void paint(RenderingContext c, BlockBox box) { if (box.getMarkerData() == null) { return; } MarkerData markerData = box.getMarkerData(); if (markerData.getImageMarker() != null) { drawImage(c, box, markerData); } else { CalculatedStyle style = box.getStyle(); IdentValue listStyle = style.getIdent(CSSName.LIST_STYLE_TYPE); c.getOutputDevice().setColor(style.getColor()); if (markerData.getGlyphMarker() != null) { drawGlyph(c, box, style, listStyle); } else if (markerData.getTextMarker() != null){ drawText(c, box, listStyle); } } }
public void createMarkerData(LayoutContext c) { if (getMarkerData() != null) { return; } StrutMetrics strutMetrics = InlineBoxing.createDefaultStrutMetrics(c, this); boolean imageMarker = false; MarkerData result = new MarkerData(); result.setStructMetrics(strutMetrics); CalculatedStyle style = getStyle(); IdentValue listStyle = style.getIdent(CSSName.LIST_STYLE_TYPE); String image = style.getStringProperty(CSSName.LIST_STYLE_IMAGE); if (! image.equals("none")) { result.setImageMarker(makeImageMarker(c, strutMetrics, image)); imageMarker = result.getImageMarker() != null; } if (listStyle != IdentValue.NONE && ! imageMarker) { if (listStyle == IdentValue.CIRCLE || listStyle == IdentValue.SQUARE || listStyle == IdentValue.DISC) { result.setGlyphMarker(makeGlyphMarker(strutMetrics)); } else { result.setTextMarker(makeTextMarker(c, listStyle)); } } setMarkerData(result); }
private static void drawImage(RenderingContext c, BlockBox box, MarkerData markerData) { FSImage img = null; MarkerData.ImageMarker marker = markerData.getImageMarker(); img = marker.getImage(); if (img != null) { StrutMetrics strutMetrics = box.getMarkerData().getStructMetrics(); int x = getReferenceX(c, box); // FIXME: findbugs possible loss of precision, cf. int / (float)2 x += -marker.getLayoutWidth() + (marker.getLayoutWidth() / 2 - img.getWidth() / 2); c.getOutputDevice().drawImage(img, x, (int)(getReferenceBaseline(c, box) - strutMetrics.getAscent() / 2 - img.getHeight() / 2)); } }
private static void drawImage(RenderingContext c, BlockBox box, MarkerData markerData) { FSImage img = null; MarkerData.ImageMarker marker = markerData.getImageMarker(); img = marker.getImage(); if (img != null) { StrutMetrics strutMetrics = box.getMarkerData().getStructMetrics(); int x = getReferenceX(c, box); x += -marker.getLayoutWidth() + (marker.getLayoutWidth() / 2 - img.getWidth() / 2); c.getOutputDevice().drawImage(img, x, (int)(getReferenceBaseline(c, box) - strutMetrics.getAscent() / 2 - img.getHeight() / 2)); } }
public void createMarkerData(LayoutContext c) { if (getMarkerData() != null) { return; } StrutMetrics strutMetrics = InlineBoxing.createDefaultStrutMetrics(c, this); boolean imageMarker = false; MarkerData result = new MarkerData(); result.setStructMetrics(strutMetrics); CalculatedStyle style = getStyle(); IdentValue listStyle = style.getIdent(CSSName.LIST_STYLE_TYPE); String image = style.getStringProperty(CSSName.LIST_STYLE_IMAGE); if (! image.equals("none")) { result.setImageMarker(makeImageMarker(c, strutMetrics, image)); imageMarker = result.getImageMarker() != null; } if (listStyle != IdentValue.NONE && ! imageMarker) { if (listStyle == IdentValue.CIRCLE || listStyle == IdentValue.SQUARE || listStyle == IdentValue.DISC) { result.setGlyphMarker(makeGlyphMarker(strutMetrics)); } else { result.setTextMarker(makeTextMarker(c, listStyle)); } } setMarkerData(result); }
private static void drawText(RenderingContext c, BlockBox box, IdentValue listStyle) { MarkerData.TextMarker text = box.getMarkerData().getTextMarker(); int x = getReferenceX(c, box); x += -text.getLayoutWidth(); int y = getReferenceBaseline(c, box); c.getOutputDevice().setColor(box.getStyle().getColor()); c.getOutputDevice().setFont(box.getStyle().getFSFont(c)); c.getTextRenderer().drawString( c.getOutputDevice(), text.getText(), x, y); } }
private static void drawText(RenderingContext c, BlockBox box, IdentValue listStyle) { MarkerData.TextMarker text = box.getMarkerData().getTextMarker(); int x = getReferenceX(c, box); x += -text.getLayoutWidth(); int y = getReferenceBaseline(c, box); c.getOutputDevice().setColor(box.getStyle().getColor()); c.getOutputDevice().setFont(box.getStyle().getFSFont(c)); c.getTextRenderer().drawString( c.getOutputDevice(), text.getText(), x, y); } }
private static void drawGlyph(RenderingContext c, BlockBox box, CalculatedStyle style, IdentValue listStyle) { // save the old AntiAliasing setting, then force it on Object aa_key = c.getOutputDevice().getRenderingHint(RenderingHints.KEY_ANTIALIASING); c.getOutputDevice().setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); // calculations for bullets StrutMetrics strutMetrics = box.getMarkerData().getStructMetrics(); MarkerData.GlyphMarker marker = box.getMarkerData().getGlyphMarker(); int x = getReferenceX(c, box); x += -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()); } // restore the old AntiAliasing setting c.getOutputDevice().setRenderingHint(RenderingHints.KEY_ANTIALIASING, aa_key == null ? RenderingHints.VALUE_ANTIALIAS_DEFAULT : aa_key); }
private static void drawGlyph(RenderingContext c, BlockBox box, CalculatedStyle style, IdentValue listStyle) { // save the old AntiAliasing setting, then force it on Object aa_key = c.getOutputDevice().getRenderingHint(RenderingHints.KEY_ANTIALIASING); c.getOutputDevice().setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); // calculations for bullets StrutMetrics strutMetrics = box.getMarkerData().getStructMetrics(); MarkerData.GlyphMarker marker = box.getMarkerData().getGlyphMarker(); int x = getReferenceX(c, box); x += -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()); } // restore the old AntiAliasing setting c.getOutputDevice().setRenderingHint(RenderingHints.KEY_ANTIALIASING, aa_key == null ? RenderingHints.VALUE_ANTIALIAS_DEFAULT : aa_key); }
textIndent += getMarkerData().getLayoutWidth();
textIndent += getMarkerData().getLayoutWidth();
if (getStyle().isListItem()) { createMarkerData(c); c.setCurrentMarkerData(getMarkerData()); didSetMarkerData = true;
if (getStyle().isListItem()) { createMarkerData(c); c.setCurrentMarkerData(getMarkerData()); didSetMarkerData = true;