Inline area generating LMs and Inline area containing LMs
and their corresponding FO nodes
=========================================================

In the listings below the LMs are followed by the FO nodes that
generate them.

The following LMs may occur in inline content
---------------------------------------------
BidiLayoutManager extends LeafNodeLayoutManager: BidiOverride
ContentLayoutManager: Leader with use-content property set
ICLayoutManager extends LeafNodeLayoutManager: InlineContainer
InlineStackingLayoutManager: FObjMixed, Inline, BasicLink (anonymous
    subclass),
LeafNodeLayoutManager: Leader (anonymous subclass, may
        insert other LMs), Character, ExternalGraphic,
        InstreamForeignObject, PageNumber (anonymous subclass),
        PageNumberCitation (anonymous subclass)
RetrieveMarkerLayoutManager (depending on the marker): RetrieveMarker
TextLayoutManager: FOText
ToBeImplementedElementLayoutManager: MultiSwitch, MultiPropertySet,
    MultiToggle 

The following LMs may contain #PCDATA or inline content
-------------------------------------------------------
InlineStackingLayoutManager: Title
LeafNodeLayoutManager: Leader (anonymous subclass, may insert other
    LMs)

The following LMs may contain #PCDATA, inline or block content
--------------------------------------------------------------
InlineStackingLayoutManager: Inline, BasicLink (anonymous subclass),
    Marker
LineLayoutManager: Block
ToBeImplementedElementLayoutManager: MultiCase, MultiToggle

For the FO nodes and their LMs, see AddLMVisitor.

For inline content, see the FO spec., sections 6.2 Formatting Object
Content, 6.6, Inline-level Formatting Objects, 6.9 Dynamic Effects:
Link and Multi Formatting Objects. For content models, see the FO
spec., section 6.

This is a block element that uses most of them (substitute some other
name for the graphic):

<fo:block language="en" country="US"
  hyphenate="true" text-align="justify">
  We start with some normal text.
  A character FO: <fo:character character="A"/>
  An external graphic: <fo:external-graphic src="Question.gif"/>
  An SVG graphic:
  <fo:instream-foreign-object id="svg">
    <svg:svg width="20" height="20" xml:space="preserve">
      <svg:g style="fill:red; stroke:#000000">
        <svg:rect x="0" y="0" width="15" height="15"/>
        <svg:rect x="5" y="5" width="15" height="15"/>
      </svg:g>
    </svg:svg>
  </fo:instream-foreign-object>
  <fo:inline background-color="blue">
    A text with a blue background.
  </fo:inline>
  A ruled leader: <fo:leader leader-length="120pt" 
    leader-length.maximum="200pt" leader-pattern="rule"/>
  <fo:inline background-color="blue">
    A text with a blue background,
    <fo:inline background-color="red">
      and some text with a red background
      (<fo:basic-link internal-destination="svg">SVG</fo:basic-link>)
    </fo:inline>
    inside it.
  </fo:inline>
  A leader using a content pattern:
  <fo:leader leader-length="120pt" leader-length.maximum="200pt"
    leader-pattern="use-content">X<fo:inline 
background-color="red">X</fo:inline></fo:leader>
  This is page number <fo:page-number/>.
  The SVG graphic is on page number
  <fo:page-number-citation ref-id="svg"/>.
  This is a link to the
  <fo:basic-link internal-destination="svg"><fo:inline 
background-color="red">SVG</fo:inline>
  graphic</fo:basic-link>.
  We end with some normal text.
</fo:block>

Note that Luca's patch causes a loop on this block. The null
implementation of AbstractLayoutManager.getNextKnuthElement causes
this. It should be modified to finish the LM:

public KnuthElement getNextKnuthElement() {
    setFinished(true);
    return null;
}

Regards, Simon
 
-- 
Simon Pepping
home page: http://www.leverkruid.nl

Reply via email to