#ifndef MAKE_ID
#define MAKE_ID(a,b,c,d) ((ULONG) (a)<<24 | (ULONG) (b)<<16 | (ULONG) (c)<<8 | (ULONG) (d))
#endif

#ifdef _DCC
#define __inline
#endif

#include "ClipWatch_Gui.h"
#include "ClipWatch_GuiExtern.c" //MLD .h=>.c


struct ObjApp * CreateApp(void)
{
	struct ObjApp * Object;

	APTR	MNlabel1Project, MNlabel1About, MNlabel1AboutMUI, MNlabel1BarLabel0;
	APTR	MNlabel1Quit, MNlabel1Settings, MNlabel1Prefs, MNlabel1PrefsMUI, GROUP_ROOT_0;
	APTR	GR_grp_INFOS, SiteNameLI, GR_grp_TELPSW, obj_aux0, obj_aux1, obj_aux2;
	APTR	obj_aux3, GR_grp_VISU, Messages, obj_aux4, obj_aux5, obj_aux6, obj_aux7;
	APTR	obj_aux8, obj_aux9, obj_aux10, obj_aux11, obj_aux12, obj_aux13, obj_aux14;
	APTR	obj_aux15, obj_aux16, obj_aux17, obj_aux18, obj_aux19, Space_1, Etats;
	APTR	Journal, Traces, GR_TRACES_SEL, GR_TRACES_TEMPS, TracesNumerique;
	APTR	TracesGraphique, GR_grp_CNX, GROUP_ROOT_1, obj_aux20, obj_aux21, GR_grp_DeviceUnit;
	APTR	obj_aux22, obj_aux23, Space_9, obj_aux24, obj_aux25, GR_grp_Vitesse;
	APTR	LA_label_vitesse, LA_label_bps, SpaceH_1, SpaceV_1, REC_label_6CC;
	APTR	SpaceV_2, GR_grp_Journal, obj_aux26, obj_aux27, SpaceH_2, GR_grp_Traces;
	APTR	obj_aux28, obj_aux29, SpaceH_3, GR_grp_Messages, obj_aux30, obj_aux31;
	APTR	SpaceH_4, GR_grp_Monitor, obj_aux32, obj_aux33, SpaceV_3, REC_label_6;
	APTR	SpaceV_4, GR_grp_Validation, GROUP_ROOT_2, GR_grp_25;
	static const struct Hook DisplayHookRessourcesHook = { { NULL,NULL },(VOID *)DisplayHookRessources,NULL,NULL };
	static const struct Hook DisplayHookEvenementsHook = { { NULL,NULL },(VOID *)DisplayHookEvenements,NULL,NULL };
	static const struct Hook DisplayHookTraceNumHook = { { NULL,NULL },(VOID *)DisplayHookTraceNum,NULL,NULL };


	if (!(Object = AllocVec(sizeof(struct ObjApp), MEMF_PUBLIC|MEMF_CLEAR)))
		return(NULL);

	Object->STR_SiteName = NULL;
	Object->STR_Type = NULL;
	Object->STR_Version = NULL;
	Object->STR_Date = "01/01/78";
	Object->STR_Time = "00:00:00";
	Object->STR_ComState = "Prêt...";
	Object->STR_ComTime = "--:--";

	Object->STR_GR_grp_VISU[0] = "Messages";
	Object->STR_GR_grp_VISU[1] = "Etats";
	Object->STR_GR_grp_VISU[2] = "Journal";
	Object->STR_GR_grp_VISU[3] = "Traces";
	Object->STR_GR_grp_VISU[4] = NULL;
	Object->ChoixTracesContent[0] = "Trace n°xx";
	Object->ChoixTracesContent[1] = NULL;
	Object->Trace_RangeContent[0] = "1 Jour";
	Object->Trace_RangeContent[1] = "2 Jours";
	Object->Trace_RangeContent[2] = "1 Semaine";
	Object->Trace_RangeContent[3] = "1 Mois";
	Object->Trace_RangeContent[4] = "Autre";
	Object->Trace_RangeContent[5] = NULL;
	Object->STR_GR_TRACES_MODE[0] = "Numérique";
	Object->STR_GR_TRACES_MODE[1] = "Graphique";
	Object->STR_GR_TRACES_MODE[2] = NULL;
	Object->Prefs_VitesseContent[0] = "300";
	Object->Prefs_VitesseContent[1] = "1200";
	Object->Prefs_VitesseContent[2] = "2400";
	Object->Prefs_VitesseContent[3] = "4800";
	Object->Prefs_VitesseContent[4] = "9600";
	Object->Prefs_VitesseContent[5] = NULL;
	Object->Prefs_Monitor_TypeContent[0] = "ASCII";
	Object->Prefs_Monitor_TypeContent[1] = "HEX";
	Object->Prefs_Monitor_TypeContent[2] = "ASCII+HEX";
	Object->Prefs_Monitor_TypeContent[3] = NULL;

	SiteNameLI = Label("Site");

	Object->SiteName = TextObject,
		MUIA_Weight, 60,
		MUIA_Background, MUII_TextBack,
		MUIA_Frame, MUIV_Frame_Text,
		MUIA_Text_Contents, Object->STR_SiteName,
		MUIA_Text_SetMin, TRUE,
	End;

	Object->SelectSiteSaved = TextObject,
		ButtonFrame,
		MUIA_Weight, 7,
		MUIA_Background, MUII_ButtonBack,
		MUIA_Text_Contents, "««",
		MUIA_Text_PreParse, "\033c",
		MUIA_HelpNode, "SelectSiteSaved",
		MUIA_InputMode, MUIV_InputMode_RelVerify,
	End;

	Object->Type = TextObject,
		MUIA_Weight, 30,
		MUIA_Background, MUII_TextBack,
		MUIA_Frame, MUIV_Frame_Text,
		MUIA_Text_Contents, Object->STR_Type,
		MUIA_Text_SetMin, TRUE,
	End;

	Object->Version = TextObject,
		MUIA_Weight, 15,
		MUIA_Background, MUII_TextBack,
		MUIA_Frame, MUIV_Frame_Text,
		MUIA_Text_Contents, Object->STR_Version,
		MUIA_Text_SetMin, TRUE,
	End;

	Object->Date = TextObject,
		MUIA_Weight, 20,
		MUIA_Background, MUII_TextBack,
		MUIA_Frame, MUIV_Frame_Text,
		MUIA_Text_Contents, Object->STR_Date,
		MUIA_Text_SetMin, TRUE,
	End;

	Object->Time = TextObject,
		MUIA_Weight, 20,
		MUIA_Background, MUII_TextBack,
		MUIA_Frame, MUIV_Frame_Text,
		MUIA_Text_Contents, Object->STR_Time,
		MUIA_Text_SetMin, TRUE,
	End;

	GR_grp_INFOS = GroupObject,
		MUIA_HelpNode, "GR_grp_INFOS",
		MUIA_Group_Horiz, TRUE,
		MUIA_Group_SameHeight, TRUE,
		Child, SiteNameLI,
		Child, Object->SiteName,
		Child, Object->SelectSiteSaved,
		Child, Object->Type,
		Child, Object->Version,
		Child, Object->Date,
		Child, Object->Time,
	End;

	Object->NumTelephone = StringObject,
		MUIA_Frame, MUIV_Frame_String,
		MUIA_HelpNode, "NumTelephone",
	End;

	obj_aux1 = Label2("NumTéléphone");

	obj_aux0 = GroupObject,
		MUIA_Group_Columns, 2,
		Child, obj_aux1,
		Child, Object->NumTelephone,
	End;

	Object->Password = StringObject,
		MUIA_Frame, MUIV_Frame_String,
		MUIA_HelpNode, "Password",
		MUIA_String_Secret, TRUE,
	End;

	obj_aux3 = Label2("MotDePasse");

	obj_aux2 = GroupObject,
		MUIA_Group_Columns, 2,
		Child, obj_aux3,
		Child, Object->Password,
	End;

	GR_grp_TELPSW = GroupObject,
		MUIA_HelpNode, "GR_grp_TELPSW",
		MUIA_Group_Columns, 2,
		Child, obj_aux0,
		Child, obj_aux2,
	End;

	Object->MessageTextNum0 = StringObject,
		MUIA_Frame, MUIV_Frame_String,
		MUIA_HelpNode, "MessageTextNum0",
		MUIA_String_MaxLen, 255,
	End;

	obj_aux5 = Label2("0");

	obj_aux4 = GroupObject,
		MUIA_Group_Columns, 2,
		Child, obj_aux5,
		Child, Object->MessageTextNum0,
	End;

	Object->MessageTextNum1 = StringObject,
		MUIA_Frame, MUIV_Frame_String,
		MUIA_HelpNode, "MessageTextNum1",
		MUIA_String_MaxLen, 255,
	End;

	obj_aux7 = Label2("1");

	obj_aux6 = GroupObject,
		MUIA_Group_Columns, 2,
		Child, obj_aux7,
		Child, Object->MessageTextNum1,
	End;

	Object->MessageTextNum2 = StringObject,
		MUIA_Frame, MUIV_Frame_String,
		MUIA_HelpNode, "MessageTextNum2",
		MUIA_String_MaxLen, 255,
	End;

	obj_aux9 = Label2("2");

	obj_aux8 = GroupObject,
		MUIA_Group_Columns, 2,
		Child, obj_aux9,
		Child, Object->MessageTextNum2,
	End;

	Object->MessageTextNum3 = StringObject,
		MUIA_Frame, MUIV_Frame_String,
		MUIA_HelpNode, "MessageTextNum3",
		MUIA_String_MaxLen, 255,
	End;

	obj_aux11 = Label2("3");

	obj_aux10 = GroupObject,
		MUIA_Group_Columns, 2,
		Child, obj_aux11,
		Child, Object->MessageTextNum3,
	End;

	Object->MessageTextNum4 = StringObject,
		MUIA_Frame, MUIV_Frame_String,
		MUIA_HelpNode, "MessageTextNum4",
		MUIA_String_MaxLen, 255,
	End;

	obj_aux13 = Label2("4");

	obj_aux12 = GroupObject,
		MUIA_Group_Columns, 2,
		Child, obj_aux13,
		Child, Object->MessageTextNum4,
	End;

	Object->MessageTextNum5 = StringObject,
		MUIA_Frame, MUIV_Frame_String,
		MUIA_HelpNode, "MessageTextNum5",
		MUIA_String_MaxLen, 255,
	End;

	obj_aux15 = Label2("5");

	obj_aux14 = GroupObject,
		MUIA_Group_Columns, 2,
		Child, obj_aux15,
		Child, Object->MessageTextNum5,
	End;

	Object->MessageTextNum6 = StringObject,
		MUIA_Frame, MUIV_Frame_String,
		MUIA_HelpNode, "MessageTextNum6",
		MUIA_String_MaxLen, 255,
	End;

	obj_aux17 = Label2("6");

	obj_aux16 = GroupObject,
		MUIA_Group_Columns, 2,
		Child, obj_aux17,
		Child, Object->MessageTextNum6,
	End;

	Object->MessageTextNum7 = StringObject,
		MUIA_Frame, MUIV_Frame_String,
		MUIA_HelpNode, "MessageTextNum7",
		MUIA_String_MaxLen, 255,
	End;

	obj_aux19 = Label2("7");

	obj_aux18 = GroupObject,
		MUIA_Group_Columns, 2,
		Child, obj_aux19,
		Child, Object->MessageTextNum7,
	End;

	Space_1 = HVSpace;

	Messages = VirtgroupObject,
		VirtualFrame,
		MUIA_HelpNode, "Messages",
		Child, obj_aux4,
		Child, obj_aux6,
		Child, obj_aux8,
		Child, obj_aux10,
		Child, obj_aux12,
		Child, obj_aux14,
		Child, obj_aux16,
		Child, obj_aux18,
		Child, Space_1,
	End;

	Messages = ScrollgroupObject,
		MUIA_Scrollgroup_Contents, Messages,
	End;

	Object->ListEtats = ListObject,
		MUIA_Frame, MUIV_Frame_InputList,
		MUIA_List_Title, TRUE,
		MUIA_List_Format, "BAR,BAR,",
		MUIA_List_DisplayHook, &DisplayHookRessourcesHook,
	End;

	Object->ListEtats = ListviewObject,
		MUIA_HelpNode, "ListEtats",
		MUIA_Listview_List, Object->ListEtats,
	End;

	Etats = GroupObject,
		MUIA_HelpNode, "Etats",
		Child, Object->ListEtats,
	End;

	Object->ListJournal = ListObject,
		MUIA_Frame, MUIV_Frame_InputList,
		MUIA_List_Title, TRUE,
		MUIA_List_Format, "BAR,BAR,BAR,BAR,BAR,BAR,BAR,",
		MUIA_List_DisplayHook, &DisplayHookEvenementsHook,
	End;

	Object->ListJournal = ListviewObject,
		MUIA_HelpNode, "ListJournal",
		MUIA_Listview_List, Object->ListJournal,
	End;

	Journal = GroupObject,
		MUIA_HelpNode, "Journal",
		Child, Object->ListJournal,
	End;

	Object->ChoixTraces = CycleObject,
		MUIA_HelpNode, "ChoixTraces",
		MUIA_Cycle_Entries, Object->ChoixTracesContent,
	End;

	Object->Trace_DateStart = StringObject,
		MUIA_Weight, 80,
		MUIA_Frame, MUIV_Frame_String,
		MUIA_HelpNode, "Trace_DateStart",
		MUIA_String_Contents, "01/01/1978",
		MUIA_String_MaxLen, 11,
		MUIA_String_Format, MUIV_String_Format_Center,
	End;

	Object->Trace_TimeStart = StringObject,
		MUIA_Weight, 60,
		MUIA_Frame, MUIV_Frame_String,
		MUIA_HelpNode, "Trace_TimeStart",
		MUIA_String_Contents, "00:00",
		MUIA_String_MaxLen, 6,
		MUIA_String_Format, MUIV_String_Format_Center,
	End;

	Object->Trace_RangeDown = TextObject,
		ButtonFrame,
		MUIA_Weight, 20,
		MUIA_Background, MUII_ButtonBack,
		MUIA_Text_Contents, "<",
		MUIA_Text_PreParse, "\033c",
		MUIA_HelpNode, "Trace_RangeDown",
		MUIA_InputMode, MUIV_InputMode_RelVerify,
	End;

	Object->Trace_Range = CycleObject,
		MUIA_HelpNode, "Trace_Range",
		MUIA_Cycle_Entries, Object->Trace_RangeContent,
	End;

	Object->Trace_RangeUp = TextObject,
		ButtonFrame,
		MUIA_Weight, 20,
		MUIA_Background, MUII_ButtonBack,
		MUIA_Text_Contents, ">",
		MUIA_Text_PreParse, "\033c",
		MUIA_HelpNode, "Trace_RangeUp",
		MUIA_InputMode, MUIV_InputMode_RelVerify,
	End;

	Object->Trace_DateEnd = StringObject,
		MUIA_Weight, 80,
		MUIA_Frame, MUIV_Frame_String,
		MUIA_HelpNode, "Trace_DateEnd",
		MUIA_String_Contents, "01/01/1978",
		MUIA_String_MaxLen, 11,
		MUIA_String_Format, MUIV_String_Format_Center,
	End;

	Object->Trace_TimeEnd = StringObject,
		MUIA_Weight, 60,
		MUIA_Frame, MUIV_Frame_String,
		MUIA_HelpNode, "Trace_TimeEnd",
		MUIA_String_Contents, "00:00",
		MUIA_String_MaxLen, 6,
		MUIA_String_Format, MUIV_String_Format_Center,
	End;

	GR_TRACES_TEMPS = GroupObject,
		MUIA_HelpNode, "GR_TRACES_TEMPS",
		MUIA_Group_Columns, 7,
		Child, Object->Trace_DateStart,
		Child, Object->Trace_TimeStart,
		Child, Object->Trace_RangeDown,
		Child, Object->Trace_Range,
		Child, Object->Trace_RangeUp,
		Child, Object->Trace_DateEnd,
		Child, Object->Trace_TimeEnd,
	End;

	GR_TRACES_SEL = GroupObject,
		MUIA_HelpNode, "GR_TRACES_SEL",
		Child, Object->ChoixTraces,
		Child, GR_TRACES_TEMPS,
	End;

	Object->ListTraceNum = ListObject,
		MUIA_Frame, MUIV_Frame_InputList,
		MUIA_List_Format, "BAR,BAR,",
		MUIA_List_DisplayHook, &DisplayHookTraceNumHook,
	End;

	Object->ListTraceNum = ListviewObject,
		MUIA_HelpNode, "ListTraceNum",
		MUIA_Listview_List, Object->ListTraceNum,
	End;

//MLD
  Object->GraphTrace = NewObject(mccgraph->mcc_Class,NULL,
		TextFrame,
		MUIA_Background, MUII_BACKGROUND,
		TAG_DONE),

	TracesNumerique = GroupObject,
		MUIA_HelpNode, "TracesNumerique",
		Child, Object->ListTraceNum,
	End;

	TracesGraphique = GroupObject,
		MUIA_HelpNode, "TracesGraphique",
    Child, Object->GraphTrace,  //MLD
	End;

	Object->GR_TRACES_MODE = RegisterObject,
		MUIA_Register_Titles, Object->STR_GR_TRACES_MODE,
		MUIA_HelpNode, "GR_TRACES_MODE",
		Child, TracesNumerique,
		Child, TracesGraphique,
	End;

	Traces = GroupObject,
		MUIA_HelpNode, "Traces",
		Child, GR_TRACES_SEL,
		Child, Object->GR_TRACES_MODE,
	End;

	GR_grp_VISU = RegisterObject,
		MUIA_Register_Titles, Object->STR_GR_grp_VISU,
		MUIA_HelpNode, "GR_grp_VISU",
		Child, Messages,
		Child, Etats,
		Child, Journal,
		Child, Traces,
	End;

	Object->Connect = TextObject,
		ButtonFrame,
		MUIA_Weight, 14,
		MUIA_Background, MUII_ButtonBack,
		MUIA_Text_Contents, "Connexion",
		MUIA_Text_PreParse, "\033c",
		MUIA_HelpNode, "Connect",
		MUIA_InputMode, MUIV_InputMode_RelVerify,
	End;

	Object->Disconnect = TextObject,
		ButtonFrame,
		MUIA_Weight, 15,
		MUIA_Background, MUII_ButtonBack,
		MUIA_Text_Contents, "Déconnexion",
		MUIA_Text_PreParse, "\033c",
		MUIA_HelpNode, "Disconnect",
		MUIA_InputMode, MUIV_InputMode_RelVerify,
	End;

	Object->ComState = TextObject,
		MUIA_Background, MUII_TextBack,
		MUIA_Frame, MUIV_Frame_Text,
		MUIA_Text_Contents, Object->STR_ComState,
		MUIA_Text_SetMin, TRUE,
	End;

	Object->ComTime = TextObject,
		MUIA_Weight, 7,
		MUIA_Background, MUII_TextBack,
		MUIA_Frame, MUIV_Frame_Text,
		MUIA_Text_Contents, Object->STR_ComTime,
		MUIA_Text_SetMin, TRUE,
	End;

	GR_grp_CNX = GroupObject,
		MUIA_HelpNode, "GR_grp_CNX",
		MUIA_Group_Columns, 4,
		MUIA_Group_SameHeight, TRUE,
		MUIA_Group_HorizSpacing, 10,
		Child, Object->Connect,
		Child, Object->Disconnect,
		Child, Object->ComState,
		Child, Object->ComTime,
	End;

	GROUP_ROOT_0 = GroupObject,
		Child, GR_grp_INFOS,
		Child, GR_grp_TELPSW,
		Child, GR_grp_VISU,
		Child, GR_grp_CNX,
	End;

	MNlabel1About = MenuitemObject,
		MUIA_Menuitem_Title, "A propos",
		MUIA_Menuitem_Shortcut, "?",
	End;

	MNlabel1AboutMUI = MenuitemObject,
		MUIA_Menuitem_Title, "A propos de MUI",
	End;

	MNlabel1BarLabel0 = MUI_MakeObject(MUIO_Menuitem, NM_BARLABEL, 0, 0, 0);

	MNlabel1Quit = MenuitemObject,
		MUIA_Menuitem_Title, "Quitter",
		MUIA_Menuitem_Shortcut, "Q",
	End;

	MNlabel1Project = MenuitemObject,
		MUIA_Menuitem_Title, "Projet",
		MUIA_Family_Child, MNlabel1About,
		MUIA_Family_Child, MNlabel1AboutMUI,
		MUIA_Family_Child, MNlabel1BarLabel0,
		MUIA_Family_Child, MNlabel1Quit,
	End;

	MNlabel1Prefs = MenuitemObject,
		MUIA_Menuitem_Title, "Prefs",
		MUIA_Menuitem_Shortcut, "P",
	End;

	MNlabel1PrefsMUI = MenuitemObject,
		MUIA_Menuitem_Title, "Prefs MUI",
	End;

	MNlabel1Settings = MenuitemObject,
		MUIA_Menuitem_Title, "Réglages",
		MUIA_Family_Child, MNlabel1Prefs,
		MUIA_Family_Child, MNlabel1PrefsMUI,
	End;

	Object->MN_label_1 = MenustripObject,
		MUIA_Family_Child, MNlabel1Project,
		MUIA_Family_Child, MNlabel1Settings,
	End;

	Object->WI_Main = WindowObject,
		MUIA_Window_Title, "ClipWatch",
		MUIA_Window_Menustrip, Object->MN_label_1,
		MUIA_Window_ID, MAKE_ID('0', 'W', 'I', 'N'),
		WindowContents, GROUP_ROOT_0,
	End;

	Object->Prefs_InitStringModem = StringObject,
		MUIA_Frame, MUIV_Frame_String,
		MUIA_HelpNode, "Prefs_InitStringModem",
	End;

	obj_aux21 = Label2("Chaîne d'init. du modem");

	obj_aux20 = GroupObject,
		MUIA_Group_Columns, 2,
		Child, obj_aux21,
		Child, Object->Prefs_InitStringModem,
	End;

	Object->Prefs_Device = StringObject,
		MUIA_Frame, MUIV_Frame_String,
		MUIA_HelpNode, "Prefs_Device",
	End;

	obj_aux23 = Label2("Device");

	obj_aux22 = GroupObject,
		MUIA_Group_Columns, 2,
		Child, obj_aux23,
		Child, Object->Prefs_Device,
	End;

	Space_9 = HSpace(20);

	Object->Prefs_Unit = StringObject,
		MUIA_Frame, MUIV_Frame_String,
		MUIA_HelpNode, "Prefs_Unit",
		MUIA_String_Accept, "-0123456789",
	End;

	obj_aux25 = Label2("Unité");

	obj_aux24 = GroupObject,
		MUIA_Group_Columns, 2,
		MUIA_Weight, 20,
		Child, obj_aux25,
		Child, Object->Prefs_Unit,
	End;

	GR_grp_DeviceUnit = GroupObject,
		MUIA_HelpNode, "GR_grp_DeviceUnit",
		MUIA_Group_Columns, 3,
		Child, obj_aux22,
		Child, Space_9,
		Child, obj_aux24,
	End;

	LA_label_vitesse = Label("Vitesse");

	Object->Prefs_Vitesse = CycleObject,
		MUIA_HelpNode, "Prefs_Vitesse",
		MUIA_Weight, 46,
		MUIA_Cycle_Entries, Object->Prefs_VitesseContent,
	End;

	LA_label_bps = Label("bps");

	SpaceH_1 = HSpace(120);

	GR_grp_Vitesse = GroupObject,
		MUIA_HelpNode, "GR_grp_Vitesse",
		MUIA_Group_Columns, 4,
		Child, LA_label_vitesse,
		Child, Object->Prefs_Vitesse,
		Child, LA_label_bps,
		Child, SpaceH_1,
	End;

	SpaceV_1 = VSpace(3);

	REC_label_6CC = RectangleObject,
		MUIA_Rectangle_HBar, TRUE,
		MUIA_FixHeight, 2,
	End;

	SpaceV_2 = VSpace(3);

	Object->Prefs_RecupJournal = CheckMark(FALSE);

	obj_aux27 = Label2("Rapatriement du journal des événements");

	obj_aux26 = GroupObject,
		MUIA_Group_Columns, 2,
		Child, obj_aux27,
		Child, Object->Prefs_RecupJournal,
	End;

	SpaceH_2 = HSpace(30);

	GR_grp_Journal = GroupObject,
		MUIA_HelpNode, "GR_grp_Journal",
		MUIA_Group_Columns, 2,
		Child, obj_aux26,
		Child, SpaceH_2,
	End;

	Object->Prefs_RecupTraces = CheckMark(FALSE);

	obj_aux29 = Label2("Rapatriement des traces");

	obj_aux28 = GroupObject,
		MUIA_Group_Columns, 2,
		Child, obj_aux29,
		Child, Object->Prefs_RecupTraces,
	End;

	SpaceH_3 = HSpace(0);

	GR_grp_Traces = GroupObject,
		MUIA_HelpNode, "GR_grp_Traces",
		MUIA_Group_Columns, 2,
		Child, obj_aux28,
		Child, SpaceH_3,
	End;

	Object->Prefs_RecupMessages = CheckMark(FALSE);

	obj_aux31 = Label2("Rapatriement des messages");

	obj_aux30 = GroupObject,
		MUIA_Group_Columns, 2,
		Child, obj_aux31,
		Child, Object->Prefs_RecupMessages,
	End;

	SpaceH_4 = HSpace(0);

	GR_grp_Messages = GroupObject,
		MUIA_HelpNode, "GR_grp_Messages",
		MUIA_Group_Columns, 2,
		Child, obj_aux30,
		Child, SpaceH_4,
	End;

	Object->Prefs_Monitor = CheckMark(FALSE);

	obj_aux33 = Label2("Moniteur");

	obj_aux32 = GroupObject,
		MUIA_Group_Columns, 2,
		Child, obj_aux33,
		Child, Object->Prefs_Monitor,
	End;

	Object->Prefs_Monitor_Type = CycleObject,
		MUIA_HelpNode, "Prefs_Monitor_Type",
		MUIA_Cycle_Entries, Object->Prefs_Monitor_TypeContent,
	End;

	GR_grp_Monitor = GroupObject,
		MUIA_HelpNode, "GR_grp_Monitor",
		MUIA_Group_Horiz, TRUE,
		Child, obj_aux32,
		Child, Object->Prefs_Monitor_Type,
	End;

	SpaceV_3 = VSpace(3);

	REC_label_6 = RectangleObject,
		MUIA_Rectangle_HBar, TRUE,
		MUIA_FixHeight, 2,
	End;

	SpaceV_4 = VSpace(3);

	Object->Prefs_Save = TextObject,
		ButtonFrame,
		MUIA_Weight, 30,
		MUIA_Background, MUII_ButtonBack,
		MUIA_Text_Contents, "Sauver",
		MUIA_Text_PreParse, "\033c",
		MUIA_HelpNode, "Prefs_Save",
		MUIA_InputMode, MUIV_InputMode_RelVerify,
	End;

	Object->Prefs_Use = TextObject,
		ButtonFrame,
		MUIA_Weight, 30,
		MUIA_Background, MUII_ButtonBack,
		MUIA_Text_Contents, "Utiliser",
		MUIA_Text_PreParse, "\033c",
		MUIA_HelpNode, "Prefs_Use",
		MUIA_InputMode, MUIV_InputMode_RelVerify,
	End;

	Object->Prefs_Cancel = TextObject,
		ButtonFrame,
		MUIA_Weight, 30,
		MUIA_Background, MUII_ButtonBack,
		MUIA_Text_Contents, "Annuler",
		MUIA_Text_PreParse, "\033c",
		MUIA_HelpNode, "Prefs_Cancel",
		MUIA_InputMode, MUIV_InputMode_RelVerify,
	End;

	GR_grp_Validation = GroupObject,
		MUIA_HelpNode, "GR_grp_Validation",
		MUIA_Group_Columns, 3,
		Child, Object->Prefs_Save,
		Child, Object->Prefs_Use,
		Child, Object->Prefs_Cancel,
	End;

	GROUP_ROOT_1 = GroupObject,
		MUIA_Group_Rows, 14,
		Child, obj_aux20,
		Child, GR_grp_DeviceUnit,
		Child, GR_grp_Vitesse,
		Child, SpaceV_1,
		Child, REC_label_6CC,
		Child, SpaceV_2,
		Child, GR_grp_Journal,
		Child, GR_grp_Traces,
		Child, GR_grp_Messages,
		Child, GR_grp_Monitor,
		Child, SpaceV_3,
		Child, REC_label_6,
		Child, SpaceV_4,
		Child, GR_grp_Validation,
	End;

	Object->WI_Prefs = WindowObject,
		MUIA_Window_Title, "Preferences",
		MUIA_Window_ID, MAKE_ID('1', 'W', 'I', 'N'),
		MUIA_Window_NoMenus, TRUE,
		WindowContents, GROUP_ROOT_1,
	End;

	Object->ListSavedSites = ListObject,
		MUIA_Frame, MUIV_Frame_InputList,
	End;

	Object->ListSavedSites = ListviewObject,
		MUIA_HelpNode, "ListSavedSites",
		MUIA_Listview_List, Object->ListSavedSites,
	End;

	GR_grp_25 = GroupObject,
		MUIA_HelpNode, "GR_grp_25",
		Child, Object->ListSavedSites,
	End;

	GROUP_ROOT_2 = GroupObject,
		Child, GR_grp_25,
	End;

	Object->WI_SelectSite = WindowObject,
		MUIA_Window_Title, "Choisissez un site sauvegardé",
		MUIA_Window_ID, MAKE_ID('2', 'W', 'I', 'N'),
		WindowContents, GROUP_ROOT_2,
	End;

	Object->App = ApplicationObject,
		MUIA_Application_Author, "Marc Le Douarain",
		MUIA_Application_Base, "ClipWatch",
		MUIA_Application_Title, "ClipWatch",
		MUIA_Application_Version, "$VER: ClipWatch " VERSION "  " COMPILATION_DATE,
		MUIA_Application_Copyright, "Copyright 1999 Marc Le Douarain (mavati@club-internet.fr)",
		MUIA_Application_Description, "Utilitaire pour télétrans Clip/Force",
//		MUIA_HelpFile, "ClipWatch_gui.guide",
		SubWindow, Object->WI_Main,
		SubWindow, Object->WI_Prefs,
		SubWindow, Object->WI_SelectSite,
	End;


	if (!Object->App)
	{
		FreeVec(Object);
		return(NULL);
	}

	DoMethod(MNlabel1About,
		MUIM_Notify, MUIA_Menuitem_Trigger, MUIV_EveryTime,
		Object->App,
		2,
		MUIM_Application_ReturnID, ID_MENU_ABOUT
		);

	DoMethod(MNlabel1AboutMUI,
		MUIM_Notify, MUIA_Menuitem_Trigger, MUIV_EveryTime,
		Object->App,
		2,
		MUIM_Application_ReturnID, ID_MENU_ABOUTMUI
		);

	DoMethod(MNlabel1Quit,
		MUIM_Notify, MUIA_Menuitem_Trigger, MUIV_EveryTime,
		Object->WI_Main,
		3,
		MUIM_Set, MUIA_Window_Open, FALSE
		);

	DoMethod(MNlabel1Quit,
		MUIM_Notify, MUIA_Menuitem_Trigger, MUIV_EveryTime,
		Object->App,
		2,
		MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit
		);

	DoMethod(MNlabel1Prefs,
		MUIM_Notify, MUIA_Menuitem_Trigger, MUIV_EveryTime,
		Object->App,
		2,
		MUIM_Application_ReturnID, ID_PREFS_WINDOWOPENED
		);

	DoMethod(MNlabel1Prefs,
		MUIM_Notify, MUIA_Menuitem_Trigger, MUIV_EveryTime,
		Object->WI_Prefs,
		3,
		MUIM_Set, MUIA_Window_Open, TRUE
		);

	DoMethod(MNlabel1PrefsMUI,
		MUIM_Notify, MUIA_Menuitem_Trigger, MUIV_EveryTime,
		Object->App,
		2,
		MUIM_Application_ReturnID, ID_MENU_PREFSMUI
		);

	DoMethod(Object->WI_Main,
		MUIM_Notify, MUIA_Window_CloseRequest, TRUE,
		Object->WI_Main,
		3,
		MUIM_Set, MUIA_Window_Open, FALSE
		);

	DoMethod(Object->WI_Main,
		MUIM_Notify, MUIA_Window_CloseRequest, TRUE,
		Object->App,
		2,
		MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit
		);

	DoMethod(Object->SelectSiteSaved,
		MUIM_Notify, MUIA_Pressed, FALSE,
		Object->WI_SelectSite,
		3,
		MUIM_Set, MUIA_Window_Open, TRUE
		);

	DoMethod(GR_grp_VISU,
		MUIM_Notify, MUIA_Group_ActivePage, 2,
		Object->WI_Main,
		3,
		MUIM_Set, MUIA_Window_ActiveObject, Object->ListJournal
		);

	DoMethod(GR_grp_VISU,
		MUIM_Notify, MUIA_Group_ActivePage, 1,
		Object->WI_Main,
		3,
		MUIM_Set, MUIA_Window_ActiveObject, Object->ListEtats
		);

	DoMethod(Object->ChoixTraces,
		MUIM_Notify, MUIA_Cycle_Active, MUIV_EveryTime,
		Object->App,
		2,
		MUIM_Application_ReturnID, ID_TRACE_REFRESH
		);

	DoMethod(Object->Trace_DateStart,
		MUIM_Notify, MUIA_String_Acknowledge, MUIV_EveryTime,
		Object->App,
		2,
		MUIM_Application_ReturnID, ID_TRACE_START
		);

	DoMethod(Object->Trace_TimeStart,
		MUIM_Notify, MUIA_String_Acknowledge, MUIV_EveryTime,
		Object->App,
		2,
		MUIM_Application_ReturnID, ID_TRACE_START
		);

	DoMethod(Object->Trace_RangeDown,
		MUIM_Notify, MUIA_Pressed, FALSE,
		Object->App,
		2,
		MUIM_Application_ReturnID, ID_TRACE_RANGEDOWN
		);

	DoMethod(Object->Trace_Range,
		MUIM_Notify, MUIA_Cycle_Active, MUIV_EveryTime,
		Object->App,
		2,
		MUIM_Application_ReturnID, ID_TRACE_NEWRANGE
		);

	DoMethod(Object->Trace_RangeUp,
		MUIM_Notify, MUIA_Pressed, FALSE,
		Object->App,
		2,
		MUIM_Application_ReturnID, ID_TRACE_RANGEUP
		);

	DoMethod(Object->Trace_DateEnd,
		MUIM_Notify, MUIA_String_Acknowledge, MUIV_EveryTime,
		Object->App,
		2,
		MUIM_Application_ReturnID, ID_TRACE_END
		);

	DoMethod(Object->Trace_TimeEnd,
		MUIM_Notify, MUIA_String_Acknowledge, MUIV_EveryTime,
		Object->App,
		2,
		MUIM_Application_ReturnID, ID_TRACE_END
		);

	DoMethod(Object->Connect,
		MUIM_Notify, MUIA_Pressed, FALSE,
		Object->App,
		2,
		MUIM_Application_ReturnID, ID_BUTTON_CONNECT
		);

	DoMethod(Object->Disconnect,
		MUIM_Notify, MUIA_Pressed, FALSE,
		Object->App,
		2,
		MUIM_Application_ReturnID, ID_BUTTON_DISCONNECT
		);

	DoMethod(Object->WI_Main,
		MUIM_Window_SetCycleChain, Object->SelectSiteSaved,
		Object->NumTelephone,
		Object->Password,
		Object->MessageTextNum0,
		Object->MessageTextNum1,
		Object->MessageTextNum2,
		Object->MessageTextNum3,
		Object->MessageTextNum4,
		Object->MessageTextNum5,
		Object->MessageTextNum6,
		Object->MessageTextNum7,
		Object->ListEtats,
		Object->ListJournal,
		Object->ChoixTraces,
		Object->Trace_DateStart,
		Object->Trace_TimeStart,
		Object->Trace_RangeDown,
		Object->Trace_Range,
		Object->Trace_RangeUp,
		Object->Trace_DateEnd,
		Object->Trace_TimeEnd,
		Object->GR_TRACES_MODE,
		Object->ListTraceNum,
		Object->Connect,
		Object->Disconnect,
		0
		);

	DoMethod(Object->WI_Prefs,
		MUIM_Notify, MUIA_Window_CloseRequest, TRUE,
		Object->WI_Prefs,
		3,
		MUIM_Set, MUIA_Window_Open, FALSE
		);

	DoMethod(Object->Prefs_Save,
		MUIM_Notify, MUIA_Pressed, FALSE,
		Object->WI_Prefs,
		3,
		MUIM_Set, MUIA_Window_Open, FALSE
		);

	DoMethod(Object->Prefs_Save,
		MUIM_Notify, MUIA_Pressed, FALSE,
		Object->App,
		2,
		MUIM_Application_ReturnID, ID_PREFS_CHANGED
		);

	DoMethod(Object->Prefs_Save,
		MUIM_Notify, MUIA_Pressed, FALSE,
		Object->App,
		2,
		MUIM_Application_ReturnID, ID_PREFS_TOSAVE
		);

	DoMethod(Object->Prefs_Use,
		MUIM_Notify, MUIA_Pressed, FALSE,
		Object->WI_Prefs,
		3,
		MUIM_Set, MUIA_Window_Open, FALSE
		);

	DoMethod(Object->Prefs_Use,
		MUIM_Notify, MUIA_Pressed, FALSE,
		Object->App,
		2,
		MUIM_Application_ReturnID, ID_PREFS_CHANGED
		);

	DoMethod(Object->Prefs_Cancel,
		MUIM_Notify, MUIA_Pressed, FALSE,
		Object->WI_Prefs,
		3,
		MUIM_Set, MUIA_Window_Open, FALSE
		);

	DoMethod(Object->WI_Prefs,
		MUIM_Window_SetCycleChain, Object->Prefs_InitStringModem,
		Object->Prefs_Device,
		Object->Prefs_Unit,
		Object->Prefs_Vitesse,
		Object->Prefs_RecupJournal,
		Object->Prefs_RecupTraces,
		Object->Prefs_RecupMessages,
		Object->Prefs_Monitor,
		Object->Prefs_Monitor_Type,
		Object->Prefs_Save,
		Object->Prefs_Use,
		Object->Prefs_Cancel,
		0
		);

	DoMethod(Object->WI_SelectSite,
		MUIM_Notify, MUIA_Window_CloseRequest, TRUE,
		Object->App,
		2,
		MUIM_Application_ReturnID, ID_SAVED_SITE_LOAD
		);

	DoMethod(Object->WI_SelectSite,
		MUIM_Notify, MUIA_Window_CloseRequest, TRUE,
		Object->WI_SelectSite,
		3,
		MUIM_Set, MUIA_Window_Open, FALSE
		);

	DoMethod(Object->ListSavedSites,
		MUIM_Notify, MUIA_List_Active, MUIV_EveryTime,
		Object->App,
		2,
		MUIM_Application_ReturnID, ID_SAVED_SITE_SELECTED
		);

	DoMethod(Object->WI_SelectSite,
		MUIM_Window_SetCycleChain, Object->ListSavedSites,
		0
		);

	set(Object->WI_Main,
		MUIA_Window_Open, TRUE
		);


	return(Object);
}

void DisposeApp(struct ObjApp * Object)
{
	MUI_DisposeObject(Object->App);
	FreeVec(Object);
}
