/**
 *
 *   This is the data structure that contains all the colors.
 *
**/
struct ReqPens 
{
	UBYTE           reqp_BlockPen;			/* Window's block pen color          */
	UBYTE           reqp_DetailPen;			/* Window's detail pen color         */
	UBYTE           reqp_BackPen;			/* Background color                  */
	UBYTE           reqp_PromptPen;			/* Prompt string color               */
	UBYTE           reqp_BoxPen;			/* Gadget outline color              */
	UBYTE           reqp_ShadowPen;			/* Gadget shadow color               */
	UBYTE           reqp_OkayPen;			/* Okay gadget text color            */
	UBYTE           reqp_CancelPen;			/* Cancel gadget text color          */
	UBYTE          *reqp_Reserved1;			/* Reserved                          */
};
/**
 *
 *   This is the data structure for the simple string/boolean requester.
 *
**/
struct SimpleRequester 
{
	WORD              sr_x;					/* Requester top left x coordinate   */
	WORD              sr_y;					/* Requester top left y coordinate   */
	struct Screen    *sr_Screen;			/* Screen pointer, if NULL Workbench */
	UBYTE           **sr_Prompt;			/* Ptr. to array of ptrs to prompts  */
	UBYTE            *sr_String;			/* String-gadget and result string   */
	UBYTE            *sr_Okay;				/* Okay gadget text                  */
	UBYTE            *sr_Cancel;			/* Cancel gadget text                */
	struct ReqPens   *sr_PenList;			/* Pen list. If NULL, defaults used. */
	USHORT            sr_ErrorCode;			/* Error Code, see below             */
	UBYTE            *sr_Reserved1;			/* Reserved                          */
	UBYTE            *sr_Reserved2;			/* Reserved                          */
};
/*
 *   Maximum number of supported prompts
 */
#define SR_MAXPROMPTS    80
/*
 *  These are possible error codes that may be returned in sr_ErrorCode.
 */
#define SR_SUCCESS        0
#define SR_NOINTUITION    1
#define SR_NOGRAPHICS     2
#define SR_OUTOFMEMORY    3
#define SR_NOWINDOW       4
#define SR_NOFONT         5


/*
 *   Prototypes for functions defined in simplib.c
 */
BOOL SReqOpenLibs ( void );
BOOL SReqCloseLibs( void );
/*
 *   Prototypes for functions defined in simpwin.c
 */
struct Window *OpenSReqWindow( struct SimpleRequester *s, int hsize, int vsize, ULONG idcmpflags, ULONG flags );
void           BlankSReqWin(struct Window *w, ULONG pen);
/*
 *   Prototypes for functions defined in simpmsg.c
 */
struct Window   *SimpleMsgWindow(struct SimpleRequester *);
struct Window   *SimpleMsgWIDCMP(struct SimpleRequester *, long);
long             UpdateMsgWindow(struct Window *, struct SimpleRequester *);
struct Window   *CloseMsgWindow(struct Window *);
struct TextAttr *Topaz80Equiv(void);
/*
 *   Prototypes for functions defined in simpreq.c
 */
long SimpleRequest( struct SimpleRequester * );
/*
 *   Prototypes for functions defined in simpgad.c
 */
struct Border    *MakeBox ( UBYTE pen1, UBYTE pen2, UBYTE dm, WORD xo, WORD yo, WORD x1, WORD y1, WORD x2, WORD y2 );
struct Border    *FreeBox( struct Border * );
struct IntuiText *MakeSIText( UBYTE pen1, UBYTE pen2, UBYTE dm, WORD xo, WORD yo, UBYTE *text);
struct IntuiText *FreeSIText( struct IntuiText * );
WORD              SITextLength( struct IntuiText * );
WORD	          SITextHeight( struct IntuiText * );
struct Gadget    *MakeSStrGad( UBYTE *s, UBYTE p1, UBYTE p2, WORD x, WORD y, WORD width, WORD id, ULONG *ec);
struct Gadget    *FreeSimpGad( struct Gadget * );
struct Gadget    *MakeSBoolGad(UBYTE *s, UBYTE p1, UBYTE p2, UBYTE p3, WORD x, WORD y, WORD hslop, WORD vslop, WORD id, ULONG *ec);
/*
 *   Prototypes for functions defined in gadmxsel.c
 */
void GadMXSel ( struct Window *win,
                struct Gadget *gad1,
                struct Gadget *gad2,
                struct Gadget *gad3,
                struct Gadget *gad4,
                struct Gadget *gad5,
                struct Gadget *gad6 );
void GadMXSet ( struct Window *w, struct Gadget *gad1);
void GadMXClr ( struct Window *w, struct Gadget *gad1);
void GadMXToggle ( struct Window *w, struct Gadget *gad1);
