aboutsummaryrefslogtreecommitdiffstats
path: root/src/org/apache/fop/area
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/apache/fop/area')
-rw-r--r--src/org/apache/fop/area/Area.java26
-rw-r--r--src/org/apache/fop/area/AreaTree.java98
-rw-r--r--src/org/apache/fop/area/BeforeFloat.java39
-rw-r--r--src/org/apache/fop/area/Block.java82
-rw-r--r--src/org/apache/fop/area/BodyRegion.java30
-rw-r--r--src/org/apache/fop/area/Flow.java25
-rw-r--r--src/org/apache/fop/area/Footnote.java33
-rw-r--r--src/org/apache/fop/area/LineArea.java48
-rw-r--r--src/org/apache/fop/area/MainReference.java30
-rw-r--r--src/org/apache/fop/area/Page.java47
-rw-r--r--src/org/apache/fop/area/PageViewport.java31
-rw-r--r--src/org/apache/fop/area/Region.java40
-rw-r--r--src/org/apache/fop/area/RegionViewport.java27
-rw-r--r--src/org/apache/fop/area/Span.java29
-rw-r--r--src/org/apache/fop/area/Title.java11
-rw-r--r--src/org/apache/fop/area/inline/Anchor.java15
-rw-r--r--src/org/apache/fop/area/inline/Character.java28
-rw-r--r--src/org/apache/fop/area/inline/Container.java28
-rw-r--r--src/org/apache/fop/area/inline/ForeignObject.java21
-rw-r--r--src/org/apache/fop/area/inline/Image.java17
-rw-r--r--src/org/apache/fop/area/inline/InlineArea.java33
-rw-r--r--src/org/apache/fop/area/inline/Leader.java19
-rw-r--r--src/org/apache/fop/area/inline/Space.java17
-rw-r--r--src/org/apache/fop/area/inline/Stretch.java17
-rw-r--r--src/org/apache/fop/area/inline/Unresolved.java20
-rw-r--r--src/org/apache/fop/area/inline/UnresolvedPageNumber.java16
-rw-r--r--src/org/apache/fop/area/inline/Viewport.java22
-rw-r--r--src/org/apache/fop/area/inline/Word.java15
28 files changed, 864 insertions, 0 deletions
diff --git a/src/org/apache/fop/area/Area.java b/src/org/apache/fop/area/Area.java
new file mode 100644
index 000000000..3d43a5f5b
--- /dev/null
+++ b/src/org/apache/fop/area/Area.java
@@ -0,0 +1,26 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area;
+
+/**
+ * base object for all areas
+ */
+public class Area {
+ // stacking directions
+ public static final int LR = 0;
+ public static final int RL = 1;
+ public static final int TB = 2;
+ public static final int BT = 3;
+
+ // orientations for reference areas
+ public static final int ORIENT_0 = 0;
+ public static final int ORIENT_90 = 1;
+ public static final int ORIENT_180 = 2;
+ public static final int ORIENT_270 = 3;
+
+}
diff --git a/src/org/apache/fop/area/AreaTree.java b/src/org/apache/fop/area/AreaTree.java
new file mode 100644
index 000000000..6f3157773
--- /dev/null
+++ b/src/org/apache/fop/area/AreaTree.java
@@ -0,0 +1,98 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area;
+
+import java.util.ArrayList;
+
+public class AreaTree {
+ // allows for different models to deal with adding/rendering
+ // in different situations
+ AreaTreeModel model;
+
+ public void createRenderPageModel(PageRenderListener listener) {
+
+ }
+
+ public static StorePagesModel createStorePagesModel() {
+ return new StorePagesModel();
+ }
+
+ public void setTreeModel(AreaTreeModel m) {
+ model = m;
+ }
+
+ public void startPageSequence(Area title) {
+ model.startPageSequence(title);
+ }
+
+ public void addPage(PageViewport page) {
+ model.addPage(page);
+ }
+
+ // this is the model for the area tree object
+ public static abstract class AreaTreeModel {
+ public abstract void startPageSequence(Area title);
+ public abstract void addPage(PageViewport page);
+ }
+
+ // this queues pages and will call the render listener
+ // when the page is ready to be rendered
+ // if the render supports out of order rendering
+ // then a ready page is rendered immediately
+ public static class RenderPagesModel extends AreaTreeModel {
+ public void startPageSequence(Area title) {}
+ public void addPage(PageViewport page) {}
+ }
+
+ // this class stores all the pages in the document
+ // for interactive agents
+ public static class StorePagesModel extends AreaTreeModel {
+ ArrayList pageSequence = null;
+ ArrayList titles = new ArrayList();
+ ArrayList currSequence;
+
+ public StorePagesModel() {}
+
+ public void startPageSequence(Area title) {
+ titles.add(title);
+ if (pageSequence == null) {
+ pageSequence = new ArrayList();
+ }
+ currSequence = new ArrayList();
+ pageSequence.add(currSequence);
+ }
+
+ public void addPage(PageViewport page) {
+ currSequence.add(page);
+ }
+
+ public int getPageSequenceCount() {
+ return pageSequence.size();
+ }
+
+ public Title getTitle(int count) {
+ return (Title) titles.get(count);
+ }
+
+ public int getPageCount(int seq) {
+ ArrayList sequence = (ArrayList) pageSequence.get(seq);
+ return sequence.size();
+ }
+
+ public PageViewport getPage(int seq, int count) {
+ ArrayList sequence = (ArrayList) pageSequence.get(seq);
+ return (PageViewport) sequence.get(count);
+ }
+ }
+}
+
+abstract class PageRenderListener {
+ public abstract void startPageSequence(Area title);
+ public abstract void preparePage(PageViewport page);
+ public abstract void renderPage(PageViewport page);
+}
diff --git a/src/org/apache/fop/area/BeforeFloat.java b/src/org/apache/fop/area/BeforeFloat.java
new file mode 100644
index 000000000..f313eb559
--- /dev/null
+++ b/src/org/apache/fop/area/BeforeFloat.java
@@ -0,0 +1,39 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area;
+
+import java.util.List;
+import java.util.ArrayList;
+
+public class BeforeFloat extends Area {
+ // this is an optional block area that will be rendered
+ // as the separator only if there are float areas
+ Block separator = null;
+
+ // before float area
+ // has an optional separator
+ // and a list of sub block areas
+
+ ArrayList blocks = null;
+
+ public List getBlocks() {
+ return blocks;
+ }
+
+ public Block getSeparator() {
+ return separator;
+ }
+
+ public int getHeight() {
+ if (blocks == null) {
+ return 0;
+ }
+ int h = 0;
+ return h;
+ }
+}
diff --git a/src/org/apache/fop/area/Block.java b/src/org/apache/fop/area/Block.java
new file mode 100644
index 000000000..cf070497f
--- /dev/null
+++ b/src/org/apache/fop/area/Block.java
@@ -0,0 +1,82 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.awt.geom.Rectangle2D;
+
+// block areas hold either more block areas or line
+// areas can also be used as a block spacer
+// a block area may have children positioned by stacking
+// or by relative to the parent for floats, tables and lists
+// cacheable object
+// has id information
+public class Block extends Area {
+ // normally stacked with other blocks
+ public static final int STACK = 0;
+ // placed relative to the parent area
+ public static final int RELATIVE = 1;
+ // placed relative to the page or viewport
+ public static final int ABSOLUTE = 2;
+
+ // this position is used for absolute position
+ // or as an indent
+ // this has the size in the block progression dimension
+ Rectangle2D bounds = null;
+
+ int stacking = TB;
+
+ // list of marker fo objects that are associated with this area
+ // if a retrieve marker resolves this area it will format the
+ // available markers, markers are discarded once page complete
+ private ArrayList markers = null;
+
+ ArrayList children = null;
+ boolean blocks = false;
+ // a block with may contain the dominant styling info in
+ // terms of most lines or blocks with info
+
+
+ int positioning = STACK;
+
+ // orientation if reference area
+ int orientation = ORIENT_0;
+
+ public void addBlock(Block block) {
+ if (children == null) {
+ children = new ArrayList();
+ } else if (!blocks) {
+ // error
+ }
+ blocks = true;
+ children.add(block);
+ }
+
+ public void addLineArea(LineArea line) {
+ if (children == null) {
+ children = new ArrayList();
+ } else if (blocks) {
+ // error
+ }
+ children.add(line);
+
+ }
+
+ public boolean isChildrenBlocks() {
+ return blocks;
+ }
+
+ public List getChildAreas() {
+ return children;
+ }
+
+ public int getPositioning() {
+ return positioning;
+ }
+}
diff --git a/src/org/apache/fop/area/BodyRegion.java b/src/org/apache/fop/area/BodyRegion.java
new file mode 100644
index 000000000..0661ebdd7
--- /dev/null
+++ b/src/org/apache/fop/area/BodyRegion.java
@@ -0,0 +1,30 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area;
+
+public class BodyRegion extends Region {
+ BeforeFloat beforeFloat;
+ MainReference mainReference;
+ Footnote footnote;
+
+ public BodyRegion() {
+ super(BODY);
+ }
+
+ public BeforeFloat getBeforeFloat() {
+ return beforeFloat;
+ }
+
+ public MainReference getMainReference() {
+ return mainReference;
+ }
+
+ public Footnote getFootnote() {
+ return footnote;
+ }
+}
diff --git a/src/org/apache/fop/area/Flow.java b/src/org/apache/fop/area/Flow.java
new file mode 100644
index 000000000..d054a51d5
--- /dev/null
+++ b/src/org/apache/fop/area/Flow.java
@@ -0,0 +1,25 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area;
+
+import java.util.ArrayList;
+import java.util.List;
+
+// this is a normal flow reference area
+// it containts a list of block areas from the flow
+public class Flow extends Area {
+ // the list of blocks created from the flow
+ ArrayList blocks = new ArrayList();
+ int stacking = TB;
+ int width;
+
+ public List getBlocks() {
+ return blocks;
+ }
+
+}
diff --git a/src/org/apache/fop/area/Footnote.java b/src/org/apache/fop/area/Footnote.java
new file mode 100644
index 000000000..1baf1502c
--- /dev/null
+++ b/src/org/apache/fop/area/Footnote.java
@@ -0,0 +1,33 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area;
+
+import java.util.List;
+import java.util.ArrayList;
+
+// may combine with before float into a conditional area
+public class Footnote {
+ Block separator = null;
+
+ // footnote has an optional separator
+ // and a list of sub block areas that can be added/removed
+
+ // this is the relative position of the footnote inside
+ // the body region
+ int top;
+
+ ArrayList blocks = null;
+
+ public Block getSeparator() {
+ return separator;
+ }
+
+ public List getBlocks() {
+ return blocks;
+ }
+}
diff --git a/src/org/apache/fop/area/LineArea.java b/src/org/apache/fop/area/LineArea.java
new file mode 100644
index 000000000..2e39b5175
--- /dev/null
+++ b/src/org/apache/fop/area/LineArea.java
@@ -0,0 +1,48 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area;
+
+import org.apache.fop.area.inline.InlineArea;
+
+import java.util.ArrayList;
+import java.util.List;
+
+// a line area can contain information in ranges of child inline
+// areas that have properties such as
+// links, background, underline, bold, id areas
+public class LineArea extends Area {
+ int stacking = LR;
+ // contains inline areas
+ // has start indent and length, dominant baseline, height
+ int startIndent;
+ int length;
+
+ int lineHeight;
+ // this is the offset for the dominant baseline
+ int baseLine;
+
+ // this class can contain the dominant char styling info
+ // this means that many renderers can optimise a bit
+
+ ArrayList inlineAreas = new ArrayList();
+
+ public void addInlineArea(InlineArea area) {
+ inlineAreas.add(area);
+ }
+
+ public List getInlineAreas() {
+ return inlineAreas;
+ }
+}
+/*
+class LineProperty {
+ int propType;
+ int[] range;
+ Object data;
+}
+*/
diff --git a/src/org/apache/fop/area/MainReference.java b/src/org/apache/fop/area/MainReference.java
new file mode 100644
index 000000000..4c705637f
--- /dev/null
+++ b/src/org/apache/fop/area/MainReference.java
@@ -0,0 +1,30 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area;
+
+import java.util.ArrayList;
+import java.util.List;
+
+// the area that contains the flow via the span areas
+public class MainReference {
+ List spanAreas = new ArrayList();
+ int columnGap;
+ int width;
+
+ public List getSpans() {
+ return spanAreas;
+ }
+
+ public int getColumnGap() {
+ return columnGap;
+ }
+
+ public int getWidth() {
+ return width;
+ }
+}
diff --git a/src/org/apache/fop/area/Page.java b/src/org/apache/fop/area/Page.java
new file mode 100644
index 000000000..059d98150
--- /dev/null
+++ b/src/org/apache/fop/area/Page.java
@@ -0,0 +1,47 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area;
+
+public class Page {
+ // contains before, start, body, end and after regions
+ RegionViewport regionBefore = null;
+ RegionViewport regionStart = null;
+ RegionViewport regionBody = null;
+ RegionViewport regionEnd = null;
+ RegionViewport regionAfter = null;
+
+ public void setRegion(int areaclass, RegionViewport port) {
+ if (areaclass == Region.BEFORE) {
+ regionBefore = port;
+ } else if (areaclass == Region.START) {
+ regionStart = port;
+ } else if (areaclass == Region.BODY) {
+ regionBody = port;
+ } else if (areaclass == Region.END) {
+ regionEnd = port;
+ } else if (areaclass == Region.AFTER) {
+ regionAfter = port;
+ }
+ }
+
+ public RegionViewport getRegion(int areaclass) {
+ if (areaclass == Region.BEFORE) {
+ return regionBefore;
+ } else if (areaclass == Region.START) {
+ return regionStart;
+ } else if (areaclass == Region.BODY) {
+ return regionBody;
+ } else if (areaclass == Region.END) {
+ return regionEnd;
+ } else if (areaclass == Region.AFTER) {
+ return regionAfter;
+ }
+ return null;
+ }
+
+}
diff --git a/src/org/apache/fop/area/PageViewport.java b/src/org/apache/fop/area/PageViewport.java
new file mode 100644
index 000000000..29354eda2
--- /dev/null
+++ b/src/org/apache/fop/area/PageViewport.java
@@ -0,0 +1,31 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area;
+
+import java.awt.geom.Rectangle2D;
+import java.util.ArrayList;
+
+// this is the level that creates the page
+// the page (reference area) is then rendered inside the page object
+public class PageViewport {
+ Page page;
+ Rectangle2D viewArea;
+
+ public PageViewport(Page p) {
+ page = p;
+ }
+
+ // this list is only used when the page is discarded
+ // the information is kept for future reference
+ ArrayList idReferences = null;
+
+ // a viewport area for page and reference areas
+ public Page getPage() {
+ return page;
+ }
+}
diff --git a/src/org/apache/fop/area/Region.java b/src/org/apache/fop/area/Region.java
new file mode 100644
index 000000000..d51da6e2d
--- /dev/null
+++ b/src/org/apache/fop/area/Region.java
@@ -0,0 +1,40 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Region {
+ public static final int BEFORE = 0;
+ public static final int START = 1;
+ public static final int BODY = 2;
+ public static final int END = 3;
+ public static final int AFTER = 4;
+ int regionClass = BEFORE;
+
+ public Region(int type) {
+ regionClass = type;
+ }
+
+ // the list of block areas from the static flow
+ ArrayList blocks = new ArrayList();
+
+ public List getBlocks() {
+ return blocks;
+ }
+
+ public int getRegionClass() {
+ return regionClass;
+ }
+
+ public void addBlock(Block block) {
+ blocks.add(block);
+ }
+
+}
diff --git a/src/org/apache/fop/area/RegionViewport.java b/src/org/apache/fop/area/RegionViewport.java
new file mode 100644
index 000000000..3a90bb95e
--- /dev/null
+++ b/src/org/apache/fop/area/RegionViewport.java
@@ -0,0 +1,27 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area;
+
+import java.awt.geom.Rectangle2D;
+
+public class RegionViewport {
+ // this rectangle is relative to the page
+ Rectangle2D regionArea;
+ boolean clip;
+
+ Region region;
+
+ public void setRegion(Region reg) {
+ region = reg;
+ }
+
+ public Region getRegion() {
+ return region;
+ }
+
+}
diff --git a/src/org/apache/fop/area/Span.java b/src/org/apache/fop/area/Span.java
new file mode 100644
index 000000000..28dddc7da
--- /dev/null
+++ b/src/org/apache/fop/area/Span.java
@@ -0,0 +1,29 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area;
+
+import java.util.ArrayList;
+
+// this is a reference area block area with 0 border and padding
+public class Span extends Area {
+ // the list of flow reference areas in this span area
+ ArrayList flowAreas = new ArrayList();
+ int height;
+
+ public int getColumnCount() {
+ return flowAreas.size();
+ }
+
+ public int getHeight() {
+ return height;
+ }
+
+ public Flow getFlow(int count) {
+ return (Flow) flowAreas.get(count);
+ }
+}
diff --git a/src/org/apache/fop/area/Title.java b/src/org/apache/fop/area/Title.java
new file mode 100644
index 000000000..26cf7db61
--- /dev/null
+++ b/src/org/apache/fop/area/Title.java
@@ -0,0 +1,11 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area;
+
+public class Title extends LineArea {
+}
diff --git a/src/org/apache/fop/area/inline/Anchor.java b/src/org/apache/fop/area/inline/Anchor.java
new file mode 100644
index 000000000..128d5231b
--- /dev/null
+++ b/src/org/apache/fop/area/inline/Anchor.java
@@ -0,0 +1,15 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area.inline;
+
+public class Anchor extends InlineArea {
+
+ // has a keep with adjacent area
+ // has reference to associated footnote or float out-of-line area
+
+}
diff --git a/src/org/apache/fop/area/inline/Character.java b/src/org/apache/fop/area/inline/Character.java
new file mode 100644
index 000000000..3b19ef5d7
--- /dev/null
+++ b/src/org/apache/fop/area/inline/Character.java
@@ -0,0 +1,28 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area.inline;
+
+import org.apache.fop.render.Renderer;
+
+public class Character extends InlineArea {
+ char character;
+ public Character(char ch) {
+ character = ch;
+ }
+
+ // character info: font, char spacing, colour, baseline
+
+ public void render(Renderer renderer) {
+ renderer.renderCharacter(this);
+ }
+
+ public char getChar() {
+ return character;
+ }
+
+}
diff --git a/src/org/apache/fop/area/inline/Container.java b/src/org/apache/fop/area/inline/Container.java
new file mode 100644
index 000000000..54a9ac493
--- /dev/null
+++ b/src/org/apache/fop/area/inline/Container.java
@@ -0,0 +1,28 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area.inline;
+
+import org.apache.fop.render.Renderer;
+
+import java.util.List;
+import java.util.ArrayList;
+
+public class Container extends InlineArea {
+ ArrayList blocks = new ArrayList();
+
+ // this is an inline area that can have blocks as children
+
+ public void render(Renderer renderer) {
+ renderer.renderContainer(this);
+ }
+
+ public List getBlocks() {
+ return blocks;
+ }
+
+}
diff --git a/src/org/apache/fop/area/inline/ForeignObject.java b/src/org/apache/fop/area/inline/ForeignObject.java
new file mode 100644
index 000000000..b67575737
--- /dev/null
+++ b/src/org/apache/fop/area/inline/ForeignObject.java
@@ -0,0 +1,21 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area.inline;
+
+import org.apache.fop.area.Area;
+
+import org.w3c.dom.Document;
+
+// cacheable object
+public class ForeignObject extends Area {
+ Document doc;
+ String namespace;
+ // dom object
+ // height, width
+
+}
diff --git a/src/org/apache/fop/area/inline/Image.java b/src/org/apache/fop/area/inline/Image.java
new file mode 100644
index 000000000..4cf1b7f72
--- /dev/null
+++ b/src/org/apache/fop/area/inline/Image.java
@@ -0,0 +1,17 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area.inline;
+
+import org.apache.fop.area.Area;
+
+// cacheable object
+public class Image extends Area {
+
+ // image object, mime type, url
+
+}
diff --git a/src/org/apache/fop/area/inline/InlineArea.java b/src/org/apache/fop/area/inline/InlineArea.java
new file mode 100644
index 000000000..3c61377dc
--- /dev/null
+++ b/src/org/apache/fop/area/inline/InlineArea.java
@@ -0,0 +1,33 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area.inline;
+
+import org.apache.fop.area.Area;
+import org.apache.fop.render.Renderer;
+
+public class InlineArea extends Area {
+ int width;
+ int height;
+ // position within the line area, either top or baseline
+ int verticalPosition;
+ // width, height, vertical alignment
+
+ // inline areas are expected to implement this method
+ // to render themselves
+ public void render(Renderer renderer) {
+
+ }
+
+ public void setWidth(int w) {
+ width = w;
+ }
+
+ public int getWidth() {
+ return width;
+ }
+}
diff --git a/src/org/apache/fop/area/inline/Leader.java b/src/org/apache/fop/area/inline/Leader.java
new file mode 100644
index 000000000..f31949acb
--- /dev/null
+++ b/src/org/apache/fop/area/inline/Leader.java
@@ -0,0 +1,19 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area.inline;
+
+public class Leader extends Stretch {
+
+ // pattern, length min opt max
+
+ // in the case of use content or dots this is replaced
+ // with the set of inline areas
+ // if space replaced with a space
+ // otherwise this is a holder for a line
+
+}
diff --git a/src/org/apache/fop/area/inline/Space.java b/src/org/apache/fop/area/inline/Space.java
new file mode 100644
index 000000000..7b98b3c17
--- /dev/null
+++ b/src/org/apache/fop/area/inline/Space.java
@@ -0,0 +1,17 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area.inline;
+
+import org.apache.fop.render.Renderer;
+
+public class Space extends Stretch {
+
+ public void render(Renderer renderer) {
+ renderer.renderInlineSpace(this);
+ }
+}
diff --git a/src/org/apache/fop/area/inline/Stretch.java b/src/org/apache/fop/area/inline/Stretch.java
new file mode 100644
index 000000000..fee1a3333
--- /dev/null
+++ b/src/org/apache/fop/area/inline/Stretch.java
@@ -0,0 +1,17 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area.inline;
+
+public class Stretch extends InlineArea {
+
+ // min size
+ // set size
+ // get size
+ // height 0
+
+}
diff --git a/src/org/apache/fop/area/inline/Unresolved.java b/src/org/apache/fop/area/inline/Unresolved.java
new file mode 100644
index 000000000..2169c9410
--- /dev/null
+++ b/src/org/apache/fop/area/inline/Unresolved.java
@@ -0,0 +1,20 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area.inline;
+
+public class Unresolved extends InlineArea {
+ boolean resolved = false;
+
+ // id ref
+ // resolve
+ // resolve without area
+
+ public void resolve() {
+
+ }
+}
diff --git a/src/org/apache/fop/area/inline/UnresolvedPageNumber.java b/src/org/apache/fop/area/inline/UnresolvedPageNumber.java
new file mode 100644
index 000000000..c8ac17d3a
--- /dev/null
+++ b/src/org/apache/fop/area/inline/UnresolvedPageNumber.java
@@ -0,0 +1,16 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area.inline;
+
+public class UnresolvedPageNumber extends Unresolved {
+
+ // id ref
+ // resolve
+ // resolve without area
+
+}
diff --git a/src/org/apache/fop/area/inline/Viewport.java b/src/org/apache/fop/area/inline/Viewport.java
new file mode 100644
index 000000000..a7458c53a
--- /dev/null
+++ b/src/org/apache/fop/area/inline/Viewport.java
@@ -0,0 +1,22 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area.inline;
+
+import org.apache.fop.area.Area;
+
+import java.awt.geom.Rectangle2D;
+
+public class Viewport extends InlineArea {
+ // contents could be foreign object or image
+ Area content;
+ // an inline-level viewport area for graphic and instream foreign object
+ boolean clip = false;
+ // position relative to this area
+ Rectangle2D contentPosition;
+
+}
diff --git a/src/org/apache/fop/area/inline/Word.java b/src/org/apache/fop/area/inline/Word.java
new file mode 100644
index 000000000..73c9ec26d
--- /dev/null
+++ b/src/org/apache/fop/area/inline/Word.java
@@ -0,0 +1,15 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.area.inline;
+
+public class Word extends InlineArea {
+
+ // character info: font, char spacing, colour, baseline
+ String word;
+
+}