XtSetKeyTranslator(), XtTranslateKeycode(), XtRegisterCaseConverter(), XtConvertCase() - convert KeySym to KeyCodes
void XtSetKeyTranslator (Display *display, XtKeyProc proc)
void XtTranslateKeycode (Display *display, KeyCode keycode,
Modifiers modifiers,
Modifiers *modifiers_return,
KeySym *keysym_return)
void XtRegisterCaseConverter (Display *display, XtCaseProc proc,
KeySym start, KeySym stop)
void XtConvertCase (Display *display, KeySym keysym,
KeySym *lower_return, KeySym *upper_return)
The XtSetKeyTranslator(3) function sets the specified procedure as the current key translator. The default translator is XtTranslateKey(), an XtKeyProc() that uses Shift and Lock modifiers with the interpretations defined by the core protocol. It is provided so that new translators can call it to get default KeyCode-to-KeySym translations and so that the default translator can be reinstalled.
The XtTranslateKeycode(3) function passes the specified arguments directly to the currently registered KeyCode to KeySym translator.
The XtRegisterCaseConverter(3) registers the specified case converter. The start and stop arguments provide the inclusive range of KeySyms for which this converter is to be called. The new converter overrides any previous converters for KeySyms in that range. No interface exists to remove converters; you need to register an identity converter. When a new converter is registered, the Intrinsics refreshes the keyboard state if necessary. The default converter understands case conversion for all KeySyms defined in the core protocol.
The XtConvertCase(3) function calls the appropriate converter and returns the results. A user-supplied XtKeyProc() might need to use this function.
X Toolkit Intrinsics - C Language Interface
Xlib - C Language X Interface