bckfnn 2004/09/22 01:22:15 Modified: src/java/org/apache/fop/layoutmgr BlockContainerLayoutManager.java BlockLayoutManager.java Log: Set content ipd/bpd instead of allocation width/height. Revision Changes Path 1.23 +15 -20 xml-fop/src/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java Index: BlockContainerLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- BlockContainerLayoutManager.java 7 Sep 2004 20:47:11 -0000 1.22 +++ BlockContainerLayoutManager.java 22 Sep 2004 08:22:14 -0000 1.23 @@ -105,16 +105,13 @@ return getAbsoluteBreakPoss(context); } - int bIndents = borderProps.getBPPaddingAndBorder(false); - int iIndents = marginProps.startIndent + marginProps.endIndent; - int ipd = context.getRefIPD(); int bpd = context.getStackLimit().opt; if (!width.isAuto()) { - ipd = width.getValue() + iIndents; + ipd = width.getValue(); } if (!height.isAuto()) { - bpd = height.getValue() + bIndents; + bpd = height.getValue(); } Rectangle2D rect = new Rectangle2D.Double(0, 0, ipd, bpd); relDims = new FODimension(0, 0); @@ -122,8 +119,6 @@ propManager.getWritingMode(), rect, relDims); double[] vals = absoluteCTM.toArray(); - ipd -= iIndents; - MinOptMax stackLimit; boolean rotated = vals[0] == 0.0; if (rotated) { @@ -151,9 +146,9 @@ BreakPoss lastPos = null; fobj.setLayoutDimension(PercentBase.BLOCK_IPD, ipd); - fobj.setLayoutDimension(PercentBase.BLOCK_BPD, bpd - bIndents); + fobj.setLayoutDimension(PercentBase.BLOCK_BPD, bpd); fobj.setLayoutDimension(PercentBase.REFERENCE_AREA_IPD, ipd); - fobj.setLayoutDimension(PercentBase.REFERENCE_AREA_BPD, bpd - bIndents); + fobj.setLayoutDimension(PercentBase.REFERENCE_AREA_BPD, bpd); while ((curLM = getChildLM()) != null) { // Make break positions and return blocks! @@ -305,8 +300,8 @@ if (abProps.absolutePosition == AbsolutePosition.ABSOLUTE) { viewportBlockArea.setXOffset(abProps.left); viewportBlockArea.setYOffset(abProps.top); - viewportBlockArea.setWidth(abProps.right - abProps.left); - viewportBlockArea.setHeight(abProps.bottom - abProps.top); + viewportBlockArea.setIPD(abProps.right - abProps.left); + viewportBlockArea.setBPD(abProps.bottom - abProps.top); viewportBlockArea.setCTM(absoluteCTM); viewportBlockArea.setClip(clip); @@ -315,25 +310,25 @@ double[] vals = absoluteCTM.toArray(); boolean rotated = vals[0] == 0.0; if (rotated) { - viewportBlockArea.setWidth(relDims.ipd); - viewportBlockArea.setHeight(relDims.bpd); + viewportBlockArea.setIPD(relDims.ipd); + viewportBlockArea.setBPD(relDims.bpd); viewportBlockArea.setCTM(absoluteCTM); viewportBlockArea.setClip(clip); autoHeight = false; } else if (vals[0] == -1.0) { // need to set bpd to actual size for rotation // and stacking - viewportBlockArea.setWidth(relDims.ipd); + viewportBlockArea.setIPD(relDims.ipd); if (!height.isAuto()) { - viewportBlockArea.setHeight(relDims.bpd); + viewportBlockArea.setBPD(relDims.bpd); autoHeight = false; } viewportBlockArea.setCTM(absoluteCTM); viewportBlockArea.setClip(clip); } else { - viewportBlockArea.setWidth(relDims.ipd); + viewportBlockArea.setIPD(relDims.ipd); if (!height.isAuto()) { - viewportBlockArea.setHeight(relDims.bpd); + viewportBlockArea.setBPD(relDims.bpd); autoHeight = false; } } @@ -380,14 +375,14 @@ viewportBlockArea.addBlock(curBlockArea, autoHeight); // Fake a 0 height for absolute positioned blocks. - int height = viewportBlockArea.getHeight(); + int height = viewportBlockArea.getBPD(); if (viewportBlockArea.getPositioning() == Block.ABSOLUTE) { - viewportBlockArea.setHeight(0); + viewportBlockArea.setBPD(0); } super.flush(); // Restore the right height. if (viewportBlockArea.getPositioning() == Block.ABSOLUTE) { - viewportBlockArea.setHeight(height); + viewportBlockArea.setBPD(height); } } 1.28 +3 -3 xml-fop/src/java/org/apache/fop/layoutmgr/BlockLayoutManager.java Index: BlockLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/BlockLayoutManager.java,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- BlockLayoutManager.java 7 Sep 2004 20:47:11 -0000 1.27 +++ BlockLayoutManager.java 22 Sep 2004 08:22:14 -0000 1.28 @@ -303,7 +303,6 @@ } int bIndents = borderProps.getBPPaddingAndBorder(false); - curBlockArea.setHeight(curBlockArea.getHeight() + bIndents); addMarkers(false, true); @@ -348,12 +347,13 @@ // Need to be careful though, if parent is BC then width may not be set int parentwidth = 0; if (parentArea instanceof BlockParent) { - parentwidth = ((BlockParent) parentArea).getWidth(); + parentwidth = ((BlockParent) parentArea).getIPD(); } if (parentwidth == 0) { parentwidth = referenceIPD; } - curBlockArea.setWidth(parentwidth); + parentwidth -= marginProps.startIndent + marginProps.endIndent; + curBlockArea.setIPD(parentwidth); setCurrentArea(curBlockArea); // ??? for generic operations } return curBlockArea;
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]