On Mar 22, 2006, at 21:52, Walter Bauer wrote:

Hi Walter,

  [Me :]
Only the offset of the regionViewport in question needs to be altered
(decrease by Integer.MAX_VALUE - PBP.difference? Something like

yes, and that's exactly what I don' t get to work.

Well... it depends. I had another glance at the related code. Where exactly in finishPage have you put your code?

I'm guessing here, but if you put it all the way at the top --before the calls to layoutSideRegion()-- wouldn't that solve the problem?

<snip />

Further more: The reason why I tried to put this code into finishPage instead of finishPart: - I couldn't find out why Integer.MAX_VALUE doesn't work. The resulting length is off by 10000000 and I looked for "10000000" only finding this.add(new KnuthGlue(0, 10000000, 0, null, false)); in AbstractBreaker. Coincidence or actually the reason for some integer overflow? Returning Integer.MAX_VALUE - 2 * 10000000 as q&d check didn't work either.

(Integer.MAX_VALUE + 10000000 - (Integer.MAX_VALUE - difference)) = 10000000 + difference

Will need to take a closer look at that.

- Putting it into finishPart to me looks a little like a hack using implementation specifics.

Yes, but ... FOP is the implementor here, no? What's 'hacky' about using the specifics of our own implementation? :)

For me, finishPage is a more "public" point to perform the page size adjustment. But well, I'm not accustomed to the architecture and style yet to judge this. Perhaps a cleaner way would be to add something like getUsedBPD() to BodyRegion to decouple the dependencies.

Could be the logic behind it is that finishPart() is guaranteed to be called before finishPage(), and finishPage() contains the activation of layout for the side-regions... From a certain POV, the focal point of this recalculation of indefinite page-height(*) is the flow layout. This would mean that my initial thoughts on this are wrong, and the side-regions need no recalculation after all (?)
Even better if I'm right here...

(*) Or is it BPD? Well, depends on writing-mode and/or reference- orientation of the region-body...
Grrr :) See, it could be that the total page-height ends up being:
region-before-bpd + region-body-ipd + region-after-bpd

One thing I pondered over: what if the region-body's height is its ipd? What happens with text-alignment, especially justified text? And start-aligned (with reference-orientation="90")? Will the text 'shift' automatically when the viewport's height is altered? (I assume it's not *that* simple ;))



Reply via email to