10.5 Internationalized Interclient Communication
You’ll need to understand non-internationalized interclient communication before reading this; see Chapter 12.
When writing an internationalized application it is not safe to
assume that all interclient communication with text properties will be
done with Latin-1 or ASCII strings. R5 provides some new functions that
do not make this assumption. The first is a convenience routine for
communication with window managers.
XmbSetWMProperties()
is a function very similar to
XSetWMProperties()
, except that the
window_name
and
icon_name
arguments are multi-byte strings
(rather than XTextProperty
pointers) in the encoding
of the locale. If these strings can be converted to the
STRING
encoding (Latin-1 plus newline and tab), then
their corresponding WM_NAME
and
WM_ICON_NAME
properties are created with type
STRING
. If this conversion cannot be performed, the
strings are converted to Compound Text (this conversion can always be
done, by the definition of Compound Text), and the properties are
created with type COMPOUND_TEXT
. Note that there is
no wide-character version of this function.
Since X properties have a single contiguous block of data as their
value, they cannot directly represent types such as char **
. But sometimes such a complex type must be represented
(imagine a text editor setting a property to a set of disjointed
selected strings). To allow this, X11R4 defined the
XTextProperty
structure (shown in Example 10-6) and the functions ...
Get XLIB Programming Manual, Rel. 5, Third Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.