XHPConvertLookup(3X)XHPConvertLookup(3X)NAMEXHPConvertLookup - convert key event into keysym and characters
SYNOPSIS
int
XHPConvertLookup(event_struct, buffer_return, bytes_buffer,
keysym_return, status_in_out, convert_routine)
XKeyEvent *event_struct;
char *buffer_return;
int bytes_buffer;
KeySym *keysym_return;
XComposeStatus *status_in_out;
int (*convert_routine)();
DESCRIPTION
event_struct Specifies the key event structure to be used. You can
pass XKeyPressedEvent or XKeyReleasedEvent .
buffer_return Returns the translated characters.
bytes_buffer Specifies the length of the buffer. No more than
bytes_buffer of translation are returned.
keysym_return Returns the keysym computed from the event if this
argument is not NULL.
status_in_out Specifies or returns the XComposeStatus structure or
NULL.
convert_routine
Specifies the routine which will map the keysym into a
character code, if appropriate. It also handles all
other processing necessary for the input language (e.g.
input server control for 16-bit languages) If this value
is NULL, ISO-Latin1 characters will be returned.
The functionality provided by this routine has been superseded by the
new X11 R5 Input Method routines. This new functionality should be
used whenever possible. See the routine XOpenIM and its associated
routines.
The XHPConvertLookup function maps a key event to a keysym and a
string. The modifier bits in the key event are used to indicate shift,
lock, control and keyboard group.
Shift, lock and keyboard group modifier bits are used to initially set
the keysym.
If the lock modifier has a caps_lock keysym associated with it,
XHPConvertLookup interprets the lock modifier to perform caps lock
processing using the keysym value.
It then checks to see if that keysym has been rebound and if it has it
returns the appropriate string in buffer_return.
The keysym and the modifier bits are then passed to the convert_routine
along with buffer_return, bytes_buffer, and status_in_out. This
routine will convert the keysym into a character code if appropriate
and return it in the buffer handed to it. It will also handle control
processing if appropriate. The convert_routine may use status_in_out
to contain state information for input. See the manual page for any
convert routine used to see how it is used. Also, if multiple input
servers are running at the same time, they must each be maintained by
separate XComposeStatus parameters.
The calling sequence for convert_routine is as follows:
(*convert_routine)(display, keysym, modifiers, buffer_return,
bytes_buffer, status_in_out)
Display *display;
Keysym *keysym;
unsigned int modifiers;
char *buffer_return;
int bytes_buffer;
XComposeStatus *status_in_out;
The meanings of the parameters are as follows:
display The display from the key event
keysym A pointer to the keysym value of this key event.
modifiers The modifiers (state) of this key event.
buffer_return Returns the translated characters.
bytes_buffer Specifies the length of the buffer. No more than
bytes_buffer of translation are returned.
status_in_out Specifies or returns the XComposeStatus structure or
NULL.
convert_routine will return the number of characters in buffer_return.
RETURN VALUE
The return value is the length of the string returned in buffer_return.
EXAMPLES
The following example shows an application doing input in HP's Roman 8
character set.
XKeyEvent *event;
char buffer[80];
KeySym keysym;
XComposeStatus *status;
extern int XHPInputRoman8();
int count;
count = XHPConvertLookup (event, buffer, nbytes, &keysym, &status, XHPInputRoman8);
The next example shows an application that supports all the default
character sets for HP's Eurasian keyboards.
Display display;
count = XHPConvertLookup (event, buffer, nbytes, &keysym, &status,
XHPGetEurasianCvt(display));
An application which wished to do input in ISO-LATIN1 would use:
count = XHPConvertLookup (event, buffer, nbytes, &keysym, &status, 0);
An application could provide its own routine to map from keysym to
character code. If an application had a routine, InputISO_Latin2()
that mapped keysyms into ISO-LATIN2 characters it would be used as
follows:
extern int InputISO_Latin2();
count = XHPConvertLookup (event, buffer, nbytes, &keysym, &status, InputISO_Latin2);
XHPConvertLookup is provided for backwards compatibility only; this
routines will be discontinued in a future release of HP-UX. Users
desiring the same capabilities as those provided by these routines
should use XOpenIM, XCreateIC, and XmbLookupString.
ORIGIN
Hewlett-Packard Company
SEE ALSOXHPInputChinese_s(3X), XHPInputChinese_t(3X), XHPInputJapanese(3X),
XHPInputKorean(3X), XHPInputRoman8(3X), XHPSetKeyboardLanguage(3X),
INTERNATIONAL SUPPORT
8-bit and 16-bit character data.
X Version 11 Release 5 XHPConvertLookup(3X)