#ifndef _Convert_h
#define _Convert_h

extern void _XtConvertInitialize();

/****************************************************************
 *
 * Resource Conversions
 *
 ****************************************************************/

extern void XtStringConversionWarning(String, String);

typedef void (*XtConverter)(
    XrmValue *, Cardinal *, XrmValue *, XrmValue *);

typedef enum {
/* address mode     	parameter representation    */
/* ------------     	------------------------    */
    XtAddress,      	/* address		    */
    XtBaseOffset,   	/* offset		    */
    XtImmediate,    	/* constant		    */
    XtResourceString,	/* resource name string     */
    XtResourceQuark	/* resource name quark      */
} XtAddressMode;

class XtConvertArgRec;
typedef XtConvertArgRec *XtConvertArgList;
class XtConvertArgRec {
    XtAddressMode   address_mode;
    caddr_t	    address_id;
    Cardinal	    size;
};

extern XtConvertArgRec colorConvertArgs[];
extern XtConvertArgRec screenConvertArg[];

#ifdef R3_INTRINSICS
extern void XtAppAddConverter(
    XtAppContext, String, String, 
    XtConverter, XtConvertArgList, Cardinal);
#endif R3_INTRINSICS

extern void XtAddConverter(
    String, 
    String,
    XtConverter,
    XtConvertArgList, 
    Cardinal);

extern void XtConvert(
    Widget, String, XrmValue *, String, XrmValue *);


extern void XtDirectConvert(
    XtConverter, XrmValuePtr, Cardinal, XrmValuePtr, XrmValue *);


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