/* $Revision Header *** Header built automatically - do not edit! ***********
 *
 *	(C) Copyright 1991 by Torsten Jürgeleit
 *
 *	Name .....: requester.h
 *	Created ..: Thursday 19-Dec-91 18:55:23
 *	Revision .: 4
 *
 *	Date        Author                 Comment
 *	=========   ====================   ====================
 *	28-Jul-92   Torsten Jürgeleit      different centering types for
 *                                         requesters
 *	19-Jul-92   Torsten Jürgeleit      remove/display_visible_gadget_lists()
 *                                         moved to gadgets1.c
 *	30-Apr-92   Torsten Jürgeleit      now requester support rasters
 *	01-Apr-92   Torsten Jürgeleit      restore old mouse pointer position
 *                                         after displaying requester
 *	19-Dec-91   Torsten Jürgeleit      Created this file!
 *
 * $Revision Header ********************************************************/

#ifndef	ISUP_REQUESTERS_H
#define	ISUP_REQUESTERS_H

	/* Defines for auto request */

#define AUTO_REQ_FLAG_BACK_FILL		(1 << 0)
#define AUTO_REQ_FLAG_RENDER_PENS	(1 << 1)
#define AUTO_REQ_FLAG_TEXT_CENTER	(1 << 2)
#define AUTO_REQ_FLAG_TEXT_COLOR2	(1 << 3)
#define AUTO_REQ_FLAG_HOTKEY		(1 << 4)
#define AUTO_REQ_FLAG_BEEP		(1 << 5)
#define AUTO_REQ_FLAG_MOVE_POINTER_POS	(1 << 6)
#define AUTO_REQ_FLAG_MOVE_POINTER_NEG	(1 << 7)
#define AUTO_REQ_FLAG_DRAW_RASTER	(1 << 8)	/* draw raster around text area */
#define AUTO_REQ_FLAG_CENTER_MOUSE	(1 << 9)	/* center last gadget of auto requester over current position of mouse pointer */

	/* Defines for requester data */

#define REQ_DATA_FLAG_BACK_FILL		(1L << 0)
#define REQ_DATA_FLAG_RENDER_PENS	(1L << 1)
#define REQ_DATA_FLAG_INNER_WINDOW	(1L << 2)
#define REQ_DATA_FLAG_AVAIL_FONTS	(1L << 3)
#define REQ_DATA_FLAG_CENTER_SCREEN	(1L << 4)	/* center requester on window's screen */
#define REQ_DATA_FLAG_DRAG_GADGET	(1L << 5)
#define REQ_DATA_FLAG_DEPTH_GADGET	(1L << 6)
#define REQ_DATA_FLAG_DRAW_RASTER	(1L << 7)	/* draw raster between FIRST BORDER and window border - FIRST BORDER will not be used further */
#define REQ_DATA_FLAG_CENTER_WINDOW	(1L << 8)	/* center requester on window */
#define REQ_DATA_FLAG_CENTER_MOUSE	(1L << 9)	/* center requester over current position of mouse pointer */

	/* Defines for requester list */

#define REQ_FLAG_RESTORE_POINTER_POS	(1L << 0)	/* restore mouse pointer position after displaying requester */

	/* Structures for requester */

struct RequesterList {
	struct RenderInfo  *rl_RenderInfo;
	struct Window      *rl_Window;			/* window requester displayed on */
	struct Window      *rl_ReqWindow;		/* window of requester */
	struct GadgetList  *rl_GadgetList;		/* requester gadgets */
	LONG	rl_ID;		/* id = 'ISUP' */
	ULONG	rl_Flags;
	SHORT	rl_MouseX;	/* saved position of mouse pointer before displaying requester */
	SHORT	rl_MouseY;	/* saved position of mouse pointer before displaying requester */
};
struct RequesterData {
	SHORT	rd_LeftEdge;
	SHORT	rd_TopEdge;
	SHORT	rd_Width;
	SHORT	rd_Height;
	ULONG	rd_Flags;
	BYTE	*rd_Title;
	struct TextData    *rd_Texts;
	struct BorderData  *rd_Borders;
	struct GadgetData  *rd_Gadgets;
};
	/* Global prototypes (Aztec C v5.2a) */

BOOL auto_request(struct Window  *req_win, BYTE *title, BYTE *body_text,
		       BYTE *pos_text, BYTE *neg_text, LONG pos_idcmp_flags,
	LONG neg_idcmp_flags, USHORT req_flags, BYTE **language_text_array);
struct RequesterList  *display_requester(struct Window  *req_win,
		     struct RequesterData  *rd, BYTE **language_text_array);
VOID remove_requester(struct RequesterList  *rl);

	/* Global pragmas (Aztec C v5.2a) */

#pragma intfunc(auto_request(a0,a1,a2,a3,d0,d1,d2,d3,d4))
#pragma intfunc(display_requester(a0,a1,a2))
#pragma intfunc(remove_requester(a0))

#endif   /* ISUP_REQUESTERS_H */
