RFR: 8341670: [Text, TextFlow] Public API for Text Layout Info [v5]

Jurgen duke at openjdk.org
Fri Oct 11 14:25:16 UTC 2024


On Wed, 9 Oct 2024 22:41:29 GMT, Andy Goryachev <angorya at openjdk.org> wrote:

>> The RichTextArea control ([JDK-8301121](https://bugs.openjdk.org/browse/JDK-8301121)), or any custom control that needs non-trivial navigation within complex or wrapped text needs a public API to get information about text layout.
>> 
>> This change fixes the missing functionality by adding a new public method to the `Text` and `TextFlow` classes.:
>> 
>> 
>>     /**
>>      * Obtains the snapshot of the current text layout information.
>>      * @return the layout information
>>      * @since 24
>>      */
>>     public final LayoutInfo getLayoutInfo()
>> 
>> 
>> The immutable `LayoutInfo` structure contains information about:
>> 
>> - text lines: offsets and bounds
>> - overall layout bounds
>> 
>> TBD:
>> 
>> the platform can also report additional information such as:
>> 
>> - individual text lines' left and right side bearings (what are those?)
>> - text runs within each line
>
> Andy Goryachev has updated the pull request incrementally with one additional commit since the last revision:
> 
>   convert to wrapper

Wrt to rangeShape & underlineShape: RichTextFX quite successfully uses the PathElement[] returned to it's advantage and so wouldn't gain from Rectangles.

`.strikeThroughShape()` should be added to Text/TextFlow for consistency sake.

-------------

PR Comment: https://git.openjdk.org/jfx/pull/1596#issuecomment-2407523868


More information about the openjfx-dev mailing list