]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Added support for <length> values on alignment-adjust
authorVincent Hennebert <vhennebert@apache.org>
Thu, 7 Nov 2013 12:32:20 +0000 (12:32 +0000)
committerVincent Hennebert <vhennebert@apache.org>
Thu, 7 Nov 2013 12:32:20 +0000 (12:32 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_InlineContainer@1539614 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/layoutmgr/inline/InlineContainerLayoutManager.java
test/layoutengine/standard-testcases/inline-container_alignment-adjust.xml

index 21e3cb2836bc22afcde6a2a603e137546f084ef3..539ebc897802606e1fa60c55d2d68fd7408ebabc 100644 (file)
@@ -28,6 +28,8 @@ import org.apache.fop.area.Trait;
 import org.apache.fop.area.inline.Container;
 import org.apache.fop.area.inline.InlineViewport;
 import org.apache.fop.datatypes.Length;
+import org.apache.fop.datatypes.LengthBase;
+import org.apache.fop.datatypes.SimplePercentBaseContext;
 import org.apache.fop.fo.Constants;
 import org.apache.fop.fo.flow.InlineContainer;
 import org.apache.fop.fo.properties.CommonBorderPaddingBackground;
@@ -198,7 +200,10 @@ public class InlineContainerLayoutManager extends AbstractLayoutManager implemen
         } else if (baseline != 0) {
             return getInlineContainerBaselineOffset(baseline);
         } else {
-            return 0;
+            int baselineOffset = getInlineContainerBaselineOffset(dominantBaseline);
+            int adjust = alignmentAdjust.getValue(
+                    new SimplePercentBaseContext(null, LengthBase.ALIGNMENT_ADJUST, 0));
+            return baselineOffset + adjust;
         }
     }
 
index 917a3a1d2bca2b1c633d1e805a34a4c695277287..b63e36b69f42e6900d34c962cc9533c671fa1b99 100644 (file)
         </fo:flow>
       </fo:page-sequence>
 
+      <fo:page-sequence master-reference="page">
+        <fo:flow flow-name="xsl-region-body">
+          <fo:block space-after="10pt">alignment-adjust="30pt":</fo:block>
+          <fo:block>The line before. The line before. Before: <fo:inline-container width="100pt" 
+              alignment-adjust="30pt">
+              <fo:block>Inside the inline-container.</fo:block>
+            </fo:inline-container> After the inline-container.</fo:block>
+        </fo:flow>
+      </fo:page-sequence>
+
     </fo:root>
   </fo>
 
     <eval expected="28800" xpath="//pageSequence[10]//flow/block[2]/lineArea[2]/viewport/@bpd"/>
     <eval expected="0"     xpath="//pageSequence[10]//flow/block[2]/lineArea[2]/viewport/@offset"/>
 
+    <!-- 30pt -->
+    <eval expected="49764" xpath="//pageSequence[11]//flow/block[2]/lineArea[2]/@bpd"/>
+    <eval expected="38664" xpath="//pageSequence[11]//flow/block[2]/lineArea[2]/text[1]/@offset"/>
+    <eval expected="8616"  xpath="//pageSequence[11]//flow/block[2]/lineArea[2]/text[1]/@baseline"/>
+    <eval expected="28800" xpath="//pageSequence[11]//flow/block[2]/lineArea[2]/viewport/@bpd"/>
+    <eval expected="0"  xpath="//pageSequence[11]//flow/block[2]/lineArea[2]/viewport/@offset"/>
+
   </checks>
 </testcase>