Go to the source code of this file.
|
| typedef void | fz_bidi_fragment_fn(const uint32_t *fragment, size_t fragmentLen, int bidiLevel, int script, void *arg) |
◆ fz_bidi_fragment_fn
| typedef void fz_bidi_fragment_fn(const uint32_t *fragment, size_t fragmentLen, int bidiLevel, int script, void *arg) |
Prototype for callback function supplied to fz_bidi_fragment_text.
- Parameters
-
| fragment | first character in fragment |
| fragmentLen | number of characters in fragment |
| bidiLevel | The bidirectional level for this text. The bottom bit will be set iff block should concatenate with other blocks as right-to-left |
| script | the script in use for this fragment (other than common or inherited) |
| arg | data from caller of Bidi_fragmentText |
◆ fz_bidi_direction
Bidirectional text processing.
Derived from the SmartOffice code, which is itself derived from the example unicode standard code. Original copyright messages follow:
Copyright (C) Picsel, 2004-2008. All Rights Reserved.
Processes Unicode text by arranging the characters into an order suitable for display. E.g. Hebrew text will be arranged from right-to-left and any English within the text will remain in the left-to-right order.
This is an implementation of the Unicode Bidirectional Algorithm which can be found here: http://www.unicode.org/reports/tr9/ and is based on the reference implementation found on Unicode.org.
| Enumerator |
|---|
| FZ_BIDI_LTR | |
| FZ_BIDI_RTL | |
| FZ_BIDI_NEUTRAL | |
| FZ_BIDI_UNSET | |
◆ fz_bidi_flags
| Enumerator |
|---|
| FZ_BIDI_CLASSIFY_WHITE_SPACE | |
| FZ_BIDI_REPLACE_TAB | |
◆ fz_bidi_fragment_text()
Partitions the given Unicode sequence into one or more unidirectional fragments and invokes the given callback function for each fragment.
For example, if directionality of text is: 0123456789 rrlllrrrrr, we'll invoke callback with: &text[0], length == 2 &text[2], length == 3 &text[5], length == 5
- Parameters
-
| [in] | text | start of Unicode sequence |
| [in] | textlen | number of Unicodes to analyse |
| [in] | baseDir | direction of paragraph (specify FZ_BIDI_NEUTRAL to force auto-detection) |
| [in] | callback | function to be called for each fragment |
| [in] | arg | data to be passed to the callback function |
| [in] | flags | flags to control operation (see fz_bidi_flags above) |