1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
- <!--
- Copyright 1999-2004 The Apache Software Foundation
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
- <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN"
- "http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-forrest/src/resources/schema/dtd/document-v11.dtd">
-
- <!-- $Id$ -->
-
- <document>
- <header>
- <title>Layout managers</title>
- <authors>
- <person name="Peter B. West" email="pbwest@powerup.com.au"/>
- </authors>
- </header>
- <body>
- <section>
- <title>Layout managers in FOP</title>
- <p>
- What do the layout managers do? Most layout is is "automatic"
- in the sense of being a straightforward stacking operation.
- Sibling inline-areas, including fo:character areas, are
- stacked in line-areas in the inline-progression-direction.
- Sibling block-areas, including line-areas, are stacked in the
- block-progression-direction.
- </p>
- <p>
- In the simple cases in which both the available
- block-progression-dimension and the available
- inline-progression-dimension are known, this process can be
- driven bottom-up. Available dimensions trickle down from the
- top, and the bottom level galleys can determine when their
- available areas are full and suspend pending the arrival of
- more areas. Such full notifications bubble back up the tree
- of active galleys. E.g., if an inline galley fills a
- line-area of a given inline-p-d and suspends while still
- within the available block-p-d, the parent block-area galley
- will simply stack the inline-area and notify the inline galley
- to continue. If the inline-galley discovers that the next
- line-area that it would generate will not fit in the the
- block-p-d, it suspends with a notification to that effect to
- its parent.
- </p>
- <p>
- In more complex cases the dimensions may not be fully
- specified, or decisions about layout may depend on later
- layout. In all such cases some layout look-ahead is required
- which can report results back to higher layout levels. The
- job for a layout manager in these cirucmstances is to evaluate
- the information flowing back and set parameters for the best
- fit layout.
- </p>
- </section>
- </body>
- </document>
|