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 ...
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