Xmu.xml revision 9dedec0c
1e120bd27Smrg<?xml version="1.0" encoding="ISO-8859-1"?>
2e120bd27Smrg<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
30cc2eac3Smrg "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
40cc2eac3Smrg[
50cc2eac3Smrg<!ENTITY % defs SYSTEM "defs.ent"> %defs;
60cc2eac3Smrg]>
7e120bd27Smrg<!-- lifted from troff+ms+XMan by doclifter -->
8e120bd27Smrg
9e120bd27Smrg<article id='xmu'>
10e120bd27Smrg  <articleinfo>
11e120bd27Smrg    <title>Xmu and Xmuu Library API Reference</title>
120cc2eac3Smrg    <releaseinfo>X Version 11, Release &fullrelvers;</releaseinfo>
130cc2eac3Smrg    <copyright><year>1989</year><holder>X Consortium</holder>
140cc2eac3Smrg    </copyright>
15e120bd27Smrg    <abstract><para>&ldquo;Don't ask.&rdquo;</para></abstract>
16e120bd27Smrg
17e120bd27Smrg    <legalnotice>
18e120bd27Smrg
19e120bd27Smrg      <para>
20e120bd27SmrgPermission is hereby granted, free of charge, to any person obtaining a copy
21e120bd27Smrgof this software and associated documentation files (the &ldquo;Software&rdquo;), to deal
22e120bd27Smrgin the Software without restriction, including without limitation the rights
23e120bd27Smrgto use, copy, modify, merge, publish, distribute, sublicense, and/or sell
24e120bd27Smrgcopies of the Software, and to permit persons to whom the Software is
25e120bd27Smrgfurnished to do so, subject to the following conditions:
26e120bd27Smrg      </para>
27e120bd27Smrg      <para>
28e120bd27SmrgThe above copyright notice and this permission notice shall be included in
29e120bd27Smrgall copies or substantial portions of the Software.
30e120bd27Smrg      </para>
31e120bd27Smrg      <para>
32e120bd27SmrgTHE SOFTWARE IS PROVIDED &ldquo;AS IS&rdquo;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
33e120bd27SmrgIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
34e120bd27SmrgFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
35e120bd27SmrgX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
36e120bd27SmrgAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
37e120bd27SmrgCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
38e120bd27Smrg      </para>
39e120bd27Smrg      <para>
40e120bd27SmrgExcept as contained in this notice, the name of the X Consortium shall not be
41e120bd27Smrgused in advertising or otherwise to promote the sale, use or other dealings
42e120bd27Smrgin this Software without prior written authorization from the X Consortium.
43e120bd27Smrg      </para>
44e120bd27Smrg      <para>
45e120bd27Smrg<trademark><emphasis>X Window System</emphasis></trademark>
46e120bd27Smrgis a trademark of The Open Group.
47e120bd27Smrg      </para>
48e120bd27Smrg
49e120bd27Smrg    </legalnotice>
50e120bd27Smrg  </articleinfo>
51e120bd27Smrg
520cc2eac3Smrg  <sect1 id='Introduction'>
530cc2eac3Smrg<title>Introduction</title>
54e120bd27Smrg
55e120bd27Smrg    <para>
56e120bd27SmrgThe Xmu Library is a collection of miscellaneous (some might say random)
57e120bd27Smrgutility functions that have been useful in building various applications
58e120bd27Smrgand widgets.  This library is required by the Athena Widgets.
59e120bd27Smrg    </para>
60e120bd27Smrg
61e120bd27Smrg    <para>
62e120bd27SmrgStarting in XFree86 4.1.0, and incorporated into X11R6.7 and later releases,
63e120bd27Smrga subset of the functions that do not rely on the Athena Widgets (libXaw)
649dedec0cSmrgor X Toolkit Intrinsics (libXt) are provided in a second library, libXmuu.
65e120bd27Smrg    </para>
66e120bd27Smrg
67e120bd27Smrg    <para>
68e120bd27SmrgPrograms using either of these libraries are encouraged to determine the
69e120bd27Smrgcorrect compiler and linker options via the <userinput>xmu</userinput> or
70e120bd27Smrg<userinput>xmuu</userinput> module names for <command>pkg-config</command>,
71e120bd27Smrg<indexterm>
72e120bd27Smrg<primary><command>pkg-config</command></primary>
73e120bd27Smrg</indexterm>
74e120bd27Smrgsuch as:
75e120bd27Smrg
76e120bd27Smrg      <screen>
77e120bd27Smrgcc -c xapplication.c `pkg-config --cflags xmu`
78e120bd27Smrgcc -o xapplication xapplication.o `pkg-config --libs xmu`
79e120bd27Smrg      </screen>
80e120bd27Smrg    </para>
81e120bd27Smrg
82e120bd27Smrg  </sect1>
83e120bd27Smrg
840cc2eac3Smrg  <sect1 id='Atom_Functions'>
850cc2eac3Smrg<title>Atom Functions</title>
86e120bd27Smrg
87e120bd27Smrg    <para>
88e120bd27SmrgTo use the functions and macros defined in this section, you should include
89e120bd27Smrgthe header file
90e120bd27Smrg&lt;<filename class='headerfile'>X11/Xmu/Atoms.h</filename>&gt;
91e120bd27Smrg<indexterm>
92e120bd27Smrg<primary><filename class='headerfile'>X11/Xmu/Atoms.h</filename></primary>
93e120bd27Smrg</indexterm>
94e120bd27Smrgand link against the libXmu library.
95e120bd27Smrg    </para>
96e120bd27Smrg
97e120bd27Smrg    <funcsynopsis>
98e120bd27Smrg      <funcprototype>
99e120bd27Smrg	<funcdef><function>XA_ATOM_PAIR</function></funcdef>
100e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
101e120bd27Smrg      </funcprototype>
102e120bd27Smrg      <funcprototype>
103e120bd27Smrg	<funcdef><function>XA_CHARACTER_POSITION</function></funcdef>
104e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
105e120bd27Smrg      </funcprototype>
106e120bd27Smrg      <funcprototype>
107e120bd27Smrg	<funcdef><function>XA_CLASS</function></funcdef>
108e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
109e120bd27Smrg      </funcprototype>
110e120bd27Smrg      <funcprototype>
111e120bd27Smrg	<funcdef><function>XA_CLIENT_WINDOW</function></funcdef>
112e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
113e120bd27Smrg      </funcprototype>
114e120bd27Smrg      <funcprototype>
115e120bd27Smrg	<funcdef><function>XA_CLIPBOARD</function></funcdef>
116e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
117e120bd27Smrg      </funcprototype>
118e120bd27Smrg      <funcprototype>
119e120bd27Smrg	<funcdef><function>XA_COMPOUND_TEXT</function></funcdef>
120e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
121e120bd27Smrg      </funcprototype>
122e120bd27Smrg      <funcprototype>
123e120bd27Smrg	<funcdef><function>XA_DECNET_ADDRESS</function></funcdef>
124e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
125e120bd27Smrg      </funcprototype>
126e120bd27Smrg      <funcprototype>
127e120bd27Smrg	<funcdef><function>XA_DELETE</function></funcdef>
128e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
129e120bd27Smrg      </funcprototype>
130e120bd27Smrg      <funcprototype>
131e120bd27Smrg	<funcdef><function>XA_FILENAME</function></funcdef>
132e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
133e120bd27Smrg      </funcprototype>
134e120bd27Smrg      <funcprototype>
135e120bd27Smrg	<funcdef><function>XA_HOSTNAME</function></funcdef>
136e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
137e120bd27Smrg      </funcprototype>
138e120bd27Smrg      <funcprototype>
139e120bd27Smrg	<funcdef><function>XA_IP_ADDRESS</function></funcdef>
140e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
141e120bd27Smrg      </funcprototype>
142e120bd27Smrg      <funcprototype>
143e120bd27Smrg	<funcdef><function>XA_LENGTH</function></funcdef>
144e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
145e120bd27Smrg      </funcprototype>
146e120bd27Smrg      <funcprototype>
147e120bd27Smrg	<funcdef><function>XA_LIST_LENGTH</function></funcdef>
148e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
149e120bd27Smrg      </funcprototype>
150e120bd27Smrg      <funcprototype>
151e120bd27Smrg	<funcdef><function>XA_NAME</function></funcdef>
152e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
153e120bd27Smrg      </funcprototype>
154e120bd27Smrg      <funcprototype>
155e120bd27Smrg	<funcdef><function>XA_NET_ADDRESS</function></funcdef>
156e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
157e120bd27Smrg      </funcprototype>
158e120bd27Smrg      <funcprototype>
159e120bd27Smrg	<funcdef><function>XA_NULL</function></funcdef>
160e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
161e120bd27Smrg      </funcprototype>
162e120bd27Smrg      <funcprototype>
163e120bd27Smrg	<funcdef><function>XA_OWNER_OS</function></funcdef>
164e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
165e120bd27Smrg      </funcprototype>
166e120bd27Smrg      <funcprototype>
167e120bd27Smrg	<funcdef><function>XA_SPAN</function></funcdef>
168e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
169e120bd27Smrg      </funcprototype>
170e120bd27Smrg      <funcprototype>
171e120bd27Smrg	<funcdef><function>XA_TARGETS</function></funcdef>
172e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
173e120bd27Smrg      </funcprototype>
174e120bd27Smrg      <funcprototype>
175e120bd27Smrg	<funcdef><function>XA_TEXT</function></funcdef>
176e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
177e120bd27Smrg      </funcprototype>
178e120bd27Smrg      <funcprototype>
179e120bd27Smrg	<funcdef><function>XA_TIMESTAMP</function></funcdef>
180e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
181e120bd27Smrg      </funcprototype>
182e120bd27Smrg      <funcprototype>
183e120bd27Smrg	<funcdef><function>XA_USER</function></funcdef>
184e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
185e120bd27Smrg      </funcprototype>
186e120bd27Smrg      <funcprototype>
187e120bd27Smrg	<funcdef><function>XA_UTF8_STRING</function></funcdef>
188e120bd27Smrg	<paramdef><parameter>d</parameter></paramdef>
189e120bd27Smrg      </funcprototype>
190e120bd27Smrg    </funcsynopsis>
191e120bd27Smrg
192e120bd27Smrg    <para>
193e120bd27Smrg      <indexterm>
194e120bd27Smrg	<primary><type>Atom</type></primary>
195e120bd27Smrg      </indexterm>
196e120bd27SmrgThese macros take a display as argument and return an
197e120bd27Smrg<type>Atom</type>.
198e120bd27SmrgThe name of the
199e120bd27Smrgatom is obtained from the macro name by removing the leading characters
200e120bd27Smrg&ldquo;<code>XA_</code>&rdquo;.  The
201e120bd27Smrg<type>Atom</type>
202e120bd27Smrgvalue is cached, such that subsequent requests do not cause
203e120bd27Smrganother round-trip to the server.
204e120bd27Smrg    </para>
205e120bd27Smrg
2060cc2eac3Smrg    <para>
207e120bd27Smrg      <indexterm zone="XmuMakeAtom">
2080cc2eac3Smrg	<primary><xref linkend='XmuMakeAtom' xrefstyle='select: title'/></primary>
209e120bd27Smrg      </indexterm>
2100cc2eac3Smrg      <funcsynopsis id='XmuMakeAtom'>
211e120bd27Smrg	<funcprototype>
212e120bd27Smrg	  <funcdef>AtomPtr <function>XmuMakeAtom</function></funcdef>
213e120bd27Smrg	  <paramdef>const char *<parameter>name</parameter></paramdef>
214e120bd27Smrg	</funcprototype>
215e120bd27Smrg      </funcsynopsis>
216e120bd27Smrg      <variablelist>
217e120bd27Smrg	<varlistentry>
218e120bd27Smrg	  <term><parameter>name</parameter></term>
219e120bd27Smrg	  <listitem><para>
220e120bd27Smrgspecifies the atom name
221e120bd27Smrg	    </para></listitem>
222e120bd27Smrg	</varlistentry>
223e120bd27Smrg      </variablelist>
224e120bd27Smrg
225e120bd27SmrgThis function creates and initializes an opaque object, an
226e120bd27Smrg<type>AtomPtr</type>,
227e120bd27Smrgfor an
228e120bd27Smrg<type>Atom</type>
229e120bd27Smrgwith the
230e120bd27Smrggiven name.
2310cc2eac3Smrg<xref linkend='XmuInternAtom' xrefstyle='select: title'/>
232e120bd27Smrgcan be used to cache the Atom value for one or more displays.
233e120bd27Smrg    </para>
234e120bd27Smrg
2350cc2eac3Smrg    <para>
236e120bd27Smrg      <indexterm zone="XmuNameOfAtom">
2370cc2eac3Smrg	<primary><xref linkend='XmuNameOfAtom' xrefstyle='select: title'/></primary>
238e120bd27Smrg      </indexterm>
2390cc2eac3Smrg      <funcsynopsis id='XmuNameOfAtom'>
240e120bd27Smrg	<funcprototype>
241e120bd27Smrg	  <funcdef>char *<function>XmuNameOfAtom</function></funcdef>
242e120bd27Smrg	  <paramdef>AtomPtr <parameter>atom_ptr</parameter></paramdef>
243e120bd27Smrg	</funcprototype>
244e120bd27Smrg      </funcsynopsis>
245e120bd27Smrg      <variablelist>
246e120bd27Smrg	<varlistentry>
247e120bd27Smrg	  <term><parameter>atom_ptr</parameter></term>
248e120bd27Smrg	  <listitem><para>
249e120bd27Smrgspecifies the AtomPtr
250e120bd27Smrg	    </para></listitem>
251e120bd27Smrg	</varlistentry>
252e120bd27Smrg      </variablelist>
253e120bd27Smrg
254e120bd27SmrgThe function returns the name of an AtomPtr.
255e120bd27Smrg    </para>
256e120bd27Smrg
2570cc2eac3Smrg    <para>
258e120bd27Smrg      <indexterm zone="XmuInternAtom">
2590cc2eac3Smrg	<primary><xref linkend='XmuInternAtom' xrefstyle='select: title'/></primary>
260e120bd27Smrg      </indexterm>
2610cc2eac3Smrg      <funcsynopsis id='XmuInternAtom'>
262e120bd27Smrg	<funcprototype>
263e120bd27Smrg	  <funcdef>Atom <function>XmuInternAtom</function></funcdef>
264e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
265e120bd27Smrg	  <paramdef>AtomPtr <parameter>atom_ptr</parameter></paramdef>
266e120bd27Smrg	</funcprototype>
267e120bd27Smrg      </funcsynopsis>
268e120bd27Smrg      <variablelist>
269e120bd27Smrg	<varlistentry>
270e120bd27Smrg	  <term><parameter>dpy</parameter></term>
271e120bd27Smrg	  <listitem><para>
272e120bd27Smrgspecifies the connection to the X server
273e120bd27Smrg	    </para></listitem>
274e120bd27Smrg	</varlistentry>
275e120bd27Smrg	<varlistentry>
276e120bd27Smrg	  <term><parameter>atom_ptr</parameter></term>
277e120bd27Smrg	  <listitem><para>
278e120bd27Smrgspecifies the AtomPtr
279e120bd27Smrg	    </para></listitem>
280e120bd27Smrg	</varlistentry>
281e120bd27Smrg      </variablelist>
282e120bd27Smrg
283e120bd27SmrgThis function returns the
284e120bd27Smrg<type>Atom</type>
285e120bd27Smrgfor an
286e120bd27Smrg<type>AtomPtr</type>.
287e120bd27SmrgThe
288e120bd27Smrg<type>Atom</type>
289e120bd27Smrgis cached,
290e120bd27Smrgsuch that subsequent requests do not cause another round-trip to the server.
291e120bd27Smrg    </para>
292e120bd27Smrg
2930cc2eac3Smrg    <para>
294e120bd27Smrg      <indexterm zone="XmuGetAtomName">
2950cc2eac3Smrg	<primary><xref linkend='XmuGetAtomName' xrefstyle='select: title'/></primary>
296e120bd27Smrg      </indexterm>
2970cc2eac3Smrg      <funcsynopsis id='XmuGetAtomName'>
298e120bd27Smrg	<funcprototype>
299e120bd27Smrg	  <funcdef>char *<function>XmuGetAtomName</function></funcdef>
300e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
301e120bd27Smrg	  <paramdef>Atom <parameter>atom</parameter></paramdef>
302e120bd27Smrg	</funcprototype>
303e120bd27Smrg      </funcsynopsis>
304e120bd27Smrg      <variablelist>
305e120bd27Smrg	<varlistentry>
306e120bd27Smrg	  <term><parameter>dpy</parameter></term>
307e120bd27Smrg	  <listitem><para>
308e120bd27Smrgspecifies the connection to the X server
309e120bd27Smrg	   </para></listitem>
310e120bd27Smrg	</varlistentry>
311e120bd27Smrg	<varlistentry>
312e120bd27Smrg	  <term><parameter>atom</parameter></term>
313e120bd27Smrg	  <listitem><para>
314e120bd27Smrgspecifies the atom whose name is desired
315e120bd27Smrg	    </para></listitem>
316e120bd27Smrg	</varlistentry>
317e120bd27Smrg      </variablelist>
318e120bd27Smrg
319e120bd27SmrgThis function returns the name of an
320e120bd27Smrg<type>Atom</type>.
321e120bd27SmrgThe result is cached, such that subsequent
322e120bd27Smrgrequests do not cause another round-trip to the server.
323e120bd27Smrg    </para>
324e120bd27Smrg
3250cc2eac3Smrg    <para>
326e120bd27Smrg      <indexterm zone="XmuInternStrings">
3270cc2eac3Smrg	<primary><xref linkend='XmuInternStrings' xrefstyle='select: title'/></primary>
328e120bd27Smrg      </indexterm>
3290cc2eac3Smrg      <funcsynopsis id='XmuInternStrings'>
330e120bd27Smrg	<funcprototype>
331e120bd27Smrg	  <funcdef>void <function>XmuInternStrings</function></funcdef>
332e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
333e120bd27Smrg	  <paramdef>String *<parameter>names</parameter></paramdef>
334e120bd27Smrg	  <paramdef>Cardinal <parameter>count</parameter></paramdef>
335e120bd27Smrg	  <paramdef>Atom *<parameter>atoms</parameter></paramdef>
336e120bd27Smrg	</funcprototype>
337e120bd27Smrg      </funcsynopsis>
338e120bd27Smrg      <variablelist>
339e120bd27Smrg	<varlistentry>
340e120bd27Smrg	  <term><parameter>dpy</parameter></term>
341e120bd27Smrg	  <listitem><para>
342e120bd27Smrgspecifies the connection to the X server
343e120bd27Smrg	   </para></listitem>
344e120bd27Smrg	</varlistentry>
345e120bd27Smrg	<varlistentry>
346e120bd27Smrg	  <term><parameter>names</parameter></term>
347e120bd27Smrg	  <listitem><para>
348e120bd27Smrgspecifies the strings to intern
349e120bd27Smrg	    </para></listitem>
350e120bd27Smrg	</varlistentry>
351e120bd27Smrg	<varlistentry>
352e120bd27Smrg	  <term><parameter>count</parameter></term>
353e120bd27Smrg	  <listitem><para>
354e120bd27Smrgspecifies the number of strings
355e120bd27Smrg	    </para></listitem>
356e120bd27Smrg	</varlistentry>
357e120bd27Smrg	<varlistentry>
358e120bd27Smrg	  <term><parameter>atoms</parameter></term>
359e120bd27Smrg	  <listitem><para>
360e120bd27Smrgreturns the list of Atom values
361e120bd27Smrg	    </para></listitem>
362e120bd27Smrg	</varlistentry>
363e120bd27Smrg      </variablelist>
364e120bd27Smrg
365e120bd27SmrgThis function converts a list of atom names into
366e120bd27Smrg<type>Atom</type>
367e120bd27Smrgvalues.  The results are cached, such
368e120bd27Smrgthat subsequent requests do not cause further round-trips to the server.
369e120bd27SmrgThe caller is responsible for preallocating the array pointed at by atoms.
370e120bd27Smrg    </para>
371e120bd27Smrg
372e120bd27Smrg  </sect1>
373e120bd27Smrg
3740cc2eac3Smrg  <sect1 id='Error_Handler_Functions'>
3750cc2eac3Smrg<title>Error Handler Functions</title>
376e120bd27Smrg
377e120bd27Smrg    <para>
378e120bd27SmrgTo use the functions defined in this section, you should include the header
379e120bd27Smrgfile
380e120bd27Smrg&lt;<filename class='headerfile'>X11/Xmu/Error.h</filename>&gt;
381e120bd27Smrg<indexterm>
382e120bd27Smrg<primary><filename class='headerfile'>X11/Xmu/Error.h</filename></primary>
383e120bd27Smrg</indexterm>
384e120bd27Smrgand link against the libXmu or libXmuu library.
385e120bd27Smrg    </para>
386e120bd27Smrg
3870cc2eac3Smrg    <para>
388e120bd27Smrg      <indexterm zone="XmuPrintDefaultErrorMessage">
3890cc2eac3Smrg	<primary><xref linkend='XmuPrintDefaultErrorMessage' xrefstyle='select: title'/></primary>
390e120bd27Smrg      </indexterm>
3910cc2eac3Smrg      <funcsynopsis id='XmuPrintDefaultErrorMessage'>
392e120bd27Smrg	<funcprototype>
393e120bd27Smrg	  <funcdef>int <function>XmuPrintDefaultErrorMessage</function></funcdef>
394e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
395e120bd27Smrg	  <paramdef>XErrorEvent *<parameter>event</parameter></paramdef>
396e120bd27Smrg	  <paramdef>FILE *<parameter>fp</parameter></paramdef>
397e120bd27Smrg	</funcprototype>
398e120bd27Smrg      </funcsynopsis>
399e120bd27Smrg      <variablelist>
400e120bd27Smrg	<varlistentry>
401e120bd27Smrg	  <term><parameter>dpy</parameter></term>
402e120bd27Smrg	  <listitem><para>
403e120bd27Smrgspecifies the connection to the X server
404e120bd27Smrg	    </para></listitem>
405e120bd27Smrg	</varlistentry>
406e120bd27Smrg	<varlistentry>
407e120bd27Smrg	  <term><parameter>event</parameter></term>
408e120bd27Smrg	  <listitem><para>
409e120bd27Smrgspecifies the error
410e120bd27Smrg	    </para></listitem>
411e120bd27Smrg	</varlistentry>
412e120bd27Smrg	<varlistentry>
413e120bd27Smrg	  <term><parameter>fp</parameter></term>
414e120bd27Smrg	  <listitem><para>
415e120bd27Smrg	      specifies where to print the error message
416e120bd27Smrg	    </para></listitem>
417e120bd27Smrg	</varlistentry>
418e120bd27Smrg      </variablelist>
419e120bd27Smrg
420e120bd27SmrgThis function prints an error message, equivalent to Xlib's default error
421e120bd27Smrgmessage for protocol errors.  It returns a non-zero value
422e120bd27Smrgif the caller should consider exiting, otherwise it returns 0.
423e120bd27SmrgThis function can be used when you need to
424e120bd27Smrgwrite your own error handler, but need to print out an error from within
425e120bd27Smrgthat handler.
426e120bd27Smrg    </para>
427e120bd27Smrg
428e120bd27Smrg    <para id="XmuSimpleErrorHandler">
429e120bd27Smrg      <indexterm zone="XmuSimpleErrorHandler">
430e120bd27Smrg	<primary><function>XmuSimpleErrorHandler</function></primary>
431e120bd27Smrg      </indexterm>
432e120bd27Smrg      <funcsynopsis>
433e120bd27Smrg	<funcprototype>
434e120bd27Smrg	  <funcdef>int <function>XmuSimpleErrorHandler</function></funcdef>
435e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
436e120bd27Smrg	  <paramdef>XErrorEvent *<parameter>errorp</parameter></paramdef>
437e120bd27Smrg	</funcprototype>
438e120bd27Smrg      </funcsynopsis>
439e120bd27Smrg      <variablelist>
440e120bd27Smrg	<varlistentry>
441e120bd27Smrg	  <term><parameter>dpy</parameter></term>
442e120bd27Smrg	  <listitem><para>
443e120bd27Smrgspecifies the connection to the X server
444e120bd27Smrg	    </para></listitem>
445e120bd27Smrg	</varlistentry>
446e120bd27Smrg	<varlistentry>
447e120bd27Smrg	  <term><parameter>errorp</parameter></term>
448e120bd27Smrg	  <listitem><para>
449e120bd27Smrgspecifies the error
450e120bd27Smrg	    </para></listitem>
451e120bd27Smrg	</varlistentry>
452e120bd27Smrg      </variablelist>
453e120bd27Smrg
454e120bd27SmrgThis function ignores errors for
455e120bd27Smrg<errorname>BadWindow</errorname>
456e120bd27Smrgerrors for
4570cc2eac3Smrg<olink targetdoc='libX11' targetptr='XQueryTree'><function>XQueryTree</function></olink>
458e120bd27Smrgand
4590cc2eac3Smrg<olink targetdoc='libX11' targetptr='XGetWindowAttributes'><function>XGetWindowAttributes</function></olink>,
460e120bd27Smrgand ignores
461e120bd27Smrg<errorname>BadDrawable</errorname>
462e120bd27Smrgerrors for
4630cc2eac3Smrg<olink targetdoc='libX11' targetptr='XGetGeometry'><function>XGetGeometry</function></olink>;
464e120bd27Smrgit returns 0 in those cases.  Otherwise, it prints the default error message,
465e120bd27Smrgand returns a non-zero value if the caller should consider exiting,
466e120bd27Smrgand 0 if the caller should not exit.
467e120bd27Smrg    </para>
468e120bd27Smrg  </sect1>
469e120bd27Smrg
4700cc2eac3Smrg  <sect1 id='System_Utility_Functions'>
4710cc2eac3Smrg<title>System Utility Functions</title>
472e120bd27Smrg
473e120bd27Smrg    <para>
474e120bd27SmrgTo use the functions defined in this section, you should include the header
475e120bd27Smrgfile
476e120bd27Smrg&lt;<filename class='headerfile'>X11/Xmu/SysUtil.h</filename>&gt;
477e120bd27Smrg<indexterm>
478e120bd27Smrg<primary><filename class='headerfile'>X11/Xmu/SysUtil.h</filename></primary>
479e120bd27Smrg</indexterm>
480e120bd27Smrgand link against the libXmu or libXmuu library.
481e120bd27Smrg    </para>
482e120bd27Smrg
483e120bd27Smrg    <para id="XmuGetHostname">
484e120bd27Smrg      <indexterm zone="XmuGetHostname">
485e120bd27Smrg	<primary><function>XmuGetHostname</function></primary>
486e120bd27Smrg      </indexterm>
487e120bd27Smrg      <funcsynopsis>
488e120bd27Smrg	<funcprototype>
489e120bd27Smrg	  <funcdef>int <function>XmuGetHostname</function></funcdef>
490e120bd27Smrg	  <paramdef>char *<parameter>buf</parameter></paramdef>
491e120bd27Smrg	  <paramdef>int <parameter>maxlen</parameter></paramdef>
492e120bd27Smrg	</funcprototype>
493e120bd27Smrg      </funcsynopsis>
494e120bd27Smrg     <variablelist>
495e120bd27Smrg	<varlistentry>
496e120bd27Smrg	  <term><parameter>buf</parameter></term>
497e120bd27Smrg	  <listitem><para>
498e120bd27Smrgreturns the host name
499e120bd27Smrg	    </para></listitem>
500e120bd27Smrg	</varlistentry>
501e120bd27Smrg	<varlistentry>
502e120bd27Smrg	  <term><parameter>maxlen</parameter></term>
503e120bd27Smrg	  <listitem><para>
504e120bd27Smrgspecifies the length of <parameter>buf</parameter>
505e120bd27Smrg	    </para></listitem>
506e120bd27Smrg	</varlistentry>
507e120bd27Smrg      </variablelist>
508e120bd27Smrg
509e120bd27SmrgThis function stores the null terminated name of the local host in
510e120bd27Smrg<parameter>buf</parameter>, and
511e120bd27Smrgreturns length of the name.  This function hides operating system differences,
512e120bd27Smrgsuch as whether to call <function>gethostname</function> or
513e120bd27Smrg<function>uname</function>.
514e120bd27Smrg    </para>
515e120bd27Smrg
516e120bd27Smrg    <para id="XmuSnprintf">
517e120bd27Smrg      <indexterm zone="XmuSnprintf">
518e120bd27Smrg	<primary><function>XmuSnprintf</function></primary>
519e120bd27Smrg      </indexterm>
520e120bd27Smrg      <funcsynopsis>
521e120bd27Smrg	<funcprototype>
522e120bd27Smrg	  <funcdef>int <function>XmuSnprintf</function></funcdef>
523e120bd27Smrg	  <paramdef>char *<parameter>str</parameter></paramdef>
524e120bd27Smrg	  <paramdef>int <parameter>size</parameter></paramdef>
525e120bd27Smrg	  <paramdef><parameter>...</parameter></paramdef>
526e120bd27Smrg	</funcprototype>
527e120bd27Smrg      </funcsynopsis>
528e120bd27Smrg     <variablelist>
529e120bd27Smrg	<varlistentry>
530e120bd27Smrg	  <term><parameter>str</parameter></term>
531e120bd27Smrg	  <listitem><para>
532e120bd27Smrgstring to write output to
533e120bd27Smrg	    </para></listitem>
534e120bd27Smrg	</varlistentry>
535e120bd27Smrg	<varlistentry>
536e120bd27Smrg	  <term><parameter>size</parameter></term>
537e120bd27Smrg	  <listitem><para>
538e120bd27Smrgspecifies the size of <parameter>str</parameter>
539e120bd27Smrg	    </para></listitem>
540e120bd27Smrg	</varlistentry>
541e120bd27Smrg      </variablelist>
542e120bd27Smrg
543e120bd27SmrgThis function was provided as a portable implementation of
544e120bd27Smrg<function>snprintf</function> before all platforms could be
545e120bd27Smrgrelied on to provide their own.   It is now deprecated in favor of
546e120bd27Smrgcalling <function>snprintf</function> directly and should only be used
547e120bd27Smrgin software that needs to continue to support non-Unix98 compliant platforms.
548e120bd27Smrg    </para>
549e120bd27Smrg
550e120bd27Smrg
551e120bd27Smrg  </sect1>
552e120bd27Smrg
5530cc2eac3Smrg  <sect1 id='Window_Utility_Functions'>
5540cc2eac3Smrg<title>Window Utility Functions</title>
555e120bd27Smrg
556e120bd27Smrg    <para>
557e120bd27SmrgTo use the functions defined in this section, you should include the header
558e120bd27Smrgfile
559e120bd27Smrg&lt;<filename class='headerfile'>X11/Xmu/WinUtil.h</filename>&gt;
560e120bd27Smrg<indexterm>
561e120bd27Smrg<primary><filename class='headerfile'>X11/Xmu/WinUtil.h</filename></primary>
562e120bd27Smrg</indexterm>.
563e120bd27SmrgTo use <function>XmuClientWindow</function>, you may link against either the
564e120bd27SmrglibXmu or libXmuu libraries.   The other functions in this section require
565e120bd27Smrglinking against the libXmu library.
566e120bd27Smrg    </para>
567e120bd27Smrg
568e120bd27Smrg    <para id="XmuScreenOfWindow">
569e120bd27Smrg      <indexterm zone="XmuScreenOfWindow">
570e120bd27Smrg	<primary><function>XmuScreenOfWindow</function></primary>
571e120bd27Smrg      </indexterm>
572e120bd27Smrg      <funcsynopsis>
573e120bd27Smrg	<funcprototype>
574e120bd27Smrg	  <funcdef>Screen *<function>XmuScreenOfWindow</function></funcdef>
575e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
576e120bd27Smrg	  <paramdef>Window <parameter>w</parameter></paramdef>
577e120bd27Smrg	</funcprototype>
578e120bd27Smrg      </funcsynopsis>
579e120bd27Smrg      <variablelist>
580e120bd27Smrg	<varlistentry>
581e120bd27Smrg	  <term><parameter>dpy</parameter></term>
582e120bd27Smrg	  <listitem><para>
583e120bd27Smrgspecifies the connection to the X server
584e120bd27Smrg	    </para></listitem>
585e120bd27Smrg	</varlistentry>
586e120bd27Smrg	<varlistentry>
587e120bd27Smrg	  <term><parameter>w</parameter></term>
588e120bd27Smrg	  <listitem><para>
589e120bd27Smrgspecifies the window
590e120bd27Smrg	    </para></listitem>
591e120bd27Smrg	</varlistentry>
592e120bd27Smrg      </variablelist>
593e120bd27Smrg
594e120bd27SmrgThis function returns the
595e120bd27Smrg<type>Screen</type>
596e120bd27Smrgon which the specified window was created.
597e120bd27Smrg    </para>
598e120bd27Smrg
599e120bd27Smrg    <para id="XmuClientWindow">
600e120bd27Smrg      <indexterm zone="XmuClientWindow">
601e120bd27Smrg	<primary><function>XmuClientWindow</function></primary>
602e120bd27Smrg      </indexterm>
603e120bd27Smrg      <funcsynopsis>
604e120bd27Smrg	<funcprototype>
605e120bd27Smrg	  <funcdef>Window <function>XmuClientWindow</function></funcdef>
606e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
607e120bd27Smrg	  <paramdef>Window <parameter>win</parameter></paramdef>
608e120bd27Smrg	</funcprototype>
609e120bd27Smrg      </funcsynopsis>
610e120bd27Smrg      <variablelist>
611e120bd27Smrg	<varlistentry>
612e120bd27Smrg	  <term><parameter>dpy</parameter></term>
613e120bd27Smrg	  <listitem><para>
614e120bd27Smrgspecifies the connection to the X server
615e120bd27Smrg	    </para></listitem>
616e120bd27Smrg	</varlistentry>
617e120bd27Smrg	<varlistentry>
618e120bd27Smrg	  <term><parameter>win</parameter></term>
619e120bd27Smrg	  <listitem><para>
620e120bd27Smrgspecifies the window
621e120bd27Smrg	    </para></listitem>
622e120bd27Smrg	</varlistentry>
623e120bd27Smrg      </variablelist>
624e120bd27Smrg
625e120bd27Smrg      <indexterm zone="XmuClientWindow">
626e120bd27Smrg	<primary><property>WM_STATE</property></primary>
627e120bd27Smrg      </indexterm>
628e120bd27SmrgThis function finds a window, at or below the specified window, which has a
629e120bd27Smrg<property>WM_STATE</property> property.  If such a window is found, it is
630e120bd27Smrgreturned, otherwise the
631e120bd27Smrgargument window is returned.
632e120bd27Smrg    </para>
633e120bd27Smrg
634e120bd27Smrg    <para id="XmuUpdateMapHints">
635e120bd27Smrg      <indexterm zone="XmuUpdateMapHints">
636e120bd27Smrg	<primary><function>XmuUpdateMapHints</function></primary>
637e120bd27Smrg      </indexterm>
638e120bd27Smrg      <funcsynopsis>
639e120bd27Smrg	<funcprototype>
640e120bd27Smrg	  <funcdef>Bool <function>XmuUpdateMapHints</function></funcdef>
641e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
642e120bd27Smrg	  <paramdef>Window <parameter>w</parameter></paramdef>
643e120bd27Smrg	  <paramdef>XSizeHints *<parameter>hints</parameter></paramdef>
644e120bd27Smrg	</funcprototype>
645e120bd27Smrg      </funcsynopsis>
646e120bd27Smrg      <variablelist>
647e120bd27Smrg	<varlistentry>
648e120bd27Smrg	  <term><parameter>dpy</parameter></term>
649e120bd27Smrg	  <listitem><para>
650e120bd27Smrgspecifies the connection to the X server
651e120bd27Smrg	    </para></listitem>
652e120bd27Smrg	</varlistentry>
653e120bd27Smrg	<varlistentry>
654e120bd27Smrg	  <term><parameter>win</parameter></term>
655e120bd27Smrg	  <listitem><para>
656e120bd27Smrgspecifies the window
657e120bd27Smrg	    </para></listitem>
658e120bd27Smrg	</varlistentry>
659e120bd27Smrg	<varlistentry>
660e120bd27Smrg	  <term><parameter>hints</parameter></term>
661e120bd27Smrg	  <listitem><para>
662e120bd27Smrgspecifies the new hints, or <symbol>NULL</symbol>
663e120bd27Smrg	    </para></listitem>
664e120bd27Smrg	</varlistentry>
665e120bd27Smrg      </variablelist>
666e120bd27Smrg
667e120bd27SmrgThis function clears the
668e120bd27Smrg<symbol>PPosition</symbol>
669e120bd27Smrgand
670e120bd27Smrg<symbol>PSize</symbol>
671e120bd27Smrgflags and sets the
672e120bd27Smrg<symbol>USPosition</symbol>
673e120bd27Smrgand
674e120bd27Smrg<symbol>USSize</symbol>
675e120bd27Smrgflags in the hints structure, and then stores the hints for the
676e120bd27Smrgwindow using
677e120bd27Smrg      <indexterm zone="XmuUpdateMapHints">
6780cc2eac3Smrg	<primary><olink targetdoc='libX11' targetptr='XSetWMNormalHints'><function>XSetWMNormalHints</function></olink></primary>
679e120bd27Smrg      </indexterm>
6800cc2eac3Smrg<olink targetdoc='libX11' targetptr='XSetWMNormalHints'><function>XSetWMNormalHints</function></olink>
681e120bd27Smrgand returns
682e120bd27Smrg<symbol>True</symbol>.
683e120bd27SmrgIf <symbol>NULL</symbol> is passed for the
684e120bd27Smrghints structure, then the current hints are read back from the window using
685e120bd27Smrg      <indexterm zone="XmuUpdateMapHints">
6860cc2eac3Smrg	<primary><olink targetdoc='libX11' targetptr='XGetWMNormalHints'><function>XGetWMNormalHints</function></olink></primary>
687e120bd27Smrg      </indexterm>
6880cc2eac3Smrg<olink targetdoc='libX11' targetptr='XGetWMNormalHints'><function>XGetWMNormalHints</function></olink>
689e120bd27Smrgand are used instead, and
690e120bd27Smrg<symbol>True</symbol>
691e120bd27Smrgis returned; otherwise
692e120bd27Smrg<symbol>False</symbol>
693e120bd27Smrgis returned.
694e120bd27Smrg    </para>
695e120bd27Smrg
696e120bd27Smrg  </sect1>
697e120bd27Smrg
6980cc2eac3Smrg  <sect1 id='Cursor_Utility_Functions'>
6990cc2eac3Smrg<title>Cursor Utility Functions</title>
700e120bd27Smrg
701e120bd27Smrg    <para>
702e120bd27SmrgTo use the functions defined in this section, you should include the header
703e120bd27Smrgfile
704e120bd27Smrg&lt;<filename class='headerfile'>X11/Xmu/CurUtil.h</filename>&gt;
705e120bd27Smrg<indexterm>
706e120bd27Smrg<primary><filename class='headerfile'>X11/Xmu/CurUtil.h</filename></primary>
707e120bd27Smrg</indexterm>
708e120bd27Smrgand link against the libXmu or libXmuu library.
709e120bd27Smrg    </para>
710e120bd27Smrg
711e120bd27Smrg    <para id="XmuCursorNameToIndex">
712e120bd27Smrg      <indexterm zone="XmuCursorNameToIndex">
713e120bd27Smrg	<primary><function>XmuCursorNameToIndex</function></primary>
714e120bd27Smrg      </indexterm>
715e120bd27Smrg      <funcsynopsis>
716e120bd27Smrg	<funcprototype>
717e120bd27Smrg	  <funcdef>int <function>XmuCursorNameToIndex</function></funcdef>
718e120bd27Smrg	  <paramdef>const char *<parameter>name</parameter></paramdef>
719e120bd27Smrg	</funcprototype>
720e120bd27Smrg      </funcsynopsis>
721e120bd27Smrg      <variablelist>
722e120bd27Smrg	<varlistentry>
723e120bd27Smrg	  <term><parameter>name</parameter></term>
724e120bd27Smrg	  <listitem><para>
725e120bd27Smrgspecifies the name of the cursor
726e120bd27Smrg	    </para></listitem>
727e120bd27Smrg	</varlistentry>
728e120bd27Smrg      </variablelist>
729e120bd27Smrg
730e120bd27SmrgThis function takes the name of a standard cursor and returns its index
731e120bd27Smrgin the standard cursor font.  The cursor names are formed by removing the
732e120bd27Smrg&ldquo;<code>XC_</code>&rdquo; prefix from the cursor defines listed in
733e120bd27SmrgAppendix B of the Xlib
734e120bd27Smrgmanual.
735e120bd27Smrg    </para>
736e120bd27Smrg
737e120bd27Smrg  </sect1>
738e120bd27Smrg
7390cc2eac3Smrg  <sect1 id='Graphics_Functions'>
7400cc2eac3Smrg<title>Graphics Functions</title>
741e120bd27Smrg
742e120bd27Smrg    <para>
743e120bd27SmrgTo use the functions defined in this section, you should include the header
744e120bd27Smrgfile
745e120bd27Smrg&lt;<filename class='headerfile'>X11/Xmu/Drawing.h</filename>&gt;
746e120bd27Smrg<indexterm>
747e120bd27Smrg<primary><filename class='headerfile'>X11/Xmu/Drawing.h</filename></primary>
748e120bd27Smrg</indexterm>
749e120bd27Smrgand link against the libXmu library.
750e120bd27Smrg    </para>
751e120bd27Smrg
752e120bd27Smrg    <para id="XmuDrawRoundedRectangle">
753e120bd27Smrg      <indexterm zone="XmuDrawRoundedRectangle">
754e120bd27Smrg	<primary><function>XmuDrawRoundedRectangle</function></primary>
755e120bd27Smrg      </indexterm>
756e120bd27Smrg      <funcsynopsis>
757e120bd27Smrg	<funcprototype>
758e120bd27Smrg	  <funcdef>void <function>XmuDrawRoundedRectangle</function></funcdef>
759e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
760e120bd27Smrg	  <paramdef>Drawable <parameter>draw</parameter></paramdef>
761e120bd27Smrg	  <paramdef>GC <parameter>gc</parameter></paramdef>
762e120bd27Smrg	  <paramdef>int <parameter>x</parameter></paramdef>
763e120bd27Smrg	  <paramdef>int <parameter>y</parameter></paramdef>
764e120bd27Smrg	  <paramdef>int <parameter>w</parameter></paramdef>
765e120bd27Smrg	  <paramdef>int <parameter>h</parameter></paramdef>
766e120bd27Smrg	  <paramdef>int <parameter>ew</parameter></paramdef>
767e120bd27Smrg	  <paramdef>int <parameter>eh</parameter></paramdef>
768e120bd27Smrg	</funcprototype>
769e120bd27Smrg      </funcsynopsis>
770e120bd27Smrg      <variablelist>
771e120bd27Smrg	<varlistentry>
772e120bd27Smrg	  <term><parameter>dpy</parameter></term>
773e120bd27Smrg	  <listitem><para>
774e120bd27Smrgspecifies the connection to the X server
775e120bd27Smrg	    </para></listitem>
776e120bd27Smrg	</varlistentry>
777e120bd27Smrg	<varlistentry>
778e120bd27Smrg	  <term><parameter>draw</parameter></term>
779e120bd27Smrg	  <listitem><para>
780e120bd27Smrgspecifies the drawable
781e120bd27Smrg	    </para></listitem>
782e120bd27Smrg	</varlistentry>
783e120bd27Smrg	<varlistentry>
784e120bd27Smrg	  <term><parameter>gc</parameter></term>
785e120bd27Smrg	  <listitem><para>
786e120bd27Smrgspecifies the GC
787e120bd27Smrg	    </para></listitem>
788e120bd27Smrg	</varlistentry>
789e120bd27Smrg	<varlistentry>
790e120bd27Smrg	  <term><parameter>x</parameter></term>
791e120bd27Smrg	  <listitem><para>
792e120bd27Smrgspecifies the upper left x coordinate
793e120bd27Smrg	    </para></listitem>
794e120bd27Smrg	</varlistentry>
795e120bd27Smrg	<varlistentry>
796e120bd27Smrg	  <term><parameter>y</parameter></term>
797e120bd27Smrg	  <listitem><para>
798e120bd27Smrgspecifies the upper left y coordinate
799e120bd27Smrg	    </para></listitem>
800e120bd27Smrg	</varlistentry>
801e120bd27Smrg	<varlistentry>
802e120bd27Smrg	  <term><parameter>w</parameter></term>
803e120bd27Smrg	  <listitem><para>
804e120bd27Smrgspecifies the rectangle width
805e120bd27Smrg	    </para></listitem>
806e120bd27Smrg	</varlistentry>
807e120bd27Smrg	<varlistentry>
808e120bd27Smrg	  <term><parameter>h</parameter></term>
809e120bd27Smrg	  <listitem><para>
810e120bd27Smrgspecifies the rectangle height
811e120bd27Smrg	    </para></listitem>
812e120bd27Smrg	</varlistentry>
813e120bd27Smrg	<varlistentry>
814e120bd27Smrg	  <term><parameter>ew</parameter></term>
815e120bd27Smrg	  <listitem><para>
816e120bd27Smrgspecifies the corner width
817e120bd27Smrg	    </para></listitem>
818e120bd27Smrg	</varlistentry>
819e120bd27Smrg	<varlistentry>
820e120bd27Smrg	  <term><parameter>eh</parameter></term>
821e120bd27Smrg	  <listitem><para>
822e120bd27Smrgspecifies the corner height
823e120bd27Smrg	    </para></listitem>
824e120bd27Smrg	</varlistentry>
825e120bd27Smrg      </variablelist>
826e120bd27Smrg
827e120bd27SmrgThis function draws a rounded rectangle, where x, y, w, h are the dimensions
828e120bd27Smrgof the overall rectangle, and ew and eh are the sizes of a bounding box that
829e120bd27Smrgthe corners are drawn inside of; ew should be no more than half of w, and eh
830e120bd27Smrgshould be no more than half of h.  The current GC line attributes control
831e120bd27Smrgall attributes of the line.
832e120bd27Smrg    </para>
833e120bd27Smrg
834e120bd27Smrg    <para id="XmuFillRoundedRectangle">
835e120bd27Smrg      <indexterm zone="XmuFillRoundedRectangle">
836e120bd27Smrg	<primary><function>XmuFillRoundedRectangle</function></primary>
837e120bd27Smrg      </indexterm>
838e120bd27Smrg      <funcsynopsis>
839e120bd27Smrg	<funcprototype>
840e120bd27Smrg	  <funcdef>void <function>XmuFillRoundedRectangle</function></funcdef>
841e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
842e120bd27Smrg	  <paramdef>Drawable <parameter>draw</parameter></paramdef>
843e120bd27Smrg	  <paramdef>GC <parameter>gc</parameter></paramdef>
844e120bd27Smrg	  <paramdef>int <parameter>x</parameter></paramdef>
845e120bd27Smrg	  <paramdef>int <parameter>y</parameter></paramdef>
846e120bd27Smrg	  <paramdef>int <parameter>w</parameter></paramdef>
847e120bd27Smrg	  <paramdef>int <parameter>h</parameter></paramdef>
848e120bd27Smrg	  <paramdef>int <parameter>ew</parameter></paramdef>
849e120bd27Smrg	  <paramdef>int <parameter>eh</parameter></paramdef>
850e120bd27Smrg	</funcprototype>
851e120bd27Smrg      </funcsynopsis>
852e120bd27Smrg      <variablelist>
853e120bd27Smrg	<varlistentry>
854e120bd27Smrg	  <term><parameter>dpy</parameter></term>
855e120bd27Smrg	  <listitem><para>
856e120bd27Smrgspecifies the connection to the X server
857e120bd27Smrg	    </para></listitem>
858e120bd27Smrg	</varlistentry>
859e120bd27Smrg	<varlistentry>
860e120bd27Smrg	  <term><parameter>draw</parameter></term>
861e120bd27Smrg	  <listitem><para>
862e120bd27Smrgspecifies the drawable
863e120bd27Smrg	    </para></listitem>
864e120bd27Smrg	</varlistentry>
865e120bd27Smrg	<varlistentry>
866e120bd27Smrg	  <term><parameter>gc</parameter></term>
867e120bd27Smrg	  <listitem><para>
868e120bd27Smrgspecifies the GC
869e120bd27Smrg	    </para></listitem>
870e120bd27Smrg	</varlistentry>
871e120bd27Smrg	<varlistentry>
872e120bd27Smrg	  <term><parameter>x</parameter></term>
873e120bd27Smrg	  <listitem><para>
874e120bd27Smrgspecifies the upper left x coordinate
875e120bd27Smrg	    </para></listitem>
876e120bd27Smrg	</varlistentry>
877e120bd27Smrg	<varlistentry>
878e120bd27Smrg	  <term><parameter>y</parameter></term>
879e120bd27Smrg	  <listitem><para>
880e120bd27Smrgspecifies the upper left y coordinate
881e120bd27Smrg	    </para></listitem>
882e120bd27Smrg	</varlistentry>
883e120bd27Smrg	<varlistentry>
884e120bd27Smrg	  <term><parameter>w</parameter></term>
885e120bd27Smrg	  <listitem><para>
886e120bd27Smrgspecifies the rectangle width
887e120bd27Smrg	    </para></listitem>
888e120bd27Smrg	</varlistentry>
889e120bd27Smrg	<varlistentry>
890e120bd27Smrg	  <term><parameter>h</parameter></term>
891e120bd27Smrg	  <listitem><para>
892e120bd27Smrgspecifies the rectangle height
893e120bd27Smrg	    </para></listitem>
894e120bd27Smrg	</varlistentry>
895e120bd27Smrg	<varlistentry>
896e120bd27Smrg	  <term><parameter>ew</parameter></term>
897e120bd27Smrg	  <listitem><para>
898e120bd27Smrgspecifies the corner width
899e120bd27Smrg	    </para></listitem>
900e120bd27Smrg	</varlistentry>
901e120bd27Smrg	<varlistentry>
902e120bd27Smrg	  <term><parameter>eh</parameter></term>
903e120bd27Smrg	  <listitem><para>
904e120bd27Smrgspecifies the corner height
905e120bd27Smrg	    </para></listitem>
906e120bd27Smrg	</varlistentry>
907e120bd27Smrg      </variablelist>
908e120bd27Smrg
909e120bd27SmrgThis function draws a filled rounded rectangle, where x, y, w, h are the
910e120bd27Smrgdimensions of the overall rectangle, and ew and eh are the sizes of a
911e120bd27Smrgbounding box that the corners are drawn inside of; ew should be no more than
912e120bd27Smrghalf of w, and eh should be no more than half of h.  The current GC fill
913e120bd27Smrgsettings control all attributes of the fill contents.
914e120bd27Smrg      </para>
915e120bd27Smrg
916e120bd27Smrg    <para id="XmuDrawLogo">
917e120bd27Smrg      <indexterm zone="XmuDrawLogo">
918e120bd27Smrg	<primary><function>XmuDrawLogo</function></primary>
919e120bd27Smrg      </indexterm>
920e120bd27Smrg      <funcsynopsis>
921e120bd27Smrg	<funcprototype>
922e120bd27Smrg	  <funcdef><function>XmuDrawLogo</function></funcdef>
923e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
924e120bd27Smrg	  <paramdef>Drawable <parameter>drawable</parameter></paramdef>
925e120bd27Smrg	  <paramdef>GC <parameter>gcFore</parameter></paramdef>
926e120bd27Smrg	  <paramdef>GC <parameter>gcBack</parameter></paramdef>
927e120bd27Smrg	  <paramdef>int <parameter>x</parameter></paramdef>
928e120bd27Smrg	  <paramdef>int <parameter>y</parameter></paramdef>
929e120bd27Smrg	  <paramdef>unsigned int <parameter>width</parameter></paramdef>
930e120bd27Smrg	  <paramdef>unsigned int <parameter>height</parameter></paramdef>
931e120bd27Smrg	</funcprototype>
932e120bd27Smrg      </funcsynopsis>
933e120bd27Smrg      <variablelist>
934e120bd27Smrg	<varlistentry>
935e120bd27Smrg	  <term><parameter>dpy</parameter></term>
936e120bd27Smrg	  <listitem><para>
937e120bd27Smrgspecifies the connection to the X server
938e120bd27Smrg	    </para></listitem>
939e120bd27Smrg	</varlistentry>
940e120bd27Smrg	<varlistentry>
941e120bd27Smrg	  <term><parameter>drawable</parameter></term>
942e120bd27Smrg	  <listitem><para>
943e120bd27Smrgspecifies the drawable
944e120bd27Smrg	    </para></listitem>
945e120bd27Smrg	</varlistentry>
946e120bd27Smrg	<varlistentry>
947e120bd27Smrg	  <term><parameter>gcFore</parameter></term>
948e120bd27Smrg	  <listitem><para>
949e120bd27Smrgspecifies the foreground GC
950e120bd27Smrg	    </para></listitem>
951e120bd27Smrg	</varlistentry>
952e120bd27Smrg	<varlistentry>
953e120bd27Smrg	  <term><parameter>gcBack</parameter></term>
954e120bd27Smrg	  <listitem><para>
955e120bd27Smrgspecifies the background GC
956e120bd27Smrg	    </para></listitem>
957e120bd27Smrg	</varlistentry>
958e120bd27Smrg	<varlistentry>
959e120bd27Smrg	  <term><parameter>x</parameter></term>
960e120bd27Smrg	  <listitem><para>
961e120bd27Smrgspecifies the upper left x coordinate
962e120bd27Smrg	    </para></listitem>
963e120bd27Smrg	</varlistentry>
964e120bd27Smrg	<varlistentry>
965e120bd27Smrg	  <term><parameter>y</parameter></term>
966e120bd27Smrg	  <listitem><para>
967e120bd27Smrgspecifies the upper left y coordinate
968e120bd27Smrg	    </para></listitem>
969e120bd27Smrg	</varlistentry>
970e120bd27Smrg	<varlistentry>
971e120bd27Smrg	  <term><parameter>width</parameter></term>
972e120bd27Smrg	  <listitem><para>
973e120bd27Smrgspecifies the logo width
974e120bd27Smrg	    </para></listitem>
975e120bd27Smrg	</varlistentry>
976e120bd27Smrg	<varlistentry>
977e120bd27Smrg	  <term><parameter>height</parameter></term>
978e120bd27Smrg	  <listitem><para>
979e120bd27Smrgspecifies the logo height
980e120bd27Smrg	    </para></listitem>
981e120bd27Smrg	</varlistentry>
982e120bd27Smrg      </variablelist>
983e120bd27Smrg
9840cc2eac3SmrgThis function draws the &ldquo;official&rdquo; X Window System logo
9850cc2eac3Smrg(<xref linkend="xlogo"/>).  The bounding box
9860cc2eac3Smrgof the logo in the drawable is given by x, y, width, and height.  The logo
9870cc2eac3Smrgitself is filled using gcFore, and the rest of the rectangle is filled using
9880cc2eac3SmrggcBack.
9890cc2eac3Smrg    </para>
9900cc2eac3Smrg      <figure id="xlogo" pgwide="0">
991e120bd27Smrg	<title>The X Logo</title>
992e120bd27Smrg	<mediaobject>
993e120bd27Smrg	  <imageobject>
994e120bd27Smrg	    <imagedata id="xlogo-svg" format="SVG" fileref="xlogo.svg"/>
995e120bd27Smrg	  </imageobject>
996e120bd27Smrg	</mediaobject>
997e120bd27Smrg      </figure>
998e120bd27Smrg    <para id="XmuCreateStippledPixmap">
999e120bd27Smrg      <indexterm zone="XmuCreateStippledPixmap">
1000e120bd27Smrg	<primary><function>XmuCreateStippledPixmap</function></primary>
1001e120bd27Smrg      </indexterm>
1002e120bd27Smrg      <funcsynopsis>
1003e120bd27Smrg	<funcprototype>
1004e120bd27Smrg	  <funcdef>Pixmap <function>XmuCreateStippledPixmap</function></funcdef>
1005e120bd27Smrg	  <paramdef>Screen *<parameter>screen</parameter></paramdef>
1006e120bd27Smrg	  <paramdef>Pixel <parameter>fore</parameter></paramdef>
1007e120bd27Smrg	  <paramdef>Pixel <parameter>back</parameter></paramdef>
1008e120bd27Smrg	  <paramdef>unsigned int <parameter>depth</parameter></paramdef>
1009e120bd27Smrg	</funcprototype>
1010e120bd27Smrg      </funcsynopsis>
1011e120bd27Smrg      <variablelist>
1012e120bd27Smrg	<varlistentry>
1013e120bd27Smrg	  <term><parameter>screen</parameter></term>
1014e120bd27Smrg	  <listitem><para>
1015e120bd27Smrgspecifies the screen the pixmap is created on
1016e120bd27Smrg	    </para></listitem>
1017e120bd27Smrg	</varlistentry>
1018e120bd27Smrg	<varlistentry>
1019e120bd27Smrg	  <term><parameter>fore</parameter></term>
1020e120bd27Smrg	  <listitem><para>
1021e120bd27Smrgspecifies the foreground pixel value
1022e120bd27Smrg	    </para></listitem>
1023e120bd27Smrg	</varlistentry>
1024e120bd27Smrg	<varlistentry>
1025e120bd27Smrg	  <term><parameter>back</parameter></term>
1026e120bd27Smrg	  <listitem><para>
1027e120bd27Smrgspecifies the background pixel value
1028e120bd27Smrg	    </para></listitem>
1029e120bd27Smrg	</varlistentry>
1030e120bd27Smrg	<varlistentry>
1031e120bd27Smrg	  <term><parameter>depth</parameter></term>
1032e120bd27Smrg	  <listitem><para>
1033e120bd27Smrgspecifies the depth of the pixmap
1034e120bd27Smrg	    </para></listitem>
1035e120bd27Smrg	</varlistentry>
1036e120bd27Smrg      </variablelist>
1037e120bd27Smrg
1038e120bd27SmrgThis function creates a two pixel by one pixel stippled pixmap of specified
1039e120bd27Smrgdepth on the specified screen.  The pixmap is cached so that multiple
1040e120bd27Smrgrequests share the same pixmap.  The pixmap should be freed with
1041e120bd27Smrg<function>XmuReleaseStippledPixmap</function>
1042e120bd27Smrgto maintain correct reference counts.
1043e120bd27Smrg    </para>
1044e120bd27Smrg
1045e120bd27Smrg    <para id="XmuReleaseStippledPixmap">
1046e120bd27Smrg      <indexterm zone="XmuReleaseStippledPixmap">
1047e120bd27Smrg	<primary><function>XmuReleaseStippledPixmap</function></primary>
1048e120bd27Smrg      </indexterm>
1049e120bd27Smrg      <funcsynopsis>
1050e120bd27Smrg	<funcprototype>
1051e120bd27Smrg	  <funcdef>void <function>XmuReleaseStippledPixmap</function></funcdef>
1052e120bd27Smrg	  <paramdef>Screen *<parameter>screen</parameter></paramdef>
1053e120bd27Smrg	  <paramdef>Pixmap <parameter>pixmap</parameter></paramdef>
1054e120bd27Smrg	</funcprototype>
1055e120bd27Smrg      </funcsynopsis>
1056e120bd27Smrg      <variablelist>
1057e120bd27Smrg	<varlistentry>
1058e120bd27Smrg	  <term><parameter>screen</parameter></term>
1059e120bd27Smrg	  <listitem><para>
1060e120bd27Smrgspecifies the screen the pixmap was created on
1061e120bd27Smrg	    </para></listitem>
1062e120bd27Smrg	</varlistentry>
1063e120bd27Smrg	<varlistentry>
1064e120bd27Smrg	  <term><parameter>pixmap</parameter></term>
1065e120bd27Smrg	  <listitem><para>
1066e120bd27Smrgspecifies the pixmap to free
1067e120bd27Smrg	    </para></listitem>
1068e120bd27Smrg	</varlistentry>
1069e120bd27Smrg      </variablelist>
1070e120bd27Smrg
1071e120bd27SmrgThis function frees a pixmap created with
1072e120bd27Smrg<function>XmuCreateStippledPixmap</function>.
1073e120bd27Smrg    </para>
1074e120bd27Smrg
1075e120bd27Smrg    <para id="XmuReadBitmapData">
1076e120bd27Smrg      <indexterm zone="XmuReadBitmapData">
1077e120bd27Smrg	<primary><function>XmuReadBitmapData</function></primary>
1078e120bd27Smrg      </indexterm>
1079e120bd27Smrg      <funcsynopsis>
1080e120bd27Smrg	<funcprototype>
1081e120bd27Smrg	  <funcdef>int <function>XmuReadBitmapData</function></funcdef>
1082e120bd27Smrg	  <paramdef>FILE *<parameter>fstream</parameter></paramdef>
1083e120bd27Smrg	  <paramdef>unsigned int *<parameter>width</parameter></paramdef>
1084e120bd27Smrg	  <paramdef>unsigned int *<parameter>height</parameter></paramdef>
1085e120bd27Smrg	  <paramdef>unsigned char **<parameter>datap</parameter></paramdef>
1086e120bd27Smrg	  <paramdef>int *<parameter>x_hot</parameter></paramdef>
1087e120bd27Smrg	  <paramdef>int *<parameter>y_hot</parameter></paramdef>
1088e120bd27Smrg	</funcprototype>
1089e120bd27Smrg      </funcsynopsis>
1090e120bd27Smrg      <variablelist>
1091e120bd27Smrg	<varlistentry>
1092e120bd27Smrg	  <term><parameter>fstream</parameter></term>
1093e120bd27Smrg	  <listitem><para>
1094e120bd27Smrgspecifies the stream to read from
1095e120bd27Smrg	    </para></listitem>
1096e120bd27Smrg	</varlistentry>
1097e120bd27Smrg	<varlistentry>
1098e120bd27Smrg	  <term><parameter>width</parameter></term>
1099e120bd27Smrg	  <listitem><para>
1100e120bd27Smrgreturns the width of the bitmap
1101e120bd27Smrg	    </para></listitem>
1102e120bd27Smrg	</varlistentry>
1103e120bd27Smrg	<varlistentry>
1104e120bd27Smrg	  <term><parameter>height</parameter></term>
1105e120bd27Smrg	  <listitem><para>
1106e120bd27Smrgreturns the height of the bitmap
1107e120bd27Smrg	    </para></listitem>
1108e120bd27Smrg	</varlistentry>
1109e120bd27Smrg	<varlistentry>
1110e120bd27Smrg	  <term><parameter>datap</parameter></term>
1111e120bd27Smrg	  <listitem><para>
1112e120bd27Smrgreturns the parsed bitmap data
1113e120bd27Smrg	    </para></listitem>
1114e120bd27Smrg	</varlistentry>
1115e120bd27Smrg	<varlistentry>
1116e120bd27Smrg	  <term><parameter>x_hot</parameter></term>
1117e120bd27Smrg	  <listitem><para>
1118e120bd27Smrgreturns the x coordinate of the hotspot
1119e120bd27Smrg	    </para></listitem>
1120e120bd27Smrg	</varlistentry>
1121e120bd27Smrg	<varlistentry>
1122e120bd27Smrg	  <term><parameter>y_hot</parameter></term>
1123e120bd27Smrg	  <listitem><para>
1124e120bd27Smrgreturns the y coordinate of the hotspot
1125e120bd27Smrg	    </para></listitem>
1126e120bd27Smrg	</varlistentry>
1127e120bd27Smrg      </variablelist>
1128e120bd27Smrg
1129e120bd27SmrgThis function reads a standard bitmap file description from the specified
1130e120bd27Smrgstream, and returns the parsed data in a format suitable for passing to
11310cc2eac3Smrg<olink targetdoc='libX11' targetptr='XCreateBitmapFromData'><function>XCreateBitmapFromData</function></olink>.
1132e120bd27SmrgThe return value of the function has the same
1133e120bd27Smrginterpretation as the return value for
11340cc2eac3Smrg<olink targetdoc='libX11' targetptr='XReadBitmapFile'><function>XReadBitmapFile</function></olink>.
1135e120bd27Smrg    </para>
1136e120bd27Smrg
1137e120bd27Smrg    <para id="XmuReadBitmapDataFromFile">
1138e120bd27Smrg      <indexterm zone="XmuReadBitmapDataFromFile">
1139e120bd27Smrg	<primary><function>XmuReadBitmapDataFromFile</function></primary>
1140e120bd27Smrg      </indexterm>
1141e120bd27Smrg      <funcsynopsis>
1142e120bd27Smrg	<funcprototype>
1143e120bd27Smrg	  <funcdef>int <function>XmuReadBitmapDataFromFile</function></funcdef>
1144e120bd27Smrg	  <paramdef>const char *<parameter>filename</parameter></paramdef>
1145e120bd27Smrg	  <paramdef>unsigned int *<parameter>width</parameter></paramdef>
1146e120bd27Smrg	  <paramdef>unsigned int *<parameter>height</parameter></paramdef>
1147e120bd27Smrg	  <paramdef>unsigned char **<parameter>datap</parameter></paramdef>
1148e120bd27Smrg	  <paramdef>int *<parameter>x_hot</parameter></paramdef>
1149e120bd27Smrg	  <paramdef>int *<parameter>y_hot</parameter></paramdef>
1150e120bd27Smrg	</funcprototype>
1151e120bd27Smrg      </funcsynopsis>
1152e120bd27Smrg      <variablelist>
1153e120bd27Smrg	<varlistentry>
1154e120bd27Smrg	  <term><parameter>fstream</parameter></term>
1155e120bd27Smrg	  <listitem><para>
1156e120bd27Smrgspecifies the file to read from
1157e120bd27Smrg	    </para></listitem>
1158e120bd27Smrg	</varlistentry>
1159e120bd27Smrg	<varlistentry>
1160e120bd27Smrg	  <term><parameter>width</parameter></term>
1161e120bd27Smrg	  <listitem><para>
1162e120bd27Smrgreturns the width of the bitmap
1163e120bd27Smrg	    </para></listitem>
1164e120bd27Smrg	</varlistentry>
1165e120bd27Smrg	<varlistentry>
1166e120bd27Smrg	  <term><parameter>height</parameter></term>
1167e120bd27Smrg	  <listitem><para>
1168e120bd27Smrgreturns the height of the bitmap
1169e120bd27Smrg	    </para></listitem>
1170e120bd27Smrg	</varlistentry>
1171e120bd27Smrg	<varlistentry>
1172e120bd27Smrg	  <term><parameter>datap</parameter></term>
1173e120bd27Smrg	  <listitem><para>
1174e120bd27Smrgreturns the parsed bitmap data
1175e120bd27Smrg	    </para></listitem>
1176e120bd27Smrg	</varlistentry>
1177e120bd27Smrg	<varlistentry>
1178e120bd27Smrg	  <term><parameter>x_hot</parameter></term>
1179e120bd27Smrg	  <listitem><para>
1180e120bd27Smrgreturns the x coordinate of the hotspot
1181e120bd27Smrg	    </para></listitem>
1182e120bd27Smrg	</varlistentry>
1183e120bd27Smrg	<varlistentry>
1184e120bd27Smrg	  <term><parameter>y_hot</parameter></term>
1185e120bd27Smrg	  <listitem><para>
1186e120bd27Smrgreturns the y coordinate of the hotspot
1187e120bd27Smrg	    </para></listitem>
1188e120bd27Smrg	</varlistentry>
1189e120bd27Smrg      </variablelist>
1190e120bd27Smrg
1191e120bd27SmrgThis function reads a standard bitmap file description from the specified
1192e120bd27Smrgfile, and returns the parsed data in a format suitable for passing to
11930cc2eac3Smrg<olink targetdoc='libX11' targetptr='XCreateBitmapFromData'><function>XCreateBitmapFromData</function></olink>.
1194e120bd27SmrgThe return value of the function has the same
1195e120bd27Smrginterpretation as the return value for
11960cc2eac3Smrg<olink targetdoc='libX11' targetptr='XReadBitmapFile'><function>XReadBitmapFile</function></olink>.
1197e120bd27Smrg    </para>
1198e120bd27Smrg
1199e120bd27Smrg    <para id="XmuLocateBitmapFile">
1200e120bd27Smrg      <indexterm zone="XmuLocateBitmapFile">
1201e120bd27Smrg	<primary><function>XmuLocateBitmapFile</function></primary>
1202e120bd27Smrg      </indexterm>
1203e120bd27Smrg      <funcsynopsis>
1204e120bd27Smrg	<funcprototype>
1205e120bd27Smrg	  <funcdef>Pixmap <function>XmuLocateBitmapFile</function></funcdef>
1206e120bd27Smrg	  <paramdef>Screen *<parameter>screen</parameter></paramdef>
1207e120bd27Smrg	  <paramdef>const char *<parameter>name</parameter></paramdef>
1208e120bd27Smrg	  <paramdef>char *<parameter>srcname</parameter></paramdef>
1209e120bd27Smrg	  <paramdef>int <parameter>srcnamelen</parameter></paramdef>
1210e120bd27Smrg	  <paramdef>int *<parameter>widthp</parameter></paramdef>
1211e120bd27Smrg	  <paramdef>int *<parameter>heightp</parameter></paramdef>
1212e120bd27Smrg	  <paramdef>int *<parameter>xhotp</parameter></paramdef>
1213e120bd27Smrg	  <paramdef>int *<parameter>yhotp</parameter></paramdef>
1214e120bd27Smrg	</funcprototype>
1215e120bd27Smrg      </funcsynopsis>
1216e120bd27Smrg      <variablelist>
1217e120bd27Smrg	<varlistentry>
1218e120bd27Smrg	  <term><parameter>screen</parameter></term>
1219e120bd27Smrg	  <listitem><para>
1220e120bd27Smrgspecifies the screen the pixmap is created on
1221e120bd27Smrg	    </para></listitem>
1222e120bd27Smrg	</varlistentry>
1223e120bd27Smrg	<varlistentry>
1224e120bd27Smrg	  <term><parameter>name</parameter></term>
1225e120bd27Smrg	  <listitem><para>
1226e120bd27Smrgspecifies the file to read from
1227e120bd27Smrg	    </para></listitem>
1228e120bd27Smrg	</varlistentry>
1229e120bd27Smrg	<varlistentry>
1230e120bd27Smrg	  <term><parameter>srcname</parameter></term>
1231e120bd27Smrg	  <listitem><para>
1232e120bd27Smrgreturns the full filename of the bitmap
1233e120bd27Smrg	    </para></listitem>
1234e120bd27Smrg	</varlistentry>
1235e120bd27Smrg	<varlistentry>
1236e120bd27Smrg	  <term><parameter>srcnamelen</parameter></term>
1237e120bd27Smrg	  <listitem><para>
1238e120bd27Smrgspecifies the length of the srcname buffer
1239e120bd27Smrg	    </para></listitem>
1240e120bd27Smrg	</varlistentry>
1241e120bd27Smrg	<varlistentry>
1242e120bd27Smrg	  <term><parameter>width</parameter></term>
1243e120bd27Smrg	  <listitem><para>
1244e120bd27Smrgreturns the width of the bitmap
1245e120bd27Smrg	    </para></listitem>
1246e120bd27Smrg	</varlistentry>
1247e120bd27Smrg	<varlistentry>
1248e120bd27Smrg	  <term><parameter>height</parameter></term>
1249e120bd27Smrg	  <listitem><para>
1250e120bd27Smrgreturns the height of the bitmap
1251e120bd27Smrg	    </para></listitem>
1252e120bd27Smrg	</varlistentry>
1253e120bd27Smrg	<varlistentry>
1254e120bd27Smrg	  <term><parameter>xhotp</parameter></term>
1255e120bd27Smrg	  <listitem><para>
1256e120bd27Smrgreturns the x coordinate of the hotspot
1257e120bd27Smrg	    </para></listitem>
1258e120bd27Smrg	</varlistentry>
1259e120bd27Smrg	<varlistentry>
1260e120bd27Smrg	  <term><parameter>yhotp</parameter></term>
1261e120bd27Smrg	  <listitem><para>
1262e120bd27Smrgreturns the y coordinate of the hotspot
1263e120bd27Smrg	    </para></listitem>
1264e120bd27Smrg	</varlistentry>
1265e120bd27Smrg      </variablelist>
1266e120bd27Smrg
1267e120bd27SmrgThis function reads a file in standard bitmap file format, using
12680cc2eac3Smrg<olink targetdoc='libX11' targetptr='XReadBitmapFile'><function>XReadBitmapFile</function></olink>,
1269e120bd27Smrgand returns the created bitmap.  The filename may be
1270e120bd27Smrgabsolute, or relative to the global resource named
1271e120bd27Smrg      <indexterm zone="XmuLocateBitmapFile">
1272e120bd27Smrg	<primary><systemitem class="resource">bitmapFilePath</systemitem></primary>
1273e120bd27Smrg      </indexterm>
1274e120bd27Smrg<systemitem class="resource">bitmapFilePath</systemitem> with class
1275e120bd27SmrgBitmapFilePath.  If the resource is not defined, the default value is the
1276e120bd27Smrgbuild symbol BITMAPDIR, which is typically
1277e120bd27Smrg"<filename class="directory">/usr/include/X11/bitmaps</filename>".
1278e120bd27SmrgIf <parameter>srcnamelen</parameter> is greater than zero and
1279e120bd27Smrg<parameter>srcname</parameter> is not <symbol>NULL</symbol>,
1280e120bd27Smrgthe null terminated filename will be copied into
1281e120bd27Smrg<parameter>srcname</parameter>.  The size and hotspot of the bitmap are
1282e120bd27Smrgalso returned.
1283e120bd27Smrg    </para>
1284e120bd27Smrg
1285e120bd27Smrg    <para id="XmuCreatePixmapFromBitmap">
1286e120bd27Smrg      <indexterm zone="XmuCreatePixmapFromBitmap">
1287e120bd27Smrg	<primary><function>XmuCreatePixmapFromBitmap</function></primary>
1288e120bd27Smrg      </indexterm>
1289e120bd27Smrg      <funcsynopsis>
1290e120bd27Smrg	<funcprototype>
1291e120bd27Smrg	  <funcdef>Pixmap <function>XmuCreatePixmapFromBitmap</function></funcdef>
1292e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
1293e120bd27Smrg	  <paramdef>Drawable <parameter>d</parameter></paramdef>
1294e120bd27Smrg	  <paramdef>Pixmap <parameter>bitmap</parameter></paramdef>
1295e120bd27Smrg	  <paramdef>unsigned int <parameter>width</parameter></paramdef>
1296e120bd27Smrg	  <paramdef>unsigned int <parameter>height</parameter></paramdef>
1297e120bd27Smrg	  <paramdef>unsigned int <parameter>depth</parameter></paramdef>
1298e120bd27Smrg	  <paramdef>unsigned long <parameter>fore</parameter></paramdef>
1299e120bd27Smrg	  <paramdef>unsigned long <parameter>back</parameter></paramdef>
1300e120bd27Smrg	</funcprototype>
1301e120bd27Smrg      </funcsynopsis>
1302e120bd27Smrg      <variablelist>
1303e120bd27Smrg	<varlistentry>
1304e120bd27Smrg	  <term><parameter>dpy</parameter></term>
1305e120bd27Smrg	  <listitem><para>
1306e120bd27Smrgspecifies the connection to the X server
1307e120bd27Smrg	    </para></listitem>
1308e120bd27Smrg	</varlistentry>
1309e120bd27Smrg	<varlistentry>
1310e120bd27Smrg	  <term><parameter>screen</parameter></term>
1311e120bd27Smrg	  <listitem><para>
1312e120bd27Smrgspecifies the screen the pixmap is created on
1313e120bd27Smrg	    </para></listitem>
1314e120bd27Smrg	</varlistentry>
1315e120bd27Smrg	<varlistentry>
1316e120bd27Smrg	  <term><parameter>bitmap</parameter></term>
1317e120bd27Smrg	  <listitem><para>
1318e120bd27Smrgspecifies the bitmap source
1319e120bd27Smrg	    </para></listitem>
1320e120bd27Smrg	</varlistentry>
1321e120bd27Smrg	<varlistentry>
1322e120bd27Smrg	  <term><parameter>width</parameter></term>
1323e120bd27Smrg	  <listitem><para>
1324e120bd27Smrgspecifies the width of the pixmap
1325e120bd27Smrg	    </para></listitem>
1326e120bd27Smrg	</varlistentry>
1327e120bd27Smrg	<varlistentry>
1328e120bd27Smrg	  <term><parameter>height</parameter></term>
1329e120bd27Smrg	  <listitem><para>
1330e120bd27Smrgspecifies the height of the pixmap
1331e120bd27Smrg	    </para></listitem>
1332e120bd27Smrg	</varlistentry>
1333e120bd27Smrg	<varlistentry>
1334e120bd27Smrg	  <term><parameter>depth</parameter></term>
1335e120bd27Smrg	  <listitem><para>
1336e120bd27Smrgspecifies the depth of the pixmap
1337e120bd27Smrg	    </para></listitem>
1338e120bd27Smrg	</varlistentry>
1339e120bd27Smrg	<varlistentry>
1340e120bd27Smrg	  <term><parameter>fore</parameter></term>
1341e120bd27Smrg	  <listitem><para>
1342e120bd27Smrgspecifies the foreground pixel value
1343e120bd27Smrg	    </para></listitem>
1344e120bd27Smrg	</varlistentry>
1345e120bd27Smrg	<varlistentry>
1346e120bd27Smrg	  <term><parameter>back</parameter></term>
1347e120bd27Smrg	  <listitem><para>
1348e120bd27Smrgspecifies the background pixel value
1349e120bd27Smrg	    </para></listitem>
1350e120bd27Smrg	</varlistentry>
1351e120bd27Smrg      </variablelist>
1352e120bd27Smrg
1353e120bd27SmrgThis function creates a pixmap of the specified width, height, and depth, on
1354e120bd27Smrgthe same screen as the specified drawable, and then performs an
13550cc2eac3Smrg<olink targetdoc='libX11' targetptr='XCopyPlane'><function>XCopyPlane</function></olink>
1356e120bd27Smrgfrom the specified bitmap to the pixmap,
1357e120bd27Smrgusing the specified foreground and background pixel values.
1358e120bd27SmrgThe created pixmap is returned.
1359e120bd27Smrg    </para>
1360e120bd27Smrg
1361e120bd27Smrg  </sect1>
1362e120bd27Smrg
13630cc2eac3Smrg  <sect1 id='Selection_Functions'>
13640cc2eac3Smrg<title>Selection Functions</title>
1365e120bd27Smrg
1366e120bd27Smrg    <para>
1367e120bd27SmrgTo use the functions defined in this section, you should include the header
1368e120bd27Smrgfile
1369e120bd27Smrg&lt;<filename class='headerfile'>X11/Xmu/StdSel.h</filename>&gt;
1370e120bd27Smrg<indexterm>
1371e120bd27Smrg<primary><filename class='headerfile'>X11/Xmu/StdSel.h</filename></primary>
1372e120bd27Smrg</indexterm>
1373e120bd27Smrgand link against the libXmu library.
1374e120bd27Smrg    </para>
1375e120bd27Smrg
1376e120bd27Smrg    <para id="XmuConvertStandardSelection">
1377e120bd27Smrg      <indexterm zone="XmuConvertStandardSelection">
1378e120bd27Smrg	<primary><function>XmuConvertStandardSelection</function></primary>
1379e120bd27Smrg      </indexterm>
1380e120bd27Smrg      <funcsynopsis>
1381e120bd27Smrg	<funcprototype>
1382e120bd27Smrg	  <funcdef>Boolean <function>XmuConvertStandardSelection</function></funcdef>
1383e120bd27Smrg	  <paramdef>Widget <parameter>w</parameter></paramdef>
1384e120bd27Smrg	  <paramdef>Time <parameter>time</parameter></paramdef>
1385e120bd27Smrg	  <paramdef>Atom *<parameter>selection</parameter></paramdef>
1386e120bd27Smrg	  <paramdef>Atom *<parameter>target</parameter></paramdef>
1387e120bd27Smrg	  <paramdef>Atom *<parameter>type</parameter></paramdef>
1388e120bd27Smrg	  <paramdef>XPointer <parameter>value</parameter></paramdef>
1389e120bd27Smrg	  <paramdef>unsigned long *<parameter>length</parameter></paramdef>
1390e120bd27Smrg	  <paramdef>int *<parameter>format</parameter></paramdef>
1391e120bd27Smrg	</funcprototype>
1392e120bd27Smrg      </funcsynopsis>
1393e120bd27Smrg      <variablelist>
1394e120bd27Smrg	<varlistentry>
1395e120bd27Smrg	  <term><parameter>w</parameter></term>
1396e120bd27Smrg	  <listitem><para>
1397e120bd27Smrgspecifies the widget which currently owns the selection
1398e120bd27Smrg	    </para></listitem>
1399e120bd27Smrg	</varlistentry>
1400e120bd27Smrg	<varlistentry>
1401e120bd27Smrg	  <term><parameter>time</parameter></term>
1402e120bd27Smrg	  <listitem><para>
1403e120bd27Smrgspecifies the time at which the selection was established
1404e120bd27Smrg	    </para></listitem>
1405e120bd27Smrg	</varlistentry>
1406e120bd27Smrg	<varlistentry>
1407e120bd27Smrg	  <term><parameter>selection</parameter></term>
1408e120bd27Smrg	  <listitem><para>
1409e120bd27Smrgthis argument is ignored
1410e120bd27Smrg	    </para></listitem>
1411e120bd27Smrg	</varlistentry>
1412e120bd27Smrg	<varlistentry>
1413e120bd27Smrg	  <term><parameter>target</parameter></term>
1414e120bd27Smrg	  <listitem><para>
1415e120bd27Smrgspecifies the target type of the selection
1416e120bd27Smrg	    </para></listitem>
1417e120bd27Smrg	</varlistentry>
1418e120bd27Smrg	<varlistentry>
1419e120bd27Smrg	  <term><parameter>type</parameter></term>
1420e120bd27Smrg	  <listitem><para>
1421e120bd27Smrgreturns the property type of the converted value
1422e120bd27Smrg	    </para></listitem>
1423e120bd27Smrg	</varlistentry>
1424e120bd27Smrg	<varlistentry>
1425e120bd27Smrg	  <term><parameter>value</parameter></term>
1426e120bd27Smrg	  <listitem><para>
1427e120bd27Smrgreturns the converted value
1428e120bd27Smrg	    </para></listitem>
1429e120bd27Smrg	</varlistentry>
1430e120bd27Smrg	<varlistentry>
1431e120bd27Smrg	  <term><parameter>length</parameter></term>
1432e120bd27Smrg	  <listitem><para>
1433e120bd27Smrgreturns the number of elements in the converted value
1434e120bd27Smrg	    </para></listitem>
1435e120bd27Smrg	</varlistentry>
1436e120bd27Smrg	<varlistentry>
1437e120bd27Smrg	  <term><parameter>format</parameter></term>
1438e120bd27Smrg	  <listitem><para>
1439e120bd27Smrgreturns the size in bits of the elements</para>
1440e120bd27Smrg	  </listitem>
1441e120bd27Smrg	</varlistentry>
1442e120bd27Smrg      </variablelist>
1443e120bd27Smrg
1444e120bd27SmrgThis function converts the following standard selections: CLASS,
14459dedec0cSmrgCLIENT_WINDOW, DECNET_ADDRESS, HOSTNAME, NAME, OWNER_OS,
1446e120bd27SmrgTARGETS, TIMESTAMP, and USER.  It returns
1447e120bd27Smrg<symbol>True</symbol>
1448e120bd27Smrgif the conversion was successful, else it returns
1449e120bd27Smrg<symbol>False</symbol>.
1450e120bd27Smrg    </para>
1451e120bd27Smrg  </sect1>
1452e120bd27Smrg
14530cc2eac3Smrg  <sect1 id='Type_Converter_Functions'>
14540cc2eac3Smrg<title>Type Converter Functions</title>
1455e120bd27Smrg
1456e120bd27Smrg    <para>
1457e120bd27SmrgTo use the functions defined in this section, you should include the header
1458e120bd27Smrgfile
1459e120bd27Smrg&lt;<filename class='headerfile'>X11/Xmu/Converters.h</filename>&gt;
1460e120bd27Smrg<indexterm>
1461e120bd27Smrg<primary><filename class='headerfile'>X11/Xmu/Converters.h</filename></primary>
1462e120bd27Smrg</indexterm>
1463e120bd27Smrgand link against the libXmu library.
1464e120bd27Smrg    </para>
1465e120bd27Smrg
1466e120bd27Smrg    <para id="XmuCvtFunctionToCallback">
1467e120bd27Smrg      <indexterm zone="XmuCvtFunctionToCallback">
1468e120bd27Smrg	<primary><function>XmuCvtFunctionToCallback</function></primary>
1469e120bd27Smrg      </indexterm>
1470e120bd27Smrg      <funcsynopsis>
1471e120bd27Smrg	<funcprototype>
1472e120bd27Smrg	  <funcdef>void <function>XmuCvtFunctionToCallback</function></funcdef>
1473e120bd27Smrg	  <paramdef>XrmValue *<parameter>args</parameter></paramdef>
1474e120bd27Smrg	  <paramdef>Cardinal *<parameter>num_args</parameter></paramdef>
1475e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>fromVal</parameter></paramdef>
1476e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>toVal</parameter></paramdef>
1477e120bd27Smrg	</funcprototype>
1478e120bd27Smrg      </funcsynopsis>
1479e120bd27Smrg      <variablelist>
1480e120bd27Smrg	<varlistentry>
1481e120bd27Smrg	  <term><parameter>args</parameter></term>
1482e120bd27Smrg	  <listitem><para>
1483e120bd27Smrgthis argument is ignored
1484e120bd27Smrg	    </para></listitem>
1485e120bd27Smrg	</varlistentry>
1486e120bd27Smrg	<varlistentry>
1487e120bd27Smrg	  <term><parameter>num_args</parameter></term>
1488e120bd27Smrg	  <listitem><para>
1489e120bd27Smrgthis argument is ignored
1490e120bd27Smrg	    </para></listitem>
1491e120bd27Smrg	</varlistentry>
1492e120bd27Smrg	<varlistentry>
1493e120bd27Smrg	  <term><parameter>fromVal</parameter></term>
1494e120bd27Smrg	  <listitem><para>
1495e120bd27Smrgthe function to convert
1496e120bd27Smrg	    </para></listitem>
1497e120bd27Smrg	</varlistentry>
1498e120bd27Smrg	<varlistentry>
1499e120bd27Smrg	  <term><parameter>toVal</parameter></term>
1500e120bd27Smrg	  <listitem><para>
1501e120bd27Smrgthe place to store the converted value
1502e120bd27Smrg	    </para></listitem>
1503e120bd27Smrg	</varlistentry>
1504e120bd27Smrg      </variablelist>
1505e120bd27Smrg
1506e120bd27SmrgThis function converts a callback procedure to a callback list containing
1507e120bd27Smrgthat procedure, with <symbol>NULL</symbol> closure data.  To use this converter, include the
1508e120bd27Smrgfollowing in your widget's ClassInitialize procedure:
1509e120bd27Smrg
1510e120bd27Smrg      <programlisting>
1511e120bd27SmrgXtAddConverter(XtRCallProc, XtRCallback, XmuCvtFunctionToCallback, NULL, 0);
1512e120bd27Smrg      </programlisting>
1513e120bd27Smrg    </para>
1514e120bd27Smrg
1515e120bd27Smrg    <para id="XmuCvtStringToBackingStore">
1516e120bd27Smrg      <indexterm zone="XmuCvtStringToBackingStore">
1517e120bd27Smrg	<primary><function>XmuCvtStringToBackingStore</function></primary>
1518e120bd27Smrg      </indexterm>
1519e120bd27Smrg      <funcsynopsis>
1520e120bd27Smrg	<funcprototype>
1521e120bd27Smrg	  <funcdef>void <function>XmuCvtStringToBackingStore</function></funcdef>
1522e120bd27Smrg	  <paramdef>XrmValue *<parameter>args</parameter></paramdef>
1523e120bd27Smrg	  <paramdef>Cardinal *<parameter>num_args</parameter></paramdef>
1524e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>fromVal</parameter></paramdef>
1525e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>toVal</parameter></paramdef>
1526e120bd27Smrg	</funcprototype>
1527e120bd27Smrg      </funcsynopsis>
1528e120bd27Smrg      <variablelist>
1529e120bd27Smrg	<varlistentry>
1530e120bd27Smrg	  <term><parameter>args</parameter></term>
1531e120bd27Smrg	  <listitem><para>
1532e120bd27Smrgthis argument is ignored
1533e120bd27Smrg	    </para></listitem>
1534e120bd27Smrg	</varlistentry>
1535e120bd27Smrg	<varlistentry>
1536e120bd27Smrg	  <term><parameter>num_args</parameter></term>
1537e120bd27Smrg	  <listitem><para>
1538e120bd27Smrgthis argument must be a pointer to a Cardinal containing the value 0
1539e120bd27Smrg	    </para></listitem>
1540e120bd27Smrg	</varlistentry>
1541e120bd27Smrg	<varlistentry>
1542e120bd27Smrg	  <term><parameter>fromVal</parameter></term>
1543e120bd27Smrg	  <listitem><para>
1544e120bd27Smrgspecifies the string to convert
1545e120bd27Smrg	    </para></listitem>
1546e120bd27Smrg	</varlistentry>
1547e120bd27Smrg	<varlistentry>
1548e120bd27Smrg	  <term><parameter>toVal</parameter></term>
1549e120bd27Smrg	  <listitem><para>
1550e120bd27Smrgreturns the converted value
1551e120bd27Smrg	    </para></listitem>
1552e120bd27Smrg	</varlistentry>
1553e120bd27Smrg      </variablelist>
1554e120bd27Smrg
1555e120bd27Smrg      <indexterm zone="XmuCvtStringToBackingStore">
1556e120bd27Smrg	<primary>backing-store</primary>
1557e120bd27Smrg      </indexterm>
1558e120bd27SmrgThis function converts a string to a backing-store integer as defined in
1559e120bd27Smrg&lt;<filename class='headerfile'>X11/X.h</filename>&gt;.
1560e120bd27SmrgThe string "notUseful" converts to
1561e120bd27Smrg<symbol>NotUseful</symbol>,
1562e120bd27Smrg"whenMapped" converts to
1563e120bd27Smrg<symbol>WhenMapped</symbol>,
1564e120bd27Smrgand "always" converts to
1565e120bd27Smrg<symbol>Always</symbol>.
1566e120bd27SmrgThe string "default" converts to the value
1567e120bd27Smrg<symbol>Always</symbol> +
1568e120bd27Smrg<symbol>WhenMapped</symbol> +
1569e120bd27Smrg<symbol>NotUseful</symbol>.
1570e120bd27SmrgThe case of the string does not matter.
1571e120bd27SmrgTo use this converter, include the following
1572e120bd27Smrgin your widget's ClassInitialize procedure:
1573e120bd27Smrg
1574e120bd27Smrg      <programlisting>
1575e120bd27SmrgXtAddConverter(XtRString, XtRBackingStore, XmuCvtStringToBackingStore, NULL, 0);
1576e120bd27Smrg      </programlisting>
1577e120bd27Smrg    </para>
1578e120bd27Smrg
1579e120bd27Smrg    <para id="XmuCvtStringToBitmap">
1580e120bd27Smrg      <indexterm zone="XmuCvtStringToBitmap">
1581e120bd27Smrg	<primary><function>XmuCvtStringToBitmap</function></primary>
1582e120bd27Smrg      </indexterm>
1583e120bd27Smrg      <funcsynopsis>
1584e120bd27Smrg	<funcprototype>
1585e120bd27Smrg	  <funcdef>void <function>XmuCvtStringToBitmap</function></funcdef>
1586e120bd27Smrg	  <paramdef>XrmValue *<parameter>args</parameter></paramdef>
1587e120bd27Smrg	  <paramdef>Cardinal *<parameter>num_args</parameter></paramdef>
1588e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>fromVal</parameter></paramdef>
1589e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>toVal</parameter></paramdef>
1590e120bd27Smrg	</funcprototype>
1591e120bd27Smrg      </funcsynopsis>
1592e120bd27Smrg      <variablelist>
1593e120bd27Smrg	<varlistentry>
1594e120bd27Smrg	  <term><parameter>args</parameter></term>
1595e120bd27Smrg	  <listitem><para>
1596e120bd27Smrgthe sole argument specifies the Screen on which to create the bitmap
1597e120bd27Smrg	    </para></listitem>
1598e120bd27Smrg	</varlistentry>
1599e120bd27Smrg	<varlistentry>
1600e120bd27Smrg	  <term><parameter>num_args</parameter></term>
1601e120bd27Smrg	  <listitem><para>
1602e120bd27Smrgmust be the value 1
1603e120bd27Smrg	    </para></listitem>
1604e120bd27Smrg	</varlistentry>
1605e120bd27Smrg	<varlistentry>
1606e120bd27Smrg	  <term><parameter>fromVal</parameter></term>
1607e120bd27Smrg	  <listitem><para>
1608e120bd27Smrgspecifies the string to convert
1609e120bd27Smrg	    </para></listitem>
1610e120bd27Smrg	</varlistentry>
1611e120bd27Smrg	<varlistentry>
1612e120bd27Smrg	  <term><parameter>toVal</parameter></term>
1613e120bd27Smrg	  <listitem><para>
1614e120bd27Smrgreturns the converted value
1615e120bd27Smrg	    </para></listitem>
1616e120bd27Smrg	</varlistentry>
1617e120bd27Smrg      </variablelist>
1618e120bd27Smrg
1619e120bd27Smrg      <indexterm zone="XmuCvtStringToBitmap">
1620e120bd27Smrg	<primary>window manager icons</primary>
1621e120bd27Smrg      </indexterm>
1622e120bd27SmrgThis function creates a bitmap (a Pixmap of depth one) suitable for window
1623e120bd27Smrgmanager icons.  The string argument is the name of a file in standard bitmap
1624e120bd27Smrgfile format.  For the possible filename specifications, see
1625e120bd27Smrg<link linkend="XmuLocateBitmapFile"><function>XmuLocateBitmapFile</function></link>.
1626e120bd27SmrgTo use this converter, include the following in your widget's
1627e120bd27SmrgClassInitialize procedure:
1628e120bd27Smrg
1629e120bd27Smrg      <programlisting>
1630e120bd27Smrgstatic XtConvertArgRec screenConvertArg[] = {
1631e120bd27Smrg  {XtBaseOffset, (XtPointer)XtOffset(Widget, core.screen), sizeof(Screen *)}
1632e120bd27Smrg};
1633e120bd27Smrg
1634e120bd27SmrgXtAddConverter(XtRString, XtRBitmap, XmuCvtStringToBitmap,
1635e120bd27Smrg		 screenConvertArg, XtNumber(screenConvertArg));
1636e120bd27Smrg      </programlisting>
1637e120bd27Smrg    </para>
1638e120bd27Smrg
1639e120bd27Smrg    <para id="XmuCvtStringToColorCursor">
1640e120bd27Smrg      <indexterm zone="XmuCvtStringToColorCursor">
1641e120bd27Smrg	<primary><function>XmuCvtStringToColorCursor</function></primary>
1642e120bd27Smrg      </indexterm>
1643e120bd27Smrg      <funcsynopsis>
1644e120bd27Smrg	<funcprototype>
1645e120bd27Smrg	  <funcdef>Boolean <function>XmuCvtStringToColorCursor</function></funcdef>
1646e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
1647e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>args</parameter></paramdef>
1648e120bd27Smrg	  <paramdef>Cardinal *<parameter>num_args</parameter></paramdef>
1649e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>fromVal</parameter></paramdef>
1650e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>toVal</parameter></paramdef>
1651e120bd27Smrg	  <paramdef>XtPointer *<parameter>data</parameter></paramdef>
1652e120bd27Smrg	</funcprototype>
1653e120bd27Smrg      </funcsynopsis>
1654e120bd27Smrg      <variablelist>
1655e120bd27Smrg	<varlistentry>
1656e120bd27Smrg	  <term><parameter>dpy</parameter></term>
1657e120bd27Smrg	  <listitem><para>
1658e120bd27Smrgspecifies the display to use for conversion warnings
1659e120bd27Smrg	    </para></listitem>
1660e120bd27Smrg	</varlistentry>
1661e120bd27Smrg	<varlistentry>
1662e120bd27Smrg	  <term><parameter>args</parameter></term>
1663e120bd27Smrg	  <listitem><para>
1664e120bd27Smrgspecifies the required conversion arguments
1665e120bd27Smrg	    </para></listitem>
1666e120bd27Smrg	</varlistentry>
1667e120bd27Smrg	<varlistentry>
1668e120bd27Smrg	  <term><parameter>num_args</parameter></term>
1669e120bd27Smrg	  <listitem><para>
1670e120bd27Smrgspecifies the number of required conversion arguments, which is 4
1671e120bd27Smrg	    </para></listitem>
1672e120bd27Smrg	</varlistentry>
1673e120bd27Smrg	<varlistentry>
1674e120bd27Smrg	  <term><parameter>fromVal</parameter></term>
1675e120bd27Smrg	  <listitem><para>
1676e120bd27Smrgspecifies the string to convert
1677e120bd27Smrg	    </para></listitem>
1678e120bd27Smrg	</varlistentry>
1679e120bd27Smrg	<varlistentry>
1680e120bd27Smrg	  <term><parameter>toVal</parameter></term>
1681e120bd27Smrg	  <listitem><para>
1682e120bd27Smrgreturns the converted value
1683e120bd27Smrg	    </para></listitem>
1684e120bd27Smrg	</varlistentry>
1685e120bd27Smrg	<varlistentry>
1686e120bd27Smrg	  <term><parameter>data</parameter></term>
1687e120bd27Smrg	  <listitem><para>
1688e120bd27Smrgthis argument is ignored
1689e120bd27Smrg	    </para></listitem>
1690e120bd27Smrg	</varlistentry>
1691e120bd27Smrg      </variablelist>
1692e120bd27Smrg
1693e120bd27Smrg      <indexterm zone="XmuCvtStringToColorCursor">
1694e120bd27Smrg	<primary><type>Cursor</type></primary>
1695e120bd27Smrg      </indexterm>
1696e120bd27SmrgThis function converts a string to a
1697e120bd27Smrg<type>Cursor</type>
1698e120bd27Smrgwith the foreground and background pixels specified by the conversion
1699e120bd27Smrgarguments.  The string can either be a
1700e120bd27Smrgstandard cursor name formed by removing the <code>&ldquo;XC_&rdquo;</code>
1701e120bd27Smrgprefix from any of the
1702e120bd27Smrgcursor defines listed in Appendix B of the Xlib Manual, a font name and
1703e120bd27Smrgglyph index in decimal of the form "FONT fontname index [[font] index]",
1704e120bd27Smrgor a bitmap filename acceptable to
1705e120bd27Smrg<link linkend="XmuLocateBitmapFile"><function>XmuLocateBitmapFile</function></link>.
1706e120bd27SmrgTo use this converter, include
1707e120bd27Smrgthe following in the widget ClassInitialize procedure:
1708e120bd27Smrg
1709e120bd27Smrg      <programlisting>
1710e120bd27Smrgstatic XtConvertArgRec colorCursorConvertArgs[] = {
1711e120bd27Smrg  {XtWidgetBaseOffset, (XtPointer) XtOffsetOf(WidgetRec, core.screen),
1712e120bd27Smrg   sizeof(Screen *)},
1713e120bd27Smrg  {XtResourceString, (XtPointer) XtNpointerColor, sizeof(Pixel)},
1714e120bd27Smrg  {XtResourceString, (XtPointer) XtNpointerColorBackground, sizeof(Pixel)},
1715e120bd27Smrg  {XtWidgetBaseOffset, (XtPointer) XtOffsetOf(WidgetRec, core.colormap),
1716e120bd27Smrg   sizeof(Colormap)}
1717e120bd27Smrg};
1718e120bd27Smrg
1719e120bd27Smrg
1720e120bd27SmrgXtSetTypeConverter(XtRString, XtRColorCursor, XmuCvtStringToColorCursor,
1721e120bd27Smrg		 colorCursorConvertArgs, XtNumber(colorCursorConvertArgs),
1722e120bd27Smrg                 XtCacheByDisplay, NULL);
1723e120bd27Smrg      </programlisting>
1724e120bd27Smrg
1725e120bd27SmrgThe widget must recognize XtNpointerColor and XtNpointerColorBackground as
1726e120bd27Smrgresources, or specify other appropriate foreground and background resources.
1727e120bd27SmrgThe widget's Realize and SetValues methods must cause the converter to be
1728e120bd27Smrginvoked with the appropriate arguments when one of the foreground,
1729e120bd27Smrgbackground, or cursor resources has changed, or when the window is created,
1730e120bd27Smrgand must assign the cursor to the window of the widget.
1731e120bd27Smrg    </para>
1732e120bd27Smrg
1733e120bd27Smrg    <para id="XmuCvtStringToCursor">
1734e120bd27Smrg      <indexterm zone="XmuCvtStringToCursor">
1735e120bd27Smrg	<primary><function>XmuCvtStringToCursor</function></primary>
1736e120bd27Smrg      </indexterm>
1737e120bd27Smrg      <funcsynopsis>
1738e120bd27Smrg	<funcprototype>
1739e120bd27Smrg	  <funcdef>void <function>XmuCvtStringToCursor</function></funcdef>
1740e120bd27Smrg	  <paramdef>XrmValue *<parameter>args</parameter></paramdef>
1741e120bd27Smrg	  <paramdef>Cardinal *<parameter>num_args</parameter></paramdef>
1742e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>fromVal</parameter></paramdef>
1743e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>toVal</parameter></paramdef>
1744e120bd27Smrg	</funcprototype>
1745e120bd27Smrg      </funcsynopsis>
1746e120bd27Smrg      <variablelist>
1747e120bd27Smrg	<varlistentry>
1748e120bd27Smrg	  <term><parameter>args</parameter></term>
1749e120bd27Smrg	  <listitem><para>
1750e120bd27Smrgspecifies the required conversion argument, the screen
1751e120bd27Smrg	    </para></listitem>
1752e120bd27Smrg	</varlistentry>
1753e120bd27Smrg	<varlistentry>
1754e120bd27Smrg	  <term><parameter>num_args</parameter></term>
1755e120bd27Smrg	  <listitem><para>
1756e120bd27Smrgspecifies the number of required conversion arguments, which is 1
1757e120bd27Smrg	    </para></listitem>
1758e120bd27Smrg	</varlistentry>
1759e120bd27Smrg	<varlistentry>
1760e120bd27Smrg	  <term><parameter>fromVal</parameter></term>
1761e120bd27Smrg	  <listitem><para>
1762e120bd27Smrgspecifies the string to convert
1763e120bd27Smrg	    </para></listitem>
1764e120bd27Smrg	</varlistentry>
1765e120bd27Smrg	<varlistentry>
1766e120bd27Smrg	  <term><parameter>toVal</parameter></term>
1767e120bd27Smrg	  <listitem><para>
1768e120bd27Smrgreturns the converted value
1769e120bd27Smrg	    </para></listitem>
1770e120bd27Smrg	</varlistentry>
1771e120bd27Smrg      </variablelist>
1772e120bd27Smrg
1773e120bd27Smrg      <indexterm zone="XmuCvtStringToCursor">
1774e120bd27Smrg	<primary><type>Cursor</type></primary>
1775e120bd27Smrg      </indexterm>
1776e120bd27SmrgThis function converts a string to a
1777e120bd27Smrg<type>Cursor</type>.
1778e120bd27SmrgThe string can either be a
1779e120bd27Smrgstandard cursor name formed by removing the <code>&ldquo;XC_&rdquo;</code>
1780e120bd27Smrgprefix from any of the
1781e120bd27Smrgcursor defines listed in Appendix B of the Xlib Manual, a font name and
1782e120bd27Smrgglyph index in decimal of the form "FONT fontname index [[font] index]", or
1783e120bd27Smrga bitmap filename acceptable to
1784e120bd27Smrg<link linkend="XmuLocateBitmapFile"><function>XmuLocateBitmapFile</function></link>.
1785e120bd27SmrgTo use this converter, include
1786e120bd27Smrgthe following in your widget's ClassInitialize procedure:
1787e120bd27Smrg
1788e120bd27Smrg      <programlisting>
1789e120bd27Smrgstatic XtConvertArgRec screenConvertArg[] = {
1790e120bd27Smrg  {XtBaseOffset, (XtPointer)XtOffsetOf(WidgetRec, core.screen), sizeof(Screen *)}
1791e120bd27Smrg};
1792e120bd27Smrg
1793e120bd27SmrgXtAddConverter(XtRString, XtRCursor, XmuCvtStringToCursor,
1794e120bd27Smrg		 screenConvertArg, XtNumber(screenConvertArg));
1795e120bd27Smrg      </programlisting>
1796e120bd27Smrg    </para>
1797e120bd27Smrg
1798e120bd27Smrg    <para id="XmuCvtStringToGravity">
1799e120bd27Smrg      <indexterm zone="XmuCvtStringToGravity">
1800e120bd27Smrg	<primary><function>XmuCvtStringToGravity</function></primary>
1801e120bd27Smrg      </indexterm>
1802e120bd27Smrg      <funcsynopsis>
1803e120bd27Smrg	<funcprototype>
1804e120bd27Smrg	  <funcdef>void <function>XmuCvtStringToGravity</function></funcdef>
1805e120bd27Smrg	  <paramdef>XrmValue *<parameter>args</parameter></paramdef>
1806e120bd27Smrg	  <paramdef>Cardinal *<parameter>num_args</parameter></paramdef>
1807e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>fromVal</parameter></paramdef>
1808e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>toVal</parameter></paramdef>
1809e120bd27Smrg	</funcprototype>
1810e120bd27Smrg      </funcsynopsis>
1811e120bd27Smrg      <variablelist>
1812e120bd27Smrg	<varlistentry>
1813e120bd27Smrg	  <term><parameter>args</parameter></term>
1814e120bd27Smrg	  <listitem><para>
1815e120bd27Smrgthis argument is ignored
1816e120bd27Smrg	    </para></listitem>
1817e120bd27Smrg	</varlistentry>
1818e120bd27Smrg	<varlistentry>
1819e120bd27Smrg	  <term><parameter>num_args</parameter></term>
1820e120bd27Smrg	  <listitem><para>
1821e120bd27Smrgthis argument must be a pointer to a Cardinal containing the value 0
1822e120bd27Smrg	    </para></listitem>
1823e120bd27Smrg	</varlistentry>
1824e120bd27Smrg	<varlistentry>
1825e120bd27Smrg	  <term><parameter>fromVal</parameter></term>
1826e120bd27Smrg	  <listitem><para>
1827e120bd27Smrgspecifies the string to convert
1828e120bd27Smrg	    </para></listitem>
1829e120bd27Smrg	</varlistentry>
1830e120bd27Smrg	<varlistentry>
1831e120bd27Smrg	  <term><parameter>toVal</parameter></term>
1832e120bd27Smrg	  <listitem><para>
1833e120bd27Smrgreturns the converted value
1834e120bd27Smrg	    </para></listitem>
1835e120bd27Smrg	</varlistentry>
1836e120bd27Smrg      </variablelist>
1837e120bd27Smrg
1838e120bd27Smrg      <indexterm zone="XmuCvtStringToGravity">
1839e120bd27Smrg	<primary><type>XtGravity</type></primary>
1840e120bd27Smrg      </indexterm>
1841e120bd27SmrgThis function converts a string to an
1842e120bd27Smrg<type>XtGravity</type>
1843e120bd27Smrgenumeration value.  The string "forget" and a <symbol>NULL</symbol> value convert to
1844e120bd27Smrg<symbol>ForgetGravity</symbol>,
1845e120bd27Smrg"NorthWestGravity" converts to
1846e120bd27Smrg<symbol>NorthWestGravity</symbol>,
1847e120bd27Smrgthe strings "NorthGravity" and "top" convert to
1848e120bd27Smrg<symbol>NorthGravity</symbol>,
1849e120bd27Smrg"NorthEastGravity" converts to
1850e120bd27Smrg<symbol>NorthEastGravity</symbol>,
1851e120bd27Smrgthe strings "West" and "left" convert to
1852e120bd27Smrg<symbol>WestGravity</symbol>,
1853e120bd27Smrg"CenterGravity" converts to
1854e120bd27Smrg<symbol>CenterGravity</symbol>,
1855e120bd27Smrg"EastGravity" and "right" convert to
1856e120bd27Smrg<symbol>EastGravity</symbol>,
1857e120bd27Smrg"SouthWestGravity" converts to
1858e120bd27Smrg<symbol>SouthWestGravity</symbol>,
1859e120bd27Smrg"SouthGravity" and "bottom" convert to
1860e120bd27Smrg<symbol>SouthGravity</symbol>,
1861e120bd27Smrg"SouthEastGravity" converts to
1862e120bd27Smrg<symbol>SouthEastGravity</symbol>,
1863e120bd27Smrg"StaticGravity" converts to
1864e120bd27Smrg<symbol>StaticGravity</symbol>,
1865e120bd27Smrgand "UnmapGravity" converts to
1866e120bd27Smrg<symbol>UnmapGravity</symbol>.
1867e120bd27SmrgThe case of the string does not matter.  To use this converter, include
1868e120bd27Smrgthe following in your widget's class initialize procedure:
1869e120bd27Smrg
1870e120bd27Smrg      <programlisting>
1871e120bd27SmrgXtAddConverter(XtRString, XtRGravity, XmuCvtStringToGravity, NULL, 0);
1872e120bd27Smrg      </programlisting>
1873e120bd27Smrg    </para>
1874e120bd27Smrg
1875e120bd27Smrg    <para id="XmuCvtStringToJustify">
1876e120bd27Smrg      <indexterm zone="XmuCvtStringToJustify">
1877e120bd27Smrg	<primary><function>XmuCvtStringToJustify</function></primary>
1878e120bd27Smrg      </indexterm>
1879e120bd27Smrg      <funcsynopsis>
1880e120bd27Smrg	<funcprototype>
1881e120bd27Smrg	  <funcdef>void <function>XmuCvtStringToJustify</function></funcdef>
1882e120bd27Smrg	  <paramdef>XrmValue *<parameter>args</parameter></paramdef>
1883e120bd27Smrg	  <paramdef>Cardinal *<parameter>num_args</parameter></paramdef>
1884e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>fromVal</parameter></paramdef>
1885e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>toVal</parameter></paramdef>
1886e120bd27Smrg	</funcprototype>
1887e120bd27Smrg      </funcsynopsis>
1888e120bd27Smrg      <variablelist>
1889e120bd27Smrg	<varlistentry>
1890e120bd27Smrg	  <term><parameter>args</parameter></term>
1891e120bd27Smrg	  <listitem><para>
1892e120bd27Smrgthis argument is ignored
1893e120bd27Smrg	    </para></listitem>
1894e120bd27Smrg	</varlistentry>
1895e120bd27Smrg	<varlistentry>
1896e120bd27Smrg	  <term><parameter>num_args</parameter></term>
1897e120bd27Smrg	  <listitem><para>
1898e120bd27Smrgthis argument is ignored
1899e120bd27Smrg	    </para></listitem>
1900e120bd27Smrg	</varlistentry>
1901e120bd27Smrg	<varlistentry>
1902e120bd27Smrg	  <term><parameter>fromVal</parameter></term>
1903e120bd27Smrg	  <listitem><para>
1904e120bd27Smrgspecifies the string to convert
1905e120bd27Smrg	    </para></listitem>
1906e120bd27Smrg	</varlistentry>
1907e120bd27Smrg	<varlistentry>
1908e120bd27Smrg	  <term><parameter>toVal</parameter></term>
1909e120bd27Smrg	  <listitem><para>
1910e120bd27Smrgreturns the converted value
1911e120bd27Smrg	    </para></listitem>
1912e120bd27Smrg	</varlistentry>
1913e120bd27Smrg      </variablelist>
1914e120bd27Smrg
1915e120bd27Smrg      <indexterm zone="XmuCvtStringToJustify">
1916e120bd27Smrg	<primary><type>XtJustify</type></primary>
1917e120bd27Smrg      </indexterm>
1918e120bd27SmrgThis function converts a string to an
1919e120bd27Smrg<type>XtJustify</type>
1920e120bd27Smrgenumeration value.  The string "left" converts to
1921e120bd27Smrg<symbol>XtJustifyLeft</symbol>,
1922e120bd27Smrg"center" converts to
1923e120bd27Smrg<symbol>XtJustifyCenter</symbol>,
1924e120bd27Smrgand "right" converts to
1925e120bd27Smrg<symbol>XtJustifyRight</symbol>.
1926e120bd27SmrgThe case of the string does not matter.  To use this converter,
1927e120bd27Smrginclude the following in your widget's ClassInitialize procedure:
1928e120bd27Smrg
1929e120bd27Smrg      <programlisting>
1930e120bd27SmrgXtAddConverter(XtRString, XtRJustify, XmuCvtStringToJustify, NULL, 0);
1931e120bd27Smrg      </programlisting>
1932e120bd27Smrg    </para>
1933e120bd27Smrg
1934e120bd27Smrg    <para id="XmuCvtStringToLong">
1935e120bd27Smrg      <indexterm zone="XmuCvtStringToLong">
1936e120bd27Smrg	<primary><function>XmuCvtStringToLong</function></primary>
1937e120bd27Smrg      </indexterm>
1938e120bd27Smrg      <funcsynopsis>
1939e120bd27Smrg	<funcprototype>
1940e120bd27Smrg	  <funcdef>void <function>XmuCvtStringToLong</function></funcdef>
1941e120bd27Smrg	  <paramdef>XrmValue *<parameter>args</parameter></paramdef>
1942e120bd27Smrg	  <paramdef>Cardinal *<parameter>num_args</parameter></paramdef>
1943e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>fromVal</parameter></paramdef>
1944e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>toVal</parameter></paramdef>
1945e120bd27Smrg	</funcprototype>
1946e120bd27Smrg      </funcsynopsis>
1947e120bd27Smrg      <variablelist>
1948e120bd27Smrg	<varlistentry>
1949e120bd27Smrg	  <term><parameter>args</parameter></term>
1950e120bd27Smrg	  <listitem><para>
1951e120bd27Smrgthis argument is ignored
1952e120bd27Smrg	    </para></listitem>
1953e120bd27Smrg	</varlistentry>
1954e120bd27Smrg	<varlistentry>
1955e120bd27Smrg	  <term><parameter>num_args</parameter></term>
1956e120bd27Smrg	  <listitem><para>
1957e120bd27Smrgthis argument must be a pointer to a Cardinal containing 0
1958e120bd27Smrg	    </para></listitem>
1959e120bd27Smrg	</varlistentry>
1960e120bd27Smrg	<varlistentry>
1961e120bd27Smrg	  <term><parameter>fromVal</parameter></term>
1962e120bd27Smrg	  <listitem><para>
1963e120bd27Smrgspecifies the string to convert
1964e120bd27Smrg	    </para></listitem>
1965e120bd27Smrg	</varlistentry>
1966e120bd27Smrg	<varlistentry>
1967e120bd27Smrg	  <term><parameter>toVal</parameter></term>
1968e120bd27Smrg	  <listitem><para>
1969e120bd27Smrgreturns the converted value
1970e120bd27Smrg	    </para></listitem>
1971e120bd27Smrg	</varlistentry>
1972e120bd27Smrg      </variablelist>
1973e120bd27Smrg
1974e120bd27SmrgThis function converts a string to an integer of type long.  It parses the
1975e120bd27Smrgstring using
1976e120bd27Smrg<function>sscanf</function>
1977e120bd27Smrgwith a format of "%ld".  To use this converter, include
1978e120bd27Smrgthe following in your widget's ClassInitialize procedure:
1979e120bd27Smrg
1980e120bd27Smrg      <programlisting>
1981e120bd27SmrgXtAddConverter(XtRString, XtRLong, XmuCvtStringToLong, NULL, 0);
1982e120bd27Smrg      </programlisting>
1983e120bd27Smrg    </para>
1984e120bd27Smrg
1985e120bd27Smrg    <para id="XmuCvtStringToOrientation">
1986e120bd27Smrg      <indexterm zone="XmuCvtStringToOrientation">
1987e120bd27Smrg	<primary><function>XmuCvtStringToOrientation</function></primary>
1988e120bd27Smrg      </indexterm>
1989e120bd27Smrg      <funcsynopsis>
1990e120bd27Smrg	<funcprototype>
1991e120bd27Smrg	  <funcdef>void <function>XmuCvtStringToOrientation</function></funcdef>
1992e120bd27Smrg	  <paramdef>XrmValue *<parameter>args</parameter></paramdef>
1993e120bd27Smrg	  <paramdef>Cardinal *<parameter>num_args</parameter></paramdef>
1994e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>fromVal</parameter></paramdef>
1995e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>toVal</parameter></paramdef>
1996e120bd27Smrg	</funcprototype>
1997e120bd27Smrg      </funcsynopsis>
1998e120bd27Smrg      <variablelist>
1999e120bd27Smrg	<varlistentry>
2000e120bd27Smrg	  <term><parameter>args</parameter></term>
2001e120bd27Smrg	  <listitem><para>
2002e120bd27Smrgthis argument is ignored
2003e120bd27Smrg	    </para></listitem>
2004e120bd27Smrg	</varlistentry>
2005e120bd27Smrg	<varlistentry>
2006e120bd27Smrg	  <term><parameter>num_args</parameter></term>
2007e120bd27Smrg	  <listitem><para>
2008e120bd27Smrgthis argument is ignored
2009e120bd27Smrg	    </para></listitem>
2010e120bd27Smrg	</varlistentry>
2011e120bd27Smrg	<varlistentry>
2012e120bd27Smrg	  <term><parameter>fromVal</parameter></term>
2013e120bd27Smrg	  <listitem><para>
2014e120bd27Smrgspecifies the string to convert
2015e120bd27Smrg	    </para></listitem>
2016e120bd27Smrg	</varlistentry>
2017e120bd27Smrg	<varlistentry>
2018e120bd27Smrg	  <term><parameter>toVal</parameter></term>
2019e120bd27Smrg	  <listitem><para>
2020e120bd27Smrgreturns the converted value
2021e120bd27Smrg	    </para></listitem>
2022e120bd27Smrg	</varlistentry>
2023e120bd27Smrg      </variablelist>
2024e120bd27Smrg
2025e120bd27Smrg      <indexterm zone="XmuCvtStringToOrientation">
2026e120bd27Smrg	<primary><type>XtOrientation</type></primary>
2027e120bd27Smrg      </indexterm>
2028e120bd27SmrgThis function converts a string to an
2029e120bd27Smrg<type>XtOrientation</type>
2030e120bd27Smrgenumeration value.  The string "horizontal" converts to
2031e120bd27Smrg<symbol>XtorientHorizontal</symbol>
2032e120bd27Smrgand "vertical" converts to
2033e120bd27Smrg<symbol>XtorientVertical</symbol>.
2034e120bd27SmrgThe case of the string does not matter.  To use this converter,
2035e120bd27Smrginclude the following in your widget's ClassInitialize procedure:
2036e120bd27Smrg
2037e120bd27Smrg      <programlisting>
2038e120bd27SmrgXtAddConverter(XtRString, XtROrientation, XmuCvtStringToOrientation, NULL, 0);
2039e120bd27Smrg      </programlisting>
2040e120bd27Smrg    </para>
2041e120bd27Smrg
2042e120bd27Smrg    <para id="XmuCvtStringToShapeStyle">
2043e120bd27Smrg      <indexterm zone="XmuCvtStringToShapeStyle">
2044e120bd27Smrg	<primary><function>XmuCvtStringToShapeStyle</function></primary>
2045e120bd27Smrg      </indexterm>
2046e120bd27Smrg      <funcsynopsis>
2047e120bd27Smrg	<funcprototype>
2048e120bd27Smrg	  <funcdef>Boolean <function>XmuCvtStringToShapeStyle</function></funcdef>
2049e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
2050e120bd27Smrg	  <paramdef>XrmValue *<parameter>args</parameter></paramdef>
2051e120bd27Smrg	  <paramdef>Cardinal *<parameter>num_args</parameter></paramdef>
2052e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>fromVal</parameter></paramdef>
2053e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>toVal</parameter></paramdef>
2054e120bd27Smrg	  <paramdef>XtPointer *<parameter>data</parameter></paramdef>
2055e120bd27Smrg	</funcprototype>
2056e120bd27Smrg      </funcsynopsis>
2057e120bd27Smrg      <variablelist>
2058e120bd27Smrg	<varlistentry>
2059e120bd27Smrg	  <term><parameter>dpy</parameter></term>
2060e120bd27Smrg	  <listitem><para>
2061e120bd27Smrgthe display to use for conversion warnings
2062e120bd27Smrg	    </para></listitem>
2063e120bd27Smrg	</varlistentry>
2064e120bd27Smrg	<varlistentry>
2065e120bd27Smrg	  <term><parameter>args</parameter></term>
2066e120bd27Smrg	  <listitem><para>
2067e120bd27Smrgthis argument is ignored
2068e120bd27Smrg	    </para></listitem>
2069e120bd27Smrg	</varlistentry>
2070e120bd27Smrg	<varlistentry>
2071e120bd27Smrg	  <term><parameter>num_args</parameter></term>
2072e120bd27Smrg	  <listitem><para>
2073e120bd27Smrgthis argument is ignored
2074e120bd27Smrg	    </para></listitem>
2075e120bd27Smrg	</varlistentry>
2076e120bd27Smrg	<varlistentry>
2077e120bd27Smrg	  <term><parameter>fromVal</parameter></term>
2078e120bd27Smrg	  <listitem><para>
2079e120bd27Smrgthe value to convert from
2080e120bd27Smrg	    </para></listitem>
2081e120bd27Smrg	</varlistentry>
2082e120bd27Smrg	<varlistentry>
2083e120bd27Smrg	  <term><parameter>toVal</parameter></term>
2084e120bd27Smrg	  <listitem><para>
2085e120bd27Smrgthe place to store the converted value
2086e120bd27Smrg	    </para></listitem>
2087e120bd27Smrg	</varlistentry>
2088e120bd27Smrg	<varlistentry>
2089e120bd27Smrg	  <term><parameter>data</parameter></term>
2090e120bd27Smrg	  <listitem><para>
2091e120bd27Smrgthis argument is ignored
2092e120bd27Smrg	    </para></listitem>
2093e120bd27Smrg	</varlistentry>
2094e120bd27Smrg      </variablelist>
2095e120bd27Smrg
2096e120bd27SmrgThis function converts a string to an integer shape style.  The string
2097e120bd27Smrg"rectangle" converts to
2098e120bd27Smrg<symbol>XmuShapeRectangle</symbol>,
2099e120bd27Smrg"oval" converts to
2100e120bd27Smrg<symbol>XmuShapeOval</symbol>,
2101e120bd27Smrg"ellipse" converts to
2102e120bd27Smrg<symbol>XmuShapeEllipse</symbol>,
2103e120bd27Smrgand "roundedRectangle" converts to
2104e120bd27Smrg<symbol>XmuShapeRoundedRectangle</symbol>.
2105e120bd27SmrgThe case of the string does not matter.  To use this converter,
2106e120bd27Smrginclude the following in your widget's ClassInitialize procedure:
2107e120bd27Smrg
2108e120bd27Smrg      <programlisting>
2109e120bd27SmrgXtSetTypeConverter(XtRString, XtRShapeStyle, XmuCvtStringToShapeStyle,
2110e120bd27Smrg		     NULL, 0, XtCacheNone, NULL);
2111e120bd27Smrg      </programlisting>
2112e120bd27Smrg    </para>
2113e120bd27Smrg
2114e120bd27Smrg    <para id="XmuReshapeWidget">
2115e120bd27Smrg      <indexterm zone="XmuReshapeWidget">
2116e120bd27Smrg	<primary><function>XmuReshapeWidget</function></primary>
2117e120bd27Smrg      </indexterm>
2118e120bd27Smrg      <funcsynopsis>
2119e120bd27Smrg	<funcprototype>
2120e120bd27Smrg	  <funcdef>Boolean <function>XmuReshapeWidget</function></funcdef>
2121e120bd27Smrg	  <paramdef>Widget <parameter>w</parameter></paramdef>
2122e120bd27Smrg	  <paramdef>int <parameter>shape_style</parameter></paramdef>
2123e120bd27Smrg	  <paramdef>int <parameter>corner_width</parameter></paramdef>
2124e120bd27Smrg	  <paramdef>int <parameter>corner_height</parameter></paramdef>
2125e120bd27Smrg	</funcprototype>
2126e120bd27Smrg      </funcsynopsis>
2127e120bd27Smrg      <variablelist>
2128e120bd27Smrg	<varlistentry>
2129e120bd27Smrg	  <term><parameter>w</parameter></term>
2130e120bd27Smrg	  <listitem><para>
2131e120bd27Smrgspecifies the widget to reshape
2132e120bd27Smrg	    </para></listitem>
2133e120bd27Smrg	</varlistentry>
2134e120bd27Smrg	<varlistentry>
2135e120bd27Smrg	  <term><parameter>shape_style</parameter></term>
2136e120bd27Smrg	  <listitem><para>
2137e120bd27Smrgspecifies the new shape
2138e120bd27Smrg	    </para></listitem>
2139e120bd27Smrg	</varlistentry>
2140e120bd27Smrg	<varlistentry>
2141e120bd27Smrg	  <term><parameter>corner_width</parameter></term>
2142e120bd27Smrg	  <listitem><para>
2143e120bd27Smrgspecifies the width of the rounded rectangle corner
2144e120bd27Smrg	    </para></listitem>
2145e120bd27Smrg	</varlistentry>
2146e120bd27Smrg	<varlistentry>
2147e120bd27Smrg	  <term><parameter>corner_height</parameter></term>
2148e120bd27Smrg	  <listitem><para>
2149e120bd27Smrgspecified the height of the rounded rectangle corner
2150e120bd27Smrg	    </para></listitem>
2151e120bd27Smrg	</varlistentry>
2152e120bd27Smrg      </variablelist>
2153e120bd27Smrg
2154e120bd27Smrg      <indexterm zone="XmuReshapeWidget">
2155e120bd27Smrg	<primary>Shape extension</primary>
2156e120bd27Smrg      </indexterm>
2157e120bd27SmrgThis function reshapes the specified widget, using the Shape extension, to a
2158e120bd27Smrgrectangle, oval, ellipse, or rounded rectangle, as specified by shape_style
2159e120bd27Smrg(
2160e120bd27Smrg<symbol>XmuShapeRectangle</symbol>,
2161e120bd27Smrg<symbol>XmuShapeOval</symbol>,
2162e120bd27Smrg<symbol>XmuShapeEllipse</symbol>,
2163e120bd27Smrgand
2164e120bd27Smrg<symbol>XmuShapeRoundedRectangle</symbol>,
2165e120bd27Smrgrespectively).
2166e120bd27SmrgThe shape is bounded by the outside edges of the rectangular extents of the
2167e120bd27Smrgwidget.  If the shape is a rounded rectangle, corner_width and corner_height
2168e120bd27Smrgspecify the size of the bounding box that the corners are drawn inside of
2169e120bd27Smrg(see
2170e120bd27Smrg<link linkend="XmuFillRoundedRectangle"><function>XmuFillRoundedRectangle</function></link>);
2171e120bd27Smrgotherwise, corner_width and corner_height are ignored.
2172e120bd27SmrgThe origin of the widget within its parent remains unchanged.
2173e120bd27Smrg    </para>
2174e120bd27Smrg
2175e120bd27Smrg    <para id="XmuCvtStringToWidget">
2176e120bd27Smrg      <indexterm zone="XmuCvtStringToWidget">
2177e120bd27Smrg	<primary><function>XmuCvtStringToWidget</function></primary>
2178e120bd27Smrg      </indexterm>
2179e120bd27Smrg      <funcsynopsis>
2180e120bd27Smrg	<funcprototype>
2181e120bd27Smrg	  <funcdef>void <function>XmuCvtStringToWidget</function></funcdef>
2182e120bd27Smrg	  <paramdef>XrmValue *<parameter>args</parameter></paramdef>
2183e120bd27Smrg	  <paramdef>Cardinal *<parameter>num_args</parameter></paramdef>
2184e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>fromVal</parameter></paramdef>
2185e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>toVal</parameter></paramdef>
2186e120bd27Smrg	</funcprototype>
2187e120bd27Smrg      </funcsynopsis>
2188e120bd27Smrg      <variablelist>
2189e120bd27Smrg	<varlistentry>
2190e120bd27Smrg	  <term><parameter>args</parameter></term>
2191e120bd27Smrg	  <listitem><para>
2192e120bd27Smrgthe sole argument is the parent Widget
2193e120bd27Smrg	    </para></listitem>
2194e120bd27Smrg	</varlistentry>
2195e120bd27Smrg	<varlistentry>
2196e120bd27Smrg	  <term><parameter>num_args</parameter></term>
2197e120bd27Smrg  <listitem><para>
2198e120bd27Smrgthis argument must be 1
2199e120bd27Smrg	    </para></listitem>
2200e120bd27Smrg	</varlistentry>
2201e120bd27Smrg	<varlistentry>
2202e120bd27Smrg	  <term><parameter>fromVal</parameter></term>
2203e120bd27Smrg  <listitem><para>
2204e120bd27Smrgspecifies the string to convert
2205e120bd27Smrg	    </para></listitem>
2206e120bd27Smrg	</varlistentry>
2207e120bd27Smrg	<varlistentry>
2208e120bd27Smrg	  <term><parameter>toVal</parameter></term>
2209e120bd27Smrg	  <listitem><para>
2210e120bd27Smrgreturns the converted value
2211e120bd27Smrg	    </para></listitem>
2212e120bd27Smrg	</varlistentry>
2213e120bd27Smrg      </variablelist>
2214e120bd27Smrg
2215e120bd27SmrgThis function converts a string to an immediate child widget of the parent
2216e120bd27Smrgwidget passed as an argument.  Note that this converter only works for
2217e120bd27Smrgchild widgets that have already been created; there is no lazy evaluation.
2218e120bd27SmrgThe string is first compared against the
2219e120bd27Smrgnames of the normal and popup children, and if a match is found the
2220e120bd27Smrgcorresponding child is returned.  If no match is found, the string is
2221e120bd27Smrgcompared against the classes of the normal and popup children, and if a
2222e120bd27Smrgmatch is found the corresponding child is returned.  The case of the string
2223e120bd27Smrgis significant.  To use this converter, include the following in your
2224e120bd27Smrgwidget's ClassInitialize procedure:
2225e120bd27Smrg
2226e120bd27Smrg      <programlisting>
2227e120bd27Smrgstatic XtConvertArgRec parentCvtArg[] = {
2228e120bd27Smrg  {XtBaseOffset, (XtPointer)XtOffset(Widget, core.parent), sizeof(Widget)},
2229e120bd27Smrg};
2230e120bd27Smrg
2231e120bd27SmrgXtAddConverter(XtRString, XtRWidget, XmuCvtStringToWidget,
2232e120bd27Smrg		 parentCvtArg, XtNumber(parentCvtArg));
2233e120bd27Smrg      </programlisting>
2234e120bd27Smrg    </para>
2235e120bd27Smrg
2236e120bd27Smrg    <para id="XmuNewCvtStringToWidget">
2237e120bd27Smrg      <indexterm zone="XmuNewCvtStringToWidget">
2238e120bd27Smrg	<primary><function>XmuNewCvtStringToWidget</function></primary>
2239e120bd27Smrg      </indexterm>
2240e120bd27Smrg      <funcsynopsis>
2241e120bd27Smrg	<funcprototype>
2242e120bd27Smrg	  <funcdef>Boolean <function>XmuNewCvtStringToWidget</function></funcdef>
2243e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
2244e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>args</parameter></paramdef>
2245e120bd27Smrg	  <paramdef>Cardinal *<parameter>num_args</parameter></paramdef>
2246e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>fromVal</parameter></paramdef>
2247e120bd27Smrg	  <paramdef>XrmValuePtr <parameter>toVal</parameter></paramdef>
2248e120bd27Smrg	  <paramdef>XtPointer *<parameter>data</parameter></paramdef>
2249e120bd27Smrg	</funcprototype>
2250e120bd27Smrg      </funcsynopsis>
2251e120bd27Smrg      <variablelist>
2252e120bd27Smrg	<varlistentry>
2253e120bd27Smrg	  <term><parameter>dpy</parameter></term>
2254e120bd27Smrg	  <listitem><para>
2255e120bd27Smrgthe display to use for conversion warnings
2256e120bd27Smrg	    </para></listitem>
2257e120bd27Smrg	</varlistentry>
2258e120bd27Smrg	<varlistentry>
2259e120bd27Smrg	  <term><parameter>args</parameter></term>
2260e120bd27Smrg	  <listitem><para>
2261e120bd27Smrgthe sole argument is the parent Widget
2262e120bd27Smrg	    </para></listitem>
2263e120bd27Smrg	</varlistentry>
2264e120bd27Smrg	<varlistentry>
2265e120bd27Smrg	  <term><parameter>num_args</parameter></term>
2266e120bd27Smrg	  <listitem><para>
2267e120bd27Smrgthis argument must be a pointer to a Cardinal containing the value 1
2268e120bd27Smrg	    </para></listitem>
2269e120bd27Smrg	</varlistentry>
2270e120bd27Smrg	<varlistentry>
2271e120bd27Smrg	  <term><parameter>fromVal</parameter></term>
2272e120bd27Smrg	  <listitem><para>
2273e120bd27Smrgspecifies the string to convert
2274e120bd27Smrg	    </para></listitem>
2275e120bd27Smrg	</varlistentry>
2276e120bd27Smrg	<varlistentry>
2277e120bd27Smrg	  <term><parameter>toVal</parameter></term>
2278e120bd27Smrg	  <listitem><para>
2279e120bd27Smrgreturns the converted value
2280e120bd27Smrg	    </para></listitem>
2281e120bd27Smrg	</varlistentry>
2282e120bd27Smrg	<varlistentry>
2283e120bd27Smrg	  <term><parameter>data</parameter></term>
2284e120bd27Smrg	  <listitem><para>
2285e120bd27Smrgthis argument is ignored
2286e120bd27Smrg	    </para></listitem>
2287e120bd27Smrg	</varlistentry>
2288e120bd27Smrg      </variablelist>
2289e120bd27Smrg
2290e120bd27SmrgThis converter is identical in functionality to
2291e120bd27Smrg<link linkend="XmuCvtStringToWidget"><function>XmuCvtStringToWidget</function></link>, except
2292e120bd27Smrgthat it is a new-style converter, allowing the specification of a cache type
2293e120bd27Smrgat the time of registration.
2294e120bd27SmrgMost widgets will not cache the conversion results, as the application may
2295e120bd27Smrgdynamically create and destroy widgets, which would cause cached values to
2296e120bd27Smrgbecome illegal.  To use this converter, include the following in the widget's
2297e120bd27Smrgclass initialize procedure:
2298e120bd27Smrg
2299e120bd27Smrg    <programlisting>
2300e120bd27Smrgstatic XtConvertArgRec parentCvtArg[] = {
2301e120bd27Smrg  {XtWidgetBaseOffset, (XtPointer)XtOffsetOf(WidgetRec, core.parent),
2302e120bd27Smrg   sizeof(Widget)}
2303e120bd27Smrg};
2304e120bd27Smrg
2305e120bd27SmrgXtSetTypeConverter(XtRString, XtRWidget, XmuNewCvtStringToWidget,
2306e120bd27Smrg		   parentCvtArg, XtNumber(parentCvtArg), XtCacheNone, NULL);
2307e120bd27Smrg      </programlisting>
2308e120bd27Smrg
2309e120bd27Smrg    </para>
2310e120bd27Smrg
2311e120bd27Smrg  </sect1>
2312e120bd27Smrg
23130cc2eac3Smrg  <sect1 id='Character_Set_Functions'>
23140cc2eac3Smrg<title>Character Set Functions</title>
2315e120bd27Smrg
2316e120bd27Smrg<para>
2317e120bd27SmrgTo use the functions defined in this section, you should include the header
2318e120bd27Smrgfile
2319e120bd27Smrg&lt;<filename class='headerfile'>X11/Xmu/CharSet.h</filename>&gt;
2320e120bd27Smrg<indexterm>
2321e120bd27Smrg<primary><filename class='headerfile'>X11/Xmu/CharSet.h</filename></primary>
2322e120bd27Smrg</indexterm>
2323e120bd27Smrgand link against the libXmu or libXmuu library.
2324e120bd27Smrg</para>
2325e120bd27Smrg
2326e120bd27Smrg    <warning><para>
2327e120bd27SmrgThe functions in this section are <emphasis remap='B'>deprecated</emphasis>
2328e120bd27Smrgbecause they don't work in most locales now supported by X11; most platforms
2329e120bd27Smrgprovide alternatives in their system libraries.
2330e120bd27Smrg      </para></warning>
2331e120bd27Smrg
2332e120bd27Smrg    <para id="XmuCopyISOLatin1Lowered">
2333e120bd27Smrg      <indexterm zone="XmuCopyISOLatin1Lowered">
2334e120bd27Smrg	<primary><function>XmuCopyISOLatin1Lowered</function></primary>
2335e120bd27Smrg      </indexterm>
2336e120bd27Smrg      <funcsynopsis>
2337e120bd27Smrg	<funcprototype>
2338e120bd27Smrg	  <funcdef>void <function>XmuCopyISOLatin1Lowered</function></funcdef>
2339e120bd27Smrg	  <paramdef>char *<parameter>dst</parameter></paramdef>
2340e120bd27Smrg	  <paramdef>const char *<parameter>src</parameter></paramdef>
2341e120bd27Smrg	</funcprototype>
2342e120bd27Smrg      </funcsynopsis>
2343e120bd27Smrg      <variablelist>
2344e120bd27Smrg	<varlistentry>
2345e120bd27Smrg	  <term><parameter>dst</parameter></term>
2346e120bd27Smrg	  <listitem><para>
2347e120bd27Smrgreturns the string copy
2348e120bd27Smrg	    </para></listitem>
2349e120bd27Smrg	</varlistentry>
2350e120bd27Smrg	<varlistentry>
2351e120bd27Smrg	  <term><parameter>src</parameter></term>
2352e120bd27Smrg	  <listitem><para>
2353e120bd27Smrgspecifies the string to copy
2354e120bd27Smrg	    </para></listitem>
2355e120bd27Smrg	</varlistentry>
2356e120bd27Smrg      </variablelist>
2357e120bd27Smrg
2358e120bd27SmrgThis function copies a null terminated string from src to dst (including the
2359e120bd27Smrgnull), changing all Latin-1 uppercase letters to lowercase.  The string is
2360e120bd27Smrgassumed to be encoded using ISO 8859-1.
2361e120bd27Smrg    </para>
2362e120bd27Smrg
2363e120bd27Smrg    <para>
2364e120bd27SmrgNote that like <function>strcpy</function> the caller is responsible for
2365e120bd27Smrgensuring the size of <parameter>dst</parameter> is at least as large as the
2366e120bd27Smrgsize of <parameter>src</parameter>.
2367e120bd27Smrg    </para>
2368e120bd27Smrg
2369e120bd27Smrg    <para id="XmuNCopyISOLatin1Lowered">
2370e120bd27Smrg      <indexterm zone="XmuNCopyISOLatin1Lowered">
2371e120bd27Smrg	<primary><function>XmuNCopyISOLatin1Lowered</function></primary>
2372e120bd27Smrg      </indexterm>
2373e120bd27Smrg      <funcsynopsis>
2374e120bd27Smrg	<funcprototype>
2375e120bd27Smrg	  <funcdef>void <function>XmuNCopyISOLatin1Lowered</function></funcdef>
2376e120bd27Smrg	  <paramdef>char *<parameter>dst</parameter></paramdef>
2377e120bd27Smrg	  <paramdef>const char *<parameter>src</parameter></paramdef>
2378e120bd27Smrg	  <paramdef>int <parameter>size</parameter></paramdef>
2379e120bd27Smrg	</funcprototype>
2380e120bd27Smrg      </funcsynopsis>
2381e120bd27Smrg      <variablelist>
2382e120bd27Smrg	<varlistentry>
2383e120bd27Smrg	  <term><parameter>dst</parameter></term>
2384e120bd27Smrg	  <listitem><para>
2385e120bd27Smrgreturns the string copy
2386e120bd27Smrg	    </para></listitem>
2387e120bd27Smrg	</varlistentry>
2388e120bd27Smrg	<varlistentry>
2389e120bd27Smrg	  <term><parameter>src</parameter></term>
2390e120bd27Smrg	  <listitem><para>
2391e120bd27Smrgspecifies the string to copy
2392e120bd27Smrg	    </para></listitem>
2393e120bd27Smrg	</varlistentry>
2394e120bd27Smrg	<varlistentry>
2395e120bd27Smrg	  <term><parameter>size</parameter></term>
2396e120bd27Smrg	  <listitem><para>
2397e120bd27Smrgmaximum number of characters (including the null terminator) to write to dst
2398e120bd27Smrg	    </para></listitem>
2399e120bd27Smrg	</varlistentry>
2400e120bd27Smrg      </variablelist>
2401e120bd27Smrg
2402e120bd27SmrgThis function copies up to <code><parameter>size</parameter> - 1</code>
2403e120bd27Smrgcharacters of a null terminated string from <parameter>src</parameter>
2404e120bd27Smrgto <parameter>dst</parameter>, and terminates it with a null,
2405e120bd27Smrgchanging all Latin-1 uppercase letters to lowercase.  The string is
2406e120bd27Smrgassumed to be encoded using ISO 8859-1.
2407e120bd27Smrg    </para>
2408e120bd27Smrg
2409e120bd27Smrg    <para id="XmuCopyISOLatin1Uppered">
2410e120bd27Smrg      <indexterm zone="XmuCopyISOLatin1Uppered">
2411e120bd27Smrg	<primary><function>XmuCopyISOLatin1Uppered</function></primary>
2412e120bd27Smrg      </indexterm>
2413e120bd27Smrg      <funcsynopsis>
2414e120bd27Smrg	<funcprototype>
2415e120bd27Smrg	  <funcdef>void <function>XmuCopyISOLatin1Uppered</function></funcdef>
2416e120bd27Smrg	  <paramdef>char *<parameter>dst</parameter></paramdef>
2417e120bd27Smrg	  <paramdef>const char *<parameter>src</parameter></paramdef>
2418e120bd27Smrg	</funcprototype>
2419e120bd27Smrg      </funcsynopsis>
2420e120bd27Smrg      <variablelist>
2421e120bd27Smrg	<varlistentry>
2422e120bd27Smrg	  <term><parameter>dst</parameter></term>
2423e120bd27Smrg	  <listitem><para>
2424e120bd27Smrgreturns the string copy
2425e120bd27Smrg	    </para></listitem>
2426e120bd27Smrg	</varlistentry>
2427e120bd27Smrg	<varlistentry>
2428e120bd27Smrg	  <term><parameter>src</parameter></term>
2429e120bd27Smrg	  <listitem><para>
2430e120bd27Smrgspecifies the string to copy
2431e120bd27Smrg	    </para></listitem>
2432e120bd27Smrg	</varlistentry>
2433e120bd27Smrg      </variablelist>
2434e120bd27Smrg
2435e120bd27SmrgThis function copies a null terminated string from src to dst (including the
2436e120bd27Smrgnull), changing all Latin-1 lowercase letters to uppercase.  The string is
2437e120bd27Smrgassumed to be encoded using ISO 8859-1.
2438e120bd27Smrg    </para>
2439e120bd27Smrg
2440e120bd27Smrg    <para>
2441e120bd27SmrgNote that like <function>strcpy</function> the caller is responsible for
2442e120bd27Smrgensuring the size of <parameter>dst</parameter> is at least as large as the
2443e120bd27Smrgsize of <parameter>src</parameter>.
2444e120bd27Smrg    </para>
2445e120bd27Smrg
2446e120bd27Smrg    <para id="XmuNCopyISOLatin1Uppered">
2447e120bd27Smrg      <indexterm zone="XmuNCopyISOLatin1Uppered">
2448e120bd27Smrg	<primary><function>XmuNCopyISOLatin1Uppered</function></primary>
2449e120bd27Smrg      </indexterm>
2450e120bd27Smrg      <funcsynopsis>
2451e120bd27Smrg	<funcprototype>
2452e120bd27Smrg	  <funcdef>void <function>XmuNCopyISOLatin1Uppered</function></funcdef>
2453e120bd27Smrg	  <paramdef>char *<parameter>dst</parameter></paramdef>
2454e120bd27Smrg	  <paramdef>const char *<parameter>src</parameter></paramdef>
2455e120bd27Smrg	  <paramdef>int <parameter>size</parameter></paramdef>
2456e120bd27Smrg	</funcprototype>
2457e120bd27Smrg      </funcsynopsis>
2458e120bd27Smrg      <variablelist>
2459e120bd27Smrg	<varlistentry>
2460e120bd27Smrg	  <term><parameter>dst</parameter></term>
2461e120bd27Smrg	  <listitem><para>
2462e120bd27Smrgreturns the string copy
2463e120bd27Smrg	    </para></listitem>
2464e120bd27Smrg	</varlistentry>
2465e120bd27Smrg	<varlistentry>
2466e120bd27Smrg	  <term><parameter>src</parameter></term>
2467e120bd27Smrg	  <listitem><para>
2468e120bd27Smrgspecifies the string to copy
2469e120bd27Smrg	    </para></listitem>
2470e120bd27Smrg	</varlistentry>
2471e120bd27Smrg	<varlistentry>
2472e120bd27Smrg	  <term><parameter>size</parameter></term>
2473e120bd27Smrg	  <listitem><para>
2474e120bd27Smrgmaximum number of characters (including the null terminator) to write to dst
2475e120bd27Smrg	    </para></listitem>
2476e120bd27Smrg	</varlistentry>
2477e120bd27Smrg      </variablelist>
2478e120bd27Smrg
2479e120bd27SmrgThis function copies up to <code><parameter>size</parameter> - 1</code>
2480e120bd27Smrgcharacters of a null terminated string from <parameter>src</parameter>
2481e120bd27Smrgto <parameter>dst</parameter>, and terminates it with a null,
2482e120bd27Smrgchanging all Latin-1 lowercase letters to uppercase.  The string is
2483e120bd27Smrgassumed to be encoded using ISO 8859-1.
2484e120bd27Smrg    </para>
2485e120bd27Smrg
2486e120bd27Smrg    <para id="XmuCompareISOLatin1">
2487e120bd27Smrg      <indexterm zone="XmuCompareISOLatin1">
2488e120bd27Smrg	<primary><function>XmuCompareISOLatin1</function></primary>
2489e120bd27Smrg      </indexterm>
2490e120bd27Smrg      <funcsynopsis>
2491e120bd27Smrg	<funcprototype>
2492e120bd27Smrg	  <funcdef>int <function>XmuCompareISOLatin1</function></funcdef>
2493e120bd27Smrg	  <paramdef>const char *<parameter>first</parameter></paramdef>
2494e120bd27Smrg	  <paramdef>const char *<parameter>second</parameter></paramdef>
2495e120bd27Smrg	</funcprototype>
2496e120bd27Smrg      </funcsynopsis>
2497e120bd27Smrg      <variablelist>
2498e120bd27Smrg	<varlistentry>
2499e120bd27Smrg	  <term><parameter>first</parameter></term>
2500e120bd27Smrg	  <listitem><para>
2501e120bd27Smrg	      specifies a string to compare
2502e120bd27Smrg	    </para></listitem>
2503e120bd27Smrg	</varlistentry>
2504e120bd27Smrg	<varlistentry>
2505e120bd27Smrg	  <term><parameter>second</parameter></term>
2506e120bd27Smrg	  <listitem><para>
2507e120bd27Smrgspecifies a string to compare
2508e120bd27Smrg	    </para></listitem>
2509e120bd27Smrg	</varlistentry>
2510e120bd27Smrg      </variablelist>
2511e120bd27Smrg
2512e120bd27SmrgThis function compares two null terminated Latin-1 strings, ignoring case
2513e120bd27Smrgdifferences, and returns an integer greater than, equal to, or less than 0,
2514e120bd27Smrgaccording to whether first is lexicographically greater than, equal to, or
2515e120bd27Smrgless than second.  The two strings are assumed to be encoded using ISO
2516e120bd27Smrg8859-1.
2517e120bd27Smrg    </para>
2518e120bd27Smrg  </sect1>
2519e120bd27Smrg
25200cc2eac3Smrg  <sect1 id='Keyboard_Event_Translation_Functions'>
25210cc2eac3Smrg<title>Keyboard Event Translation Functions</title>
2522e120bd27Smrg
2523e120bd27Smrg    <para>
2524e120bd27SmrgTo use the functions defined in this section, you should include the header
2525e120bd27Smrgfile
2526e120bd27Smrg&lt;<filename class='headerfile'>X11/Xmu/Lookup.h</filename>&gt;
2527e120bd27Smrg<indexterm>
2528e120bd27Smrg<primary><filename class='headerfile'>X11/Xmu/Lookup.h</filename></primary>
2529e120bd27Smrg</indexterm>.
2530e120bd27Smrgand link against the libXmu library.
2531e120bd27Smrg    </para>
2532e120bd27Smrg
2533e120bd27Smrg    <warning><para>
2534e120bd27SmrgThe functions in this section are <emphasis remap='B'>deprecated</emphasis> because they don't work
2535e120bd27Smrgin most locales now supported by X11; the function
25360cc2eac3Smrg<olink targetdoc='libX11' targetptr='XmbLookupString'><function>XmbLookupString</function></olink>
2537e120bd27Smrgprovides a better alternative.
2538e120bd27Smrg      </para></warning>
2539e120bd27Smrg
2540e120bd27Smrg    <para id="XmuLookupLatin1">
2541e120bd27Smrg      <indexterm zone="XmuLookupLatin1">
2542e120bd27Smrg	<primary><function>XmuLookupLatin1</function></primary>
2543e120bd27Smrg      </indexterm>
2544e120bd27Smrg      <funcsynopsis>
2545e120bd27Smrg	<funcprototype>
2546e120bd27Smrg	  <funcdef>int <function>XmuLookupLatin1</function></funcdef>
2547e120bd27Smrg	  <paramdef>XKeyEvent *<parameter>event</parameter></paramdef>
2548e120bd27Smrg	  <paramdef>unsigned char *<parameter>buffer</parameter></paramdef>
2549e120bd27Smrg	  <paramdef>int <parameter>nbytes</parameter></paramdef>
2550e120bd27Smrg	  <paramdef>KeySym *<parameter>keysym</parameter></paramdef>
2551e120bd27Smrg	  <paramdef>XComposeStatus *<parameter>status</parameter></paramdef>
2552e120bd27Smrg	</funcprototype>
2553e120bd27Smrg      </funcsynopsis>
2554e120bd27Smrg      <variablelist>
2555e120bd27Smrg	<varlistentry>
2556e120bd27Smrg	  <term><parameter>event</parameter></term>
2557e120bd27Smrg	  <listitem><para>
2558e120bd27Smrgspecifies the key event
2559e120bd27Smrg	    </para></listitem>
2560e120bd27Smrg	</varlistentry>
2561e120bd27Smrg	<varlistentry>
2562e120bd27Smrg	  <term><parameter>buffer</parameter></term>
2563e120bd27Smrg	  <listitem><para>
2564e120bd27Smrgreturns the translated characters
2565e120bd27Smrg	    </para></listitem>
2566e120bd27Smrg	</varlistentry>
2567e120bd27Smrg	<varlistentry>
2568e120bd27Smrg	  <term><parameter>nbytes</parameter></term>
2569e120bd27Smrg	  <listitem><para>
2570e120bd27Smrgspecifies the length of the buffer
2571e120bd27Smrg	    </para></listitem>
2572e120bd27Smrg	</varlistentry>
2573e120bd27Smrg	<varlistentry>
2574e120bd27Smrg	  <term><parameter>keysym</parameter></term>
2575e120bd27Smrg	  <listitem><para>
2576e120bd27Smrgreturns the computed KeySym, or None
2577e120bd27Smrg	    </para></listitem>
2578e120bd27Smrg	</varlistentry>
2579e120bd27Smrg	<varlistentry>
2580e120bd27Smrg	  <term><parameter>status</parameter></term>
2581e120bd27Smrg	  <listitem><para>
2582e120bd27Smrgspecifies or returns the compose state
2583e120bd27Smrg	    </para></listitem>
2584e120bd27Smrg	</varlistentry>
2585e120bd27Smrg      </variablelist>
2586e120bd27Smrg
2587e120bd27SmrgThis function is identical to
25880cc2eac3Smrg<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
2589e120bd27Smrgand exists only for naming symmetry with other functions.
2590e120bd27Smrg    </para>
2591e120bd27Smrg
2592e120bd27Smrg    <para id="XmuLookupLatin2">
2593e120bd27Smrg      <indexterm zone="XmuLookupLatin2">
2594e120bd27Smrg	<primary><function>XmuLookupLatin2</function></primary>
2595e120bd27Smrg      </indexterm>
2596e120bd27Smrg      <funcsynopsis>
2597e120bd27Smrg	<funcprototype>
2598e120bd27Smrg	  <funcdef>int <function>XmuLookupLatin2</function></funcdef>
2599e120bd27Smrg	  <paramdef>XKeyEvent *<parameter>event</parameter></paramdef>
2600e120bd27Smrg	  <paramdef>unsigned char *<parameter>buffer</parameter></paramdef>
2601e120bd27Smrg	  <paramdef>int <parameter>nbytes</parameter></paramdef>
2602e120bd27Smrg	  <paramdef>KeySym *<parameter>keysym</parameter></paramdef>
2603e120bd27Smrg	  <paramdef>XComposeStatus *<parameter>status</parameter></paramdef>
2604e120bd27Smrg	</funcprototype>
2605e120bd27Smrg      </funcsynopsis>
2606e120bd27Smrg      <variablelist>
2607e120bd27Smrg	<varlistentry>
2608e120bd27Smrg	  <term><parameter>event</parameter></term>
2609e120bd27Smrg	  <listitem><para>
2610e120bd27Smrgspecifies the key event
2611e120bd27Smrg	    </para></listitem>
2612e120bd27Smrg	</varlistentry>
2613e120bd27Smrg	<varlistentry>
2614e120bd27Smrg	  <term><parameter>buffer</parameter></term>
2615e120bd27Smrg	  <listitem><para>
2616e120bd27Smrgreturns the translated characters
2617e120bd27Smrg	    </para></listitem>
2618e120bd27Smrg	</varlistentry>
2619e120bd27Smrg	<varlistentry>
2620e120bd27Smrg	  <term><parameter>nbytes</parameter></term>
2621e120bd27Smrg	  <listitem><para>
2622e120bd27Smrgspecifies the length of the buffer
2623e120bd27Smrg	    </para></listitem>
2624e120bd27Smrg	</varlistentry>
2625e120bd27Smrg	<varlistentry>
2626e120bd27Smrg	  <term><parameter>keysym</parameter></term>
2627e120bd27Smrg	  <listitem><para>
2628e120bd27Smrgreturns the computed KeySym, or None
2629e120bd27Smrg	    </para></listitem>
2630e120bd27Smrg	</varlistentry>
2631e120bd27Smrg	<varlistentry>
2632e120bd27Smrg	  <term><parameter>status</parameter></term>
2633e120bd27Smrg	  <listitem><para>
2634e120bd27Smrgspecifies or returns the compose state
2635e120bd27Smrg	    </para></listitem>
2636e120bd27Smrg	</varlistentry>
2637e120bd27Smrg      </variablelist>
2638e120bd27Smrg
2639e120bd27SmrgThis function is similar to
26400cc2eac3Smrg<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
2641e120bd27Smrgexcept that it maps a key event
2642e120bd27Smrgto an Latin-2 (ISO 8859-2) string, or to an ASCII control string.
2643e120bd27Smrg    </para>
2644e120bd27Smrg
2645e120bd27Smrg    <para id="XmuLookupLatin3">
2646e120bd27Smrg      <indexterm zone="XmuLookupLatin3">
2647e120bd27Smrg	<primary><function>XmuLookupLatin3</function></primary>
2648e120bd27Smrg      </indexterm>
2649e120bd27Smrg      <funcsynopsis>
2650e120bd27Smrg	<funcprototype>
2651e120bd27Smrg	  <funcdef>int <function>XmuLookupLatin3</function></funcdef>
2652e120bd27Smrg	  <paramdef>XKeyEvent *<parameter>event</parameter></paramdef>
2653e120bd27Smrg	  <paramdef>unsigned char *<parameter>buffer</parameter></paramdef>
2654e120bd27Smrg	  <paramdef>int <parameter>nbytes</parameter></paramdef>
2655e120bd27Smrg	  <paramdef>KeySym *<parameter>keysym</parameter></paramdef>
2656e120bd27Smrg	  <paramdef>XComposeStatus *<parameter>status</parameter></paramdef>
2657e120bd27Smrg	</funcprototype>
2658e120bd27Smrg      </funcsynopsis>
2659e120bd27Smrg      <variablelist>
2660e120bd27Smrg	<varlistentry>
2661e120bd27Smrg	  <term><parameter>event</parameter></term>
2662e120bd27Smrg	  <listitem><para>
2663e120bd27Smrgspecifies the key event
2664e120bd27Smrg	    </para></listitem>
2665e120bd27Smrg	</varlistentry>
2666e120bd27Smrg	<varlistentry>
2667e120bd27Smrg	  <term><parameter>buffer</parameter></term>
2668e120bd27Smrg	  <listitem><para>
2669e120bd27Smrgreturns the translated characters
2670e120bd27Smrg	    </para></listitem>
2671e120bd27Smrg	</varlistentry>
2672e120bd27Smrg	<varlistentry>
2673e120bd27Smrg	  <term><parameter>nbytes</parameter></term>
2674e120bd27Smrg	  <listitem><para>
2675e120bd27Smrgspecifies the length of the buffer
2676e120bd27Smrg	    </para></listitem>
2677e120bd27Smrg	</varlistentry>
2678e120bd27Smrg	<varlistentry>
2679e120bd27Smrg	  <term><parameter>keysym</parameter></term>
2680e120bd27Smrg	  <listitem><para>
2681e120bd27Smrgreturns the computed KeySym, or None
2682e120bd27Smrg	    </para></listitem>
2683e120bd27Smrg	</varlistentry>
2684e120bd27Smrg	<varlistentry>
2685e120bd27Smrg	  <term><parameter>status</parameter></term>
2686e120bd27Smrg	  <listitem><para>
2687e120bd27Smrgspecifies or returns the compose state
2688e120bd27Smrg	    </para></listitem>
2689e120bd27Smrg	</varlistentry>
2690e120bd27Smrg      </variablelist>
2691e120bd27Smrg
2692e120bd27SmrgThis function is similar to
26930cc2eac3Smrg<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
2694e120bd27Smrgexcept that it maps a key event
2695e120bd27Smrgto an Latin-3 (ISO 8859-3) string, or to an ASCII control string.
2696e120bd27Smrg    </para>
2697e120bd27Smrg
2698e120bd27Smrg    <para id="XmuLookupLatin4">
2699e120bd27Smrg      <indexterm zone="XmuLookupLatin4">
2700e120bd27Smrg	<primary><function>XmuLookupLatin4</function></primary>
2701e120bd27Smrg      </indexterm>
2702e120bd27Smrg      <funcsynopsis>
2703e120bd27Smrg	<funcprototype>
2704e120bd27Smrg	  <funcdef>int <function>XmuLookupLatin4</function></funcdef>
2705e120bd27Smrg	  <paramdef>XKeyEvent *<parameter>event</parameter></paramdef>
2706e120bd27Smrg	  <paramdef>unsigned char *<parameter>buffer</parameter></paramdef>
2707e120bd27Smrg	  <paramdef>int <parameter>nbytes</parameter></paramdef>
2708e120bd27Smrg	  <paramdef>KeySym *<parameter>keysym</parameter></paramdef>
2709e120bd27Smrg	  <paramdef>XComposeStatus *<parameter>status</parameter></paramdef>
2710e120bd27Smrg	</funcprototype>
2711e120bd27Smrg      </funcsynopsis>
2712e120bd27Smrg      <variablelist>
2713e120bd27Smrg	<varlistentry>
2714e120bd27Smrg	  <term><parameter>event</parameter></term>
2715e120bd27Smrg	  <listitem><para>
2716e120bd27Smrgspecifies the key event
2717e120bd27Smrg	    </para></listitem>
2718e120bd27Smrg	</varlistentry>
2719e120bd27Smrg	<varlistentry>
2720e120bd27Smrg	  <term><parameter>buffer</parameter></term>
2721e120bd27Smrg	  <listitem><para>
2722e120bd27Smrgreturns the translated characters
2723e120bd27Smrg	    </para></listitem>
2724e120bd27Smrg	</varlistentry>
2725e120bd27Smrg	<varlistentry>
2726e120bd27Smrg	  <term><parameter>nbytes</parameter></term>
2727e120bd27Smrg	  <listitem><para>
2728e120bd27Smrgspecifies the length of the buffer
2729e120bd27Smrg	    </para></listitem>
2730e120bd27Smrg	</varlistentry>
2731e120bd27Smrg	<varlistentry>
2732e120bd27Smrg	  <term><parameter>keysym</parameter></term>
2733e120bd27Smrg	  <listitem><para>
2734e120bd27Smrgreturns the computed KeySym, or None
2735e120bd27Smrg	    </para></listitem>
2736e120bd27Smrg	</varlistentry>
2737e120bd27Smrg	<varlistentry>
2738e120bd27Smrg	  <term><parameter>status</parameter></term>
2739e120bd27Smrg	  <listitem><para>
2740e120bd27Smrgspecifies or returns the compose state
2741e120bd27Smrg	    </para></listitem>
2742e120bd27Smrg	</varlistentry>
2743e120bd27Smrg      </variablelist>
2744e120bd27Smrg
2745e120bd27SmrgThis function is similar to
27460cc2eac3Smrg<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
2747e120bd27Smrgexcept that it maps a key event
2748e120bd27Smrgto an Latin-4 (ISO 8859-4) string, or to an ASCII control string.
2749e120bd27Smrg    </para>
2750e120bd27Smrg
2751e120bd27Smrg    <para id="XmuLookupKana">
2752e120bd27Smrg      <indexterm zone="XmuLookupKana">
2753e120bd27Smrg	<primary><function>XmuLookupKana</function></primary>
2754e120bd27Smrg      </indexterm>
2755e120bd27Smrg      <funcsynopsis>
2756e120bd27Smrg	<funcprototype>
2757e120bd27Smrg	  <funcdef>int <function>XmuLookupKana</function></funcdef>
2758e120bd27Smrg	  <paramdef>XKeyEvent *<parameter>event</parameter></paramdef>
2759e120bd27Smrg	  <paramdef>unsigned char *<parameter>buffer</parameter></paramdef>
2760e120bd27Smrg	  <paramdef>int <parameter>nbytes</parameter></paramdef>
2761e120bd27Smrg	  <paramdef>KeySym *<parameter>keysym</parameter></paramdef>
2762e120bd27Smrg	  <paramdef>XComposeStatus *<parameter>status</parameter></paramdef>
2763e120bd27Smrg	</funcprototype>
2764e120bd27Smrg      </funcsynopsis>
2765e120bd27Smrg      <variablelist>
2766e120bd27Smrg	<varlistentry>
2767e120bd27Smrg	  <term><parameter>event</parameter></term>
2768e120bd27Smrg	  <listitem><para>
2769e120bd27Smrgspecifies the key event
2770e120bd27Smrg	    </para></listitem>
2771e120bd27Smrg	</varlistentry>
2772e120bd27Smrg	<varlistentry>
2773e120bd27Smrg	  <term><parameter>buffer</parameter></term>
2774e120bd27Smrg	  <listitem><para>
2775e120bd27Smrgreturns the translated characters
2776e120bd27Smrg	    </para></listitem>
2777e120bd27Smrg	</varlistentry>
2778e120bd27Smrg	<varlistentry>
2779e120bd27Smrg	  <term><parameter>nbytes</parameter></term>
2780e120bd27Smrg	  <listitem><para>
2781e120bd27Smrgspecifies the length of the buffer
2782e120bd27Smrg	    </para></listitem>
2783e120bd27Smrg	</varlistentry>
2784e120bd27Smrg	<varlistentry>
2785e120bd27Smrg	  <term><parameter>keysym</parameter></term>
2786e120bd27Smrg	  <listitem><para>
2787e120bd27Smrgreturns the computed KeySym, or None
2788e120bd27Smrg	    </para></listitem>
2789e120bd27Smrg	</varlistentry>
2790e120bd27Smrg	<varlistentry>
2791e120bd27Smrg	  <term><parameter>status</parameter></term>
2792e120bd27Smrg	  <listitem><para>
2793e120bd27Smrgspecifies or returns the compose state
2794e120bd27Smrg	    </para></listitem>
2795e120bd27Smrg	</varlistentry>
2796e120bd27Smrg      </variablelist>
2797e120bd27Smrg
2798e120bd27SmrgThis function is similar to
27990cc2eac3Smrg<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
2800e120bd27Smrgexcept that it maps a key event
2801e120bd27Smrgto a string in an encoding consisting of Latin-1 (ISO 8859-1) and ASCII
2802e120bd27Smrgcontrol in the Graphics Left half (values 0 to 127), and Katakana in the
2803e120bd27SmrgGraphics Right half (values 128 to 255), using the values from JIS
2804e120bd27SmrgX201-1976.
2805e120bd27Smrg    </para>
2806e120bd27Smrg
2807e120bd27Smrg    <para id="XmuLookupJISX0201">
2808e120bd27Smrg      <indexterm zone="XmuLookupJISX0201">
2809e120bd27Smrg	<primary><function>XmuLookupJISX0201</function></primary>
2810e120bd27Smrg      </indexterm>
2811e120bd27Smrg      <funcsynopsis>
2812e120bd27Smrg	<funcprototype>
2813e120bd27Smrg	  <funcdef>int <function>XmuLookupJISX0201</function></funcdef>
2814e120bd27Smrg	  <paramdef>XKeyEvent *<parameter>event</parameter></paramdef>
2815e120bd27Smrg	  <paramdef>unsigned char *<parameter>buffer</parameter></paramdef>
2816e120bd27Smrg	  <paramdef>int <parameter>nbytes</parameter></paramdef>
2817e120bd27Smrg	  <paramdef>KeySym *<parameter>keysym</parameter></paramdef>
2818e120bd27Smrg	  <paramdef>XComposeStatus *<parameter>status</parameter></paramdef>
2819e120bd27Smrg	</funcprototype>
2820e120bd27Smrg      </funcsynopsis>
2821e120bd27Smrg      <variablelist>
2822e120bd27Smrg	<varlistentry>
2823e120bd27Smrg	  <term><parameter>event</parameter></term>
2824e120bd27Smrg	  <listitem><para>
2825e120bd27Smrgspecifies the key event
2826e120bd27Smrg	    </para></listitem>
2827e120bd27Smrg	</varlistentry>
2828e120bd27Smrg	<varlistentry>
2829e120bd27Smrg	  <term><parameter>buffer</parameter></term>
2830e120bd27Smrg	  <listitem><para>
2831e120bd27Smrgreturns the translated characters
2832e120bd27Smrg	    </para></listitem>
2833e120bd27Smrg	</varlistentry>
2834e120bd27Smrg	<varlistentry>
2835e120bd27Smrg	  <term><parameter>nbytes</parameter></term>
2836e120bd27Smrg	  <listitem><para>
2837e120bd27Smrgspecifies the length of the buffer
2838e120bd27Smrg	    </para></listitem>
2839e120bd27Smrg	</varlistentry>
2840e120bd27Smrg	<varlistentry>
2841e120bd27Smrg	  <term><parameter>keysym</parameter></term>
2842e120bd27Smrg	  <listitem><para>
2843e120bd27Smrgreturns the computed KeySym, or None
2844e120bd27Smrg	    </para></listitem>
2845e120bd27Smrg	</varlistentry>
2846e120bd27Smrg	<varlistentry>
2847e120bd27Smrg	  <term><parameter>status</parameter></term>
2848e120bd27Smrg	  <listitem><para>
2849e120bd27Smrgspecifies or returns the compose state
2850e120bd27Smrg	    </para></listitem>
2851e120bd27Smrg	</varlistentry>
2852e120bd27Smrg      </variablelist>
2853e120bd27Smrg
2854e120bd27SmrgThis function is similar to
28550cc2eac3Smrg<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
2856e120bd27Smrgexcept that it maps a key event
2857e120bd27Smrgto a string in the JIS X0201-1976 encoding, including ASCII control.
2858e120bd27Smrg    </para>
2859e120bd27Smrg
2860e120bd27Smrg    <para id="XmuLookupArabic">
2861e120bd27Smrg      <indexterm zone="XmuLookupArabic">
2862e120bd27Smrg	<primary><function>XmuLookupArabic</function></primary>
2863e120bd27Smrg      </indexterm>
2864e120bd27Smrg      <funcsynopsis>
2865e120bd27Smrg	<funcprototype>
2866e120bd27Smrg	  <funcdef>int <function>XmuLookupArabic</function></funcdef>
2867e120bd27Smrg	  <paramdef>XKeyEvent *<parameter>event</parameter></paramdef>
2868e120bd27Smrg	  <paramdef>unsigned char *<parameter>buffer</parameter></paramdef>
2869e120bd27Smrg	  <paramdef>int <parameter>nbytes</parameter></paramdef>
2870e120bd27Smrg	  <paramdef>KeySym *<parameter>keysym</parameter></paramdef>
2871e120bd27Smrg	  <paramdef>XComposeStatus *<parameter>status</parameter></paramdef>
2872e120bd27Smrg	</funcprototype>
2873e120bd27Smrg      </funcsynopsis>
2874e120bd27Smrg      <variablelist>
2875e120bd27Smrg	<varlistentry>
2876e120bd27Smrg	  <term><parameter>event</parameter></term>
2877e120bd27Smrg	  <listitem><para>
2878e120bd27Smrgspecifies the key event
2879e120bd27Smrg	    </para></listitem>
2880e120bd27Smrg	</varlistentry>
2881e120bd27Smrg	<varlistentry>
2882e120bd27Smrg	  <term><parameter>buffer</parameter></term>
2883e120bd27Smrg	  <listitem><para>
2884e120bd27Smrgreturns the translated characters
2885e120bd27Smrg	    </para></listitem>
2886e120bd27Smrg	</varlistentry>
2887e120bd27Smrg	<varlistentry>
2888e120bd27Smrg	  <term><parameter>nbytes</parameter></term>
2889e120bd27Smrg	  <listitem><para>
2890e120bd27Smrgspecifies the length of the buffer
2891e120bd27Smrg	    </para></listitem>
2892e120bd27Smrg	</varlistentry>
2893e120bd27Smrg	<varlistentry>
2894e120bd27Smrg	  <term><parameter>keysym</parameter></term>
2895e120bd27Smrg	  <listitem><para>
2896e120bd27Smrgreturns the computed KeySym, or None
2897e120bd27Smrg	    </para></listitem>
2898e120bd27Smrg	</varlistentry>
2899e120bd27Smrg	<varlistentry>
2900e120bd27Smrg	  <term><parameter>status</parameter></term>
2901e120bd27Smrg	  <listitem><para>
2902e120bd27Smrgspecifies or returns the compose state
2903e120bd27Smrg	    </para></listitem>
2904e120bd27Smrg	</varlistentry>
2905e120bd27Smrg      </variablelist>
2906e120bd27Smrg
2907e120bd27SmrgThis function is similar to
29080cc2eac3Smrg<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
2909e120bd27Smrgexcept that it maps a key event
2910e120bd27Smrgto a Latin/Arabic (ISO 8859-6) string, or to an ASCII control string.
2911e120bd27Smrg    </para>
2912e120bd27Smrg
2913e120bd27Smrg    <para id="XmuLookupCyrillic">
2914e120bd27Smrg      <indexterm zone="XmuLookupCyrillic">
2915e120bd27Smrg	<primary><function>XmuLookupCyrillic</function></primary>
2916e120bd27Smrg      </indexterm>
2917e120bd27Smrg      <funcsynopsis>
2918e120bd27Smrg	<funcprototype>
2919e120bd27Smrg	  <funcdef>int <function>XmuLookupCyrillic</function></funcdef>
2920e120bd27Smrg	  <paramdef>XKeyEvent *<parameter>event</parameter></paramdef>
2921e120bd27Smrg	  <paramdef>unsigned char *<parameter>buffer</parameter></paramdef>
2922e120bd27Smrg	  <paramdef>int <parameter>nbytes</parameter></paramdef>
2923e120bd27Smrg	  <paramdef>KeySym *<parameter>keysym</parameter></paramdef>
2924e120bd27Smrg	  <paramdef>XComposeStatus *<parameter>status</parameter></paramdef>
2925e120bd27Smrg	</funcprototype>
2926e120bd27Smrg      </funcsynopsis>
2927e120bd27Smrg      <variablelist>
2928e120bd27Smrg	<varlistentry>
2929e120bd27Smrg	  <term><parameter>event</parameter></term>
2930e120bd27Smrg	  <listitem><para>
2931e120bd27Smrgspecifies the key event
2932e120bd27Smrg	    </para></listitem>
2933e120bd27Smrg	</varlistentry>
2934e120bd27Smrg	<varlistentry>
2935e120bd27Smrg	  <term><parameter>buffer</parameter></term>
2936e120bd27Smrg	  <listitem><para>
2937e120bd27Smrgreturns the translated characters
2938e120bd27Smrg	    </para></listitem>
2939e120bd27Smrg	</varlistentry>
2940e120bd27Smrg	<varlistentry>
2941e120bd27Smrg	  <term><parameter>nbytes</parameter></term>
2942e120bd27Smrg	  <listitem><para>
2943e120bd27Smrgspecifies the length of the buffer
2944e120bd27Smrg	    </para></listitem>
2945e120bd27Smrg	</varlistentry>
2946e120bd27Smrg	<varlistentry>
2947e120bd27Smrg	  <term><parameter>keysym</parameter></term>
2948e120bd27Smrg	  <listitem><para>
2949e120bd27Smrgreturns the computed KeySym, or None
2950e120bd27Smrg	    </para></listitem>
2951e120bd27Smrg	</varlistentry>
2952e120bd27Smrg	<varlistentry>
2953e120bd27Smrg	  <term><parameter>status</parameter></term>
2954e120bd27Smrg	  <listitem><para>
2955e120bd27Smrgspecifies or returns the compose state
2956e120bd27Smrg	    </para></listitem>
2957e120bd27Smrg	</varlistentry>
2958e120bd27Smrg      </variablelist>
2959e120bd27Smrg
2960e120bd27SmrgThis function is similar to
29610cc2eac3Smrg<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
2962e120bd27Smrgexcept that it maps a key event
2963e120bd27Smrgto a Latin/Cyrillic (ISO 8859-5) string, or to an ASCII control string.
2964e120bd27Smrg    </para>
2965e120bd27Smrg
2966e120bd27Smrg    <para id="XmuLookupGreek">
2967e120bd27Smrg      <indexterm zone="XmuLookupGreek">
2968e120bd27Smrg	<primary><function>XmuLookupGreek</function></primary>
2969e120bd27Smrg      </indexterm>
2970e120bd27Smrg      <funcsynopsis>
2971e120bd27Smrg	<funcprototype>
2972e120bd27Smrg	  <funcdef>int <function>XmuLookupGreek</function></funcdef>
2973e120bd27Smrg	  <paramdef>XKeyEvent *<parameter>event</parameter></paramdef>
2974e120bd27Smrg	  <paramdef>unsigned char *<parameter>buffer</parameter></paramdef>
2975e120bd27Smrg	  <paramdef>int <parameter>nbytes</parameter></paramdef>
2976e120bd27Smrg	  <paramdef>KeySym *<parameter>keysym</parameter></paramdef>
2977e120bd27Smrg	  <paramdef>XComposeStatus *<parameter>status</parameter></paramdef>
2978e120bd27Smrg	</funcprototype>
2979e120bd27Smrg      </funcsynopsis>
2980e120bd27Smrg      <variablelist>
2981e120bd27Smrg	<varlistentry>
2982e120bd27Smrg	  <term><parameter>event</parameter></term>
2983e120bd27Smrg	  <listitem><para>
2984e120bd27Smrgspecifies the key event
2985e120bd27Smrg	    </para></listitem>
2986e120bd27Smrg	</varlistentry>
2987e120bd27Smrg	<varlistentry>
2988e120bd27Smrg	  <term><parameter>buffer</parameter></term>
2989e120bd27Smrg	  <listitem><para>
2990e120bd27Smrgreturns the translated characters
2991e120bd27Smrg	    </para></listitem>
2992e120bd27Smrg	</varlistentry>
2993e120bd27Smrg	<varlistentry>
2994e120bd27Smrg	  <term><parameter>nbytes</parameter></term>
2995e120bd27Smrg	  <listitem><para>
2996e120bd27Smrgspecifies the length of the buffer
2997e120bd27Smrg	    </para></listitem>
2998e120bd27Smrg	</varlistentry>
2999e120bd27Smrg	<varlistentry>
3000e120bd27Smrg	  <term><parameter>keysym</parameter></term>
3001e120bd27Smrg	  <listitem><para>
3002e120bd27Smrgreturns the computed KeySym, or None
3003e120bd27Smrg	    </para></listitem>
3004e120bd27Smrg	</varlistentry>
3005e120bd27Smrg	<varlistentry>
3006e120bd27Smrg	  <term><parameter>status</parameter></term>
3007e120bd27Smrg	  <listitem><para>
3008e120bd27Smrgspecifies or returns the compose state
3009e120bd27Smrg	    </para></listitem>
3010e120bd27Smrg	</varlistentry>
3011e120bd27Smrg      </variablelist>
3012e120bd27Smrg
3013e120bd27SmrgThis function is similar to
30140cc2eac3Smrg<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
3015e120bd27Smrgexcept that it maps a key event
3016e120bd27Smrgto a Latin/Greek (ISO 8859-7) string, or to an ASCII control string.
3017e120bd27Smrg    </para>
3018e120bd27Smrg
3019e120bd27Smrg    <para id="XmuLookupHebrew">
3020e120bd27Smrg      <indexterm zone="XmuLookupHebrew">
3021e120bd27Smrg	<primary><function>XmuLookupHebrew</function></primary>
3022e120bd27Smrg      </indexterm>
3023e120bd27Smrg      <funcsynopsis>
3024e120bd27Smrg	<funcprototype>
3025e120bd27Smrg	  <funcdef>int <function>XmuLookupHebrew</function></funcdef>
3026e120bd27Smrg	  <paramdef>XKeyEvent *<parameter>event</parameter></paramdef>
3027e120bd27Smrg	  <paramdef>unsigned char *<parameter>buffer</parameter></paramdef>
3028e120bd27Smrg	  <paramdef>int <parameter>nbytes</parameter></paramdef>
3029e120bd27Smrg	  <paramdef>KeySym *<parameter>keysym</parameter></paramdef>
3030e120bd27Smrg	  <paramdef>XComposeStatus *<parameter>status</parameter></paramdef>
3031e120bd27Smrg	</funcprototype>
3032e120bd27Smrg      </funcsynopsis>
3033e120bd27Smrg      <variablelist>
3034e120bd27Smrg	<varlistentry>
3035e120bd27Smrg	  <term><parameter>event</parameter></term>
3036e120bd27Smrg	  <listitem><para>
3037e120bd27Smrgspecifies the key event
3038e120bd27Smrg	    </para></listitem>
3039e120bd27Smrg	</varlistentry>
3040e120bd27Smrg	<varlistentry>
3041e120bd27Smrg	  <term><parameter>buffer</parameter></term>
3042e120bd27Smrg	  <listitem><para>
3043e120bd27Smrgreturns the translated characters
3044e120bd27Smrg	    </para></listitem>
3045e120bd27Smrg	</varlistentry>
3046e120bd27Smrg	<varlistentry>
3047e120bd27Smrg	  <term><parameter>nbytes</parameter></term>
3048e120bd27Smrg	  <listitem><para>
3049e120bd27Smrgspecifies the length of the buffer
3050e120bd27Smrg	    </para></listitem>
3051e120bd27Smrg	</varlistentry>
3052e120bd27Smrg	<varlistentry>
3053e120bd27Smrg	  <term><parameter>keysym</parameter></term>
3054e120bd27Smrg	  <listitem><para>
3055e120bd27Smrgreturns the computed KeySym, or None
3056e120bd27Smrg	    </para></listitem>
3057e120bd27Smrg	</varlistentry>
3058e120bd27Smrg	<varlistentry>
3059e120bd27Smrg	  <term><parameter>status</parameter></term>
3060e120bd27Smrg	  <listitem><para>
3061e120bd27Smrgspecifies or returns the compose state
3062e120bd27Smrg	    </para></listitem>
3063e120bd27Smrg	</varlistentry>
3064e120bd27Smrg      </variablelist>
3065e120bd27Smrg
3066e120bd27SmrgThis function is similar to
30670cc2eac3Smrg<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
3068e120bd27Smrgexcept that it maps a key event
3069e120bd27Smrgto a Latin/Hebrew (ISO 8859-8) string, or to an ASCII control string.
3070e120bd27Smrg    </para>
3071e120bd27Smrg
3072e120bd27Smrg    <para id="XmuLookupAPL">
3073e120bd27Smrg      <indexterm zone="XmuLookupAPL">
3074e120bd27Smrg	<primary><function>XmuLookupAPL</function></primary>
3075e120bd27Smrg      </indexterm>
3076e120bd27Smrg      <funcsynopsis>
3077e120bd27Smrg	<funcprototype>
3078e120bd27Smrg	  <funcdef>int <function>XmuLookupAPL</function></funcdef>
3079e120bd27Smrg	  <paramdef>XKeyEvent *<parameter>event</parameter></paramdef>
3080e120bd27Smrg	  <paramdef>unsigned char *<parameter>buffer</parameter></paramdef>
3081e120bd27Smrg	  <paramdef>int <parameter>nbytes</parameter></paramdef>
3082e120bd27Smrg	  <paramdef>KeySym *<parameter>keysym</parameter></paramdef>
3083e120bd27Smrg	  <paramdef>XComposeStatus *<parameter>status</parameter></paramdef>
3084e120bd27Smrg	</funcprototype>
3085e120bd27Smrg      </funcsynopsis>
3086e120bd27Smrg      <variablelist>
3087e120bd27Smrg	<varlistentry>
3088e120bd27Smrg	  <term><parameter>event</parameter></term>
3089e120bd27Smrg	  <listitem><para>
3090e120bd27Smrgspecifies the key event
3091e120bd27Smrg	    </para></listitem>
3092e120bd27Smrg	</varlistentry>
3093e120bd27Smrg	<varlistentry>
3094e120bd27Smrg	  <term><parameter>buffer</parameter></term>
3095e120bd27Smrg	  <listitem><para>
3096e120bd27Smrgreturns the translated characters
3097e120bd27Smrg	    </para></listitem>
3098e120bd27Smrg	</varlistentry>
3099e120bd27Smrg	<varlistentry>
3100e120bd27Smrg	  <term><parameter>nbytes</parameter></term>
3101e120bd27Smrg	  <listitem><para>
3102e120bd27Smrgspecifies the length of the buffer
3103e120bd27Smrg	    </para></listitem>
3104e120bd27Smrg	</varlistentry>
3105e120bd27Smrg	<varlistentry>
3106e120bd27Smrg	  <term><parameter>keysym</parameter></term>
3107e120bd27Smrg	  <listitem><para>
3108e120bd27Smrgreturns the computed KeySym, or None
3109e120bd27Smrg	    </para></listitem>
3110e120bd27Smrg	</varlistentry>
3111e120bd27Smrg	<varlistentry>
3112e120bd27Smrg	  <term><parameter>status</parameter></term>
3113e120bd27Smrg	  <listitem><para>
3114e120bd27Smrgspecifies or returns the compose state
3115e120bd27Smrg	    </para></listitem>
3116e120bd27Smrg	</varlistentry>
3117e120bd27Smrg      </variablelist>
3118e120bd27Smrg
3119e120bd27SmrgThis function is similar to
31200cc2eac3Smrg<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
3121e120bd27Smrgexcept that it maps a key event to an APL string.
3122e120bd27Smrg    </para>
3123e120bd27Smrg
3124e120bd27Smrg  </sect1>
3125e120bd27Smrg
31260cc2eac3Smrg  <sect1 id='Compound_Text_Functions'>
31270cc2eac3Smrg<title>Compound Text Functions</title>
3128e120bd27Smrg
3129e120bd27Smrg    <para>
3130e120bd27SmrgThe functions defined in this section are for parsing Compound Text strings,
3131e120bd27Smrgdecomposing them into individual segments. Definitions needed to use these
3132e120bd27Smrgroutines are in the include file
3133e120bd27Smrg&lt;<filename class='headerfile'>X11/Xmu/Xct.h</filename>&gt;
3134e120bd27Smrg<indexterm>
3135e120bd27Smrg<primary><filename class='headerfile'>X11/Xmu/Xct.h</filename></primary>
3136e120bd27Smrg</indexterm>
3137e120bd27Smrgand link against the libXmu library.
3138e120bd27Smrg    </para>
3139e120bd27Smrg
3140e120bd27Smrg    <warning><para>
3141e120bd27SmrgThe functions in this section are <emphasis remap='B'>deprecated</emphasis> because they shift the
3142e120bd27Smrgburden for recently introduced locale encodings to the application. The
3143e120bd27Smrguse of the
3144e120bd27Smrg<symbol>UTF8_STRING</symbol>
3145e120bd27Smrgtext encoding provides a better alternative.
3146e120bd27Smrg      </para></warning>
3147e120bd27Smrg
3148e120bd27Smrg    <para>
3149e120bd27SmrgA Compound Text string is represented as the following type:
3150e120bd27Smrg
3151e120bd27Smrg      <synopsis>
3152e120bd27Smrg	typedef unsigned char *XctString;
3153e120bd27Smrg      </synopsis>
3154e120bd27Smrg    </para>
3155e120bd27Smrg
3156e120bd27Smrg    <para id="XctCreate">
3157e120bd27Smrg      <indexterm zone="XctCreate">
3158e120bd27Smrg	<primary><function>XctCreate</function></primary>
3159e120bd27Smrg      </indexterm>
3160e120bd27Smrg      <funcsynopsis>
3161e120bd27Smrg	<funcprototype>
3162e120bd27Smrg	  <funcdef>XctData <function>XctCreate</function></funcdef>
3163e120bd27Smrg	  <paramdef>const XctString <parameter>string</parameter></paramdef>
3164e120bd27Smrg	  <paramdef>int <parameter>length</parameter></paramdef>
3165e120bd27Smrg	  <paramdef>XctFlags <parameter>flags</parameter></paramdef>
3166e120bd27Smrg	</funcprototype>
3167e120bd27Smrg      </funcsynopsis>
3168e120bd27Smrg      <variablelist>
3169e120bd27Smrg	<varlistentry>
3170e120bd27Smrg	  <term><parameter>string</parameter></term>
3171e120bd27Smrg	  <listitem><para>
3172e120bd27Smrgthe Compound Text string
3173e120bd27Smrg	    </para></listitem>
3174e120bd27Smrg	</varlistentry>
3175e120bd27Smrg	<varlistentry>
3176e120bd27Smrg	  <term><parameter>length</parameter></term>
3177e120bd27Smrg	  <listitem><para>
3178e120bd27Smrgthe number of bytes in string
3179e120bd27Smrg	    </para></listitem>
3180e120bd27Smrg	</varlistentry>
3181e120bd27Smrg	<varlistentry>
3182e120bd27Smrg	  <term><parameter>flags</parameter></term>
3183e120bd27Smrg	  <listitem><para>
3184e120bd27Smrgparsing control flags
3185e120bd27Smrg	    </para></listitem>
3186e120bd27Smrg	</varlistentry>
3187e120bd27Smrg      </variablelist>
3188e120bd27Smrg
3189e120bd27SmrgThis function creates an
3190e120bd27Smrg<type>XctData</type>
3191e120bd27Smrgstructure for parsing a Compound Text
3192e120bd27Smrgstring.  The string need not be null terminated.  The following flags are
3193e120bd27Smrgdefined to control parsing of the string:
3194e120bd27Smrg
3195e120bd27Smrg    <variablelist>
3196e120bd27Smrg      <varlistentry>
3197e120bd27Smrg	<term><symbol>XctSingleSetSegments</symbol></term>
3198e120bd27Smrg	<listitem><para>
3199e120bd27SmrgThis means that returned segments should contain
3200e120bd27Smrgcharacters from only one set (C0, C1, GL, GR).  When this is requested,
3201e120bd27Smrg<symbol>XctSegment</symbol>
3202e120bd27Smrgis never returned by
3203e120bd27Smrg<function>XctNextItem</function>,
3204e120bd27Smrginstead
3205e120bd27Smrg<symbol>XctC0Segment</symbol>,
3206e120bd27Smrg<symbol>XctC1Segment</symbol>,
3207e120bd27Smrg<symbol>XctGlSegment</symbol>,
3208e120bd27Smrgand
3209e120bd27Smrg<symbol>XctGRSegment</symbol>
3210e120bd27Smrgare returned.  C0 and C1
3211e120bd27Smrgsegments are always returned as singleton characters.
3212e120bd27Smrg	  </para></listitem>
3213e120bd27Smrg      </varlistentry>
3214e120bd27Smrg
3215e120bd27Smrg      <varlistentry>
3216e120bd27Smrg	<term><symbol>XctProvideExtensions</symbol></term>
3217e120bd27Smrg	<listitem><para>
3218e120bd27SmrgThis means that if the Compound Text string is from a
3219e120bd27Smrghigher version than this code is implemented to, then syntactically correct
3220e120bd27Smrgbut unknown control sequences should be returned as
3221e120bd27Smrg<symbol>XctExtension</symbol>
3222e120bd27Smrgitems by
3223e120bd27Smrg<function>XctNextItem</function>.
3224e120bd27SmrgIf this flag is not set, and the Compound Text string version
3225e120bd27Smrgindicates that extensions cannot be ignored, then each unknown control
3226e120bd27Smrgsequence will be reported as an
3227e120bd27Smrg<symbol>XctError</symbol>.
3228e120bd27Smrg	  </para></listitem>
3229e120bd27Smrg      </varlistentry>
3230e120bd27Smrg
3231e120bd27Smrg      <varlistentry>
3232e120bd27Smrg	<term><symbol>XctAcceptC0Extensions</symbol></term>
3233e120bd27Smrg	<listitem><para>
3234e120bd27SmrgThis means that if the Compound Text string is from
3235e120bd27Smrga higher version than this code is implemented to, then unknown C0
3236e120bd27Smrgcharacters should be treated as if they were legal, and returned as C0
3237e120bd27Smrgcharacters (regardless of how
3238e120bd27Smrg<symbol>XctProvideExtensions</symbol>
3239e120bd27Smrgis set) by
3240e120bd27Smrg<function>XctNextItem</function>.
3241e120bd27SmrgIf this flag is not set, then all unknown C0 characters are treated
3242e120bd27Smrgaccording to
3243e120bd27Smrg<symbol>XctProvideExtensions</symbol>.
3244e120bd27Smrg	  </para></listitem>
3245e120bd27Smrg      </varlistentry>
3246e120bd27Smrg
3247e120bd27Smrg      <varlistentry>
3248e120bd27Smrg	<term><symbol>XctAcceptC1Extensions</symbol></term>
3249e120bd27Smrg	<listitem><para>
3250e120bd27SmrgThis means that if the Compound Text string is from
3251e120bd27Smrga higher version than this code is implemented to, then unknown C1
3252e120bd27Smrgcharacters should be treated as if they were legal, and returned as C1
3253e120bd27Smrgcharacters (regardless of how
3254e120bd27Smrg<symbol>XctProvideExtensions</symbol>
3255e120bd27Smrgis set) by
3256e120bd27Smrg<function>XctNextItem</function>.
3257e120bd27SmrgIf this flag is not set, then all unknown C1 characters are treated
3258e120bd27Smrgaccording to
3259e120bd27Smrg<symbol>XctProvideExtensions</symbol>.
3260e120bd27Smrg	  </para></listitem>
3261e120bd27Smrg      </varlistentry>
3262e120bd27Smrg      <varlistentry>
3263e120bd27Smrg	<term><symbol>XctHideDirection</symbol></term>
3264e120bd27Smrg	<listitem><para>
3265e120bd27SmrgThis means that horizontal direction changes should be
3266e120bd27Smrgreported as
3267e120bd27Smrg<symbol>XctHorizontal</symbol>
3268e120bd27Smrgitems by
3269e120bd27Smrg<function>XctNextItem</function>. If this flag is not set,
3270e120bd27Smrgthen direction changes are not returned as items, but the current direction
3271e120bd27Smrgis still maintained and reported for other items.  The current direction is
3272e120bd27Smrggiven as an enumeration, with the values
3273e120bd27Smrg<symbol>XctUnspecified</symbol>,
3274e120bd27Smrg<symbol>XctLeftToRight</symbol>,
3275e120bd27Smrgand
3276e120bd27Smrg<symbol>XctRightToLeft</symbol>.
3277e120bd27Smrg	  </para></listitem>
3278e120bd27Smrg      </varlistentry>
3279e120bd27Smrg      <varlistentry>
3280e120bd27Smrg	<term><symbol>XctFreeString</symbol></term>
3281e120bd27Smrg	<listitem><para>
3282e120bd27SmrgThis means that
3283e120bd27Smrg<function>XctFree</function>
3284e120bd27Smrgshould free the Compound Text string that is passed to
3285e120bd27Smrg<function>XctCreate</function>.
3286e120bd27SmrgIf this flag is not set, the string is not freed.
3287e120bd27Smrg	  </para></listitem>
3288e120bd27Smrg      </varlistentry>
3289e120bd27Smrg
3290e120bd27Smrg      <varlistentry>
3291e120bd27Smrg	<term><symbol>XctShiftMultiGRToGL</symbol></term>
3292e120bd27Smrg	<listitem><para>
3293e120bd27SmrgThis means that
3294e120bd27Smrg<function>XctNextItem</function>
3295e120bd27Smrgshould translate GR
3296e120bd27Smrgsegments on-the-fly into GL segments for the GR sets: GB2312.1980-1,
3297e120bd27SmrgJISX0208.1983-1, and KSC5601.1987-1.
3298e120bd27Smrg	  </para></listitem>
3299e120bd27Smrg      </varlistentry>
3300e120bd27Smrg    </variablelist>
3301e120bd27Smrg  </para>
3302e120bd27Smrg
3303e120bd27Smrg    <para id="XctReset">
3304e120bd27Smrg      <indexterm zone="XctReset">
3305e120bd27Smrg	<primary><function>XctReset</function></primary>
3306e120bd27Smrg      </indexterm>
3307e120bd27Smrg      <funcsynopsis>
3308e120bd27Smrg	<funcprototype>
3309e120bd27Smrg	  <funcdef>void <function>XctReset</function></funcdef>
3310e120bd27Smrg	    <paramdef>XctData <parameter>data</parameter></paramdef>
3311e120bd27Smrg	  </funcprototype>
3312e120bd27Smrg	</funcsynopsis>
3313e120bd27Smrg	<variablelist>
3314e120bd27Smrg	  <varlistentry>
3315e120bd27Smrg	    <term><parameter>data</parameter></term>
3316e120bd27Smrg	    <listitem><para>
3317e120bd27Smrgspecifies the Compound Text structure
3318e120bd27Smrg	      </para></listitem>
3319e120bd27Smrg	  </varlistentry>
3320e120bd27Smrg	</variablelist>
3321e120bd27Smrg
3322e120bd27SmrgThis function resets the
3323e120bd27Smrg<type>XctData</type>
3324e120bd27Smrgstructure to reparse the Compound Text string from the beginning.
3325e120bd27Smrg      </para>
3326e120bd27Smrg
3327e120bd27Smrg      <para id="XctNextItem">
3328e120bd27Smrg      <indexterm zone="XctNextItem">
3329e120bd27Smrg	<primary><function>XctNextItem</function></primary>
3330e120bd27Smrg      </indexterm>
3331e120bd27Smrg      <funcsynopsis>
3332e120bd27Smrg	<funcprototype>
3333e120bd27Smrg	  <funcdef>XctResult <function>XctNextItem</function></funcdef>
3334e120bd27Smrg	    <paramdef>XctData <parameter>data</parameter></paramdef>
3335e120bd27Smrg	  </funcprototype>
3336e120bd27Smrg	</funcsynopsis>
3337e120bd27Smrg	<variablelist>
3338e120bd27Smrg	  <varlistentry>
3339e120bd27Smrg	    <term><parameter>data</parameter></term>
3340e120bd27Smrg	    <listitem><para>
3341e120bd27Smrgspecifies the Compound Text structure
3342e120bd27Smrg	      </para></listitem>
3343e120bd27Smrg	  </varlistentry>
3344e120bd27Smrg	</variablelist>
3345e120bd27Smrg
3346e120bd27SmrgThis function parses the next &ldquo;item&rdquo; from the Compound Text string.  The
3347e120bd27Smrgreturn value indicates what kind of item is returned.  The item itself, its
3348e120bd27Smrglength, and the current contextual state, are reported as components of the
3349e120bd27Smrg<type>XctData</type>
3350e120bd27Smrgstructure.
3351e120bd27Smrg<type>XctResult</type>
3352e120bd27Smrgis an enumeration, with the following values:
3353e120bd27Smrg
3354e120bd27Smrg	<variablelist>
3355e120bd27Smrg	  <varlistentry>
3356e120bd27Smrg	    <term><symbol>XctSegment</symbol></term>
3357e120bd27Smrg	    <listitem><para>
3358e120bd27Smrgthe item contains some mixture of C0, GL, GR, and C1 characters.
3359e120bd27Smrg	      </para></listitem>
3360e120bd27Smrg	  </varlistentry>
3361e120bd27Smrg
3362e120bd27Smrg	  <varlistentry>
3363e120bd27Smrg	    <term><symbol>XctC0Segment</symbol></term>
3364e120bd27Smrg	    <listitem><para>
3365e120bd27Smrgthe item contains only C0 characters.
3366e120bd27Smrg	      </para></listitem>
3367e120bd27Smrg	  </varlistentry>
3368e120bd27Smrg
3369e120bd27Smrg	  <varlistentry>
3370e120bd27Smrg	    <term><symbol>XctGLSegment</symbol></term>
3371e120bd27Smrg	    <listitem><para>
3372e120bd27Smrgthe item contains only GL characters.
3373e120bd27Smrg	      </para></listitem>
3374e120bd27Smrg	  </varlistentry>
3375e120bd27Smrg
3376e120bd27Smrg	  <varlistentry>
3377e120bd27Smrg	    <term><symbol>XctC1Segment</symbol></term>
3378e120bd27Smrg	    <listitem><para>
3379e120bd27Smrgthe item contains only C1 characters.
3380e120bd27Smrg	      </para></listitem>
3381e120bd27Smrg	  </varlistentry>
3382e120bd27Smrg
3383e120bd27Smrg	  <varlistentry>
3384e120bd27Smrg	    <term><symbol>XctGRSegment</symbol></term>
3385e120bd27Smrg	    <listitem><para>
3386e120bd27Smrgthe item contains only GR characters.
3387e120bd27Smrg	      </para></listitem>
3388e120bd27Smrg	  </varlistentry>
3389e120bd27Smrg
3390e120bd27Smrg	  <varlistentry>
3391e120bd27Smrg	    <term><symbol>XctExtendedSegment</symbol></term>
3392e120bd27Smrg	    <listitem><para>
3393e120bd27Smrgthe item contains an extended segment.
3394e120bd27Smrg	      </para></listitem>
3395e120bd27Smrg	  </varlistentry>
3396e120bd27Smrg
3397e120bd27Smrg	  <varlistentry>
3398e120bd27Smrg	    <term><symbol>XctExtension</symbol></term>
3399e120bd27Smrg	    <listitem><para>
3400e120bd27Smrgthe item is an unknown extension control sequence.
3401e120bd27Smrg	      </para></listitem>
3402e120bd27Smrg	  </varlistentry>
3403e120bd27Smrg
3404e120bd27Smrg	  <varlistentry>
3405e120bd27Smrg	    <term><symbol>XctHorizontal</symbol></term>
3406e120bd27Smrg	    <listitem><para>
3407e120bd27Smrgthe item indicates a change in horizontal direction or
3408e120bd27Smrgdepth.  The new direction and depth are recorded in the
3409e120bd27Smrg<type>XctData</type>
3410e120bd27Smrgstructure.
3411e120bd27Smrg	      </para></listitem>
3412e120bd27Smrg	  </varlistentry>
3413e120bd27Smrg
3414e120bd27Smrg	  <varlistentry>
3415e120bd27Smrg	    <term><symbol>XctEndOfText</symbol></term>
3416e120bd27Smrg	    <listitem><para>
3417e120bd27SmrgThe end of the Compound Text string has been reached.
3418e120bd27Smrg	      </para></listitem>
3419e120bd27Smrg	  </varlistentry>
3420e120bd27Smrg
3421e120bd27Smrg	  <varlistentry>
3422e120bd27Smrg	    <term><symbol>XctError</symbol></term>
3423e120bd27Smrg	    <listitem><para>
3424e120bd27Smrgthe string contains a syntactic or semantic error; no further
3425e120bd27Smrgparsing should be performed.
3426e120bd27Smrg	      </para></listitem>
3427e120bd27Smrg	  </varlistentry>
3428e120bd27Smrg	</variablelist>
3429e120bd27Smrg    </para>
3430e120bd27Smrg
3431e120bd27Smrg    <para id="XctData">
3432e120bd27Smrg      <indexterm zone="XctData">
3433e120bd27Smrg	<primary><type>XctData</type></primary>
3434e120bd27Smrg      </indexterm>
3435e120bd27SmrgThe following state values are stored in the
3436e120bd27Smrg<type>XctData</type>
3437e120bd27Smrgstructure:
3438e120bd27Smrg	<synopsis>
3439e120bd27Smrg    XctString		item;		/* the action item */
3440e120bd27Smrg    unsigned		item_length;	/* length of item in bytes */
3441e120bd27Smrg    int			char_size;	/* the number of bytes per character in
3442e120bd27Smrg					 * item, with zero meaning variable */
3443e120bd27Smrg    char		*encoding;	/* the XLFD encoding name for item */
3444e120bd27Smrg    XctHDirection	horizontal;	/* the direction of item */
3445e120bd27Smrg    unsigned		horz_depth;	/* the current direction nesting depth */
3446e120bd27Smrg    char		*GL;		/* the "{I} F" string for the current GL */
3447e120bd27Smrg    char		*GL_encoding;	/* the XLFD encoding name for the current GL */
3448e120bd27Smrg    int			GL_set_size;	/* 94 or 96 */
3449e120bd27Smrg    int			GL_char_size;	/* the number of bytes per GL character */
3450e120bd27Smrg    char		*GR;		/* the "{I} F" string for the current GR */
3451e120bd27Smrg    char		*GR_encoding;	/* the XLFD encoding name for the current GR */
3452e120bd27Smrg    int			GR_set_size;	/* 94 or 96 */
3453e120bd27Smrg    int			GR_char_size;	/* number of bytes per GR character */
3454e120bd27Smrg    char		*GLGR_encoding;	/* the XLFD encoding name for the current
3455e120bd27Smrg					 *  GL+GR, if known */
3456e120bd27Smrg	</synopsis>
3457e120bd27Smrg      </para>
3458e120bd27Smrg      <para>
3459e120bd27Smrg	<funcsynopsis>
3460e120bd27Smrg	  <funcprototype>
3461e120bd27Smrg	    <funcdef>void <function>XctFree</function></funcdef>
3462e120bd27Smrg	    <paramdef>XctData <parameter>data</parameter></paramdef>
3463e120bd27Smrg	  </funcprototype>
3464e120bd27Smrg	</funcsynopsis>
3465e120bd27Smrg	<variablelist>
3466e120bd27Smrg	  <varlistentry>
3467e120bd27Smrg	    <term><parameter>data</parameter></term>
3468e120bd27Smrg	    <listitem><para>
3469e120bd27Smrgspecifies the Compound Text structure
3470e120bd27Smrg	      </para></listitem>
3471e120bd27Smrg	  </varlistentry>
3472e120bd27Smrg	</variablelist>
3473e120bd27Smrg
3474e120bd27SmrgThis function frees all data associated with the
3475e120bd27Smrg<type>XctData</type>
3476e120bd27Smrgstructure.
3477e120bd27Smrg      </para>
3478e120bd27Smrg
3479e120bd27Smrg  </sect1>
3480e120bd27Smrg
34810cc2eac3Smrg  <sect1 id='CloseDisplay_Hook_Functions'>
34820cc2eac3Smrg<title>CloseDisplay Hook Functions</title>
3483e120bd27Smrg
3484e120bd27Smrg    <para>
3485e120bd27SmrgTo use the functions defined in this section, you should include the header
3486e120bd27Smrgfile
3487e120bd27Smrg&lt;<filename class='headerfile'>X11/Xmu/CloseHook.h</filename>&gt;
3488e120bd27Smrg<indexterm>
3489e120bd27Smrg<primary><filename class='headerfile'>X11/Xmu/CloseHook.h</filename></primary>
3490e120bd27Smrg</indexterm>
3491e120bd27Smrgand link against the libXmu library.
3492e120bd27Smrg    </para>
3493e120bd27Smrg
3494e120bd27Smrg    <para id="XmuAddCloseDisplayHook">
3495e120bd27Smrg      <indexterm zone="XmuAddCloseDisplayHook">
3496e120bd27Smrg	<primary><function>XmuAddCloseDisplayHook</function></primary>
3497e120bd27Smrg      </indexterm>
3498e120bd27Smrg      <funcsynopsis>
3499e120bd27Smrg	<funcprototype>
3500e120bd27Smrg	  <funcdef>CloseHook <function>XmuAddCloseDisplayHook</function></funcdef>
3501e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
3502e120bd27Smrg	  <paramdef>int <parameter>( *func )</parameter>
3503e120bd27Smrg	    <funcparams>Display *, XPointer</funcparams></paramdef>
3504e120bd27Smrg	  <paramdef>XPointer <parameter>arg</parameter></paramdef>
3505e120bd27Smrg	</funcprototype>
3506e120bd27Smrg      </funcsynopsis>
3507e120bd27Smrg      <variablelist>
3508e120bd27Smrg	<varlistentry>
3509e120bd27Smrg	  <term><parameter>dpy</parameter></term>
3510e120bd27Smrg	  <listitem><para>
3511e120bd27Smrgspecifies the connection to the X server
3512e120bd27Smrg	    </para></listitem>
3513e120bd27Smrg	</varlistentry>
3514e120bd27Smrg	<varlistentry>
3515e120bd27Smrg	  <term><parameter>func</parameter></term>
3516e120bd27Smrg	  <listitem><para>
3517e120bd27Smrgspecifies the function to call at display close
3518e120bd27Smrg	    </para></listitem>
3519e120bd27Smrg	</varlistentry>
3520e120bd27Smrg	<varlistentry>
3521e120bd27Smrg	  <term><parameter>arg</parameter></term>
3522e120bd27Smrg	  <listitem><para>
3523e120bd27Smrgspecifies arbitrary data to pass to <parameter>func</parameter>
3524e120bd27Smrg	    </para></listitem>
3525e120bd27Smrg	</varlistentry>
3526e120bd27Smrg      </variablelist>
3527e120bd27Smrg
3528e120bd27SmrgThis function adds a callback for the given display.  When the display is
3529e120bd27Smrgclosed, the given function will be called with the given display and
3530e120bd27Smrgargument as:
3531e120bd27Smrg
3532e120bd27Smrg      <programlisting>
3533e120bd27Smrg	(*func)(dpy, arg)
3534e120bd27Smrg      </programlisting>
3535e120bd27Smrg    </para>
3536e120bd27Smrg
3537e120bd27Smrg    <para>
3538e120bd27SmrgThe function is declared to return an int even though the value is ignored,
3539e120bd27Smrgbecause some compilers used to have problems with functions returning void.
3540e120bd27Smrg    </para>
3541e120bd27Smrg
3542e120bd27Smrg    <para>
3543e120bd27SmrgThis routine returns <symbol>NULL</symbol> if it was unable to add the
3544e120bd27Smrgcallback, otherwise it
3545e120bd27Smrgreturns an opaque handle that can be used to remove or lookup the callback.
3546e120bd27Smrg    </para>
3547e120bd27Smrg
3548e120bd27Smrg    <para id="XmuRemoveCloseDisplayHook">
3549e120bd27Smrg      <indexterm zone="XmuRemoveCloseDisplayHook">
3550e120bd27Smrg	<primary><function>XmuRemoveCloseDisplayHook</function></primary>
3551e120bd27Smrg      </indexterm>
3552e120bd27Smrg      <funcsynopsis>
3553e120bd27Smrg	<funcprototype>
3554e120bd27Smrg	  <funcdef>Bool <function>XmuRemoveCloseDisplayHook</function></funcdef>
3555e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
3556e120bd27Smrg	  <paramdef>CloseHook <parameter>handle</parameter></paramdef>
3557e120bd27Smrg	  <paramdef>int <parameter>( *func )</parameter>
3558e120bd27Smrg	    <funcparams>Display *, XPointer</funcparams></paramdef>
3559e120bd27Smrg	  <paramdef>XPointer <parameter>arg</parameter></paramdef>
3560e120bd27Smrg	</funcprototype>
3561e120bd27Smrg      </funcsynopsis>
3562e120bd27Smrg      <variablelist>
3563e120bd27Smrg	<varlistentry>
3564e120bd27Smrg	  <term><parameter>dpy</parameter></term>
3565e120bd27Smrg	  <listitem><para>
3566e120bd27Smrgspecifies the connection to the X server
3567e120bd27Smrg	    </para></listitem>
3568e120bd27Smrg	</varlistentry>
3569e120bd27Smrg	<varlistentry>
3570e120bd27Smrg	  <term><parameter>handle</parameter></term>
3571e120bd27Smrg	  <listitem><para>
3572e120bd27Smrgspecifies the callback by id, or <symbol>NULL</symbol>
3573e120bd27Smrg	    </para></listitem>
3574e120bd27Smrg	</varlistentry>
3575e120bd27Smrg	<varlistentry>
3576e120bd27Smrg	  <term><function>func</function></term>
3577e120bd27Smrg	  <listitem><para>
3578e120bd27Smrgspecifies the callback by function
3579e120bd27Smrg	    </para></listitem>
3580e120bd27Smrg	</varlistentry>
3581e120bd27Smrg	<varlistentry>
3582e120bd27Smrg	  <term><parameter>arg</parameter></term>
3583e120bd27Smrg		<listitem><para>
3584e120bd27Smrgspecifies the function data to match
3585e120bd27Smrg	    </para></listitem>
3586e120bd27Smrg	</varlistentry>
3587e120bd27Smrg      </variablelist>
3588e120bd27Smrg
3589e120bd27SmrgThis function deletes a callback that has been added with
3590e120bd27Smrg<function>XmuAddCloseDisplayHook</function>.
3591e120bd27SmrgIf handle is not <symbol>NULL</symbol>, it specifies the callback to
3592e120bd27Smrgremove, and the func and arg parameters are ignored.  If handle is <symbol>NULL</symbol>, the
3593e120bd27Smrgfirst callback found to match the specified func and arg will be removed.
3594e120bd27SmrgReturns
3595e120bd27Smrg<symbol>True</symbol>
3596e120bd27Smrgif a callback was removed, else returns
3597e120bd27Smrg<symbol>False</symbol>.
3598e120bd27Smrg    </para>
3599e120bd27Smrg
3600e120bd27Smrg    <para id="XmuLookupCloseDisplayHook">
3601e120bd27Smrg      <indexterm zone="XmuLookupCloseDisplayHook">
3602e120bd27Smrg	<primary><function>XmuLookupCloseDisplayHook</function></primary>
3603e120bd27Smrg      </indexterm>
3604e120bd27Smrg      <funcsynopsis>
3605e120bd27Smrg	<funcprototype>
3606e120bd27Smrg	  <funcdef>Bool <function>XmuLookupCloseDisplayHook</function></funcdef>
3607e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
3608e120bd27Smrg	  <paramdef>CloseHook <parameter>handle</parameter></paramdef>
3609e120bd27Smrg	  <paramdef>int <parameter>( *func )</parameter>
3610e120bd27Smrg	    <funcparams>Display *, XPointer</funcparams></paramdef>
3611e120bd27Smrg	  <paramdef>XPointer <parameter>arg</parameter></paramdef>
3612e120bd27Smrg	</funcprototype>
3613e120bd27Smrg      </funcsynopsis>
3614e120bd27Smrg      <variablelist>
3615e120bd27Smrg	<varlistentry>
3616e120bd27Smrg	  <term><parameter>dpy</parameter></term>
3617e120bd27Smrg	  <listitem><para>
3618e120bd27Smrgspecifies the connection to the X server
3619e120bd27Smrg	    </para></listitem>
3620e120bd27Smrg	</varlistentry>
3621e120bd27Smrg	<varlistentry>
3622e120bd27Smrg	  <term><parameter>handle</parameter></term>
3623e120bd27Smrg	  <listitem><para>
3624e120bd27Smrgspecifies the callback by id, or <symbol>NULL</symbol>
3625e120bd27Smrg	    </para></listitem>
3626e120bd27Smrg	</varlistentry>
3627e120bd27Smrg	<varlistentry>
3628e120bd27Smrg	  <term><function>func</function></term>
3629e120bd27Smrg	  <listitem><para>
3630e120bd27Smrgspecifies the callback by function
3631e120bd27Smrg	    </para></listitem>
3632e120bd27Smrg	</varlistentry>
3633e120bd27Smrg	<varlistentry>
3634e120bd27Smrg	  <term><parameter>arg</parameter></term>
3635e120bd27Smrg	  <listitem><para>
3636e120bd27Smrgspecifies the function data to match
3637e120bd27Smrg	    </para></listitem>
3638e120bd27Smrg	</varlistentry>
3639e120bd27Smrg      </variablelist>
3640e120bd27Smrg
3641e120bd27SmrgThis function determines if a callback is installed.  If handle is not
3642e120bd27Smrg<symbol>NULL</symbol>,
3643e120bd27Smrgit specifies the callback to look for, and the func and arg parameters are
3644e120bd27Smrgignored.  If handle is <symbol>NULL</symbol>, the function will look for
3645e120bd27Smrgany callback for the
3646e120bd27Smrgspecified func and arg.  Returns
3647e120bd27Smrg<symbol>True</symbol>
3648e120bd27Smrgif a matching callback exists, else returns
3649e120bd27Smrg<symbol>False</symbol>.
3650e120bd27Smrg
3651e120bd27Smrg
3652e120bd27Smrg    </para>
3653e120bd27Smrg  </sect1>
3654e120bd27Smrg
36550cc2eac3Smrg  <sect1 id='Display_Queue_Functions'>
36560cc2eac3Smrg<title>Display Queue Functions</title>
3657e120bd27Smrg
3658e120bd27Smrg    <para>
3659e120bd27SmrgTo use the functions and types defined in this section, you should include the
3660e120bd27Smrgheader file
3661e120bd27Smrg&lt;<filename class='headerfile'>X11/Xmu/DisplayQue.h</filename>&gt;
3662e120bd27Smrg<indexterm>
3663e120bd27Smrg<primary><filename class='headerfile'>X11/Xmu/DisplayQue.h</filename></primary>
3664e120bd27Smrg</indexterm>
3665e120bd27Smrgand link against the libXmu library.
3666e120bd27Smrg<filename class='headerfile'>DisplayQue.h</filename> defines the following
3667e120bd27Smrgtypes:
3668e120bd27Smrg
3669e120bd27Smrg      <indexterm zone="XmuDisplayQueue">
3670e120bd27Smrg	<primary><type>XmuDisplayQueue</type></primary>
3671e120bd27Smrg      </indexterm>
3672e120bd27Smrg      <synopsis id="XmuDisplayQueue">
3673e120bd27Smrgtypedef int (*XmuCloseDisplayQueueProc)(XmuDisplayQueue *queue,
3674e120bd27Smrg                                        XmuDisplayQueueEntry *entry);
3675e120bd27Smrg
3676e120bd27Smrgtypedef int (*XmuFreeDisplayQueueProc)(XmuDisplayQueue *queue);
3677e120bd27Smrg
3678e120bd27Smrgtypedef struct _XmuDisplayQueueEntry {
3679e120bd27Smrg	struct _XmuDisplayQueueEntry *prev, *next;
3680e120bd27Smrg	Display *display;
3681e120bd27Smrg	CloseHook closehook;
3682e120bd27Smrg	XPointer data;
3683e120bd27Smrg} XmuDisplayQueueEntry;
3684e120bd27Smrg
3685e120bd27Smrgtypedef struct _XmuDisplayQueue {
3686e120bd27Smrg	int nentries;
3687e120bd27Smrg	XmuDisplayQueueEntry *head, *tail;
3688e120bd27Smrg	XmuCloseDisplayQueueProc closefunc;
3689e120bd27Smrg	XmuFreeDisplayQueueProc freefunc;
3690e120bd27Smrg	XPointer data;
3691e120bd27Smrg} XmuDisplayQueue;
3692e120bd27Smrg      </synopsis>
3693e120bd27Smrg    </para>
3694e120bd27Smrg
3695e120bd27Smrg    <para id="XmuDQCreate">
3696e120bd27Smrg      <indexterm zone="XmuDQCreate">
3697e120bd27Smrg	<primary><function>XmuDQCreate</function></primary>
3698e120bd27Smrg      </indexterm>
3699e120bd27Smrg      <funcsynopsis>
3700e120bd27Smrg	<funcprototype>
3701e120bd27Smrg	  <funcdef>XmuDisplayQueue *<function>XmuDQCreate</function></funcdef>
3702e120bd27Smrg	  <paramdef>XmuCloseDisplayQueueProc <parameter>closefunc</parameter></paramdef>
3703e120bd27Smrg	  <paramdef>XmuFreeDisplayQueueProc <parameter>freefunc</parameter></paramdef>
3704e120bd27Smrg	  <paramdef>XPointer <parameter>data</parameter></paramdef>
3705e120bd27Smrg	</funcprototype>
3706e120bd27Smrg      </funcsynopsis>
3707e120bd27Smrg      <variablelist>
3708e120bd27Smrg	<varlistentry>
3709e120bd27Smrg	  <term><parameter>closefunc</parameter></term>
3710e120bd27Smrg	  <listitem><para>
3711e120bd27Smrgspecifies the close function
3712e120bd27Smrg	    </para></listitem>
3713e120bd27Smrg	</varlistentry>
3714e120bd27Smrg	<varlistentry>
3715e120bd27Smrg	  <term><parameter>freefunc</parameter></term>
3716e120bd27Smrg	  <listitem><para>
3717e120bd27Smrgspecifies the free function
3718e120bd27Smrg	    </para></listitem>
3719e120bd27Smrg	</varlistentry>
3720e120bd27Smrg	<varlistentry>
3721e120bd27Smrg	  <term><parameter>data</parameter></term>
3722e120bd27Smrg	  <listitem><para>
3723e120bd27Smrgspecifies private data for the functions
3724e120bd27Smrg	    </para></listitem>
3725e120bd27Smrg	</varlistentry>
3726e120bd27Smrg      </variablelist>
3727e120bd27Smrg
3728e120bd27SmrgThis function creates and returns an empty
3729e120bd27Smrg<type>XmuDisplayQueue</type>
3730e120bd27Smrg(which is really just a set of displays, but is called a queue for
3731e120bd27Smrghistorical reasons).  The queue is initially empty, but displays
3732e120bd27Smrgcan be added using
3733e120bd27Smrg<function>XmuAddDisplay</function>.
3734e120bd27SmrgThe data value is simply stored in the queue for use by the closefunc
3735e120bd27Smrgand freefunc callbacks.
3736e120bd27SmrgWhenever a display in the queue is closed using
3737e120bd27Smrg<function>XCloseDisplay</function>,
3738e120bd27Smrgthe <parameter>closefunc</parameter> (if non-<symbol>NULL</symbol>) is called with the queue and the display's
3739e120bd27Smrg<function>XmuDisplayQueueEntry</function>
3740e120bd27Smrgas follows:
3741e120bd27Smrg      <programlisting>
3742e120bd27Smrg	(*closefunc)(queue, entry)
3743e120bd27Smrg      </programlisting>
3744e120bd27Smrg    </para>
3745e120bd27Smrg
3746e120bd27Smrg    <para>
3747e120bd27SmrgThe <parameter>freefunc</parameter> (if non-<symbol>NULL</symbol>) is called whenever the last
3748e120bd27Smrgdisplay in the
3749e120bd27Smrgqueue is closed, as follows:
3750e120bd27Smrg
3751e120bd27Smrg      <programlisting>
3752e120bd27Smrg	(*freefunc)(queue)
3753e120bd27Smrg      </programlisting>
3754e120bd27Smrg    </para>
3755e120bd27Smrg
3756e120bd27Smrg    <para>
3757e120bd27SmrgThe application is responsible for actually freeing the queue, by calling
3758e120bd27Smrg<function>XmuDQDestroy</function>.
3759e120bd27Smrg    </para>
3760e120bd27Smrg
3761e120bd27Smrg    <para id="XmuDQAddDisplay">
3762e120bd27Smrg      <indexterm zone="XmuDQAddDisplay">
3763e120bd27Smrg	<primary><function>XmuDQAddDisplay</function></primary>
3764e120bd27Smrg      </indexterm>
3765e120bd27Smrg      <funcsynopsis>
3766e120bd27Smrg	<funcprototype>
3767e120bd27Smrg	  <funcdef>XmuDisplayQueueEntry *<function>XmuDQAddDisplay</function></funcdef>
3768e120bd27Smrg	  <paramdef>XmuDisplayQueue *<parameter>q</parameter></paramdef>
3769e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
3770e120bd27Smrg	  <paramdef>XPointer <parameter>data</parameter></paramdef>
3771e120bd27Smrg	</funcprototype>
3772e120bd27Smrg     </funcsynopsis>
3773e120bd27Smrg
3774e120bd27Smrg      <variablelist>
3775e120bd27Smrg	<varlistentry>
3776e120bd27Smrg	  <term><parameter>q</parameter></term>
3777e120bd27Smrg	  <listitem><para>
3778e120bd27Smrgspecifies the queue
3779e120bd27Smrg	    </para></listitem>
3780e120bd27Smrg	</varlistentry>
3781e120bd27Smrg	<varlistentry>
3782e120bd27Smrg	  <term><parameter>dpy</parameter></term>
3783e120bd27Smrg	  <listitem><para>
3784e120bd27Smrgspecifies the display to add
3785e120bd27Smrg	    </para></listitem>
3786e120bd27Smrg	</varlistentry>
3787e120bd27Smrg	<varlistentry>
3788e120bd27Smrg	  <term><parameter>data</parameter></term>
3789e120bd27Smrg	  <listitem><para>
3790e120bd27Smrgspecifies private data for the free function
3791e120bd27Smrg	    </para></listitem>
3792e120bd27Smrg	</varlistentry>
3793e120bd27Smrg      </variablelist>
3794e120bd27Smrg
3795e120bd27SmrgThis function adds the specified display to the queue.  If successful,
3796e120bd27Smrgthe queue entry is returned, otherwise <symbol>NULL</symbol> is returned.
3797e120bd27SmrgThe data value is simply stored in the queue entry for use by the
3798e120bd27Smrgqueue's freefunc callback.  This function does not attempt to prevent
3799e120bd27Smrgduplicate entries in the queue; the caller should use
3800e120bd27Smrg<function>XmuDQLookupDisplay</function>
3801e120bd27Smrgto determine if a display has already been added to a queue.
3802e120bd27Smrg    </para>
3803e120bd27Smrg
3804e120bd27Smrg    <para id="XmuDQLookupDisplay">
3805e120bd27Smrg      <indexterm zone="XmuDQLookupDisplay">
3806e120bd27Smrg	<primary><function>XmuDQLookupDisplay</function></primary>
3807e120bd27Smrg      </indexterm>
3808e120bd27Smrg      <funcsynopsis>
3809e120bd27Smrg	<funcprototype>
3810e120bd27Smrg	  <funcdef>XmuDisplayQueueEntry *<function>XmuDQLookupDisplay</function></funcdef>
3811e120bd27Smrg	  <paramdef>XmuDisplayQueue *<parameter>q</parameter></paramdef>
3812e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
3813e120bd27Smrg	</funcprototype>
3814e120bd27Smrg      </funcsynopsis>
3815e120bd27Smrg      <variablelist>
3816e120bd27Smrg	<varlistentry>
3817e120bd27Smrg	  <term><parameter>q</parameter></term>
3818e120bd27Smrg	  <listitem><para>
3819e120bd27Smrgspecifies the queue
3820e120bd27Smrg	    </para></listitem>
3821e120bd27Smrg	</varlistentry>
3822e120bd27Smrg	<varlistentry>
3823e120bd27Smrg	  <term><parameter>dpy</parameter></term>
3824e120bd27Smrg	  <listitem><para>
3825e120bd27Smrgspecifies the display to lookup
3826e120bd27Smrg	    </para></listitem>
3827e120bd27Smrg	</varlistentry>
3828e120bd27Smrg      </variablelist>
3829e120bd27Smrg
3830e120bd27SmrgThis function returns the queue entry for the specified display, or
3831e120bd27Smrg<symbol>NULL</symbol> if
3832e120bd27Smrgthe display is not in the queue.
3833e120bd27Smrg    </para>
3834e120bd27Smrg
3835e120bd27Smrg    <para id="XmuDQNDisplays">
3836e120bd27Smrg      <indexterm zone="XmuDQNDisplays">
3837e120bd27Smrg	<primary><function>XmuDQNDisplays</function></primary>
3838e120bd27Smrg      </indexterm>
3839e120bd27Smrg      <funcsynopsis>
3840e120bd27Smrg	<funcprototype>
3841e120bd27Smrg	  <funcdef><function>XmuDQNDisplays</function></funcdef>
3842e120bd27Smrg	      <paramdef><parameter>q</parameter></paramdef>
3843e120bd27Smrg	</funcprototype>
3844e120bd27Smrg      </funcsynopsis>
3845e120bd27SmrgThis macro returns the number of displays in the specified queue.
3846e120bd27Smrg    </para>
3847e120bd27Smrg
3848e120bd27Smrg    <para id="XmuDQRemoveDisplay">
3849e120bd27Smrg      <indexterm zone="XmuDQRemoveDisplay">
3850e120bd27Smrg	<primary><function>XmuDQRemoveDisplay</function></primary>
3851e120bd27Smrg      </indexterm>
3852e120bd27Smrg      <funcsynopsis>
3853e120bd27Smrg	<funcprototype>
3854e120bd27Smrg	  <funcdef>Bool <function>XmuDQRemoveDisplay</function></funcdef>
3855e120bd27Smrg	  <paramdef>XmuDisplayQueue *<parameter>q</parameter></paramdef>
3856e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
3857e120bd27Smrg	</funcprototype>
3858e120bd27Smrg      </funcsynopsis>
3859e120bd27Smrg      <variablelist>
3860e120bd27Smrg	<varlistentry>
3861e120bd27Smrg	  <term><parameter>q</parameter></term>
3862e120bd27Smrg	  <listitem><para>
3863e120bd27Smrgspecifies the queue
3864e120bd27Smrg	    </para></listitem>
3865e120bd27Smrg	</varlistentry>
3866e120bd27Smrg	<varlistentry>
3867e120bd27Smrg	  <term><parameter>dpy</parameter></term>
3868e120bd27Smrg	  <listitem><para>
3869e120bd27Smrgspecifies the display to remove
3870e120bd27Smrg	    </para></listitem>
3871e120bd27Smrg	</varlistentry>
3872e120bd27Smrg      </variablelist>
3873e120bd27Smrg
3874e120bd27SmrgThis function removes the specified display from the specified queue.
3875e120bd27SmrgNo callbacks are performed.
3876e120bd27SmrgIf the display is not found in the queue,
3877e120bd27Smrg<symbol>False</symbol>
3878e120bd27Smrgis returned, otherwise
3879e120bd27Smrg<symbol>True</symbol>
3880e120bd27Smrgis returned.
3881e120bd27Smrg    </para>
3882e120bd27Smrg
3883e120bd27Smrg    <para id="XmuDQDestroy">
3884e120bd27Smrg      <indexterm zone="XmuDQDestroy">
3885e120bd27Smrg	<primary><function>XmuDQDestroy</function></primary>
3886e120bd27Smrg      </indexterm>
3887e120bd27Smrg      <funcsynopsis>
3888e120bd27Smrg	<funcprototype>
3889e120bd27Smrg	  <funcdef>Bool <function>XmuDQDestroy</function></funcdef>
3890e120bd27Smrg	  <paramdef>XmuDisplayQueue *<parameter>q</parameter></paramdef>
3891e120bd27Smrg	  <paramdef>Bool <parameter>docallbacks</parameter></paramdef>
3892e120bd27Smrg	</funcprototype>
3893e120bd27Smrg      </funcsynopsis>
3894e120bd27Smrg      <variablelist>
3895e120bd27Smrg	<varlistentry>
3896e120bd27Smrg	  <term><parameter>q</parameter></term>
3897e120bd27Smrg	  <listitem><para>
3898e120bd27Smrgspecifies the queue to destroy
3899e120bd27Smrg	    </para></listitem>
3900e120bd27Smrg	</varlistentry>
3901e120bd27Smrg	<varlistentry>
3902e120bd27Smrg	  <term><parameter>docallbacks</parameter></term>
3903e120bd27Smrg	  <listitem><para>
3904e120bd27Smrgspecifies whether close functions should be called
3905e120bd27Smrg	    </para></listitem>
3906e120bd27Smrg	</varlistentry>
3907e120bd27Smrg      </variablelist>
3908e120bd27Smrg
3909e120bd27SmrgThis function releases all memory associated with the specified queue.
3910e120bd27SmrgIf docallbacks is
3911e120bd27Smrg<symbol>True</symbol>,
3912e120bd27Smrgthen the queue's closefunc callback (if non-<symbol>NULL</symbol>) is first called
3913e120bd27Smrgfor each display in the queue, even though
3914e120bd27Smrg<function>XCloseDisplay</function>
3915e120bd27Smrgis not called on the display.
3916e120bd27Smrg    </para>
3917e120bd27Smrg
3918e120bd27Smrg  </sect1>
3919e120bd27Smrg
39200cc2eac3Smrg  <sect1 id='Toolkit_Convenience_Functions'>
39210cc2eac3Smrg<title>Toolkit Convenience Functions</title>
3922e120bd27Smrg
3923e120bd27Smrg    <para>
3924e120bd27SmrgTo use the functions defined in this section, you should include the header
3925e120bd27Smrgfile
3926e120bd27Smrg&lt;<filename class='headerfile'>X11/Xmu/Initer.h</filename>&gt;
3927e120bd27Smrg<indexterm>
3928e120bd27Smrg<primary><filename class='headerfile'>X11/Xmu/Initer.h</filename></primary>
3929e120bd27Smrg</indexterm>
3930e120bd27Smrgand link against the libXmu library.
3931e120bd27Smrg    </para>
3932e120bd27Smrg
3933e120bd27Smrg    <para id="XmuAddInitializer">
3934e120bd27Smrg      <indexterm zone="XmuAddInitializer">
3935e120bd27Smrg	<primary><function>XmuAddInitializer</function></primary>
3936e120bd27Smrg      </indexterm>
3937e120bd27Smrg      <funcsynopsis>
3938e120bd27Smrg	<funcprototype>
3939e120bd27Smrg	  <funcdef>void <function>XmuAddInitializer</function></funcdef>
3940e120bd27Smrg	  <paramdef>void <parameter>( *func )</parameter>
3941e120bd27Smrg	    <funcparams>XtAppContext, XPointer</funcparams></paramdef>
3942e120bd27Smrg	  <paramdef>XPointer <parameter>data</parameter></paramdef>
3943e120bd27Smrg	</funcprototype>
3944e120bd27Smrg      </funcsynopsis>
3945e120bd27Smrg      <variablelist>
3946e120bd27Smrg	<varlistentry>
3947e120bd27Smrg	  <term><parameter>func</parameter></term>
3948e120bd27Smrg	  <listitem><para>
3949e120bd27Smrgspecifies the procedure to register
3950e120bd27Smrg	    </para></listitem>
3951e120bd27Smrg	</varlistentry>
3952e120bd27Smrg	<varlistentry>
3953e120bd27Smrg	  <term><parameter>data</parameter></term>
3954e120bd27Smrg	  <listitem><para>
3955e120bd27Smrgspecifies private data for the procedure
3956e120bd27Smrg	    </para></listitem>
3957e120bd27Smrg	</varlistentry>
3958e120bd27Smrg      </variablelist>
3959e120bd27Smrg
3960e120bd27SmrgThis function registers a procedure, to be invoked the first time
3961e120bd27Smrg<function>XmuCallInitializers</function>
3962e120bd27Smrgis called on a given application context.  The procedure
3963e120bd27Smrgis called with the application context and the specified data:
3964e120bd27Smrg
3965e120bd27Smrg      <programlisting>
3966e120bd27Smrg	(*func)(app_con, data)
3967e120bd27Smrg      </programlisting>
3968e120bd27Smrg    </para>
3969e120bd27Smrg
3970e120bd27Smrg    <para id="XmuCallInitializers">
3971e120bd27Smrg      <indexterm zone="XmuCallInitializers">
3972e120bd27Smrg	<primary><function>XmuCallInitializers</function></primary>
3973e120bd27Smrg      </indexterm>
3974e120bd27Smrg      <funcsynopsis>
3975e120bd27Smrg	<funcprototype>
3976e120bd27Smrg	  <funcdef>void <function>XmuCallInitializers</function></funcdef>
3977e120bd27Smrg	  <paramdef>XtAppContext <parameter>app_con</parameter></paramdef>
3978e120bd27Smrg	</funcprototype>
3979e120bd27Smrg      </funcsynopsis>
3980e120bd27Smrg      <variablelist>
3981e120bd27Smrg	<varlistentry>
3982e120bd27Smrg	  <term><parameter>app_con</parameter></term>
3983e120bd27Smrg	  <listitem><para>
3984e120bd27Smrgspecifies the application context to initialize
3985e120bd27Smrg	    </para></listitem>
3986e120bd27Smrg	</varlistentry>
3987e120bd27Smrg      </variablelist>
3988e120bd27Smrg
3989e120bd27SmrgThis function calls each of the procedures that have been registered with
3990e120bd27Smrg<function>XmuAddInitializer</function>,
3991e120bd27Smrgif this is the first time the application context has been passed to
3992e120bd27Smrg<function>XmuCallInitializers</function>.
3993e120bd27SmrgOtherwise, this function does nothing.
3994e120bd27Smrg    </para>
3995e120bd27Smrg
3996e120bd27Smrg  </sect1>
3997e120bd27Smrg
39980cc2eac3Smrg  <sect1 id='Standard_Colormap_Functions'>
39990cc2eac3Smrg<title>Standard Colormap Functions</title>
4000e120bd27Smrg
4001e120bd27Smrg    <para>
4002e120bd27SmrgTo use the functions defined in this section, you should include the header
4003e120bd27Smrgfile
4004e120bd27Smrg&lt;<filename class='headerfile'>X11/Xmu/StdCmap.h</filename>&gt;
4005e120bd27Smrg<indexterm>
4006e120bd27Smrg<primary><filename class='headerfile'>X11/Xmu/StdCmap.h</filename></primary>
4007e120bd27Smrg</indexterm>
4008e120bd27Smrgand link against the libXmu library.
4009e120bd27Smrg    </para>
4010e120bd27Smrg
4011e120bd27Smrg    <para id="XmuAllStandardColormaps">
4012e120bd27Smrg      <indexterm zone="XmuAllStandardColormaps">
4013e120bd27Smrg	<primary><function>XmuAllStandardColormaps</function></primary>
4014e120bd27Smrg      </indexterm>
4015e120bd27Smrg      <funcsynopsis>
4016e120bd27Smrg	<funcprototype>
4017e120bd27Smrg	  <funcdef>Status <function>XmuAllStandardColormaps</function></funcdef>
4018e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
4019e120bd27Smrg	</funcprototype>
4020e120bd27Smrg      </funcsynopsis>
4021e120bd27Smrg      <variablelist>
4022e120bd27Smrg	<varlistentry>
4023e120bd27Smrg	  <term><parameter>dpy</parameter></term>
4024e120bd27Smrg	  <listitem><para>
4025e120bd27Smrgspecifies the connection to the X server
4026e120bd27Smrg	    </para></listitem>
4027e120bd27Smrg	</varlistentry>
4028e120bd27Smrg      </variablelist>
4029e120bd27Smrg
4030e120bd27Smrg      <indexterm>
4031e120bd27Smrg	<primary>colormaps</primary><secondary>standard</secondary>
4032e120bd27Smrg      </indexterm>
4033e120bd27SmrgTo create all of the appropriate standard colormaps for every visual of
4034e120bd27Smrgevery screen on a given display, use
4035e120bd27Smrg<function>XmuAllStandardColormaps</function>.
4036e120bd27Smrg    </para>
4037e120bd27Smrg
4038e120bd27Smrg    <para>
4039e120bd27SmrgThis function defines and retains as permanent resources all standard
4040e120bd27Smrgcolormaps which are meaningful for the visuals of each screen of the
4041e120bd27Smrgdisplay.  It returns 0 on failure, non-zero on success.  If the property of
4042e120bd27Smrgany standard colormap is already defined, this function will redefine it.
4043e120bd27Smrg    </para>
4044e120bd27Smrg
4045e120bd27Smrg    <para>
4046e120bd27SmrgThis function is intended to be used by window managers or a special client
4047e120bd27Smrgat the start of a session.
4048e120bd27Smrg    </para>
4049e120bd27Smrg
4050e120bd27Smrg    <para>
4051e120bd27SmrgThe standard colormaps of a screen are defined by properties associated with
4052e120bd27Smrgthe screen's root window.  The property names of standard colormaps are
4053e120bd27Smrgpredefined, and each property name except
4054e120bd27Smrg<property>RGB_DEFAULT_MAP</property> may describe at
4055e120bd27Smrgmost one colormap.
4056e120bd27Smrg    </para>
4057e120bd27Smrg
4058e120bd27Smrg    <para>
4059e120bd27SmrgThe standard colormaps are: <property>RGB_BEST_MAP</property>,
4060e120bd27Smrg<property>RGB_RED_MAP</property>, <property>RGB_GREEN_MAP</property>,
4061e120bd27Smrg<property>RGB_BLUE_MAP</property>, <property>RGB_DEFAULT_MAP</property>,
4062e120bd27Smrg and <property>RGB_GRAY_MAP</property>.  Therefore a screen may
4063e120bd27Smrghave at most 6 standard colormap properties defined.
4064e120bd27Smrg    </para>
4065e120bd27Smrg
4066e120bd27Smrg    <para>
4067e120bd27SmrgA standard colormap is associated with a particular visual of the screen.  A
4068e120bd27Smrgscreen may have multiple visuals defined, including visuals of the same
4069e120bd27Smrgclass at different depths.  Note that a visual id might be repeated for more
4070e120bd27Smrgthan one depth, so the visual id and the depth of a visual identify the
4071e120bd27Smrgvisual.  The characteristics of the visual will determine which standard
4072e120bd27Smrgcolormaps are meaningful under that visual, and will determine how the
4073e120bd27Smrgstandard colormap is defined.  Because a standard colormap is associated
4074e120bd27Smrgwith a specific visual, there must be a method of determining which visuals
4075e120bd27Smrgtake precedence in defining standard colormaps.
4076e120bd27Smrg    </para>
4077e120bd27Smrg
4078e120bd27Smrg    <para>
4079e120bd27SmrgThe method used here is: for the visual of greatest depth, define all
4080e120bd27Smrgstandard colormaps meaningful to that visual class, according to this order
4081e120bd27Smrgof (descending) precedence:
4082e120bd27Smrg<symbol>DirectColor</symbol>;
4083e120bd27Smrg<symbol>PseudoColor</symbol>;
4084e120bd27Smrg<symbol>TrueColor</symbol>
4085e120bd27Smrgand
4086e120bd27Smrg<symbol>GrayScale</symbol>;
4087e120bd27Smrgand finally
4088e120bd27Smrg<symbol>StaticColor</symbol>
4089e120bd27Smrgand
4090e120bd27Smrg<symbol>StaticGray</symbol>.
4091e120bd27Smrg    </para>
4092e120bd27Smrg
4093e120bd27Smrg<para>This function allows success, on a per screen basis.  For example, if a map
4094e120bd27Smrgon screen 1 fails, the maps on screen 0, created earlier, will remain.
4095e120bd27SmrgHowever, none on screen 1 will remain.  If a map on screen 0 fails, none
4096e120bd27Smrgwill remain.
4097e120bd27Smrg    </para>
4098e120bd27Smrg
4099e120bd27Smrg    <para>
4100e120bd27SmrgSee
4101e120bd27Smrg<link linkend="XmuVisualStandardColormaps"><function>XmuVisualStandardColormaps</function></link>
4102e120bd27Smrgfor which standard colormaps are meaningful under these classes of visuals.
4103e120bd27Smrg    </para>
4104e120bd27Smrg
4105e120bd27Smrg    <para id="XmuVisualStandardColormaps">
4106e120bd27Smrg      <indexterm zone="XmuVisualStandardColormaps">
4107e120bd27Smrg	<primary><function>XmuVisualStandardColormaps</function></primary>
4108e120bd27Smrg      </indexterm>
4109e120bd27Smrg      <funcsynopsis>
4110e120bd27Smrg	<funcprototype>
4111e120bd27Smrg	  <funcdef>Status <function>XmuVisualStandardColormaps</function></funcdef>
4112e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
4113e120bd27Smrg	  <paramdef>int <parameter>screen</parameter></paramdef>
4114e120bd27Smrg	  <paramdef>VisualID <parameter>visualid</parameter></paramdef>
4115e120bd27Smrg	  <paramdef>unsigned int <parameter>depth</parameter></paramdef>
4116e120bd27Smrg	  <paramdef>Bool <parameter>replace</parameter></paramdef>
4117e120bd27Smrg	  <paramdef>Bool <parameter>retain</parameter></paramdef>
4118e120bd27Smrg	</funcprototype>
4119e120bd27Smrg      </funcsynopsis>
4120e120bd27Smrg      <variablelist>
4121e120bd27Smrg	<varlistentry>
4122e120bd27Smrg	  <term><parameter>dpy</parameter></term>
4123e120bd27Smrg	  <listitem><para>
4124e120bd27Smrgspecifies the connection to the X server
4125e120bd27Smrg	    </para></listitem>
4126e120bd27Smrg	</varlistentry>
4127e120bd27Smrg	<varlistentry>
4128e120bd27Smrg	  <term><parameter>screen</parameter></term>
4129e120bd27Smrg	  <listitem><para>
4130e120bd27Smrgspecifies the screen of the display
4131e120bd27Smrg	    </para></listitem>
4132e120bd27Smrg	</varlistentry>
4133e120bd27Smrg	<varlistentry>
4134e120bd27Smrg	  <term><parameter>visualid</parameter></term>
4135e120bd27Smrg	  <listitem><para>
4136e120bd27Smrgspecifies the visual type
4137e120bd27Smrg	    </para></listitem>
4138e120bd27Smrg	</varlistentry>
4139e120bd27Smrg	<varlistentry>
4140e120bd27Smrg	  <term><parameter>depth</parameter></term>
4141e120bd27Smrg	  <listitem><para>
4142e120bd27Smrgspecifies the visual depth
4143e120bd27Smrg	    </para></listitem>
4144e120bd27Smrg	</varlistentry>
4145e120bd27Smrg	<varlistentry>
4146e120bd27Smrg	  <term><parameter>replace</parameter></term>
4147e120bd27Smrg	  <listitem><para>
4148e120bd27Smrgspecifies whether or not to replace
4149e120bd27Smrg	    </para></listitem>
4150e120bd27Smrg	</varlistentry>
4151e120bd27Smrg	<varlistentry>
4152e120bd27Smrg	  <term><parameter>retain</parameter></term>
4153e120bd27Smrg	  <listitem><para>
4154e120bd27Smrgspecifies whether or not to retain
4155e120bd27Smrg	    </para></listitem>
4156e120bd27Smrg	</varlistentry>
4157e120bd27Smrg      </variablelist>
4158e120bd27Smrg
4159e120bd27SmrgTo create all of the appropriate standard colormaps for a given visual on a
4160e120bd27Smrggiven screen, use
4161e120bd27Smrg<function>XmuVisualStandardColormaps</function>.
4162e120bd27Smrg    </para>
4163e120bd27Smrg
4164e120bd27Smrg    <para>
4165e120bd27SmrgThis function defines all appropriate standard colormap properties for the
4166e120bd27Smrggiven visual.  If replace is
4167e120bd27Smrg<symbol>True</symbol>,
4168e120bd27Smrgany previous definition will be removed.
4169e120bd27SmrgIf retain is
4170e120bd27Smrg<symbol>True</symbol>,
4171e120bd27Smrgnew properties will be retained for the duration of the
4172e120bd27Smrgserver session.  This function returns 0 on failure, non-zero on success.
4173e120bd27SmrgOn failure, no new properties will be defined, but old ones may have been
4174e120bd27Smrgremoved if replace was <symbol>True</symbol>.
4175e120bd27Smrg    </para>
4176e120bd27Smrg
4177e120bd27Smrg    <para>
4178e120bd27SmrgNot all standard colormaps are meaningful to all visual classes.  This
4179e120bd27Smrgroutine will check and define the following properties for the following
4180e120bd27Smrgclasses, provided that the size of the colormap is not too small.  For
4181e120bd27Smrg<symbol>DirectColor</symbol>
4182e120bd27Smrgand
4183e120bd27Smrg<symbol>PseudoColor</symbol>:
4184e120bd27Smrg<property>RGB_DEFAULT_MAP</property>, <property>RGB_BEST_MAP</property>,
4185e120bd27Smrg<property>RGB_RED_MAP</property>, <property>RGB_GREEN_MAP</property>,
4186e120bd27Smrg<property>RGB_BLUE_MAP</property>, and <property>RGB_GRAY_MAP</property>.
4187e120bd27SmrgFor
4188e120bd27Smrg<symbol>TrueColor</symbol>
4189e120bd27Smrgand
4190e120bd27Smrg<symbol>StaticColor</symbol>:
4191e120bd27Smrg<property>RGB_BEST_MAP</property>.  For
4192e120bd27Smrg<symbol>GrayScale</symbol>
4193e120bd27Smrgand
4194e120bd27Smrg<symbol>StaticGray</symbol>:
4195e120bd27Smrg<property>RGB_GRAY_MAP</property>.
4196e120bd27Smrg    </para>
4197e120bd27Smrg
4198e120bd27Smrg    <para id="XmuLookupStandardColormap">
4199e120bd27Smrg      <indexterm zone="XmuLookupStandardColormap">
4200e120bd27Smrg	<primary><function>XmuLookupStandardColormap</function></primary>
4201e120bd27Smrg      </indexterm>
4202e120bd27Smrg      <funcsynopsis>
4203e120bd27Smrg	<funcprototype>
4204e120bd27Smrg	  <funcdef>Status <function>XmuLookupStandardColormap</function></funcdef>
4205e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
4206e120bd27Smrg	  <paramdef>int <parameter>screen</parameter></paramdef>
4207e120bd27Smrg	  <paramdef>VisualID <parameter>visualid</parameter></paramdef>
4208e120bd27Smrg	  <paramdef>unsigned int <parameter>depth</parameter></paramdef>
4209e120bd27Smrg	  <paramdef>Atom <parameter>property</parameter></paramdef>
4210e120bd27Smrg	  <paramdef>Bool <parameter>replace</parameter></paramdef>
4211e120bd27Smrg	  <paramdef>Bool <parameter>retain</parameter></paramdef>
4212e120bd27Smrg	</funcprototype>
4213e120bd27Smrg      </funcsynopsis>
4214e120bd27Smrg      <variablelist>
4215e120bd27Smrg	<varlistentry>
4216e120bd27Smrg	  <term><parameter>dpy</parameter></term>
4217e120bd27Smrg	  <listitem><para>
4218e120bd27Smrgspecifies the connection to the X server
4219e120bd27Smrg	    </para></listitem>
4220e120bd27Smrg	</varlistentry>
4221e120bd27Smrg	<varlistentry>
4222e120bd27Smrg	  <term><parameter>screen</parameter></term>
4223e120bd27Smrg	  <listitem><para>
4224e120bd27Smrgspecifies the screen of the display
4225e120bd27Smrg	    </para></listitem>
4226e120bd27Smrg	</varlistentry>
4227e120bd27Smrg	<varlistentry>
4228e120bd27Smrg	  <term><parameter>visualid</parameter></term>
4229e120bd27Smrg	  <listitem><para>
4230e120bd27Smrgspecifies the visual type
4231e120bd27Smrg	    </para></listitem>
4232e120bd27Smrg	</varlistentry>
4233e120bd27Smrg	<varlistentry>
4234e120bd27Smrg	  <term><parameter>depth</parameter></term>
4235e120bd27Smrg	  <listitem><para>
4236e120bd27Smrgspecifies the visual depth
4237e120bd27Smrg	    </para></listitem>
4238e120bd27Smrg	</varlistentry>
4239e120bd27Smrg	<varlistentry>
4240e120bd27Smrg	  <term><parameter>property</parameter></term>
4241e120bd27Smrg	  <listitem><para>
4242e120bd27Smrgspecifies the standard colormap property
4243e120bd27Smrg	    </para></listitem>
4244e120bd27Smrg	</varlistentry>
4245e120bd27Smrg	<varlistentry>
4246e120bd27Smrg	  <term><parameter>replace</parameter></term>
4247e120bd27Smrg	  <listitem><para>
4248e120bd27Smrgspecifies whether or not to replace
4249e120bd27Smrg	    </para></listitem>
4250e120bd27Smrg	</varlistentry>
4251e120bd27Smrg	<varlistentry>
4252e120bd27Smrg	  <term><parameter>retain</parameter></term>
4253e120bd27Smrg	  <listitem><para>
4254e120bd27Smrgspecifies whether or not to retain
4255e120bd27Smrg	    </para></listitem>
4256e120bd27Smrg	</varlistentry>
4257e120bd27Smrg      </variablelist>
4258e120bd27Smrg
4259e120bd27SmrgTo create a standard colormap if one does not currently exist, or replace
4260e120bd27Smrgthe currently existing standard colormap, use
4261e120bd27Smrg<function>XmuLookupStandardColormap</function>.
4262e120bd27Smrg    </para>
4263e120bd27Smrg
4264e120bd27Smrg    <para>
4265e120bd27SmrgGiven a screen, a visual, and a property, this function will determine the
4266e120bd27Smrgbest allocation for the property under the specified visual, and determine
4267e120bd27Smrgthe whether to create a new colormap or to use the default colormap of the
4268e120bd27Smrgscreen.
4269e120bd27Smrg    </para>
4270e120bd27Smrg
4271e120bd27Smrg    <para>
4272e120bd27SmrgIf replace is True, any previous definition of the property will be
4273e120bd27Smrgreplaced.  If retain is True, the property and the colormap will be made
4274e120bd27Smrgpermanent for the duration of the server session.  However, pre-existing
4275e120bd27Smrgproperty definitions which are not replaced cannot be made permanent by a
4276e120bd27Smrgcall to this function; a request to retain resources pertains to newly
4277e120bd27Smrgcreated resources.
4278e120bd27Smrg    </para>
4279e120bd27Smrg
4280e120bd27Smrg    <para>
4281e120bd27SmrgThis function returns 0 on failure, non-zero on success.  A request to
4282e120bd27Smrgcreate a standard colormap upon a visual which cannot support such a map is
4283e120bd27Smrgconsidered a failure.  An example of this would be requesting any standard
4284e120bd27Smrgcolormap property on a monochrome visual, or, requesting an
4285e120bd27Smrg<property>RGB_BEST_MAP</property> on
4286e120bd27Smrga display whose colormap size is 16.
4287e120bd27Smrg    </para>
4288e120bd27Smrg
4289e120bd27Smrg    <para id="XmuGetColormapAllocation">
4290e120bd27Smrg      <indexterm zone="XmuGetColormapAllocation">
4291e120bd27Smrg	<primary><function>XmuGetColormapAllocation</function></primary>
4292e120bd27Smrg      </indexterm>
4293e120bd27Smrg      <funcsynopsis>
4294e120bd27Smrg	<funcprototype>
4295e120bd27Smrg	  <funcdef>Status <function>XmuGetColormapAllocation</function></funcdef>
4296e120bd27Smrg	  <paramdef>XVisualInfo *<parameter>vinfo</parameter></paramdef>
4297e120bd27Smrg	  <paramdef>Atom <parameter>property</parameter></paramdef>
4298e120bd27Smrg	  <paramdef>unsigned long *<parameter>red_max</parameter></paramdef>
4299e120bd27Smrg	  <paramdef>unsigned long *<parameter>green_max</parameter></paramdef>
4300e120bd27Smrg	  <paramdef>unsigned long *<parameter>blue_max</parameter></paramdef>
4301e120bd27Smrg	</funcprototype>
4302e120bd27Smrg      </funcsynopsis>
4303e120bd27Smrg      <variablelist>
4304e120bd27Smrg	<varlistentry>
4305e120bd27Smrg	  <term><parameter>vinfo</parameter></term>
4306e120bd27Smrg	  <listitem><para>
4307e120bd27Smrgspecifies visual information for a chosen visual
4308e120bd27Smrg	    </para></listitem>
4309e120bd27Smrg	</varlistentry>
4310e120bd27Smrg	<varlistentry>
4311e120bd27Smrg	  <term><parameter>property</parameter></term>
4312e120bd27Smrg	  <listitem><para>
4313e120bd27Smrgspecifies one of the standard colormap property names
4314e120bd27Smrg	    </para></listitem>
4315e120bd27Smrg	</varlistentry>
4316e120bd27Smrg	<varlistentry>
4317e120bd27Smrg	  <term><parameter>red_max</parameter></term>
4318e120bd27Smrg	  <listitem><para>
4319e120bd27Smrgreturns maximum red value</para>
4320e120bd27Smrg	  </listitem>
4321e120bd27Smrg	</varlistentry>
4322e120bd27Smrg	<varlistentry>
4323e120bd27Smrg	  <term><parameter>green_max</parameter></term>
4324e120bd27Smrg	  <listitem><para>
4325e120bd27Smrgreturns maximum green value
4326e120bd27Smrg	    </para></listitem>
4327e120bd27Smrg	</varlistentry>
4328e120bd27Smrg	<varlistentry>
4329e120bd27Smrg	  <term><parameter>blue_max</parameter></term>
4330e120bd27Smrg	  <listitem><para>
4331e120bd27Smrgreturns maximum blue value
4332e120bd27Smrg	  </para></listitem>
4333e120bd27Smrg	</varlistentry>
4334e120bd27Smrg      </variablelist>
4335e120bd27Smrg
4336e120bd27SmrgTo determine the best allocation of reds, greens, and blues in a standard
4337e120bd27Smrgcolormap, use
4338e120bd27Smrg<function>XmuGetColormapAllocation</function>.
4339e120bd27Smrg    </para>
4340e120bd27Smrg
4341e120bd27Smrg    <para>
4342e120bd27Smrg<function>XmuGetColormapAllocation</function>
4343e120bd27Smrgreturns 0 on failure, non-zero on success.  It is
4344e120bd27Smrgassumed that the visual is appropriate for the colormap property.
4345e120bd27Smrg    </para>
4346e120bd27Smrg
4347e120bd27Smrg    <para id="XmuStandardColormap">
4348e120bd27Smrg      <indexterm zone="XmuStandardColormap">
4349e120bd27Smrg	<primary><function>XmuStandardColormap</function></primary>
4350e120bd27Smrg      </indexterm>
4351e120bd27Smrg      <funcsynopsis>
4352e120bd27Smrg	<funcprototype>
4353e120bd27Smrg	  <funcdef>XStandardColormap *<function>XmuStandardColormap</function></funcdef>
4354e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
4355e120bd27Smrg	  <paramdef>int <parameter>screen</parameter></paramdef>
4356e120bd27Smrg	  <paramdef>VisualID <parameter>visualid</parameter></paramdef>
4357e120bd27Smrg	  <paramdef>unsigned int <parameter>depth</parameter></paramdef>
4358e120bd27Smrg	  <paramdef>Atom <parameter>property</parameter></paramdef>
4359e120bd27Smrg	  <paramdef>Colormap <parameter>cmap</parameter></paramdef>
4360e120bd27Smrg	  <paramdef>unsigned long <parameter>red_max</parameter></paramdef>
4361e120bd27Smrg	  <paramdef>unsigned long <parameter>green_max</parameter></paramdef>
4362e120bd27Smrg	  <paramdef>unsigned long <parameter>blue_max</parameter></paramdef>
4363e120bd27Smrg	</funcprototype>
4364e120bd27Smrg      </funcsynopsis>
4365e120bd27Smrg      <variablelist>
4366e120bd27Smrg	<varlistentry>
4367e120bd27Smrg	  <term><parameter>dpy</parameter></term>
4368e120bd27Smrg	  <listitem><para>
4369e120bd27Smrgspecifies the connection to the X server
4370e120bd27Smrg	    </para></listitem>
4371e120bd27Smrg	</varlistentry>
4372e120bd27Smrg	<varlistentry>
4373e120bd27Smrg	  <term><parameter>screen</parameter></term>
4374e120bd27Smrg	  <listitem><para>
4375e120bd27Smrgspecifies the screen of the display
4376e120bd27Smrg	    </para></listitem>
4377e120bd27Smrg	</varlistentry>
4378e120bd27Smrg	<varlistentry>
4379e120bd27Smrg	  <term><parameter>visualid</parameter></term>
4380e120bd27Smrg	  <listitem><para>
4381e120bd27Smrgspecifies the visual type
4382e120bd27Smrg	    </para></listitem>
4383e120bd27Smrg	</varlistentry>
4384e120bd27Smrg	<varlistentry>
4385e120bd27Smrg	  <term><parameter>depth</parameter></term>
4386e120bd27Smrg	  <listitem><para>
4387e120bd27Smrgspecifies the visual depth
4388e120bd27Smrg	    </para></listitem>
4389e120bd27Smrg	</varlistentry>
4390e120bd27Smrg	<varlistentry>
4391e120bd27Smrg	  <term><parameter>property</parameter></term>
4392e120bd27Smrg	  <listitem><para>
4393e120bd27Smrgspecifies the standard colormap property
4394e120bd27Smrg	    </para></listitem>
4395e120bd27Smrg	</varlistentry>
4396e120bd27Smrg	<varlistentry>
4397e120bd27Smrg	  <term><parameter>cmap</parameter></term>
4398e120bd27Smrg	  <listitem><para>
4399e120bd27Smrgspecifies the colormap ID, or None
4400e120bd27Smrg	    </para></listitem>
4401e120bd27Smrg	</varlistentry>
4402e120bd27Smrg	<varlistentry>
4403e120bd27Smrg	  <term><parameter>red_max</parameter></term>
4404e120bd27Smrg	  <listitem><para>
4405e120bd27Smrgspecifies the red allocation
4406e120bd27Smrg	    </para></listitem>
4407e120bd27Smrg	</varlistentry>
4408e120bd27Smrg	<varlistentry>
4409e120bd27Smrg	  <term><parameter>green_max</parameter></term>
4410e120bd27Smrg	  <listitem><para>
4411e120bd27Smrgspecifies the green allocation
4412e120bd27Smrg	    </para></listitem>
4413e120bd27Smrg	</varlistentry>
4414e120bd27Smrg	<varlistentry>
4415e120bd27Smrg	  <term><parameter>blue_max</parameter></term>
4416e120bd27Smrg	  <listitem><para>
4417e120bd27Smrgspecifies the blue allocation
4418e120bd27Smrg	    </para></listitem>
4419e120bd27Smrg	</varlistentry>
4420e120bd27Smrg      </variablelist>
4421e120bd27Smrg
4422e120bd27SmrgTo create any one standard colormap, use
4423e120bd27Smrg<function>XmuStandardColormap</function>.
4424e120bd27Smrg    </para>
4425e120bd27Smrg
4426e120bd27Smrg    <para>
4427e120bd27SmrgThis function creates a standard colormap for the given screen, visualid,
4428e120bd27Smrgand visual depth, with the given red, green, and blue maximum values, with
4429e120bd27Smrgthe given standard property name.  Upon success, it returns a pointer to an
4430e120bd27Smrg<function>XStandardColormap</function>
4431e120bd27Smrgstructure which describes the newly created colormap.
4432e120bd27SmrgUpon failure, it returns <symbol>NULL</symbol>.
4433e120bd27SmrgIf cmap is the default colormap of the screen, the standard colormap
4434e120bd27Smrgwill be defined on the default colormap; otherwise a new colormap is created.
4435e120bd27Smrg    </para>
4436e120bd27Smrg
4437e120bd27Smrg    <para>
4438e120bd27SmrgResources created by this function are not made permanent; that is the
4439e120bd27Smrgcaller's responsibility.
4440e120bd27Smrg    </para>
4441e120bd27Smrg
4442e120bd27Smrg    <para id="XmuCreateColormap">
4443e120bd27Smrg      <indexterm zone="XmuCreateColormap">
4444e120bd27Smrg	<primary><function>XmuCreateColormap</function></primary>
4445e120bd27Smrg      </indexterm>
4446e120bd27Smrg      <funcsynopsis>
4447e120bd27Smrg	<funcprototype>
4448e120bd27Smrg	  <funcdef>Status <function>XmuCreateColormap</function></funcdef>
4449e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
4450e120bd27Smrg	  <paramdef>XStandardColormap *<parameter>colormap</parameter></paramdef>
4451e120bd27Smrg	</funcprototype>
4452e120bd27Smrg      </funcsynopsis>
4453e120bd27Smrg      <variablelist>
4454e120bd27Smrg	<varlistentry>
4455e120bd27Smrg	  <term><parameter>dpy</parameter></term>
4456e120bd27Smrg	  <listitem><para>
4457e120bd27Smrgspecifies the connection under which the map is created
4458e120bd27Smrg	    </para></listitem>
4459e120bd27Smrg	</varlistentry>
4460e120bd27Smrg	<varlistentry>
4461e120bd27Smrg	  <term><parameter>colormap</parameter></term>
4462e120bd27Smrg	  <listitem><para>
4463e120bd27Smrgspecifies the map to be created</para></listitem>
4464e120bd27Smrg	</varlistentry>
4465e120bd27Smrg      </variablelist>
4466e120bd27Smrg
4467e120bd27SmrgTo create any one colormap which is described by an
4468e120bd27Smrg<structname>XStandardColormap</structname>
4469e120bd27Smrgstructure, use
4470e120bd27Smrg<function>XmuCreateColormap</function>.
4471e120bd27Smrg    </para>
4472e120bd27Smrg
4473e120bd27Smrg    <para>
4474e120bd27SmrgThis function returns 0 on failure, and non-zero on success.  The base_pixel
4475e120bd27Smrgof the colormap is set on success.  Resources created by this function are
4476e120bd27Smrgnot made permanent.  No argument error checking is provided; use at your own
4477e120bd27Smrgrisk.
4478e120bd27Smrg    </para>
4479e120bd27Smrg
4480e120bd27Smrg    <para>
4481e120bd27SmrgAll colormaps are created with read-only allocations, with the exception of
4482e120bd27Smrgread-only allocations of colors which fail
4483e120bd27Smrgto return the expected pixel value, and these are individually defined as
4484e120bd27Smrgread/write allocations.  This is done so that all the cells defined in the
4485e120bd27Smrgcolormap are contiguous, for use in image processing.  This typically
4486e120bd27Smrghappens with White and Black in the default map.
4487e120bd27Smrg    </para>
4488e120bd27Smrg
4489e120bd27Smrg    <para>
4490e120bd27SmrgColormaps of static visuals are considered to be successfully created if the
4491e120bd27Smrgmap of the static visual matches the definition given in the standard
4492e120bd27Smrgcolormap structure.
4493e120bd27Smrg    </para>
4494e120bd27Smrg
4495e120bd27Smrg    <para id="XmuDeleteStandardColormap">
4496e120bd27Smrg      <indexterm zone="XmuDeleteStandardColormap">
4497e120bd27Smrg	<primary><function>XmuDeleteStandardColormap</function></primary>
4498e120bd27Smrg      </indexterm>
4499e120bd27Smrg      <funcsynopsis>
4500e120bd27Smrg	<funcprototype>
4501e120bd27Smrg	  <funcdef>void <function>XmuDeleteStandardColormap</function></funcdef>
4502e120bd27Smrg	  <paramdef>Display *<parameter>dpy</parameter></paramdef>
4503e120bd27Smrg	  <paramdef>Screen *<parameter>screen</parameter></paramdef>
4504e120bd27Smrg	  <paramdef>Atom <parameter>property</parameter></paramdef>
4505e120bd27Smrg	</funcprototype>
4506e120bd27Smrg      </funcsynopsis>
4507e120bd27Smrg      <variablelist>
4508e120bd27Smrg	<varlistentry>
4509e120bd27Smrg	  <term><parameter>dpy</parameter></term>
4510e120bd27Smrg	  <listitem><para>
4511e120bd27Smrgspecifies the connection to the X server
4512e120bd27Smrg	    </para></listitem>
4513e120bd27Smrg	</varlistentry>
4514e120bd27Smrg	<varlistentry>
4515e120bd27Smrg	  <term><parameter>screen</parameter></term>
4516e120bd27Smrg	  <listitem><para>
4517e120bd27Smrgspecifies the screen of the display
4518e120bd27Smrg	    </para></listitem>
4519e120bd27Smrg	</varlistentry>
4520e120bd27Smrg	<varlistentry>
4521e120bd27Smrg	  <term><parameter>property</parameter></term>
4522e120bd27Smrg	  <listitem><para>
4523e120bd27Smrgspecifies the standard colormap property
4524e120bd27Smrg	    </para></listitem>
4525e120bd27Smrg	</varlistentry>
4526e120bd27Smrg      </variablelist>
4527e120bd27Smrg
4528e120bd27SmrgTo remove any standard colormap property, use
4529e120bd27Smrg<function>XmuDeleteStandardColormap</function>.
4530e120bd27SmrgThis function will remove the specified property from the specified screen,
4531e120bd27Smrgreleasing any resources used by the colormap(s) of the property, if
4532e120bd27Smrgpossible.
4533e120bd27Smrg    </para>
4534e120bd27Smrg
4535e120bd27Smrg  </sect1>
4536e120bd27Smrg
45370cc2eac3Smrg  <sect1 id='Widget_Description_Functions'>
45380cc2eac3Smrg<title>Widget Description Functions</title>
4539e120bd27Smrg
4540e120bd27Smrg    <para>
4541e120bd27SmrgThe functions defined in this section are for building a description of
4542e120bd27Smrgthe structure of and resources associated with a hierarchy of widget classes.
4543e120bd27SmrgThis package is typically used by applications that wish to manipulate the
4544e120bd27Smrgwidget set itself.
4545e120bd27Smrg    </para>
4546e120bd27Smrg
4547e120bd27Smrg    <para>
4548e120bd27SmrgThe definitions needed to use these interfaces are in the header file
4549e120bd27Smrg&lt;<filename class='headerfile'>X11/Xmu/WidgetNode.h</filename>&gt;
4550e120bd27Smrg<indexterm>
4551e120bd27Smrg<primary><filename class='headerfile'>X11/Xmu/WidgetNode.h</filename></primary>
4552e120bd27Smrg</indexterm>.
4553e120bd27SmrgTo call these functions, you need to link against the libXmu library.
4554e120bd27SmrgThe following function must be called before any of the others described
4555e120bd27Smrgbelow:
4556e120bd27Smrg
4557e120bd27Smrg      <funcsynopsis>
4558e120bd27Smrg	<funcprototype>
4559e120bd27Smrg	  <funcdef>void <function>XmuWnInitializeNodes</function></funcdef>
4560e120bd27Smrg	  <paramdef>XmuWidgetNode *<parameter>node_array</parameter></paramdef>
4561e120bd27Smrg	  <paramdef>int <parameter>num_nodes</parameter></paramdef>
4562e120bd27Smrg	</funcprototype>
4563e120bd27Smrg      </funcsynopsis>
4564e120bd27Smrg      <variablelist>
4565e120bd27Smrg	<varlistentry>
4566e120bd27Smrg	  <term><parameter>node_array</parameter></term>
4567e120bd27Smrg	  <listitem><para>
4568e120bd27Smrgspecifies a list of widget classes, in alphabetical order
4569e120bd27Smrg	    </para></listitem>
4570e120bd27Smrg	</varlistentry>
4571e120bd27Smrg	<varlistentry>
4572e120bd27Smrg	  <term><parameter>num_nodes</parameter></term>
4573e120bd27Smrg	  <listitem><para>
4574e120bd27Smrgspecifies the number of widget classes in the node array
4575e120bd27Smrg	    </para></listitem>
4576e120bd27Smrg	</varlistentry>
4577e120bd27Smrg      </variablelist>
4578e120bd27Smrg    </para>
4579e120bd27Smrg
4580e120bd27Smrg    <para>
4581e120bd27SmrgTo determine the resources provided by a widget class or classes, use
4582e120bd27Smrg
4583e120bd27Smrg      <funcsynopsis>
4584e120bd27Smrg	<funcprototype>
4585e120bd27Smrg	  <funcdef>void <function>XmuWnFetchResources</function></funcdef>
4586e120bd27Smrg	  <paramdef>XmuWidgetNode *<parameter>node</parameter></paramdef>
4587e120bd27Smrg	  <paramdef>Widget <parameter>toplevel</parameter></paramdef>
4588e120bd27Smrg	  <paramdef>XmuWidgetNode *<parameter>top_node</parameter></paramdef>
4589e120bd27Smrg	</funcprototype>
4590e120bd27Smrg      </funcsynopsis>
4591e120bd27Smrg      <variablelist>
4592e120bd27Smrg	<varlistentry>
4593e120bd27Smrg	  <term><parameter>node</parameter></term>
4594e120bd27Smrg	  <listitem><para>
4595e120bd27Smrgspecifies the widget class for which resources should be obtained.
4596e120bd27Smrg	    </para></listitem>
4597e120bd27Smrg	</varlistentry>
4598e120bd27Smrg	<varlistentry>
4599e120bd27Smrg	  <term><parameter>toplevel</parameter></term>
4600e120bd27Smrg	  <listitem><para>
4601e120bd27Smrgspecifies the widget that should be used for creating an instance of
4602e120bd27Smrg<parameter>node</parameter>
4603e120bd27Smrgfrom which resources are extracted.  This is typically the value returned
46040cc2eac3Smrgby <olink targetdoc='libXaw' targetptr='XtAppInitialize'><function>XtAppInitialize</function></olink>.
4605e120bd27Smrg	    </para></listitem>
4606e120bd27Smrg	</varlistentry>
4607e120bd27Smrg	<varlistentry>
4608e120bd27Smrg	  <term><parameter>top_node</parameter></term>
4609e120bd27Smrg	  <listitem><para>
4610e120bd27Smrgspecifies the ancestor of <parameter>node</parameter> that should be
4611e120bd27Smrgtreated as the root
4612e120bd27Smrgof the widget inheritance tree (used in determining which ancestor contributed
4613e120bd27Smrgwhich resources).
4614e120bd27Smrg	    </para></listitem>
4615e120bd27Smrg	</varlistentry>
4616e120bd27Smrg      </variablelist>
4617e120bd27Smrg    </para>
4618e120bd27Smrg
4619e120bd27Smrg    <para>
4620e120bd27SmrgEach widget class inherits the resources of its parent.  To count the number
4621e120bd27Smrgof resources contributed by a particular widget class, use:
4622e120bd27Smrg
4623e120bd27Smrg      <funcsynopsis>
4624e120bd27Smrg	<funcprototype>
4625e120bd27Smrg	  <funcdef>int <function>XmuWnCountOwnedResources</function></funcdef>
4626e120bd27Smrg	  <paramdef>XmuWidgetNode *<parameter>node</parameter></paramdef>
4627e120bd27Smrg	  <paramdef>XmuWidgetNode *<parameter>owner_node</parameter></paramdef>
4628e120bd27Smrg	  <paramdef>Bool <parameter>constraints</parameter></paramdef>
4629e120bd27Smrg	</funcprototype>
4630e120bd27Smrg      </funcsynopsis>
4631e120bd27Smrg      <variablelist>
4632e120bd27Smrg	<varlistentry>
4633e120bd27Smrg	  <term><parameter>node</parameter></term>
4634e120bd27Smrg	  <listitem><para>
4635e120bd27Smrgspecifies the widget class whose resources are being examined.
4636e120bd27Smrg	    </para></listitem>
4637e120bd27Smrg	</varlistentry>
4638e120bd27Smrg	<varlistentry>
4639e120bd27Smrg	  <term><parameter>owner_node</parameter></term>
4640e120bd27Smrg	  <listitem><para>
4641e120bd27Smrgspecifies the widget class of the ancestor of <parameter>node</parameter>
4642e120bd27Smrgwhose contributions
4643e120bd27Smrgare being counted.
4644e120bd27Smrg	    </para></listitem>
4645e120bd27Smrg	</varlistentry>
4646e120bd27Smrg	<varlistentry>
4647e120bd27Smrg	  <term><parameter>constraints</parameter></term>
4648e120bd27Smrg	  <listitem><para>
4649e120bd27Smrgspecifies whether or not to count constraint resources or normal resources.
4650e120bd27Smrg	    </para></listitem>
4651e120bd27Smrg	</varlistentry>
4652e120bd27Smrg      </variablelist>
4653e120bd27Smrg
4654e120bd27SmrgThis routine returns the number of resources contributed (or
4655e120bd27Smrg&ldquo;owned&rdquo;) by
4656e120bd27Smrgthe specified widget class.
4657e120bd27Smrg	    </para>
4658e120bd27Smrg
4659e120bd27Smrg    <para id="XmuWnNameToNode">
4660e120bd27Smrg      <indexterm zone="XmuWnNameToNode">
4661e120bd27Smrg	<primary><function>XmuWnNameToNode</function></primary>
4662e120bd27Smrg      </indexterm>
4663e120bd27Smrg      <funcsynopsis>
4664e120bd27Smrg	<funcprototype>
4665e120bd27Smrg	  <funcdef>XmuWidgetNode *<function>XmuWnNameToNode</function></funcdef>
4666e120bd27Smrg	  <paramdef>XmuWidgetNode *<parameter>node_list</parameter></paramdef>
4667e120bd27Smrg	  <paramdef>int <parameter>num_nodes</parameter></paramdef>
4668e120bd27Smrg	  <paramdef>char *<parameter>name</parameter></paramdef>
4669e120bd27Smrg	</funcprototype>
4670e120bd27Smrg      </funcsynopsis>
4671e120bd27Smrg      <variablelist>
4672e120bd27Smrg	<varlistentry>
4673e120bd27Smrg	  <term><parameter>node_list</parameter></term>
4674e120bd27Smrg	  <listitem><para>
4675e120bd27Smrgspecifies a list of widget nodes
4676e120bd27Smrg	    </para></listitem>
4677e120bd27Smrg	</varlistentry>
4678e120bd27Smrg	<varlistentry>
4679e120bd27Smrg	  <term><parameter>num_nodes</parameter></term>
4680e120bd27Smrg	  <listitem><para>
4681e120bd27Smrgspecifies the number of nodes in the list
4682e120bd27Smrg	    </para></listitem>
4683e120bd27Smrg	</varlistentry>
4684e120bd27Smrg	<varlistentry>
4685e120bd27Smrg	  <term><parameter>name</parameter></term>
4686e120bd27Smrg	  <listitem><para>
4687e120bd27Smrgspecifies the name of the widget class in the node list to search for
4688e120bd27Smrg	    </para></listitem>
4689e120bd27Smrg	</varlistentry>
4690e120bd27Smrg      </variablelist>
4691e120bd27Smrg
4692e120bd27SmrgThis function returns the WidgetNode in the list that matches the given
4693e120bd27Smrgwidget name or widget class name.  If no match is found, it returns
4694e120bd27Smrg<symbol>NULL</symbol>.
4695e120bd27Smrg    </para>
4696e120bd27Smrg
4697e120bd27Smrg  </sect1>
4698e120bd27Smrg
46990cc2eac3Smrg  <sect1 id='Participation_in_the_Editres_Protocol'>
47000cc2eac3Smrg<title>Participation in the Editres Protocol</title>
4701e120bd27Smrg
4702e120bd27Smrg    <para>
4703e120bd27Smrg      <indexterm>
4704e120bd27Smrg	<primary>editres</primary>
4705e120bd27Smrg      </indexterm>
4706e120bd27SmrgTo participate in the editres protocol, applications which are not based
4707e120bd27Smrgon the Athena widget set should include the header file
4708e120bd27Smrg&lt;<filename class='headerfile'>X11/Xmu/Editres.h</filename>&gt;
4709e120bd27Smrg<indexterm>
4710e120bd27Smrg<primary><filename class='headerfile'>X11/Xmu/Editres.h</filename></primary>
4711e120bd27Smrg</indexterm>
4712e120bd27Smrgand link against the libXmu library.
4713e120bd27Smrg    </para>
4714e120bd27Smrg
4715e120bd27Smrg    <para>
4716e120bd27SmrgTo participate in the editres protocol, Xt applications which do not rely
4717e120bd27Smrgon the Athena widget set should register the editres protocol handler on
4718e120bd27Smrgeach shell widget in the application, specifying an event mask of 0,
4719e120bd27Smrgnonmaskable events, and client data as <symbol>NULL</symbol>:
4720e120bd27Smrg
4721e120bd27Smrg    <programlisting>
4722e120bd27SmrgXtAddEventHandler(shell, (EventMask) 0, True, _XEditResCheckMessages, NULL);
4723e120bd27Smrg    </programlisting>
4724e120bd27Smrg    </para>
4725e120bd27Smrg  </sect1>
4726e120bd27Smrg
4727e120bd27Smrg  <index />
4728e120bd27Smrg</article>
4729