NAME
XtCaseProc − interface definition for procedure to convert the case of keysyms.
SYNOPSIS
typedef void (∗XtCaseProc) (Display∗, KeySym, KeySym ∗, KeySym ∗);
Display ∗display
KeySym keysym;
KeySym ∗lower_return;
KeySym ∗upper_return;
Inputs
displayProvides the display connection for which the conversion is required.
keysymSpecifies the keysym to convert.
Outputs
lower_return
Returns the lowercase equivalent for keysym.
upper_return
Returns the uppercase equivalent for keysym.
DESCRIPTION
An XtCaseProc is a case converter procedure registered with XtRegisterCaseConverter(), and invoked by XtConvertCase() and by the Translation Manager in order to obtain the uppercase and lowercase versions of a keysym. It should store the upper and lower case versions of keysym at the addresses specified by lower_return and upper_return. If there is no case distinction, it should store keysym at both locations.
USAGE
You should only need to write a case converter procedure if you are working with non-standard keysyms.
EXAMPLE
The default case converter from the R4 Intrinsics is as follows: /∗ ARGSUSED ∗/ void _XtConvertCase(dpy, sym, lower, upper)
Display ∗dpy;
KeySym sym;
KeySym ∗lower;
KeySym ∗upper; {
∗lower = sym;
∗upper = sym;
switch(sym >> 8) {
case 0:
if ((sym >= XK_A) && (sym <= XK_Z))
∗lower += (XK_a - XK_A);
else if ((sym >= XK_a) && (sym <= XK_z))
∗upper -= (XK_a - XK_A);
else if ((sym >= XK_Agrave) && (sym <= XK_Odiaeresis))
∗lower += (XK_agrave - XK_Agrave);
else if ((sym >= XK_agrave) && (sym <= XK_odiaeresis))
∗upper -= (XK_agrave - XK_Agrave);
else if ((sym >= XK_Ooblique) && (sym <= XK_Thorn))
∗lower += (XK_oslash - XK_Ooblique);
else if ((sym >= XK_oslash) && (sym <= XK_thorn))
∗upper -= (XK_oslash - XK_Ooblique);
break;
default:
/∗ XXX do all other sets ∗/
break;
} }
SEE ALSO
XtConvertCaseUNIX SYSTEM V/68, XtGetKeysymTableUNIX SYSTEM V/68, XtKeysymToKeycodeListUNIX SYSTEM V/68, XtRegisterCaseConverterUNIX SYSTEM V/68, XtSetKeyTranslatorUNIX SYSTEM V/68, XtTranslateKeycodeUNIX SYSTEM V/68.