/****** Includes ************************************************/

#include <libraries/dos.h>

#include "uiki:uikbase.h"
#include "uiki:uikobj.h"
#include "uiki:uikmacros.h"
#include "uiki:uikglobal.h"
#include "uiki:uik_protos.h"
#include "uiki:uik_pragmas.h"

#include "uiki:objscreen.h"
#include "uiki:objwindow.h"

#include "uiki:objrtfilereq.h"

#include <proto/exec.h>
#include <proto/dos.h>
#include <stdlib.h>

struct UIKBase *UIKBase;

/*---------------------------------------------------------------*/

void
main()
{
	struct UIKObj  *or1,
	               *or2,
	               *o1,
	               *o2;
	struct UIKObjStrGad *os1,
	               *os2;
	struct UIKObjWindow *ow = 0;
	struct UIKGlobal *UIK;

	if (!(UIKBase = (struct UIKBase *)OpenLibrary(UIKNAME, 0)))
		goto END_ERROR;
	if (!(UIK = (struct UIKGlobal *)UIK_AddObject("UIK", 0, 0)))
		goto END_ERROR;

	if (!(ow = (struct UIKObjWindow *)UIK_AddObjectTags("UIKObj_Window", UIK,
											   UIKTAG_OBJWindowFl_With_Size, FALSE,
												 UIKTAG_OBJ_LeftTop, SETL(130, 20),
											 UIKTAG_OBJ_WidthHeight, SETL(450, 65),
												  UIKTAG_OBJ_Title, (ULONG) "Test",
	UIKTAG_OBJ_AltTitle, (ULONG) "UIKObj_rtFileReq ©Jérôme Santini (" __DATE__ ")",
													 UIKTAG_OBJ_TitleFl_Addr, TRUE,
														TAG_END)))
		goto END_ERROR;

	/*------le gadget d'appel du requester */
	if (!(o1 = (struct UIKObj *)UIK_AddObjectTags("UIKObj_Toggle", ow,
												  UIKTAG_OBJ_LeftTop, SETL(10, 10),
											 UIKTAG_OBJ_WidthHeight, SETL(120, 20),
											  UIKTAG_OBJ_Title, (ULONG) "Fichiers",
												  UIKTAG_OBJ_TitleFl_Addr, TRUE,
												  TAG_END)))
		goto END_ERROR;

	/*------ L'associé StringGadget --------*/
	if (!(os1 = (struct UIKObjStrGad *)UIK_AddObjectTags("UIKObj_String", o1,
												 UIKTAG_OBJ_LeftTop, SETL(140, 10),
											  UIKTAG_OBJ_WidthHeight, SETL(300, 0),
														 TAG_END)))
		goto END_ERROR;

	/*------le gadget d'appel du requester */
	if (!(o2 = (struct UIKObj *)UIK_AddObjectTags("UIKObj_Toggle", ow,
												  UIKTAG_OBJ_LeftTop, SETL(10, 35),
											 UIKTAG_OBJ_WidthHeight, SETL(120, 20),
										   UIKTAG_OBJ_Title, (ULONG) "Répertoires",
												  UIKTAG_OBJ_TitleFl_Addr, TRUE,
												  TAG_END)))
		goto END_ERROR;

	/*------ L'associé StringGadget --------*/
	if (!(os2 = (struct UIKObjStrGad *)UIK_AddObjectTags("UIKObj_String", o2,
												 UIKTAG_OBJ_LeftTop, SETL(140, 35),
											  UIKTAG_OBJ_WidthHeight, SETL(300, 0),
														 TAG_END)))
		goto END_ERROR;

	if (!UIK_Start(UIK))
		goto END_ERROR;

	if (!(or1 = UIK_AddObjectTags("UIKObj_RTFileReq", o1,
								  UIKTAG_OBJ_Title, (ULONG) "Requête de fichier",
								  UIKTAG_OBJ_TitleFl_Addr, TRUE,
								  UIKTAG_RTFR_INITPATH, "uik:objects",
								  UIKTAG_RTFR_PATTERN, "UIKOBj_*",
								  UIKTAG_RTFR_FILE, "UIKObj_rtFileReq",
								  UIKTAG_RTFR_StrGad, os1,

								  TAG_END)))
		goto END_ERROR;

	if (!(or2 = UIK_AddObjectTags("UIKObj_RTFileReq", o2,
								  UIKTAG_OBJ_Title, (ULONG) "Requête de répertoire",
								  UIKTAG_OBJ_TitleFl_Addr, TRUE,
								  UIKTAG_RTFR_ReqPos, REQPOS_POINTER,
								  UIKTAG_OBJ_WidthHeight, SETL(400, 300),
								  UIKTAG_RTFR_INITPATH, "sys:",
								  UIKTAG_RTFR_DirsOnly, TRUE,
								  UIKTAG_RTFR_StrGad, os2,
								  TAG_END)))
		goto END_ERROR;

	UIK_Do(UIK, SIGBREAKF_CTRL_C);

  END_ERROR:

	if (UIK)
		UIK_Remove(UIK);

	if (UIKBase)
		CloseLibrary(UIKBase);

	exit(0);
}
