Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

XtConvertCase(1)

XtGetKeysymTable(1)

XtKeysymToKeycodeList(1)

XtRegisterCaseConverter(1)

XtSetKeyTranslator(1)

XtTranslateKeycode(1)

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:
            break;
    }
}

See Also

XtConvertCase(1), XtGetKeysymTable(1), XtKeysymToKeycodeList(1), XtRegisterCaseConverter(1), XtSetKeyTranslator(1), XtTranslateKeycode(1). 

Copyright O’Reilly & Assoc.  —  X Toolkit Intrinsics Reference Manual © O’Reilly & Associates

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026