/*-- AutoRev header do NOT edit!
*
*   Program         :   FileRequest.c
*   Copyright       :   Copyright © 1991-92 Jaba Development
*   Author          :   Jan van den Baard
*   Creation Date   :   04-Apr-92
*   Current version :   2.0
*   Translator      :   Dice v2.06.20
*
*   REVISION HISTORY
*
*   Date          Version         Comment
*   ---------     -------         ------------------------------------------
*   04-Apr-92     2.0             ReqTools FileRequester interface.
*
*-- REV_END --*/

#include "View.h"

Prototype   long FileRequest( struct Window *, UBYTE *, UBYTE *, UBYTE *, UBYTE *, UBYTE );

static struct TagItem       frTags[] = {
    RT_ReqPos,              REQPOS_CENTERSCR,
    RT_WaitPointer,         TRUE,
    RTFI_Flags,             NULL,
    RTFI_OkText,            NULL,
    TAG_DONE
};

extern UBYTE                vwName[ 512 ];

long FileRequest( window, hail, fbuf, dbuf, pbuf, type )
    struct Window   *window;
    UBYTE           *hail, *fbuf, *dbuf, *pbuf, type;
{
    struct rtFileRequester      *freq = 0l;
    long                         ret =  NULL;

    if ( freq = rtAllocRequestA( RT_FILEREQ, TAG_DONE )) {

        rtChangeReqAttr( freq, RTFI_Dir,      dbuf,
                               RTFI_MatchPat, pbuf,
                               TAG_DONE );

        switch( type ) {
            case    FR_SAVE:
                frTags[3].ti_Data = (ULONG)"Save";
                frTags[2].ti_Data = FREQF_SAVE | FREQF_PATGAD | FREQF_NOBUFFER;
                break;
            case    FR_LOAD:
                frTags[3].ti_Data = (ULONG)"Load";
                frTags[2].ti_Data = FREQF_PATGAD | FREQF_NOBUFFER;
                break;
        }

        if ( ret = rtFileRequestA( freq, fbuf, hail, frTags )) {
            strcpy( dbuf, freq->Dir );
            strcpy( pbuf, freq->MatchPat );
            strcpy( vwName, dbuf );
            CheckDirExtension( vwName );
            strcat( vwName, fbuf );
        }
        rtFreeRequest( freq );
    }

    return( ret );
}
