]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
make area/CTM.getCTMandRelDims() more general by decoupling it from fo/PropertyManager
authorWilliam Victor Mote <vmote@apache.org>
Sun, 24 Aug 2003 18:04:07 +0000 (18:04 +0000)
committerWilliam Victor Mote <vmote@apache.org>
Sun, 24 Aug 2003 18:04:07 +0000 (18:04 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@196832 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/area/CTM.java
src/java/org/apache/fop/fo/pagination/Region.java
src/java/org/apache/fop/fo/pagination/SimplePageMaster.java
src/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java

index 2f5e07051a6545c8fe5df6b56c0f721f0b7e6f1f..bb6acd808a42288e8d906b2ae8ff780515fc27d8 100644 (file)
@@ -285,12 +285,13 @@ public class CTM implements Serializable {
      * @param reldims relative dimensions
      * @return CTM the coordinate transformation matrix (CTM)
      */
-    public static CTM getCTMandRelDims(PropertyManager pm, Rectangle2D absVPrect,
-                                FODimension reldims) {
+    public static CTM getCTMandRelDims(int absRefOrient,
+                                       int writingMode,
+                                       Rectangle2D absVPrect,
+                                       FODimension reldims) {
         int width, height;
         // We will use the absolute reference-orientation to set up the CTM.
         // The value here is relative to its ancestor reference area.
-        int absRefOrient = pm.getAbsRefOrient();
         if (absRefOrient % 180 == 0) {
             width = (int) absVPrect.getWidth();
             height = (int) absVPrect.getHeight();
@@ -326,13 +327,12 @@ public class CTM implements Serializable {
             }
             ctm = ctm.rotate(absRefOrient);
         }
-        int wm = pm.getWritingMode();
         /* Since we've already put adjusted width and height values for the
          * top and left positions implied by the reference-orientation, we
          * can set ipd and bpd appropriately based on the writing mode.
          */
 
-        if (wm == WritingMode.LR_TB || wm == WritingMode.RL_TB) {
+        if (writingMode == WritingMode.LR_TB || writingMode == WritingMode.RL_TB) {
             reldims.ipd = width;
             reldims.bpd = height;
         } else {
@@ -341,7 +341,7 @@ public class CTM implements Serializable {
         }
         // Set a rectangle to be the writing-mode relative version???
         // Now transform for writing mode
-        return ctm.multiply(CTM.getWMctm(wm, reldims.ipd, reldims.bpd));
+        return ctm.multiply(CTM.getWMctm(writingMode, reldims.ipd, reldims.bpd));
     }
 
 }
index 28d60211d0d19cc82118126d29bcd8780f8fb730..c3c5bee2be32e0627e98ca1cc248fa80ec9de2a2 100644 (file)
@@ -195,7 +195,8 @@ public abstract class Region extends FObj {
      */
     protected void setRegionPosition(RegionReference r, Rectangle2D absRegVPRect) {
         FODimension reldims = new FODimension(0, 0);
-        r.setCTM(CTM.getCTMandRelDims(propMgr, absRegVPRect, reldims));
+        r.setCTM(CTM.getCTMandRelDims(propMgr.getAbsRefOrient(),
+                propMgr.getWritingMode(), absRegVPRect, reldims));
     }
 
     /**
index 44eb03717a78d5bd0adcbe53e7e8b157364e0073..bc58b0d5adc6c9d28c3ecf37ba5a72d2a97b50bd 100644 (file)
@@ -149,7 +149,8 @@ public class SimplePageMaster extends FObj {
         // Set up the CTM on the page reference area based on writing-mode
         // and reference-orientation
         FODimension reldims = new FODimension(0, 0);
-        CTM pageCTM = CTM.getCTMandRelDims(propMgr, pageRefRect, reldims);
+        CTM pageCTM = CTM.getCTMandRelDims(propMgr.getAbsRefOrient(),
+                propMgr.getWritingMode(), pageRefRect, reldims);
 
         // Create a RegionViewport/ reference area pair for each page region
 
index 295bff9096aacd524f5835d6756259dab285fd28..f16acc3c4635149bf417083bfefc1023fb487b2a 100644 (file)
@@ -100,7 +100,8 @@ public class BlockContainerLayoutManager extends BlockStackingLayoutManager {
                                 abProps.top, abProps.right - abProps.left,
                                 abProps.bottom - abProps.top);
             relDims = new FODimension(0, 0);
-            absoluteCTM = CTM.getCTMandRelDims(pm, rect, relDims);
+            absoluteCTM = CTM.getCTMandRelDims(pm.getAbsRefOrient(),
+                pm.getWritingMode(), rect, relDims);
         }
     }
 
@@ -121,7 +122,8 @@ public class BlockContainerLayoutManager extends BlockStackingLayoutManager {
         Rectangle2D rect = new Rectangle2D.Double(0, 0, context.getRefIPD(),
                                                   context.getStackLimit().opt);
         relDims = new FODimension(0, 0);
-        absoluteCTM = CTM.getCTMandRelDims(propManager, rect, relDims);
+        absoluteCTM = CTM.getCTMandRelDims(propManager.getAbsRefOrient(),
+                propManager.getWritingMode(), rect, relDims);
         double[] vals = absoluteCTM.toArray();
 
         MinOptMax stackLimit;