You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by bc...@apache.org on 2004/10/19 22:13:23 UTC
cvs commit: xml-fop/src/java/org/apache/fop/traits SpaceVal.java
bckfnn 2004/10/19 13:13:23
Modified: src/java/org/apache/fop/traits SpaceVal.java
Log:
Third phase of performance improvement.
- Added factory methods to create letter and word SpaceVal.
PR: 31699
Revision Changes Path
1.8 +25 -0 xml-fop/src/java/org/apache/fop/traits/SpaceVal.java
Index: SpaceVal.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/traits/SpaceVal.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SpaceVal.java 27 Feb 2004 17:56:25 -0000 1.7
+++ SpaceVal.java 19 Oct 2004 20:13:23 -0000 1.8
@@ -21,6 +21,7 @@
import org.apache.fop.fo.Constants;
import org.apache.fop.fo.properties.Property;
import org.apache.fop.fo.properties.SpaceProperty;
+import org.apache.fop.fonts.Font;
/**
* Store a single Space property value in simplified form, with all
@@ -66,6 +67,30 @@
this.bConditional = bConditional;
this.bForcing = bForcing;
this.iPrecedence = iPrecedence;
+ }
+
+ static public SpaceVal makeWordSpacing(Property wordSpacing, SpaceVal letterSpacing, Font fs) {
+ if (wordSpacing.getEnum() == Constants.NORMAL) {
+ // give word spaces the possibility to shrink by a third,
+ // and stretch by a half;
+ int spaceCharIPD = fs.getCharWidth(' ');
+ MinOptMax space = new MinOptMax(-spaceCharIPD / 3, 0, spaceCharIPD / 2);
+ return new SpaceVal(
+ MinOptMax.add
+ (space, MinOptMax.multiply(letterSpacing.getSpace(), 2)),
+ true, true, 0);
+ } else {
+ return new SpaceVal(wordSpacing.getSpace());
+ }
+ }
+
+ static public SpaceVal makeLetterSpacing(Property letterSpacing) {
+ if (letterSpacing.getEnum() == Constants.NORMAL) {
+ // letter spaces are set to zero (or use different values?)
+ return new SpaceVal(new MinOptMax(0), true, true, 0);
+ } else {
+ return new SpaceVal(letterSpacing.getSpace());
+ }
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org