/* This symbol must always be defined when compiling for Motif.  This is to
 * ensure that the correct set of Xt header files are used (ie those in
 * /usr/include/Xm rather than the X11 Release 4 ones in /usr/include/X11).
 * All the R4 Xt headers check for this symbol; if it is defined, they give
 * an error.
 */

#ifndef _MOTIF_XT
#define _MOTIF_XT
#endif

#ifdef REV_INFO
#ifndef lint
static char SCCSID[] = "OSF/Motif: @(#)Xm.h	1.3 89/10/31";
#endif /* lint */
#endif /* REV_INFO */
/******************************************************************************
*******************************************************************************
*
*  (c) Copyright 1989, OPEN SOFTWARE FOUNDATION, INC.
*  (c) Copyright 1987, 1988, 1989 HEWLETT-PACKARD COMPANY
*  ALL RIGHTS RESERVED
*  
*  	THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED
*  AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND
*  WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR
*  ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE
*  AVAILABLE TO ANY OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF THE
*  SOFTWARE IS HEREBY TRANSFERRED.
*  
*  	THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
*  NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY OPEN SOFTWARE
*  FOUNDATION, INC. OR ITS THIRD PARTY SUPPLIERS  
*  
*  	OPEN SOFTWARE FOUNDATION, INC. AND ITS THIRD PARTY SUPPLIERS,
*  ASSUME NO RESPONSIBILITY FOR THE USE OR INABILITY TO USE ANY OF ITS
*  SOFTWARE .   OSF SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
*  KIND, AND OSF EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES, INCLUDING
*  BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
*  FITNESS FOR A PARTICULAR PURPOSE.
*  
*  Notice:  Notwithstanding any other lease or license that may pertain to,
*  or accompany the delivery of, this computer software, the rights of the
*  Government regarding its use, reproduction and disclosure are as set
*  forth in Section 52.227-19 of the FARS Computer Software-Restricted
*  Rights clause.
*  
*  (c) Copyright 1989, Open Software Foundation, Inc.  Unpublished - all
*  rights reserved under the Copyright laws of the United States.
*  
*  RESTRICTED RIGHTS NOTICE:  Use, duplication, or disclosure by the
*  Government is subject to the restrictions as set forth in subparagraph
*  (c)(1)(ii) of the Rights in Technical Data and Computer Software clause
*  at DFARS 52.227-7013.
*  
*  Open Software Foundation, Inc.
*  11 Cambridge Center
*  Cambridge, MA   02142
*  (617)621-8700
*  
*  RESTRICTED RIGHTS LEGEND:  This computer software is submitted with
*  "restricted rights."  Use, duplication or disclosure is subject to the
*  restrictions as set forth in NASA FAR SUP 18-52.227-79 (April 1985)
*  "Commercial Computer Software- Restricted Rights (April 1985)."  Open
*  Software Foundation, Inc., 11 Cambridge Center, Cambridge, MA  02142.  If
*  the contract contains the Clause at 18-52.227-74 "Rights in Data General"
*  then the "Alternate III" clause applies.
*  
*  (c) Copyright 1989, Open Software Foundation, Inc.
*  ALL RIGHTS RESERVED 
*  
*  
* Open Software Foundation is a trademark of The Open Software Foundation, Inc.
* OSF is a trademark of Open Software Foundation, Inc.
* OSF/Motif is a trademark of Open Software Foundation, Inc.
* Motif is a trademark of Open Software Foundation, Inc.
* DEC is a registered trademark of Digital Equipment Corporation
* DIGITAL is a registered trademark of Digital Equipment Corporation
* X Window System is a trademark of the Massachusetts Institute of Technology
*
*******************************************************************************
******************************************************************************/
/*************************************<+>*************************************
 *****************************************************************************
 **
 **   File:        Xm.h
 **
 **   Description: This include file contains public defines and structures
 **                needed by all XToolkit applications using the OSF Widget
 **                Set.
 **
 **                Included in the file are the definitions for all common
 **                resource types, defines for resource or arg list values,
 **                and the class and instance record definitions for all meta
 **                classes.
 **
 ************************************<+>*************************************/


#ifndef _Xm_h
#define _Xm_h


#ifndef _XtIntrinsic_h
#include "Intrinsic.h"
#endif


#define XmVERSION	1
#define XmREVISION	0
#define XmVersion (XmVERSION * 1000 + XmREVISION)

extern int xmUseVersion;


/* define used to denote an unspecified pixmap  */

#define XmUNSPECIFIED_PIXMAP	2


/****************
 *
 * XmString structure defines. These must be here (at the start of the file) 
 * becaused they are used later on.
 *
 ****************/

#define XmSTRING_DIRECTION_L_TO_R	0
#define XmSTRING_DIRECTION_R_TO_L	1

typedef char *		XmString;		/* opaque to outside */
typedef XmString *	XmStringTable;		/* opaque to outside */
typedef char *		XmStringCharSet;	/* Null term string */
typedef unsigned char	XmStringComponentType;	/* component tags */
typedef unsigned char 	XmStringDirection;

typedef struct
{
    XFontStruct      *font;
    XmStringCharSet  charset;
}
    XmFontListRec, *XmFontList;

/*
 * internal context data block, for read-out
 */

typedef struct
{
    unsigned short	offset;			/* current place TCS */
    unsigned short	length;			/* max length */
    XmStringCharSet	charset;		/* last charset seen */
    unsigned short	charset_length;		/* and it's length */
    XmStringDirection	direction;		/* last direction */
    Boolean		error;			/* something bad */
}
    _XmStringContextRec, *_XmStringContext;

/*
 * external context data block
 */

typedef struct
{
    XmString		string;
    _XmStringContext	internal_context;
}
    XmStringContextRec, *XmStringContext;


#define XmSTRING_COMPONENT_UNKNOWN	0
#define XmSTRING_COMPONENT_CHARSET	1
#define XmSTRING_COMPONENT_TEXT		2
#define XmSTRING_COMPONENT_DIRECTION	3
#define XmSTRING_COMPONENT_SEPARATOR	4	/* 5-125 reserved */

#define XmSTRING_COMPONENT_END		126	/* no more comp in string */

#define XmSTRING_COMPOUND_STRING 	127	/* tag for whole TCS */

#define XmSTRING_COMPONENT_USER_BEGIN	128	/* 128-255 are user tags */
#define XmSTRING_COMPONENT_USER_END	255
#define XmSTRING_DEFAULT_CHARSET	(-1)

/************************************************************************
 *  Resource names
 *	Taken from StringDefs, with Xt replaced by Xm.
 ************************************************************************/

#define XmNaccelerator          "accelerator"
#define XmNaccelerators         "accelerators"
#define XmNacceleratorText      "acceleratorText"
#define XmNadjustLast		"adjustLast"
#define XmNadjustMargin		"adjustMargin"
#define XmNalignment		"alignment"
#define XmNancestorSensitive	"ancestorSensitive"
#define XmNarmCallback	 	"armCallback"
#define XmNbackground		"background"
#define XmNbackgroundPixmap     "backgroundPixmap"
#define XmNbitmap		"bitmap"
#define XmNborderColor		"borderColor"
#define XmNborder		"borderColor"
#define XmNborderPixmap		"borderPixmap"
#define XmNborderWidth		"borderWidth"
#define XmNcascadePixmap	"cascadePixmap"
#define XmNcascadingCallback	"cascadingCallback"
#define XmNcolormap		"colormap"
#define XmNdepth		"depth"
#define XmNdestroyCallback      "destroyCallback"
#define XmNdirMask       "dirMask"
#define XmNdirSpec       "dirSpec"
#define XmNdisarmCallback       "disarmCallback"
#define XmNeditType		"editType"
#define XmNentryAlignment	"entryAlignment"
#define XmNentryBorder		"entryBorder"
#define XmNentryClass		"entryClass"
#define XmNentryCallback	"entryCallback"
#define XmNexposeCallback       "exposeCallback"
#define XmNfile			"file"
#define XmNfileSearchProc			"fileSearchProc"
#define XmNfillOnSelect		"fillOnSelect"
#define XmNfilterLabelString	"filterLabelString"
#define XmNfont			"font"
#define XmNfontList		"fontList"
#define XmNforceBars		"forceBars"
#define XmNforeground		"foreground"
#define XmNfunction		"function"
#define XmNheight		"height"
#define XmNhighlight		"highlight"
#define XmNindex		"index"
#define XmNindicatorOn		"indicatorOn"
#define XmNindicatorType	"indicatorType"
#define XmNinnerHeight		"innerHeight"
#define XmNinnerWidth		"innerWidth"
#define XmNinnerWindow		"innerWindow"
#define XmNinsertPosition       "insertPosition"
#define XmNinternalHeight	"internalHeight"
#define XmNinternalWidth	"internalWidth"
#define XmNisAligned		"isAligned"
#define XmNisHomogeneous	"isHomogeneous"
#define XmNjumpProc		"jumpProc"
#define XmNjustify		"justify"
#define XmNlabelInsensitivePixmap "labelInsensitivePixmap"
#define XmNlabelPixmap		"labelPixmap"
#define XmNlabelString		"labelString"
#define XmNlabelType		"labelType"
#define XmNlength		"length"
#define XmNlistUpdated      "listUpdated"
#define XmNlowerRight		"lowerRight"
#define XmNmapCallback		"mapCallback"
#define XmNmappedWhenManaged	"mappedWhenManaged"
#define XmNmappingDelay	        "mappingDelay"
#define XmNmarginHeight		"marginHeight"
#define XmNmarginTop		"marginTop"
#define XmNmarginBottom		"marginBottom"
#define XmNmarginWidth		"marginWidth"
#define XmNmarginRight		"marginRight"
#define XmNmarginLeft		"marginLeft"
#define XmNmenuAccelerator	"menuAccelerator"
#define XmNmenuCursor		"menuCursor"
#define XmNmenuEntry		"menuEntry"
#define XmNmenuHelpWidget	"menuHelpWidget"
#define XmNmenuHistory		"menuHistory"
#define XmNmnemonic		"mnemonic"
#define XmNname			"name"
#define XmNnotify		"notify"
#define XmNnumColumns		"numColumns"
#define XmNorientation		"orientation"
#define XmNpacking		"packing"
#define XmNparameter		"parameter"
#define XmNpopdownCallback	"popdownCallback"
#define XmNpopupCallback	"popupCallback"
#define XmNpopupEnabled		"popupEnabled"
#define XmNradioAlwaysOne	"radioAlwaysOne"
#define XmNradioBehavior	"radioBehavior"
#define XmNrecomputeSize	"recomputeSize"
#define XmNresize		"resize"
#define XmNresizeCallback       "resizeCallback"
#define XmNreverseVideo		"reverseVideo"
#define XmNrowColumnType	"rowColumnType"
#define XmNscreen               "screen"
#define XmNscrollProc		"scrollProc"
#define XmNscrollDCursor	"scrollDCursor"
#define XmNscrollHCursor	"scrollHCursor"
#define XmNscrollLCursor	"scrollLCursor"
#define XmNscrollRCursor	"scrollRCursor"
#define XmNscrollUCursor	"scrollUCursor"
#define XmNscrollVCursor	"scrollVCursor"
#define XmNselectColor		"selectColor"
#define XmNselection		"selection"
#define XmNselectionArray	"selectionArray"
#define XmNselectInsensitivePixmap "selectInsensitivePixmap"
#define XmNselectPixmap	 	"selectPixmap"
#define XmNsensitive		"sensitive"
#define XmNset			"set"
#define XmNshadow		"shadow"
#define XmNshown		"shown"
#define XmNspace		"space"
#define XmNspacing		"spacing"
#define XmNstring		"string"
#define XmNstringDirection	"stringDirection"
#define XmNsubMenuId		"subMenuId"
#define XmNtextOptions		"textOptions"
#define XmNtextSink		"textSink"
#define XmNtextSource		"textSource"
#define XmNthickness		"thickness"
#define XmNthumb		"thumb"
#define XmNthumbProc		"thumbProc"
#define XmNtop			"top"
#define XmNtranslations		"translations"
#define XmNunmapCallback	"unmapCallback"
#define XmNunselectPixmap 	"unselectPixmap"
#define XmNupdate		"update"
#define XmNuseBottom		"useBottom"
#define XmNuseRight		"useRight"
#define XmNvalue		"value"
#define XmNvisibleWhenOff	"visibleWhenOff"
#define XmNwhichButton	"whichButton"
#define XmNwidth		"width"
#define XmNwindow		"window"
#define XmNx			"x"
#define XmNy			"y"


/* Class types */ 

#define XmCAccelerator          "Accelerator"
#define XmCAccelerators         "Accelerators"
#define XmCAcceleratorText      "AcceleratorText"
#define XmCAdjustLast		"AdjustLast"
#define XmCAdjustMargin		"AdjustMargin"
#define XmCAlignment		"Alignment"
#define XmCArmCallback		"ArmCallback"
#define XmCBackground		"Background"
#define XmCBitmap		"Bitmap"
#define XmCBoolean		"Boolean"
#define XmCBorderColor		"BorderColor"
#define XmCBorderWidth		"BorderWidth"
#define XmCCallback             "Callback"
#define XmCColormap		"Colormap"
#define XmCColor		"Color"
#define XmCCursor		"Cursor"
#define XmCDepth		"Depth"
#define XmCDirMask	"DirMask"
#define XmCDirSpec	"DirSpec"
#define XmCDisarmCallback	"DisarmCallback"
#define XmCEditType		"EditType"
#define XmCEntryBorder		"EntryBorder"
#define XmCEntryClass		"EntryClass"
#define XmCEventBindings	"EventBindings"
#define XmCExposeCallback       "ExposeCallback"
#define XmCFile			"File"
#define XmCFileSearchProc			"FileSearchProc"
#define XmCFillOnSelect		"FillOnSelect"
#define XmCFilterLabelString	"FilterLabelString"
#define XmCFont			"Font"
#define XmCFontList		"FontList"
#define XmCForeground		"Foreground"
#define XmCFraction		"Fraction"
#define XmCFunction		"Function"
#define XmCHeight		"Height"
#define XmCHSpace		"HSpace"
#define XmCIndex		"Index"
#define XmCIndicatorOn		"IndicatorOn"
#define XmCIndicatorType	"IndicatorType"
#define XmCInsertPosition       "InsertPosition"
#define XmCInterval		"Interval"
#define XmCIsAligned		"IsAligned"
#define XmCIsHomogeneous	"IsHomogeneous"
#define XmCJustify		"Justify"
#define XmCLabel		"Label"
#define XmCLabelInsensitivePixmap "LabelInsensitivePixmap"
#define XmCLabelPixmap		"LabelPixmap"
#define XmCLabelString		"LabelString"
#define XmCLabelType		"LabelType"
#define XmCLength		"Length"
#define XmCListUpdated       "ListUpdated"
#define XmCMappedWhenManaged	"MappedWhenManaged"
#define XmCMappingDelay         "MappingDelay"
#define XmCMargin		"Margin"
#define XmCMarginHeight		"MarginHeight"
#define XmCMarginWidth		"MarginWidth"
#define XmCMarginLeft		"MarginLeft"
#define XmCMarginRight		"MarginRight"
#define XmCMarginTop		"MarginTop"
#define XmCMarginBottom		"MarginBottom"
#define XmCMenuEntry		"MenuEntry"
#define XmCMenuWidget           "MenuWidget"
#define XmCMnemonic		"Mnemonic"
#define XmCNotify		"Notify"
#define	XmCNumColumns		"NumColumns"
#define XmCOrientation		"Orientation"
#define XmCPacking		"Packing"
#define XmCParameter		"Parameter"
#define XmCPixmap		"Pixmap"
#define XmCPopupEnabled		"PopupEnabled"
#define XmCPosition		"Position"
#define XmCRadioAlwaysOne	"RadioAlwaysOne"
#define XmCRadioBehavior	"RadioBehavior"
#define XmCRecomputeSize	"RecomputeSize"
#define XmCResize		"Resize"
#define XmCResizeCallback       "ResizeCallback"
#define XmCReverseVideo		"ReverseVideo"
#define XmCRowColumnType	"RowColumnType"
#define XmCScreen               "Screen"
#define XmCScrollProc		"ScrollProc"
#define XmCScrollDCursor	"ScrollDCursor"
#define XmCScrollHCursor	"ScrollHCursor"
#define XmCScrollLCursor	"ScrollLCursor"
#define XmCScrollRCursor	"ScrollRCursor"
#define XmCScrollUCursor	"ScrollUCursor"
#define XmCScrollVCursor	"ScrollVCursor"
#define XmCSelection		"Selection"
#define XmCSensitive		"Sensitive"
#define XmCSelectionArray	"SelectionArray"
#define XmCSelectInsensitivePixmap "SelectInsensitivePixmap"
#define XmCSelectPixmap	 	"SelectPixmap"
#define XmCSet			"Set"
#define XmCSpace		"Space"
#define XmCSpacing		"Spacing"
#define XmCString		"String"
#define XmCStringDirection	"StringDirection"
#define XmCTextOptions		"TextOptions"
#define XmCTextPosition		"TextPosition"
#define XmCTextSink		"TextSink"
#define XmCTextSource		"TextSource"
#define XmCThickness		"Thickness"
#define XmCThumb		"Thumb"
#define XmCTranslations		"Translations"
#define XmCUnselectPixmap 	"UnselectPixmap"
#define XmCValue		"Value"
#define XmCValueChangedCallback	"ValueChangedCallback"
#define XmCVisibleWhenOff	"VisibleWhenOff"
#define XmCVSpace		"VSpace"
#define XmCWhichButton	        "WhichButton"
#define XmCWidth		"Width"
#define XmCWindow		"Window"
#define XmCXmString             "XmString"
#define XmCX			"X"
#define XmCY			"Y"


/* Representation types */

#define XmRAcceleratorTable     "AcceleratorTable"
#define XmRAlignment		"Alignment"
#define XmRBool			"Bool"
#define XmRBoolean		"Boolean"
#define XmRCallback             "Callback"
#define XmRCallProc             "CallProc"
#define XmRChar			"Char"
#define XmRColor		"Color"
#define XmRCursor		"Cursor"
#define XmRDimension		"Dimension"
#define XmRDisplay		"Display"
#define XmREditMode		"EditMode"
#define XmRFile			"File"
#define XmRFont			"Font"
#define XmRFontList		"FontList"
#define XmRFontStruct		"FontStruct"
#define XmRFunction		"Function"
#define XmRGeometry		"Geometry"
#define XmRImmediate		"Immediate"
#define XmRIndicatorType	"IndicatorType"
#define XmRInt			"Int"
#define XmRJustify		"Justify"
#define XmRLabelType		"LabelType"
#define XmRLongBoolean		XmRBool		/* Compatibility */
#define XmRMenuWidget           "MenuWidget"
#define XmRMnemonic		"Mnemonic"
#define XmROrientation		"Orientation"
#define XmRPacking		"Packing"
#define XmRPixel		"Pixel"
#define XmRPixmap		"Pixmap"
#define XmRPointer		"Pointer"
#define XmRPosition		"Position"
#define XmRProc		"Proc"
#define XmRRowColumnType	"RowColumnType"
#define XmRShort                "Short"
#define XmRString		"String"
#define XmRStringDirection	"StringDirection"
#define XmRStringTable		"StringTable"
#define XmRUnsignedChar         "UnsignedChar"
#define XmRTranslationTable     "TranslationTable"
#define XmRWhichButton		"WhichButton"
#define XmRWindow		"Window"
#define XmRXmString		"XmString"
#define XmRXmStringTable	"XmStringTable"


/************************************************************************
 *  Resource names
 *	Taken from Shell.h, Xt replaced by Xm
 ************************************************************************/
#define XmNiconName	"iconName"
#define XmCIconName	"IconName"
#define XmNiconPixmap	"iconPixmap"
#define XmCIconPixmap	"IconPixmap"
#define XmNiconWindow	"iconWindow"
#define XmCIconWindow	"IconWindow"
#define XmNiconMask	"iconMask"
#define XmCIconMask	"IconMask"
#define XmNwindowGroup	"windowGroup"
#define XmCWindowGroup	"WindowGroup"
 
#define XmNsaveUnder		"saveUnder"
#define XmCSaveUnder		"SaveUnder"
#define XmNtransient		"transient"
#define XmCTransient		"Transient"
#define XmNoverrideRedirect	"overrideRedirect"
#define XmCOverrideRedirect	"OverrideRedirect"

#define XmNallowShellResize	"allowShellResize"
#define XmCAllowShellResize	"AllowShellResize"
#define XmNcreatePopupChildProc	"createPopupChildProc"
#define XmCCreatePopupChildProc	"CreatePopupChildProc"

#define XmNtitle	"title"
#define XmCTitle	"Title"

/* 
 * The following are only used at creation and can not be changed via 
 * SetValues.
 */

#define XmNargc		"argc"
#define XmCArgc		"Argc"
#define XmNargv		"argv"
#define XmCArgv		"Argv"
#define XmNiconX	"iconX"
#define XmCIconX	"IconX"
#define XmNiconY	"iconY"
#define XmCIconY	"IconY"
#define XmNinput	"input"
#define XmCInput	"Input"
#define XmNiconic	"iconic"
#define XmCIconic	"Iconic"
#define XmNinitialState	"initialState"
#define XmCInitialState	"InitialState"
#define XmNgeometry	"geometry"
#define XmCGeometry	"Geometry"
#define XmNminWidth	"minWidth"
#define XmCMinWidth	"MinWidth"
#define XmNminHeight	"minHeight"
#define XmCMinHeight	"MinHeight"
#define XmNmaxWidth	"maxWidth"
#define XmCMaxWidth	"MaxWidth"
#define XmNmaxHeight	"maxHeight"
#define XmCMaxHeight	"MaxHeight"
#define XmNwidthInc	"widthInc"
#define XmCWidthInc	"WidthInc"
#define XmNheightInc	"heightInc"
#define XmCHeightInc	"HeightInc"
#define XmNminAspectY	"minAspectY"
#define XmCMinAspectY	"MinAspectY"
#define XmNmaxAspectY	"maxAspectY"
#define XmCMaxAspectY	"MaxAspectY"
#define XmNminAspectX		"minAspectX"
#define XmCMinAspectX		"MinAspectX"
#define XmNmaxAspectX		"maxAspectX"
#define XmCMaxAspectX		"MaxAspectX"
#define XmNwmTimeout		"wmTimeout"
#define XmCWmTimeout		"WmTimeout"
#define XmNwaitForWm		"waitforwm"
#define XmCWaitForWm		"Waitforwm"

/************************************************************************
 *  Include Vendor.h in order to get it's resources, so a caller
 *  doesn't have to include it explicitly
 ************************************************************************/
#ifndef _Vendor_h
#include "Vendor.h"
#endif /* Vendor.h */

#ifndef XmEXPLICIT
#define XmEXPLICIT 0
#define XmPOINTER 1
#endif


/************************************************************************
 *
 *  Base widget class and record definitions.
 *	Included are the definitions for XmPrimitive, XmManager,
 *      and XmGadget.
 *
 ************************************************************************/

/*  Primitive widget class and record definitions  */

extern WidgetClass xmPrimitiveWidgetClass;

typedef struct _XmPrimitiveClassRec * XmPrimitiveWidgetClass;
typedef struct _XmPrimitiveRec      * XmPrimitiveWidget;


/*  Gadget widget class and record definitions  */

extern WidgetClass xmGadgetClass;

typedef struct _XmGadgetClassRec * XmGadgetClass;
typedef struct _XmGadgetRec      * XmGadget;


/*  Manager widger class and record definitions  */

extern WidgetClass xmManagerWidgetClass;

typedef struct _XmManagerClassRec * XmManagerWidgetClass;
typedef struct _XmManagerRec      * XmManagerWidget;


/************************************************************************
 *  Fast subclassing -- just do XtIsSubclass now.  To be replaced.
 ************************************************************************/

#ifndef XmIsPrimitive
#define XmIsPrimitive(w)	XtIsSubclass(w, xmPrimitiveWidgetClass)
#endif  /* XmIsPrimitive */

#ifndef XmIsGadget
#define XmIsGadget(w)	XtIsSubclass(w, xmGadgetClass)
#endif  /* XmIsGadget */

#ifndef XmIsManager
#define XmIsManager(w)	XtIsSubclass(w, xmManagerWidgetClass)
#endif  /* XmIsManager */


/************************************************************************
 *  Primitive Resources and define values
 ************************************************************************/

#define XmNforeground		"foreground"
#define XmCForeground		"Foreground"

#define XmRPrimForegroundPixmap	"PrimForegroundPixmap"
#define XmRManForegroundPixmap	"ManForegroundPixmap"

#define XmCBackgroundPixmap	"BackgroundPixmap"
#define XmRBackgroundPixmap	"BackgroundPixmap"

#define XmNtraversalOn		"traversalOn"
#define XmCTraversalOn		"TraversalOn"

#define XmNhighlightOnEnter	"highlightOnEnter"
#define XmCHighlightOnEnter	"HighlightOnEnter"

#define XmNsizePolicy		"sizePolicy"
#define XmCSizePolicy		"SizePolicy"
#define XmRSizePolicy		"SizePolicy"

#define XmNhighlightThickness	"highlightThickness"
#define XmCHighlightThickness	"HighlightThickness"

#define XmNhighlightColor	"highlightColor"

#define XmNhighlightPixmap	"highlightPixmap"
#define XmCHighlightPixmap	"HighlightPixmap"
#define XmRPrimHighlightPixmap	"HighlightPixmap"

#define XmNshadowThickness	"shadowThickness"
#define XmCShadowThickness	"ShadowThickness"

#define XmNtopShadowColor	"topShadowColor"

#define XmNtopShadowPixmap	"topShadowPixmap"
#define XmCTopShadowPixmap	"TopShadowPixmap"
#define XmRPrimTopShadowPixmap	"TopShadowPixmap"

#define XmNbottomShadowColor	"bottomShadowColor"

#define XmNbottomShadowPixmap		"bottomShadowPixmap"
#define XmCBottomShadowPixmap		"BottomShadowPixmap"
#define XmRPrimBottomShadowPixmap	"BottomShadowPixmap"

#define XmNunitType		"unitType"
#define XmCUnitType		"UnitType"
#define XmRUnitType		"UnitType"

#define XmNhelpCallback		"helpCallback"
#define XmNuserData		"userData"
#define XmCUserData		"UserData"


/* size policy values  */

#define XmCHANGE_ALL	0
#define XmCHANGE_NONE	1
#define XmCHANGE_WIDTH	2
#define XmCHANGE_HEIGHT	3


/*  unit type values  */

#define XmPIXELS		0
#define Xm100TH_MILLIMETERS	1
#define Xm1000TH_INCHES		2
#define Xm100TH_POINTS		3
#define Xm100TH_FONT_UNITS	4



/************************************************************************
 *  Manager Resources and define values
 ************************************************************************/

#define XmRManTopShadowPixmap		"ManTopShadowPixmap"
#define XmRManBottomShadowPixmap	"ManBottomShadowPixmap"
#define XmRManHighlightPixmap		"ManHighlightPixmap"

#define XmNchildPosition	"childPosition"



/************************************************************************
 *  Menu defines
 ************************************************************************/

#define XmNO_ORIENTATION       0
#define XmVERTICAL	       1
#define XmHORIZONTAL           2

#define XmWORK_AREA	       0
#define XmMENU_BAR	       1
#define XmMENU_PULLDOWN        2
#define XmMENU_POPUP           3
#define XmMENU_OPTION          4

#define XmNO_PACKING           0
#define XmPACK_TIGHT	       1
#define XmPACK_COLUMN	       2
#define XmPACK_NONE	       3


/************************************************************************
 *  Label defines
 ************************************************************************/

#define XmALIGNMENT_BEGINNING		0
#define XmALIGNMENT_CENTER		1
#define XmALIGNMENT_END			2


/************************************************************************
 *  ToggleButton  defines
 ************************************************************************/

#define XmN_OF_MANY			1
#define XmONE_OF_MANY			2


/************************************************************************
 *  Form resources and defines
 ************************************************************************/

/*  Form resources  */

#define XmNhorizontalSpacing	"horizontalSpacing"
#define XmNverticalSpacing	"verticalSpacing"

#define XmNfractionBase		"fractionBase"
#define XmCMaxValue		"MaxValue"

#define XmNrubberPositioning	"rubberPositioning"
#define XmCRubberPositioning	"RubberPositioning"

#define XmNresizePolicy		"resizePolicy"
#define XmCResizePolicy		"ResizePolicy"
#define XmRResizePolicy		"ResizePolicy"


/*  Form constraint resources  */

#define XmNtopAttachment	"topAttachment"
#define XmNbottomAttachment	"bottomAttachment"
#define XmNleftAttachment	"leftAttachment"
#define XmNrightAttachment	"rightAttachment"
#define XmCAttachment		"Attachment"
#define XmRAttachment		"Attachment"

#define XmNtopWidget		"topWidget"
#define XmNbottomWidget		"bottomWidget"
#define XmNleftWidget		"leftWidget"
#define XmNrightWidget		"rightWidget"
#define XmCWidget		"Widget"

#define XmNtopPosition		"topPosition"
#define XmNbottomPosition	"bottomPosition"
#define XmNleftPosition		"leftPosition"
#define XmNrightPosition	"rightPosition"
#define XmNtopOffset		"topOffset"
#define XmNbottomOffset		"bottomOffset"
#define XmNleftOffset		"leftOffset"
#define XmNrightOffset		"rightOffset"
#define XmCOffset		"Offset"

#define XmNresizable		"resizable"


/*  Form defines  */

#define XmATTACH_NONE			0
#define XmATTACH_FORM			1
#define XmATTACH_OPPOSITE_FORM		2
#define XmATTACH_WIDGET			3
#define XmATTACH_OPPOSITE_WIDGET	4
#define XmATTACH_POSITION		5
#define XmATTACH_SELF			6

#define XmRESIZE_NONE	0
#define XmRESIZE_GROW	1
#define XmRESIZE_ANY	2	/*  for BulletinBoard, DrawingArea  */ 



/****************************************************************************
 *  Callback reasons 
 ****************************************************************************/

#define XmCR_NONE            		0
#define XmCR_HELP            		1
#define XmCR_VALUE_CHANGED		2
#define XmCR_INCREMENT			3
#define XmCR_DECREMENT			4
#define XmCR_PAGE_INCREMENT		5
#define XmCR_PAGE_DECREMENT		6
#define XmCR_TO_TOP			7
#define XmCR_TO_BOTTOM			8
#define XmCR_DRAG			9
#define XmCR_ACTIVATE			10
#define XmCR_ARM			11
#define XmCR_DISARM			12
#define XmCR_MAP       			16
#define XmCR_UNMAP  			17
#define XmCR_FOCUS			18
#define XmCR_LOSING_FOCUS		19
#define XmCR_MODIFYING_TEXT_VALUE	20
#define XmCR_MOVING_INSERT_CURSOR	21
#define XmCR_EXECUTE			22
#define	XmCR_SINGLE_SELECT		23
#define	XmCR_MULTIPLE_SELECT		24
#define	XmCR_EXTENDED_SELECT		25
#define	XmCR_BROWSE_SELECT		26
#define	XmCR_DEFAULT_ACTION		27
#define XmCR_CLIPBOARD_DATA_REQUEST	28
#define XmCR_CLIPBOARD_DATA_DELETE	29
#define XmCR_CASCADING			30
#define XmCR_OK                         31
#define XmCR_CANCEL                     32
#define XmCR_APPLY                      34
#define XmCR_NO_MATCH                   35
#define XmCR_COMMAND_ENTERED            36
#define XmCR_COMMAND_CHANGED            37
#define XmCR_EXPOSE			38
#define XmCR_RESIZE			39
#define XmCR_INPUT			40



/************************************************************************
 *  Callback structures 
 ************************************************************************/

typedef struct
{
    int     reason;
    XEvent  *event;
} XmAnyCallbackStruct;

typedef struct
{
    int     reason;
    XEvent  *event;
    Window  window;
} XmDrawingAreaCallbackStruct;

typedef struct
{
    int     reason;
    XEvent  *event;
    Window  window;
} XmDrawnButtonCallbackStruct;

typedef struct
{
    int     reason;
    XEvent  *event;
    Widget  widget;
    char    *data;
    char    *callbackstruct;
} XmRowColumnCallbackStruct;

typedef struct
{
   int reason;
   XEvent * event;
   int value;
   int pixel;
} XmScrollBarCallbackStruct;

typedef struct
{
   int reason;
   XEvent * event;
   int set;
} XmToggleButtonCallbackStruct;

typedef struct
{
   int 	     reason;
   XEvent    *event;
   XmString  item;
   int       item_length;
   int       item_position;
   XmString  *selected_items;
   int       selected_item_count;
   int       selection_type;
} XmListCallbackStruct;

typedef struct
{
    int reason;
    XEvent	*event;
    XmString	value;
    int		length;
} XmSelectionBoxCallbackStruct;

typedef struct
{
    int reason;
    XEvent	*event;
    XmString	value;
    int		length;
} XmCommandCallbackStruct;

typedef struct
{
    int reason;
    XEvent	*event;
    XmString	value;
    int		length;
    XmString	mask;
    int		mask_length;
} XmFileSelectionBoxCallbackStruct;


typedef struct 
{
   int reason;
   XEvent * event;
   int value;
} XmScaleCallbackStruct;



/************************************************************************
 *  PushButton defines
 ************************************************************************/

#define XmNfillOnArm		"fillOnArm"
#define XmCFillOnArm		"FillOnArm"

#define XmNarmColor		"armColor"
#define XmCArmColor		"ArmColor"

#define XmNarmPixmap		"armPixmap"
#define XmCArmPixmap		"ArmPixmap"

#define XmNshowAsDefault		"showAsDefault"
#define XmCShowAsDefault		"ShowAsDefault"

/************************************************************************
 *  DrawnButton defines
 ************************************************************************/

#define XmNpushButtonEnabled	"pushButtonEnabled"
#define XmCPushButtonEnabled	"PushButtonEnabled"

#define XmNshadowType	"shadowType"
#define XmCShadowType	"ShadowType"
#define XmRShadowType   "ShadowType"

#define XmSHADOW_IN		7
#define XmSHADOW_OUT		8

/************************************************************************
 *  Arrow defines
 ************************************************************************/

#define XmNarrowDirection	"arrowDirection"
#define XmCArrowDirection	"ArrowDirection"
#define XmRArrowDirection	"ArrowDirection"

#define XmNactivateCallback	"activateCallback"
#define XmNhelpCallback		"helpCallback"

#define XmARROW_UP	0
#define XmARROW_DOWN	1
#define XmARROW_LEFT	2
#define XmARROW_RIGHT	3



/************************************************************************
 *  Separator defines
 ************************************************************************/

#define XmNmargin 	"margin"
#define XmRMargin	"Margin"

#define XmNseparatorType  "separatorType"
#define XmCSeparatorType  "SeparatorType"
#define XmRSeparatorType  "SeparatorType"

#define XmNO_LINE               0
#define XmSINGLE_LINE           1
#define XmDOUBLE_LINE           2
#define XmSINGLE_DASHED_LINE    3
#define XmDOUBLE_DASHED_LINE    4
#define XmSHADOW_ETCHED_IN	5
#define XmSHADOW_ETCHED_OUT	6

#define XmPIXMAP	1
#define XmSTRING	2



/************************************************************************
 *  ScrollBar resource names and #defines
 ************************************************************************/

/*  Resources for scrollbar  */

#define XmNminimum	"minimum"
#define XmCMinimum	"Minimum"

#define XmNmaximum	"maximum"
#define XmCMaximum	"Maximum"

#define XmNsliderSize	"sliderSize"
#define XmCSliderSize	"SliderSize"

#define XmNshowArrows	"showArrows"
#define XmCShowArrows	"ShowArrows"

#define XmNprocessingDirection	"processingDirection"
#define XmCProcessingDirection	"ProcessingDirection"
#define XmRProcessingDirection	"ProcessingDirection"

#define XmNincrement		"increment"
#define XmCIncrement		"Increment"
#define XmNpageIncrement	"pageIncrement"
#define XmCPageIncrement	"PageIncrement"

#define XmNinitialDelay		"initialDelay"
#define XmCInitialDelay		"InitialDelay"
#define XmNrepeatDelay		"repeatDelay"
#define XmCRepeatDelay		"RepeatDelay"

#define XmNvalueChangedCallback		"valueChangedCallback"
#define XmNincrementCallback		"incrementCallback"
#define XmNdecrementCallback		"decrementCallback"
#define XmNpageIncrementCallback	"pageIncrementCallback"
#define XmNpageDecrementCallback	"pageDecrementCallback"
#define XmNtoTopCallback		"toTopCallback"
#define XmNtoBottomCallback		"toBottomCallback"
#define XmNdragCallback			"dragCallback"


/*  Defined values for scrollbar  */

#define XmMAX_ON_TOP	0
#define XmMAX_ON_BOTTOM	1
#define XmMAX_ON_LEFT	0
#define XmMAX_ON_RIGHT	1


/************************************************************************
 *									*
 * List Widget defines							*
 *									*
 ************************************************************************/


#define XmNlistSpacing 	"listSpacing"
#define XmCListSpacing	"ListSpacing"
#define XmRListSpacing	"ListSpacing"

#define XmNlistMarginWidth 	"listMarginWidth"
#define XmCListMarginWidth	"ListMarginWidth"
#define XmRListMarginWidth	"ListMarginWidth"

#define XmNlistMarginHeight 	"listMarginHeight"
#define XmCListMarginHeight	"ListMarginHeight"
#define XmRListMarginHeight	"ListMarginHeight"

#define XmNitems 	"items"
#define XmCItems	"Items"
#define XmRItems	"Items"

#define XmNitemCount 	"itemCount"
#define XmCItemCount	"ItemCount"
#define XmRItemCount	"ItemCount"

#define XmNselectedItems 	"selectedItems"
#define XmCSelectedItems	"SelectedItems"
#define XmRSelectedItems	"SelectedItems"

#define XmNselectedItemCount 	"selectedItemCount"
#define XmCSelectedItemCount	"SelectedItemCount"
#define XmRSelectedItemCount	"SelectedItemCount"

#define XmNvisibleItemCount 	"visibleItemCount"
#define XmCVisibleItemCount	"VisibleItemCount"
#define XmRVisibleItemCount	"VisibleItemCount"

#define XmNselectionPolicy 	"selectionPolicy"
#define XmCSelectionPolicy	"SelectionPolicy"
#define XmRSelectionPolicy	"SelectionPolicy"

#define XmNlistSizePolicy 	"listSizePolicy"
#define XmCListSizePolicy	"ListSizePolicy"
#define XmRListSizePolicy	"ListSizePolicy"

#define XmNdoubleClickInterval 	"doubleClickInterval"
#define XmCDoubleClickInterval	"DoubleClickInterval"
#define XmRDoubleClickInterval	"DoubleClickInterval"

#define XmNsingleSelectionCallback 	"singleSelectionCallback"
#define XmNmultipleSelectionCallback 	"multipleSelectionCallback"
#define XmNextendedSelectionCallback 	"extendedSelectionCallback"
#define XmNbrowseSelectionCallback 	"browseSelectionCallback"
#define XmNdefaultActionCallback 	"defaultActionCallback"

#define XmNautomaticSelection	"automaticSelection"
#define XmCAutomaticSelection	"AutomaticSelection"

/****************
 *
 * Selection types
 *
 ****************/
#define	XmSINGLE_SELECT		0
#define	XmMULTIPLE_SELECT	1
#define	XmEXTENDED_SELECT	2
#define	XmBROWSE_SELECT		3

#define	XmSTATIC	0
#define	XmDYNAMIC	1

/************************************************************************
 *									*
 * Scrolled Window defines.						*
 *									*
 ************************************************************************/
#define XmNhorizontalScrollBar	"horizontalScrollBar"
#define XmCHorizontalScrollBar	"HorizontalScrollBar"

#define XmNverticalScrollBar	"verticalScrollBar"
#define XmCVerticalScrollBar	"VerticalScrollBar"

#define XmNworkWindow	"workWindow"
#define XmCWorkWindow	"WorkWindow"

#define XmNclipWindow	"clipWindow"
#define XmCClipWindow	"ClipWindow"

#define XmNscrollingPolicy	"scrollingPolicy"
#define XmCScrollingPolicy	"ScrollingPolicy"
#define XmRScrollingPolicy	"ScrollingPolicy"

#define  XmNvisualPolicy	"visualPolicy"
#define  XmCVisualPolicy	"VisualPolicy"
#define  XmRVisualPolicy	"VisualPolicy"

#define XmNscrollBarDisplayPolicy	"scrollBarDisplayPolicy"
#define XmCScrollBarDisplayPolicy	"ScrollBarDisplayPolicy"
#define XmRScrollBarDisplayPolicy	"ScrollBarDisplayPolicy"

#define XmNscrollBarPlacement	"scrollBarPlacement"
#define XmCScrollBarPlacement	"ScrollBarPlacement"
#define XmRScrollBarPlacement	"ScrollBarPlacement"

#define XmNupdateSliderSize	"updateSliderSize"
#define XmCUpdateSliderSize	"UpdateSliderSize"

#define XmNscrolledWindowMarginHeight	"scrolledWindowMarginHeight"
#define XmCScrolledWindowMarginHeight	"ScrolledWindowMarginHeight"

#define XmNscrolledWindowMarginWidth	"scrolledWindowMarginWidth"
#define XmCScrolledWindowMarginWidth	"ScrolledWindowMarginWidth"


#define XmVARIABLE	        0
#define XmCONSTANT	        1
#define XmRESIZE_IF_POSSIBLE	2

#define XmAUTOMATIC		0
#define XmAPPLICATION_DEFINED	1

/* #define	XmSTATIC	0     ** This is already defined by List ***/
#define	XmAS_NEEDED	1

#define SW_TOP		1
#define SW_BOTTOM	0
#define SW_LEFT		2
#define SW_RIGHT	0

#define XmTOP_LEFT	(SW_TOP | SW_LEFT)
#define XmBOTTOM_LEFT	(SW_BOTTOM  | SW_LEFT)
#define XmTOP_RIGHT	(SW_TOP | SW_RIGHT)
#define XmBOTTOM_RIGHT	(SW_BOTTOM  | SW_RIGHT)

/************************************************************************
 *									*
 * MainWindow Resources                                                 *
 *									*
 ************************************************************************/


#define XmNcommandWindow		"commandWindow"
#define XmCCommandWindow		"CommandWindow"
#define XmNmenuBar			"menuBar"
#define XmCMenuBar			"MenuBar"
#define XmNmainWindowMarginHeight	"mainWindowMarginHeight"
#define XmCMainWindowMarginHeight	"MainWindowMarginHeight"
#define XmNmainWindowMarginWidth	"mainWindowMarginWidth"
#define XmCMainWindowMarginWidth	"MainWindowMarginWidth"
#define XmNshowSeparator    "showSeparator"
#define XmCShowSeparator    "ShowSeparator"

/************************************************************************
 *									*
 * Text Widget defines							*
 *									*
 ************************************************************************/

#define XmNsource		"source"
#define XmCSource		"Source"

#define XmNoutputCreate		"outputCreate"
#define XmCOutputCreate		"OutputCreate"

#define XmNinputCreate		"inputCreate"
#define XmCInputCreate		"InputCreate"

#define XmNautoShowCursorPosition	"autoShowCursorPosition"
#define XmCAutoShowCursorPosition	"AutoShowCursorPosition"

#define XmNcursorPosition	"cursorPosition"
#define XmCCursorPosition	"CursorPosition"

#define XmNeditable		"editable"
#define XmCEditable		"Editable"

#define XmNmaxLength		"maxLength"
#define XmCMaxLength		"MaxLength"

#define XmNfocusCallback	 "focusCallback"
#define XmNlosingFocusCallback	 "losingFocusCallback"
#define XmNmodifyVerifyCallback  "modifyVerifyCallback"
#define XmNmotionVerifyCallback  "motionVerifyCallback"

#define XmNwordWrap		"wordWrap"
#define XmCWordWrap		"WordWrap"

#define XmNblinkRate		"blinkRate"
#define XmCBlinkRate		"BlinkRate"

#define XmNresizeWidth		"resizeWidth"
#define XmCResizeWidth		"ResizeWidth"

#define XmNresizeHeight	"resizeHeight"
#define XmCResizeHeight	"ResizeHeight"

#define XmNscrollHorizontal	"scrollHorizontal"
#define XmNscrollVertical	"scrollVertical"
#define XmCScroll		"Scroll"

#define XmNscrollLeftSide	"scrollLeftSide"
#define XmNscrollTopSide	"scrollTopSide"
#define XmCScrollSide		"ScrollSide"

#define XmNcursorPositionVisible	"cursorPositionVisible"
#define XmCCursorPositionVisible	"CursorPositionVisible"

#define XmNtoPositionCallback	"toPositionCallback"

#define XmNcolumns	"columns"
#define XmCColumns	"Columns"

#define XmNrows		"rows"
#define XmCRows		"Rows"

#define XmNselectThreshold		"selectThreshold"
#define XmCSelectThreshold		"SelectThreshold"

#define XmNselectionArrayCount		"selectionArrayCount"
#define XmCSelectionArrayCount		"SelectionArrayCount"

#define XmNpendingDelete		"pendingDelete"
#define XmCPendingDelete		"PendingDelete"

#define XmNeditMode			"editMode"
#define XmCEditMode			"EditMode"

#define XmMULTI_LINE_EDIT	0
#define XmSINGLE_LINE_EDIT	1

#define XmNtopCharacter                 "topCharacter"
#define XmCtopCharacter                 "TopCharacter"

/* functions renamed after 1.0 release due to resource name overlap */
#define XmGetTopPosition                XmGetTopCharacter
#define XmSetTopPosition                XmSetTopCharacter

/************************************************************************
 *									*
 * VPaned Widget defines						*
 *									*
 ************************************************************************/

/*  Resources for Vertical Paned Window  */

#define XmNrefigureMode		"refigureMode"

#define XmNseparatorOn		"separatorOn"
#define XmCSeparatorOn		"SeparatorOn"

#define XmNsashIndent		"sashIndent"
#define XmCSashIndent		"SashIndent"

#define XmNsashWidth		"sashWidth"
#define XmCSashWidth		"SashWidth"

#define XmNsashHeight		"sashHeight"
#define XmCSashHeight		"SashHeight"

#define XmNsashShadowThickness	"sashShadowThickness"


/* Constraint Resources for Vertical Paned Window */

#define XmNallowResize		"allowResize"
#define XmNskipAdjust		"skipAdjust"
#define XmNpaneMinimum          "paneMinimum"
#define XmNpaneMaximum          "paneMaximum"

#define XmCPaneMinimum          "PaneMinimum"
#define XmCPaneMaximum          "PaneMaximum"


/************************************************************************
 *									*
 * 	DrawingArea defines
 *									*
 ************************************************************************/

#define XmNinputCallback	"inputCallback"



/************************************************************************
 *									*
 *  DIALOG defines..  BulletinBoard and things common to its subclasses *
 *          CommandBox    MessageBox    Selection    FileSelection      *
 *									*
 ************************************************************************/

/* child type defines for Xm...GetChild() */
#define XmDIALOG_NONE	          0       /* a valid default button type */
#define XmDIALOG_APPLY_BUTTON	  1
#define XmDIALOG_CANCEL_BUTTON    2
#define XmDIALOG_DEFAULT_BUTTON   3
#define XmDIALOG_OK_BUTTON        4
#define XmDIALOG_FILTER_LABEL     5
#define XmDIALOG_FILTER_TEXT      6
#define XmDIALOG_HELP_BUTTON      7
#define XmDIALOG_LIST		  8
#define XmDIALOG_HISTORY_LIST     XmDIALOG_LIST
#define XmDIALOG_LIST_LABEL	  9
#define XmDIALOG_MESSAGE_LABEL    10
#define XmDIALOG_SELECTION_LABEL  11
#define XmDIALOG_PROMPT_LABEL     XmDIALOG_SELECTION_LABEL
#define XmDIALOG_SYMBOL_LABEL     12
#define XmDIALOG_TEXT	    	  13
#define XmDIALOG_VALUE_TEXT       XmDIALOG_TEXT
#define XmDIALOG_COMMAND_TEXT     XmDIALOG_TEXT
#define XmDIALOG_SEPARATOR    	  14
#define XmDIALOG_FILE_SELECTION	  15

/* defines for callbacks */
#define XmNokCallback             "okCallback"
#define XmNcancelCallback         "cancelCallback"
#define XmNapplyCallback	  "applyCallback"
#define XmNnoMatchCallback	  "noMatchCallback"
#define XmNcommandEnteredCallback "commandEnteredCallback"
#define XmNcommandChangedCallback "commandChangedCallback"


/* XmN defines for subwidgets */
#define XmNokLabelString         "okLabelString"
#define XmNcancelLabelString     "cancelLabelString"
#define XmNhelpLabelString       "helpLabelString"
#define XmNapplyLabelString	 "applyLabelString"
#define XmNselectionLabelString	 "selectionLabelString"
#define XmNlistLabelString	 "listLabelString"
#define XmNpromptString          "promptString"


/* XmC defines for subwidgets */
#define XmCOkLabelString	 "OkLabelString"
#define XmCCancelLabelString	 "CancelLabelString"
#define XmCHelpLabelString	 "HelpLabelString"
#define XmCApplyLabelString	 "ApplyLabelString"
#define XmCSelectionLabelString	 "SelectionLabelString"
#define XmCListLabelString	 "ListLabelString"
#define XmCPromptString          "PromptString"


#define XmNdefaultButton	"defaultButton"
#define XmNcancelButton		"cancelButton"

#define XmNbuttonFontList	"buttonFontList"
#define XmCButtonFontList	"ButtonFontList"
#define XmNlabelFontList	"labelFontList"
#define XmCLabelFontList	"LabelFontList"
#define XmNtextFontList		"textFontList"
#define XmCTextFontList		"TextFontList"

#define XmNtextTranslations	"textTranslations"

#define XmNallowOverlap		"allowOverlap"
#define XmCAllowOverlap		"AllowOverlap"

#define XmNdefaultPosition	"defaultPosition"
#define XmCDefaultPosition	"DefaultPosition"

#define XmNautoUnmanage		"autoUnmanage"
#define XmCAutoUnmanage		"AutoUnmanage"

#define XmNallowShellResize	"allowShellResize"

#define XmNdialogTitle		"dialogTitle"
#define XmCDialogTitle		"DialogTitle"

#define XmNnoResize		"noResize"
#define XmCNoResize		"NoResize"

#define XmNdialogStyle		"dialogStyle"
#define XmCDialogStyle		"DialogStyle"
#define XmRDialogStyle		"DialogStyle"

/*  dialog style defines  */
#define XmDIALOG_WORK_AREA		0
#define XmDIALOG_MODELESS		1
#define XmDIALOG_APPLICATION_MODAL	2
#define XmDIALOG_SYSTEM_MODAL		3

/************************************************************************
 * XmSelectionBox, XmFileSelectionBox and XmCommand - misc. stuff       *
 ***********************************************************************/

#define XmNmustMatch		   "mustMatch"
#define XmCMustMatch		   "MustMatch"

#define XmNlistItems		   "listItems"
#define XmNlistItemCount	   "listItemCount"
#define XmNlistVisibleItemCount	   "listVisibleItemCount"
#define XmNhistoryItems		   "historyItems"
#define XmNhistoryItemCount	   "historyItemCount"
#define XmNhistoryVisibleItemCount "historyVisibleItemCount"
#define XmNhistoryMaxItems         "historyMaxItems"
#define XmCMaxItems                "MaxItems"

#define XmNtextAccelerators	"textAccelerators"
#define XmCTextValue		"TextValue"          /* used in text widget */
#define XmNtextValue		"textValue"          /* used in text widget */
#define XmCTextString	        "TextString"
#define XmNtextString	        "textString"
#define XmNtextColumns		"textColumns"
#define XmNcommand		"command"

/* defines for selection dialog type */
#define XmDIALOG_PROMPT       7
#define XmDIALOG_SELECTION    8
#define XmDIALOG_COMMAND      9



/************************************************************************
 *  XmMessageBox           stuff not common to other dialogs            *
 ***********************************************************************/

#define XmNdefaultButtonType     "defaultButtonType"
#define XmCDefaultButtonType     "DefaultButtonType"
#define XmRDefaultButtonType     "DefaultButtonType"

#define XmNminimizeButtons       "minimizeButtons"
#define XmCMinimizeButtons       "MinimizeButtons"

#define XmNmessageString         "messageString"
#define XmNmessageAlignment      "messageAlignment"

#define XmNsymbolPixmap          "symbolPixmap"

#define XmNdialogType            "dialogType"
#define XmCDialogType            "DialogType"
#define XmRDialogType            "DialogType"

/* defines for dialog type */
#define XmDIALOG_ERROR        1
#define XmDIALOG_INFORMATION  2
#define XmDIALOG_MESSAGE      3
#define XmDIALOG_QUESTION     4
#define XmDIALOG_WARNING      5
#define XmDIALOG_WORKING      6


/************************************************************************
 *	Resource names used by XmScale
 ************************************************************************/

#define XmNscaleWidth		"scaleWidth"
#define XmCScaleWidth		"ScaleWidth"

#define XmNscaleHeight		"scaleHeight"
#define XmCScaleHeight		"ScaleHeight"

#define XmNdecimalPoints	"decimalPoints"
#define XmCDecimalPoints	"DecimalPoints"

#define XmNshowValue		"showValue"
#define XmCShowValue		"ShowValue"

#define XmNtitleString		"titleString"
#define XmCTitleString		"TitleString"


/************************************************************************
 *
 *  extern for the string to unit type converter.
 *
 ************************************************************************/

extern void XmCvtStringToUnitType();
extern void XmSetFontUnit();


/****************
 *
 *  Public functions defined in XmString.c
 *
 ****************/

extern XmString 		XmStringCreate ();
extern XmString 		XmStringDirectionCreate ();
extern XmString 		XmStringSeparatorCreate ();
extern XmString 		XmStringSegmentCreate ();
extern XmString 		XmStringLtoRCreate ();
extern XmString 		XmStringCreateLtoR ();

extern Boolean  		XmStringInitContext ();
extern void			XmStringFreeContext ();
extern XmStringComponentType	XmStringGetNextComponent ();
extern XmStringComponentType	XmStringPeekNextComponent ();
extern Boolean			XmStringGetNextSegment ();
extern Boolean			XmStringGetLtoR ();

extern XmFontList		XmFontListCreate ();
extern XmFontList		XmStringCreateFontList ();
extern void 			XmFontListFree ();
extern XmFontList		XmFontListAdd ();
extern XmFontList 		XmFontListCopy ();

extern XmString		XmStringConcat ();
extern XmString		XmStringNConcat ();
extern XmString		XmStringCopy ();
extern XmString		XmStringNCopy ();
extern Boolean			XmStringCompare ();
extern Boolean			XmStringByteCompare ();
extern int			XmStringLength ();
extern Boolean			XmStringEmpty ();

extern void 			XmStringFree ();

extern XmString		_XmStringCreateExternal ();

extern Dimension		XmStringWidth ();
extern Dimension		XmStringHeight ();
extern Dimension		XmStringBaseline ();
extern void			XmStringExtent ();
extern int			XmStringLineCount ();

extern void			XmStringDraw ();
extern void			XmStringDrawImage ();
extern void			XmStringDrawUnderline ();

/***********************************************************************

  The following workarounds have been suggested by licensees and have
  not been thoroughly tested. 

***********************************************************************/
#ifdef NO_REGEX
/* re_comp returns 0 for success.  In this case, we want regcmp to
 * return a pointer to some validly malloced storage.  If re_comp
 * fails, it returns a non-zero pointer then we want to return 0.
 */
#define regcmp(a,b) (re_comp(a) ? 0 : malloc(1))
#define regex(a,b) re_exec(b)
#endif

#ifdef NO_GETCWD
static char *getcwd(buf,size)
char *buf;
int size;
{
extern char *malloc();
if (buf==(char*) NULL)
        buf=(char *) malloc (size);
return (char *)getwd(buf);
}
#endif

#ifdef NO_VFORK
#define vfork fork
#endif

#endif /* _Xm_h */
 /* DON'T ADD STUFF AFTER THIS #endif */
