UCKeyStateEntryRange
Maps from a dead-key state to either the resultant Unicode character(s) or the new dead key state produced when the current state is terminated by a given character key for a 'uchr' resource.
Declaration
struct UCKeyStateEntryRangeOverview
The UCKeyStateEntryRange type is used in the stateEntryData[] field of a structure of type UCKeyStateRecord. You should use the UCKeyStateEntryRange format for complex (multiple) dead-key states.
For each virtual key code, an entry in its dead-key state record maps from the current dead-key state to the Unicode character(s) produced or to the next dead-key state, as follows.
If the current dead-key state is within a valid dead-key state range for the given input character—that is, if its value is greater than or equal to curStateStart and less than or equal to curStateStart + curStateRange—then
If the base
charDatavalue for the given dead-key state range is in the range of valid Unicode characters, a character is produced and the dead-key state may be terminated.
and/or
If the base
nextStatevalue is not 0, a new dead-key state is produced.
In the first case, the output character is determined as follows: The base charData value is incremented by the resulting product of (the difference between the current state and the start of that state’s range) and (a multiplier). That is:
charData += (curState - curStateStart) * deltaMultiplier
Similarly, in the second case, the resulting dead-key state, which is the new curState value, is determined as follows: The base nextState value is incremented by the resulting product of (the difference between the current state and the start of that state’s range) and (a multiplier). That is:
nextState += (curState - curStateStart) * deltaMultiplier