ReadonlyacceptableWhether the marked text could be saved to the user phrases.
ReadonlycomposingA string buffer that stores the current composing text. This represents the text that is currently being typed but not yet committed.
ReadonlycursorThe current cursor position in the composition buffer. Represents the index where new input will be inserted.
ReadonlyheadTHe text before the marked text.
ReadonlymarkedThe marked text.
ReadonlymarkThe index of the cursor that the user starts to make a marked range. It helps to restore the position of the cursor.
ReadonlyreadingThe Bopomofo reading of the marked text.
ReadonlytailThe text after the marked text.
ReadonlytooltipThe tooltip to display for this input state
Represents the Marking state where the user uses Shift-Left/Shift-Right to mark a phrase to be added to their custom phrases. A Marking state still has a composingBuffer, and the invariant is that composingBuffer = head + markedText + tail. Unlike cursorIndex, which is UTF-8 based, markStartGridCursorIndex is in the same unit that a Gramambular's grid builder uses. In other words, markStartGridCursorIndex is the beginning position of the reading cursor. This makes it easy for a key handler to know where the marked range is when combined with the grid builder's (reading) cursor index.