
/*
 *  TEST.C
 *
 *  TEST GADGET COMPILATION
 *
 *  WARNING WARNING.  Non DICE C users must open appropriate libraries
 *  (actually, even DICE users will have to, I just added some of the
 *  libraries that need openning to the auto-open library)
 */

#include "x.tpl.c"
#include <clib/intuition_protos.h>

main()
{
    struct Screen *scr;
    struct Window *win;
    struct Gadget *glist;

    if (scr = LockPubScreen(NULL)) {
	if (glist = InitGads(scr)) {
	    win = OpenWindowTags(NULL,
		WA_Flags,   WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|
			    WFLG_SIZEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,

		WA_IDCMP,   IDCMP_NEWSIZE|IDCMP_MOUSEBUTTONS|IDCMP_GADGETDOWN|
			    IDCMP_GADGETUP|IDCMP_MENUPICK|IDCMP_VANILLAKEY|
			    IDCMP_RAWKEY|IDCMP_CHANGEWINDOW|IDCMP_CLOSEWINDOW|
			    IDCMP_REFRESHWINDOW,

		WA_Left,    WIN_LEFT,
		WA_Top,     WIN_TOP,
		WA_Width,   WIN_WIDTH,
		WA_Height,  WIN_HEIGHT,
		WA_Title,   "TEST",
		WA_MinWidth,  32,
		WA_MinHeight, 32,
		WA_MaxWidth,  -1,
		WA_MaxHeight, -1,
		WA_AutoAdjust, 1,
		WA_PubScreen, NULL,
		WA_PubScreenFallBack, 1,
		WA_Gadgets, glist,
		TAG_END
	    );
	    if (win) {
		struct IntuiMessage *im;
		short notDone = 1;

		GT_RefreshWindow(win, NULL);
		while (notDone) {
		    WaitPort(win->UserPort);
		    while (im = GT_GetIMsg(win->UserPort)) {
			switch(im->Class) {
			case IDCMP_CLOSEWINDOW:
			    notDone = 0;
			    break;
			case IDCMP_REFRESHWINDOW:
			    GT_BeginRefresh(win);
			    GT_EndRefresh(win, TRUE);
			    break;
			case IDCMP_GADGETUP:
			    switch(((struct Gadget *)im->IAddress)->GadgetID) {
			    case GAD_B1:
				puts("BUTTON 1");
				break;
			    case GAD_B2:
				puts("BUTTON 2");
				break;
			    case GAD_B3:
				printf("String L3: %s\n", Buf_B3);
				break;
			    case GAD_B4:
				printf("String L4: %s\n", Buf_B4);
				break;
			    case GAD_r1:
				printf("hello %d\n", im->Code);
				break;
			    case GAD_S1:
				printf("SEL %d\n", im->Code);
				break;
			    }
			    break;
			default:
			    break;
			}
			GT_ReplyIMsg(im);
		    }
		}
		CloseWindow(win);
	    }
	}
	FreeGads();
    }
    return(0);
}


