]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
A hack to calculate the startIndent and endIndent based on either margin
authorFinn Bock <bckfnn@apache.org>
Thu, 29 Jan 2004 19:39:26 +0000 (19:39 +0000)
committerFinn Bock <bckfnn@apache.org>
Thu, 29 Jan 2004 19:39:26 +0000 (19:39 +0000)
or startIndent.

PR: 25802.

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@197293 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/fo/PropertyManager.java

index cbb5f98fccbd7c51f32841ebe2c0c3f301d0c632..467254442507a4bfa0b8f3a15fa385d569307b4c 100644 (file)
@@ -311,10 +311,40 @@ public class PropertyManager implements Constants {
                         getSpace().getOptimum().getLength().getValue();
         props.spaceAfter = this.propertyList.get(PR_SPACE_AFTER).
                         getSpace().getOptimum().getLength().getValue();
-        props.startIndent = this.propertyList.get(PR_START_INDENT).
-                        getLength().getValue();
-        props.endIndent = this.propertyList.get(PR_END_INDENT).
-                        getLength().getValue();
+
+
+        // For now we do the section 5.3.2 calculation here.
+        // This is a hack that doesn't deal correctly with:
+        // - Reference vs. non-reference areas.
+        // - writing mode, it mixes start and left.
+        // - inherited values of margins and indents.
+        // When the indents properties calculate this values correctly,
+        // the block below can be removed and replaced with simple
+        // props.startIndent = this.propertyList.get(PR_START_INDENT)
+        // props.endIndent = this.propertyList.get(PR_END_INDENT)
+        CommonBorderAndPadding bpProps = getBorderAndPadding();
+
+        int startIndent = 0;
+        if (props.marginLeft != 0) {
+            startIndent = props.marginLeft; 
+        } else {
+            startIndent = this.propertyList.get(PR_START_INDENT).
+                                getLength().getValue(); 
+        }
+        props.startIndent = startIndent +
+                            bpProps.getBorderStartWidth(false) +
+                            bpProps.getPaddingStart(false);  
+
+        int endIndent = 0;
+        if (props.marginRight != 0) {
+            endIndent = props.marginRight; 
+        } else {
+            endIndent = this.propertyList.get(PR_END_INDENT).
+                                getLength().getValue(); 
+        }
+        props.endIndent = endIndent +
+                          bpProps.getBorderEndWidth(false) +
+                          bpProps.getPaddingEnd(false);
 
         return props;
     }