#include <libraries/mui.h> 
#include <clib/alib_protos.h>
#include <clib/muimaster_protos.h>
#include <pragma/muimaster_lib.h>
#include <clib/exec_protos.h>
#include <exec/types.h>
#include <mui/nlistview_mcc.h>

#include "PoetGUI.h"

#include <stdio.h>

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

extern Library *MUIMasterBase;

PoetGUI::PoetGUI(){
	if(MUIMasterBase=OpenLibrary("muimaster.library",0)){
		app = ApplicationObject,                                                                 
 	    	MUIA_Application_Title,                         "PoetGUI",                         
        	MUIA_Application_Version,                       "$VER: PoetOutput 0.01 (15/03/2000)",    
        	MUIA_Application_Copyright,                     "©2000 T.Miles",
        	MUIA_Application_Author,                        "Tom Miles",                
        	MUIA_Application_Description,           			"Eye Candy Fever",                 
        	MUIA_Application_Base,                          "Poet", 
        	MUIA_Application_UseCommodities,						FALSE,
        	MUIA_Application_UseRexx,								FALSE,                        
			SubWindow, wi_main = WindowObject,               
        		MUIA_Window_ID, MAKE_ID('M','A','I','N'),
        		MUIA_Window_Title,"Poet Prefs",
        		WindowContents, VGroup,
        			Child, lv_wordsets=NListviewObject,
        				MUIA_NListview_NList, NListObject,
        				InputListFrame,
	      			MUIA_NList_ConstructHook, MUIV_NList_ConstructHook_String,
						MUIA_NList_DestructHook, MUIV_NList_ConstructHook_String,
						MUIA_NList_Title, "WordSets",
						End,
					End,
					Child, HGroup,
						Child, bt_file=SimpleButton("_Add Set"),
						Child, bt_remove=SimpleButton("_Delete Set"),
					End,
					Child, bt_conclose=SimpleButton("_Close Console"),
        			Child, HGroup,
        				Child, bt_save=SimpleButton("_Save"),
        				Child, bt_use=SimpleButton("_Use"),
        				Child, bt_load=SimpleButton("_Load"),
        			End,
        		End,
        	End,
      End;
		
		if (!app)
			printf("Error Creating gui\n");
		else{
			DoMethod((Object *)wi_main,MUIM_Notify,MUIA_Window_CloseRequest,TRUE,app,2,MUIM_Application_ReturnID,ID_CANCEL);
			DoMethod((Object *)bt_use,MUIM_Notify,MUIA_Pressed,FALSE,app,2,MUIM_Application_ReturnID,ID_USE);
			DoMethod((Object *)bt_save,MUIM_Notify,MUIA_Pressed,FALSE,app,2,MUIM_Application_ReturnID,ID_SAVE);
			DoMethod((Object *)bt_load,MUIM_Notify,MUIA_Pressed,FALSE,app,2,MUIM_Application_ReturnID,ID_LOAD);
			DoMethod((Object *)bt_file,MUIM_Notify,MUIA_Pressed,FALSE,app,2,MUIM_Application_ReturnID,ID_FILE);
			DoMethod((Object *)bt_conclose,MUIM_Notify,MUIA_Pressed,FALSE,app,2,MUIM_Application_ReturnID,ID_CONCLOSE);
			DoMethod((Object *)bt_remove,MUIM_Notify,MUIA_Pressed,FALSE,app,2,MUIM_Application_ReturnID,ID_REMOVE);
		}
	}
}

PoetGUI::~PoetGUI(){
	if (app)
		MUI_DisposeObject((Object *)app);
	if (MUIMasterBase)
		CloseLibrary(MUIMasterBase);
}	

void PoetGUI::gui_OpenWin(){
	SetAttrs(wi_main, MUIA_Window_Open, TRUE);
}

void PoetGUI::gui_CloseWin(){
	SetAttrs(wi_main, MUIA_Window_Open, FALSE);
}
