#include <exec/types.h>
#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	/* */

/* 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 */

/* R_Create Tags */

#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_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)


/* 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 										*/
};

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,
	RLOAD_NOMEM1,
	RLOAD_NOFILE,
	RLOAD_READERR1,
	RLOAD_NORES,
	RLOAD_READERR2,
	RLOAD_NOMEM2,
	RLOAD_NOCHIP1,
	RLOAD_READERR3,
	RLOAD_NOSTRMEM,
	RLOAD_EXTFNTERR,
	R_NOTAGADR,
	R_NOAPPLBASE,
	RXLOAD_NOMEM1,
	RXLOAD_FAILED,
	RFREE_ERR,
	RADDR_IDOVER,
	RCHANGE_NOADR,
	RDRAW_NOREQOP,
	RDRAW_NOLISTMEM,
	REND_NOLISTOBJ,
	RDRAWW_REQTOBIG,
	RDRAWW_NOWINMEM,
	RDRAWW_NOWINOP,
	RDRAWW_NOREQOP,
	ROPSC_NOMEM,
	ROPSC_NOSCR,
	ROPXSC_NOMEM,
	ROPXSC_NOSCR,
	RREMSC_UNKNOWN,
	RREMSC_WINUNKNOWN,
	RREMSC_NOSCR,
	RSWIN_NOMEM,
	RSWIN_NOWINOP,
	RREMW_WINUNKNOWN,
	RFILER_TOHEIGHT,
	RFILER_WINERR,
	RFILER_NOMEM1,
	RFILER_NOMEM2,
	RFILER_NOSYSFNT,
	RSCMD_NOWINDOW,
	RSCMD_NOMEM,
};

/* MetaClasses */

enum MetaClasses
{
	R_NOMsg,
	R_KeyMsg
};

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

#endif
