See the attached header file for the first draft of what I think the interface for the new text layout engine should look like. The intended audience is developers, there's nothing to see here for people who don't enjoy reading source code.
Comments are encouraged on design, comprehensibility, features, style and smackdowns.
A few things to talk about, in no particular order:
1) Do we disapprove of public member variables, even where there's no disadvantages to using them?
2) The coding style guide doesn't mention the how the names of enumerations should be formatted.
3) I implement parse_svg_length_list() because the old flow_src did. Should this really belong closer to the XML layer?
4) Likewise the xml:space attribute. The difficulty with moving this is that you could cause roundtripping problems. Can we even do roundtripping?
5) Lots of private members are missing still, because I don't know what they're going to be yet.
6) The appearance of this document doesn't mean I've decided whether to wrap the existing code, switch over the users, then write my own innards, or to do it all in one big (destructive) commit. The latter is quite a lot less work, but the former will likely be broken for shorter intervals (although maybe more of them).
7..n) There are more things to discuss in the attachment, under the heading "Comments", near the top.
That's it, I think. I'll remember something else as soon as I click 'send', of course.
Richard.