On Thu, 2002-11-21 at 14:20, Rhett Aultman wrote: > IIRC, in my "8778 experiment", the break being offered was never null. The best >break is always being offered, but the best break is at the beginning of the >offending block. Either way, this resolves only the most trivial of the examples >without paying attention to the greater issue, which is that such layout issues are >rooted in constraints that conflict. Is your intention to wait for such cases to >come in and just write special-case code for each and every one of them at the time?
No, in the design the best break cannot be before the block, there is no break before everything on the page. It doesn't matter how many constraints there are, there will always be a best break on the page that will place some contents on the page. The next page will therefore have less to layout and will also place some contents on its page, therefore an infinite loop is impossible. Now to find the best break. This could simply be done within the context of the current page. Best break is: - at least first available break - of a lower keep constraint - closer to the optimum page bpd Now to extend that to a more general situation. It will need to find every break in the page sequence and compare the constraints that are broken. Then attempt to adjust those breaks so fewer constraints are broken. So how will this be done. The PageLayoutManager can collect all "best" breaks as they are created. Then look at the constraints and available moving room. I can't define any specifics because I would need to think about it more. But I am certain there would be some sort of formula that could aid in this process. Like: this page has optimum spacing and breaks no constraints - therefore it can only be adjust between min and max spacing. This page break is less than the min and the next page breaks within an always keep so it should attempt to break the keep on the first page and get closer to opt distance while having a normal break on the next page. Of course a force page break is definite so it could segment parts of the flow, do the layout and add the pages. Why do you think that it cannot be extended to handle this. The question to me is how to organise this in a good way that does not mean using lots of memory and processing at many levels while still being able to handle the tricky parts. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]