<td align="left">
<ul>
<li>
- [Trunk] TODO TBD
+ [Trunk] value "line-height" not supported
</li>
</ul>
</td>
m.addEnum("alphabetic", getEnumProperty(EN_ALPHABETIC, "ALPHABETIC"));
m.addEnum("hanging", getEnumProperty(EN_HANGING, "HANGING"));
m.addEnum("mathematical", getEnumProperty(EN_MATHEMATICAL, "MATHEMATICAL"));
- m.addEnum("top", getEnumProperty(EN_TOP, "TOP"));
- m.addEnum("bottom", getEnumProperty(EN_BOTTOM, "BOTTOM"));
- m.addEnum("text-top", getEnumProperty(EN_TEXT_TOP, "TEXT_TOP"));
- m.addEnum("text-bottom", getEnumProperty(EN_TEXT_BOTTOM, "TEXT_BOTTOM"));
m.setDefault("auto");
m.setPercentBase(LengthBase.ALIGNMENT_ADJUST);
m.addShorthand(s_generics[PR_VERTICAL_ALIGN]);
m.addEnum("alphabetic", getEnumProperty(EN_ALPHABETIC, "ALPHABETIC"));
m.addEnum("hanging", getEnumProperty(EN_HANGING, "HANGING"));
m.addEnum("mathematical", getEnumProperty(EN_MATHEMATICAL, "MATHEMATICAL"));
- m.addEnum("top", getEnumProperty(EN_TOP, "TOP"));
- m.addEnum("bottom", getEnumProperty(EN_BOTTOM, "BOTTOM"));
- m.addEnum("text-top", getEnumProperty(EN_TEXT_TOP, "TEXT_TOP"));
- m.addEnum("text-bottom", getEnumProperty(EN_TEXT_BOTTOM, "TEXT_BOTTOM"));
m.setDefault("auto");
m.addShorthand(s_generics[PR_VERTICAL_ALIGN]);
addPropertyMaker("alignment-baseline", m);
case EN_MATHEMATICAL:
this.alignmentBaselineIdentifier = alignmentBaseline;
break;
- case EN_TOP:
- if (isHorizontalWritingMode()) {
- this.alignmentBaselineIdentifier = EN_BEFORE_EDGE;
- } else {
- this.alignmentBaselineIdentifier = getDominantBaselineIdentifier();
- }
- break;
- case EN_BOTTOM:
- if (isHorizontalWritingMode()) {
- this.alignmentBaselineIdentifier = EN_AFTER_EDGE;
- } else {
- this.alignmentBaselineIdentifier = getDominantBaselineIdentifier();
- }
- break;
- case EN_TEXT_TOP:
- if (isHorizontalWritingMode()) {
- this.alignmentBaselineIdentifier = EN_TEXT_BEFORE_EDGE;
- } else {
- this.alignmentBaselineIdentifier = getDominantBaselineIdentifier();
- }
- break;
- case EN_TEXT_BOTTOM:
- if (isHorizontalWritingMode()) {
- this.alignmentBaselineIdentifier = EN_TEXT_AFTER_EDGE;
- } else {
- this.alignmentBaselineIdentifier = getDominantBaselineIdentifier();
- }
- break;
}
}
alignmentPoint = beforeEdge
- actualBaselineTable.getBaseline(alignmentAdjust.getEnum());
break;
- case EN_TOP: // fall through
- if (isHorizontalWritingMode()) {
- alignmentPoint = 0;
- } else {
- alignmentPoint = beforeEdge;
- }
- break;
- case EN_BOTTOM:
- if (isHorizontalWritingMode()) {
- alignmentPoint = beforeEdge - actualBaselineTable.getBaseline(EN_AFTER_EDGE);
- } else {
- alignmentPoint = beforeEdge;
- }
- break;
- case EN_TEXT_TOP:
- if (isHorizontalWritingMode()) {
- alignmentPoint = beforeEdge
- - actualBaselineTable.getBaseline(EN_TEXT_BEFORE_EDGE);
- } else {
- alignmentPoint = beforeEdge;
- }
- break;
- case EN_TEXT_BOTTOM:
- if (isHorizontalWritingMode()) {
- alignmentPoint = beforeEdge
- - actualBaselineTable.getBaseline(EN_TEXT_AFTER_EDGE);
- } else {
- alignmentPoint = beforeEdge;
- }
- break;
default:
alignmentPoint = beforeEdge
+ alignmentAdjust.getValue(new SimplePercentBaseContext(null
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2005 The Apache Software Foundation
+
+ Licensed 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 line-stacking-strategy font-height against inlines of different sizes.
+ </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 line-stacking-strategy="font-height" background-color="silver" margin="5pt 0pt 5pt 0pt" font-size="14pt">
+ Before
+ <fo:inline font-size="20pt"
+ background-color="yellow">bigger
+ </fo:inline>
+ After
+ </fo:block>
+ <fo:block line-stacking-strategy="font-height" background-color="silver" margin="5pt 0pt 5pt 0pt" font-size="14pt">
+ Before
+ <fo:inline font-size="20pt"
+ border="solid 2pt red"
+ padding="3pt"
+ background-color="yellow">bigger with b & p
+ </fo:inline>
+ After
+ </fo:block>
+ <fo:block line-stacking-strategy="font-height" background-color="silver" margin="5pt 0pt 5pt 0pt" font-size="14pt">
+ Before
+ <fo:inline font-size="10pt"
+ baseline-shift="sub"
+ background-color="yellow">sub
+ <fo:inline font-size="8pt"
+ baseline-shift="sub"
+ background-color="red">sub
+ </fo:inline>sub
+ </fo:inline>
+ After
+ </fo:block>
+ <fo:block line-stacking-strategy="font-height" background-color="silver" margin="5pt 0pt 5pt 0pt" font-size="14pt">
+ Before
+ <fo:inline font-size="10pt"
+ baseline-shift="super"
+ background-color="yellow">super
+ <fo:inline font-size="8pt"
+ baseline-shift="super"
+ background-color="red">super
+ </fo:inline>super
+ </fo:inline>
+ After
+ </fo:block>
+ <fo:block line-stacking-strategy="font-height" background-color="silver" margin="5pt 0pt 5pt 0pt" font-size="14pt">
+ Before
+ <fo:inline font-size="18pt"
+ baseline-shift="super"
+ background-color="yellow">super
+ <fo:inline font-size="24pt"
+ baseline-shift="sub"
+ background-color="red">sub
+ <fo:inline font-size="30pt"
+ baseline-shift="super"
+ background-color="green">super
+ </fo:inline>sub
+ </fo:inline>super
+ </fo:inline>
+ After
+ </fo:block>
+ <fo:block line-stacking-strategy="font-height" background-color="silver" margin="5pt 0pt 5pt 0pt" font-size="14pt">
+ Before
+ <fo:inline font-size="18pt"
+ baseline-shift="sub"
+ background-color="yellow">sub
+ <fo:inline font-size="24pt"
+ baseline-shift="super"
+ background-color="red">super
+ <fo:inline font-size="36pt"
+ baseline-shift="sub"
+ background-color="green">sub
+ </fo:inline>super
+ </fo:inline>sub
+ </fo:inline>
+ After
+ </fo:block>
+ </fo:flow>
+ </fo:page-sequence>
+ </fo:root>
+ </fo>
+ <checks>
+ <eval expected="12950" xpath="//flow/block[1]/lineArea[1]/@bpd"/>
+ <eval expected="0" xpath="//flow/block[1]/lineArea[1]/text[1]/@offset"/>
+ <eval expected="-4308" xpath="//flow/block[1]/lineArea[1]/inlineparent/@offset"/>
+ <eval expected="0" xpath="//flow/block[1]/lineArea[1]/inlineparent/text[1]/@offset"/>
+ <eval expected="0" xpath="//flow/block[1]/lineArea[1]/text[2]/@offset"/>
+
+ <eval expected="12950" xpath="//flow/block[2]/lineArea[1]/@bpd"/>
+ <eval expected="0" xpath="//flow/block[2]/lineArea[1]/text[1]/@offset"/>
+ <eval expected="-4308" xpath="//flow/block[2]/lineArea[1]/inlineparent/@offset"/>
+ <eval expected="0" xpath="//flow/block[2]/lineArea[1]/inlineparent/text[1]/@offset"/>
+ <eval expected="0" xpath="//flow/block[2]/lineArea[1]/text[2]/@offset"/>
+
+ <eval expected="12950" xpath="//flow/block[3]/lineArea[1]/@bpd"/>
+ <eval expected="0" xpath="//flow/block[3]/lineArea[1]/text[1]/@offset"/>
+ <eval expected="5487" xpath="//flow/block[3]/lineArea[1]/inlineparent/@offset"/>
+ <eval expected="0" xpath="//flow/block[3]/lineArea[1]/inlineparent/text[1]/@offset"/>
+ <eval expected="3528" xpath="//flow/block[3]/lineArea[1]/inlineparent/inlineparent/@offset"/>
+ <eval expected="0" xpath="//flow/block[3]/lineArea[1]/inlineparent/inlineparent/text/@offset"/>
+ <eval expected="0" xpath="//flow/block[3]/lineArea[1]/inlineparent/text[2]/@offset"/>
+ <eval expected="0" xpath="//flow/block[3]/lineArea[1]/text[2]/@offset"/>
+
+ <eval expected="12950" xpath="//flow/block[4]/lineArea[1]/@bpd"/>
+ <eval expected="0" xpath="//flow/block[4]/lineArea[1]/text[1]/@offset"/>
+ <eval expected="-4450" xpath="//flow/block[4]/lineArea[1]/inlineparent/@offset"/>
+ <eval expected="0" xpath="//flow/block[4]/lineArea[1]/inlineparent/text[1]/@offset"/>
+ <eval expected="-3794" xpath="//flow/block[4]/lineArea[1]/inlineparent/inlineparent/@offset"/>
+ <eval expected="0" xpath="//flow/block[4]/lineArea[1]/inlineparent/inlineparent/text/@offset"/>
+ <eval expected="0" xpath="//flow/block[4]/lineArea[1]/inlineparent/text[2]/@offset"/>
+ <eval expected="0" xpath="//flow/block[4]/lineArea[1]/text[2]/@offset"/>
+
+ <eval expected="12950" xpath="//flow/block[5]/lineArea[1]/@bpd"/>
+ <eval expected="0" xpath="//flow/block[5]/lineArea[1]/text[1]/@offset"/>
+ <eval expected="-10194" xpath="//flow/block[5]/lineArea[1]/inlineparent/@offset"/>
+ <eval expected="0" xpath="//flow/block[5]/lineArea[1]/inlineparent/text[1]/@offset"/>
+ <eval expected="1968" xpath="//flow/block[5]/lineArea[1]/inlineparent/inlineparent/@offset"/>
+ <eval expected="0" xpath="//flow/block[5]/lineArea[1]/inlineparent/inlineparent/text[1]/@offset"/>
+ <eval expected="-16860" xpath="//flow/block[5]/lineArea[1]/inlineparent/inlineparent/inlineparent/@offset"/>
+ <eval expected="0" xpath="//flow/block[5]/lineArea[1]/inlineparent/inlineparent/inlineparent/text/@offset"/>
+ <eval expected="0" xpath="//flow/block[5]/lineArea[1]/inlineparent/inlineparent/text[2]/@offset"/>
+ <eval expected="0" xpath="//flow/block[5]/lineArea[1]/inlineparent/text[2]/@offset"/>
+ <eval expected="0" xpath="//flow/block[5]/lineArea[1]/text[2]/@offset"/>
+
+ <eval expected="12950" xpath="//flow/block[6]/lineArea[1]/@bpd"/>
+ <eval expected="0" xpath="//flow/block[6]/lineArea[1]/text[1]/@offset"/>
+ <eval expected="1835" xpath="//flow/block[6]/lineArea[1]/inlineparent/@offset"/>
+ <eval expected="0" xpath="//flow/block[6]/lineArea[1]/inlineparent/text[1]/@offset"/>
+ <eval expected="-13722" xpath="//flow/block[6]/lineArea[1]/inlineparent/inlineparent/@offset"/>
+ <eval expected="0" xpath="//flow/block[6]/lineArea[1]/inlineparent/inlineparent/text[1]/@offset"/>
+ <eval expected="798" xpath="//flow/block[6]/lineArea[1]/inlineparent/inlineparent/inlineparent/@offset"/>
+ <eval expected="0" xpath="//flow/block[6]/lineArea[1]/inlineparent/inlineparent/inlineparent/text/@offset"/>
+ <eval expected="0" xpath="//flow/block[6]/lineArea[1]/inlineparent/inlineparent/text[1]/@offset"/>
+ <eval expected="0" xpath="//flow/block[6]/lineArea[1]/inlineparent/text[2]/@offset"/>
+ <eval expected="0" xpath="//flow/block[6]/lineArea[1]/text[2]/@offset"/>
+ </checks>
+</testcase>
<fo:block background-color="silver" margin="1pt 0pt 1pt 0pt" font-size="14pt">
Before <fo:inline font-size="10pt" alignment-adjust="mathematical" background-color="yellow">alignment-adjust="mathematical"</fo:inline> After
</fo:block>
- <fo:block background-color="silver" margin="1pt 0pt 1pt 0pt" font-size="14pt">
- Before <fo:inline font-size="10pt" alignment-adjust="top" background-color="yellow">alignment-adjust="top"</fo:inline> After
- </fo:block>
- <fo:block background-color="silver" margin="1pt 0pt 1pt 0pt" font-size="14pt">
- Before <fo:inline font-size="10pt" alignment-adjust="bottom" background-color="yellow">alignment-adjust="bottom"</fo:inline> After
- </fo:block>
- <fo:block background-color="silver" margin="1pt 0pt 1pt 0pt" font-size="14pt">
- Before <fo:inline font-size="10pt" alignment-adjust="text-top" background-color="yellow">alignment-adjust="text-top"</fo:inline> After
- </fo:block>
- <fo:block background-color="silver" margin="1pt 0pt 1pt 0pt" font-size="14pt">
- Before <fo:inline font-size="10pt" alignment-adjust="text-bottom" background-color="yellow">alignment-adjust="text-bottom"</fo:inline> After
- </fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
<eval expected="2872" xpath="//flow/block[11]/lineArea[1]/inlineparent/@offset"/>
<eval expected="8616" xpath="//flow/block[12]/lineArea[1]/inlineparent/@offset"/>
<eval expected="6462" xpath="//flow/block[13]/lineArea[1]/inlineparent/@offset"/>
- <eval expected="10052" xpath="//flow/block[14]/lineArea[1]/inlineparent/@offset"/>
- <eval expected="802" xpath="//flow/block[15]/lineArea[1]/inlineparent/@offset"/>
- <eval expected="10052" xpath="//flow/block[16]/lineArea[1]/inlineparent/@offset"/>
- <eval expected="802" xpath="//flow/block[17]/lineArea[1]/inlineparent/@offset"/>
</checks>
</testcase>
<fo:block background-color="silver" margin="1pt 0pt 1pt 0pt" font-size="14pt">
Before <fo:inline font-size="10pt" alignment-baseline="mathematical" background-color="yellow">alignment-baseline="mathematical"</fo:inline> After
</fo:block>
- <fo:block background-color="silver" margin="1pt 0pt 1pt 0pt" font-size="14pt">
- Before <fo:inline font-size="10pt" alignment-baseline="top" background-color="yellow">alignment-baseline="top"</fo:inline> After
- </fo:block>
- <fo:block background-color="silver" margin="1pt 0pt 1pt 0pt" font-size="14pt">
- Before <fo:inline font-size="10pt" alignment-baseline="bottom" background-color="yellow">alignment-baseline="bottom"</fo:inline> After
- </fo:block>
- <fo:block background-color="silver" margin="1pt 0pt 1pt 0pt" font-size="14pt">
- Before <fo:inline font-size="10pt" alignment-baseline="text-top" background-color="yellow">alignment-baseline="text-top"</fo:inline> After
- </fo:block>
- <fo:block background-color="silver" margin="1pt 0pt 1pt 0pt" font-size="14pt">
- Before <fo:inline font-size="10pt" alignment-baseline="text-bottom" background-color="yellow">alignment-baseline="text-bottom"</fo:inline> After
- </fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
<eval expected="2872" xpath="//flow/block[11]/lineArea[1]/inlineparent/@offset"/>
<eval expected="574" xpath="//flow/block[12]/lineArea[1]/inlineparent/@offset"/>
<eval expected="1436" xpath="//flow/block[13]/lineArea[1]/inlineparent/@offset"/>
- <eval expected="0" xpath="//flow/block[14]/lineArea[1]/inlineparent/@offset"/>
- <eval expected="3700" xpath="//flow/block[15]/lineArea[1]/inlineparent/@offset"/>
- <eval expected="0" xpath="//flow/block[16]/lineArea[1]/inlineparent/@offset"/>
- <eval expected="3700" xpath="//flow/block[17]/lineArea[1]/inlineparent/@offset"/>
</checks>
</testcase>
<fo:block background-color="silver" margin="1pt 0pt 1pt 0pt" font-size="10pt">
Before <fo:inline font-size="14pt" alignment-baseline="mathematical" background-color="yellow">alignment-baseline="mathematical"</fo:inline> After
</fo:block>
- <fo:block background-color="silver" margin="1pt 0pt 1pt 0pt" font-size="10pt">
- Before <fo:inline font-size="14pt" alignment-baseline="top" background-color="yellow">alignment-baseline="top"</fo:inline> After
- </fo:block>
- <fo:block background-color="silver" margin="1pt 0pt 1pt 0pt" font-size="10pt">
- Before <fo:inline font-size="14pt" alignment-baseline="bottom" background-color="yellow">alignment-baseline="bottom"</fo:inline> After
- </fo:block>
- <fo:block background-color="silver" margin="1pt 0pt 1pt 0pt" font-size="10pt">
- Before <fo:inline font-size="14pt" alignment-baseline="text-top" background-color="yellow">alignment-baseline="text-top"</fo:inline> After
- </fo:block>
- <fo:block background-color="silver" margin="1pt 0pt 1pt 0pt" font-size="10pt">
- Before <fo:inline font-size="14pt" alignment-baseline="text-bottom" background-color="yellow">alignment-baseline="text-bottom"</fo:inline> After
- </fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
<eval expected="1436" xpath="//flow/block[13]/lineArea[1]/text[1]/@offset"/>
<eval expected="1436" xpath="//flow/block[13]/lineArea[1]/text[2]/@offset"/>
-
- <eval expected="0" xpath="//flow/block[14]/lineArea[1]/text[1]/@offset"/>
- <eval expected="0" xpath="//flow/block[14]/lineArea[1]/text[2]/@offset"/>
-
- <eval expected="0" xpath="//flow/block[15]/lineArea[1]/text[1]/@offset"/>
- <eval expected="0" xpath="//flow/block[15]/lineArea[1]/text[2]/@offset"/>
-
- <eval expected="0" xpath="//flow/block[16]/lineArea[1]/text[1]/@offset"/>
- <eval expected="0" xpath="//flow/block[16]/lineArea[1]/text[2]/@offset"/>
-
- <eval expected="3700" xpath="//flow/block[17]/lineArea[1]/text[1]/@offset"/>
- <eval expected="3700" xpath="//flow/block[17]/lineArea[1]/text[2]/@offset"/>
</checks>
</testcase>
<fo:block background-color="silver" margin="1pt 0pt 1pt 0pt">
<fo:inline font-size="14pt">B</fo:inline>efore <fo:inline font-size="10pt" alignment-baseline="mathematical" background-color="yellow">alignment-baseline="mathematical"</fo:inline> After
</fo:block>
- <fo:block background-color="silver" margin="1pt 0pt 1pt 0pt">
- <fo:inline font-size="14pt">B</fo:inline>efore <fo:inline font-size="10pt" alignment-baseline="top" background-color="yellow">alignment-baseline="top"</fo:inline> After
- </fo:block>
- <fo:block background-color="silver" margin="1pt 0pt 1pt 0pt">
- <fo:inline font-size="14pt">B</fo:inline>efore <fo:inline font-size="10pt" alignment-baseline="bottom" background-color="yellow">alignment-baseline="bottom"</fo:inline> After
- </fo:block>
- <fo:block background-color="silver" margin="1pt 0pt 1pt 0pt">
- <fo:inline font-size="14pt">B</fo:inline>efore <fo:inline font-size="10pt" alignment-baseline="text-top" background-color="yellow">alignment-baseline="text-top"</fo:inline> After
- </fo:block>
- <fo:block background-color="silver" margin="1pt 0pt 1pt 0pt">
- <fo:inline font-size="14pt">B</fo:inline>efore <fo:inline font-size="10pt" alignment-baseline="text-bottom" background-color="yellow">alignment-baseline="text-bottom"</fo:inline> After
- </fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
<eval expected="2872" xpath="//flow/block[11]/lineArea[1]/inlineparent[2]/@offset"/>
<eval expected="1723" xpath="//flow/block[12]/lineArea[1]/inlineparent[2]/@offset"/>
<eval expected="2154" xpath="//flow/block[13]/lineArea[1]/inlineparent[2]/@offset"/>
- <eval expected="0" xpath="//flow/block[14]/lineArea[1]/inlineparent[2]/@offset"/>
- <eval expected="3700" xpath="//flow/block[15]/lineArea[1]/inlineparent[2]/@offset"/>
- <eval expected="1436" xpath="//flow/block[16]/lineArea[1]/inlineparent[2]/@offset"/>
- <eval expected="3286" xpath="//flow/block[17]/lineArea[1]/inlineparent[2]/@offset"/>
</checks>
</testcase>