11.3 XIM Programming Interface
The input method programming interface departs in some ways from
the style established by the rest of Xlib. Functions that set, modify,
or query the attributes of an XIM or
XIC have a variable-length argument list interface,
similar to the interface of the X Toolkit
XtVaSetValues function, for example. Attributes are
specified by a null-terminated list of name/value pairs. Names are
null-terminated character strings (of type char *),
and values are of type XPointer, which is a new Xlib
generic pointer type, like XtPointer, which replaces
the non-standard caddr_t. There are predefined
symbols for all of the XIM and XIC
attribute names. These are named similarly to X Toolkit resource names:
they are prefixed with XN (not
XtN) and words in the name are separated by
capitalization rather than underscores. They differ from the Xt
convention in that the first letter after the XN
prefix is capitalized. Example 11-1 shows this naming convention and
the varargs interface used in C code. There is only a single defined
XIM attribute, which is explained in 11.4.2 Querying Input Method Values. There are a number of
XIC attributes, which are explained in 11.6 Input Context Attributes.
Example 11-1. The XIM varargs interface and attribute naming conventions
status = XSetICValues(ic, XNFocusWindow, w,
XNGeometryCallback, HandleIMGeometry,
NULL);The XNPreeditAttributes and
XNStatusAttributes attributes of an input context have a number of sub-attributes. In order to ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access