#ifndef UIK_RTFILEREQ

#define UIK_RTFILEREQ
/*
 *      Copyright (C) 1993 Jérôme Santini
 */

#ifndef UIKDEFS_OBJ
#include "uiki:uikobj.h"
#endif

#ifndef UIKDEFS_FILESELECT
#include "uiki:objfileselector.h"
#endif

#ifndef LIBRARIES_REQTOOLS_H
#include <libraries/reqtools.H>
#endif

#define UIKObjRTFileReq UIKObjRTFR

struct UIKObjRTFR
{
	struct UIKObj   Obj;

	void            (*OKFunc) (struct UIKObjRTFileReq *, char *);
	void            (*CancelFunc) (int, struct UIKObjRTFileReq *);
/*	APTR            UserData;*/

	void            (*vect) ();
	struct rtFileRequester *rtfr;
	struct rtHandlerInfo *rthi;
	struct ReqToolsBase *ReqToolsBase;
	struct DosLibrary *DOSBase;
	struct UIKBase *UIKBase;
	struct TagItem *reqtag;
	struct UIKHook *hook;		  /* Vecteur d'arrêt */
	struct UIKHook *sghook;		  /* Vecteur pour le ObjString */
	struct UIKHook *tghook;		  /* Vecteur pour le ObjToggle */
	long            rc;			  /* return code des fonctions rt */
	struct Process *son;		  /* tâche de la requête 	 */
	struct Task    *UIKTask;	  /* tâche mère 			 */
	long            SigBit;
	char           *titre;		  /* de la fenêtre */
	BOOL            DirOnly;
	ULONG           User1;
	ULONG           User2;
	struct UIKObjStrGad *sg;
	char            filename[120];

};

#define     OBJRTFileReq_BOX_STDWIDTH 300
#define		OBJRTFileReq_BOX_STDHEIGHT 450

#ifndef UIKTAG_FS_OKFUNC

#define UIKTAG_FS_OKFUNC        (UIKTAG_USER|0x0001)
#define UIKTAG_FS_CANCELFUNC    (UIKTAG_USER|0x0002)
#define UIKTAG_FS_INITPATH      (UIKTAG_USER|0x0003)
#define UIKTAG_FS_PATTERN       (UIKTAG_USER|0x0006)
#define UIKTAG_FSFl_DirsOnly        (UIKTAG_USER|0x0023)
#define UIKTAG_FSFl_ShowIcons       (UIKTAG_USER|0x0024)

#endif

#define UIKTAG_RTFR_OKFUNC     UIKTAG_FS_OKFUNC	/* Voir doc UIKOBJ_FileSelector */
#define UIKTAG_RTFR_CANCELFUNC UIKTAG_FS_CANCELFUNC	/* Idem							 */
#define UIKTAG_RTFR_INITPATH   UIKTAG_FS_INITPATH	/* Idem							 */
#define UIKTAG_RTFR_PATTERN	   UIKTAG_FS_PATTERN	/* Idem ....................... */
#define UIKTAG_RTFR_DirsOnly 	UIKTAG_FSFl_DirsOnly
#define UIKTAG_RTFR_ShowIcons	UIKTAG_FSFl_ShowIcons

#define UIKTAG_RTFR_ReqPos      (UIKTAG_USER|0x0050)	/* Voir rtEZRequestA() */
/*
**  Les valeurs possibles sont:
**      REQPOS_POINTER
**      REQPOS_CENTERSCR
**      REQPOS_CENTERWIN
**      REQPOS_TOPLEFTSCR
**      REQPOS_TOPLEFTWIN   ( valeur par défaut )
*/
#define UIKTAG_RTFR_User1      (UIKTAG_USER|0x0051)
#define UIKTAG_RTFR_User2      (UIKTAG_USER|0x0052)
#define UIKTAG_RTFR_FILE       (UIKTAG_USER|0x0053)
#define UIKTAG_RTFR_StrGad  (UIKTAG_USER|0x0054)

/*
**  Fonctions pubiques
*/
#define UIKFUNC_RTFR_GetFilename    0
#define UIKFUNC_RTFR_SetFilename    4
#define UIKFUNC_RTFR_ReqToString    8
#define UIKFUNC_RTFR_StringToReq    12
#define UIKFUNC_RTFR_LastCmd   12

#endif
