called for painting selection cursor at starts and ends
need inverse mode, if cursor out of clipRect (
inverse start horizontal
inverse end horizontal
inverse start vertical (if bottom line)
inverse end vertical (if bottom line)
abstract class for support two display mode - 'preview' and 'full'
for example, it may display local cached jpeg as preview, and load high quality png on
request
called by TextLayout when layout invalidated
(base font size changed)
(lineBreaker changed)
(imagePlacementHandler changed)
(requested geometry changed)
returns drawing start coordinate for character at position 'index'
note, if span are LTR - returns left edge of character,
else (for RTL) - returns right bound
Helper, writes Spanned to DataOutputStream, and reads it's back - from DataInputStream to Spanned
to support custom CharacterStyle and ParagrpahStyle - override class and implements
own read(int tag, DataInputStream dis) and write(Object o, DataOutputStream dos)
write(Object o, DataOutputStream dos)
must write int 'tag' (>100), and Span paramteres to stream,
and read will be called with 'tag' - and correct instance must be constructed, used prevously written N bytes from stream
* states:
measured (invalidates on change base font size)
layouted (depends on 'measured' and 'width', 'lineBreaker', 'imagePlacementHandler' + if requested height > reflowed Height)