/*
 *  Source machine generated by GadToolsBox V2.0b
 *  which is (c) Copyright 1991-1993 Jaba Development
 *
 *  GUI Designed by : KiLLraVeN/MYSTiC
 */

#include <exec/types.h>
#include <intuition/intuition.h>
#include <intuition/classes.h>
#include <intuition/classusr.h>
#include <intuition/imageclass.h>
#include <intuition/gadgetclass.h>
#include <libraries/gadtools.h>
#include <graphics/displayinfo.h>
#include <graphics/gfxbase.h>
#include <clib/exec_protos.h>
#include <clib/intuition_protos.h>
#include <clib/gadtools_protos.h>
#include <clib/graphics_protos.h>
#include <clib/utility_protos.h>
#include <string.h>

#include "KiLLER_Comment_GUI.h"

struct Screen         *Scr = NULL;
UBYTE                 *PubScreenName = NULL;
APTR                   VisualInfo = NULL;
struct Window         *KiLLER_COMMENTWnd = NULL;
struct Window         *USER_SELECTIONWnd = NULL;
struct Gadget         *KiLLER_COMMENTGList = NULL;
struct Gadget         *USER_SELECTIONGList = NULL;
struct Gadget         *KiLLER_COMMENTGadgets[16];
struct Gadget         *USER_SELECTIONGadgets[2];
UWORD                  KiLLER_COMMENTLeft = 0;
UWORD                  KiLLER_COMMENTTop = 11;
UWORD                  KiLLER_COMMENTWidth = 640;
UWORD                  KiLLER_COMMENTHeight = 109;
UWORD                  USER_SELECTIONLeft = 146;
UWORD                  USER_SELECTIONTop = 11;
UWORD                  USER_SELECTIONWidth = 359;
UWORD                  USER_SELECTIONHeight = 165;
UBYTE                 *KiLLER_COMMENTWdt = (UBYTE *)"KiLLER COMMENT - Config Editor";
UBYTE                 *USER_SELECTIONWdt = (UBYTE *)"User Selection";

struct TextAttr topaz8 = {
	( STRPTR )"topaz.font", 8, 0x00, 0x01 };

struct IntuiText KiLLER_COMMENTIText[] = {
	1, 0, JAM1,128, 5, &topaz8, (UBYTE *)"Additional Information", NULL };

UWORD KiLLER_COMMENTGTypes[] = {
	LISTVIEW_KIND,
	STRING_KIND,
	STRING_KIND,
	STRING_KIND,
	TEXT_KIND,
	BUTTON_KIND,
	BUTTON_KIND,
	BUTTON_KIND,
	BUTTON_KIND,
	BUTTON_KIND,
	BUTTON_KIND,
	BUTTON_KIND,
	BUTTON_KIND,
	BUTTON_KIND,
	INTEGER_KIND,
	BUTTON_KIND
};

UWORD USER_SELECTIONGTypes[] = {
	LISTVIEW_KIND,
	BUTTON_KIND
};

struct NewGadget KiLLER_COMMENTNGad[] = {
	343, 1, 287, 80, NULL, NULL, GD_KC_Users, 0, NULL, NULL,
	83, 18, 251, 13, (UBYTE *)"Known as", NULL, GD_KC_RC_ALIAS, PLACETEXT_LEFT, NULL, NULL,
	83, 35, 251, 13, (UBYTE *)"Info", NULL, GD_KC_RC_INFO, PLACETEXT_LEFT, NULL, NULL,
	83, 52, 229, 13, (UBYTE *)"Comments", NULL, GD_KC_RC_COMMENTFILE, PLACETEXT_LEFT, NULL, NULL,
	343, 77, 287, 15, NULL, NULL, GD_KC_RC_NAME, 0, NULL, NULL,
	344, 92, 72, 13, (UBYTE *)"ADD", NULL, GD_KC_RC_ADD, PLACETEXT_IN, NULL, NULL,
	416, 92, 73, 13, (UBYTE *)"DEL", NULL, GD_KC_RC_DEL, PLACETEXT_IN, NULL, NULL,
	214, 90, 48, 15, (UBYTE *)"Save", NULL, GD_KC_SAVE_QUIT, PLACETEXT_IN, NULL, NULL,
	285, 90, 48, 15, (UBYTE *)"Quit", NULL, GD_KC_QUIT, PLACETEXT_IN, NULL, NULL,
	83, 90, 120, 15, (UBYTE *)"Commentistics", NULL, GD_KC_STATISTICS, PLACETEXT_IN, NULL, NULL,
	312, 52, 22, 13, (UBYTE *)"S", NULL, GD_KC_SELECT_COMMENTS, PLACETEXT_IN, NULL, NULL,
	560, 92, 69, 13, (UBYTE *)"DOWN", NULL, GD_KC_DOWN, PLACETEXT_IN, NULL, NULL,
	489, 92, 71, 13, (UBYTE *)"UP", NULL, GD_KC_UP, PLACETEXT_IN, NULL, NULL,
	262, 90, 23, 15, (UBYTE *)"&", NULL, GD_KC_SAVEQUIT, PLACETEXT_IN, NULL, NULL,
	83, 69, 51, 13, (UBYTE *)"Req. Acs", NULL, GD_KC_MIN_ACS, PLACETEXT_LEFT, NULL, NULL,
	144, 69, 190, 13, (UBYTE *)"Clear Statistical Data", NULL, GD_KC_CLEAR_ACCOUNT, PLACETEXT_IN, NULL, NULL
};

struct NewGadget USER_SELECTIONNGad[] = {
	3, 16, 345, 128, (UBYTE *)"Please select a user", NULL, GD_KC_SELECT_USER, PLACETEXT_ABOVE, NULL, NULL,
	115, 144, 121, 15, (UBYTE *)"Cancel", NULL, GD_KC_CANCEL, PLACETEXT_IN, NULL, NULL
};

ULONG KiLLER_COMMENTGTags[] = {
	(GTLV_Labels) , (ULONG)&KC_Users0List , (TAG_DONE),
	(GTST_MaxChars), 30, (TAG_DONE),
	(GTST_MaxChars), 80, (TAG_DONE),
	(GTST_MaxChars), 128, (TAG_DONE),
	(GTTX_Border), TRUE, (TAG_DONE),
	(TAG_DONE),
	(TAG_DONE),
	(TAG_DONE),
	(TAG_DONE),
	(GA_Disabled), TRUE, (TAG_DONE),
	(TAG_DONE),
	(TAG_DONE),
	(TAG_DONE),
	(TAG_DONE),
	(GTIN_Number), 0, (GTIN_MaxChars), 5, (STRINGA_Justification), (GACT_STRINGRIGHT), (TAG_DONE),
	(TAG_DONE)
};

ULONG USER_SELECTIONGTags[] = {
	(GTLV_Labels) , (ULONG) &KC_SELECT_USER1List , (TAG_DONE),
	(TAG_DONE)
};

int SetupScreen( void )
{
	if ( ! ( Scr = LockPubScreen( PubScreenName )))
		return( 1L );

	if ( ! ( VisualInfo = GetVisualInfo( Scr, TAG_DONE )))
		return( 2L );

	return( 0L );
}

void CloseDownScreen( void )
{
	if ( VisualInfo ) {
		FreeVisualInfo( VisualInfo );
		VisualInfo = NULL;
	}

	if ( Scr        ) {
		UnlockPubScreen( NULL, Scr );
		Scr = NULL;
	}
}

void KiLLER_COMMENTRender( void )
{
	UWORD		offx, offy;

	offx = KiLLER_COMMENTWnd->BorderLeft;
	offy = KiLLER_COMMENTWnd->BorderTop;


	DrawBevelBox( KiLLER_COMMENTWnd->RPort, offx + 81, offy + 68, 55, 15, GT_VisualInfo, VisualInfo, GTBB_Recessed, TRUE, TAG_DONE );
	DrawBevelBox( KiLLER_COMMENTWnd->RPort, offx + 142, offy + 68, 194, 15, GT_VisualInfo, VisualInfo, GTBB_Recessed, TRUE, TAG_DONE );
	DrawBevelBox( KiLLER_COMMENTWnd->RPort, offx + 212, offy + 89, 123, 17, GT_VisualInfo, VisualInfo, GTBB_Recessed, TRUE, TAG_DONE );
	DrawBevelBox( KiLLER_COMMENTWnd->RPort, offx + 81, offy + 89, 124, 17, GT_VisualInfo, VisualInfo, GTBB_Recessed, TRUE, TAG_DONE );
	DrawBevelBox( KiLLER_COMMENTWnd->RPort, offx + 81, offy + 51, 255, 15, GT_VisualInfo, VisualInfo, GTBB_Recessed, TRUE, TAG_DONE );
	DrawBevelBox( KiLLER_COMMENTWnd->RPort, offx + 81, offy + 34, 255, 15, GT_VisualInfo, VisualInfo, GTBB_Recessed, TRUE, TAG_DONE );
	DrawBevelBox( KiLLER_COMMENTWnd->RPort, offx + 81, offy + 17, 255, 15, GT_VisualInfo, VisualInfo, GTBB_Recessed, TRUE, TAG_DONE );
	DrawBevelBox( KiLLER_COMMENTWnd->RPort, offx + 341, offy + 0, 291, 106, GT_VisualInfo, VisualInfo, GTBB_Recessed, TRUE, TAG_DONE );
	PrintIText( KiLLER_COMMENTWnd->RPort, KiLLER_COMMENTIText, offx, offy );
}

int OpenKiLLER_COMMENTWindow( void )
{
	struct NewGadget	ng;
	struct Gadget	*g;
	UWORD		lc, tc;
	UWORD		offx = Scr->WBorLeft, offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;

	if ( ! ( g = CreateContext( &KiLLER_COMMENTGList )))
		return( 1L );

	for( lc = 0, tc = 0; lc < KiLLER_COMMENT_CNT; lc++ ) {

		CopyMem((char * )&KiLLER_COMMENTNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));

		ng.ng_VisualInfo = VisualInfo;
		ng.ng_TextAttr   = &topaz8;
		ng.ng_LeftEdge  += offx;
		ng.ng_TopEdge   += offy;

		KiLLER_COMMENTGadgets[ lc ] = g = CreateGadgetA((ULONG)KiLLER_COMMENTGTypes[ lc ], g, &ng, ( struct TagItem * )&KiLLER_COMMENTGTags[ tc ] );

		while( KiLLER_COMMENTGTags[ tc ] ) tc += 2;
		tc++;

		if ( NOT g )
			return( 2L );
	}

	if ( ! ( KiLLER_COMMENTWnd = OpenWindowTags( NULL,
				WA_Left,	KiLLER_COMMENTLeft,
				WA_Top,		KiLLER_COMMENTTop,
				WA_Width,	KiLLER_COMMENTWidth,
				WA_Height,	KiLLER_COMMENTHeight + offy,
				WA_IDCMP,	LISTVIEWIDCMP|STRINGIDCMP|TEXTIDCMP|BUTTONIDCMP|INTEGERIDCMP|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
				WA_Flags,	WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE|WFLG_RMBTRAP,
				WA_Gadgets,	KiLLER_COMMENTGList,
				WA_Title,	KiLLER_COMMENTWdt,
				WA_ScreenTitle,	"KiLLER Comment 1.0 - MYSTiC 1994 - Copyright 1994 by KiLLraVeN/MYSTiC",
				WA_PubScreen,	Scr,
				TAG_DONE )))
	return( 4L );

	GT_RefreshWindow( KiLLER_COMMENTWnd, NULL );

	KiLLER_COMMENTRender();

	return( 0L );
}

void CloseKiLLER_COMMENTWindow( void )
{
	if ( KiLLER_COMMENTWnd        ) {
		CloseWindow( KiLLER_COMMENTWnd );
		KiLLER_COMMENTWnd = NULL;
	}

	if ( KiLLER_COMMENTGList      ) {
		FreeGadgets( KiLLER_COMMENTGList );
		KiLLER_COMMENTGList = NULL;
	}
}

int OpenUSER_SELECTIONWindow( void )
{
	struct NewGadget	ng;
	struct Gadget	*g;
	UWORD		lc, tc;
	UWORD		offx = Scr->WBorLeft, offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;

	if ( ! ( g = CreateContext( &USER_SELECTIONGList )))
		return( 1L );

	for( lc = 0, tc = 0; lc < USER_SELECTION_CNT; lc++ ) {

		CopyMem((char * )&USER_SELECTIONNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));

		ng.ng_VisualInfo = VisualInfo;
		ng.ng_TextAttr   = &topaz8;
		ng.ng_LeftEdge  += offx;
		ng.ng_TopEdge   += offy;

		USER_SELECTIONGadgets[ lc ] = g = CreateGadgetA((ULONG)USER_SELECTIONGTypes[ lc ], g, &ng, ( struct TagItem * )&USER_SELECTIONGTags[ tc ] );

		while( USER_SELECTIONGTags[ tc ] ) tc += 2;
		tc++;

		if ( NOT g )
			return( 2L );
	}

	if ( ! ( USER_SELECTIONWnd = OpenWindowTags( NULL,
				WA_Left,	USER_SELECTIONLeft,
				WA_Top,		USER_SELECTIONTop,
				WA_Width,	USER_SELECTIONWidth,
				WA_Height,	USER_SELECTIONHeight + offy,
				WA_IDCMP,	LISTVIEWIDCMP|BUTTONIDCMP|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
				WA_Flags,	WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE|WFLG_RMBTRAP,
				WA_Gadgets,	USER_SELECTIONGList,
				WA_Title,	USER_SELECTIONWdt,
				WA_ScreenTitle,	"KiLLER COMMENT 1.0 - MYSTiC 1994 - Copyright 1994 by KiLLraVeN/MYSTiC",
				WA_PubScreen,	Scr,
				TAG_DONE )))
	return( 4L );

	GT_RefreshWindow( USER_SELECTIONWnd, NULL );

	return( 0L );
}

void CloseUSER_SELECTIONWindow( void )
{
	if ( USER_SELECTIONWnd        ) {
		CloseWindow( USER_SELECTIONWnd );
		USER_SELECTIONWnd = NULL;
	}

	if ( USER_SELECTIONGList      ) {
		FreeGadgets( USER_SELECTIONGList );
		USER_SELECTIONGList = NULL;
	}
}

