1/*
2 * Motif
3 *
4 * Copyright (c) 1987-2012, The Open Group. All rights reserved.
5 *
6 * These libraries and programs are free software; you can
7 * redistribute them and/or modify them under the terms of the GNU
8 * Lesser General Public License as published by the Free Software
9 * Foundation; either version 2 of the License, or (at your option)
10 * any later version.
11 *
12 * These libraries and programs are distributed in the hope that
13 * they will be useful, but WITHOUT ANY WARRANTY; without even the
14 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU Lesser General Public License for more
16 * details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with these librararies and programs; if not, write
20 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21 * Floor, Boston, MA 02110-1301 USA
22*/
23/* $TOG: Xm.h /main/38 1999/10/18 14:50:22 samborn $ */
24
25#ifndef _Xm_h
26#define _Xm_h
27
28#ifndef OM22_COMPATIBILITY
29#undef OM22_COMPATIBILITY
30#endif
31
32#ifndef JPEG_SUPPORTED
33#undef JPEG_SUPPORTED
34#endif
35
36#ifndef PNG_SUPPORTED
37#undef PNG_SUPPORTED
38#endif
39
40#ifndef UTF8_SUPPORTED
41#undef UTF8_SUPPORTED
42#endif
43
44#ifndef PRINTING_SUPPORTED
45#undef PRINTING_SUPPORTED
46#endif
47
48#ifndef USE_XFT
49#undef USE_XFT
50#endif
51
52#if    !defined(__STDC__) \
53    && !defined(__cplusplus) && !defined(c_plusplus) \
54    && !defined(FUNCPROTO) && !defined(XTFUNCPROTO) && !defined(XMFUNCPROTO)
55#define _NO_PROTO
56#endif /* __STDC__ */
57
58#include <X11/Intrinsic.h>
59#include <X11/Shell.h>
60#include <X11/Xatom.h>
61#ifdef PRINTING_SUPPORTED
62#include <X11/extensions/Print.h>
63#endif
64#include <Xm/XmStrDefs.h>
65#include <Xm/XmStrDefs22.h>
66#include <Xm/XmStrDefs23.h>
67#include <Xm/VirtKeys.h>
68#include <Xm/Transfer.h>
69#include <Xm/Primitive.h>
70#include <Xm/Manager.h>
71#include <Xm/Gadget.h>
72
73#ifdef __cplusplus
74extern "C" {
75#endif
76
77#define XmVERSION	2
78#define XmREVISION	3
79#define XmUPDATE_LEVEL	8
80#define XmVersion	(XmVERSION * 1000 + XmREVISION)
81#define XmVERSION_STRING "@(#)Motif Version 2.3.8"
82
83externalref int xmUseVersion;
84
85
86/* define used to denote an unspecified pixmap  */
87
88#define	XmUNSPECIFIED_PIXMAP		2
89
90/* define for an unspecified position */
91
92#define XmUNSPECIFIED_POSITION          -1
93
94/*******************
95 *
96 * Defines for resources to be defaulted by vendors.
97 * String are initialized in Xmos.c
98 *
99 ****************/
100
101#define	XmSTRING_OS_CHARSET		XmSTRING_ISO8859_1
102#ifndef	XmFALLBACK_CHARSET
103#define	XmFALLBACK_CHARSET		XmSTRING_ISO8859_1
104#endif
105
106#define XmDEFAULT_FONT                  _XmSDEFAULT_FONT
107#define XmDEFAULT_BACKGROUND            _XmSDEFAULT_BACKGROUND
108#define XmDEFAULT_DARK_THRESHOLD        20
109#define XmDEFAULT_LIGHT_THRESHOLD       93
110#define XmDEFAULT_FOREGROUND_THRESHOLD  70
111
112externalref  char    _XmSDEFAULT_FONT[];            /* In Xmos.c */
113externalref  char    _XmSDEFAULT_BACKGROUND[];      /* In Xmos.c */
114
115typedef unsigned char	XmDirection;
116
117#define XmDIRECTION_IGNORED            0x30
118
119#define XmRIGHT_TO_LEFT_MASK           0x01 /* 0x01 for bc */
120#define XmLEFT_TO_RIGHT_MASK           0x02
121#define XmHORIZONTAL_MASK              0x03
122#define XmTOP_TO_BOTTOM_MASK           0x04
123#define XmBOTTOM_TO_TOP_MASK           0x08
124#define XmVERTICAL_MASK                0x0c
125#define XmPRECEDENCE_HORIZ_MASK        0x40
126#define XmPRECEDENCE_VERT_MASK         0x80
127#define XmPRECEDENCE_MASK              0xc0
128
129enum {
130  XmRIGHT_TO_LEFT_TOP_TO_BOTTOM =
131      XmRIGHT_TO_LEFT_MASK | XmTOP_TO_BOTTOM_MASK | XmPRECEDENCE_HORIZ_MASK,
132  XmLEFT_TO_RIGHT_TOP_TO_BOTTOM =
133      XmLEFT_TO_RIGHT_MASK | XmTOP_TO_BOTTOM_MASK | XmPRECEDENCE_HORIZ_MASK,
134  XmRIGHT_TO_LEFT_BOTTOM_TO_TOP =
135      XmRIGHT_TO_LEFT_MASK | XmBOTTOM_TO_TOP_MASK | XmPRECEDENCE_HORIZ_MASK,
136  XmLEFT_TO_RIGHT_BOTTOM_TO_TOP =
137      XmLEFT_TO_RIGHT_MASK | XmBOTTOM_TO_TOP_MASK | XmPRECEDENCE_HORIZ_MASK,
138  XmTOP_TO_BOTTOM_RIGHT_TO_LEFT =
139      XmRIGHT_TO_LEFT_MASK | XmTOP_TO_BOTTOM_MASK | XmPRECEDENCE_VERT_MASK,
140  XmTOP_TO_BOTTOM_LEFT_TO_RIGHT =
141      XmLEFT_TO_RIGHT_MASK | XmTOP_TO_BOTTOM_MASK | XmPRECEDENCE_VERT_MASK,
142  XmBOTTOM_TO_TOP_RIGHT_TO_LEFT =
143      XmRIGHT_TO_LEFT_MASK | XmBOTTOM_TO_TOP_MASK | XmPRECEDENCE_VERT_MASK,
144  XmBOTTOM_TO_TOP_LEFT_TO_RIGHT =
145      XmLEFT_TO_RIGHT_MASK | XmBOTTOM_TO_TOP_MASK | XmPRECEDENCE_VERT_MASK,
146  XmTOP_TO_BOTTOM =
147      XmTOP_TO_BOTTOM_MASK | XmHORIZONTAL_MASK | XmPRECEDENCE_MASK,
148  XmBOTTOM_TO_TOP =
149      XmBOTTOM_TO_TOP_MASK | XmHORIZONTAL_MASK | XmPRECEDENCE_MASK,
150  XmRIGHT_TO_LEFT =
151      XmRIGHT_TO_LEFT_MASK | XmVERTICAL_MASK | XmPRECEDENCE_MASK,
152  XmLEFT_TO_RIGHT =
153      XmLEFT_TO_RIGHT_MASK | XmVERTICAL_MASK | XmPRECEDENCE_MASK,
154  XmDEFAULT_DIRECTION = 0xff
155  };
156
157
158extern Boolean XmDirectionMatch(XmDirection d1,
159				XmDirection d2);
160extern Boolean XmDirectionMatchPartial(XmDirection d1,
161				       XmDirection d2,
162				       XmDirection dmask);
163
164/****************
165 *
166 * XmString structure defines. These must be here (at the start of the file)
167 * becaused they are used later on.
168 *
169 ****************/
170typedef enum{ XmFONT_IS_FONT, XmFONT_IS_FONTSET, XmFONT_IS_XFT
171	      } XmFontType;
172
173enum { XmSTRING_DIRECTION_L_TO_R,
174       XmSTRING_DIRECTION_R_TO_L,
175       XmSTRING_DIRECTION_UNSET = 3,
176       XmSTRING_DIRECTION_DEFAULT = XmDEFAULT_DIRECTION
177       };
178
179typedef unsigned char 	XmStringDirection;
180typedef union __XmStringRec	*XmString;		/* opaque to outside */
181typedef XmString *	XmStringTable;		/* opaque to outside */
182typedef char *		XmStringCharSet;	/* Null term string */
183typedef char *		XmStringTag;		/* Null term string */
184typedef unsigned char	XmStringComponentType;	/* component tags */
185
186typedef struct __XmRenditionRec	     **XmFontListEntry; /* opaque to outside */
187typedef struct __XmRenderTableRec    **XmFontList;      /* opaque to outside */
188typedef struct _XmFontListContextRec *XmFontContext;   /* opaque to outside */
189
190typedef struct __XmStringContextRec *_XmStringContext; /* opaque to outside */
191typedef union __XmStringRec        *_XmString;        /* opaque to outside */
192typedef struct __XmStringContextRec *XmStringContext;  /* opaque to outside */
193
194enum{	XmSTRING_COMPONENT_UNKNOWN,	  XmSTRING_COMPONENT_CHARSET,
195	XmSTRING_COMPONENT_TEXT,	  XmSTRING_COMPONENT_DIRECTION,
196        XmSTRING_COMPONENT_SEPARATOR,     XmSTRING_COMPONENT_LOCALE_TEXT,
197	XmSTRING_COMPONENT_LOCALE,        XmSTRING_COMPONENT_WIDECHAR_TEXT,
198	XmSTRING_COMPONENT_LAYOUT_PUSH,   XmSTRING_COMPONENT_LAYOUT_POP,
199	XmSTRING_COMPONENT_RENDITION_BEGIN, XmSTRING_COMPONENT_RENDITION_END,
200	XmSTRING_COMPONENT_TAB
201	/* 13-125 reserved */
202	} ;
203
204#define XmSTRING_COMPONENT_FONTLIST_ELEMENT_TAG	XmSTRING_COMPONENT_CHARSET
205
206#define XmSTRING_COMPONENT_TAG		XmSTRING_COMPONENT_CHARSET
207
208#define XmSTRING_COMPONENT_END		((XmStringComponentType) 126)
209
210#define XmSTRING_COMPONENT_USER_BEGIN	((XmStringComponentType) 128)
211			/* 128-255 are user tags */
212#define XmSTRING_COMPONENT_USER_END	((XmStringComponentType) 255)
213
214typedef enum {
215    XmCHARSET_TEXT,			XmMULTIBYTE_TEXT,
216    XmWIDECHAR_TEXT,                    XmNO_TEXT
217    } XmTextType;
218
219typedef enum {
220    XmOUTPUT_ALL,			XmOUTPUT_BETWEEN,
221    XmOUTPUT_BEGINNING,			XmOUTPUT_END,
222    XmOUTPUT_BOTH
223    } XmParseModel;
224
225typedef unsigned char XmIncludeStatus;
226enum {
227  XmINSERT,	XmTERMINATE,	XmINVOKE
228  };
229
230/* We are making an attempt (perhaps unnecessaryily) to keep our style
231   constants the same as the equivalent Xlib style constants. The first
232   Motif specific style constant starts at 32 so that the consortium can
233   add constants to their list without overlapping with ours. */
234typedef enum {
235    XmSTYLE_STRING = XStringStyle,
236    XmSTYLE_COMPOUND_TEXT = XCompoundTextStyle,
237    XmSTYLE_TEXT = XTextStyle,
238    XmSTYLE_STANDARD_ICC_TEXT = XStdICCTextStyle,
239    XmSTYLE_LOCALE = 32,
240    XmSTYLE_COMPOUND_STRING
241    } XmICCEncodingStyle;
242
243/****************
244 *
245 * XmParseTable structure defines. These must be here (at the start of
246 * the file) because they are used later on.
247 *
248 ****************/
249
250typedef struct __XmParseMappingRec *XmParseMapping;	/* opaque */
251typedef XmParseMapping             *XmParseTable;
252
253/* A special pattern used to match a change of character direction. */
254#define XmDIRECTION_CHANGE	NULL
255
256
257typedef XmIncludeStatus (*XmParseProc) (XtPointer     *in_out,
258					XtPointer      text_end,
259					XmTextType     type,
260					XmStringTag    locale_tag,
261					XmParseMapping entry,
262					int            pattern_length,
263					XmString      *str_include,
264					XtPointer      call_data);
265
266
267/****************
268 *
269 * XmTabList structure defines. These must be here (at the start of the file)
270 * becaused they are used later on.
271 *
272 ****************/
273typedef enum {
274  XmABSOLUTE,		XmRELATIVE
275  } XmOffsetModel;
276
277typedef struct __XmTabRec	*XmTab;		  /* opaque */
278typedef struct __XmTabListRec	*XmTabList;	  /* opaque */
279
280
281/****************
282 *
283 * XmRenderTable structure defines. These must be here (at the start of the file)
284 * becaused they are used later on.
285 *
286 ****************/
287/* XmRendition declarations */
288typedef struct __XmRenditionRec		**XmRendition;   /* opaque */
289typedef struct __XmRenderTableRec	**XmRenderTable; /* opaque */
290
291typedef enum {
292  XmSKIP,		XmMERGE_REPLACE,
293  XmMERGE_OLD,		XmMERGE_NEW,
294  XmDUPLICATE	/* For XmFontListAdd and XmFontListAppendEntry. */
295  } XmMergeMode;
296
297#define XmAS_IS			255
298#define XmFORCE_COLOR		1
299
300#define XmUNSPECIFIED_PIXEL	 ((Pixel) (~0))
301#define XmDEFAULT_SELECT_COLOR   XmUNSPECIFIED_PIXEL
302#define XmREVERSED_GROUND_COLORS (XmDEFAULT_SELECT_COLOR - 1)
303#define XmHIGHLIGHT_COLOR        (XmREVERSED_GROUND_COLORS - 1)
304
305enum { XmUNSPECIFIED_LOAD_MODEL, XmLOAD_DEFERRED, XmLOAD_IMMEDIATE };
306
307
308
309/************************************************************************
310 *  Primitive Resources and define values
311 ************************************************************************/
312
313/* size policy values  */
314
315enum{	XmCHANGE_ALL,			XmCHANGE_NONE,
316	XmCHANGE_WIDTH,			XmCHANGE_HEIGHT
317	} ;
318
319/*  unit type values  */
320
321enum{	XmPIXELS,			Xm100TH_MILLIMETERS,
322	Xm1000TH_INCHES,		Xm100TH_POINTS,
323	Xm100TH_FONT_UNITS,		XmINCHES,
324        XmCENTIMETERS,                  XmMILLIMETERS,
325        XmPOINTS,                       XmFONT_UNITS
326	} ;
327
328/* DeleteResponse values */
329
330enum{	XmDESTROY,			XmUNMAP,
331	XmDO_NOTHING
332	} ;
333enum{	XmEXPLICIT,			XmPOINTER
334	} ;
335/************************************************************************
336 *  Navigation defines
337 ************************************************************************/
338
339enum{	XmNONE,				XmTAB_GROUP,
340	XmSTICKY_TAB_GROUP,		XmEXCLUSIVE_TAB_GROUP
341	} ;
342
343#define	XmDYNAMIC_DEFAULT_TAB_GROUP	(255)
344
345/************************************************************************
346 * Audible warning
347 ************************************************************************/
348
349enum{	/* XmNONE */			XmBELL = 1
350	} ;
351
352/************************************************************************
353 * Input Manager defines
354 ************************************************************************/
355
356enum {
357        XmPER_SHELL,			XmPER_WIDGET,
358        XmINHERIT_POLICY = 255
359	} ;
360
361typedef unsigned char XmInputPolicy;
362
363/************************************************************************
364 *  Menu defines
365 ************************************************************************/
366
367enum{	XmNO_ORIENTATION,		XmVERTICAL,
368	XmHORIZONTAL
369	} ;
370enum{	XmWORK_AREA,			XmMENU_BAR,
371	XmMENU_PULLDOWN,		XmMENU_POPUP,
372	XmMENU_OPTION
373	} ;
374enum{	XmNO_PACKING,			XmPACK_TIGHT,
375	XmPACK_COLUMN,			XmPACK_NONE
376	} ;
377enum{/* XmALIGNMENT_BASELINE_TOP,	XmALIGNMENT_CENTER,
378	XmALIGNMENT_BASELINE_BOTTOM, */	XmALIGNMENT_CONTENTS_TOP = 3,
379	XmALIGNMENT_CONTENTS_BOTTOM
380	} ;
381enum{	XmTEAR_OFF_ENABLED,		XmTEAR_OFF_DISABLED
382	} ;
383enum{	XmUNPOST,		 	XmUNPOST_AND_REPLAY
384	} ;
385enum{   XmLAST_POSITION = -1,           XmFIRST_POSITION
386	} ;
387enum{	XmPOPUP_DISABLED = 0,	XmPOPUP_KEYBOARD = 1,
388	XmPOPUP_AUTOMATIC,	XmPOPUP_AUTOMATIC_RECURSIVE };
389
390/************************************************************************
391 *  Color Selector defines
392 ************************************************************************/
393
394typedef enum { XmListMode = 0, XmScaleMode = 1 } XmColorMode;
395
396/************************************************************************
397 *  Column defines
398 ************************************************************************/
399
400enum { XmFILL_UNSPECIFIED, XmFILL_FLUSH, XmFILL_RAGGED };
401
402enum { XmDISTRIBUTE_TIGHT, XmDISTRIBUTE_SPREAD };
403
404/************************************************************************
405 *  ComboBox defines
406 ************************************************************************/
407
408enum{	XmCOMBO_BOX=0,		XmDROP_DOWN_COMBO_BOX,
409	XmDROP_DOWN_LIST
410	} ;
411
412enum{	/* XmNONE */ XmQUICK_NAVIGATE = 1, XmINVALID_MATCH_BEHAVIOR
413	} ;
414
415enum{   XmZERO_BASED,		XmONE_BASED
416        } ;
417
418#define XmINVALID_POSITION -1
419
420/************************************************************************
421 *  Icon & Button Box defines
422 ************************************************************************/
423typedef enum { XmIconTop,
424               XmIconLeft,
425               XmIconRight,
426               XmIconBottom,
427               XmIconOnly,
428               XmIconNone } XmIconPlacement;
429
430typedef enum { XmFillNone,
431               XmFillMajor,
432               XmFillMinor,
433               XmFillAll } XmFillOption;
434
435/************************************************************************
436 * Hierarchy/Tree/Outline defines
437 ************************************************************************/
438typedef enum {XmAlwaysOpen,
439              XmOpen,
440              XmClosed, XmHidden,
441	      XmNotInHierarchy} XmHierarchyNodeState;
442
443typedef enum { XmTreeLadder, XmTreeDirect } XmTreeConnectStyle;
444
445typedef enum { XmTreeCompressNone=0, XmTreeCompressLeaves=1,
446               XmTreeCompressAll=2 } XmTreeCompressStyle;
447
448/************************************************************************
449 *  Label/Frame defines
450 ************************************************************************/
451
452enum{	XmALIGNMENT_BEGINNING,		XmALIGNMENT_CENTER,
453	XmALIGNMENT_END, XmALIGNMENT_UNSPECIFIED
454	} ;
455enum{   XmALIGNMENT_BASELINE_TOP,    /* XmALIGNMENT_CENTER, */
456	XmALIGNMENT_BASELINE_BOTTOM = 2, XmALIGNMENT_WIDGET_TOP,
457	XmALIGNMENT_WIDGET_BOTTOM
458   	} ;
459/* new enum introduced in 2.0 to clear up the confusion in
460   widget top/bottom attachment */
461#define XmALIGNMENT_CHILD_TOP XmALIGNMENT_WIDGET_BOTTOM
462#define XmALIGNMENT_CHILD_BOTTOM XmALIGNMENT_WIDGET_TOP
463
464/************************************************************************
465 *  Frame defines
466 ************************************************************************/
467
468enum{	XmFRAME_GENERIC_CHILD,          XmFRAME_WORKAREA_CHILD,
469        XmFRAME_TITLE_CHILD
470	} ;
471/************************************************************************
472 *  ToggleButton  defines
473 ************************************************************************/
474
475enum{	XmN_OF_MANY = 1,		XmONE_OF_MANY,
476	XmONE_OF_MANY_ROUND,		XmONE_OF_MANY_DIAMOND
477	} ;
478/************************************************************************
479 *  Form defines
480 ************************************************************************/
481
482enum{	XmATTACH_NONE,			XmATTACH_FORM,
483	XmATTACH_OPPOSITE_FORM,		XmATTACH_WIDGET,
484	XmATTACH_OPPOSITE_WIDGET,	XmATTACH_POSITION,
485	XmATTACH_SELF
486	} ;
487enum{	XmRESIZE_NONE,			XmRESIZE_GROW,
488	XmRESIZE_ANY
489	} ;
490
491/************************************************************************
492 *  TabBox/TabStack defines
493 ************************************************************************/
494
495typedef enum {XmTABS_SQUARED, XmTABS_ROUNDED, XmTABS_BEVELED} XmTabStyle;
496typedef enum {XmTABS_BASIC, XmTABS_STACKED, XmTABS_STACKED_STATIC,
497              XmTABS_SCROLLED, XmTABS_OVERLAYED} XmTabMode;
498
499typedef enum {XmTAB_ORIENTATION_DYNAMIC, XmTABS_RIGHT_TO_LEFT,
500              XmTABS_LEFT_TO_RIGHT, XmTABS_TOP_TO_BOTTOM,
501              XmTABS_BOTTOM_TO_TOP} XmTabOrientation;
502
503typedef enum {XmTAB_EDGE_TOP_LEFT, XmTAB_EDGE_BOTTOM_RIGHT} XmTabEdge;
504
505typedef enum {XmTAB_ARROWS_ON_RIGHT, XmTAB_ARROWS_ON_LEFT,
506              XmTAB_ARROWS_SPLIT} XmTabArrowPlacement;
507
508enum {XmCR_TAB_SELECTED, XmCR_TAB_UNSELECTED};
509
510typedef enum {XmTABS_ON_TOP, XmTABS_ON_BOTTOM, XmTABS_ON_RIGHT,
511              XmTABS_ON_LEFT} XmTabSide;
512
513typedef enum {XmPIXMAP_TOP, XmPIXMAP_BOTTOM, XmPIXMAP_RIGHT, XmPIXMAP_LEFT,
514              XmPIXMAP_NONE, XmPIXMAP_ONLY} XmPixmapPlacement;
515
516typedef enum {XmTAB_VALUE_COPY, XmTAB_VALUE_SHARE} XmTabValueMode;
517
518typedef enum {XmTAB_CMP_VISUAL, XmTAB_CMP_SIZE, XmTAB_CMP_EQUAL} XmTabResult;
519
520typedef struct _XmTabStackCallbackStruct {
521    int 	reason;
522    XEvent      *event;
523    Widget      selected_child;
524} XmTabStackCallbackStruct;
525
526typedef struct _XmTabBoxCallbackStruct {
527    int       reason;
528    XEvent    *event;
529    int       tab_index;
530    int       old_index;
531} XmTabBoxCallbackStruct;
532
533/****************************************************************************
534 *  Callback reasons
535 ****************************************************************************/
536
537enum{	XmCR_NONE,			XmCR_HELP,
538	XmCR_VALUE_CHANGED,		XmCR_INCREMENT,
539	XmCR_DECREMENT,			XmCR_PAGE_INCREMENT,
540	XmCR_PAGE_DECREMENT,		XmCR_TO_TOP,
541	XmCR_TO_BOTTOM,			XmCR_DRAG,
542	XmCR_ACTIVATE,			XmCR_ARM,
543	XmCR_DISARM,			XmCR_MAP = 16,
544	XmCR_UNMAP,			XmCR_FOCUS,
545	XmCR_LOSING_FOCUS,		XmCR_MODIFYING_TEXT_VALUE,
546	XmCR_MOVING_INSERT_CURSOR,	XmCR_EXECUTE,
547	XmCR_SINGLE_SELECT,		XmCR_MULTIPLE_SELECT,
548	XmCR_EXTENDED_SELECT,		XmCR_BROWSE_SELECT,
549	XmCR_DEFAULT_ACTION,		XmCR_CLIPBOARD_DATA_REQUEST,
550	XmCR_CLIPBOARD_DATA_DELETE,	XmCR_CASCADING,
551	XmCR_OK,			XmCR_CANCEL,
552	XmCR_APPLY = 34,		XmCR_NO_MATCH,
553	XmCR_COMMAND_ENTERED,		XmCR_COMMAND_CHANGED,
554	XmCR_EXPOSE,			XmCR_RESIZE,
555	XmCR_INPUT,			XmCR_GAIN_PRIMARY,
556	XmCR_LOSE_PRIMARY,		XmCR_CREATE,
557	XmCR_TEAR_OFF_ACTIVATE,		XmCR_TEAR_OFF_DEACTIVATE,
558	XmCR_OBSCURED_TRAVERSAL,	XmCR_FOCUS_MOVED,
559	XmCR_REPOST = 54,		XmCR_COLLAPSED,
560	XmCR_EXPANDED,			XmCR_SELECT,
561	XmCR_DRAG_START,		XmCR_NO_FONT,
562	XmCR_NO_RENDITION,		XmCR_POST,
563	XmCR_SPIN_NEXT,			XmCR_SPIN_PRIOR,
564	XmCR_SPIN_FIRST,		XmCR_SPIN_LAST,
565	XmCR_PAGE_SCROLLER_INCREMENT,   XmCR_PAGE_SCROLLER_DECREMENT,
566	XmCR_MAJOR_TAB,                 XmCR_MINOR_TAB,
567	XmCR_START_JOB,			XmCR_END_JOB,
568	XmCR_PAGE_SETUP,		XmCR_PDM_NONE,
569	XmCR_PDM_UP,			XmCR_PDM_START_ERROR,
570	XmCR_PDM_START_VXAUTH,		XmCR_PDM_START_PXAUTH,
571	XmCR_PDM_OK,			XmCR_PDM_CANCEL,
572	XmCR_PDM_EXIT_ERROR,
573        XmCR_UPDATE_SHELL,              XmCR_UPDATE_TEXT,
574        XmCR_VERIFY_TEXT,               XmCR_VERIFY_TEXT_FAILED,
575        XmCR_ENTER_CHILD,               XmCR_LEAVE_CHILD,
576	XmCR_PROTOCOLS = 6666 /* required for BC. See CR 9158 */
577	} ;
578
579/************************************************************************
580 *  new ScrollBar showArrows  define
581 ************************************************************************/
582
583enum{	/* XmNONE */		XmEACH_SIDE = 1,
584	XmMAX_SIDE,             XmMIN_SIDE
585	} ;
586
587
588/************************************************************************
589 *  Sliding mode
590 ************************************************************************/
591
592enum{	XmSLIDER,		XmTHERMOMETER} ;
593
594
595/************************************************************************
596 *  Slider Visual
597 ************************************************************************/
598
599enum{	XmBACKGROUND_COLOR,     XmFOREGROUND_COLOR,
600        XmTROUGH_COLOR,         XmSHADOWED_BACKGROUND} ;
601
602
603/************************************************************************
604 *  Slider Mark
605 ************************************************************************/
606
607enum{	/* XmNONE, */           XmETCHED_LINE = 1,
608        XmTHUMB_MARK,     XmROUND_MARK } ;
609
610
611/************************************************************************
612 *  new Scale showValue
613 ************************************************************************/
614
615enum{	/* XmNONE */		XmNEAR_SLIDER = 1,
616	XmNEAR_BORDER
617	} ;
618
619
620/************************************************************************
621 *  new ScrolledWindow/MainWindow chidType
622 ************************************************************************/
623
624/* XmWORK_AREA, XmMENU_BAR and XmSEPARATOR have to match the existing ones */
625enum{	/* XmWORK_AREA = 0, XmMENU_BAR = 1, */
626        XmHOR_SCROLLBAR = 2,
627	XmVERT_SCROLLBAR,
628	XmCOMMAND_WINDOW,
629        /* XmSEPARATOR = 5 */
630        XmMESSAGE_WINDOW = 6,
631        XmSCROLL_HOR, XmSCROLL_VERT, XmNO_SCROLL,
632	XmCLIP_WINDOW, XmGENERIC_CHILD
633	} ;
634
635/************************************************************************
636 *  new ScrolledWindow auto drag enum
637 ************************************************************************/
638
639enum{	XmAUTO_DRAG_ENABLED,		XmAUTO_DRAG_DISABLED
640	} ;
641
642/************************************************************************
643 *  new Display enable warp enum
644 ************************************************************************/
645
646enum{	XmENABLE_WARP_ON,		XmENABLE_WARP_OFF
647	} ;
648
649/************************************************************************
650 *  new Display enable btn1 transfer enum
651 ************************************************************************/
652
653enum{   XmOFF,				XmBUTTON2_ADJUST,
654	XmBUTTON2_TRANSFER };
655
656/************************************************************************
657 * auto_selection_type
658 ************************************************************************/
659
660enum{   XmAUTO_UNSET,                   XmAUTO_BEGIN,
661        XmAUTO_MOTION,                  XmAUTO_CANCEL,
662        XmAUTO_NO_CHANGE,               XmAUTO_CHANGE
663        };
664
665/************************************************************************
666 *  Callback structures
667 ************************************************************************/
668
669typedef struct
670{
671    int     reason;
672    XEvent  *event;
673} XmAnyCallbackStruct;
674
675typedef struct
676{
677    int     reason;
678    XEvent  *event;
679    int	    click_count;
680} XmArrowButtonCallbackStruct;
681
682typedef struct _XmDragStartCallbackStruct {
683    int                 reason;
684    XEvent              *event;
685    Widget              widget;
686    Boolean             doit;
687} XmDragStartCallbackStruct, *XmDragStartCallback;
688
689typedef struct
690{
691    int     reason;
692    XEvent  *event;
693    XmString item_or_text;
694    int     item_position;
695} XmComboBoxCallbackStruct;
696
697typedef struct
698{
699    int     reason;
700    XEvent  *event;
701    Window  window;
702} XmDrawingAreaCallbackStruct;
703
704typedef struct
705{
706    int     reason;
707    XEvent  *event;
708    Window  window;
709    int	    click_count;
710} XmDrawnButtonCallbackStruct;
711
712typedef struct
713{
714    int     reason;
715    XEvent  *event;
716    int	    click_count;
717} XmPushButtonCallbackStruct;
718
719typedef struct
720{
721    int     reason;
722    XEvent  *event;
723    Widget  widget;
724    char    *data;
725    char    *callbackstruct;
726} XmRowColumnCallbackStruct;
727
728typedef struct
729{
730   int reason;
731   XEvent * event;
732   int value;
733   int pixel;
734} XmScrollBarCallbackStruct;
735
736typedef struct
737{
738   int reason;
739   XEvent * event;
740   int set;
741} XmToggleButtonCallbackStruct;
742
743typedef struct
744{
745   int 	     reason;
746   XEvent    *event;
747   XmString  item;
748   int       item_length;
749   int       item_position;
750   XmString  *selected_items;
751   int       selected_item_count;
752   int       *selected_item_positions;
753   char      selection_type;
754   char	     auto_selection_type;
755} XmListCallbackStruct;
756
757typedef struct
758{
759    int reason;
760    XEvent	*event;
761    XmString	value;
762    int		length;
763} XmSelectionBoxCallbackStruct;
764
765typedef struct
766{
767    int reason;
768    XEvent	*event;
769    XmString	value;
770    int		length;
771} XmCommandCallbackStruct;
772
773typedef struct
774{
775    int 	reason;
776    XEvent	*event;
777    XmString	value;
778    int		length;
779    XmString	mask;
780    int		mask_length;
781    XmString	dir ;
782    int		dir_length ;
783    XmString    pattern ;
784    int		pattern_length ;
785} XmFileSelectionBoxCallbackStruct;
786
787
788typedef struct
789{
790   int reason;
791   XEvent * event;
792   int value;
793} XmScaleCallbackStruct;
794
795typedef struct
796{
797  int      reason;
798  XEvent   *event;
799  Widget   menuToPost;
800  Boolean  postIt;
801  Widget   target;
802} XmPopupHandlerCallbackStruct;
803
804typedef struct
805{
806  int         reason;
807  XEvent      *event;
808  Widget      item;
809  unsigned char       new_outline_state;
810} XmContainerOutlineCallbackStruct;
811
812typedef struct
813{
814  int             reason;
815  XEvent          *event;
816  WidgetList      selected_items;
817  int             selected_item_count;
818  unsigned char   auto_selection_type;
819} XmContainerSelectCallbackStruct;
820
821typedef struct
822{
823  int         reason;
824  XEvent      *event;
825  int         page_number;
826  Widget      page_widget;
827  int         prev_page_number;
828  Widget      prev_page_widget;
829} XmNotebookCallbackStruct;
830
831typedef struct
832{
833    int     		reason;
834    XEvent  		*event;
835    XmRendition		rendition;
836    char		*font_name;
837    XmRenderTable	render_table;
838    XmStringTag		tag;
839} XmDisplayCallbackStruct;
840
841#ifdef PRINTING_SUPPORTED
842typedef struct
843{
844    int		reason;	   /* XmCR_START_JOB, XmCR_END_JOB, XmCR_PAGE_SETUP */
845    XEvent	*event;
846    XPContext	context;
847    Boolean	last_page; /* in_out */
848    XtPointer	detail;
849} XmPrintShellCallbackStruct;
850#endif /* PRINTING_SUPPORTED */
851
852/************************************************************************
853 *  PushButton defines
854 ************************************************************************/
855
856enum{	XmMULTICLICK_DISCARD,		XmMULTICLICK_KEEP
857	} ;
858/************************************************************************
859 *  DrawnButton defines
860 ************************************************************************/
861
862enum{	XmSHADOW_IN = 7,		XmSHADOW_OUT
863	} ;
864/************************************************************************
865 *  Arrow defines
866 ************************************************************************/
867
868enum{	XmARROW_UP,			XmARROW_DOWN,
869	XmARROW_LEFT,			XmARROW_RIGHT
870	} ;
871/************************************************************************
872 *  Separator defines
873 *  Note: XmINVALID_SEPARATOR_TYPE marks the last+1 separator type
874 ************************************************************************/
875
876enum{	XmNO_LINE,			XmSINGLE_LINE,
877	XmDOUBLE_LINE,			XmSINGLE_DASHED_LINE,
878	XmDOUBLE_DASHED_LINE,		XmSHADOW_ETCHED_IN,
879	XmSHADOW_ETCHED_OUT,		XmSHADOW_ETCHED_IN_DASH,
880	XmSHADOW_ETCHED_OUT_DASH,	XmINVALID_SEPARATOR_TYPE
881	} ;
882
883enum{	XmPIXMAP = 1,			XmSTRING,
884	XmPIXMAP_AND_STRING
885	} ;
886
887/************************************************************************
888 *  Drag and Drop defines
889 ************************************************************************/
890
891enum{	XmWINDOW,		     /* XmPIXMAP, */
892	XmCURSOR = 2,		     XmDRAG_WINDOW = 3
893	} ;
894
895/************************************************************************
896 *  ScrollBar defines
897 ************************************************************************/
898
899enum{	XmMAX_ON_TOP,			XmMAX_ON_BOTTOM,
900	XmMAX_ON_LEFT,			XmMAX_ON_RIGHT
901	} ;
902/************************************************************************
903 *									*
904 * List Widget defines							*
905 *									*
906 ************************************************************************/
907
908enum{	XmSINGLE_SELECT,		XmMULTIPLE_SELECT,
909	XmEXTENDED_SELECT,		XmBROWSE_SELECT
910	} ;
911enum{	XmSTATIC,			XmDYNAMIC
912	} ;
913enum{ XmNORMAL_MODE,			XmADD_MODE
914        } ;
915/************************************************************************
916 *                                                                      *
917 * Container Widget defines                                             *
918 *                                                                      *
919 ************************************************************************/
920
921        /* XmRAutomaticSelection */
922enum {  XmNO_AUTO_SELECT,
923        XmAUTO_SELECT
924        };
925
926        /* XmRLineStyle */
927enum {  /* XmNO_LINE */
928        XmSINGLE = 1
929        };
930
931        /* XmREntryViewType */
932enum {  /* XmLARGE_ICON */
933        /* XmSMALL_ICON */
934        XmANY_ICON = 2
935        };
936
937        /* XmRSpatialIncludeModel */
938enum {  XmAPPEND,
939        XmCLOSEST,
940        XmFIRST_FIT
941        };
942
943        /* XmRLayoutType */
944enum {  XmOUTLINE,
945        XmSPATIAL,
946	XmDETAIL
947        };
948
949	/* XmNoutlineButtonPolicy */
950enum {	XmOUTLINE_BUTTON_PRESENT,
951	XmOUTLINE_BUTTON_ABSENT
952	};
953
954        /* XmRSpatialPlaceStyle */
955enum {  /* XmNONE */
956	XmGRID = 1,
957	XmCELLS
958        };
959
960	/* XmRPrimaryOwnership */
961enum {	XmOWN_NEVER,
962	XmOWN_ALWAYS,
963	XmOWN_MULTIPLE,
964	XmOWN_POSSIBLE_MULTIPLE
965	};
966
967        /* XmRSpatialResizeModel */
968enum {  XmGROW_MINOR,
969	XmGROW_MAJOR,
970        XmGROW_BALANCED
971        };
972
973        /* XmRSelectionTechnique */
974enum {  XmMARQUEE,
975        XmMARQUEE_EXTEND_START,
976        XmMARQUEE_EXTEND_BOTH,
977        XmTOUCH_ONLY,
978        XmTOUCH_OVER
979        };
980
981        /* XmRSpatialSnapModel */
982enum {  /* XmNONE */
983        XmSNAP_TO_GRID = 1,
984        XmCENTER
985        };
986
987        /* XmROutlineState */
988enum {  XmCOLLAPSED,
989        XmEXPANDED
990        };
991
992/************************************************************************
993 *                                                                      *
994 * IconGadget defines                                                   *
995 *                                                                      *
996 ************************************************************************/
997
998        /* XmRViewType */
999enum {  XmLARGE_ICON,
1000        XmSMALL_ICON
1001        };
1002
1003        /* XmRVisualEmphasis */
1004enum {  XmSELECTED,
1005        XmNOT_SELECTED
1006        };
1007
1008/************************************************************************
1009 *                                                                      *
1010 * Notebook Widget defines                                              *
1011 *                                                                      *
1012 ************************************************************************/
1013
1014#define XmUNSPECIFIED_PAGE_NUMBER       (-32768)
1015
1016        /* XmRBindingType */
1017enum {  /* XmNONE */
1018        /* XmPIXMAP */
1019        XmSOLID = 2,
1020        XmSPIRAL,
1021        XmPIXMAP_OVERLAP_ONLY
1022        };
1023
1024        /* XmRNBChildType */
1025enum {  /* XmNONE */
1026        XmPAGE = 1,
1027        XmMAJOR_TAB,
1028        XmMINOR_TAB,
1029        XmSTATUS_AREA,
1030        XmPAGE_SCROLLER
1031        };
1032
1033/************************************************************************
1034 *									*
1035 * Spin button defines.							*
1036 *									*
1037 ************************************************************************/
1038
1039/* XmNarrowOrientation */
1040enum
1041{
1042    XmARROWS_VERTICAL,
1043    XmARROWS_HORIZONTAL
1044};
1045
1046/* XmNarrowLayout */
1047enum
1048{
1049    XmARROWS_END,
1050    XmARROWS_BEGINNING,
1051    XmARROWS_SPLIT,
1052    XmARROWS_FLAT_END,
1053    XmARROWS_FLAT_BEGINNING
1054};
1055
1056/* XmNarrowSensitivity and XmNdefaultArrowSensitivity */
1057/* Please note that these arrows form the proper values
1058   for a bit mask. */
1059enum
1060{
1061    XmARROWS_INSENSITIVE,
1062    XmARROWS_INCREMENT_SENSITIVE,
1063    XmARROWS_DECREMENT_SENSITIVE,
1064    XmARROWS_SENSITIVE,
1065    XmARROWS_DEFAULT_SENSITIVITY
1066};
1067
1068/* XmNpositionType */
1069enum
1070{
1071    XmPOSITION_INDEX,
1072    XmPOSITION_VALUE
1073};
1074
1075/* XmNspinButtonChildType */
1076enum
1077{
1078    /* XmPIXMAP = 1 */
1079    /* XmSTRING */
1080    XmNUMERIC = 3
1081};
1082
1083/* Return values for Xm[Simple]SpinBoxValidatePosition */
1084enum
1085{
1086    XmVALID_VALUE,
1087    XmCURRENT_VALUE,
1088    XmMAXIMUM_VALUE,
1089    XmMINIMUM_VALUE,
1090    XmINCREMENT_VALUE
1091};
1092
1093typedef struct
1094{
1095    int		reason;
1096    XEvent	*event;
1097    Widget      widget;
1098    Boolean     doit;
1099    int		position;
1100    XmString	value;
1101    Boolean	crossed_boundary;
1102} XmSpinBoxCallbackStruct;
1103
1104
1105/************************************************************************
1106 *									*
1107 * Scrolled Window defines.						*
1108 *									*
1109 ************************************************************************/
1110
1111enum{	XmVARIABLE,			XmCONSTANT,
1112	XmRESIZE_IF_POSSIBLE
1113	} ;
1114enum{	XmAUTOMATIC,			XmAPPLICATION_DEFINED
1115	} ;
1116enum{	/* XmSTATIC */			XmAS_NEEDED = 1
1117	} ;
1118
1119#define SW_TOP		1
1120#define SW_BOTTOM	0
1121#define SW_LEFT		2
1122#define SW_RIGHT	0
1123
1124#define XmTOP_LEFT	(SW_TOP | SW_LEFT)
1125#define XmBOTTOM_LEFT	(SW_BOTTOM  | SW_LEFT)
1126#define XmTOP_RIGHT	(SW_TOP | SW_RIGHT)
1127#define XmBOTTOM_RIGHT	(SW_BOTTOM  | SW_RIGHT)
1128
1129/************************************************************************
1130 *									*
1131 * MainWindow Resources                                                 *
1132 *									*
1133 ************************************************************************/
1134
1135enum{	XmCOMMAND_ABOVE_WORKSPACE,	XmCOMMAND_BELOW_WORKSPACE
1136	} ;
1137/************************************************************************
1138 *									*
1139 * Text Widget defines							*
1140 *									*
1141 ************************************************************************/
1142
1143enum{	XmMULTI_LINE_EDIT,		XmSINGLE_LINE_EDIT
1144	} ;
1145
1146typedef enum{
1147	XmTEXT_FORWARD,
1148	XmTEXT_BACKWARD
1149	} XmTextDirection;
1150
1151typedef long XmTextPosition;
1152typedef Atom XmTextFormat;
1153
1154#define XmFMT_8_BIT	((XmTextFormat) XA_STRING)	/* 8-bit text. */
1155#define XmFMT_16_BIT	((XmTextFormat) 2)		/* 16-bit text. */
1156
1157#define FMT8BIT		XmFMT_8_BIT	/* For backwards compatibility only.*/
1158#define FMT16BIT	XmFMT_16_BIT	/* For backwards compatibility only.*/
1159
1160typedef enum{
1161	XmSELECT_POSITION,		XmSELECT_WHITESPACE,
1162	XmSELECT_WORD,			XmSELECT_LINE,
1163	XmSELECT_ALL,			XmSELECT_PARAGRAPH,
1164	XmSELECT_OUT_LINE
1165	} XmTextScanType ;
1166
1167typedef enum{
1168	XmHIGHLIGHT_NORMAL,		XmHIGHLIGHT_SELECTED,
1169	XmHIGHLIGHT_SECONDARY_SELECTED,	XmSEE_DETAIL
1170	} XmHighlightMode ;
1171
1172/* XmTextBlock's are used to pass text around. */
1173
1174typedef struct {
1175    char *ptr;                  /* Pointer to data. */
1176    int length;                 /* Number of bytes of data. */
1177    XmTextFormat format;       /* Representations format */
1178} XmTextBlockRec, *XmTextBlock;
1179
1180typedef struct
1181{
1182    int reason;
1183    XEvent  *event;
1184    Boolean doit;
1185    long currInsert, newInsert;
1186    long startPos, endPos;
1187    XmTextBlock text;
1188} XmTextVerifyCallbackStruct, *XmTextVerifyPtr;
1189
1190/* XmTextBlockWcs's are used in 1.2 modifyVerifyWcs callbacks for Text[Field]
1191 * widgets. */
1192
1193typedef struct {
1194    wchar_t *wcsptr;            /* Pointer to data. */
1195    int length;                 /* Number of characters (not bytes) of data. */
1196} XmTextBlockRecWcs, *XmTextBlockWcs;
1197
1198typedef struct
1199{
1200    int reason;
1201    XEvent  *event;
1202    Boolean doit;
1203    long currInsert, newInsert;
1204    long startPos, endPos;
1205    XmTextBlockWcs text;
1206} XmTextVerifyCallbackStructWcs, *XmTextVerifyPtrWcs;
1207
1208/* functions renamed after 1.0 release due to resource name overlap */
1209#define XmTextGetTopPosition                XmTextGetTopCharacter
1210#define XmTextSetTopPosition                XmTextSetTopCharacter
1211
1212#define XmCOPY_FAILED		0
1213#define XmCOPY_SUCCEEDED	1
1214#define XmCOPY_TRUNCATED	2
1215
1216/************************************************************************
1217 *									*
1218 *  DIALOG defines..  BulletinBoard and things common to its subclasses *
1219 *          CommandBox    MessageBox    Selection    FileSelection      *
1220 *									*
1221 ************************************************************************/
1222
1223/* child type defines for Xm...GetChild() */
1224
1225enum{	XmDIALOG_NONE,			XmDIALOG_APPLY_BUTTON,
1226	XmDIALOG_CANCEL_BUTTON,		XmDIALOG_DEFAULT_BUTTON,
1227	XmDIALOG_OK_BUTTON,		XmDIALOG_FILTER_LABEL,
1228	XmDIALOG_FILTER_TEXT,		XmDIALOG_HELP_BUTTON,
1229	XmDIALOG_LIST,			XmDIALOG_LIST_LABEL,
1230	XmDIALOG_MESSAGE_LABEL,		XmDIALOG_SELECTION_LABEL,
1231	XmDIALOG_SYMBOL_LABEL,		XmDIALOG_TEXT,
1232	XmDIALOG_SEPARATOR,		XmDIALOG_DIR_LIST,
1233	XmDIALOG_DIR_LIST_LABEL
1234	} ;
1235
1236#define XmDIALOG_HISTORY_LIST     	XmDIALOG_LIST
1237#define XmDIALOG_PROMPT_LABEL     	XmDIALOG_SELECTION_LABEL
1238#define XmDIALOG_VALUE_TEXT       	XmDIALOG_TEXT
1239#define XmDIALOG_COMMAND_TEXT     	XmDIALOG_TEXT
1240#define XmDIALOG_FILE_LIST        	XmDIALOG_LIST
1241#define XmDIALOG_FILE_LIST_LABEL  	XmDIALOG_LIST_LABEL
1242
1243/*  dialog style defines  */
1244
1245enum{	XmDIALOG_MODELESS,		XmDIALOG_PRIMARY_APPLICATION_MODAL,
1246	XmDIALOG_FULL_APPLICATION_MODAL,XmDIALOG_SYSTEM_MODAL
1247	} ;
1248
1249/* The following is for compatibility only. Its use is deprecated.
1250 */
1251#define XmDIALOG_APPLICATION_MODAL	XmDIALOG_PRIMARY_APPLICATION_MODAL
1252
1253/************************************************************************
1254 * XmSelectionBox, XmFileSelectionBox and XmCommand - misc. stuff       *
1255 ***********************************************************************/
1256
1257/* Defines for Selection child placement
1258*/
1259enum{	XmPLACE_TOP,			XmPLACE_ABOVE_SELECTION,
1260	XmPLACE_BELOW_SELECTION
1261	} ;
1262
1263/* Defines for file type mask:
1264*/
1265#define XmFILE_DIRECTORY (1 << 0)
1266#define XmFILE_REGULAR   (1 << 1)
1267#define XmFILE_ANY_TYPE  (XmFILE_DIRECTORY | XmFILE_REGULAR)
1268
1269/* Defines for selection dialog type:
1270*/
1271enum{	XmDIALOG_WORK_AREA,		XmDIALOG_PROMPT,
1272	XmDIALOG_SELECTION,		XmDIALOG_COMMAND,
1273	XmDIALOG_FILE_SELECTION
1274	} ;
1275
1276/************************************************************************
1277 *  XmMessageBox           stuff not common to other dialogs            *
1278 ***********************************************************************/
1279
1280/* defines for dialog type */
1281
1282enum{	XmDIALOG_TEMPLATE,		XmDIALOG_ERROR,
1283	XmDIALOG_INFORMATION,		XmDIALOG_MESSAGE,
1284	XmDIALOG_QUESTION,		XmDIALOG_WARNING,
1285	XmDIALOG_WORKING
1286	} ;
1287
1288/*  Traversal types  */
1289
1290typedef enum{
1291	XmVISIBILITY_UNOBSCURED,	XmVISIBILITY_PARTIALLY_OBSCURED,
1292	XmVISIBILITY_FULLY_OBSCURED
1293	} XmVisibility ;
1294
1295
1296typedef enum{
1297	XmTRAVERSE_CURRENT,		XmTRAVERSE_NEXT,
1298	XmTRAVERSE_PREV,		XmTRAVERSE_HOME,
1299	XmTRAVERSE_NEXT_TAB_GROUP,	XmTRAVERSE_PREV_TAB_GROUP,
1300	XmTRAVERSE_UP,			XmTRAVERSE_DOWN,
1301	XmTRAVERSE_LEFT,		XmTRAVERSE_RIGHT,
1302	XmTRAVERSE_GLOBALLY_FORWARD,	XmTRAVERSE_GLOBALLY_BACKWARD
1303	} XmTraversalDirection ;
1304
1305typedef struct _XmTraverseObscuredCallbackStruct
1306{	int			reason ;
1307	XEvent *		event ;
1308	Widget			traversal_destination ;
1309	XmTraversalDirection	direction ;
1310	} XmTraverseObscuredCallbackStruct ;
1311
1312typedef unsigned char   XmNavigationType;
1313
1314
1315/***********************************************************************
1316 *
1317 * SimpleMenu declarations and definitions.
1318 *
1319 ***********************************************************************/
1320
1321typedef unsigned char XmButtonType;
1322typedef XmButtonType * XmButtonTypeTable;
1323typedef KeySym * XmKeySymTable;
1324typedef XmStringCharSet * XmStringCharSetTable;
1325
1326enum{	XmPUSHBUTTON = 1,		XmTOGGLEBUTTON,
1327	XmRADIOBUTTON,			XmCASCADEBUTTON,
1328	XmSEPARATOR,			XmDOUBLE_SEPARATOR,
1329	XmTITLE
1330	} ;
1331#define XmCHECKBUTTON			XmTOGGLEBUTTON
1332
1333
1334/***********************************************************************
1335 *
1336 * BitmapConversionModel
1337 *
1338 ***********************************************************************/
1339
1340enum{	XmMATCH_DEPTH, XmDYNAMIC_DEPTH } ;
1341
1342
1343/************************************************************************
1344 *  PrintShell defines
1345 ************************************************************************/
1346
1347enum { XmPDM_NOTIFY_FAIL, XmPDM_NOTIFY_SUCCESS } ;
1348
1349/************************************************************************
1350 *  MultiList defines
1351 ************************************************************************/
1352
1353enum { XmMULTILIST_FOUND, XmMULTILIST_NOT_FOUND };
1354
1355/************************************************************************
1356 *  DropDown defines
1357 ************************************************************************/
1358
1359enum {
1360    XmDROPDOWN_LABEL,
1361    XmDROPDOWN_TEXT,
1362    XmDROPDOWN_ARROW_BUTTON,
1363    XmDROPDOWN_LIST
1364};
1365
1366
1367/* This one cannot be put at the beginning because it needs
1368   XmStringTable */
1369#include <Xm/TxtPropCv.h>
1370
1371
1372/********    BaseClass.c    ********/
1373typedef XtPointer	(*XmResourceBaseProc)( Widget, XtPointer) ;
1374
1375typedef struct _XmSecondaryResourceDataRec{
1376    XmResourceBaseProc	base_proc;
1377    XtPointer		client_data;
1378    String		name;
1379    String		res_class;
1380    XtResourceList	resources;
1381    Cardinal		num_resources;
1382}XmSecondaryResourceDataRec, *XmSecondaryResourceData;
1383
1384/********    Public Function Declarations for BaseClass.c    ********/
1385
1386extern Cardinal XmGetSecondaryResourceData(
1387                        WidgetClass w_class,
1388                        XmSecondaryResourceData **secondaryDataRtn) ;
1389
1390/********    End Public Function Declarations    ********/
1391
1392/********    Public Function Declarations for ImageCache.c    ********/
1393
1394extern Boolean XmInstallImage(
1395                        XImage *image,
1396                        char *image_name) ;
1397extern Boolean XmUninstallImage(
1398                        XImage *image) ;
1399extern Pixmap XmGetPixmap(
1400                        Screen *screen,
1401                        char *image_name,
1402                        Pixel foreground,
1403                        Pixel background) ;
1404extern Pixmap XmGetPixmapByDepth(
1405                        Screen *screen,
1406                        char *image_name,
1407                        Pixel foreground,
1408                        Pixel background,
1409			int depth) ;
1410extern Boolean XmDestroyPixmap(
1411                        Screen *screen,
1412                        Pixmap pixmap) ;
1413
1414/********    End Public Function Declarations    ********/
1415
1416/********    Public Function Declarations for Resolve.c    ********/
1417/*-- XmeResolvePartOffsets is defined in XmP.h.
1418     These also belong there but for source compatibility, we let
1419     them here --- */
1420
1421typedef long XmOffset;
1422typedef XmOffset *XmOffsetPtr;
1423
1424
1425
1426extern void XmResolveAllPartOffsets(
1427                        WidgetClass w_class,
1428                        XmOffsetPtr *offset,
1429                        XmOffsetPtr *constraint_offset) ;
1430extern void XmResolvePartOffsets(
1431                        WidgetClass w_class,
1432                        XmOffsetPtr *offset) ;
1433
1434/********    End Public Function Declarations    ********/
1435
1436
1437
1438/********    Public Function Declarations for Xm.c    ********/
1439
1440
1441extern void XmUpdateDisplay(
1442                        Widget w) ;
1443extern Widget XmObjectAtPoint(
1444			Widget wid,
1445			Position x,
1446			Position y ) ;
1447
1448extern Boolean XmWidgetGetBaselines(
1449                        Widget wid,
1450                        Dimension **baselines,
1451                        int *line_count);
1452extern Boolean XmWidgetGetDisplayRect(
1453                        Widget wid,
1454                        XRectangle *displayrect);
1455
1456/********    End Public Function Declarations    ********/
1457
1458
1459
1460/********    Primitive.c    ********/
1461
1462/********    Public Function Declarations for Primitive.c    ********/
1463
1464/********    End Public Function Declarations    ********/
1465
1466/********    Public Function Declarations for ResConvert.c    ********/
1467
1468extern void XmCvtStringToUnitType(
1469                        XrmValuePtr args,
1470                        Cardinal *num_args,
1471                        XrmValue *from_val,
1472                        XrmValue *to_val) ;
1473extern char * XmRegisterSegmentEncoding(
1474                        char *fontlist_tag,
1475                        char *ct_encoding) ;
1476extern char * XmMapSegmentEncoding(
1477                        char *fontlist_tag) ;
1478extern XmString XmCvtCTToXmString(
1479                        char *text) ;
1480extern Boolean XmCvtTextToXmString(
1481                        Display *display,
1482                        XrmValuePtr args,
1483                        Cardinal *num_args,
1484                        XrmValue *from_val,
1485                        XrmValue *to_val,
1486                        XtPointer *converter_data) ;
1487extern char * XmCvtXmStringToCT(
1488                        XmString string) ;
1489extern Boolean XmCvtXmStringToText(
1490                        Display *display,
1491                        XrmValuePtr args,
1492                        Cardinal *num_args,
1493                        XrmValue *from_val,
1494                        XrmValue *to_val,
1495                        XtPointer *converter_data) ;
1496#ifdef UTF8_SUPPORTED
1497extern char * XmCvtXmStringToUTF8String(
1498                        XmString string) ;
1499#endif
1500/********    End Public Function Declarations    ********/
1501
1502/********    Public Function Declarations for ResInd.c    ********/
1503
1504extern int XmConvertStringToUnits(
1505				  Screen *screen,
1506				  String spec,
1507				  int orientation,
1508				  int to_type,
1509				  XtEnum *parse_error);
1510extern int XmConvertUnits(
1511                        Widget widget,
1512                        int dimension,
1513                        register int from_type,
1514                        register int from_val,
1515                        register int to_type) ;
1516extern int XmCvtToHorizontalPixels(
1517                        Screen *screen,
1518                        register int from_val,
1519                        register int from_type) ;
1520extern int XmCvtToVerticalPixels(
1521                        Screen *screen,
1522                        register int from_val,
1523                        register int from_type) ;
1524extern int XmCvtFromHorizontalPixels(
1525                        Screen *screen,
1526                        register int from_val,
1527                        register int to_type) ;
1528extern int XmCvtFromVerticalPixels(
1529                        Screen *screen,
1530                        register int from_val,
1531                        register int to_type) ;
1532extern void XmSetFontUnits(
1533                        Display *display,
1534                        int h_value,
1535                        int v_value) ;
1536extern void XmSetFontUnit(
1537                        Display *display,
1538                        int value) ;
1539
1540/********    End Public Function Declarations    ********/
1541
1542/********    Public Function Declarations for MenuUtil.c    ********/
1543
1544extern void XmSetMenuCursor(
1545                        Display *display,
1546                        Cursor cursorId) ;
1547extern Cursor XmGetMenuCursor(
1548                        Display *display) ;
1549
1550/********    End Public Function Declarations    ********/
1551
1552/********    Public Function Declarations for Simple.c    ********/
1553
1554extern Widget XmCreateSimpleMenuBar(
1555                        Widget parent,
1556                        String name,
1557                        ArgList args,
1558                        Cardinal arg_count) ;
1559extern Widget XmCreateSimplePopupMenu(
1560                        Widget parent,
1561                        String name,
1562                        ArgList args,
1563                        Cardinal arg_count) ;
1564extern Widget XmCreateSimplePulldownMenu(
1565                        Widget parent,
1566                        String name,
1567                        ArgList args,
1568                        Cardinal arg_count) ;
1569extern Widget XmCreateSimpleOptionMenu(
1570                        Widget parent,
1571                        String name,
1572                        ArgList args,
1573                        Cardinal arg_count) ;
1574extern Widget XmCreateSimpleRadioBox(
1575                        Widget parent,
1576                        String name,
1577                        ArgList args,
1578                        Cardinal arg_count) ;
1579extern Widget XmCreateSimpleCheckBox(
1580                        Widget parent,
1581                        String name,
1582                        ArgList args,
1583                        Cardinal arg_count) ;
1584
1585/********    End Public Function Declarations    ********/
1586
1587/********    Public Function Declarations for VaSimple.c   ********/
1588extern Widget XmVaCreateSimpleMenuBar(
1589			Widget parent,
1590			String name,
1591			...) ;
1592extern Widget XmVaCreateSimplePopupMenu(
1593			Widget parent,
1594			String name,
1595			XtCallbackProc callback,
1596			...) ;
1597extern Widget XmVaCreateSimplePulldownMenu(
1598			Widget parent,
1599			String name,
1600			int post_from_button,
1601			XtCallbackProc callback,
1602			...) ;
1603extern Widget XmVaCreateSimpleOptionMenu(
1604			Widget parent,
1605			String name,
1606                        XmString option_label,
1607                        KeySym option_mnemonic,
1608                        int button_set,
1609                        XtCallbackProc callback,
1610			...) ;
1611extern Widget XmVaCreateSimpleRadioBox(
1612			Widget parent,
1613			String name,
1614			int button_set,
1615			XtCallbackProc callback,
1616			...) ;
1617extern Widget XmVaCreateSimpleCheckBox(
1618			Widget parent,
1619			String name,
1620			XtCallbackProc callback,
1621			...) ;
1622/********    End Public Function Declarations    ********/
1623
1624/********    Public Function Declarations for TrackLoc.c    ********/
1625
1626extern Widget XmTrackingEvent(
1627                        Widget widget,
1628                        Cursor cursor,
1629#if NeedWidePrototypes
1630                        int confineTo,
1631#else
1632                        Boolean confineTo,
1633#endif /* NeedWidePrototypes */
1634                        XEvent *pev) ;
1635extern Widget XmTrackingLocate(
1636                        Widget widget,
1637                        Cursor cursor,
1638#if NeedWidePrototypes
1639                        int confineTo) ;
1640#else
1641                        Boolean confineTo) ;
1642#endif /* NeedWidePrototypes */
1643
1644/********    End Public Function Declarations    ********/
1645
1646/********    Visual.c    ********/
1647typedef void (*XmColorProc) (XColor *bg_color, XColor *fg_color,
1648	XColor *sel_color, XColor *ts_color, XColor *bs_color);
1649
1650/********    Public Function Declarations for Visual.c    ********/
1651
1652extern XmColorProc XmSetColorCalculation(
1653                        XmColorProc proc) ;
1654extern XmColorProc XmGetColorCalculation( void ) ;
1655extern void XmGetColors(
1656                        Screen *screen,
1657                        Colormap color_map,
1658                        Pixel background,
1659                        Pixel *foreground_ret,
1660                        Pixel *top_shadow_ret,
1661                        Pixel *bottom_shadow_ret,
1662                        Pixel *select_ret) ;
1663extern void XmChangeColor(
1664                        Widget widget,
1665                        Pixel background) ;
1666
1667/********    End Public Function Declarations    ********/
1668
1669/********    Public Function Declarations for XmString.c    ********/
1670
1671extern XmString XmStringCreate(
1672                        char *text,
1673                        XmStringCharSet charset) ;
1674extern XmString XmStringCreateSimple(
1675                        char *text) ;
1676extern XmString XmStringCreateLocalized(
1677                        String text) ;
1678extern XmString XmStringDirectionCreate(
1679#if NeedWidePrototypes
1680                        int direction) ;
1681#else
1682                        XmStringDirection direction) ;
1683#endif /* NeedWidePrototypes */
1684extern XmString XmStringSeparatorCreate( void ) ;
1685extern XmString XmStringSegmentCreate(
1686                        char *text,
1687                        XmStringCharSet charset,
1688#if NeedWidePrototypes
1689                        int direction,
1690                        int separator) ;
1691#else
1692                        XmStringDirection direction,
1693                        Boolean separator) ;
1694#endif /* NeedWidePrototypes */
1695extern XmString XmStringLtoRCreate(
1696                        char *text,
1697                        XmStringCharSet charset) ;
1698extern XmString XmStringCreateLtoR(
1699                        char *text,
1700                        XmStringCharSet charset) ;
1701extern Boolean XmStringInitContext(
1702                        XmStringContext *context,
1703                        XmString string) ;
1704extern void XmStringFreeContext(
1705                        XmStringContext context) ;
1706extern XmStringComponentType XmStringGetNextComponent(
1707                        XmStringContext context,
1708                        char **text,
1709                        XmStringCharSet *charset,
1710                        XmStringDirection *direction,
1711                        XmStringComponentType *unknown_tag,
1712                        unsigned short *unknown_length,
1713                        unsigned char **unknown_value) ;
1714extern XmStringComponentType XmStringPeekNextComponent(
1715                        XmStringContext context) ;
1716extern Boolean XmStringGetNextSegment(
1717                        XmStringContext context,
1718                        char **text,
1719                        XmStringCharSet *charset,
1720                        XmStringDirection *direction,
1721                        Boolean *separator) ;
1722extern Boolean XmStringGetLtoR(
1723                        XmString string,
1724                        XmStringCharSet charset,
1725                        char **text) ;
1726extern XmFontListEntry XmFontListEntryCreate(
1727                        char *tag,
1728                        XmFontType type,
1729                        XtPointer font) ;
1730extern XmFontListEntry XmFontListEntryCreate_r(
1731                        char *tag,
1732                        XmFontType type,
1733                        XtPointer font,
1734                        Widget wid) ;
1735extern void XmFontListEntryFree(
1736                        XmFontListEntry *entry) ;
1737extern XtPointer XmFontListEntryGetFont(
1738                        XmFontListEntry entry,
1739                        XmFontType *typeReturn) ;
1740extern char * XmFontListEntryGetTag(
1741                        XmFontListEntry entry) ;
1742extern XmFontList XmFontListAppendEntry(
1743                        XmFontList old,
1744                        XmFontListEntry entry) ;
1745extern XmFontListEntry XmFontListNextEntry(
1746                        XmFontContext context) ;
1747extern XmFontList XmFontListRemoveEntry(
1748                        XmFontList old,
1749                        XmFontListEntry entry) ;
1750extern XmFontListEntry XmFontListEntryLoad(
1751                        Display *display,
1752                        char *fontName,
1753                        XmFontType type,
1754                        char *tag) ;
1755extern XmFontList XmFontListCreate(
1756                        XFontStruct *font,
1757                        XmStringCharSet charset) ;
1758extern XmFontList XmFontListCreate_r(
1759                        XFontStruct *font,
1760                        XmStringCharSet charset,
1761                        Widget wid) ;
1762extern XmFontList XmStringCreateFontList(
1763                        XFontStruct *font,
1764                        XmStringCharSet charset) ;
1765extern XmFontList XmStringCreateFontList_r(
1766                        XFontStruct *font,
1767                        XmStringCharSet charset,
1768                        Widget wid) ;
1769extern void XmFontListFree(
1770                        XmFontList fontlist) ;
1771extern XmFontList XmFontListAdd(
1772                        XmFontList old,
1773                        XFontStruct *font,
1774                        XmStringCharSet charset) ;
1775extern XmFontList XmFontListCopy(
1776                        XmFontList fontlist) ;
1777extern Boolean XmFontListInitFontContext(
1778                        XmFontContext *context,
1779                        XmFontList fontlist) ;
1780extern Boolean XmFontListGetNextFont(
1781                        XmFontContext context,
1782                        XmStringCharSet *charset,
1783                        XFontStruct **font) ;
1784extern void XmFontListFreeFontContext(
1785                        XmFontContext context) ;
1786extern XmString XmStringConcat(
1787                        XmString a,
1788                        XmString b) ;
1789extern XmString XmStringConcatAndFree(
1790			XmString a,
1791			XmString b) ;
1792extern XmString XmStringNConcat(
1793                        XmString first,
1794                        XmString second,
1795                        int n) ;
1796extern XmString XmStringCopy(
1797                        XmString string) ;
1798extern XmString XmStringNCopy(
1799                        XmString str,
1800                        int n) ;
1801extern Boolean XmStringByteCompare(
1802                        XmString a1,
1803                        XmString b1) ;
1804extern Boolean XmStringCompare(
1805                        XmString a,
1806                        XmString b) ;
1807extern int XmStringLength(
1808                        XmString string) ;
1809extern Boolean XmStringEmpty(
1810                        XmString string) ;
1811extern Boolean XmStringIsVoid(XmString string);
1812extern Boolean XmStringHasSubstring(
1813                        XmString string,
1814                        XmString substring) ;
1815extern void XmStringFree(
1816                        XmString string) ;
1817extern Dimension XmStringBaseline(
1818                        XmFontList fontlist,
1819                        XmString string) ;
1820extern Dimension XmStringWidth(
1821                        XmFontList fontlist,
1822                        XmString string) ;
1823extern Dimension XmStringHeight(
1824                        XmFontList fontlist,
1825                        XmString string) ;
1826extern void XmStringExtent(
1827                        XmFontList fontlist,
1828                        XmString string,
1829                        Dimension *width,
1830                        Dimension *height) ;
1831extern int XmStringLineCount(
1832                        XmString string) ;
1833extern void XmStringDraw(
1834                        Display *d,
1835                        Window w,
1836                        XmFontList fontlist,
1837                        XmString string,
1838                        GC gc,
1839#if NeedWidePrototypes
1840                        int x,
1841                        int y,
1842                        int width,
1843                        unsigned int align,
1844                        unsigned int lay_dir,
1845#else
1846                        Position x,
1847                        Position y,
1848                        Dimension width,
1849                        unsigned char align,
1850                        unsigned char lay_dir,
1851#endif /* NeedWidePrototypes */
1852                        XRectangle *clip) ;
1853extern void XmStringDrawImage(
1854                        Display *d,
1855                        Window w,
1856                        XmFontList fontlist,
1857                        XmString string,
1858                        GC gc,
1859#if NeedWidePrototypes
1860                        int x,
1861                        int y,
1862                        int width,
1863                        unsigned int align,
1864                        unsigned int lay_dir,
1865#else
1866                        Position x,
1867                        Position y,
1868                        Dimension width,
1869                        unsigned char align,
1870                        unsigned char lay_dir,
1871#endif /* NeedWidePrototypes */
1872                        XRectangle *clip) ;
1873extern void XmStringDrawUnderline(
1874                        Display *d,
1875                        Window w,
1876                        XmFontList fntlst,
1877                        XmString str,
1878                        GC gc,
1879#if NeedWidePrototypes
1880                        int x,
1881                        int y,
1882                        int width,
1883                        unsigned int align,
1884                        unsigned int lay_dir,
1885#else
1886                        Position x,
1887                        Position y,
1888                        Dimension width,
1889                        unsigned char align,
1890                        unsigned char lay_dir,
1891#endif /* NeedWidePrototypes */
1892                        XRectangle *clip,
1893                        XmString under) ;
1894extern unsigned int XmCvtXmStringToByteStream(
1895			XmString string,
1896        	        unsigned char **prop_return);
1897extern XmString XmCvtByteStreamToXmString(
1898        	        unsigned char *property);
1899extern unsigned int XmStringByteStreamLength(unsigned char *string);
1900extern XmStringComponentType XmStringPeekNextTriple(XmStringContext context);
1901extern XmStringComponentType XmStringGetNextTriple(XmStringContext context,
1902						   unsigned int *length,
1903						   XtPointer *value);
1904extern XmString XmStringComponentCreate(XmStringComponentType tag,
1905					unsigned int length,
1906					XtPointer value);
1907extern XtPointer XmStringUnparse(XmString string,
1908				 XmStringTag tag,
1909				 XmTextType tag_type,
1910				 XmTextType output_type,
1911				 XmParseTable parse_table,
1912				 Cardinal parse_count,
1913				 XmParseModel parse_model);
1914extern XmString XmStringParseText(XtPointer text,
1915				  XtPointer *text_end,
1916				  XmStringTag tag,
1917				  XmTextType type,
1918				  XmParseTable parse_table,
1919				  Cardinal parse_count,
1920				  XtPointer call_data);
1921extern Cardinal XmStringToXmStringTable(XmString string,
1922					XmString break_comp,
1923					XmStringTable *table);
1924extern XmString XmStringTableToXmString(XmStringTable table,
1925					Cardinal count,
1926					XmString break_component);
1927extern XtPointer *XmStringTableUnparse(XmStringTable table,
1928				       Cardinal count,
1929				       XmStringTag tag,
1930				       XmTextType tag_type,
1931				       XmTextType output_type,
1932				       XmParseTable parse,
1933				       Cardinal parse_count,
1934				       XmParseModel parse_model);
1935extern XmStringTable XmStringTableParseStringArray(XtPointer *strings,
1936						   Cardinal count,
1937						   XmStringTag tag,
1938						   XmTextType type,
1939						   XmParseTable parse,
1940						   Cardinal parse_count,
1941						   XtPointer call_data);
1942
1943extern XmStringDirection XmDirectionToStringDirection(XmDirection dir);
1944extern XmDirection XmStringDirectionToDirection(XmStringDirection dir);
1945
1946extern XmString XmStringGenerate(XtPointer   text,
1947				 XmStringTag tag,
1948				 XmTextType  type,
1949				 XmStringTag rendition);
1950extern XmString XmStringPutRendition(XmString string,
1951				     XmStringTag rendition);
1952
1953extern XmParseMapping XmParseMappingCreate(ArgList  arg_list,
1954					   Cardinal arg_count);
1955extern void XmParseMappingSetValues(XmParseMapping parse_mapping,
1956				    ArgList        arg_list,
1957				    Cardinal       arg_count);
1958extern void XmParseMappingGetValues(XmParseMapping parse_mapping,
1959				    ArgList        arg_list,
1960				    Cardinal       arg_count);
1961extern void XmParseMappingFree(XmParseMapping parse_mapping);
1962extern void XmParseTableFree(XmParseTable parse_table,
1963			     Cardinal     parse_count);
1964
1965/********    End Public Function Declarations    ********/
1966
1967/********    Public Function Declarations for XmTabList.c    ********/
1968
1969extern XmTabList
1970  XmStringTableProposeTablist(XmStringTable strings,
1971			      Cardinal num_strings,
1972			      Widget widget,
1973			      float pad_value,
1974			      XmOffsetModel offset_model);
1975extern void XmTabSetValue(XmTab xmtab, float value);
1976extern float
1977  XmTabGetValues(XmTab xmtab,
1978		 unsigned char *units,
1979		 XmOffsetModel *offset,
1980		 unsigned char *alignment,
1981		 char **decimal);
1982extern void XmTabFree(XmTab xmtab);
1983extern XmTab XmTabCreate(float value,
1984			 unsigned char units,
1985			 XmOffsetModel offset_model,
1986			 unsigned char alignment,
1987			 char *decimal);
1988extern XmTabList
1989  XmTabListRemoveTabs(XmTabList oldlist,
1990		      Cardinal *position_list,
1991		      Cardinal position_count);
1992extern XmTabList
1993  XmTabListReplacePositions(XmTabList oldlist,
1994			    Cardinal *position_list,
1995			    XmTab *tabs,
1996			    Cardinal tab_count);
1997extern XmTab XmTabListGetTab(XmTabList tablist, Cardinal position);
1998extern Cardinal XmTabListTabCount(XmTabList tablist);
1999extern XmTabList XmTabListCopy(XmTabList tablist, int offset, Cardinal count);
2000extern void XmTabListFree(XmTabList tablist);
2001extern XmTabList XmTabListInsertTabs(XmTabList oldlist,
2002				     XmTab *tabs,
2003				     Cardinal tab_count,
2004				     int position);
2005/********    End Public Function Declarations    ********/
2006
2007/********    Public Function Declarations for XmRenderTable.c    ********/
2008
2009extern XmRenderTable XmRenderTableCvtFromProp(Widget, char *prop, unsigned int len);
2010extern unsigned int XmRenderTableCvtToProp(Widget, XmRenderTable table, char **prop_return);
2011extern void XmRenditionUpdate(XmRendition rendition, ArgList arglist, Cardinal argcount);
2012extern void XmRenditionRetrieve(XmRendition rendition,
2013				ArgList arglist,
2014				Cardinal argcount);
2015extern void XmRenditionFree(XmRendition rendition);
2016extern XmRendition XmRenditionCreate(Widget widget,
2017				     XmStringTag tag,
2018				     ArgList arglist,
2019				     Cardinal argcount);
2020extern XmRendition
2021  *XmRenderTableGetRenditions(XmRenderTable table,
2022			      XmStringTag *tags,
2023			      Cardinal tag_count);
2024extern XmRendition XmRenderTableGetRendition(XmRenderTable table,
2025					     XmStringTag tag);
2026extern int XmRenderTableGetTags(XmRenderTable table,
2027				XmStringTag **tag_list);
2028extern void XmRenderTableFree(XmRenderTable table);
2029extern XmRenderTable XmRenderTableCopy(XmRenderTable table,
2030				       XmStringTag *tags,
2031				       int tag_count);
2032extern XmRenderTable
2033  XmRenderTableRemoveRenditions(XmRenderTable oldtable,
2034				XmStringTag *tags,
2035				int tag_count);
2036extern XmRenderTable
2037  XmRenderTableAddRenditions(XmRenderTable oldtable,
2038			     XmRendition *renditions,
2039			     Cardinal rendition_count,
2040			     XmMergeMode merge_mode);
2041
2042/********    End Public Function Declarations    ********/
2043
2044/********    Public Function Declarations for Dest.c    ********/
2045
2046extern Widget XmGetDestination(
2047                        Display *display) ;
2048
2049/********    End Public Function Declarations    ********/
2050
2051/********    Public Function Declarations for Traversal.c    ********/
2052
2053extern Boolean XmIsTraversable(
2054                        Widget wid) ;
2055extern XmVisibility XmGetVisibility(
2056                        Widget wid) ;
2057extern Widget XmGetTabGroup(
2058                        Widget wid) ;
2059extern Widget XmGetFocusWidget(
2060                        Widget wid) ;
2061extern Boolean XmProcessTraversal(
2062                        Widget w,
2063                        XmTraversalDirection dir) ;
2064extern void XmAddTabGroup(
2065                        Widget tabGroup) ;
2066extern void XmRemoveTabGroup(
2067                        Widget w) ;
2068
2069/********    End Public Function Declarations    ********/
2070
2071/********        ********/
2072
2073#ifdef __cplusplus
2074}  /* Close scope of 'extern "C"' declaration which encloses file. */
2075#endif
2076
2077/*
2078 * The following includes are for source compatibility.  They might be
2079 *    removed at some future time.
2080 */
2081#include <Xm/VendorS.h>
2082#include <Xm/XmIm.h>
2083
2084#define XmINDICATOR_3D_BOX		0x01
2085#define XmINDICATOR_FLAT_BOX		0x02
2086#define XmINDICATOR_CHECK_GLYPH		0x10
2087#define XmINDICATOR_CROSS_GLYPH		0x20
2088
2089enum {
2090  XmINDICATOR_NONE      = 0,
2091  XmINDICATOR_FILL      = 1,	/* Treated as _BOX or _CHECK_BOX */
2092  XmINDICATOR_BOX	= 255,	/* Treated as XmINDICATOR_3D_BOX */
2093  XmINDICATOR_CHECK     = XmINDICATOR_CHECK_GLYPH,
2094  XmINDICATOR_CHECK_BOX = XmINDICATOR_CHECK_GLYPH + XmINDICATOR_3D_BOX,
2095  XmINDICATOR_CROSS     = XmINDICATOR_CROSS_GLYPH,
2096  XmINDICATOR_CROSS_BOX = XmINDICATOR_CROSS_GLYPH + XmINDICATOR_3D_BOX
2097};
2098
2099enum { XmUNSET, XmSET, XmINDETERMINATE };
2100enum { XmTOGGLE_BOOLEAN, XmTOGGLE_INDETERMINATE };
2101typedef unsigned char XmToggleButtonState;
2102
2103/* Shared text enum. */
2104typedef enum { EditDone, EditError, EditReject } XmTextStatus;
2105
2106/* XmDisplay.XmNdefaultButtonEmphasis enum */
2107enum { XmEXTERNAL_HIGHLIGHT, XmINTERNAL_HIGHLIGHT };
2108
2109/* new for XmString */
2110#define _MOTIF_DEFAULT_LOCALE "_MOTIF_DEFAULT_LOCALE"
2111
2112enum { XmPATH_MODE_FULL, XmPATH_MODE_RELATIVE };
2113enum { XmFILTER_NONE, XmFILTER_HIDDEN_FILES} ;
2114
2115#endif /* _Xm_h */
2116 /* DON'T ADD STUFF AFTER THIS #endif */
2117