Library for performing text layout.
- Add way to remove content from a paragraph.
- How to identify which content to remove? Client handle? Would need
to loop through entire paragraph's content entries to find a match
for the handle.
- Otherwise change the API to return an opaque handle for the paragraph content entry to the client, in each of the content_add functions.
- How to handle removing an inline start or inline end?
- Maybe removing the start removes all content up to and including matching end?
- Maybe removing an end is an error.
- How to identify which content to remove? Client handle? Would need
to loop through entire paragraph's content entries to find a match
for the handle.
- Add way to modify a content style.
- Again; it will help for the client to have a handle for the paragraph content entry, so it can say what it's changing the style of.
- Add remove content API.
- Client string: Do we need a way to ref/unref? Or is assuming a client keeps it around while we might use it safe?
- Client styles: Do we need a way to ref/unref? Or is assuming a client keeps it around while we might use it safe?
- Need a way to get values from the opaque client style.
- Probably match callback functions to libcss computed style API.
- How to handle multiple styles per content element?
- E.g. hover visited, etc?
- Let the client handle it all by changing style on the content entry?
- Who is responsible for splitting for stuff like first-letter, first-word, etc? Us or client?
- Going to need to split text into runs efficiently, for at least:
- Bidirectional algorithm.
- Styles (first-letter, first-word, etc)
- Line break
- Full justification?