#ifndef CLIB_REQTOOLS_PROTOS_H
#define CLIB_REQTOOLS_PROTOS_H

/*
    *** Automatically generated from 'reqtools.conf'. Edits will be lost. ***
    Copyright © 1995-2005, The AROS Development Team. All rights reserved.
*/

#include <aros/libcall.h>
#include <libraries/reqtools.h>

struct PWCallBackArgs;
typedef char * (*PWCALLBACKFUNPTR) (long, long, struct PWCallBackArgs *);

/* Prototypes for stubs in reqtoolsstubs.lib */

APTR rtAllocRequest (ULONG type, Tag tag1, ...);
LONG rtChangeReqAttr (APTR req, Tag tag1, ...);
APTR rtFileRequest (struct rtFileRequester * filereq, char *file, char *title, Tag tag1, ...);
ULONG rtEZRequest (char *bodyfmt, char *gadfmt, struct rtReqInfo *reqinfo, struct TagItem *taglist, ...);
ULONG rtEZRequestTags (char *bodyfmt, char *gadfmt, struct rtReqInfo *reqinfo, APTR argarray, Tag tag1, ...);
ULONG rtGetString (UBYTE *buffer, ULONG maxchars, char *title, struct rtReqInfo *reqinfo, Tag tag1, ...);
ULONG rtGetLong (ULONG *longptr, char *title, struct rtReqInfo *reqinfo, Tag tag1, ...);
ULONG rtFontRequest (struct rtFontRequester *fontreq, char *title, Tag tag1, ...);
LONG rtPaletteRequest (char *title, struct rtReqInfo *reqinfo, Tag tag1, ...);
ULONG rtReqHandler (struct rtHandlerInfo *handlerinfo, ULONG sigs, Tag tag1, ...);
ULONG rtScreenModeRequest (struct rtScreenModeRequester *screenmodereq, char *title, Tag tag1, ...);


AROS_LP2(APTR, rtAllocRequestA,
        AROS_LPA(ULONG, type, D0),
        AROS_LPA(struct TagItem *, taglist, A0),
        struct ReqToolsBase *, ReqToolsBase, 5, ReqTools)

AROS_LP1(void, rtFreeRequest,
        AROS_LPA(APTR, req, A1),
        struct ReqToolsBase *, ReqToolsBase, 6, ReqTools)

AROS_LP1(void, rtFreeReqBuffer,
        AROS_LPA(APTR, req, A1),
        struct ReqToolsBase *, ReqToolsBase, 7, ReqTools)

AROS_LP2(LONG, rtChangeReqAttrA,
        AROS_LPA(APTR, req, A1),
        AROS_LPA(struct TagItem *, taglist, A0),
        struct ReqToolsBase *, ReqToolsBase, 8, ReqTools)

AROS_LP4(APTR, rtFileRequestA,
        AROS_LPA(struct rtFileRequester *, filereq, A1),
        AROS_LPA(char *, file, A2),
        AROS_LPA(char *, title, A3),
        AROS_LPA(struct TagItem *, taglist, A0),
        struct ReqToolsBase *, ReqToolsBase, 9, ReqTools)

AROS_LP1(void, rtFreeFileList,
        AROS_LPA(struct rtFileList *, selfile, A0),
        struct ReqToolsBase *, ReqToolsBase, 10, ReqTools)

AROS_LP5(ULONG, rtEZRequestA,
        AROS_LPA(char *, bodyfmt, A1),
        AROS_LPA(char *, gadfmt, A2),
        AROS_LPA(struct rtReqInfo *, reqinfo, A3),
        AROS_LPA(APTR, argarray, A4),
        AROS_LPA(struct TagItem *, taglist, A0),
        struct ReqToolsBase *, ReqToolsBase, 11, ReqTools)

AROS_LP5(ULONG, rtGetStringA,
        AROS_LPA(UBYTE *, buffer, A1),
        AROS_LPA(ULONG, maxchars, D0),
        AROS_LPA(char *, title, A2),
        AROS_LPA(struct rtReqInfo *, reqinfo, A3),
        AROS_LPA(struct TagItem *, taglist, A0),
        struct ReqToolsBase *, ReqToolsBase, 12, ReqTools)

AROS_LP4(ULONG, rtGetLongA,
        AROS_LPA(ULONG *, longptr, A1),
        AROS_LPA(char *, title, A2),
        AROS_LPA(struct rtReqInfo *, reqinfo, A3),
        AROS_LPA(struct TagItem *, taglist, A0),
        struct ReqToolsBase *, ReqToolsBase, 13, ReqTools)

AROS_LP5(BOOL, rtInternalGetPasswordA,
        AROS_LPA(UBYTE *, buffer, A1),
        AROS_LPA(ULONG, checksum, D1),
        AROS_LPA(PWCALLBACKFUNPTR, pwcallback, D2),
        AROS_LPA(struct rtReqInfo *, reqinfo, A3),
        AROS_LPA(struct TagItem *, taglist, A0),
        struct ReqToolsBase *, ReqToolsBase, 14, ReqTools)

AROS_LP4(BOOL, rtInternalEnterPasswordA,
        AROS_LPA(UBYTE *, buffer, A1),
        AROS_LPA(PWCALLBACKFUNPTR, pwcallback, D2),
        AROS_LPA(struct rtReqInfo *, reqinfo, A3),
        AROS_LPA(struct TagItem *, taglist, A0),
        struct ReqToolsBase *, ReqToolsBase, 15, ReqTools)

AROS_LP3(ULONG, rtFontRequestA,
        AROS_LPA(struct rtFontRequester *, fontreq, A1),
        AROS_LPA(char *, title, A3),
        AROS_LPA(struct TagItem *, taglist, A0),
        struct ReqToolsBase *, ReqToolsBase, 16, ReqTools)

AROS_LP3(LONG, rtPaletteRequestA,
        AROS_LPA(char *, title, A2),
        AROS_LPA(struct rtReqInfo *, reqinfo, A3),
        AROS_LPA(struct TagItem *, taglist, A0),
        struct ReqToolsBase *, ReqToolsBase, 17, ReqTools)

AROS_LP3(ULONG, rtReqHandlerA,
        AROS_LPA(struct rtHandlerInfo *, handlerinfo, A1),
        AROS_LPA(ULONG, sigs, D0),
        AROS_LPA(struct TagItem *, taglist, A0),
        struct ReqToolsBase *, ReqToolsBase, 18, ReqTools)

AROS_LP1(void, rtSetWaitPointer,
        AROS_LPA(struct Window *, window, A0),
        struct ReqToolsBase *, ReqToolsBase, 19, ReqTools)

AROS_LP3(ULONG, rtGetVScreenSize,
        AROS_LPA(struct Screen *, screen, A0),
        AROS_LPA(ULONG *, widthptr, A1),
        AROS_LPA(ULONG *, heightptr, A2),
        struct ReqToolsBase *, ReqToolsBase, 20, ReqTools)

AROS_LP4(void, rtSetReqPosition,
        AROS_LPA(ULONG, reqpos, D0),
        AROS_LPA(struct NewWindow *, nw, A0),
        AROS_LPA(struct Screen *, scr, A1),
        AROS_LPA(struct Window *, win, A2),
        struct ReqToolsBase *, ReqToolsBase, 21, ReqTools)

AROS_LP6(void, rtSpread,
        AROS_LPA(ULONG *, posarray, A0),
        AROS_LPA(ULONG *, sizearray, A1),
        AROS_LPA(ULONG, totalsize, D0),
        AROS_LPA(ULONG, min, D1),
        AROS_LPA(ULONG, max, D2),
        AROS_LPA(ULONG, num, D3),
        struct ReqToolsBase *, ReqToolsBase, 22, ReqTools)

AROS_LP1(void, rtScreenToFrontSafely,
        AROS_LPA(struct Screen *, screen, A0),
        struct ReqToolsBase *, ReqToolsBase, 23, ReqTools)

AROS_LP3(ULONG, rtScreenModeRequestA,
        AROS_LPA(struct rtScreenModeRequester *, screenmodereq, A1),
        AROS_LPA(char *, title, A3),
        AROS_LPA(struct TagItem *, taglist, A0),
        struct ReqToolsBase *, ReqToolsBase, 24, ReqTools)

AROS_LP1(void, rtCloseWindowSafely,
        AROS_LPA(struct Window *, window, A0),
        struct ReqToolsBase *, ReqToolsBase, 25, ReqTools)

AROS_LP1(APTR, rtLockWindow,
        AROS_LPA(struct Window *, window, A0),
        struct ReqToolsBase *, ReqToolsBase, 26, ReqTools)

AROS_LP2(void, rtUnlockWindow,
        AROS_LPA(struct Window *, window, A0),
        AROS_LPA(APTR, windowlock, A1),
        struct ReqToolsBase *, ReqToolsBase, 27, ReqTools)

AROS_LP0(struct ReqToolsPrefs *, rtLockPrefs,
        struct ReqToolsBase *, ReqToolsBase, 28, ReqTools)

AROS_LP0(void, rtUnlockPrefs,
        struct ReqToolsBase *, ReqToolsBase, 29, ReqTools)

#endif /* CLIB_REQTOOLS_PROTOS_H */
