summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkitfox2007-04-13 16:33:10 +0200
committerkitfox2007-04-13 16:33:10 +0200
commit29c5d1fc53511b84b3f732304317f90cdbb003ae (patch)
tree7b4dbb92bc73c90698b39cf72d037bef5be4c4a9
parentFixed bad imports. (diff)
downloadsvg-salamander-core-29c5d1fc53511b84b3f732304317f90cdbb003ae.tar.gz
svg-salamander-core-29c5d1fc53511b84b3f732304317f90cdbb003ae.tar.xz
svg-salamander-core-29c5d1fc53511b84b3f732304317f90cdbb003ae.zip
Added text and formatting interfaces.
git-svn-id: https://svn.java.net/svn/svgsalamander~svn/trunk/svg-core@22 7dc7fa77-23fb-e6ad-8e2e-c86bd48ed22b
-rwxr-xr-xnbproject/project.xml18
-rwxr-xr-xsrc/main/java/com/kitfox/salamander/svg/basic/SVGRenderingIntent.java55
-rwxr-xr-xsrc/main/java/com/kitfox/salamander/svg/basic/SVGUnitTypes.java29
-rw-r--r--src/main/java/com/kitfox/salamander/svg/clip/SVGClipPathElement.java37
-rw-r--r--src/main/java/com/kitfox/salamander/svg/clip/SVGMaskElement.java56
-rw-r--r--src/main/java/com/kitfox/salamander/svg/color/SVGColorProfileElement.java37
-rw-r--r--src/main/java/com/kitfox/salamander/svg/color/SVGColorProfileRule.java39
-rw-r--r--src/main/java/com/kitfox/salamander/svg/fills/SVGGradientElement.java61
-rw-r--r--src/main/java/com/kitfox/salamander/svg/fills/SVGLinearGradientElement.java36
-rw-r--r--src/main/java/com/kitfox/salamander/svg/fills/SVGPatternElement.java65
-rw-r--r--src/main/java/com/kitfox/salamander/svg/fills/SVGRadialGradientElement.java40
-rw-r--r--src/main/java/com/kitfox/salamander/svg/fills/SVGStopElement.java27
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paint/SVGMarkerElement.java100
-rw-r--r--src/main/java/com/kitfox/salamander/svg/text/SVGAltGlyphDefElement.java21
-rw-r--r--src/main/java/com/kitfox/salamander/svg/text/SVGAltGlyphElement.java31
-rw-r--r--src/main/java/com/kitfox/salamander/svg/text/SVGAltGlyphItemElement.java21
-rw-r--r--src/main/java/com/kitfox/salamander/svg/text/SVGGlyphRefElement.java49
-rw-r--r--src/main/java/com/kitfox/salamander/svg/text/SVGTRefElement.java21
-rw-r--r--src/main/java/com/kitfox/salamander/svg/text/SVGTSpanElement.java19
-rw-r--r--src/main/java/com/kitfox/salamander/svg/text/SVGTextContentElement.java119
-rw-r--r--src/main/java/com/kitfox/salamander/svg/text/SVGTextElement.java21
-rw-r--r--src/main/java/com/kitfox/salamander/svg/text/SVGTextPathElement.java63
-rw-r--r--src/main/java/com/kitfox/salamander/svg/text/SVGTextPositioningElement.java42
23 files changed, 968 insertions, 39 deletions
diff --git a/nbproject/project.xml b/nbproject/project.xml
index f4d9bc7..670ef97 100755
--- a/nbproject/project.xml
+++ b/nbproject/project.xml
@@ -30,6 +30,15 @@
<type>java</type>
<location>src/test/res</location>
</source-folder>
+ <source-folder>
+ <label>..\www</label>
+ <type>java</type>
+ <location>../www</location>
+ </source-folder>
+ <source-folder>
+ <label>..\www</label>
+ <location>../www</location>
+ </source-folder>
</folders>
<ide-actions>
<action name="build">
@@ -174,6 +183,10 @@
<label>src\test\res</label>
<location>src/test/res</location>
</source-folder>
+ <source-folder style="packages">
+ <label>..\www</label>
+ <location>../www</location>
+ </source-folder>
<source-file>
<location>build.xml</location>
</source-file>
@@ -212,6 +225,11 @@
<unit-tests/>
<source-level>1.5</source-level>
</compilation-unit>
+ <compilation-unit>
+ <package-root>../www</package-root>
+ <unit-tests/>
+ <source-level>1.5</source-level>
+ </compilation-unit>
</java-data>
</configuration>
</project>
diff --git a/src/main/java/com/kitfox/salamander/svg/basic/SVGRenderingIntent.java b/src/main/java/com/kitfox/salamander/svg/basic/SVGRenderingIntent.java
index b745d04..9d54fa4 100755
--- a/src/main/java/com/kitfox/salamander/svg/basic/SVGRenderingIntent.java
+++ b/src/main/java/com/kitfox/salamander/svg/basic/SVGRenderingIntent.java
@@ -10,34 +10,37 @@
package com.kitfox.salamander.svg.basic;
/**
- *
+ *
* The SVGRenderingIntent interface defines the enumerated list of possible values for 'rendering-intent' attributes or descriptors.
* @author kitfox
*/
-public enum SVGRenderingIntent
+public interface SVGRenderingIntent
{
- /**
- * The type is not one of predefined types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type.
- */
- UNKNOWN,
- /**
- * Corresponds to a value of auto.
- */
- AUTO,
- /**
- * Corresponds to a value of perceptual.
- */
- PERCEPTUAL,
- /**
- * Corresponds to a value of relative-colorimetric.
- */
- RELATIVE_COLORIMETRIC,
- /**
- * Corresponds to a value of saturation.
- */
- SATURATION,
- /**
- * Corresponds to a value of absolute-colorimetric.
- */
- ABSOLUTE_COLORIMETRIC
+ public static enum Intent
+ {
+ /**
+ * The type is not one of predefined types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type.
+ */
+ UNKNOWN,
+ /**
+ * Corresponds to a value of auto.
+ */
+ AUTO,
+ /**
+ * Corresponds to a value of perceptual.
+ */
+ PERCEPTUAL,
+ /**
+ * Corresponds to a value of relative-colorimetric.
+ */
+ RELATIVE_COLORIMETRIC,
+ /**
+ * Corresponds to a value of saturation.
+ */
+ SATURATION,
+ /**
+ * Corresponds to a value of absolute-colorimetric.
+ */
+ ABSOLUTE_COLORIMETRIC
+ }
}
diff --git a/src/main/java/com/kitfox/salamander/svg/basic/SVGUnitTypes.java b/src/main/java/com/kitfox/salamander/svg/basic/SVGUnitTypes.java
index 58d9f1d..7d3680d 100755
--- a/src/main/java/com/kitfox/salamander/svg/basic/SVGUnitTypes.java
+++ b/src/main/java/com/kitfox/salamander/svg/basic/SVGUnitTypes.java
@@ -13,18 +13,21 @@ package com.kitfox.salamander.svg.basic;
* The SVGUnitTypes interface defines a commonly used set of constants and is a base interface used by SVGGradientElement, SVGPatternElement, SVGClipPathElement, SVGMaskElement, and SVGFilterElement.
* @author kitfox
*/
-public enum SVGUnitTypes
+public interface SVGUnitTypes
{
- /**
- * The type is not one of predefined types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type.
- */
- UNKNOWN,
- /**
- * Corresponds to value userSpaceOnUse.
- */
- USER_SPACE_ON_USE,
- /**
- * Corresponds to value objectBoundingBox.
- */
- OBJECT_BOUNDING_BOX
+ public static enum Type
+ {
+ /**
+ * The type is not one of predefined types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type.
+ */
+ UNKNOWN,
+ /**
+ * Corresponds to value userSpaceOnUse.
+ */
+ USER_SPACE_ON_USE,
+ /**
+ * Corresponds to value objectBoundingBox.
+ */
+ OBJECT_BOUNDING_BOX
+ };
}
diff --git a/src/main/java/com/kitfox/salamander/svg/clip/SVGClipPathElement.java b/src/main/java/com/kitfox/salamander/svg/clip/SVGClipPathElement.java
new file mode 100644
index 0000000..227d459
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/clip/SVGClipPathElement.java
@@ -0,0 +1,37 @@
+/*
+ * SVGClipPathElement.java
+ *
+ * Created on April 13, 2007, 10:28 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.clip;
+
+import com.kitfox.salamander.svg.basic.SVGAnimatedEnumeration;
+import com.kitfox.salamander.svg.basic.SVGElement;
+import com.kitfox.salamander.svg.basic.SVGExternalResourcesRequired;
+import com.kitfox.salamander.svg.basic.SVGLangSpace;
+import com.kitfox.salamander.svg.basic.SVGStylable;
+import com.kitfox.salamander.svg.basic.SVGTests;
+import com.kitfox.salamander.svg.basic.SVGTransformable;
+import com.kitfox.salamander.svg.basic.SVGUnitTypes;
+
+/**
+ * The SVGClipPathElement interface corresponds to the 'clipPath' element.
+ * @author kitfox
+ */
+public interface SVGClipPathElement extends SVGElement,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGTransformable,
+ SVGUnitTypes
+{
+ /**
+ * Corresponds to attribute clipPathUnits on the given 'clipPath' element. Takes one of the constants defined in SVGUnitTypes.
+ */
+ public SVGAnimatedEnumeration getClipPathUnits();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/clip/SVGMaskElement.java b/src/main/java/com/kitfox/salamander/svg/clip/SVGMaskElement.java
new file mode 100644
index 0000000..4b5a134
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/clip/SVGMaskElement.java
@@ -0,0 +1,56 @@
+/*
+ * SVGMaskElement.java
+ *
+ * Created on April 13, 2007, 10:29 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.clip;
+
+import com.kitfox.salamander.svg.basic.SVGAnimatedEnumeration;
+import com.kitfox.salamander.svg.basic.SVGAnimatedLength;
+import com.kitfox.salamander.svg.basic.SVGElement;
+import com.kitfox.salamander.svg.basic.SVGExternalResourcesRequired;
+import com.kitfox.salamander.svg.basic.SVGLangSpace;
+import com.kitfox.salamander.svg.basic.SVGStylable;
+import com.kitfox.salamander.svg.basic.SVGTests;
+import com.kitfox.salamander.svg.basic.SVGUnitTypes;
+
+/**
+ * The SVGMaskElement interface corresponds to the 'mask' element.
+ * @author kitfox
+ */
+public interface SVGMaskElement extends SVGElement,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGUnitTypes
+{
+ /**
+ * Corresponds to attribute maskUnits on the given 'mask' element. Takes one of the constants defined in SVGUnitTypes.
+ */
+ public SVGAnimatedEnumeration getMaskUnits();
+ /**
+ * Corresponds to attribute maskContentUnits on the given 'mask' element. Takes one of the constants defined in SVGUnitTypes.
+ */
+ public SVGAnimatedEnumeration getMaskContentUnits();
+ /**
+ * Corresponds to attribute x on the given 'mask' element.
+ */
+ public SVGAnimatedLength getX();
+ /**
+ * Corresponds to attribute y on the given 'mask' element.
+ */
+ public SVGAnimatedLength getY();
+ /**
+ * Corresponds to attribute width on the given 'mask' element.
+ */
+ public SVGAnimatedLength getWidth();
+ /**
+ * Corresponds to attribute height on the given 'mask' element.
+ */
+ public SVGAnimatedLength getHeight();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/color/SVGColorProfileElement.java b/src/main/java/com/kitfox/salamander/svg/color/SVGColorProfileElement.java
new file mode 100644
index 0000000..d6a74bd
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/color/SVGColorProfileElement.java
@@ -0,0 +1,37 @@
+/*
+ * SVGColorProfileElement.java
+ *
+ * Created on April 13, 2007, 10:05 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.color;
+
+import com.kitfox.salamander.svg.DOMString;
+import com.kitfox.salamander.svg.basic.SVGElement;
+import com.kitfox.salamander.svg.basic.SVGRenderingIntent;
+import com.kitfox.salamander.svg.basic.SVGURIReference;
+
+/**
+ * The SVGColorProfileElement interface corresponds to the 'color-profile' element.
+ * @author kitfox
+ */
+public interface SVGColorProfileElement extends SVGElement,
+ SVGURIReference,
+ SVGRenderingIntent
+{
+ /**
+ * Corresponds to attribute local on the given element.
+ */
+ public DOMString getLocal();
+ /**
+ * Corresponds to attribute name on the given element.
+ */
+ public DOMString getName();
+ /**
+ * Corresponds to attribute rendering-intent on the given element. The type of rendering intent, identified by one of the SVGRenderingIntent constants.
+ */
+ public SVGRenderingIntent getRenderingIntent();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/color/SVGColorProfileRule.java b/src/main/java/com/kitfox/salamander/svg/color/SVGColorProfileRule.java
new file mode 100644
index 0000000..d24b8df
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/color/SVGColorProfileRule.java
@@ -0,0 +1,39 @@
+/*
+ * SVGColorProfileRule.java
+ *
+ * Created on April 13, 2007, 10:09 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.color;
+
+import com.kitfox.salamander.svg.DOMString;
+import com.kitfox.salamander.svg.basic.SVGCSSRule;
+import com.kitfox.salamander.svg.basic.SVGRenderingIntent;
+
+/**
+ *
+ * The SVGColorProfileRule interface represents an @color-profile rule in a CSS style sheet. An @color-profile rule identifies a ICC profile which can be referenced within a given document.
+ *
+ * Support for the SVGColorProfileRule interface is only required in user agents that support styling with CSS.
+ * @author kitfox
+ */
+public interface SVGColorProfileRule extends SVGCSSRule,
+ SVGRenderingIntent
+{
+ /**
+ * Corresponds to property src within an @color-profile rule.
+ */
+ public DOMString getSrc();
+ /**
+ * Corresponds to property name within an @color-profile rule.
+ */
+ public DOMString getName();
+ /**
+ * The type of rendering intent, identified by one of the SVGRenderingIntent constants.
+ */
+ public SVGRenderingIntent getRenderingIntent();
+
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/fills/SVGGradientElement.java b/src/main/java/com/kitfox/salamander/svg/fills/SVGGradientElement.java
new file mode 100644
index 0000000..00088c1
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/fills/SVGGradientElement.java
@@ -0,0 +1,61 @@
+/*
+ * SVGGradientElement.java
+ *
+ * Created on April 13, 2007, 10:12 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.fills;
+
+import com.kitfox.salamander.svg.basic.SVGAnimatedEnumeration;
+import com.kitfox.salamander.svg.basic.SVGElement;
+import com.kitfox.salamander.svg.basic.SVGExternalResourcesRequired;
+import com.kitfox.salamander.svg.basic.SVGStylable;
+import com.kitfox.salamander.svg.basic.SVGURIReference;
+import com.kitfox.salamander.svg.coordSystems.SVGAnimatedTransformList;
+
+/**
+ *
+ * The SVGGradientElement interface is a base interface used by SVGLinearGradientElement and SVGRadialGradientElement.
+ * @author kitfox
+ */
+public interface SVGGradientElement extends SVGElement,
+ SVGURIReference,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGUnitTypes
+{
+ public static enum SpreadMethod
+ {
+ /**
+ * The type is not one of predefined types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type.
+ */
+ UNKNOWN,
+ /**
+ * Corresponds to value pad.
+ */
+ PAD,
+ /**
+ * Corresponds to value reflect.
+ */
+ REFLECT,
+ /**
+ * Corresponds to value repeat.
+ */
+ REPEAT};
+ /**
+ * Corresponds to attribute gradientUnits on the given element. Takes one of the constants defined in SVGUnitTypes.
+ */
+ public SVGAnimatedEnumeration getGradientUnits();
+ /**
+ * Corresponds to attribute gradientTransform on the given element.
+ */
+ public SVGAnimatedTransformList getGradientTransform();
+ /**
+ * Corresponds to attribute spreadMethod on the given element. One of the Spread Method Types.
+ */
+ public SVGAnimatedEnumeration getSpreadMethod();
+
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/fills/SVGLinearGradientElement.java b/src/main/java/com/kitfox/salamander/svg/fills/SVGLinearGradientElement.java
new file mode 100644
index 0000000..0f6cbcd
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/fills/SVGLinearGradientElement.java
@@ -0,0 +1,36 @@
+/*
+ * SVGLinearGradientElement.java
+ *
+ * Created on April 13, 2007, 10:15 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.fills;
+
+import com.kitfox.salamander.svg.basic.SVGAnimatedLength;
+
+/**
+ * The SVGLinearGradientElement interface corresponds to the 'linearGradient' element.
+ * @author kitfox
+ */
+public interface SVGLinearGradientElement extends SVGGradientElement
+{
+ /**
+ * Corresponds to attribute x1 on the given 'linearGradient' element.
+ */
+ public SVGAnimatedLength getX1();
+ /**
+ * Corresponds to attribute y1 on the given 'linearGradient' element.
+ */
+ public SVGAnimatedLength getY1();
+ /**
+ * Corresponds to attribute x2 on the given 'linearGradient' element.
+ */
+ public SVGAnimatedLength getX2();
+ /**
+ * Corresponds to attribute y2 on the given 'linearGradient' element.
+ */
+ public SVGAnimatedLength getY2();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/fills/SVGPatternElement.java b/src/main/java/com/kitfox/salamander/svg/fills/SVGPatternElement.java
new file mode 100644
index 0000000..28cf6a6
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/fills/SVGPatternElement.java
@@ -0,0 +1,65 @@
+/*
+ * SVGStopElement.java
+ *
+ * Created on April 13, 2007, 10:18 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.fills;
+
+import com.kitfox.salamander.svg.basic.SVGAnimatedEnumeration;
+import com.kitfox.salamander.svg.basic.SVGAnimatedLength;
+import com.kitfox.salamander.svg.basic.SVGElement;
+import com.kitfox.salamander.svg.basic.SVGExternalResourcesRequired;
+import com.kitfox.salamander.svg.basic.SVGFitToViewBox;
+import com.kitfox.salamander.svg.basic.SVGLangSpace;
+import com.kitfox.salamander.svg.basic.SVGStylable;
+import com.kitfox.salamander.svg.basic.SVGTests;
+import com.kitfox.salamander.svg.basic.SVGURIReference;
+import com.kitfox.salamander.svg.basic.SVGUnitTypes;
+import com.kitfox.salamander.svg.coordSystems.SVGAnimatedTransformList;
+
+/**
+ * The SVGPatternElement interface corresponds to the 'pattern' element.
+ * @author kitfox
+ */
+public interface SVGPatternElement extends SVGElement,
+ SVGURIReference,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGFitToViewBox,
+ SVGUnitTypes
+{
+ /**
+ * Corresponds to attribute patternUnits on the given 'pattern' element. Takes one of the constants defined in SVGUnitTypes.
+ */
+ public SVGAnimatedEnumeration getPatternUnits();
+ /**
+ * Corresponds to attribute patternContentUnits on the given 'pattern' element. Takes one of the constants defined in SVGUnitTypes.
+ */
+ public SVGAnimatedEnumeration getPatternContentUnits();
+ /**
+ * Corresponds to attribute patternTransform on the given 'pattern' element.
+ */
+ public SVGAnimatedTransformList getPatternTransform();
+ /**
+ * Corresponds to attribute x on the given 'pattern' element.
+ */
+ public SVGAnimatedLength getX();
+ /**
+ * Corresponds to attribute y on the given 'pattern' element.
+ */
+ public SVGAnimatedLength getY();
+ /**
+ * Corresponds to attribute width on the given 'pattern' element.
+ */
+ public SVGAnimatedLength getWidth();
+ /**
+ * Corresponds to attribute height on the given 'pattern' element.
+ */
+ public SVGAnimatedLength getHeight();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/fills/SVGRadialGradientElement.java b/src/main/java/com/kitfox/salamander/svg/fills/SVGRadialGradientElement.java
new file mode 100644
index 0000000..d320b5a
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/fills/SVGRadialGradientElement.java
@@ -0,0 +1,40 @@
+/*
+ * SVGLinearGradientElement.java
+ *
+ * Created on April 13, 2007, 10:15 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.fills;
+
+import com.kitfox.salamander.svg.basic.SVGAnimatedLength;
+
+/**
+ * The SVGRadialGradientElement interface corresponds to the 'radialGradient' element.
+ * @author kitfox
+ */
+public interface SVGRadialGradientElement extends SVGGradientElement
+{
+ /**
+ * Corresponds to attribute cx on the given 'radialGradient' element.
+ */
+ public SVGAnimatedLength getCx();
+ /**
+ * Corresponds to attribute cy on the given 'radialGradient' element.
+ */
+ public SVGAnimatedLength getCy();
+ /**
+ * Corresponds to attribute r on the given 'radialGradient' element.
+ */
+ public SVGAnimatedLength getR();
+ /**
+ * Corresponds to attribute fx on the given 'radialGradient' element.
+ */
+ public SVGAnimatedLength getFx();
+ /**
+ * Corresponds to attribute fy on the given 'radialGradient' element.
+ */
+ public SVGAnimatedLength getFy();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/fills/SVGStopElement.java b/src/main/java/com/kitfox/salamander/svg/fills/SVGStopElement.java
new file mode 100644
index 0000000..d1ddc0a
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/fills/SVGStopElement.java
@@ -0,0 +1,27 @@
+/*
+ * SVGStopElement.java
+ *
+ * Created on April 13, 2007, 10:18 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.fills;
+
+import com.kitfox.salamander.svg.basic.SVGAnimatedNumber;
+import com.kitfox.salamander.svg.basic.SVGElement;
+import com.kitfox.salamander.svg.basic.SVGStylable;
+
+/**
+ * The SVGStopElement interface corresponds to the 'stop' element.
+ * @author kitfox
+ */
+public interface SVGStopElement extends SVGElement,
+ SVGStylable
+{
+ /**
+ * Corresponds to attribute offset on the given 'stop' element.
+ */
+ public SVGAnimatedNumber getOffset();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paint/SVGMarkerElement.java b/src/main/java/com/kitfox/salamander/svg/paint/SVGMarkerElement.java
new file mode 100644
index 0000000..77ec079
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paint/SVGMarkerElement.java
@@ -0,0 +1,100 @@
+/*
+ * SVGMarkerElement.java
+ *
+ * Created on April 13, 2007, 9:59 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paint;
+
+import com.kitfox.salamander.svg.basic.SVGAngle;
+import com.kitfox.salamander.svg.basic.SVGAnimatedAngle;
+import com.kitfox.salamander.svg.basic.SVGAnimatedEnumeration;
+import com.kitfox.salamander.svg.basic.SVGAnimatedLength;
+import com.kitfox.salamander.svg.basic.SVGElement;
+import com.kitfox.salamander.svg.basic.SVGExternalResourcesRequired;
+import com.kitfox.salamander.svg.basic.SVGFitToViewBox;
+import com.kitfox.salamander.svg.basic.SVGLangSpace;
+import com.kitfox.salamander.svg.basic.SVGStylable;
+
+/**
+ *
+ * The SVGMarkerElement interface corresponds to the 'marker' element.
+ * @author kitfox
+ */
+public interface SVGMarkerElement extends SVGElement,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGFitToViewBox
+{
+ public static enum Units
+ {
+ /**
+ * The marker unit type is not one of predefined types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type.
+ */
+ UNKNOWN,
+ /**
+ * The value of attribute markerUnits is 'userSpaceOnUse'.
+ */
+ USER_SPACE_ON_USE,
+ /**
+ * The value of attribute markerUnits is 'strokeWidth'.
+ */
+ STROKE_WIDTH};
+ public static enum Orient
+ {
+ /**
+ * The marker orientation is not one of predefined types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type.
+ */
+ UNKNOWN,
+ /**
+ * Attribute orient has value 'auto'.
+ */
+ AUTO,
+ /**
+ * Attribute orient has an angle value.
+ */
+ ANGLE};
+
+ /**
+ * Corresponds to attribute refX on the given 'marker' element.
+ */
+ public SVGAnimatedLength getRefX();
+ /**
+ * Corresponds to attribute refY on the given 'marker' element.
+ */
+ public SVGAnimatedLength getRefY();
+ /**
+ * Corresponds to attribute markerUnits on the given 'marker' element. One of the Marker Units Types defined above.
+ */
+ public SVGAnimatedEnumeration getMarkerUnits();
+ /**
+ * Corresponds to attribute markerWidth on the given 'marker' element.
+ */
+ public SVGAnimatedLength getMarkerWidth();
+ /**
+ * Corresponds to attribute markerHeight on the given 'marker' element.
+ */
+ public SVGAnimatedLength getMarkerHeight();
+ /**
+ * Corresponds to attribute orient on the given 'marker' element. One of the Marker Orientation Types defined above.
+ */
+ public SVGAnimatedEnumeration getOrientType();
+ /**
+ * Corresponds to attribute orient on the given 'marker' element. If markerUnits is SVG_MARKER_ORIENT_ANGLE, the angle value for attribute orient; otherwise, it will be set to zero.
+ */
+ public SVGAnimatedAngle getOrientAngle();
+ /**
+ * Sets the value of attribute orient to 'auto'.
+ */
+ public void setOrientToAuto();
+ /**
+ * Sets the value of attribute orient to the given angle.
+ * @param angle The angle value to use for attribute orient.
+ */
+ public void setOrientToAngle(SVGAngle angle);
+
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/text/SVGAltGlyphDefElement.java b/src/main/java/com/kitfox/salamander/svg/text/SVGAltGlyphDefElement.java
new file mode 100644
index 0000000..b9fe19c
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/text/SVGAltGlyphDefElement.java
@@ -0,0 +1,21 @@
+/*
+ * SVGAltGlyphDefElement.java
+ *
+ * Created on April 13, 2007, 9:53 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.text;
+
+import com.kitfox.salamander.svg.basic.SVGElement;
+
+/**
+ * The SVGAltGlyphDefElement interface corresponds to the 'altGlyphDef' element.
+ * @author kitfox
+ */
+public interface SVGAltGlyphDefElement extends SVGElement
+{
+
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/text/SVGAltGlyphElement.java b/src/main/java/com/kitfox/salamander/svg/text/SVGAltGlyphElement.java
new file mode 100644
index 0000000..a38ff60
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/text/SVGAltGlyphElement.java
@@ -0,0 +1,31 @@
+/*
+ * SVGAltGlyphElement.java
+ *
+ * Created on April 13, 2007, 9:51 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.text;
+
+import com.kitfox.salamander.svg.DOMString;
+import com.kitfox.salamander.svg.basic.SVGURIReference;
+
+/**
+ * The SVGAltGlyphElement interface corresponds to the 'altGlyph' element.
+ * @author kitfox
+ */
+public interface SVGAltGlyphElement extends SVGTextPositioningElement,
+ SVGURIReference
+{
+ /**
+ * Corresponds to attribute glyphRef on the given element.
+ */
+ public DOMString getGlyphRef();
+ /**
+ * Corresponds to attribute format on the given element.
+ */
+ public DOMString getFormat();
+
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/text/SVGAltGlyphItemElement.java b/src/main/java/com/kitfox/salamander/svg/text/SVGAltGlyphItemElement.java
new file mode 100644
index 0000000..89832c2
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/text/SVGAltGlyphItemElement.java
@@ -0,0 +1,21 @@
+/*
+ * SVGAltGlyphItemElement.java
+ *
+ * Created on April 13, 2007, 9:54 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.text;
+
+import com.kitfox.salamander.svg.basic.SVGElement;
+
+/**
+ * The SVGAltGlyphItemElement interface corresponds to the 'altGlyphItem' element.
+ * @author kitfox
+ */
+public interface SVGAltGlyphItemElement extends SVGElement
+{
+
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/text/SVGGlyphRefElement.java b/src/main/java/com/kitfox/salamander/svg/text/SVGGlyphRefElement.java
new file mode 100644
index 0000000..43849b1
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/text/SVGGlyphRefElement.java
@@ -0,0 +1,49 @@
+/*
+ * SVGGlyphRefElement.java
+ *
+ * Created on April 13, 2007, 9:54 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.text;
+
+import com.kitfox.salamander.svg.DOMString;
+import com.kitfox.salamander.svg.basic.SVGElement;
+import com.kitfox.salamander.svg.basic.SVGStylable;
+import com.kitfox.salamander.svg.basic.SVGURIReference;
+
+/**
+ * The SVGGlyphRefElement interface corresponds to the 'glyphRef' element.
+ * @author kitfox
+ */
+public interface SVGGlyphRefElement extends SVGElement,
+ SVGURIReference,
+ SVGStylable
+{
+ /**
+ * Corresponds to attribute glyphRef on the given element.
+ */
+ public DOMString getGlyphRef();
+ /**
+ * Corresponds to attribute format on the given element.
+ */
+ public DOMString getFormat();
+ /**
+ * Corresponds to attribute x on the given element.
+ */
+ public float getX();
+ /**
+ * Corresponds to attribute y on the given element.
+ */
+ public float getY();
+ /**
+ * Corresponds to attribute dx on the given element.
+ */
+ public float getDx();
+ /**
+ * Corresponds to attribute dy on the given element.
+ */
+ public float getDy();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/text/SVGTRefElement.java b/src/main/java/com/kitfox/salamander/svg/text/SVGTRefElement.java
new file mode 100644
index 0000000..0f70761
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/text/SVGTRefElement.java
@@ -0,0 +1,21 @@
+/*
+ * SVGTRefElement.java
+ *
+ * Created on April 13, 2007, 9:46 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.text;
+
+import com.kitfox.salamander.svg.basic.SVGURIReference;
+
+/**
+ * The SVGTRefElement interface corresponds to the 'tref' element.
+ * @author kitfox
+ */
+public interface SVGTRefElement extends SVGTextPositioningElement, SVGURIReference
+{
+
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/text/SVGTSpanElement.java b/src/main/java/com/kitfox/salamander/svg/text/SVGTSpanElement.java
new file mode 100644
index 0000000..445d8e5
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/text/SVGTSpanElement.java
@@ -0,0 +1,19 @@
+/*
+ * SVGTSpanElement.java
+ *
+ * Created on April 13, 2007, 9:46 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.text;
+
+/**
+ * The SVGTSpanElement interface corresponds to the 'tspan' element.
+ * @author kitfox
+ */
+public interface SVGTSpanElement extends SVGTextPositioningElement
+{
+
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/text/SVGTextContentElement.java b/src/main/java/com/kitfox/salamander/svg/text/SVGTextContentElement.java
new file mode 100644
index 0000000..7e43e31
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/text/SVGTextContentElement.java
@@ -0,0 +1,119 @@
+/*
+ * SVGTextContentElement.java
+ *
+ * Created on April 13, 2007, 9:30 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.text;
+
+import com.kitfox.salamander.svg.basic.SVGAnimatedEnumeration;
+import com.kitfox.salamander.svg.basic.SVGAnimatedLength;
+import com.kitfox.salamander.svg.basic.SVGElement;
+import com.kitfox.salamander.svg.basic.SVGExternalResourcesRequired;
+import com.kitfox.salamander.svg.basic.SVGLangSpace;
+import com.kitfox.salamander.svg.basic.SVGRect;
+import com.kitfox.salamander.svg.basic.SVGStylable;
+import com.kitfox.salamander.svg.basic.SVGTests;
+import com.kitfox.salamander.svg.coordSystems.SVGPoint;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.events.EventTarget;
+
+/**
+ *
+ * The SVGTextContentElement interface is inherited by various text-related interfaces, such as SVGTextElement, SVGTSpanElement, SVGTRefElement, SVGAltGlyphElement and SVGTextPathElement.
+ * @author kitfox
+ */
+public interface SVGTextContentElement extends SVGElement,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ EventTarget
+{
+ public static enum LengthAdjust
+ {
+ /**
+ * The enumeration was set to a value that is not one of predefined types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type.
+ */
+ UNKNOWN,
+ /**
+ * Corresponds to value spacing.
+ */
+ SPACING,
+ /**
+ * Corresponds to value spacingAndGlyphs.
+ */
+ SPACING_AND_GLYPHS};
+ /**
+ * Corresponds to attribute textLength on the given element.
+ */
+ public SVGAnimatedLength getTextLength();
+ /**
+ * Corresponds to attribute lengthAdjust on the given element. The value must be one of the length adjust constants specified above.
+ */
+ public SVGAnimatedEnumeration getLengthAdjust();
+
+ /**
+ * Returns the total number of characters to be rendered within the current element. Includes characters which are included via a 'tref' reference.
+ * @return Total number of characters.
+ */
+ public int getNumberOfChars();
+ /**
+ * The total sum of all of the advance values from rendering all of the characters within this element, including the advance value on the glyphs (horizontal or vertical), the effect of properties 'kerning', 'letter-spacing' and 'word-spacing' and adjustments due to attributes dx and dy on 'tspan' elements. For non-rendering environments, the user agent shall make reasonable assumptions about glyph metrics.
+ * @return The text advance distance.
+ */
+ public float getComputedTextLength();
+ /**
+ * The total sum of all of the advance values from rendering the specified substring of the characters, including the advance value on the glyphs (horizontal or vertical), the effect of properties 'kerning', 'letter-spacing' and 'word-spacing' and adjustments due to attributes dx and dy on 'tspan' elements. For non-rendering environments, the user agent shall make reasonable assumptions about glyph metrics.
+ * @param charnum The index of the first character in the substring, where the first character has an index of 0.
+ * @param nchars The number of characters in the substring.
+ * @return The text advance distance.
+ * @throws org.w3c.dom.DOMException INDEX_SIZE_ERR: Raised if the charnum is negative or if charnum+nchars is greater than or equal to the number of characters at this node.
+ */
+ public float getSubStringLength(long charnum, long nchars) throws DOMException;
+ /**
+ * Returns the current text position before rendering the character in the user coordinate system for rendering the glyph(s) that correspond to the specified character. The current text position has already taken into account the effects of any inter-character adjustments due to properties 'kerning', 'letter-spacing' and 'word-spacing' and adjustments due to attributes x, y, dx and dy. If multiple consecutive characters are rendered inseparably (e.g., as a single glyph or a sequence of glyphs), then each of the inseparable characters will return the start position for the first glyph.
+ * @param charnum The index of the character, where the first character has an index of 0.
+ * @return The character's start position.
+ * @throws org.w3c.dom.DOMException INDEX_SIZE_ERR: Raised if the charnum is negative or if charnum is greater than or equal to the number of characters at this node.
+ */
+ public SVGPoint getStartPositionOfChar(long charnum) throws DOMException;
+ /**
+ * Returns the current text position after rendering the character in the user coordinate system for rendering the glyph(s) that correspond to the specified character. This current text position does not take into account the effects of any inter-character adjustments to prepare for the next character, such as properties 'kerning', 'letter-spacing' and 'word-spacing' and adjustments due to attributes x, y, dx and dy. If multiple consecutive characters are rendered inseparably (e.g., as a single glyph or a sequence of glyphs), then each of the inseparable characters will return the end position for the last glyph.
+ * @param charnum The index of the character, where the first character has an index of 0.
+ * @return The character's end position.
+ * @throws org.w3c.dom.DOMException INDEX_SIZE_ERR: Raised if the charnum is negative or if charnum is greater than or equal to the number of characters at this node.
+ */
+ public SVGPoint getEndPositionOfChar(long charnum) throws DOMException;
+ /**
+ * Returns a tightest rectangle which defines the minimum and maximum X and Y values in the user coordinate system for rendering the glyph(s) that correspond to the specified character. The calculations assume that all glyphs occupy the full standard glyph cell for the font. If multiple consecutive characters are rendered inseparably (e.g., as a single glyph or a sequence of glyphs), then each of the inseparable characters will return the same extent.
+ * @param charnum The index of the character, where the first character has an index of 0.
+ * @return The rectangle which encloses all of the rendered glyph(s).
+ * @throws org.w3c.dom.DOMException INDEX_SIZE_ERR: Raised if the charnum is negative or if charnum is greater than or equal to the number of characters at this node.
+ */
+ public SVGRect getExtentOfChar(long charnum) throws DOMException;
+ /**
+ * Returns the rotation value relative to the current user coordinate system used to render the glyph(s) corresponding to the specified character. If multiple glyph(s) are used to render the given character and the glyphs each have different rotations (e.g., due to text-on-a-path), the user agent shall return an average value (e.g., the rotation angle at the midpoint along the path for all glyphs used to render this character). The rotation value represents the rotation that is supplemental to any rotation due to properties 'glyph-orientation-horizontal' and 'glyph-orientation-vertical'; thus, any glyph rotations due to these properties are not included into the returned rotation value. If multiple consecutive characters are rendered inseparably (e.g., as a single glyph or a sequence of glyphs), then each of the inseparable characters will return the same rotation value.
+ * @param charnum The index of the character, where the first character has an index of 0.
+ * @return The rotation angle.
+ * @throws org.w3c.dom.DOMException INDEX_SIZE_ERR: Raised if the charnum is negative or if charnum is greater than or equal to the number of characters at this node.
+ */
+ public float getRotationOfChar(long charnum) throws DOMException;
+ /**
+ * Returns the index of the character whose corresponding glyph cell bounding box contains the specified point. The calculations assume that all glyphs occupy the full standard glyph cell for the font. If no such character exists, a value of -1 is returned. If multiple such characters exist, the character within the element whose glyphs were rendered last (i.e., take into account any reordering such as for bidirectional text) is used. If multiple consecutive characters are rendered inseparably (e.g., as a single glyph or a sequence of glyphs), then the user agent shall allocate an equal percentage of the text advance amount to each of the contributing characters in determining which of the characters is chosen.
+ * @param point A point in user space.
+ * @return The index of the character which is at the given point, where the first character has an index of 0.
+ */
+ public int getCharNumAtPosition(SVGPoint point);
+ /**
+ * Causes the specified substring to be selected just as if the user selected the substring interactively.
+ * @param charnum The index of the start character which is at the given point, where the first character has an index of 0.
+ * @param nchars The number of characters in the substring. If nchars specifies more characters than are available, then the substring will consist of all characters starting with charnum until the end of the list of characters.
+ * @throws org.w3c.dom.DOMException INDEX_SIZE_ERR: Raised if the charnum is negative or if charnum is greater than or equal to the number of characters at this node.
+ */
+ public void selectSubString(long charnum, long nchars) throws DOMException;
+
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/text/SVGTextElement.java b/src/main/java/com/kitfox/salamander/svg/text/SVGTextElement.java
new file mode 100644
index 0000000..12c25c9
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/text/SVGTextElement.java
@@ -0,0 +1,21 @@
+/*
+ * SVGTextElement.java
+ *
+ * Created on April 13, 2007, 9:45 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.text;
+
+import com.kitfox.salamander.svg.basic.SVGTransformable;
+
+/**
+ * The SVGTextElement interface corresponds to the 'text' element.
+ * @author kitfox
+ */
+public interface SVGTextElement extends SVGTextPositioningElement, SVGTransformable
+{
+
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/text/SVGTextPathElement.java b/src/main/java/com/kitfox/salamander/svg/text/SVGTextPathElement.java
new file mode 100644
index 0000000..2f7ce16
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/text/SVGTextPathElement.java
@@ -0,0 +1,63 @@
+/*
+ * SVGTextPathElement.java
+ *
+ * Created on April 13, 2007, 9:47 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.text;
+
+import com.kitfox.salamander.svg.basic.SVGAnimatedEnumeration;
+import com.kitfox.salamander.svg.basic.SVGAnimatedLength;
+import com.kitfox.salamander.svg.basic.SVGURIReference;
+
+/**
+ *
+ * The SVGTextPathElement interface corresponds to the 'textPath' element.
+ * @author kitfox
+ */
+public interface SVGTextPathElement extends SVGTextContentElement, SVGURIReference
+{
+ public static enum MethodType
+ {
+ /**
+ * The enumeration was set to a value that is not one of predefined types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type.
+ */
+ UNKNOWN,
+ /**
+ * Corresponds to value align.
+ */
+ ALIGN,
+ /**
+ * Corresponds to value stretch.
+ */
+ STRETCH};
+ public static enum SpacingType
+ {
+ /**
+ * The enumeration was set to a value that is not one of predefined types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type.
+ */
+ UNKNOWN,
+ /**
+ * Corresponds to value auto.
+ */
+ AUTO,
+ /**
+ * Corresponds to value exact.
+ */
+ EXACT};
+ /**
+ * Corresponds to attribute startOffset on the given 'textPath' element.
+ */
+ public SVGAnimatedLength getStartOffset();
+ /**
+ * Corresponds to attribute method on the given 'textPath' element. The value must be one of the method type constants specified above.
+ */
+ public SVGAnimatedEnumeration getMethod();
+ /**
+ * Corresponds to attribute spacing on the given 'textPath' element. The value must be one of the spacing type constants specified above.
+ */
+ public SVGAnimatedEnumeration getSpacing();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/text/SVGTextPositioningElement.java b/src/main/java/com/kitfox/salamander/svg/text/SVGTextPositioningElement.java
new file mode 100644
index 0000000..61d0897
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/text/SVGTextPositioningElement.java
@@ -0,0 +1,42 @@
+/*
+ * SVGTextPositioningElement.java
+ *
+ * Created on April 13, 2007, 9:43 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.text;
+
+import com.kitfox.salamander.svg.basic.SVGAnimatedLengthList;
+import com.kitfox.salamander.svg.basic.SVGAnimatedNumberList;
+
+/**
+ * The SVGTextPositioningElement interface is inherited by text-related interfaces: SVGTextElement, SVGTSpanElement, SVGTRefElement and SVGAltGlyphElement.
+ * @author kitfox
+ */
+public interface SVGTextPositioningElement extends SVGTextContentElement
+{
+ /**
+ * Corresponds to attribute x on the given element.
+ */
+ public SVGAnimatedLengthList getX();
+ /**
+ * Corresponds to attribute y on the given element.
+ */
+ public SVGAnimatedLengthList getY();
+ /**
+ * Corresponds to attribute dx on the given element.
+ */
+ public SVGAnimatedLengthList getDx();
+ /**
+ * Corresponds to attribute dy on the given element.
+ */
+ public SVGAnimatedLengthList getDy();
+ /**
+ * Corresponds to attribute rotate on the given element.
+ */
+ public SVGAnimatedNumberList getRotate();
+
+}