blob: 297531b2d1672e769e9b572fba9d5661da36b6aa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
<?xml version="1.0" standalone="no"?>
<!-- Overview -->
<document>
<header>
<title>Layout Managers</title>
<subtitle>All you wanted to know about Layout Managers !</subtitle>
<authors> <person name="Keiron Liddle" email="keiron@aftexsw.com"/>
</authors>
</header>
<body><s1 title="Layout Managers">
<p>The role of the layout managers is to build the Area Tree by using the
information from the FO Tree. The layout managers decide where information
is placed in the area tree.</p>
<p>A layout manager is typically associated with an FO Object but not always.</p>
<p>The layout managers are in between the FO Tree and the Area Tree. They get
information from the FO Tree and create areas and build the pages. They
hold the state of the layout process as it builds up the areas and pages.
They also manage the handling of breaks and spacing between areas.</p>
<p>FO Objects can have two types of properties, ones that relate to the layout and ones that relate to the rendering. THe layout related properties area used by the layout managers to determine how and where to create the areas. The render related properties should be passed through to the renderer in the most efficient way possible.
</p>
<s2 title="Block Areas">
<p>When a block creating element is complete then it is possible to build the
block area and add it to the paprent.</p>
<p>A block area will contain either more block areas or line areas, which are
special block areas. The line areas are created by the LineLayoutManager
in which the inline areas flow into.</p>
<p>So a block area manager handles the lines or blocks as its children and
determines things like spacing and breaks.</p>
<p>In the case of tables and lists the blocks are stacked in a specific way
that needs to be handled by the layout manager.</p></s2>
<s2 title="Side Floats">
<p>Side floats alter the length of the inline progression dimension for the
current line and following lines for the size of the float.</p>
<p>This means that the float needs to be handled by the block layout manager
so that it can adjust the available inline progression dimension for the
relevant line areas.</p></s2>
<s2 title="Footnotes and Before Floats">
<p>Footnotes and Before Floats are placed in special areas in the body region
of the page. The size of these areas is determined by the content. This in
turn effects the available size of the main reference area that contains
the flow.</p>
<p>A layout manager handles the adding and removing of footnotes/floats, this in turn effects the available space in the main reference area.</p>
</s2>
<note>(note: more info to follow)</note>
</s1>
</body></document>
|