/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\ * |_o_o|\\ Copyright (c) 1987 The Software Distillery. All Rights Reserved * * |. o.| || Written by Doug Walker * * | . | || The Software Distillery * * | o | || 235 Trillingham Lane * * | . |// Cary, NC 27511 * * ====== BBS:(919)-471-6436 * \* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include #include #include "hackicon.h" struct Image colimage[CTSIZ] = { /* Imagery for color selection gadgets */ {0,0,PLXWIDTH,PLYHEIGHT,1, NULL ,0,0,NULL }, {0,0,PLXWIDTH,PLYHEIGHT,1, NULL ,0,1,NULL }, {0,0,PLXWIDTH,PLYHEIGHT,1, NULL ,0,2,NULL }, {0,0,PLXWIDTH,PLYHEIGHT,1, NULL ,0,3,NULL }, {0,0,PLXWIDTH,PLYHEIGHT,1, NULL ,0,4,NULL }, {0,0,PLXWIDTH,PLYHEIGHT,1, NULL ,0,5,NULL }, {0,0,PLXWIDTH,PLYHEIGHT,1, NULL ,0,6,NULL }, {0,0,PLXWIDTH,PLYHEIGHT,1, NULL ,0,7,NULL }, {0,0,PLXWIDTH,PLYHEIGHT,1, NULL ,0,8,NULL }, {0,0,PLXWIDTH,PLYHEIGHT,1, NULL ,0,9,NULL }, {0,0,PLXWIDTH,PLYHEIGHT,1, NULL ,0,10,NULL}, {0,0,PLXWIDTH,PLYHEIGHT,1, NULL ,0,11,NULL}, {0,0,PLXWIDTH,PLYHEIGHT,1, NULL ,0,12,NULL}, {0,0,PLXWIDTH,PLYHEIGHT,1, NULL ,0,13,NULL}, {0,0,PLXWIDTH,PLYHEIGHT,1, NULL ,0,14,NULL}, {0,0,PLXWIDTH,PLYHEIGHT,1, NULL ,0,15,NULL} }; struct Gadget colgads[16] = { { &colgads[1], PLXLEFT, PLYTOP, PLXWIDTH, PLYHEIGHT, GADGHBOX | GADGIMAGE, RELVERIFY, BOOLGADGET, (APTR)&colimage[0], NULL,NULL,NULL,NULL, 0, NULL }, { &colgads[2], PLXLEFT,PLYTOP+PLYHEIGHT, PLXWIDTH, PLYHEIGHT, GADGHBOX | GADGIMAGE, RELVERIFY, BOOLGADGET, (APTR)&colimage[1], NULL,NULL,NULL,NULL, 1, NULL }, { &colgads[3], PLXLEFT,PLYTOP+PLYHEIGHT*2, PLXWIDTH, PLYHEIGHT, GADGHBOX | GADGIMAGE, RELVERIFY, BOOLGADGET, (APTR)&colimage[2], NULL,NULL,NULL,NULL, 2, NULL }, { &colgads[4], PLXLEFT,PLYTOP+PLYHEIGHT*3, PLXWIDTH, PLYHEIGHT, GADGHBOX | GADGIMAGE, RELVERIFY, BOOLGADGET, (APTR)&colimage[3], NULL,NULL,NULL,NULL, 3, NULL }, { &colgads[5], PLXLEFT,PLYTOP+PLYHEIGHT*4, PLXWIDTH, PLYHEIGHT, GADGHBOX | GADGIMAGE, RELVERIFY, BOOLGADGET, (APTR)&colimage[4], NULL,NULL,NULL,NULL, 4, NULL }, { &colgads[6], PLXLEFT,PLYTOP+PLYHEIGHT*5, PLXWIDTH, PLYHEIGHT, GADGHBOX | GADGIMAGE, RELVERIFY, BOOLGADGET, (APTR)&colimage[5], NULL,NULL,NULL,NULL, 5, NULL }, { &colgads[7], PLXLEFT,PLYTOP+PLYHEIGHT*6, PLXWIDTH, PLYHEIGHT, GADGHBOX | GADGIMAGE, RELVERIFY, BOOLGADGET, (APTR)&colimage[6], NULL,NULL,NULL,NULL, 6, NULL }, { NULL, PLXLEFT, PLYTOP+PLYHEIGHT*7, PLXWIDTH, PLYHEIGHT, GADGHBOX | GADGIMAGE, RELVERIFY, BOOLGADGET, (APTR)&colimage[7], NULL,NULL,NULL,NULL, 7, NULL }, /* * The following are defined in case the user selects 16-color mode. * If so, simply set colgads[7].NextGadget = &colgads[8] and all will be well. */ { &colgads[9], PLXLEFT+PLXWIDTH+5,PLYTOP, PLXWIDTH, PLYHEIGHT, GADGHBOX | GADGIMAGE, RELVERIFY, BOOLGADGET, (APTR)&colimage[8], NULL,NULL,NULL,NULL, 8, NULL }, { &colgads[10],PLXLEFT+PLXWIDTH+5,PLYTOP+PLYHEIGHT, PLXWIDTH, PLYHEIGHT, GADGHBOX | GADGIMAGE, RELVERIFY, BOOLGADGET, (APTR)&colimage[9], NULL,NULL,NULL,NULL, 9, NULL }, { &colgads[11],PLXLEFT+PLXWIDTH+5,PLYTOP+PLYHEIGHT*2, PLXWIDTH, PLYHEIGHT, GADGHBOX | GADGIMAGE, RELVERIFY, BOOLGADGET, (APTR)&colimage[10], NULL,NULL,NULL,NULL, 10, NULL }, { &colgads[12],PLXLEFT+PLXWIDTH+5,PLYTOP+PLYHEIGHT*3, PLXWIDTH, PLYHEIGHT, GADGHBOX | GADGIMAGE, RELVERIFY, BOOLGADGET, (APTR)&colimage[11], NULL,NULL,NULL,NULL, 11, NULL }, { &colgads[13],PLXLEFT+PLXWIDTH+5,PLYTOP+PLYHEIGHT*4, PLXWIDTH, PLYHEIGHT, GADGHBOX | GADGIMAGE, RELVERIFY, BOOLGADGET, (APTR)&colimage[12], NULL,NULL,NULL,NULL, 12, NULL }, { &colgads[14],PLXLEFT+PLXWIDTH+5,PLYTOP+PLYHEIGHT*5, PLXWIDTH, PLYHEIGHT, GADGHBOX | GADGIMAGE, RELVERIFY, BOOLGADGET, (APTR)&colimage[13], NULL,NULL,NULL,NULL, 13, NULL }, { &colgads[15],PLXLEFT+PLXWIDTH+5,PLYTOP+PLYHEIGHT*6,PLXWIDTH, PLYHEIGHT, GADGHBOX | GADGIMAGE, RELVERIFY, BOOLGADGET, (APTR)&colimage[14], NULL,NULL,NULL,NULL, 14, NULL }, { NULL ,PLXLEFT+PLXWIDTH+5,PLYTOP+PLYHEIGHT*7,PLXWIDTH, PLYHEIGHT-2, GADGHBOX | GADGIMAGE, RELVERIFY, BOOLGADGET, (APTR)&colimage[15], NULL,NULL,NULL,NULL, 15, NULL }, }; struct IntuiText rtxt = {2,2,JAM1,-9,2,NULL,(UBYTE *)"R",NULL}; struct IntuiText gtxt = {2,2,JAM1,-9,2,NULL,(UBYTE *)"G",NULL}; struct IntuiText btxt = {2,2,JAM1,-9,2,NULL,(UBYTE *)"B",NULL}; struct Image r_img, g_img, b_img; struct PropInfo r_prop,g_prop,b_prop; struct Gadget blue_gad = { colgads, 12, EDYTOP+34, PLXLEFT-16, 11, GADGHCOMP, RELVERIFY|GADGIMMEDIATE|FOLLOWMOUSE, PROPGADGET,(APTR)&b_img, NULL, &btxt, NULL,(APTR)&b_prop, G_BLUE, NULL }; struct Gadget green_gad = { &blue_gad, 12,EDYTOP+22, PLXLEFT-16,11, GADGHCOMP, RELVERIFY|GADGIMMEDIATE | FOLLOWMOUSE, PROPGADGET,(APTR)&g_img, NULL, >xt, NULL,(APTR)&g_prop, G_GREEN, NULL }; struct Gadget red_gad = { &green_gad, 12, EDYTOP+10, PLXLEFT-16,11, GADGHCOMP, RELVERIFY|GADGIMMEDIATE | FOLLOWMOUSE, PROPGADGET,(APTR)&r_img, NULL, &rtxt, NULL,(APTR)&r_prop, G_RED, NULL }; struct IntuiText Load_text = {0,2,JAM1,3,20,NULL, (UBYTE *)"Enter a file name to load:",NULL}; struct IntuiText Save_text = {0,2,JAM1,3,20,NULL, (UBYTE *)"Enter a file name to save:",NULL}; struct IntuiText ok_text = {0,2,JAM1,22,2,NULL,(UBYTE *)"OK",NULL}; struct IntuiText cancel_text = {0,2,JAM1,6,2,NULL,(UBYTE *)"Cancel",NULL}; char TextBuffer[100] = "characters"; struct StringInfo Req_Info= { TextBuffer, NULL, 0, 100, 0, 0, 0, 0, 0, 0, NULL, 0L, NULL }; struct Gadget Req_gads[] = { { &Req_gads[1], 10, 40, 200, 10, GADGHCOMP, 0, STRGADGET|REQGADGET, NULL, NULL, NULL, 0L, &Req_Info, G_RSTR, NULL }, { &Req_gads[2], 10, 60, 60, 10, GADGHCOMP, RELVERIFY|ENDGADGET, BOOLGADGET|REQGADGET, NULL, NULL, &ok_text, 0L, NULL, G_ROK, NULL }, { NULL, 150, 60, 60, 10, GADGHCOMP, RELVERIFY|ENDGADGET, BOOLGADGET|REQGADGET, NULL, NULL, &cancel_text, 0L, NULL, G_RCANCEL, NULL }, }; SHORT ReqBordData[] = { -2, -2, 62, -2, 62, 11, -2, 11, -2, -2, -3, -2, 202, -2, 202, 9, -3, 9, -3, -2, 2, 2, 218, 2, 218, 88, 2, 88, 2, 2 }; struct Border Req_Bords[] = { { 10, 60, 0, 2, JAM1, 5, ReqBordData, &Req_Bords[1] }, { 150, 60, 0, 2, JAM1, 5, ReqBordData, &Req_Bords[2] }, { 10, 40, 0, 2, JAM1, 5, &ReqBordData[10], &Req_Bords[3] }, { 0, 0, 0, 2, JAM1, 5, &ReqBordData[20], NULL }, }; struct Requester NameRequester; SHORT BorderData[] = { 0, 0, EDWIDTH+3, 0, EDWIDTH+3, EDHEIGHT+3, 0, EDHEIGHT+3, 0, 0, 0, 0, PLXWIDTH+3, 0, PLXWIDTH+3, 8*PLYHEIGHT+3, 0, 8*PLYHEIGHT+3, 0, 0, 0, 0, PLXWIDTH+1, 0, PLXWIDTH+1, PLYHEIGHT+1, 0, PLYHEIGHT+1, 0, 0, }; struct Border Borders[] = { { EDXLEFT-2, EDYTOP-2, 1, 0, JAM1, 5, BorderData, &Borders[1] }, { PLXLEFT-2, PLYTOP-2, 1, 0, JAM1, 5, &BorderData[10], NULL }, { PLXLEFT-1, PLYTOP-1, 1, 0, JAM1, 5, &BorderData[20], NULL }, };