XmbLookupString()XmbLookupString()NameXmbLookupString – obtain composed multi-byte input from an input
method.
Synopsis
int XmbLookupString(ic, event, buffer_return, bytes_buffer,
keysym_return, status_return)
XIC ic;
XKeyPressedEvent *event;
char *buffer_return;
int bytes_buffer;
KeySym *keysym_return;
Status *status_return;
Arguments
ic Specifies the input context.
event Specifies the keypress event to be used.
buffer_return
Returns a multibyte string (if any) from the input method.
bytes_buffer
Specifies the number of bytes in the return buffer.
keysym_return
Returns the KeySym computed from the event if this argument
is not NULL.
status_return
Returns a value indicating what kind of data is returned.
Returns
Number of characters in the string in bytes_buffer.
Availability
Release 5 and later.
DescriptionXmbLookupString() passes a KeyPress event to an input context, returns
composed text in the encoding of the locale of the input context if any
is ready, and may return a keysym corresponding to the KeyPress event
as well.
There are several possible results of a call to XmbLookupString(), and
a client should check the value returned in the status_return argument
to determine which has occurred. The possible values are:
XBufferOverflow
The input string to be returned is too large for the supplied
buffer_return. The required size in bytes is returned as the
value of the function, and the contents of buffer_return and
keysym_return are not modified. The client should re-call
the function with the same event and a buffer of adequate
size in order to obtain the string.
XLookupNone
No consistent input has been composed so far. The contents
of buffer_return and keysym_return are not modified, and the
function returns zero.
XLookupChars
Some input characters have been composed. They are placed in
the buffer_return argument, and the string length is returned
as the value of the function. The string is encoded in the
locale bound to the input context. The contents of the
keysym_return argument is not modified.
XLookupKeySym
A KeySym has been returned instead of a string and is
returned in keysym_return. The contents of the buffer_return
argument is not modified, and the function returns zero.
XLookupBoth
Both a KeySym and a string are returned; XLookupChars and
XLookupKeySym occur simultaneously.
When XmbLookupString() returns a string, the return value of the func‐
tion is the length in bytes of that string. The returned string is a
multi-byte string in the encoding of the locale of the input context.
If that encoding is state-dependent, the string begins in the initial
state of the encoding.
When both a keysym and a string are returned, the string does not nec‐
essarily correspond to the keysym. An application that is not inter‐
ested in return keysyms can pass a NULL keysym_return.
Note that only KeyPress events should be passed to XmbLookupString().
When KeyRelease events are passed, the resulting behavior is undefined.
It does not make any difference if the input context passed as an argu‐
ment to XmbLookupString() is the one currently in possession of the
focus or not. Input may have been composed within an input context
before it lost the focus, and that input may be returned on subsequent
calls to XmbLookupString() even though it no longer has any more key‐
board focus.
See AlsoXLookupKeysym(), XwcLookupString().
Xlib - Internationalized Text Input XmbLookupString()