1 /***********************************************************
2 Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
3 
4 			All Rights Reserved
5 
6 Permission to use, copy, modify, and distribute this software and its
7 documentation for any purpose and without fee is hereby granted,
8 provided that the above copyright notice appear in all copies and that
9 both that copyright notice and this permission notice appear in
10 supporting documentation, and that the name Digital not be
11 used in advertising or publicity pertaining to distribution of the
12 software without specific, written prior permission.
13 
14 DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
15 ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
16 DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
17 ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
18 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
19 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
20 SOFTWARE.
21 
22 ******************************************************************/
23 
24 /*
25 
26 Copyright 1987, 1988, 1994, 1998  The Open Group
27 
28 Permission to use, copy, modify, distribute, and sell this software and its
29 documentation for any purpose is hereby granted without fee, provided that
30 the above copyright notice appear in all copies and that both that
31 copyright notice and this permission notice appear in supporting
32 documentation.
33 
34 The above copyright notice and this permission notice shall be included in
35 all copies or substantial portions of the Software.
36 
37 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
38 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
39 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
40 OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
41 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
42 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
43 
44 Except as contained in this notice, the name of The Open Group shall not be
45 used in advertising or otherwise to promote the sale, use or other dealings
46 in this Software without prior written authorization from The Open Group.
47 
48 */
49 
50 #ifndef _XtIntrinsic_h
51 #define _XtIntrinsic_h
52 
53 #include	<X11/Xlib.h>
54 #include	<X11/Xutil.h>
55 #include	<X11/Xresource.h>
56 #include	<X11/Xfuncproto.h>
57 #ifdef XT_BC
58 #include <X11/Xos.h>		/* for R4 compatibility */
59 #else
60 #include <X11/Xosdefs.h>
61 #include <string.h>		/* for XtNewString */
62 #endif /* XT_BC else */
63 
64 #define XtSpecificationRelease 7
65 
66 /*
67  * As used in its function interface, the String type of libXt can be readonly.
68  * But compiling libXt with this feature may require some internal changes,
69  * e.g., casts and occasionally using a plain "char*".
70  */
71 #ifdef _CONST_X_STRING
72 typedef const char *String;
73 #else
74 typedef char *String;
75 #endif
76 
77 /* We do this in order to get "const" declarations to work right.  We
78  * use _XtString instead of String so that C++ applications can
79  * #define String to something else if they choose, to avoid conflicts
80  * with other C++ libraries.
81  */
82 #define _XtString char*
83 
84 /* _Xt names are private to Xt implementation, do not use in client code */
85 #if NeedWidePrototypes
86 #define _XtBoolean	int
87 #define _XtDimension	unsigned int
88 #define _XtKeyCode	unsigned int
89 #define _XtPosition	int
90 #define _XtXtEnum	unsigned int
91 #else
92 #define _XtBoolean	Boolean
93 #define _XtDimension	Dimension
94 #define _XtKeyCode	KeyCode
95 #define _XtPosition	Position
96 #define _XtXtEnum	XtEnum
97 #endif /* NeedWidePrototypes */
98 
99 #include <stddef.h>
100 
101 #ifdef VMS
102 #define externalref globalref
103 #define externaldef(psect) globaldef {"psect"} noshare
104 #else
105 #define externalref extern
106 #define externaldef(psect)
107 #endif /* VMS */
108 
109 #ifndef FALSE
110 #define FALSE 0
111 #define TRUE 1
112 #endif
113 
114 #define XtNumber(arr)		((Cardinal) (sizeof(arr) / sizeof(arr[0])))
115 
116 typedef struct _WidgetRec *Widget;
117 typedef Widget *WidgetList;
118 typedef struct _WidgetClassRec *WidgetClass;
119 typedef struct _CompositeRec *CompositeWidget;
120 typedef struct _XtActionsRec *XtActionList;
121 typedef struct _XtEventRec *XtEventTable;
122 
123 typedef struct _XtAppStruct *XtAppContext;
124 typedef unsigned long	XtValueMask;
125 typedef unsigned long	XtIntervalId;
126 typedef unsigned long	XtInputId;
127 typedef unsigned long	XtWorkProcId;
128 typedef unsigned long	XtSignalId;
129 typedef unsigned int	XtGeometryMask;
130 typedef unsigned long	XtGCMask;   /* Mask of values that are used by widget*/
131 typedef unsigned long	Pixel;	    /* Index into colormap		*/
132 typedef int		XtCacheType;
133 #define			XtCacheNone	  0x001
134 #define			XtCacheAll	  0x002
135 #define			XtCacheByDisplay  0x003
136 #define			XtCacheRefCount	  0x100
137 
138 /****************************************************************
139  *
140  * System Dependent Definitions; see spec for specific range
141  * requirements.  Do not assume every implementation uses the
142  * same base types!
143  *
144  *
145  * XtArgVal ought to be a union of XtPointer, char *, long, int *, and proc *
146  * but casting to union types is not really supported.
147  *
148  * So the typedef for XtArgVal should be chosen such that
149  *
150  *	sizeof (XtArgVal) >=	sizeof(XtPointer)
151  *				sizeof(char *)
152  *				sizeof(long)
153  *				sizeof(int *)
154  *				sizeof(proc *)
155  *
156  * ArgLists rely heavily on the above typedef.
157  *
158  ****************************************************************/
159 typedef char		Boolean;
160 typedef long		XtArgVal;
161 typedef unsigned char	XtEnum;
162 
163 typedef unsigned int	Cardinal;
164 typedef unsigned short	Dimension;  /* Size in pixels			*/
165 typedef short		Position;   /* Offset from 0 coordinate		*/
166 
167 typedef void*		XtPointer;
168 
169 /* The type Opaque is NOT part of the Xt standard, do NOT use it. */
170 /* (It remains here only for backward compatibility.) */
171 typedef XtPointer	Opaque;
172 
173 #include <X11/Core.h>
174 #include <X11/Composite.h>
175 #include <X11/Constraint.h>
176 #include <X11/Object.h>
177 #include <X11/RectObj.h>
178 
179 typedef struct _TranslationData *XtTranslations;
180 typedef struct _TranslationData *XtAccelerators;
181 typedef unsigned int Modifiers;
182 
183 typedef void (*XtActionProc)(
184     Widget 		/* widget */,
185     XEvent*		/* event */,
186     String*		/* params */,
187     Cardinal*		/* num_params */
188 );
189 
190 typedef XtActionProc* XtBoundActions;
191 
192 typedef struct _XtActionsRec{
193     String	 string;
194     XtActionProc proc;
195 } XtActionsRec;
196 
197 typedef enum {
198 /* address mode		parameter representation    */
199 /* ------------		------------------------    */
200     XtAddress,		/* address		    */
201     XtBaseOffset,	/* offset		    */
202     XtImmediate,	/* constant		    */
203     XtResourceString,	/* resource name string	    */
204     XtResourceQuark,	/* resource name quark	    */
205     XtWidgetBaseOffset,	/* offset from ancestor	    */
206     XtProcedureArg	/* procedure to invoke	    */
207 } XtAddressMode;
208 
209 typedef struct {
210     XtAddressMode   address_mode;
211     XtPointer	    address_id;
212     Cardinal	    size;
213 } XtConvertArgRec, *XtConvertArgList;
214 
215 typedef void (*XtConvertArgProc)(
216     Widget 		/* widget */,
217     Cardinal*		/* size */,
218     XrmValue*		/* value */
219 );
220 
221 typedef struct {
222     XtGeometryMask request_mode;
223     Position x, y;
224     Dimension width, height, border_width;
225     Widget sibling;
226     int stack_mode;   /* Above, Below, TopIf, BottomIf, Opposite, DontChange */
227 } XtWidgetGeometry;
228 
229 /* Additions to Xlib geometry requests: ask what would happen, don't do it */
230 #define XtCWQueryOnly	(1 << 7)
231 
232 /* Additions to Xlib stack modes: don't change stack order */
233 #define XtSMDontChange	5
234 
235 typedef void (*XtConverter)( /* obsolete */
236     XrmValue*		/* args */,
237     Cardinal*		/* num_args */,
238     XrmValue*		/* from */,
239     XrmValue*		/* to */
240 );
241 
242 typedef Boolean (*XtTypeConverter)(
243     Display*		/* dpy */,
244     XrmValue*		/* args */,
245     Cardinal*		/* num_args */,
246     XrmValue*		/* from */,
247     XrmValue*		/* to */,
248     XtPointer*		/* converter_data */
249 );
250 
251 typedef void (*XtDestructor)(
252     XtAppContext	/* app */,
253     XrmValue*		/* to */,
254     XtPointer 		/* converter_data */,
255     XrmValue*		/* args */,
256     Cardinal*		/* num_args */
257 );
258 
259 typedef Opaque XtCacheRef;
260 
261 typedef Opaque XtActionHookId;
262 
263 typedef void (*XtActionHookProc)(
264     Widget		/* w */,
265     XtPointer		/* client_data */,
266     String		/* action_name */,
267     XEvent*		/* event */,
268     String*		/* params */,
269     Cardinal*		/* num_params */
270 );
271 
272 typedef unsigned long XtBlockHookId;
273 
274 typedef void (*XtBlockHookProc)(
275     XtPointer		/* client_data */
276 );
277 
278 typedef void (*XtKeyProc)(
279     Display*		/* dpy */,
280     _XtKeyCode 		/* keycode */,
281     Modifiers		/* modifiers */,
282     Modifiers*		/* modifiers_return */,
283     KeySym*		/* keysym_return */
284 );
285 
286 typedef void (*XtCaseProc)(
287     Display*		/* display */,
288     KeySym		/* keysym */,
289     KeySym*		/* lower_return */,
290     KeySym*		/* upper_return */
291 );
292 
293 typedef void (*XtEventHandler)(
294     Widget 		/* widget */,
295     XtPointer 		/* closure */,
296     XEvent*		/* event */,
297     Boolean*		/* continue_to_dispatch */
298 );
299 typedef unsigned long EventMask;
300 
301 typedef enum {XtListHead, XtListTail } XtListPosition;
302 
303 typedef unsigned long	XtInputMask;
304 #define XtInputNoneMask		0L
305 #define XtInputReadMask		(1L<<0)
306 #define XtInputWriteMask	(1L<<1)
307 #define XtInputExceptMask	(1L<<2)
308 
309 typedef void (*XtTimerCallbackProc)(
310     XtPointer 		/* closure */,
311     XtIntervalId*	/* id */
312 );
313 
314 typedef void (*XtInputCallbackProc)(
315     XtPointer 		/* closure */,
316     int*		/* source */,
317     XtInputId*		/* id */
318 );
319 
320 typedef void (*XtSignalCallbackProc)(
321     XtPointer		/* closure */,
322     XtSignalId*		/* id */
323 );
324 
325 typedef struct {
326     String	name;
327     XtArgVal	value;
328 } Arg, *ArgList;
329 
330 typedef XtPointer	XtVarArgsList;
331 
332 typedef void (*XtCallbackProc)(
333     Widget 		/* widget */,
334     XtPointer 		/* closure */,	/* data the application registered */
335     XtPointer 		/* call_data */	/* callback specific data */
336 );
337 
338 typedef struct _XtCallbackRec {
339     XtCallbackProc  callback;
340     XtPointer	    closure;
341 } XtCallbackRec, *XtCallbackList;
342 
343 typedef enum {
344 	XtCallbackNoList,
345 	XtCallbackHasNone,
346 	XtCallbackHasSome
347 } XtCallbackStatus;
348 
349 typedef enum  {
350     XtGeometryYes,	  /* Request accepted. */
351     XtGeometryNo,	  /* Request denied. */
352     XtGeometryAlmost,	  /* Request denied, but willing to take replyBox. */
353     XtGeometryDone	  /* Request accepted and done. */
354 } XtGeometryResult;
355 
356 typedef enum {XtGrabNone, XtGrabNonexclusive, XtGrabExclusive} XtGrabKind;
357 
358 typedef struct {
359     Widget  shell_widget;
360     Widget  enable_widget;
361 } XtPopdownIDRec, *XtPopdownID;
362 
363 typedef struct _XtResource {
364     String	resource_name;	/* Resource name			    */
365     String	resource_class;	/* Resource class			    */
366     String	resource_type;	/* Representation type desired		    */
367     Cardinal	resource_size;	/* Size in bytes of representation	    */
368     Cardinal	resource_offset;/* Offset from base to put resource value   */
369     String	default_type;	/* representation type of specified default */
370     XtPointer	default_addr;	/* Address of default resource		    */
371 } XtResource, *XtResourceList;
372 
373 typedef void (*XtResourceDefaultProc)(
374     Widget	/* widget */,
375     int		/* offset */,
376     XrmValue*	/* value */
377 );
378 
379 typedef String (*XtLanguageProc)(
380     Display*	/* dpy */,
381     String	/* xnl */,
382     XtPointer	/* client_data */
383 );
384 
385 typedef void (*XtErrorMsgHandler)(
386     String 		/* name */,
387     String		/* type */,
388     String		/* class */,
389     String		/* default */,
390     String*		/* params */,
391     Cardinal*		/* num_params */
392 );
393 
394 typedef void (*XtErrorHandler)(
395   String		/* msg */
396 );
397 
398 typedef void (*XtCreatePopupChildProc)(
399     Widget	/* shell */
400 );
401 
402 typedef Boolean (*XtWorkProc)(
403     XtPointer 		/* closure */	/* data the application registered */
404 );
405 
406 typedef struct {
407     char match;
408     _XtString substitution;
409 } SubstitutionRec, *Substitution;
410 
411 typedef Boolean (*XtFilePredicate)(
412    String /* filename */
413 );
414 
415 typedef XtPointer XtRequestId;
416 
417 typedef Boolean (*XtConvertSelectionProc)(
418     Widget 		/* widget */,
419     Atom*		/* selection */,
420     Atom*		/* target */,
421     Atom*		/* type_return */,
422     XtPointer*		/* value_return */,
423     unsigned long*	/* length_return */,
424     int*		/* format_return */
425 );
426 
427 typedef void (*XtLoseSelectionProc)(
428     Widget 		/* widget */,
429     Atom*		/* selection */
430 );
431 
432 typedef void (*XtSelectionDoneProc)(
433     Widget 		/* widget */,
434     Atom*		/* selection */,
435     Atom*		/* target */
436 );
437 
438 typedef void (*XtSelectionCallbackProc)(
439     Widget 		/* widget */,
440     XtPointer 		/* closure */,
441     Atom*		/* selection */,
442     Atom*		/* type */,
443     XtPointer 		/* value */,
444     unsigned long*	/* length */,
445     int*		/* format */
446 );
447 
448 typedef void (*XtLoseSelectionIncrProc)(
449     Widget 		/* widget */,
450     Atom*		/* selection */,
451     XtPointer 		/* client_data */
452 );
453 
454 typedef void (*XtSelectionDoneIncrProc)(
455     Widget 		/* widget */,
456     Atom*		/* selection */,
457     Atom*		/* target */,
458     XtRequestId*	/* receiver_id */,
459     XtPointer 		/* client_data */
460 );
461 
462 typedef Boolean (*XtConvertSelectionIncrProc)(
463     Widget 		/* widget */,
464     Atom*		/* selection */,
465     Atom*		/* target */,
466     Atom*		/* type */,
467     XtPointer*		/* value */,
468     unsigned long*	/* length */,
469     int*		/* format */,
470     unsigned long*	/* max_length */,
471     XtPointer 		/* client_data */,
472     XtRequestId*	/* receiver_id */
473 );
474 
475 typedef void (*XtCancelConvertSelectionProc)(
476     Widget 		/* widget */,
477     Atom*		/* selection */,
478     Atom*		/* target */,
479     XtRequestId*	/* receiver_id */,
480     XtPointer 		/* client_data */
481 );
482 
483 typedef Boolean (*XtEventDispatchProc)(
484     XEvent*		/* event */
485 );
486 
487 typedef void (*XtExtensionSelectProc)(
488     Widget		/* widget */,
489     int*		/* event_types */,
490     XtPointer*		/* select_data */,
491     int			/* count */,
492     XtPointer		/* client_data */
493 );
494 
495 /***************************************************************
496  *
497  * Exported Interfaces
498  *
499  ****************************************************************/
500 
501 _XFUNCPROTOBEGIN
502 
503 extern Boolean XtConvertAndStore(
504     Widget 		/* widget */,
505     _Xconst _XtString 	/* from_type */,
506     XrmValue*		/* from */,
507     _Xconst _XtString 	/* to_type */,
508     XrmValue*		/* to_in_out */
509 );
510 
511 extern Boolean XtCallConverter(
512     Display*		/* dpy */,
513     XtTypeConverter 	/* converter */,
514     XrmValuePtr 	/* args */,
515     Cardinal 		/* num_args */,
516     XrmValuePtr 	/* from */,
517     XrmValue*		/* to_in_out */,
518     XtCacheRef*		/* cache_ref_return */
519 );
520 
521 extern Boolean XtDispatchEvent(
522     XEvent* 		/* event */
523 );
524 
525 extern Boolean XtCallAcceptFocus(
526     Widget 		/* widget */,
527     Time*		/* time */
528 );
529 
530 extern Boolean XtPeekEvent( /* obsolete */
531     XEvent*		/* event_return */
532 );
533 
534 extern Boolean XtAppPeekEvent(
535     XtAppContext 	/* app_context */,
536     XEvent*		/* event_return */
537 );
538 
539 extern Boolean XtIsSubclass(
540     Widget 		/* widget */,
541     WidgetClass 	/* widgetClass */
542 );
543 
544 extern Boolean XtIsObject(
545     Widget 		/* object */
546 );
547 
548 extern Boolean _XtCheckSubclassFlag( /* implementation-private */
549     Widget		/* object */,
550     _XtXtEnum		/* type_flag */
551 );
552 
553 extern Boolean _XtIsSubclassOf( /* implementation-private */
554     Widget		/* object */,
555     WidgetClass		/* widget_class */,
556     WidgetClass		/* flag_class */,
557     _XtXtEnum		/* type_flag */
558 );
559 
560 extern Boolean XtIsManaged(
561     Widget 		/* rectobj */
562 );
563 
564 extern Boolean XtIsRealized(
565     Widget 		/* widget */
566 );
567 
568 extern Boolean XtIsSensitive(
569     Widget 		/* widget */
570 );
571 
572 extern Boolean XtOwnSelection(
573     Widget 		/* widget */,
574     Atom 		/* selection */,
575     Time 		/* time */,
576     XtConvertSelectionProc /* convert */,
577     XtLoseSelectionProc	/* lose */,
578     XtSelectionDoneProc /* done */
579 );
580 
581 extern Boolean XtOwnSelectionIncremental(
582     Widget 		/* widget */,
583     Atom 		/* selection */,
584     Time 		/* time */,
585     XtConvertSelectionIncrProc	/* convert_callback */,
586     XtLoseSelectionIncrProc	/* lose_callback */,
587     XtSelectionDoneIncrProc	/* done_callback */,
588     XtCancelConvertSelectionProc /* cancel_callback */,
589     XtPointer 		/* client_data */
590 );
591 
592 extern XtGeometryResult XtMakeResizeRequest(
593     Widget 		/* widget */,
594     _XtDimension	/* width */,
595     _XtDimension	/* height */,
596     Dimension*		/* width_return */,
597     Dimension*		/* height_return */
598 );
599 
600 extern void XtTranslateCoords(
601     Widget 		/* widget */,
602     _XtPosition		/* x */,
603     _XtPosition		/* y */,
604     Position*		/* rootx_return */,
605     Position*		/* rooty_return */
606 );
607 
608 extern KeySym* XtGetKeysymTable(
609     Display*		/* dpy */,
610     KeyCode*		/* min_keycode_return */,
611     int*		/* keysyms_per_keycode_return */
612 );
613 
614 extern void XtKeysymToKeycodeList(
615     Display*		/* dpy */,
616     KeySym 		/* keysym */,
617     KeyCode**		/* keycodes_return */,
618     Cardinal*		/* keycount_return */
619 );
620 
621 extern void XtStringConversionWarning( /* obsolete */
622     _Xconst _XtString	/* from_value */,
623     _Xconst _XtString	/* to_type */
624 );
625 
626 extern void XtDisplayStringConversionWarning(
627     Display*	 	/* dpy */,
628     _Xconst _XtString	/* from_value */,
629     _Xconst _XtString	/* to_type */
630 );
631 
632 externalref XtConvertArgRec const colorConvertArgs[];
633 externalref XtConvertArgRec const screenConvertArg[];
634 
635 extern void XtAppAddConverter( /* obsolete */
636     XtAppContext	/* app_context */,
637     _Xconst _XtString	/* from_type */,
638     _Xconst _XtString	/* to_type */,
639     XtConverter 	/* converter */,
640     XtConvertArgList	/* convert_args */,
641     Cardinal 		/* num_args */
642 );
643 
644 extern void XtAddConverter( /* obsolete */
645     _Xconst _XtString	/* from_type */,
646     _Xconst _XtString 	/* to_type */,
647     XtConverter 	/* converter */,
648     XtConvertArgList 	/* convert_args */,
649     Cardinal 		/* num_args */
650 );
651 
652 extern void XtSetTypeConverter(
653     _Xconst _XtString 	/* from_type */,
654     _Xconst _XtString 	/* to_type */,
655     XtTypeConverter 	/* converter */,
656     XtConvertArgList 	/* convert_args */,
657     Cardinal 		/* num_args */,
658     XtCacheType 	/* cache_type */,
659     XtDestructor 	/* destructor */
660 );
661 
662 extern void XtAppSetTypeConverter(
663     XtAppContext 	/* app_context */,
664     _Xconst _XtString 	/* from_type */,
665     _Xconst _XtString 	/* to_type */,
666     XtTypeConverter 	/* converter */,
667     XtConvertArgList 	/* convert_args */,
668     Cardinal 		/* num_args */,
669     XtCacheType 	/* cache_type */,
670     XtDestructor 	/* destructor */
671 );
672 
673 extern void XtConvert( /* obsolete */
674     Widget 		/* widget */,
675     _Xconst _XtString 	/* from_type */,
676     XrmValue*		/* from */,
677     _Xconst _XtString 	/* to_type */,
678     XrmValue*		/* to_return */
679 );
680 
681 extern void XtDirectConvert( /* obsolete */
682     XtConverter 	/* converter */,
683     XrmValuePtr 	/* args */,
684     Cardinal 		/* num_args */,
685     XrmValuePtr 	/* from */,
686     XrmValue*		/* to_return */
687 );
688 
689 /****************************************************************
690  *
691  * Translation Management
692  *
693  ****************************************************************/
694 
695 extern XtTranslations XtParseTranslationTable(
696     _Xconst _XtString	/* table */
697 );
698 
699 extern XtAccelerators XtParseAcceleratorTable(
700     _Xconst _XtString	/* source */
701 );
702 
703 extern void XtOverrideTranslations(
704     Widget 		/* widget */,
705     XtTranslations 	/* translations */
706 );
707 
708 extern void XtAugmentTranslations(
709     Widget 		/* widget */,
710     XtTranslations 	/* translations */
711 );
712 
713 extern void XtInstallAccelerators(
714     Widget 		/* destination */,
715     Widget		/* source */
716 );
717 
718 extern void XtInstallAllAccelerators(
719     Widget 		/* destination */,
720     Widget		/* source */
721 );
722 
723 extern void XtUninstallTranslations(
724     Widget 		/* widget */
725 );
726 
727 extern void XtAppAddActions(
728     XtAppContext 	/* app_context */,
729     XtActionList 	/* actions */,
730     Cardinal 		/* num_actions */
731 );
732 
733 extern void XtAddActions( /* obsolete */
734     XtActionList 	/* actions */,
735     Cardinal 		/* num_actions */
736 );
737 
738 extern XtActionHookId XtAppAddActionHook(
739     XtAppContext 	/* app_context */,
740     XtActionHookProc 	/* proc */,
741     XtPointer 		/* client_data */
742 );
743 
744 extern void XtRemoveActionHook(
745     XtActionHookId 	/* id */
746 );
747 
748 extern void XtGetActionList(
749     WidgetClass		/* widget_class */,
750     XtActionList*	/* actions_return */,
751     Cardinal*		/* num_actions_return */
752 );
753 
754 extern void XtCallActionProc(
755     Widget		/* widget */,
756     _Xconst _XtString	/* action */,
757     XEvent*		/* event */,
758     String*		/* params */,
759     Cardinal		/* num_params */
760 );
761 
762 extern void XtRegisterGrabAction(
763     XtActionProc 	/* action_proc */,
764     _XtBoolean 		/* owner_events */,
765     unsigned int 	/* event_mask */,
766     int			/* pointer_mode */,
767     int	 		/* keyboard_mode */
768 );
769 
770 extern void XtSetMultiClickTime(
771     Display*		/* dpy */,
772     int 		/* milliseconds */
773 );
774 
775 extern int XtGetMultiClickTime(
776     Display*		/* dpy */
777 );
778 
779 extern KeySym XtGetActionKeysym(
780     XEvent*		/* event */,
781     Modifiers*		/* modifiers_return */
782 );
783 
784 /***************************************************************
785  *
786  * Keycode and Keysym procedures for translation management
787  *
788  ****************************************************************/
789 
790 extern void XtTranslateKeycode(
791     Display*		/* dpy */,
792     _XtKeyCode 		/* keycode */,
793     Modifiers 		/* modifiers */,
794     Modifiers*		/* modifiers_return */,
795     KeySym*		/* keysym_return */
796 );
797 
798 extern void XtTranslateKey(
799     Display*		/* dpy */,
800     _XtKeyCode		/* keycode */,
801     Modifiers		/* modifiers */,
802     Modifiers*		/* modifiers_return */,
803     KeySym*		/* keysym_return */
804 );
805 
806 extern void XtSetKeyTranslator(
807     Display*		/* dpy */,
808     XtKeyProc 		/* proc */
809 );
810 
811 extern void XtRegisterCaseConverter(
812     Display*		/* dpy */,
813     XtCaseProc 		/* proc */,
814     KeySym 		/* start */,
815     KeySym 		/* stop */
816 );
817 
818 extern void XtConvertCase(
819     Display*		/* dpy */,
820     KeySym 		/* keysym */,
821     KeySym*		/* lower_return */,
822     KeySym*		/* upper_return */
823 );
824 
825 /****************************************************************
826  *
827  * Event Management
828  *
829  ****************************************************************/
830 
831 /* XtAllEvents is valid only for XtRemoveEventHandler and
832  * XtRemoveRawEventHandler; don't use it to select events!
833  */
834 #define XtAllEvents ((EventMask) -1L)
835 
836 extern void XtAddEventHandler(
837     Widget 		/* widget */,
838     EventMask 		/* event_mask */,
839     _XtBoolean 		/* nonmaskable */,
840     XtEventHandler 	/* proc */,
841     XtPointer 		/* closure */
842 );
843 
844 extern void XtRemoveEventHandler(
845     Widget 		/* widget */,
846     EventMask 		/* event_mask */,
847     _XtBoolean 		/* nonmaskable */,
848     XtEventHandler 	/* proc */,
849     XtPointer 		/* closure */
850 );
851 
852 extern void XtAddRawEventHandler(
853     Widget 		/* widget */,
854     EventMask 		/* event_mask */,
855     _XtBoolean 		/* nonmaskable */,
856     XtEventHandler 	/* proc */,
857     XtPointer 		/* closure */
858 );
859 
860 extern void XtRemoveRawEventHandler(
861     Widget 		/* widget */,
862     EventMask 		/* event_mask */,
863     _XtBoolean 		/* nonmaskable */,
864     XtEventHandler 	/* proc */,
865     XtPointer 		/* closure */
866 );
867 
868 extern void XtInsertEventHandler(
869     Widget 		/* widget */,
870     EventMask 		/* event_mask */,
871     _XtBoolean 		/* nonmaskable */,
872     XtEventHandler 	/* proc */,
873     XtPointer 		/* closure */,
874     XtListPosition 	/* position */
875 );
876 
877 extern void XtInsertRawEventHandler(
878     Widget 		/* widget */,
879     EventMask 		/* event_mask */,
880     _XtBoolean 		/* nonmaskable */,
881     XtEventHandler 	/* proc */,
882     XtPointer 		/* closure */,
883     XtListPosition 	/* position */
884 );
885 
886 extern XtEventDispatchProc XtSetEventDispatcher(
887     Display*		/* dpy */,
888     int			/* event_type */,
889     XtEventDispatchProc	/* proc */
890 );
891 
892 extern Boolean XtDispatchEventToWidget(
893     Widget		/* widget */,
894     XEvent*		/* event */
895 );
896 
897 extern void XtInsertEventTypeHandler(
898     Widget		/* widget */,
899     int			/* type */,
900     XtPointer		/* select_data */,
901     XtEventHandler	/* proc */,
902     XtPointer		/* closure */,
903     XtListPosition	/* position */
904 );
905 
906 extern void XtRemoveEventTypeHandler(
907     Widget		/* widget */,
908     int			/* type */,
909     XtPointer		/* select_data */,
910     XtEventHandler	/* proc */,
911     XtPointer		/* closure */
912 );
913 
914 extern EventMask XtBuildEventMask(
915     Widget 		/* widget */
916 );
917 
918 extern void XtRegisterExtensionSelector(
919     Display*		/* dpy */,
920     int			/* min_event_type */,
921     int			/* max_event_type */,
922     XtExtensionSelectProc /* proc */,
923     XtPointer		/* client_data */
924 );
925 
926 extern void XtAddGrab(
927     Widget 		/* widget */,
928     _XtBoolean 		/* exclusive */,
929     _XtBoolean 		/* spring_loaded */
930 );
931 
932 extern void XtRemoveGrab(
933     Widget 		/* widget */
934 );
935 
936 extern void XtProcessEvent( /* obsolete */
937     XtInputMask 		/* mask */
938 );
939 
940 extern void XtAppProcessEvent(
941     XtAppContext 		/* app_context */,
942     XtInputMask 		/* mask */
943 );
944 
945 extern void XtMainLoop( /* obsolete */
946     void
947 );
948 
949 extern void XtAppMainLoop(
950     XtAppContext 		/* app_context */
951 );
952 
953 extern void XtAddExposureToRegion(
954     XEvent*		/* event */,
955     Region 		/* region */
956 );
957 
958 extern void XtSetKeyboardFocus(
959     Widget		/* subtree */,
960     Widget 		/* descendent */
961 );
962 
963 extern Widget XtGetKeyboardFocusWidget(
964     Widget		/* widget */
965 );
966 
967 extern XEvent* XtLastEventProcessed(
968     Display*		/* dpy */
969 );
970 
971 extern Time XtLastTimestampProcessed(
972     Display*		/* dpy */
973 );
974 
975 /****************************************************************
976  *
977  * Event Gathering Routines
978  *
979  ****************************************************************/
980 
981 extern XtIntervalId XtAddTimeOut( /* obsolete */
982     unsigned long 	/* interval */,
983     XtTimerCallbackProc /* proc */,
984     XtPointer 		/* closure */
985 );
986 
987 extern XtIntervalId XtAppAddTimeOut(
988     XtAppContext 	/* app_context */,
989     unsigned long 	/* interval */,
990     XtTimerCallbackProc /* proc */,
991     XtPointer 		/* closure */
992 );
993 
994 extern void XtRemoveTimeOut(
995     XtIntervalId 	/* timer */
996 );
997 
998 extern XtInputId XtAddInput( /* obsolete */
999     int 		/* source */,
1000     XtPointer 		/* condition */,
1001     XtInputCallbackProc /* proc */,
1002     XtPointer 		/* closure */
1003 );
1004 
1005 extern XtInputId XtAppAddInput(
1006     XtAppContext       	/* app_context */,
1007     int 		/* source */,
1008     XtPointer 		/* condition */,
1009     XtInputCallbackProc /* proc */,
1010     XtPointer 		/* closure */
1011 );
1012 
1013 extern void XtRemoveInput(
1014     XtInputId 		/* id */
1015 );
1016 
1017 extern XtSignalId XtAddSignal(
1018     XtSignalCallbackProc /* proc */,
1019     XtPointer		/* closure */);
1020 
1021 extern XtSignalId XtAppAddSignal(
1022     XtAppContext       	/* app_context */,
1023     XtSignalCallbackProc /* proc */,
1024     XtPointer 		/* closure */
1025 );
1026 
1027 extern void XtRemoveSignal(
1028     XtSignalId 		/* id */
1029 );
1030 
1031 extern void XtNoticeSignal(
1032     XtSignalId		/* id */
1033 );
1034 
1035 extern void XtNextEvent( /* obsolete */
1036     XEvent* 		/* event */
1037 );
1038 
1039 extern void XtAppNextEvent(
1040     XtAppContext 	/* app_context */,
1041     XEvent*		/* event_return */
1042 );
1043 
1044 #define XtIMXEvent		1
1045 #define XtIMTimer		2
1046 #define XtIMAlternateInput	4
1047 #define XtIMSignal		8
1048 #define XtIMAll (XtIMXEvent | XtIMTimer | XtIMAlternateInput | XtIMSignal)
1049 
1050 extern Boolean XtPending( /* obsolete */
1051     void
1052 );
1053 
1054 extern XtInputMask XtAppPending(
1055     XtAppContext 	/* app_context */
1056 );
1057 
1058 extern XtBlockHookId XtAppAddBlockHook(
1059     XtAppContext 	/* app_context */,
1060     XtBlockHookProc 	/* proc */,
1061     XtPointer 		/* client_data */
1062 );
1063 
1064 extern void XtRemoveBlockHook(
1065     XtBlockHookId 	/* id */
1066 );
1067 
1068 /****************************************************************
1069  *
1070  * Random utility routines
1071  *
1072  ****************************************************************/
1073 
1074 #define XtIsRectObj(object)	(_XtCheckSubclassFlag(object, (XtEnum)0x02))
1075 #define XtIsWidget(object)	(_XtCheckSubclassFlag(object, (XtEnum)0x04))
1076 #define XtIsComposite(widget)	(_XtCheckSubclassFlag(widget, (XtEnum)0x08))
1077 #define XtIsConstraint(widget)	(_XtCheckSubclassFlag(widget, (XtEnum)0x10))
1078 #define XtIsShell(widget)	(_XtCheckSubclassFlag(widget, (XtEnum)0x20))
1079 
1080 #undef XtIsOverrideShell
1081 extern Boolean XtIsOverrideShell(Widget /* object */);
1082 #define XtIsOverrideShell(widget) \
1083     (_XtIsSubclassOf(widget, (WidgetClass)overrideShellWidgetClass, \
1084 		     (WidgetClass)shellWidgetClass, (XtEnum)0x20))
1085 
1086 #define XtIsWMShell(widget)	(_XtCheckSubclassFlag(widget, (XtEnum)0x40))
1087 
1088 #undef XtIsVendorShell
1089 extern Boolean XtIsVendorShell(Widget /* object */);
1090 #define XtIsVendorShell(widget)	\
1091     (_XtIsSubclassOf(widget, (WidgetClass)vendorShellWidgetClass, \
1092 		     (WidgetClass)wmShellWidgetClass, (XtEnum)0x40))
1093 
1094 #undef XtIsTransientShell
1095 extern Boolean XtIsTransientShell(Widget /* object */);
1096 #define XtIsTransientShell(widget) \
1097     (_XtIsSubclassOf(widget, (WidgetClass)transientShellWidgetClass, \
1098 		     (WidgetClass)wmShellWidgetClass, (XtEnum)0x40))
1099 #define XtIsTopLevelShell(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x80))
1100 
1101 #undef XtIsApplicationShell
1102 extern Boolean XtIsApplicationShell(Widget /* object */);
1103 #define XtIsApplicationShell(widget) \
1104     (_XtIsSubclassOf(widget, (WidgetClass)applicationShellWidgetClass, \
1105 		     (WidgetClass)topLevelShellWidgetClass, (XtEnum)0x80))
1106 
1107 #undef XtIsSessionShell
1108 extern Boolean XtIsSessionShell(Widget /* object */);
1109 #define XtIsSessionShell(widget) \
1110     (_XtIsSubclassOf(widget, (WidgetClass)sessionShellWidgetClass, \
1111 		     (WidgetClass)topLevelShellWidgetClass, (XtEnum)0x80))
1112 
1113 extern void XtRealizeWidget(
1114     Widget 		/* widget */
1115 );
1116 
1117 void XtUnrealizeWidget(
1118     Widget 		/* widget */
1119 );
1120 
1121 extern void XtDestroyWidget(
1122     Widget 		/* widget */
1123 );
1124 
1125 extern void XtSetSensitive(
1126     Widget 		/* widget */,
1127     _XtBoolean 		/* sensitive */
1128 );
1129 
1130 extern void XtSetMappedWhenManaged(
1131     Widget 		/* widget */,
1132     _XtBoolean 		/* mapped_when_managed */
1133 );
1134 
1135 extern Widget XtNameToWidget(
1136     Widget 		/* reference */,
1137     _Xconst _XtString	/* names */
1138 );
1139 
1140 extern Widget XtWindowToWidget(
1141     Display*		/* display */,
1142     Window 		/* window */
1143 );
1144 
1145 extern XtPointer XtGetClassExtension(
1146     WidgetClass		/* object_class */,
1147     Cardinal		/* byte_offset */,
1148     XrmQuark		/* type */,
1149     long		/* version */,
1150     Cardinal		/* record_size */
1151 );
1152 
1153 /***************************************************************
1154  *
1155  * Arg lists
1156  *
1157  ****************************************************************/
1158 
1159 
1160 #define XtSetArg(arg, n, d) \
1161     ((void)( (arg).name = (n), (arg).value = (XtArgVal)(d) ))
1162 
1163 extern ArgList XtMergeArgLists(
1164     ArgList 		/* args1 */,
1165     Cardinal 		/* num_args1 */,
1166     ArgList 		/* args2 */,
1167     Cardinal 		/* num_args2 */
1168 );
1169 
1170 /***************************************************************
1171  *
1172  * Vararg lists
1173  *
1174  ****************************************************************/
1175 
1176 #define XtVaNestedList  "XtVaNestedList"
1177 #define XtVaTypedArg    "XtVaTypedArg"
1178 
1179 extern XtVarArgsList XtVaCreateArgsList(
1180     XtPointer		/*unused*/, ...
1181 ) _X_SENTINEL(0);
1182 
1183 /*************************************************************
1184  *
1185  * Information routines
1186  *
1187  ************************************************************/
1188 
1189 #ifndef _XtIntrinsicP_h
1190 
1191 /* We're not included from the private file, so define these */
1192 
1193 extern Display *XtDisplay(
1194     Widget 		/* widget */
1195 );
1196 
1197 extern Display *XtDisplayOfObject(
1198     Widget 		/* object */
1199 );
1200 
1201 extern Screen *XtScreen(
1202     Widget 		/* widget */
1203 );
1204 
1205 extern Screen *XtScreenOfObject(
1206     Widget 		/* object */
1207 );
1208 
1209 extern Window XtWindow(
1210     Widget 		/* widget */
1211 );
1212 
1213 extern Window XtWindowOfObject(
1214     Widget 		/* object */
1215 );
1216 
1217 extern String XtName(
1218     Widget 		/* object */
1219 );
1220 
1221 extern WidgetClass XtSuperclass(
1222     Widget 		/* object */
1223 );
1224 
1225 extern WidgetClass XtClass(
1226     Widget 		/* object */
1227 );
1228 
1229 extern Widget XtParent(
1230     Widget 		/* widget */
1231 );
1232 
1233 #endif /*_XtIntrinsicP_h*/
1234 
1235 #undef XtMapWidget
1236 extern void XtMapWidget(Widget /* w */);
1237 #define XtMapWidget(widget)	XMapWindow(XtDisplay(widget), XtWindow(widget))
1238 
1239 #undef XtUnmapWidget
1240 extern void XtUnmapWidget(Widget /* w */);
1241 #define XtUnmapWidget(widget)	\
1242 		XUnmapWindow(XtDisplay(widget), XtWindow(widget))
1243 
1244 extern void XtAddCallback(
1245     Widget 		/* widget */,
1246     _Xconst _XtString 	/* callback_name */,
1247     XtCallbackProc 	/* callback */,
1248     XtPointer 		/* closure */
1249 );
1250 
1251 extern void XtRemoveCallback(
1252     Widget 		/* widget */,
1253     _Xconst _XtString 	/* callback_name */,
1254     XtCallbackProc 	/* callback */,
1255     XtPointer 		/* closure */
1256 );
1257 
1258 extern void XtAddCallbacks(
1259     Widget 		/* widget */,
1260     _Xconst _XtString	/* callback_name */,
1261     XtCallbackList 	/* callbacks */
1262 );
1263 
1264 extern void XtRemoveCallbacks(
1265     Widget 		/* widget */,
1266     _Xconst _XtString 	/* callback_name */,
1267     XtCallbackList 	/* callbacks */
1268 );
1269 
1270 extern void XtRemoveAllCallbacks(
1271     Widget 		/* widget */,
1272     _Xconst _XtString 	/* callback_name */
1273 );
1274 
1275 
1276 extern void XtCallCallbacks(
1277     Widget 		/* widget */,
1278     _Xconst _XtString 	/* callback_name */,
1279     XtPointer 		/* call_data */
1280 );
1281 
1282 extern void XtCallCallbackList(
1283     Widget		/* widget */,
1284     XtCallbackList 	/* callbacks */,
1285     XtPointer 		/* call_data */
1286 );
1287 
1288 extern XtCallbackStatus XtHasCallbacks(
1289     Widget 		/* widget */,
1290     _Xconst _XtString 	/* callback_name */
1291 );
1292 
1293 /****************************************************************
1294  *
1295  * Geometry Management
1296  *
1297  ****************************************************************/
1298 
1299 
1300 extern XtGeometryResult XtMakeGeometryRequest(
1301     Widget 		/* widget */,
1302     XtWidgetGeometry*	/* request */,
1303     XtWidgetGeometry*	/* reply_return */
1304 );
1305 
1306 extern XtGeometryResult XtQueryGeometry(
1307     Widget 		/* widget */,
1308     XtWidgetGeometry*	/* intended */,
1309     XtWidgetGeometry*	/* preferred_return */
1310 );
1311 
1312 extern Widget XtCreatePopupShell(
1313     _Xconst _XtString	/* name */,
1314     WidgetClass 	/* widgetClass */,
1315     Widget 		/* parent */,
1316     ArgList 		/* args */,
1317     Cardinal 		/* num_args */
1318 );
1319 
1320 extern Widget XtVaCreatePopupShell(
1321     _Xconst _XtString	/* name */,
1322     WidgetClass		/* widgetClass */,
1323     Widget		/* parent */,
1324     ...
1325 ) _X_SENTINEL(0);
1326 
1327 extern void XtPopup(
1328     Widget 		/* popup_shell */,
1329     XtGrabKind 		/* grab_kind */
1330 );
1331 
1332 extern void XtPopupSpringLoaded(
1333     Widget 		/* popup_shell */
1334 );
1335 
1336 extern void XtCallbackNone(
1337     Widget 		/* widget */,
1338     XtPointer 		/* closure */,
1339     XtPointer 		/* call_data */
1340 );
1341 
1342 extern void XtCallbackNonexclusive(
1343     Widget 		/* widget */,
1344     XtPointer 		/* closure */,
1345     XtPointer 		/* call_data */
1346 );
1347 
1348 extern void XtCallbackExclusive(
1349     Widget 		/* widget */,
1350     XtPointer 		/* closure */,
1351     XtPointer 		/* call_data */
1352 );
1353 
1354 extern void XtPopdown(
1355     Widget 		/* popup_shell */
1356 );
1357 
1358 extern void XtCallbackPopdown(
1359     Widget 		/* widget */,
1360     XtPointer 		/* closure */,
1361     XtPointer 		/* call_data */
1362 );
1363 
1364 extern void XtMenuPopupAction(
1365     Widget 		/* widget */,
1366     XEvent*		/* event */,
1367     String*		/* params */,
1368     Cardinal*		/* num_params */
1369 );
1370 
1371 extern Widget XtCreateWidget(
1372     _Xconst _XtString 	/* name */,
1373     WidgetClass 	/* widget_class */,
1374     Widget 		/* parent */,
1375     ArgList 		/* args */,
1376     Cardinal 		/* num_args */
1377 );
1378 
1379 extern Widget XtCreateManagedWidget(
1380     _Xconst _XtString 	/* name */,
1381     WidgetClass 	/* widget_class */,
1382     Widget 		/* parent */,
1383     ArgList 		/* args */,
1384     Cardinal 		/* num_args */
1385 );
1386 
1387 extern Widget XtVaCreateWidget(
1388     _Xconst _XtString	/* name */,
1389     WidgetClass		/* widget */,
1390     Widget		/* parent */,
1391     ...
1392 ) _X_SENTINEL(0);
1393 
1394 extern Widget XtVaCreateManagedWidget(
1395     _Xconst _XtString	/* name */,
1396     WidgetClass		/* widget_class */,
1397     Widget		/* parent */,
1398     ...
1399 ) _X_SENTINEL(0);
1400 
1401 extern Widget XtCreateApplicationShell( /* obsolete */
1402     _Xconst _XtString 	/* name */,
1403     WidgetClass 	/* widget_class */,
1404     ArgList 		/* args */,
1405     Cardinal 		/* num_args */
1406 );
1407 
1408 extern Widget XtAppCreateShell(
1409     _Xconst _XtString	/* application_name */,
1410     _Xconst _XtString	/* application_class */,
1411     WidgetClass 	/* widget_class */,
1412     Display*		/* display */,
1413     ArgList 		/* args */,
1414     Cardinal 		/* num_args */
1415 );
1416 
1417 extern Widget XtVaAppCreateShell(
1418     _Xconst _XtString	/* application_name */,
1419     _Xconst _XtString	/* application_class */,
1420     WidgetClass		/* widget_class */,
1421     Display*		/* display */,
1422     ...
1423 ) _X_SENTINEL(0);
1424 
1425 /****************************************************************
1426  *
1427  * Toolkit initialization
1428  *
1429  ****************************************************************/
1430 
1431 extern void XtToolkitInitialize(
1432     void
1433 );
1434 
1435 extern XtLanguageProc XtSetLanguageProc(
1436     XtAppContext	/* app_context */,
1437     XtLanguageProc	/* proc */,
1438     XtPointer		/* client_data */
1439 );
1440 
1441 extern void XtDisplayInitialize(
1442     XtAppContext 	/* app_context */,
1443     Display*		/* dpy */,
1444     _Xconst _XtString	/* application_name */,
1445     _Xconst _XtString	/* application_class */,
1446     XrmOptionDescRec* 	/* options */,
1447     Cardinal 		/* num_options */,
1448     int*		/* argc */,
1449     _XtString*		/* argv */
1450 );
1451 
1452 extern Widget XtOpenApplication(
1453     XtAppContext*	/* app_context_return */,
1454     _Xconst _XtString	/* application_class */,
1455     XrmOptionDescList 	/* options */,
1456     Cardinal 		/* num_options */,
1457     int*		/* argc_in_out */,
1458     _XtString*		/* argv_in_out */,
1459     String*		/* fallback_resources */,
1460     WidgetClass		/* widget_class */,
1461     ArgList 		/* args */,
1462     Cardinal 		/* num_args */
1463 );
1464 
1465 extern Widget XtVaOpenApplication(
1466     XtAppContext*	/* app_context_return */,
1467     _Xconst _XtString	/* application_class */,
1468     XrmOptionDescList	/* options */,
1469     Cardinal		/* num_options */,
1470     int*		/* argc_in_out */,
1471     _XtString*		/* argv_in_out */,
1472     String*		/* fallback_resources */,
1473     WidgetClass		/* widget_class */,
1474     ...
1475 ) _X_SENTINEL(0);
1476 
1477 extern Widget XtAppInitialize( /* obsolete */
1478     XtAppContext*	/* app_context_return */,
1479     _Xconst _XtString	/* application_class */,
1480     XrmOptionDescList 	/* options */,
1481     Cardinal 		/* num_options */,
1482     int*		/* argc_in_out */,
1483     _XtString*		/* argv_in_out */,
1484     String*		/* fallback_resources */,
1485     ArgList 		/* args */,
1486     Cardinal 		/* num_args */
1487 );
1488 
1489 extern Widget XtVaAppInitialize( /* obsolete */
1490     XtAppContext*	/* app_context_return */,
1491     _Xconst _XtString	/* application_class */,
1492     XrmOptionDescList	/* options */,
1493     Cardinal		/* num_options */,
1494     int*		/* argc_in_out */,
1495     _XtString*		/* argv_in_out */,
1496     String*		/* fallback_resources */,
1497     ...
1498 ) _X_SENTINEL(0);
1499 
1500 extern Widget XtInitialize( /* obsolete */
1501     _Xconst _XtString 	/* shell_name */,
1502     _Xconst _XtString 	/* application_class */,
1503     XrmOptionDescRec* 	/* options */,
1504     Cardinal 		/* num_options */,
1505     int*		/* argc */,
1506     _XtString*		/* argv */
1507 );
1508 
1509 extern Display *XtOpenDisplay(
1510     XtAppContext 	/* app_context */,
1511     _Xconst _XtString	/* display_string */,
1512     _Xconst _XtString	/* application_name */,
1513     _Xconst _XtString	/* application_class */,
1514     XrmOptionDescRec*	/* options */,
1515     Cardinal 		/* num_options */,
1516     int*		/* argc */,
1517     _XtString*		/* argv */
1518 );
1519 
1520 extern XtAppContext XtCreateApplicationContext(
1521     void
1522 );
1523 
1524 extern void XtAppSetFallbackResources(
1525     XtAppContext 	/* app_context */,
1526     String*		/* specification_list */
1527 );
1528 
1529 extern void XtDestroyApplicationContext(
1530     XtAppContext 	/* app_context */
1531 );
1532 
1533 extern void XtInitializeWidgetClass(
1534     WidgetClass 	/* widget_class */
1535 );
1536 
1537 extern XtAppContext XtWidgetToApplicationContext(
1538     Widget 		/* widget */
1539 );
1540 
1541 extern XtAppContext XtDisplayToApplicationContext(
1542     Display*		/* dpy */
1543 );
1544 
1545 extern XrmDatabase XtDatabase(
1546     Display*		/* dpy */
1547 );
1548 
1549 extern XrmDatabase XtScreenDatabase(
1550     Screen*		/* screen */
1551 );
1552 
1553 extern void XtCloseDisplay(
1554     Display*		/* dpy */
1555 );
1556 
1557 extern void XtGetApplicationResources(
1558     Widget 		/* widget */,
1559     XtPointer 		/* base */,
1560     XtResourceList 	/* resources */,
1561     Cardinal 		/* num_resources */,
1562     ArgList 		/* args */,
1563     Cardinal 		/* num_args */
1564 );
1565 
1566 extern void XtVaGetApplicationResources(
1567     Widget		/* widget */,
1568     XtPointer		/* base */,
1569     XtResourceList	/* resources */,
1570     Cardinal		/* num_resources */,
1571     ...
1572 ) _X_SENTINEL(0);
1573 
1574 extern void XtGetSubresources(
1575     Widget 		/* widget */,
1576     XtPointer 		/* base */,
1577     _Xconst _XtString 	/* name */,
1578     _Xconst _XtString 	/* class */,
1579     XtResourceList 	/* resources */,
1580     Cardinal 		/* num_resources */,
1581     ArgList 		/* args */,
1582     Cardinal 		/* num_args */
1583 );
1584 
1585 extern void XtVaGetSubresources(
1586     Widget		/* widget */,
1587     XtPointer		/* base */,
1588     _Xconst _XtString	/* name */,
1589     _Xconst _XtString	/* class */,
1590     XtResourceList	/* resources */,
1591     Cardinal		/* num_resources */,
1592     ...
1593 ) _X_SENTINEL(0);
1594 
1595 extern void XtSetValues(
1596     Widget 		/* widget */,
1597     ArgList 		/* args */,
1598     Cardinal 		/* num_args */
1599 );
1600 
1601 extern void XtVaSetValues(
1602     Widget		/* widget */,
1603     ...
1604 ) _X_SENTINEL(0);
1605 
1606 extern void XtGetValues(
1607     Widget 		/* widget */,
1608     ArgList 		/* args */,
1609     Cardinal 		/* num_args */
1610 );
1611 
1612 extern void XtVaGetValues(
1613     Widget		/* widget */,
1614     ...
1615 ) _X_SENTINEL(0);
1616 
1617 extern void XtSetSubvalues(
1618     XtPointer 		/* base */,
1619     XtResourceList 	/* resources */,
1620     Cardinal 		/* num_resources */,
1621     ArgList 		/* args */,
1622     Cardinal 		/* num_args */
1623 );
1624 
1625 extern void XtVaSetSubvalues(
1626     XtPointer		/* base */,
1627     XtResourceList	/* resources */,
1628     Cardinal		/* num_resources */,
1629     ...
1630 ) _X_SENTINEL(0);
1631 
1632 extern void XtGetSubvalues(
1633     XtPointer 		/* base */,
1634     XtResourceList 	/* resources */,
1635     Cardinal 		/* num_resources */,
1636     ArgList 		/* args */,
1637     Cardinal 		/* num_args */
1638 );
1639 
1640 extern void XtVaGetSubvalues(
1641     XtPointer		/* base */,
1642     XtResourceList	/* resources */,
1643     Cardinal		/* num_resources */,
1644     ...
1645 ) _X_SENTINEL(0);
1646 
1647 extern void XtGetResourceList(
1648     WidgetClass 	/* widget_class */,
1649     XtResourceList*	/* resources_return */,
1650     Cardinal*		/* num_resources_return */
1651 );
1652 
1653 extern void XtGetConstraintResourceList(
1654     WidgetClass 	/* widget_class */,
1655     XtResourceList*	/* resources_return */,
1656     Cardinal*		/* num_resources_return */
1657 );
1658 
1659 #define XtUnspecifiedPixmap	((Pixmap)2)
1660 #define XtUnspecifiedShellInt	(-1)
1661 #define XtUnspecifiedWindow	((Window)2)
1662 #define XtUnspecifiedWindowGroup ((Window)3)
1663 #define XtCurrentDirectory	"XtCurrentDirectory"
1664 #define XtDefaultForeground	"XtDefaultForeground"
1665 #define XtDefaultBackground	"XtDefaultBackground"
1666 #define XtDefaultFont		"XtDefaultFont"
1667 #define XtDefaultFontSet	"XtDefaultFontSet"
1668 
1669 #define XtOffset(p_type,field) \
1670 	((Cardinal) (((char *) (&(((p_type)NULL)->field))) - ((char *) NULL)))
1671 
1672 #ifdef offsetof
1673 #define XtOffsetOf(s_type,field) offsetof(s_type,field)
1674 #else
1675 #define XtOffsetOf(s_type,field) XtOffset(s_type*,field)
1676 #endif
1677 
1678 /*************************************************************
1679  *
1680  * Session Management
1681  *
1682  ************************************************************/
1683 
1684 typedef struct _XtCheckpointTokenRec {
1685     int		save_type;
1686     int		interact_style;
1687     Boolean	shutdown;
1688     Boolean	fast;
1689     Boolean	cancel_shutdown;
1690     int		phase;
1691     int		interact_dialog_type;	/* return */
1692     Boolean	request_cancel;		/* return */
1693     Boolean	request_next_phase;	/* return */
1694     Boolean	save_success;		/* return */
1695     int		type;		/* implementation private */
1696     Widget	widget;		/* implementation private */
1697 } XtCheckpointTokenRec, *XtCheckpointToken;
1698 
1699 XtCheckpointToken XtSessionGetToken(
1700     Widget		/* widget */
1701 );
1702 
1703 void XtSessionReturnToken(
1704     XtCheckpointToken	/* token */
1705 );
1706 
1707 /*************************************************************
1708  *
1709  * Error Handling
1710  *
1711  ************************************************************/
1712 
1713 extern XtErrorMsgHandler XtAppSetErrorMsgHandler(
1714     XtAppContext 	/* app_context */,
1715     XtErrorMsgHandler 	/* handler */ _X_NORETURN
1716 );
1717 
1718 extern void XtSetErrorMsgHandler( /* obsolete */
1719     XtErrorMsgHandler 	/* handler */ _X_NORETURN
1720 );
1721 
1722 extern XtErrorMsgHandler XtAppSetWarningMsgHandler(
1723     XtAppContext 	/* app_context */,
1724     XtErrorMsgHandler 	/* handler */
1725 );
1726 
1727 extern void XtSetWarningMsgHandler( /* obsolete */
1728     XtErrorMsgHandler 	/* handler */
1729 );
1730 
1731 extern void XtAppErrorMsg(
1732     XtAppContext 	/* app_context */,
1733     _Xconst _XtString 	/* name */,
1734     _Xconst _XtString	/* type */,
1735     _Xconst _XtString	/* class */,
1736     _Xconst _XtString	/* default */,
1737     String*		/* params */,
1738     Cardinal*		/* num_params */
1739 ) _X_NORETURN;
1740 
1741 extern void XtErrorMsg( /* obsolete */
1742     _Xconst _XtString 	/* name */,
1743     _Xconst _XtString	/* type */,
1744     _Xconst _XtString	/* class */,
1745     _Xconst _XtString	/* default */,
1746     String*		/* params */,
1747     Cardinal*		/* num_params */
1748 ) _X_NORETURN;
1749 
1750 extern void XtAppWarningMsg(
1751     XtAppContext 	/* app_context */,
1752     _Xconst _XtString 	/* name */,
1753     _Xconst _XtString 	/* type */,
1754     _Xconst _XtString 	/* class */,
1755     _Xconst _XtString 	/* default */,
1756     String*		/* params */,
1757     Cardinal*		/* num_params */
1758 );
1759 
1760 extern void XtWarningMsg( /* obsolete */
1761     _Xconst _XtString	/* name */,
1762     _Xconst _XtString	/* type */,
1763     _Xconst _XtString	/* class */,
1764     _Xconst _XtString	/* default */,
1765     String*		/* params */,
1766     Cardinal*		/* num_params */
1767 );
1768 
1769 extern XtErrorHandler XtAppSetErrorHandler(
1770     XtAppContext 	/* app_context */,
1771     XtErrorHandler 	/* handler */ _X_NORETURN
1772 );
1773 
1774 extern void XtSetErrorHandler( /* obsolete */
1775     XtErrorHandler 	/* handler */ _X_NORETURN
1776 );
1777 
1778 extern XtErrorHandler XtAppSetWarningHandler(
1779     XtAppContext 	/* app_context */,
1780     XtErrorHandler 	/* handler */
1781 );
1782 
1783 extern void XtSetWarningHandler( /* obsolete */
1784     XtErrorHandler 	/* handler */
1785 );
1786 
1787 extern void XtAppError(
1788     XtAppContext 	/* app_context */,
1789     _Xconst _XtString	/* message */
1790 ) _X_NORETURN;
1791 
1792 extern void XtError( /* obsolete */
1793     _Xconst _XtString	/* message */
1794 ) _X_NORETURN;
1795 
1796 extern void XtAppWarning(
1797     XtAppContext 	/* app_context */,
1798     _Xconst _XtString	/* message */
1799 );
1800 
1801 extern void XtWarning( /* obsolete */
1802     _Xconst _XtString	/* message */
1803 );
1804 
1805 extern XrmDatabase *XtAppGetErrorDatabase(
1806     XtAppContext 	/* app_context */
1807 );
1808 
1809 extern XrmDatabase *XtGetErrorDatabase( /* obsolete */
1810     void
1811 );
1812 
1813 extern void XtAppGetErrorDatabaseText(
1814     XtAppContext 	/* app_context */,
1815     _Xconst _XtString	/* name */,
1816     _Xconst _XtString	/* type */,
1817     _Xconst _XtString	/* class */,
1818     _Xconst _XtString 	/* default */,
1819     _XtString 		/* buffer_return */,
1820     int 		/* nbytes */,
1821     XrmDatabase 	/* database */
1822 );
1823 
1824 extern void XtGetErrorDatabaseText( /* obsolete */
1825     _Xconst _XtString	/* name */,
1826     _Xconst _XtString	/* type */,
1827     _Xconst _XtString	/* class */,
1828     _Xconst _XtString 	/* default */,
1829     _XtString 		/* buffer_return */,
1830     int 		/* nbytes */
1831 );
1832 
1833 /****************************************************************
1834  *
1835  * Memory Management
1836  *
1837  ****************************************************************/
1838 
1839 extern char *XtMalloc(
1840     Cardinal 		/* size */
1841 );
1842 
1843 extern char *XtCalloc(
1844     Cardinal		/* num */,
1845     Cardinal 		/* size */
1846 );
1847 
1848 extern char *XtRealloc(
1849     char* 		/* ptr */,
1850     Cardinal 		/* num */
1851 );
1852 
1853 extern void XtFree(
1854     char*		/* ptr */
1855 );
1856 
1857 #ifndef _X_RESTRICT_KYWD
1858 # define _X_RESTRICT_KYWD
1859 #endif
1860 extern Cardinal XtAsprintf(
1861     _XtString *new_string,
1862     _Xconst char * _X_RESTRICT_KYWD format,
1863     ...
1864 ) _X_ATTRIBUTE_PRINTF(2,3);
1865 
1866 #ifdef XTTRACEMEMORY
1867 
1868 extern char *_XtMalloc( /* implementation-private */
1869     Cardinal	/* size */,
1870     const char */* file */,
1871     int	        /* line */
1872 );
1873 
1874 extern char *_XtRealloc( /* implementation-private */
1875     char *	/* ptr */,
1876     Cardinal    /* size */,
1877     const char */* file */,
1878     int		/* line */
1879 );
1880 
1881 extern char *_XtCalloc( /* implementation-private */
1882     Cardinal	/* num */,
1883     Cardinal 	/* size */,
1884     const char */* file */,
1885     int		/* line */
1886 );
1887 
1888 extern void _XtFree( /* implementation-private */
1889     char *	/* ptr */
1890 );
1891 
1892 extern Boolean _XtIsValidPointer( /* implementation-private */
1893     char *	/* ptr */);
1894 
1895 extern void _XtPrintMemory( /* implementation-private */
1896     const char */* filename */);
1897 
1898 #define XtMalloc(size) _XtMalloc(size, __FILE__, __LINE__)
1899 #define XtRealloc(ptr,size) _XtRealloc(ptr, size, __FILE__, __LINE__)
1900 #define XtCalloc(num,size) _XtCalloc(num, size, __FILE__, __LINE__)
1901 #define XtFree(ptr) _XtFree(ptr)
1902 
1903 #endif /* ifdef XTTRACEMEMORY */
1904 
1905 #define XtNew(type) ((type *) XtMalloc((unsigned) sizeof(type)))
1906 
1907 #undef XtNewString
1908 extern String XtNewString(String /* str */);
1909 #define XtNewString(str) \
1910     ((str) != NULL ? (strcpy(XtMalloc((unsigned)strlen(str) + 1), str)) : NULL)
1911 
1912 /*************************************************************
1913  *
1914  *  Work procs
1915  *
1916  **************************************************************/
1917 
1918 extern XtWorkProcId XtAddWorkProc( /* obsolete */
1919     XtWorkProc 		/* proc */,
1920     XtPointer 		/* closure */
1921 );
1922 
1923 extern XtWorkProcId XtAppAddWorkProc(
1924     XtAppContext 	/* app_context */,
1925     XtWorkProc 		/* proc */,
1926     XtPointer 		/* closure */
1927 );
1928 
1929 extern void  XtRemoveWorkProc(
1930     XtWorkProcId 	/* id */
1931 );
1932 
1933 
1934 /****************************************************************
1935  *
1936  * Graphic Context Management
1937  *****************************************************************/
1938 
1939 extern GC XtGetGC(
1940     Widget 		/* widget */,
1941     XtGCMask 		/* valueMask */,
1942     XGCValues* 		/* values */
1943 );
1944 
1945 extern GC XtAllocateGC(
1946     Widget 		/* widget */,
1947     Cardinal		/* depth */,
1948     XtGCMask 		/* valueMask */,
1949     XGCValues* 		/* values */,
1950     XtGCMask		/* dynamicMask */,
1951     XtGCMask		/* unusedMask */
1952 );
1953 
1954 /* This implementation of XtDestroyGC differs from the formal specification
1955  * for historic backwards compatibility reasons.  As other implementations
1956  * may conform to the spec, use of XtReleaseGC is strongly encouraged.
1957  */
1958 extern void XtDestroyGC( /* obsolete */
1959     GC 			/* gc */
1960 );
1961 
1962 extern void XtReleaseGC(
1963     Widget 		/* object */,
1964     GC 			/* gc */
1965 );
1966 
1967 
1968 
1969 extern void XtAppReleaseCacheRefs(
1970     XtAppContext	/* app_context */,
1971     XtCacheRef*		/* cache_ref */
1972 );
1973 
1974 extern void XtCallbackReleaseCacheRef(
1975     Widget 		/* widget */,
1976     XtPointer 		/* closure */,	/* XtCacheRef */
1977     XtPointer 		/* call_data */
1978 );
1979 
1980 extern void XtCallbackReleaseCacheRefList(
1981     Widget 		/* widget */,
1982     XtPointer 		/* closure */,	/* XtCacheRef* */
1983     XtPointer 		/* call_data */
1984 );
1985 
1986 extern void XtSetWMColormapWindows(
1987     Widget 		/* widget */,
1988     Widget*		/* list */,
1989     Cardinal		/* count */
1990 );
1991 
1992 extern _XtString XtFindFile(
1993     _Xconst _XtString	/* path */,
1994     Substitution	/* substitutions */,
1995     Cardinal 		/* num_substitutions */,
1996     XtFilePredicate	/* predicate */
1997 );
1998 
1999 extern _XtString XtResolvePathname(
2000     Display*		/* dpy */,
2001     _Xconst _XtString	/* type */,
2002     _Xconst _XtString	/* filename */,
2003     _Xconst _XtString	/* suffix */,
2004     _Xconst _XtString	/* path */,
2005     Substitution	/* substitutions */,
2006     Cardinal		/* num_substitutions */,
2007     XtFilePredicate 	/* predicate */
2008 );
2009 
2010 /****************************************************************
2011  *
2012  * Selections
2013  *
2014  *****************************************************************/
2015 
2016 #define XT_CONVERT_FAIL (Atom)0x80000001
2017 
2018 extern void XtDisownSelection(
2019     Widget 		/* widget */,
2020     Atom 		/* selection */,
2021     Time 		/* time */
2022 );
2023 
2024 extern void XtGetSelectionValue(
2025     Widget 		/* widget */,
2026     Atom 		/* selection */,
2027     Atom 		/* target */,
2028     XtSelectionCallbackProc /* callback */,
2029     XtPointer 		/* closure */,
2030     Time 		/* time */
2031 );
2032 
2033 extern void XtGetSelectionValues(
2034     Widget 		/* widget */,
2035     Atom 		/* selection */,
2036     Atom*		/* targets */,
2037     int 		/* count */,
2038     XtSelectionCallbackProc /* callback */,
2039     XtPointer*		/* closures */,
2040     Time 		/* time */
2041 );
2042 
2043 extern void XtAppSetSelectionTimeout(
2044     XtAppContext 	/* app_context */,
2045     unsigned long 	/* timeout */
2046 );
2047 
2048 extern void XtSetSelectionTimeout( /* obsolete */
2049     unsigned long 	/* timeout */
2050 );
2051 
2052 extern unsigned long XtAppGetSelectionTimeout(
2053     XtAppContext 	/* app_context */
2054 );
2055 
2056 extern unsigned long XtGetSelectionTimeout( /* obsolete */
2057     void
2058 );
2059 
2060 extern XSelectionRequestEvent *XtGetSelectionRequest(
2061     Widget 		/* widget */,
2062     Atom 		/* selection */,
2063     XtRequestId 	/* request_id */
2064 );
2065 
2066 extern void XtGetSelectionValueIncremental(
2067     Widget 		/* widget */,
2068     Atom 		/* selection */,
2069     Atom 		/* target */,
2070     XtSelectionCallbackProc /* selection_callback */,
2071     XtPointer 		/* client_data */,
2072     Time 		/* time */
2073 );
2074 
2075 extern void XtGetSelectionValuesIncremental(
2076     Widget 		/* widget */,
2077     Atom 		/* selection */,
2078     Atom*		/* targets */,
2079     int 		/* count */,
2080     XtSelectionCallbackProc /* callback */,
2081     XtPointer*		/* client_data */,
2082     Time 		/* time */
2083 );
2084 
2085 extern void XtSetSelectionParameters(
2086     Widget		/* requestor */,
2087     Atom		/* selection */,
2088     Atom		/* type */,
2089     XtPointer		/* value */,
2090     unsigned long	/* length */,
2091     int			/* format */
2092 );
2093 
2094 extern void XtGetSelectionParameters(
2095     Widget		/* owner */,
2096     Atom		/* selection */,
2097     XtRequestId		/* request_id */,
2098     Atom*		/* type_return */,
2099     XtPointer*		/* value_return */,
2100     unsigned long*	/* length_return */,
2101     int*		/* format_return */
2102 );
2103 
2104 extern void XtCreateSelectionRequest(
2105     Widget		/* requestor */,
2106     Atom		/* selection */
2107 );
2108 
2109 extern void XtSendSelectionRequest(
2110     Widget		/* requestor */,
2111     Atom		/* selection */,
2112     Time		/* time */
2113 );
2114 
2115 extern void XtCancelSelectionRequest(
2116     Widget		/* requestor */,
2117     Atom		/* selection */
2118 );
2119 
2120 extern Atom XtReservePropertyAtom(
2121     Widget		/* widget */
2122 );
2123 
2124 extern void XtReleasePropertyAtom(
2125     Widget		/* widget */,
2126     Atom		/* selection */
2127 );
2128 
2129 extern void XtGrabKey(
2130     Widget 		/* widget */,
2131     _XtKeyCode 		/* keycode */,
2132     Modifiers	 	/* modifiers */,
2133     _XtBoolean 		/* owner_events */,
2134     int 		/* pointer_mode */,
2135     int 		/* keyboard_mode */
2136 );
2137 
2138 extern void XtUngrabKey(
2139     Widget 		/* widget */,
2140     _XtKeyCode 		/* keycode */,
2141     Modifiers	 	/* modifiers */
2142 );
2143 
2144 extern int XtGrabKeyboard(
2145     Widget 		/* widget */,
2146     _XtBoolean 		/* owner_events */,
2147     int 		/* pointer_mode */,
2148     int 		/* keyboard_mode */,
2149     Time 		/* time */
2150 );
2151 
2152 extern void XtUngrabKeyboard(
2153     Widget 		/* widget */,
2154     Time 		/* time */
2155 );
2156 
2157 extern void XtGrabButton(
2158     Widget 		/* widget */,
2159     int 		/* button */,
2160     Modifiers	 	/* modifiers */,
2161     _XtBoolean 		/* owner_events */,
2162     unsigned int	/* event_mask */,
2163     int 		/* pointer_mode */,
2164     int 		/* keyboard_mode */,
2165     Window 		/* confine_to */,
2166     Cursor 		/* cursor */
2167 );
2168 
2169 extern void XtUngrabButton(
2170     Widget 		/* widget */,
2171     unsigned int	/* button */,
2172     Modifiers	 	/* modifiers */
2173 );
2174 
2175 extern int XtGrabPointer(
2176     Widget 		/* widget */,
2177     _XtBoolean 		/* owner_events */,
2178     unsigned int	/* event_mask */,
2179     int 		/* pointer_mode */,
2180     int 		/* keyboard_mode */,
2181     Window 		/* confine_to */,
2182     Cursor 		/* cursor */,
2183     Time 		/* time */
2184 );
2185 
2186 extern void XtUngrabPointer(
2187     Widget 		/* widget */,
2188     Time 		/* time */
2189 );
2190 
2191 extern void XtGetApplicationNameAndClass(
2192     Display*		/* dpy */,
2193     String*		/* name_return */,
2194     String*		/* class_return */
2195 );
2196 
2197 extern void XtRegisterDrawable(
2198     Display*		/* dpy */,
2199     Drawable		/* drawable */,
2200     Widget		/* widget */
2201 );
2202 
2203 extern void XtUnregisterDrawable(
2204     Display*		/* dpy */,
2205     Drawable		/* drawable */
2206 );
2207 
2208 extern Widget XtHooksOfDisplay(
2209     Display*		/* dpy */
2210 );
2211 
2212 typedef struct {
2213     String type;
2214     Widget widget;
2215     ArgList args;
2216     Cardinal num_args;
2217 } XtCreateHookDataRec, *XtCreateHookData;
2218 
2219 typedef struct {
2220     String type;
2221     Widget widget;
2222     XtPointer event_data;
2223     Cardinal num_event_data;
2224 } XtChangeHookDataRec, *XtChangeHookData;
2225 
2226 typedef struct {
2227     Widget old, req;
2228     ArgList args;
2229     Cardinal num_args;
2230 } XtChangeHookSetValuesDataRec, *XtChangeHookSetValuesData;
2231 
2232 typedef struct {
2233     String type;
2234     Widget widget;
2235     XtGeometryMask changeMask;
2236     XWindowChanges changes;
2237 } XtConfigureHookDataRec, *XtConfigureHookData;
2238 
2239 typedef struct {
2240     String type;
2241     Widget widget;
2242     XtWidgetGeometry* request;
2243     XtWidgetGeometry* reply;
2244     XtGeometryResult result;
2245 } XtGeometryHookDataRec, *XtGeometryHookData;
2246 
2247 typedef struct {
2248     String type;
2249     Widget widget;
2250 } XtDestroyHookDataRec, *XtDestroyHookData;
2251 
2252 extern void XtGetDisplays(
2253     XtAppContext	/* app_context */,
2254     Display***		/* dpy_return */,
2255     Cardinal*		/* num_dpy_return */
2256 );
2257 
2258 extern Boolean XtToolkitThreadInitialize(
2259     void
2260 );
2261 
2262 extern void XtAppSetExitFlag(
2263     XtAppContext	/* app_context */
2264 );
2265 
2266 extern Boolean XtAppGetExitFlag(
2267     XtAppContext	/* app_context */
2268 );
2269 
2270 extern void XtAppLock(
2271     XtAppContext	/* app_context */
2272 );
2273 
2274 extern void XtAppUnlock(
2275     XtAppContext	/* app_context */
2276 );
2277 
2278 /*
2279  *	Predefined Resource Converters
2280  */
2281 
2282 
2283 /* String converters */
2284 
2285 extern Boolean XtCvtStringToAcceleratorTable(
2286     Display*	/* dpy */,
2287     XrmValuePtr /* args */,	/* none */
2288     Cardinal*   /* num_args */,
2289     XrmValuePtr	/* fromVal */,
2290     XrmValuePtr	/* toVal */,
2291     XtPointer*	/* closure_ret */
2292 );
2293 
2294 extern Boolean XtCvtStringToAtom(
2295     Display*	/* dpy */,
2296     XrmValuePtr /* args */,	/* Display */
2297     Cardinal*   /* num_args */,
2298     XrmValuePtr	/* fromVal */,
2299     XrmValuePtr	/* toVal */,
2300     XtPointer*	/* closure_ret */
2301 );
2302 
2303 extern Boolean XtCvtStringToBool(
2304     Display*	/* dpy */,
2305     XrmValuePtr /* args */,	/* none */
2306     Cardinal*   /* num_args */,
2307     XrmValuePtr	/* fromVal */,
2308     XrmValuePtr	/* toVal */,
2309     XtPointer*	/* closure_ret */
2310 );
2311 
2312 extern Boolean XtCvtStringToBoolean(
2313     Display*	/* dpy */,
2314     XrmValuePtr /* args */,	/* none */
2315     Cardinal*   /* num_args */,
2316     XrmValuePtr	/* fromVal */,
2317     XrmValuePtr	/* toVal */,
2318     XtPointer*	/* closure_ret */
2319 );
2320 
2321 extern Boolean XtCvtStringToCommandArgArray(
2322     Display*	/* dpy */,
2323     XrmValuePtr /* args */,	/* none */
2324     Cardinal*   /* num_args */,
2325     XrmValuePtr	/* fromVal */,
2326     XrmValuePtr	/* toVal */,
2327     XtPointer*	/* closure_ret */
2328 );
2329 
2330 extern Boolean XtCvtStringToCursor(
2331     Display*	/* dpy */,
2332     XrmValuePtr /* args */,	/* Display */
2333     Cardinal*   /* num_args */,
2334     XrmValuePtr	/* fromVal */,
2335     XrmValuePtr	/* toVal */,
2336     XtPointer*	/* closure_ret */
2337 );
2338 
2339 extern Boolean XtCvtStringToDimension(
2340     Display*	/* dpy */,
2341     XrmValuePtr /* args */,	/* none */
2342     Cardinal*   /* num_args */,
2343     XrmValuePtr	/* fromVal */,
2344     XrmValuePtr	/* toVal */,
2345     XtPointer*	/* closure_ret */
2346 );
2347 
2348 extern Boolean XtCvtStringToDirectoryString(
2349     Display*	/* dpy */,
2350     XrmValuePtr /* args */,	/* none */
2351     Cardinal*   /* num_args */,
2352     XrmValuePtr	/* fromVal */,
2353     XrmValuePtr	/* toVal */,
2354     XtPointer*	/* closure_ret */
2355 );
2356 
2357 extern Boolean XtCvtStringToDisplay(
2358     Display*	/* dpy */,
2359     XrmValuePtr /* args */,	/* none */
2360     Cardinal*   /* num_args */,
2361     XrmValuePtr	/* fromVal */,
2362     XrmValuePtr	/* toVal */,
2363     XtPointer*	/* closure_ret */
2364 );
2365 
2366 extern Boolean XtCvtStringToFile(
2367     Display*	/* dpy */,
2368     XrmValuePtr /* args */,	/* none */
2369     Cardinal*   /* num_args */,
2370     XrmValuePtr	/* fromVal */,
2371     XrmValuePtr	/* toVal */,
2372     XtPointer*	/* closure_ret */
2373 );
2374 
2375 extern Boolean XtCvtStringToFloat(
2376     Display*	/* dpy */,
2377     XrmValuePtr /* args */,	/* none */
2378     Cardinal*   /* num_args */,
2379     XrmValuePtr	/* fromVal */,
2380     XrmValuePtr	/* toVal */,
2381     XtPointer*	/* closure_ret */
2382 );
2383 
2384 extern Boolean XtCvtStringToFont(
2385     Display*	/* dpy */,
2386     XrmValuePtr /* args */,	/* Display */
2387     Cardinal*   /* num_args */,
2388     XrmValuePtr	/* fromVal */,
2389     XrmValuePtr	/* toVal */,
2390     XtPointer*	/* closure_ret */
2391 );
2392 
2393 extern Boolean XtCvtStringToFontSet(
2394     Display*	/* dpy */,
2395     XrmValuePtr /* args */,	/* Display, locale */
2396     Cardinal*   /* num_args */,
2397     XrmValuePtr	/* fromVal */,
2398     XrmValuePtr	/* toVal */,
2399     XtPointer*	/* closure_ret */
2400 );
2401 
2402 extern Boolean XtCvtStringToFontStruct(
2403     Display*	/* dpy */,
2404     XrmValuePtr /* args */,	/* Display */
2405     Cardinal*   /* num_args */,
2406     XrmValuePtr	/* fromVal */,
2407     XrmValuePtr	/* toVal */,
2408     XtPointer*	/* closure_ret */
2409 );
2410 
2411 extern Boolean XtCvtStringToGravity(
2412     Display*	/* dpy */,
2413     XrmValuePtr /* args */,
2414     Cardinal*   /* num_args */,
2415     XrmValuePtr	/* fromVal */,
2416     XrmValuePtr	/* toVal */,
2417     XtPointer*	/* closure_ret */
2418 );
2419 
2420 extern Boolean XtCvtStringToInitialState(
2421     Display*	/* dpy */,
2422     XrmValuePtr /* args */,	/* none */
2423     Cardinal*   /* num_args */,
2424     XrmValuePtr	/* fromVal */,
2425     XrmValuePtr	/* toVal */,
2426     XtPointer*	/* closure_ret */
2427 );
2428 
2429 extern Boolean XtCvtStringToInt(
2430     Display*	/* dpy */,
2431     XrmValuePtr /* args */,	/* none */
2432     Cardinal*   /* num_args */,
2433     XrmValuePtr	/* fromVal */,
2434     XrmValuePtr	/* toVal */,
2435     XtPointer*	/* closure_ret */
2436 );
2437 
2438 extern Boolean XtCvtStringToPixel(
2439     Display*	/* dpy */,
2440     XrmValuePtr /* args */,	/* Screen, Colormap */
2441     Cardinal*   /* num_args */,
2442     XrmValuePtr	/* fromVal */,
2443     XrmValuePtr	/* toVal */,
2444     XtPointer*	/* closure_ret */
2445 );
2446 
2447 #define XtCvtStringToPosition XtCvtStringToShort
2448 
2449 extern Boolean XtCvtStringToRestartStyle(
2450     Display*	/* dpy */,
2451     XrmValuePtr /* args */,	/* none */
2452     Cardinal*   /* num_args */,
2453     XrmValuePtr	/* fromVal */,
2454     XrmValuePtr	/* toVal */,
2455     XtPointer*	/* closure_ret */
2456 );
2457 
2458 extern Boolean XtCvtStringToShort(
2459     Display*	/* dpy */,
2460     XrmValuePtr /* args */,	/* none */
2461     Cardinal*   /* num_args */,
2462     XrmValuePtr	/* fromVal */,
2463     XrmValuePtr	/* toVal */,
2464     XtPointer*	/* closure_ret */
2465 );
2466 
2467 extern Boolean XtCvtStringToTranslationTable(
2468     Display*	/* dpy */,
2469     XrmValuePtr /* args */,	/* none */
2470     Cardinal*   /* num_args */,
2471     XrmValuePtr	/* fromVal */,
2472     XrmValuePtr	/* toVal */,
2473     XtPointer*	/* closure_ret */
2474 );
2475 
2476 extern Boolean XtCvtStringToUnsignedChar(
2477     Display*	/* dpy */,
2478     XrmValuePtr /* args */,	/* none */
2479     Cardinal*   /* num_args */,
2480     XrmValuePtr	/* fromVal */,
2481     XrmValuePtr	/* toVal */,
2482     XtPointer*	/* closure_ret */
2483 );
2484 
2485 extern Boolean XtCvtStringToVisual(
2486     Display*	/* dpy */,
2487     XrmValuePtr /* args */,	/* Screen, depth */
2488     Cardinal*   /* num_args */,
2489     XrmValuePtr	/* fromVal */,
2490     XrmValuePtr	/* toVal */,
2491     XtPointer*	/* closure_ret */
2492 );
2493 
2494 /* int converters */
2495 
2496 extern Boolean XtCvtIntToBool(
2497     Display*	/* dpy */,
2498     XrmValuePtr /* args */,	/* none */
2499     Cardinal*   /* num_args */,
2500     XrmValuePtr	/* fromVal */,
2501     XrmValuePtr	/* toVal */,
2502     XtPointer*	/* closure_ret */
2503 );
2504 
2505 extern Boolean XtCvtIntToBoolean(
2506     Display*	/* dpy */,
2507     XrmValuePtr /* args */,	/* none */
2508     Cardinal*   /* num_args */,
2509     XrmValuePtr	/* fromVal */,
2510     XrmValuePtr	/* toVal */,
2511     XtPointer*	/* closure_ret */
2512 );
2513 
2514 extern Boolean XtCvtIntToColor(
2515     Display*	/* dpy */,
2516     XrmValuePtr /* args */,	/* Screen, Colormap */
2517     Cardinal*   /* num_args */,
2518     XrmValuePtr	/* fromVal */,
2519     XrmValuePtr	/* toVal */,
2520     XtPointer*	/* closure_ret */
2521 );
2522 
2523 #define XtCvtIntToDimension XtCvtIntToShort
2524 
2525 extern Boolean XtCvtIntToFloat(
2526     Display*	/* dpy */,
2527     XrmValuePtr /* args */,	/* none */
2528     Cardinal*   /* num_args */,
2529     XrmValuePtr	/* fromVal */,
2530     XrmValuePtr	/* toVal */,
2531     XtPointer*	/* closure_ret */
2532 );
2533 
2534 extern Boolean XtCvtIntToFont(
2535     Display*	/* dpy */,
2536     XrmValuePtr /* args */,	/* none */
2537     Cardinal*   /* num_args */,
2538     XrmValuePtr	/* fromVal */,
2539     XrmValuePtr	/* toVal */,
2540     XtPointer*	/* closure_ret */
2541 );
2542 
2543 extern Boolean XtCvtIntToPixel(
2544     Display*	/* dpy */,
2545     XrmValuePtr /* args */,	/* none */
2546     Cardinal*   /* num_args */,
2547     XrmValuePtr	/* fromVal */,
2548     XrmValuePtr	/* toVal */,
2549     XtPointer*	/* closure_ret */
2550 );
2551 
2552 extern Boolean XtCvtIntToPixmap(
2553     Display*	/* dpy */,
2554     XrmValuePtr /* args */,	/* none */
2555     Cardinal*   /* num_args */,
2556     XrmValuePtr	/* fromVal */,
2557     XrmValuePtr	/* toVal */,
2558     XtPointer*	/* closure_ret */
2559 );
2560 
2561 #define XtCvtIntToPosition XtCvtIntToShort
2562 
2563 extern Boolean XtCvtIntToShort(
2564     Display*	/* dpy */,
2565     XrmValuePtr /* args */,	/* none */
2566     Cardinal*   /* num_args */,
2567     XrmValuePtr	/* fromVal */,
2568     XrmValuePtr	/* toVal */,
2569     XtPointer*	/* closure_ret */
2570 );
2571 
2572 extern Boolean XtCvtIntToUnsignedChar(
2573     Display*	/* dpy */,
2574     XrmValuePtr /* args */,	/* none */
2575     Cardinal*   /* num_args */,
2576     XrmValuePtr	/* fromVal */,
2577     XrmValuePtr	/* toVal */,
2578     XtPointer*	/* closure_ret */
2579 );
2580 
2581 /* Color converter */
2582 
2583 extern Boolean XtCvtColorToPixel(
2584     Display*	/* dpy */,
2585     XrmValuePtr /* args */,	/* none */
2586     Cardinal*   /* num_args */,
2587     XrmValuePtr	/* fromVal */,
2588     XrmValuePtr	/* toVal */,
2589     XtPointer*	/* closure_ret */
2590 );
2591 
2592 /* Pixel converter */
2593 
2594 #define XtCvtPixelToColor XtCvtIntToColor
2595 
2596 
2597 _XFUNCPROTOEND
2598 
2599 #endif /*_XtIntrinsic_h*/
2600 /* DON'T ADD STUFF AFTER THIS #endif */
2601