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