#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 "main_Window.h"
#include "main_WindowExtern.h"


struct ObjEditor_Window * CreateEditor_Window(void)
{
	struct ObjEditor_Window * Object;

	APTR	Group_TopLevel_Layout, Space_6, GR_grp_29;

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

	Object->STR_Position = NULL;
	Object->STR_Size = NULL;
	Object->STR_Name = NULL;
	Object->STR_Fred = NULL;

	Space_6 = HVSpace;

	Object->Position = TextObject,
		MUIA_FramePhantomHoriz, TRUE,
		MUIA_Background, MUII_TextBack,
		MUIA_Frame, MUIV_Frame_Text,
		MUIA_Text_Contents, Object->STR_Position,
		MUIA_Text_SetMin, TRUE,
	End;

	Object->Size = TextObject,
		MUIA_FramePhantomHoriz, TRUE,
		MUIA_Background, MUII_TextBack,
		MUIA_Frame, MUIV_Frame_Text,
		MUIA_Text_Contents, Object->STR_Size,
		MUIA_Text_SetMin, TRUE,
	End;

	Object->Name = TextObject,
		MUIA_FramePhantomHoriz, TRUE,
		MUIA_Background, MUII_TextBack,
		MUIA_Frame, MUIV_Frame_Text,
		MUIA_Text_Contents, Object->STR_Name,
		MUIA_Text_SetMin, TRUE,
	End;

	Object->Fred = TextObject,
		MUIA_FramePhantomHoriz, TRUE,
		MUIA_Background, MUII_TextBack,
		MUIA_Frame, MUIV_Frame_Text,
		MUIA_Text_Contents, Object->STR_Fred,
		MUIA_Text_SetMin, TRUE,
	End;

	GR_grp_29 = GroupObject,
		MUIA_HelpNode, "GR_grp_29",
		MUIA_Background, MUII_TextBack,
		MUIA_Frame, MUIV_Frame_Text,
		MUIA_Group_Horiz, TRUE,
		Child, Object->Position,
		Child, BalanceObject,End,
		Child, Object->Size,
		Child, BalanceObject,End,
		Child, Object->Name,
		Child, BalanceObject,End,
		Child, Object->Fred,
	End;

	Object->Editor_Group = GroupObject,
		Child, Space_6,
		Child, GR_grp_29,
	End;

	Group_TopLevel_Layout = GroupObject,
		Child, Object->Editor_Group,
	End;

	Object->Editor_Window = WindowObject,
		//MUIA_Window_Title, "SAS/C Editor",
		MUIA_Window_ID, MAKE_ID('0', 'W', 'I', 'N'),
		MUIA_Window_Backdrop, TRUE,
		MUIA_Window_Borderless,TRUE,
		MUIA_Window_CloseGadget, FALSE,
		MUIA_Window_DepthGadget, FALSE,
		WindowContents, Group_TopLevel_Layout,
	End;


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

	DoMethod(Object->Editor_Window,
		MUIM_Window_SetCycleChain, Object->Editor_Group,
		0
		);


	return(Object);
}

void DisposeEditor_Window(struct ObjEditor_Window * Object)
{
	MUI_DisposeObject(Object->Editor_Window);
	FreeVec(Object);
}
