#ifndef	EXEC_TYPES_H
#include <exec/types.h>
#endif

#ifndef	GRAPHICS_TEXT_H
#include <graphics/text.h>
#endif

#ifndef RCT_FILER
#include <rct/rctoldfilerdefs.h>
#endif

#ifndef RCT_DEFS
#define RCT_DEFS

/* ********************************************************************* */
/* Tag-Item definitionen 	                                             * */
/* ********************************************************************* */

/* Tags für R_InitAppl */

#define RIA_Version 					TAG_USER + 1L  /* Versionsnummer der beim Programmieren verwendeten Library */
#define RIA_AutoRenderColor 	TAG_USER + 2L  /* Automatische Farbvergabe für alle Border */
#define RIA_SameIDCMP					TAG_USER + 3L	 /* Alle Fenster mit ein und dem selben Port */
#define RIA_GloblPort					TAG_USER + 4L	 /* */
#define RIA_NoShortCuts				TAG_USER + 5L	 /* */
#define RIA_Debug							TAG_USER + 6L	 /* */
#define RIA_UseAslFiler				TAG_USER + 7L	 /* */
#define RIA_UseAslFontReq			TAG_USER + 8L	 /* */
#define RIA_UseAslScrReq			TAG_USER + 9L	 /* */
#define RIA_ChangeFlags				TAG_USER + 10L /* Die zuvor eingestellten Flags werden geändert. */
																						 /* Dient Hauptsächlich zum Ein oder Ausschalten der ASL Requester */
																						 /* In ti_Data muß die ApplAddr angegeben werden */


/* R_ShowScreen Tags */

#define RSA_ScreenID				(TAG_USER + 1L)     				/* reserved */
#define RSA_CloneWB					(TAG_USER + 2L)
#define RSA_DisplayIDStruct	(TAG_USER + 3L)
#define RSA_Dummy 					(TAG_USER + 32)
#define RSA_Left 						(RSA_Dummy + 0x0001)
#define RSA_Top 						(RSA_Dummy + 0x0002)
#define RSA_Width 					(RSA_Dummy + 0x0003)
#define RSA_Height 					(RSA_Dummy + 0x0004)
#define RSA_Depth 					(RSA_Dummy + 0x0005)
#define RSA_DetailPen 			(RSA_Dummy + 0x0006)
#define RSA_BlockPen 				(RSA_Dummy + 0x0007)
#define RSA_Title 					(RSA_Dummy + 0x0008)
#define RSA_Colors 					(RSA_Dummy + 0x0009)
#define RSA_ErrorCode 			(RSA_Dummy + 0x000A)
#define RSA_Font 						(RSA_Dummy + 0x000B)
#define RSA_SysFont 				(RSA_Dummy + 0x000C)
#define RSA_Type 						(RSA_Dummy + 0x000D)
#define RSA_BitMap 					(RSA_Dummy + 0x000E)
#define RSA_PubName 				(RSA_Dummy + 0x000F)
#define RSA_PubSig 					(RSA_Dummy + 0x0010)
#define RSA_PubTask 				(RSA_Dummy + 0x0011)
#define RSA_DisplayID 			(RSA_Dummy + 0x0012)
#define RSA_DClip 					(RSA_Dummy + 0x0013)
#define RSA_Overscan 				(RSA_Dummy + 0x0014)
#define RSA_ShowTitle 			(RSA_Dummy + 0x0016)
#define RSA_Behind 					(RSA_Dummy + 0x0017)
#define RSA_Quiet 					(RSA_Dummy + 0x0018)
#define RSA_AutoScroll 			(RSA_Dummy + 0x0019)
#define RSA_Pens 						(RSA_Dummy + 0x001A)
#define RSA_FullPalette 		(RSA_Dummy + 0x001B)
#define RSA_LikeWorkbench		(TAG_USER + 2L)


/* R_ShowWindow Tags */

#define RWA_WindowID  			(TAG_USER + 1L)
#define RWA_SCRCPY  				(TAG_USER + 2L)
#define RWA_IDCMPort				(TAG_USER + 3L)
#define RWA_Dummy 					(TAG_USER + 99) 
#define RWA_Left 						(RWA_Dummy + 0x01)
#define RWA_Top 						(RWA_Dummy + 0x02)
#define RWA_Width 					(RWA_Dummy + 0x03)
#define RWA_Height 					(RWA_Dummy + 0x04)
#define RWA_DetailPen 			(RWA_Dummy + 0x05)
#define RWA_BlockPen 				(RWA_Dummy + 0x06)
#define RWA_IDCMP 					(RWA_Dummy + 0x07)
#define RWA_Flags 					(RWA_Dummy + 0x08)
#define RWA_Gadgets 				(RWA_Dummy + 0x09)
#define RWA_Checkmark 			(RWA_Dummy + 0x0A)
#define RWA_Title 					(RWA_Dummy + 0x0B)
#define RWA_ScreenTitle 		(RWA_Dummy + 0x0C)
#define RWA_CustomScreen 		(RWA_Dummy + 0x0D)
#define RWA_SuperBitMap 		(RWA_Dummy + 0x0E)
#define RWA_MinWidth 				(RWA_Dummy + 0x0F)
#define RWA_MinHeight 			(RWA_Dummy + 0x10)
#define RWA_MaxWidth 				(RWA_Dummy + 0x11)
#define RWA_MaxHeight 			(RWA_Dummy + 0x12)
#define RWA_InnerWidth 			(RWA_Dummy + 0x13)
#define RWA_InnerHeight 		(RWA_Dummy + 0x14)
#define RWA_PubScreenName 	(RWA_Dummy + 0x15)
#define RWA_PubScreen 			(RWA_Dummy + 0x16)
#define RWA_PubScreenFallBack (RWA_Dummy + 0x17)
#define RWA_Zoom 						(RWA_Dummy + 0x1A)
#define RWA_BackFill 				(RWA_Dummy + 0x1C)
#define RWA_SizeGadget 			(RWA_Dummy + 0x1E)
#define RWA_DragBar 				(RWA_Dummy + 0x1F)
#define RWA_DepthGadget 		(RWA_Dummy + 0x20)
#define RWA_CloseGadget 		(RWA_Dummy + 0x21)
#define RWA_Backdrop 				(RWA_Dummy + 0x22)
#define RWA_ReportMouse 		(RWA_Dummy + 0x23)
#define RWA_NoCareRefresh 	(RWA_Dummy + 0x24)
#define RWA_Borderless 			(RWA_Dummy + 0x25)
#define RWA_Activate 				(RWA_Dummy + 0x26)
#define RWA_RMBTrap 				(RWA_Dummy + 0x27)
#define RWA_WBenchWindow 		(RWA_Dummy + 0x28) 
#define RWA_SimpleRefresh 	(RWA_Dummy + 0x29)
#define RWA_SmartRefresh 		(RWA_Dummy + 0x2A)
#define RWA_SizeBRight 			(RWA_Dummy + 0x2B)
#define RWA_SizeBBottom 		(RWA_Dummy + 0x2C)
#define RWA_AutoAdjust 			(RWA_Dummy + 0x2D)
#define RWA_GimmeZeroZero 	(RWA_Dummy + 0x2E)

/* R_ChangeAccess Tags */

#define Rres_Handle			(TAG_USER + 2L)	/* extresload Handle */

/* R_ResLoad Tags */

#define Rres_Name				(TAG_USER + 1L)	/* Übergabe pfad */
#define Rres_Address		(TAG_USER + 2L)	/* Übergabe Adresse */
#define Rres_LocalPath	(TAG_USER + 4L) /* Pfad für alternative IntuiTextstrings */
#define Rres_LocalFlags	(TAG_USER + 8L) /* Flags für altern. Intuitextstrings */

/* Extmenudraw */

#define RMD_Justify				(TAG_USER + 1L)	/* Ohne TextAttribute */
#define RMD_DontSetStrip	(TAG_USER + 2L)
#define RMD_ScreenAddr		(TAG_USER + 3L)

/* R_Create Types */

#define R_Border	   0x10		/* Border */
#define R_Text			 0x20		/* IntuiText */
#define R_Gadget 	 0x40 		/* Gadget */
#define R_MenuItem  0x60		/* MenuItem */
#define R_Menu			 0x80		/* Menu */
#define R_Request   0x100		/* Requester */
#define R_FileReq		0x200		/* FileRequester */

/* R_Create Tags */

#define	R_New_Res					(TAG_USER + 8L)		/* Resource neu allocieren */
#define R_RetHandle				(TAG_USER + 9L)		/* Neues Handle für das Objekt */

#define R_Dup_Res		 			(TAG_USER + 16L)  /* Resource duplizieren */
#define R_Ncpy_TxtAttr		(TAG_USER + 32)	  /* ohne TextAttribute */
#define R_Ncpy_TxtAttrStr	(TAG_USER + 64)	  /* ohne TextAttributstrings (nur, wenn zuvor TextAttribute kopiert wurden) */
#define R_Ncpy_IntTxt			(TAG_USER + 128)  /* ohne IntuiTexte */
#define R_Ncpy_IntTxtStr	(TAG_USER + 256)  /* ohne IntuiTextStrings (nur, wenn zuvor IntuiTexte kopiert wurden) */
#define R_Ncpy_Brd				(TAG_USER + 512)  /* ohne Border */
#define R_Ncpy_BrdData		(TAG_USER + 1024) /* ohne BorderDaten (nur, wenn zuvor Border kopiert wurden) */
#define R_Ncpy_Img				(TAG_USER + 2048) /* ohne Images */
#define R_Ncpy_ImgData		(TAG_USER + 4096) /* ohne ImageDaten (nur, wenn zuvor Images kopiert wurden) */

/* R_FormAlert Tags */

#define RFA_DefaultID 					(TAG_USER + 1L)
#define RFA_AlertText 					(TAG_USER + 2L)
#define RFA_GadgetText 					(TAG_USER + 3L)
#define RFA_Timeout 						(TAG_USER + 4L)
#define RFA_DefaultTimeout 			(TAG_USER + 5L)
#define RFA_BeginSoundSample 		(TAG_USER + 6L)
#define RFA_EndSoundSample 			(TAG_USER + 7L)
#define RFA_TimeoutSoundSample	(TAG_USER + 8L)
#define RFA_BeginSpeek 					(TAG_USER + 9L)
#define RFA_EndSpeek 						(TAG_USER + 10L)
#define RFA_OnlySpeek						(TAG_USER + 11L)
#define RFA_Human 							(TAG_USER + 12L)
#define RFA_WindowFlags 				(TAG_USER + 13L)
#define RFA_CloseID	 						(TAG_USER + 14L)
#define RFA_Image 							(TAG_USER + 15L)
#define RFA_ImageData 					(TAG_USER + 16L)
#define RFA_ImageToggle 				(TAG_USER + 17L)
#define RFA_Window 							(TAG_USER + 18L)
#define RFA_Center 							(TAG_USER + 19L)
#define RFA_WindowDrag					(TAG_USER + 20L)
#define RFA_WindowDepth					(TAG_USER + 21L)
#define RFA_WindowClose					(TAG_USER + 22L)
#define RFA_OnlySoundSample			(TAG_USER + 23L)


/* Tags für R_Filer */

#define RF_Dummy					(TAG_USER + 0x80000)
#define RF_Handle					(TAG_USER + 1)
#define RF_OverWriteCheckMsg	(TAG_USER + 2) 
#define RF_FileReqAdr			(TAG_USER + 3)
#define RF_Window					(RF_Dummy + 2)
#define RF_PubScreenName	(RF_Dummy + 41)
#define RF_Screen					(RF_Dummy + 40)
#define RF_PrivateIDCMP		(RF_Dummy + 42)
#define RF_IntuiMsgFunc		(RF_Dummy + 70)
#define RF_SleepWindow		(RF_Dummy + 43)
#define RF_UserData				(RF_Dummy + 52)
#define RF_TextAttr				(RF_Dummy + 51)
#define RF_Locale					(RF_Dummy + 50)
#define RF_TitleText			(RF_Dummy + 1)
#define RF_PositivText		(RF_Dummy + 18)
#define RF_NegativText		(RF_Dummy + 19)
#define RF_InitialLeftEdge (RF_Dummy + 3)
#define RF_InitialTopEdge (RF_Dummy + 4)
#define RF_InitialWidth		(RF_Dummy + 5)
#define RF_InitialHeight	(RF_Dummy + 6)
#define RF_InitialFile		(RF_Dummy + 8)
#define RF_InitialDrawer	(RF_Dummy + 9)
#define RF_InitialPattern (RF_Dummy + 10)
#define RF_Flags1					(RF_Dummy + 20)
#define RF_Flags2					(RF_Dummy + 22)
#define RF_DoSaveMode			(RF_Dummy + 44)
#define RF_DoMultiSelect	(RF_Dummy + 45)
#define RF_DoPatterns			(RF_Dummy + 46)
#define RF_DrawersOnly		(RF_Dummy + 47)
#define RF_FilterFunc			(RF_Dummy + 49)
#define RF_RejectIcon			(RF_Dummy + 60)
#define RF_RejectPattern	(RF_Dummy + 61)
#define RF_AcceptPattern	(RF_Dummy + 62)
#define RF_FilterDrawers	(RF_Dummy + 63)
#define RF_HookFunc				(RF_Dummy +  7)

/* Flag bits for the RF_Flags1 tag */
#define	FRB_FILTERFUNC	   7
#define	FRB_INTUIFUNC	   6
#define	FRB_DOSAVEMODE	   5
#define	FRB_PRIVATEIDCMP   4
#define FRB_DOMULTISELECT  3
#define	FRB_DOPATTERNS	   0

#define	FRF_FILTERFUNC	   (1L << FRB_FILTERFUNC)
#define	FRF_INTUIFUNC	   (1L << FRB_INTUIFUNC)
#define	FRF_DOSAVEMODE	   (1L << FRB_DOSAVEMODE)
#define	FRF_PRIVATEIDCMP   (1L << FRB_PRIVATEIDCMP)
#define	FRF_DOMULTISELECT  (1L << FRB_DOMULTISELECT)
#define	FRF_DOPATTERNS	   (1L << FRB_DOPATTERNS)

/* Flag bits for the RF_Flags2 tag */
#define	FRB_DRAWERSONLY    0
#define	FRB_FILTERDRAWERS  1
#define	FRB_REJECTICONS    2
#define FRB_OVERWRITECHECKMSG 7

#define	FRF_DRAWERSONLY    (1L << FRB_DRAWERSONLY)
#define	FRF_FILTERDRAWERS  (1L << FRB_FILTERDRAWERS)
#define	FRF_REJECTICONS    (1L << FRB_REJECTICONS)
#define FRF_OVERWRITECHECKMSG (1L << FRB_OVERWRITECHECKMSG)

/* Die Filer-Requester Struktur 				*/
/* Die Member dürfen nur gelesen werden */

struct R_FileRequester
{
    UBYTE	  			fr_Reserved0[4];
    STRPTR	  		fr_File;	      		/* Inhalt des Datei-Gadget beim Beenden */
    STRPTR	  		fr_Drawer;	      	/* Inhalt des Drawer-Gadget beim Beenden */
    UBYTE	  			fr_Reserved1[10];
    WORD	  			fr_LeftEdge;	      /* Koordinaten des Requester beim Beenden */
    WORD	  			fr_TopEdge;
    WORD	  			fr_Width;
    WORD	  			fr_Height;
    UBYTE	  			fr_Reserved2[2];
    LONG	  			fr_NumArgs;	      	/* Anzahl der Selektierten Dateien */
    struct WBArg 	*fr_ArgList;	      /* Die Liste der Selektierten Dateien */
    APTR	  			fr_UserData;	      /* Für eigenen Daten */
    UBYTE	  			fr_Reserved3[8];
    STRPTR	  		fr_Pattern;	      	/* Inhalt des Pattern-Gadget beim Beenden */
};


/* Tags für R_ModeIDReq */

#define RSM_InitialDisplayID			(RF_Dummy + 100L)
#define RSM_DoWidth								(RF_Dummy + 109L)
#define RSM_InitialDisplayWidth		(RF_Dummy + 101L)
#define RSM_MinWidth							(RF_Dummy + 116L)
#define RSM_MaxWidth							(RF_Dummy + 117L)
#define RSM_DoHeight							(RF_Dummy + 110L)
#define RSM_InitialDisplayHeight	(RF_Dummy + 102L)
#define RSM_MinHeight							(RF_Dummy + 118L)
#define RSM_MaxHeight							(RF_Dummy + 119L)
#define RSM_DoDepth								(RF_Dummy + 111L)
#define RSM_InitialDisplayDepth		(RF_Dummy + 103L)
#define RSM_MinDepth							(RF_Dummy + 120L)
#define RSM_MaxDepth							(RF_Dummy + 121L)
#define RSM_DoOverScanType				(RF_Dummy + 112L)
#define RSM_InitialOverScanType		(RF_Dummy + 104L)
#define RSM_DoAutoScroll					(RF_Dummy + 113L)
#define RSM_InitialAutoScroll			(RF_Dummy + 105L)
#define RSM_InitialLeftEdge				(RF_Dummy + 107L)
#define RSM_InitialTopEdge				(RF_Dummy + 108L)
#define RSM_UseOldValues					(TAG_USER + 1L)

/* Der Screen Mode Requester */

struct R_ScrModeReq
{
	ULONG rs_DisplayID;			/* Display Mode ID											*/
	ULONG	rs_DisplayWidth;	/* Display Weite in Pixel								*/
	ULONG rs_DisplayHeight;	/* Display Höhe in Pixel								*/
	ULONG rs_DisplayDepth;	/* Anzahl der BitPlanes für das Display	*/
	ULONG rs_Overscantype;	/* Overscantyp für das Display					*/
	BOOL	rs_AutoScroll;		/* Ist Autoscroll angeschaltet					*/
	ULONG rs_BitMapWidth;		/* Zum Erzeugen einer eigenen Bitmap		*/
	ULONG rs_BitMapHeight;
	WORD	rs_LeftEdge;			/* Die System-Requesterkoordinaten 			*/
	WORD	rs_TopEdge;
	WORD	rs_Width;
	WORD	rs_Height;
	BOOL	rs_InfoOpend;			/* Soll ein Info Fenster beim Beenden angezeigt werden */
	WORD	rs_InfoLeftEdge;
	WORD	rs_InfoTopEdge;
	WORD	rs_InfoWidth;
	WORD	rs_InfoHeight;
	APTR	rs_UserData;			/* Für eigene Daten 										*/
};

/* Font requester tag values, used by AllocAslRequest() and AslRequest() */

/* Window control */
#define RFO_Window	      	RF_Dummy+2	 /* Parent window		     */
#define RFO_Screen	      	RF_Dummy+40  /* Screen to open on if no window   */
#define RFO_PubScreenName   RF_Dummy+41  /* Name of public screen	     */
#define RFO_PrivateIDCMP    RF_Dummy+42  /* Allocate private IDCMP?	     */
#define RFO_IntuiMsgFunc    RF_Dummy+70  /* Function to handle IntuiMessages */
#define RFO_SleepWindow     RF_Dummy+43  /* Block input in ASLFO_Window?     */
#define RFO_UserData	      RF_Dummy+52  /* What to put in fo_UserData	     */

/* Text display */
#define RFO_TextAttr	      RF_Dummy+51  /* Text font to use for gadget text */
#define RFO_Locale	      	RF_Dummy+50  /* Locale ASL should use for text   */
#define RFO_TitleText       RF_Dummy+1	 /* Title of requester		     */
#define RFO_PositiveText    RF_Dummy+18  /* Positive gadget text	     */
#define RFO_NegativeText    RF_Dummy+19  /* Negative gadget text	     */

/* Initial settings */
#define RFO_InitialLeftEdge RF_Dummy+3	 /* Initial requester coordinates    */
#define RFO_InitialTopEdge  RF_Dummy+4
#define RFO_InitialWidth    RF_Dummy+5	 /* Initial requester dimensions     */
#define RFO_InitialHeight   RF_Dummy+6
#define RFO_InitialName     RF_Dummy+10  /* Initial contents of Name gadget  */
#define RFO_InitialSize     RF_Dummy+11  /* Initial contents of Size gadget  */
#define RFO_InitialStyle    RF_Dummy+12  /* Initial font style		     */
#define RFO_InitialFlags    RF_Dummy+13  /* Initial font flags for TextAttr  */
#define RFO_InitialFrontPen RF_Dummy+14  /* Initial front pen		     */
#define RFO_InitialBackPen  RF_Dummy+15  /* Initial back pen		     */
#define RFO_InitialDrawMode RF_Dummy+59  /* Initial draw mode		     */

/* Options */
#define RFO_Flags	      		RF_Dummy+20  /* Option flags		     */
#define RFO_DoFrontPen      RF_Dummy+44  /* Display Front color selector?    */
#define RFO_DoBackPen       RF_Dummy+45  /* Display Back color selector?     */
#define RFO_DoStyle	     		RF_Dummy+46  /* Display Style checkboxes?	     */
#define RFO_DoDrawMode      RF_Dummy+47  /* Display DrawMode cycle gadget?   */

/* Filtering */
#define RFO_FixedWidthOnly  RF_Dummy+48  /* Only allow fixed-width fonts?    */
#define RFO_MinHeight       RF_Dummy+16  /* Minimum font height to display   */
#define RFO_MaxHeight       RF_Dummy+17  /* Maximum font height to display   */
#define RFO_FilterFunc      RF_Dummy+49  /* Function to filter fonts	     */
#define	RFO_HookFunc	      RF_Dummy+7	 /* Combined callback function	     */

/* Custom additions */
#define	RFO_ModeList	      RF_Dummy+21	 /* Substitute list for drawmodes    */

/* Flag bits for RFO_Flags tag */
#define	FOB_DOFRONTPEN	   	0
#define	FOB_DOBACKPEN	   		1
#define	FOB_DOSTYLE	   			2
#define	FOB_DODRAWMODE	   	3
#define	FOB_FIXEDWIDTHONLY 	4
#define	FOB_PRIVATEIDCMP   	5
#define	FOB_INTUIFUNC	   		6
#define	FOB_FILTERFUNC	   	7

#define	FOF_DOFRONTPEN	   	(1L << FOB_DOFRONTPEN)
#define	FOF_DOBACKPEN	   		(1L << FOB_DOBACKPEN)
#define	FOF_DOSTYLE	   			(1L << FOB_DOSTYLE)
#define	FOF_DODRAWMODE	   	(1L << FOB_DODRAWMODE)
#define	FOF_FIXEDWIDTHONLY 	(1L << FOB_FIXEDWIDTHONLY)
#define	FOF_PRIVATEIDCMP   	(1L << FOB_PRIVATEIDCMP)
#define	FOF_INTUIFUNC	   		(1L << FOB_INTUIFUNC)
#define	FOF_FILTERFUNC	   	(1L << FOB_FILTERFUNC)

/* Die Fontrequester Struktur 					*/
/* die Member dürfen nur gelesen werden */

struct R_FontRequester
{
    UBYTE	     fo_Reserved0[8];
    struct TextAttr  fo_Attr;		/* gelieferte TextAttribut     */
    UBYTE	     fo_FrontPen;			/* gelieferte FrontPen Nummer  */
    UBYTE	     fo_BackPen;			/* gelieferte	BackPen Nummer   */
    UBYTE	     fo_DrawMode;			/* gelieferter Zeichenmodus    */
    UBYTE	     fo_Reserved1;
    APTR	     fo_UserData;			/* Für eigenen Daten */
    WORD	     fo_LeftEdge;			/* Koordinaten des Requesters beim Beenden */
    WORD	     fo_TopEdge;
    WORD	     fo_Width;
    WORD	     fo_Height;
    struct TTextAttr fo_TAttr;	/* gelieferte TTextAttr		    */
};


enum RGETREQSTRUCT
{
	GRS_OLDERREQUEST,
	GRS_LEFTEDGE,
	GRS_TOPEDGE,
	GRS_WIDTH,
	GRS_HEIGHT,
	GRS_RELLEFT,
	GRS_RELTOP,
	GRS_REQGADGET,
	GRS_REQBORDER,
	GRS_REQTEXT,
	GRS_FLAGS,
	GRS_BACKFILL,
	GRS_REQLAYER,
	GRS_IMAGEBMAP,
	GRS_WINDOW
};

enum RSETREQSTRUCT
{
	SRS_LEFTEDGE = 1,
	SRS_TOPEDGE,
	SRS_WIDTH,
	SRS_HEIGHT,
	SRS_RELLEFT,
	SRS_RELTOP,
	SRS_FLAGS,
	SRS_BACKFILL
};

enum RGETGADSTRUCT
{
	GGS_STRUCT,
	GGS_NEXTGADGET,
	GGS_LEFTEDGE,
	GGS_TOPEDGE,
	GGS_WIDTH,
	GGS_HEIGHT,
	GGS_FLAGS,
	GGS_ACTIVATION,
	GGS_GADGETTYPE,
	GGS_GADGETRENDER,
	GGS_SELECTRENDER,
	GGS_GADGETTEXT,
	GGS_MUTUALEXCLUDE,
	GGS_SPECIALINFO,
	GGS_GADGETID,
	GGS_USERDATA
};

enum RSETGADSTRUCT
{
	SGS_LEFTEDGE = 1,
	SGS_TOPEDGE,
	SGS_WIDTH,
	SGS_HEIGHT
};

enum RGETPROPGADSTRUCT
{
	GPGS_STRUCT,
	GPGS_FLAGS,
	GPGS_HORIZPOT,
	GPGS_VERTPOT,
	GPGS_HORIZBODY,
	GPGS_VERTBODY,
	GPGS_CWIDTH,
	GPGS_HEIGHT,
	GPGS_HPOTRES,
	GPGS_VPOTRES,
	GPGS_LEFTBORDER,
	GPGS_TOPBORDER
};

enum RSETPROPGADSTRUCT
{
	SPGS_FLAGS = 1,
	SPGS_HORIZPOT,
	SPGS_VERTPOT,
	SPGS_HORIZBODY,
	SPGS_VERTBODY
};

enum SETMENUITEMSTRUCT
{
	SMIS_LEFTEDGE = 1,
	SMIS_TOPEDGE,
	SMIS_WIDTH,
	SMIS_HEIGHT,
	SMIS_FLAGS,
	SMIS_MUTUALEXCLUDE,
	SMIS_COMMAND,
	SMIS_NEXTSELECT
};

enum GETMENUITEMSTRUCT
{
	GMIS_STRUCT,
	GMIS_NEXTITEM,
	GMIS_LEFTEDGE,
	GMIS_TOPEDGE,
	GMIS_WIDTH,
	GMIS_HEIGHT,
	GMIS_FLAGS,
	GMIS_MUTUALEXCLUDE,
	GMIS_ITEMFILL,
	GMIS_SELECTFILL,
	GMIS_COMMAND,
	GMIS_SUBITEM,
	GMIS_NEXTSELECT
};

enum GETMENUSUBSTRUCT
{
	GMSS_STRUCT,
	GMSS_NEXTITEM,
	GMSS_LEFTEDGE,
	GMSS_TOPEDGE,
	GMSS_WIDTH,
	GMSS_HEIGHT,
	GMSS_FLAGS,
	GMSS_MUTUALEXCLUDE,
	GMSS_ITEMFILL,
	GMSS_SELECTFILL,
	GMSS_COMMAND,
	GMSS_NEXTSELECT
};

enum ErrDefs
{
	RLOAD_NOPARMS,			/*  0 */
	RLOAD_NOMEM1,				/*  1 */
	RLOAD_NOFILE,				/*  2 */
	RLOAD_READERR1,			/*  3 */
	RLOAD_NORES,				/*  4 */
	RLOAD_READERR2,			/*  5 */
	RLOAD_NOMEM2,				/*  6 */
	RLOAD_NOCHIP1,			/*  7 */
	RLOAD_READERR3,			/*  8 */
	RLOAD_NOSTRMEM,			/*  9 */
	RLOAD_EXTFNTERR,		/* 10 */
	R_NOTAGADR,					/* 11 */
	R_NOAPPLBASE,				/* 12 */
	RXLOAD_NOMEM1,			/* 13 */
	RXLOAD_FAILED,			/* 14 */
	RFREE_ERR,					/* 15 */
	RADDR_IDOVER,				/* 16 */
	RCHANGE_NOADR,			/* 17 */
	RDRAW_NOREQOP,			/* 18 */
	RDRAW_NOLISTMEM,		/* 19 */
	REND_NOLISTOBJ,			/* 20 */
	RDRAWW_REQTOBIG,		/* 21 */
	RDRAWW_NOWINMEM,		/* 22 */
	RDRAWW_NOWINOP,			/* 23 */
	RDRAWW_NOREQOP,			/* 24 */
	ROPSC_NOMEM,				/* 25 */
	ROPSC_NOSCR,				/* 26 */
	ROPXSC_NOMEM,				/* 27 */
	ROPXSC_NOSCR,				/* 28 */
	RREMSC_UNKNOWN,			/* 29 */
	RREMSC_WINUNKNOWN,	/* 30 */
	RREMSC_NOSCR,				/* 31 */
	RSWIN_NOMEM,				/* 32 */
	RSWIN_NOWINOP,			/* 33 */
	RREMW_WINUNKNOWN,		/* 34 */
	RFILER_TOHEIGHT,		/* 35 */
	RFILER_WINERR,			/* 36 */
	RFILER_NOMEM1,			/* 37 */
	RFILER_NOMEM2,			/* 38 */
	RFILER_NOSYSFNT,		/* 39 */
	RSCMD_NOWINDOW,			/* 40 */
	RSCMD_NOMEM,				/* 41 */
	RDEST_NOOBJ,				/* 42 */
};

/* MetaClasses */

enum MetaClasses
{
	R_NOMsg,
	R_KeyMsg
};

struct R_IMsg
{
struct IntuiMessage *imsg;
ULONG MetaClass;
ULONG Class;
SHORT Code;
SHORT SubCode;
APTR  RAddress;
};

#endif
