]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Added support for line-height-shift-adjustment property
authorManuel Mall <manuel@apache.org>
Thu, 11 Jan 2007 13:51:28 +0000 (13:51 +0000)
committerManuel Mall <manuel@apache.org>
Thu, 11 Jan 2007 13:51:28 +0000 (13:51 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@495222 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/content/xdocs/compliance.ihtml
src/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java
status.xml
test/layoutengine/standard-testcases/block_line-height-shift-adjustment.xml [new file with mode: 0755]

index 60b69b9b76dfecbb9c2ad6c853b766a81d1d6d6e..ac87a6f0b298cd7d1427e8fa5fc575c4038b5847 100644 (file)
       <td class="no">
         no
       </td>
-      <td class="no">
-        no
+      <td class="yes">
+        yes
       </td>
       <td align="center">
-        &nbsp;
+        [0.93] Supported in fop-trunk only
       </td>
     </tr>
     <tr>
index b3e1e33ba83723951dfa7c02b2b6c3b2e619e44f..f4480c4e99cbc8a3878fbdd065774d4891107555 100644 (file)
@@ -447,12 +447,15 @@ public class LineLayoutManager extends InlineStackingLayoutManager
                             if (!ac.usesInitialBaselineTable()
                                 || ac.getAlignmentBaselineIdentifier() != EN_BEFORE_EDGE
                                    && ac.getAlignmentBaselineIdentifier() != EN_AFTER_EDGE) {
-                                int alignmentOffset = ac.getTotalAlignmentBaselineOffset();
-                                if (alignmentOffset + ac.getAltitude() > lineLead) {
-                                    lineLead = alignmentOffset + ac.getAltitude();
-                                }
-                                if (ac.getDepth() - alignmentOffset > lineFollow)  {
-                                    lineFollow = ac.getDepth() - alignmentOffset;
+                                if (fobj.getLineHeightShiftAdjustment() == EN_CONSIDER_SHIFTS
+                                    || ac.getBaselineShiftValue() == 0) {
+                                    int alignmentOffset = ac.getTotalAlignmentBaselineOffset();
+                                    if (alignmentOffset + ac.getAltitude() > lineLead) {
+                                        lineLead = alignmentOffset + ac.getAltitude();
+                                    }
+                                    if (ac.getDepth() - alignmentOffset > lineFollow)  {
+                                        lineFollow = ac.getDepth() - alignmentOffset;
+                                    }
                                 }
                             } else {
                                 if (ac.getHeight() > maxIgnoredHeight) {
index 9c20e04334c610861ca840682e8c6860f4e3db51..4b1f1727ef9be47c4e87f054d09d79079ba0926d 100644 (file)
@@ -28,6 +28,9 @@
 
   <changes>
     <release version="FOP Trunk">
+      <action context="Code" dev="MM" type="add">
+        Added support for line-height-shift-adjustment property.
+      </action>
       <action context="Code" dev="SP" type="add">
         Added support for the system property fop.home to
         cli.Main.getJARList().
diff --git a/test/layoutengine/standard-testcases/block_line-height-shift-adjustment.xml b/test/layoutengine/standard-testcases/block_line-height-shift-adjustment.xml
new file mode 100755 (executable)
index 0000000..65b6b77
--- /dev/null
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!-- $Id$ -->
+<testcase>
+  <info>
+    <p>
+      This test checks the line-height-shift-adjustment property.
+    </p>
+  </info>
+  <fo>
+    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:svg="http://www.w3.org/2000/svg">
+      <fo:layout-master-set>
+        <fo:simple-page-master master-name="normal" page-width="5in" page-height="5in">
+          <fo:region-body/>
+        </fo:simple-page-master>
+      </fo:layout-master-set>
+      <fo:page-sequence master-reference="normal" white-space-collapse="true">
+        <fo:flow flow-name="xsl-region-body">
+          <fo:block background-color="silver" margin="4pt 0pt 4pt 0pt" font-size="14pt" line-height-shift-adjustment="consider-shifts">
+            Consider
+            <fo:inline font-size="10pt" 
+                baseline-shift="sub" 
+                background-color="yellow">baseline-shift="sub"</fo:inline>
+            shifts
+          </fo:block>
+          <fo:block background-color="silver" margin="4pt 0pt 4pt 0pt" font-size="14pt" line-height-shift-adjustment="disregard-shifts">
+            Disregard
+            <fo:inline font-size="10pt" 
+                baseline-shift="sub" 
+                background-color="yellow">baseline-shift="sub"</fo:inline>
+            shifts
+          </fo:block>
+          <fo:block background-color="silver" margin="4pt 0pt 4pt 0pt" font-size="14pt" line-height-shift-adjustment="consider-shifts">
+            Consider
+            <fo:inline font-size="10pt"
+                baseline-shift="super" 
+                background-color="yellow">baseline-shift="super"</fo:inline>
+            shifts
+          </fo:block>
+          <fo:block background-color="silver" margin="4pt 0pt 4pt 0pt" font-size="14pt" line-height-shift-adjustment="disregard-shifts">
+            Disregard
+            <fo:inline font-size="10pt"
+                baseline-shift="super" 
+                background-color="yellow">baseline-shift="super"</fo:inline>
+            shifts
+          </fo:block>
+          <fo:block background-color="silver" margin="4pt 0pt 4pt 0pt" font-size="14pt" line-height-shift-adjustment="consider-shifts">
+            Consider
+            <fo:inline font-size="10pt"
+                baseline-shift="30%"
+                background-color="yellow">baseline-shift="30%"</fo:inline>
+            shifts
+          </fo:block>
+          <fo:block background-color="silver" margin="4pt 0pt 4pt 0pt" font-size="14pt" line-height-shift-adjustment="disregard-shifts">
+            Disregard
+            <fo:inline font-size="10pt"
+                baseline-shift="30%"
+                background-color="yellow">baseline-shift="30%"</fo:inline>
+            shifts
+          </fo:block>
+          <fo:block background-color="silver" margin="4pt 0pt 4pt 0pt" font-size="14pt" line-height-shift-adjustment="consider-shifts">
+            Consider
+            <fo:inline font-size="10pt"
+                baseline-shift="-30%"
+                background-color="yellow">baseline-shift="-30%"</fo:inline>
+            shifts
+          </fo:block>
+          <fo:block background-color="silver" margin="4pt 0pt 4pt 0pt" font-size="14pt" line-height-shift-adjustment="disregard-shifts">
+            Disregard
+            <fo:inline font-size="10pt"
+                baseline-shift="-30%"
+                background-color="yellow">baseline-shift="-30%"</fo:inline>
+            shifts
+          </fo:block>
+        </fo:flow>
+      </fo:page-sequence>
+    </fo:root>
+  </fo>
+  <checks>
+    <eval expected="14737" xpath="//flow/block[1]/lineArea[1]/@bpd"/>
+    
+    <eval expected="12950" xpath="//flow/block[2]/lineArea[1]/@bpd"/>
+    
+    <eval expected="17400" xpath="//flow/block[3]/lineArea[1]/@bpd"/>
+    
+    <eval expected="12950" xpath="//flow/block[4]/lineArea[1]/@bpd"/>
+    
+    <eval expected="15118" xpath="//flow/block[5]/lineArea[1]/@bpd"/>
+    
+    <eval expected="12950" xpath="//flow/block[6]/lineArea[1]/@bpd"/>
+    
+    <eval expected="17162" xpath="//flow/block[7]/lineArea[1]/@bpd"/>
+    
+    <eval expected="12950" xpath="//flow/block[8]/lineArea[1]/@bpd"/>
+  </checks>
+</testcase>