Browse Source

This is Kieron's patch to allow percentage specified colors. Shouldn't

affect any existing stuff.


git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@193330 13f79535-47bb-0310-9956-ffa450edef68
tags/pre-columns
Steve Coffman 24 years ago
parent
commit
d1b3adb598
1 changed files with 42 additions and 0 deletions
  1. 42
    0
      src/org/apache/fop/datatypes/ColorType.java

+ 42
- 0
src/org/apache/fop/datatypes/ColorType.java View File

@@ -50,6 +50,8 @@
*/
package org.apache.fop.datatypes;

import java.util.*;

/**
* a colour quantity in XSL
*/
@@ -96,6 +98,46 @@ public class ColorType {
this.blue = 0;
System.err.println("ERROR: unknown colour format. Must be #RGB or #RRGGBB");
}
} else if (value.startsWith("rgb(")) {
int poss = value.indexOf("(");
int pose = value.indexOf(")");
if(poss != -1 && pose != -1) {
value = value.substring(poss + 1, pose);
StringTokenizer st = new StringTokenizer(value, ",");
try {
if(st.hasMoreTokens()) {
String str = st.nextToken().trim();
if(str.endsWith("%")) {
this.red = Integer.parseInt(str.substring(0, str.length() - 1)) * 2.55f;
} else {
this.red = Integer.parseInt(str)/255f;
}
}
if(st.hasMoreTokens()) {
String str = st.nextToken().trim();
if(str.endsWith("%")) {
this.green = Integer.parseInt(str.substring(0, str.length() - 1)) * 2.55f;
} else {
this.green = Integer.parseInt(str)/255f;
}
}
if(st.hasMoreTokens()) {
String str = st.nextToken().trim();
if(str.endsWith("%")) {
this.blue = Integer.parseInt(str.substring(0, str.length() - 1)) * 2.55f;
} else {
this.blue = Integer.parseInt(str)/255f;
}
}
} catch (Exception e) {
this.red = 0;
this.green = 0;
this.blue = 0;
System.err.println("ERROR: unknown colour format. Must be #RGB or #RRGGBB");
}
}
} else if (value.startsWith("url(")) {
// refers to a gradient
} else {
if (value.toLowerCase().equals("black")) {
this.red = 0;

Loading…
Cancel
Save