On Mar 8, 2007, at 18:29, Vincent Hennebert wrote:

thanks for your inputs. That strengthens a bit the picture I have in
mind. I'm wondering if the following makes any sense:

We would have a list of page-level Knuth elements; some of those
elements would be wrapper around line-level Knuth elements. Almost every
element would contain a Position pointing to the LayoutManager that
generated the element. Special elements created to achieve various
effects (say, text-centering), would contain null Positions.

The breaking algorithm would break the list of Knuth elements into
chunks representing lines/pages. From that we would iterate over the
non-null Positions, and for each one call
position.getLM().addArea(position). That is, the position would notify
its LM that its corresponding areas must be added.

For page-level elements wrapping line-level elements, we would also
iterate over the wrapped inline Positions.


Now, does that picture represent the current code?

For the largest part, yes, I think so.
The only difference is the addArea() part, which currently goes top- down. It is not the Position that notifies its LM that the areas must be added, but the LM that iterates over the Positions and adds their corresponding areas.

Cheers,

Andreas


Reply via email to