/** * Moves the vertical position to the parameter's value. * * @param y the new vertical position of the Text */ public void moveYLineTo(float y) { float curYLine = getYLine(); float delta = y - curYLine; occupiedArea.getBBox().setY(occupiedArea.getBBox().getY() + delta); }
/** * Moves the vertical position to the parameter's value. * * @param y the new vertical position of the Text */ public void moveYLineTo(float y) { float curYLine = getYLine(); float delta = y - curYLine; occupiedArea.getBBox().setY(occupiedArea.getBBox().getY() + delta); }
private void restoreLayoutBoxAfterFailedLayoutAttempt(Rectangle layoutBox) { layoutBox.setX(backupLayoutBox.getX()).setY(backupLayoutBox.getY()) .setWidth(backupLayoutBox.getWidth()).setHeight(backupLayoutBox.getHeight()); backupCollapseInfo.copyTo(collapseInfo); backupLayoutBox = null; backupCollapseInfo = null; }
private void restoreLayoutBoxAfterFailedLayoutAttempt(Rectangle layoutBox) { layoutBox.setX(backupLayoutBox.getX()).setY(backupLayoutBox.getY()) .setWidth(backupLayoutBox.getWidth()).setHeight(backupLayoutBox.getHeight()); backupCollapseInfo.copyTo(collapseInfo); backupLayoutBox = null; backupCollapseInfo = null; }
private void applyBottomMargin(Rectangle box, float bottomIndent) { // Here we don't subtract used buffer space from topBuffer, because every kid is assumed to be // the last one on the page, and so every kid always has parent's bottom buffer, however only the true last kid // uses it for real. Also, bottom margin are always applied after top margins, so it doesn't matter anyway. float bottomIndentLeftovers = bottomIndent - collapseInfo.getBufferSpaceOnBottom(); if (bottomIndentLeftovers < 0) { collapseInfo.setUsedBufferSpaceOnBottom(bottomIndent); collapseInfo.setBufferSpaceOnBottom(-bottomIndentLeftovers); } else { collapseInfo.setUsedBufferSpaceOnBottom(collapseInfo.getBufferSpaceOnBottom()); collapseInfo.setBufferSpaceOnBottom(0); box.setY(box.getY() + bottomIndentLeftovers); box.setHeight(box.getHeight() - bottomIndentLeftovers); } }
static LayoutArea adjustResultOccupiedAreaForFloatAndClear(IRenderer renderer, List<Rectangle> floatRendererAreas, Rectangle parentBBox, float clearHeightCorrection, boolean marginsCollapsingEnabled) { LayoutArea occupiedArea = renderer.getOccupiedArea(); LayoutArea editedArea = occupiedArea; if (isRendererFloating(renderer)) { editedArea = occupiedArea.clone(); if (occupiedArea.getBBox().getWidth() > 0) { floatRendererAreas.add(occupiedArea.getBBox()); } editedArea.getBBox().setY(parentBBox.getTop()); editedArea.getBBox().setHeight(0); } else if (clearHeightCorrection > 0 && !marginsCollapsingEnabled) { editedArea = occupiedArea.clone(); editedArea.getBBox().increaseHeight(clearHeightCorrection); } return editedArea; }
private void applyBottomMargin(Rectangle box, float bottomIndent) { // Here we don't subtract used buffer space from topBuffer, because every kid is assumed to be // the last one on the page, and so every kid always has parent's bottom buffer, however only the true last kid // uses it for real. Also, bottom margin are always applied after top margins, so it doesn't matter anyway. float bottomIndentLeftovers = bottomIndent - collapseInfo.getBufferSpaceOnBottom(); if (bottomIndentLeftovers < 0) { collapseInfo.setUsedBufferSpaceOnBottom(bottomIndent); collapseInfo.setBufferSpaceOnBottom(-bottomIndentLeftovers); } else { collapseInfo.setUsedBufferSpaceOnBottom(collapseInfo.getBufferSpaceOnBottom()); collapseInfo.setBufferSpaceOnBottom(0); box.setY(box.getY() + bottomIndentLeftovers); box.setHeight(box.getHeight() - bottomIndentLeftovers); } }
static LayoutArea adjustResultOccupiedAreaForFloatAndClear(IRenderer renderer, List<Rectangle> floatRendererAreas, Rectangle parentBBox, float clearHeightCorrection, boolean marginsCollapsingEnabled) { LayoutArea occupiedArea = renderer.getOccupiedArea(); LayoutArea editedArea = occupiedArea; if (isRendererFloating(renderer)) { editedArea = occupiedArea.clone(); if (occupiedArea.getBBox().getWidth() > 0) { floatRendererAreas.add(occupiedArea.getBBox()); } editedArea.getBBox().setY(parentBBox.getTop()); editedArea.getBBox().setHeight(0); } else if (clearHeightCorrection > 0 && !marginsCollapsingEnabled) { editedArea = occupiedArea.clone(); editedArea.getBBox().increaseHeight(clearHeightCorrection); } return editedArea; }
context.getCurrentViewPort().setX(currentViewPort.getX() / scaleWidth); context.getCurrentViewPort().setHeight(currentViewPort.getHeight() / scaleHeight); context.getCurrentViewPort().setY(currentViewPort.getY() / scaleHeight);
AbstractRenderer applyMinHeight(OverflowPropertyValue overflowY, Rectangle layoutBox) { AbstractRenderer overflowRenderer = null; Float blockMinHeight = retrieveMinHeight(); if (!Boolean.TRUE.equals(getPropertyAsBoolean(Property.FORCED_PLACEMENT)) && null != blockMinHeight && blockMinHeight > occupiedArea.getBBox().getHeight()) { float blockBottom = occupiedArea.getBBox().getBottom() - ((float) blockMinHeight - occupiedArea.getBBox().getHeight()); if (isFixedLayout()) { occupiedArea.getBBox().setY(blockBottom).setHeight((float) blockMinHeight); } else { if (isOverflowFit(overflowY) && blockBottom < layoutBox.getBottom()) { float hDelta = occupiedArea.getBBox().getBottom() - layoutBox.getBottom(); occupiedArea.getBBox() .increaseHeight(hDelta) .setY(layoutBox.getBottom()); if (occupiedArea.getBBox().getHeight() < 0) { occupiedArea.getBBox().setHeight(0); } this.isLastRendererForModelElement = false; overflowRenderer = createOverflowRenderer(LayoutResult.PARTIAL); overflowRenderer.updateMinHeight(UnitValue.createPointValue((float) blockMinHeight - occupiedArea.getBBox().getHeight())); if (hasProperty(Property.HEIGHT)) { overflowRenderer.updateHeight(UnitValue.createPointValue((float) retrieveHeight() - occupiedArea.getBBox().getHeight())); } } else { occupiedArea.getBBox().setY(blockBottom).setHeight((float) blockMinHeight); } } } return overflowRenderer; }
AbstractRenderer applyMinHeight(OverflowPropertyValue overflowY, Rectangle layoutBox) { AbstractRenderer overflowRenderer = null; Float blockMinHeight = retrieveMinHeight(); if (!Boolean.TRUE.equals(getPropertyAsBoolean(Property.FORCED_PLACEMENT)) && null != blockMinHeight && blockMinHeight > occupiedArea.getBBox().getHeight()) { float blockBottom = occupiedArea.getBBox().getBottom() - ((float) blockMinHeight - occupiedArea.getBBox().getHeight()); if (isFixedLayout()) { occupiedArea.getBBox().setY(blockBottom).setHeight((float) blockMinHeight); } else { if (isOverflowFit(overflowY) && blockBottom < layoutBox.getBottom()) { float hDelta = occupiedArea.getBBox().getBottom() - layoutBox.getBottom(); occupiedArea.getBBox() .increaseHeight(hDelta) .setY(layoutBox.getBottom()); if (occupiedArea.getBBox().getHeight() < 0) { occupiedArea.getBBox().setHeight(0); } this.isLastRendererForModelElement = false; overflowRenderer = createOverflowRenderer(LayoutResult.PARTIAL); overflowRenderer.updateMinHeight(UnitValue.createPointValue((float) blockMinHeight - occupiedArea.getBBox().getHeight())); if (hasProperty(Property.HEIGHT)) { overflowRenderer.updateHeight(UnitValue.createPointValue((float) retrieveHeight() - occupiedArea.getBBox().getHeight())); } } else { occupiedArea.getBBox().setY(blockBottom).setHeight((float) blockMinHeight); } } } return overflowRenderer; }
float footerHeight = footerRenderer.getOccupiedAreaBBox().getHeight(); footerRenderer.move(0, -(layoutBox.getHeight() - footerHeight)); layoutBox.setY(footerRenderer.occupiedArea.getBBox().getTop()).setHeight(occupiedArea.getBBox().getBottom() - layoutBox.getBottom()); .setY(blockBottom); .setY(blockBottom);
collapseInfo.setBufferSpaceOnBottom(collapseInfo.getBufferSpaceOnBottom() + collapseInfo.getUsedBufferSpaceOnBottom()); collapseInfo.setUsedBufferSpaceOnBottom(0); layoutBox.setY(layoutBox.getY() - bottomIndent); layoutBox.setHeight(layoutBox.getHeight() + bottomIndent);
collapseInfo.setBufferSpaceOnBottom(collapseInfo.getBufferSpaceOnBottom() + collapseInfo.getUsedBufferSpaceOnBottom()); collapseInfo.setUsedBufferSpaceOnBottom(0); layoutBox.setY(layoutBox.getY() - bottomIndent); layoutBox.setHeight(layoutBox.getHeight() + bottomIndent);
float initialX = backgroundImage.isRepeatX() ? imageRectangle.getX() - imageRectangle.getWidth() : imageRectangle.getX(); float initialY = backgroundImage.isRepeatY() ? imageRectangle.getTop() : imageRectangle.getY(); imageRectangle.setY(initialY); do { imageRectangle.setX(initialX);
float initialX = backgroundImage.isRepeatX() ? imageRectangle.getX() - imageRectangle.getWidth() : imageRectangle.getX(); float initialY = backgroundImage.isRepeatY() ? imageRectangle.getTop() : imageRectangle.getY(); imageRectangle.setY(initialY); do { imageRectangle.setX(initialX);
clippedArea.setY(area.getY()).setHeight(area.getHeight());
clippedArea.setY(area.getY()).setHeight(area.getHeight());