Gibt ein Array mit logischen Attributen für jedes Zeichen im
Layout zurück. Diese Funktion gibt eine Tabelle zurück, die eine
Untertabelle für jedes Zeichen im Layout enthält. Für jede Untertabelle
werden die folgenden Felder initialisiert:
IsLineBreak
-
Wenn gesetzt, kann die Zeile vor dem Zeichen umbrechen.
IsCharBreak
-
Falls gesetzt, kann hier beim Zeichenumbruch ein Umbruch entstehen.
IsWhite
-
Ist ein Leerzeichen.
IsCursorPosition
-
Wenn dieses Flag gesetzt ist, kann der Cursor vor einem Zeichen
stehen, d.h. es handelt sich um eine Graphemgrenze oder das
erste Zeichen im Text. Dieses Flag implementiert die Unicode-Semantik
der Graphem-Clustergrenzen.
IsWordStart
-
Ist das erste Zeichen eines Wortes.
IsWordEnd
-
Ist das erste Nicht-Wort-Zeichen nach einem Wort. Beachten Sie,
dass in degenerierten Fällen sowohl
IsWordStart als auch IsWordEnd
für ein Zeichen gesetzt sein können.
IsSentenceBoundary
-
Ist eine Satzgrenze. Es gibt zwei Möglichkeiten, Sätze zu unterteilen.
Die erste ordnet alle Leer-/Kontroll-/Formatzeichen zwischen
den Sätzen einem Satz zu, so dass alle Zeichen in einem Satz
sind.
IsSentenceBoundary bezeichnet die Grenzen dort. Bei der
zweiten Möglichkeit werden die Leerzeichen zwischen den Sätzen
usw. keinem Satz zugeordnet, so dass IsSentenceStart / IsSentenceEnd
die Grenzen dieser Sätze markiert.
IsSentenceStart
-
Ist das erste Zeichen in einem Satz.
IsSentenceEnd
-
Ist das erste Zeichen nach einem Satz. Beachten Sie, dass in
degenerierten Fällen sowohl
IsSentenceStart als auch IsSentenceEnd
für ein bestimmtes Zeichen gesetzt sein können (z.B. kein Leerzeichen
nach einem Punkt, so dass der nächste Satz sofort beginnt).
BackspaceDeletesCharacter
-
Wenn diese Option gesetzt ist, löscht die Rücktaste ein Zeichen
und nicht den gesamten Graphem-Cluster. Dieses Feld ist nur
an Graphemgrenzen sinnvoll (wenn
IsCursorPosition gesetzt ist).
In einigen Sprachen wird das gesamte Graphem (z.B. Buchstabe
+ diakritische Zeichen) als Einheit betrachtet, während in anderen
Sprachen jedes zerlegte Zeichen des Graphems eine Einheit darstellt.
In der Standardimplementierung von pango-Umbruch (pango break)
ist dieses Bit bei allen Graphemgrenzen gesetzt, außer bei denen,
die auf lateinische, kyrillische oder griechische Basiszeichen folgen.
IsExpandableSpace
-
Ist ein Leerzeichen, das möglicherweise zu Ausrichtungszwecken
erweitert werden kann.
IsWordBoundary
-
Ist eine Wortgrenze, wie in UAX#29 definiert. Genauer gesagt
bedeutet dies, dass es sich nicht um eine Position in der Mitte
eines Wortes handelt. Zum Beispiel werden beide Seiten eines
Satzzeichens als Wortgrenzen betrachtet. Dieses Flag ist besonders
nützlich, wenn Text Wort für Wort ausgewählt wird. Dieses Flag
implementiert die Semantik von Unicodes-Wortgrenzen.
Die Anzahl der in der Tabelle zurückgegebenen Attribute ist
um eins höher als die Gesamtzahl der Zeichen im Layout, da es
sowohl für die Position vor dem ersten Zeichen als auch für
die Position nach dem letzten Zeichen Attribute geben muss.