Bezeichnung
playout:MoveCursorVisually -- Bewegt den Cursor visuell
Übersicht
nidx, ntrail = playout:MoveCursorVisually(strong, oidx, otrail, dir)
Beschreibung
Berechnet eine neue Cursorposition aus einer alten Position und einer Richtung.

Wenn dir positiv ist, wird die neue Position dazu führen, dass der starke oder schwache Cursor eine Position rechts von der Position der alten Cursorposition angezeigt wird. Wenn dir negativ ist, wird es nach links bewegt.

Bei bidirektionalem Text hängt die Übereinstimmung zwischen logischer und visueller Reihenfolge von der Richtung des aktuellen Laufs ab und es können Sprünge auftreten, wenn der Cursor vom über das Ende eines Laufs hinaus bewegt wird.

Die Bewegung erfolgt hier in Cursorpositionen, nicht in Zeichen, so dass ein einziger Aufruf von dieser Funktion den Cursor über mehrere Zeichen bewegen kann, wenn mehrere Zeichen zu einem einzigen Graphem kombiniert werden.

Eingaben
strong
ob der sich bewegende Cursor der starke oder der schwache Cursor ist; der starke Cursor ist der Cursor, der der Texteinfügung in der Basisrichtung für das Layout entspricht
oidx
der Byte-Index der aktuellen Cursorposition
otrail
wenn 0, befand sich der Cursor an der vorderen Kante des durch oidx angegebenen Graphems; wenn > 0, befand er sich an der hinteren Kante
dir
Richtung, in die sich der Cursor bewegen soll; ein negativer Wert bedeutet eine Bewegung nach links
Rückgabewerte
nidx
neuer Cursor-Byte-Index; ein Wert von -1 bedeutet, dass der Cursor vom Anfang des Layouts verschoben wurde; ein Wert von #G_MAXINT bedeutet, dass der Cursor vom Ende des Layouts verschoben wurde
ntrail
Anzahl der Zeichen, die von der für nidx zurückgegebenen Position vorwärts zu bewegen sind, um die Position zu erhalten, an der der Cursor angezeigt werden soll; dies ermöglicht die Unterscheidung zwischen der Position am Anfang einer Zeile und der Position am Ende der vorangegangenen Zeile; nind befindet sich immer in der Zeile, in der der Cursor angezeigt werden soll

Navigation zeigen