#include <libraries/mui.h>
#include <proto/muimaster.h>
#include <clib/exec_protos.h>
#include <exec/memory.h>
#include <clib/alib_protos.h>

struct ObjApp
{
	APTR	App;
	APTR	Main_Window;
	APTR	Registered_Pages_Group;
	APTR	MainWindow_Task_List;
	APTR	MainWindow_Task_StatusBar;
	APTR	MainWindow_Pause_Task;
	APTR	MainWindow_Terminate_Task;
	APTR	MainWindow_Signal_Task;
	APTR	MainWindow_Trace_Task;
	APTR	MainWindow_Information_Task;
	APTR	Task_Info_Window;
	APTR	TaskInfo_Status_Bar;
	APTR	TaskInfo_Struct_List;
	APTR	TaskInfo_Struct_SaveTask;
	APTR	TaskInfo_Struct_HardCopy;
	APTR	TaskInfo_Windows_List;
	APTR	TaskInfo_Window_Close;
	APTR	TaskInfo_Window_Open;
	APTR	TaskInfo_Window_Sleep;
	APTR	TaskInfo_Window_ChangeAttribs;
	APTR	TaskInfo_Window_Move;
	APTR	TaskInfo_Window_HardCopy;
	APTR	TaskInfo_Port_List;
	APTR	TaskInfo_Port_Close;
	APTR	TaskInfo_Port_Monitor;
	APTR	TaskInfo_Interrupt_List;
	APTR	TaskInfo_Interrupt_Mask;
	APTR	TaskInfo_Interrupt_Remove;
	APTR	TaskInfo_Interrupt_SaveCode;
	APTR	TaskInfo_Interrupt_Activate;
	APTR	TaskInfo_Trace_List;
	APTR	TaskInfo_Trace_Start;
	APTR	TaskInfo_Trace_End;
	APTR	TaskInfo_Trace_Options;
	APTR	TaskInfo_Trace_HardCopy;
	APTR	Dissassembler_Window;
	APTR	Dissassembler_Status_Bar;
	APTR	Dissassembler_Output_Float;
	APTR	Dissassembler_Save_ASCII;
	APTR	Dissassembler_Save_Binary;
	APTR	Dissassembler_Save_Source;
	APTR	Dissassembler_Set_Range;
	APTR	Dissassembler_Set_Break;
	APTR	Dissassembler_Rem_Break;
	APTR	Dissassembler_Find_ASCII;
	APTR	Dissassembler_Hard_Copy;
	APTR	Diss_Req_Window;
	APTR	Diss_Req_Start_Address;
	APTR	Diss_Req_End_Address;
	APTR	Diss_Req_Amount_Radio;
	APTR	Diss_Req_Slider;
	APTR	Diss_Req_Gauge;
	APTR	Diss_Req_SaveFile_FileName;
	APTR	STR_Diss_Req_SaveFile_FileName;
	APTR	Diss_Req_SaveFile_Cancel;
	APTR	Diss_Req_SaveFile_Save;
	APTR	Diss_Req_PrintFile_Print;
	APTR	Diss_Req_SetRange_Set;
	APTR	Diss_Req_SetRange_Cancel;
	APTR	Diss_Req_Search_String_Input;
	APTR	Diss_Req_Search_Cancel;
	APTR	Diss_Req_Search_Search;
	char *	STR_MainWindow_Task_StatusBar;
	char *	STR_TaskInfo_Status_Bar;
	char *	STR_Dissassembler_Status_Bar;
	char *	STR_Registered_Pages_Group[6];
	char *	STR_TaskInfo_Register_Group[6];
	char *	Diss_Req_Amount_RadioContent[3];
};

#define MainWindow_PageChange 1
#define MainWindow_Doubled 2
#define MainWindow_ChangeActive 3
#define MainWindow_PauseTask 4
#define MainWindow_TerminateTask 5
#define MainWindow_SignalTask 6
#define MainWindow_TraceTask 7
#define MainWindow_InfoTask 8
#define TaskInfo_SaveTask 9
#define TaskInfo_HardcopyTask 10
#define TaskInfo_CloseWin 11
#define TaskInfo_OpenWin 12
#define TaskInfo_SleepWindow 13
#define TaskInfo_ChangeAttrs 14
#define TaskInfo_MoveWindow 15
#define TaskInfo_HardCopyWin 16
#define TaskInfo_ClosePort 17
#define TaskInfo_MonitorPort 18
#define TaskInfo_RemoveInterrupt 19
#define TaskInfo_SaveInterrupt 20
#define TaskInfo_StartTrace 21
#define TaskInfo_EndTrace 22
#define TaskInfo_TraceOptions 23
#define TaskInfo_HardCopyTrace 24
#define TaskInfo_RunInterrupt 25
#define TaskInfo_MaskInterrupt 26
#define DissWin_SaveASCII 27
#define DissWin_SaveBinary 28
#define DissWin_SaveSource 29
#define DissWin_SetRange 30
#define DissWin_FindASCII 31
#define DissReq_RadioChanged 32
#define DissReq_SliderValue 33
#define DissReq_PrintoutRequested 34
#define DissReq_SetCanceled 35
#define DissReq_RangesSet 36
#define DissReq_CancelASCII 37
#define DissReq_StartASCII 38
#define MainWindow_ActTaskPage 39
#define MainWindow_ActVectorPage 40
#define MainWindow_ActWindowPage 41
#define MainWindow_ActPortPage 42
#define MainWindow_ActSemaphorePage 43
#define ID_MainWindow_CloseRequest 44
#define DissWin_HardCopy 45

extern struct ObjApp * CreateApp(void);
extern void DisposeApp(struct ObjApp *);
