/*---------------------------------------------------------* | Author: Maurizio Loreti, aka MLO or I3NOO. | | Address: University of Padova - Department of Physics | | Via F. Marzolo, 8 - 35131 PADOVA - Italy | | Phone: (39)(49) 844-313 FAX: (39)(49) 844-245 | | E-Mail: LORETI at IPDINFN (BITNET); or VAXFPD::LORETI | | (DECnet) - VAXFPD is node 38.257 i.e. 39169; or | | LORETI@PADOVA.INFN.IT (INTERNET). | | Home: Via G. Donizetti 6 - 35010 CADONEGHE (PD) - Italy | *---------------------------------------------------------*/ /*------------------------------------------------------------------* | Constants for Ask() and AskInt() windows: dimensions and gadgets | *------------------------------------------------------------------*/ /** | Special return values **/ #define CANCEL 0 #define QUIT -1 #define OK_FOLKS -2 /** | Window constants **/ #define AW_LEFT 0 #define AW_TOP 0 #define AW_HEIGHT 77 #define AW_WIDTH 300 #define AW_IDCMP GADGETUP #define AW_FLAGS1 WINDOWDEPTH | WINDOWDRAG #define AW_FLAGS2 SMART_REFRESH | NOCAREREFRESH | ACTIVATE #define AW_FLAGS (AW_FLAGS1 | AW_FLAGS2) #define AW_TLEN 32 /** | Gadget constants **/ #define AW_YTITLE 17 #define AW_YCYCLE 42 #define AW_YCGAD 32 #define AW_XFORWARD 10 #define AW_XBACKWARD 266 #define AW_YNGAD 57 #define AW_XOK 27 #define AW_XQUIT 118 #define AW_XCAN 209 #define AW_WCGAD 24 #define AW_HCGAD 13 #define AW_WNGAD 64 #define AW_HNGAD 12 #define AW_NFLAGS GADGHCOMP #define AW_NACT GADGIMMEDIATE | RELVERIFY #define AW_CANCEL 1 #define AW_QUIT 2 #define AW_OK 3 #define AW_FORWARD 4 #define AW_BACKWARD 5 #define AW_INT 6 #define AW_XINT 110 #define AW_WCINT 80 #define AW_HCINT 12 #define AR_WIDTH 270 #define AR_HEIGHT 75 #define INTBUF_LEN 20 #define AR_TEXT_LEN 32 static char intBuffer[INTBUF_LEN]; static char intUndoBuffer[INTBUF_LEN]; static char Limits[AR_TEXT_LEN]; static char title[AW_TLEN] = ""; /** | Gadget and window global variables: TextAttr for Topaz-8 **/ static struct TextAttr ta = { "topaz.font", TOPAZ_EIGHTY, FS_NORMAL, FPF_ROMFONT }; /** | Gadget and window global variables: images **/ static USHORT __chip backGdata[] = { 0xFFFF, 0xFF00, 0x8000, 0x0100, 0x83FF, 0xC100, 0x8600, 0x6100, 0x8C00, 0x3100, 0xBF00, 0x3100, 0x9E00, 0x3100, 0x8C00, 0x3100, 0x8000, 0x3100, 0x8600, 0x6100, 0x83FF, 0xC100, 0x8000, 0x0100, 0xFFFF, 0xFF00 }; static USHORT __chip forwGdata[] = { 0xFFFF, 0xFF00, 0x8000, 0x0100, 0x83FF, 0xC100, 0x8600, 0x6100, 0x8C00, 0x3100, 0x8C00, 0xFD00, 0x8C00, 0x7900, 0x8C00, 0x3100, 0x8C00, 0x0100, 0x8600, 0x6100, 0x83FF, 0xC100, 0x8000, 0x0100, 0xFFFF, 0xFF00 }; static struct Image backGimage = { 0, 0, AW_WCGAD, AW_HCGAD, 1, (USHORT *) backGdata, 0x01, 0x00, NULL }; static struct Image forwGimage = { 0, 0, AW_WCGAD, AW_HCGAD, 1, (USHORT *) forwGdata, 0x01, 0x00, NULL }; /** | Gadget and window global variables: borders **/ static SHORT intData[] = { 0, 0, AW_WCINT+4, 0, AW_WCINT+4, AW_HCINT+1, 0, AW_HCINT+1, 0, 0 }; static struct Border intBorder = { -3, -3, RED_PEN, BLACK_PEN, JAM1, 5, intData, NULL }; static SHORT NGbdata[] = { 0, 0, AW_WNGAD-1, 0, AW_WNGAD-1, AW_HNGAD-1, 0, AW_HNGAD-1, 0, 0 }; static struct Border NGborder = { 0, 0, RED_PEN, BLACK_PEN, JAM1, 5, NGbdata, NULL }; /** | Gadget and window global variables: texts **/ static struct IntuiText canText = { WHITE_PEN, BLACK_PEN, JAM2, 8, 2, &ta, (UBYTE *) "CANCEL", NULL }; static struct IntuiText quitText = { WHITE_PEN, BLACK_PEN, JAM2, 8, 2, &ta, (UBYTE *) " QUIT ", NULL }; static struct IntuiText okText = { WHITE_PEN, BLACK_PEN, JAM2, 8, 2, &ta, (UBYTE *) " OK ", NULL }; static struct IntuiText arOkText = { BLUE_PEN, WHITE_PEN, JAM2, 8, 2, &ta, (UBYTE *) " OK ", NULL }; static struct IntuiText art0[] = { { BLUE_PEN, WHITE_PEN, JAM2, 10, 5, &ta, (UBYTE *) "Out of range:", &art0[1] }, { BLUE_PEN, WHITE_PEN, JAM2, 10, 15, &ta, (UBYTE *) Limits, NULL } }; /** | Gadget and window global variables: gadgets **/ static struct Gadget askGad[] = { { &askGad[1], AW_XCAN, AW_YNGAD, AW_WNGAD, AW_HNGAD, AW_NFLAGS, AW_NACT, BOOLGADGET, (APTR) &NGborder, NULL, &canText, 0, NULL, AW_CANCEL, NULL }, { &askGad[2], AW_XQUIT, AW_YNGAD, AW_WNGAD, AW_HNGAD, AW_NFLAGS, AW_NACT, BOOLGADGET, (APTR) &NGborder, NULL, &quitText, 0, NULL, AW_QUIT, NULL }, { NULL, AW_XOK, AW_YNGAD, AW_WNGAD, AW_HNGAD, AW_NFLAGS, AW_NACT, BOOLGADGET, (APTR) &NGborder, NULL, &okText, 0, NULL, AW_OK, NULL }, }; static struct StringInfo intInfo = { (UBYTE *) intBuffer, (UBYTE *) intUndoBuffer, 0, INTBUF_LEN, 0, 0, 0, 0, 0, 0, NULL, 0, NULL }; static struct Gadget intGadget = { askGad, AW_XINT, AW_YCGAD, AW_WCINT, AW_HCINT, GADGHCOMP, GADGIMMEDIATE | RELVERIFY | LONGINT | STRINGCENTER, STRGADGET, (APTR) &intBorder, NULL, NULL, 0, (APTR) &intInfo, AW_INT, NULL }; static struct Gadget backGadget = { askGad, AW_XBACKWARD, AW_YCGAD, AW_WCGAD, AW_HCGAD, GADGHCOMP | GADGIMAGE, RELVERIFY, BOOLGADGET, (APTR) &backGimage, NULL, NULL, NULL, NULL, AW_BACKWARD, NULL }; static struct Gadget forwGadget = { &backGadget, AW_XFORWARD, AW_YCGAD, AW_WCGAD, AW_HCGAD, GADGHCOMP | GADGIMAGE, RELVERIFY, BOOLGADGET, (APTR) &forwGimage, NULL, NULL, NULL, NULL, AW_FORWARD, NULL }; /** | Gadget and window global variables: windows **/ static struct NewWindow NWind = { AW_LEFT, AW_TOP, AW_WIDTH, AW_HEIGHT, BLUE_PEN, WHITE_PEN, AW_IDCMP, AW_FLAGS, NULL, NULL, (UBYTE *) title, NULL, NULL, AW_WIDTH, AW_HEIGHT, AW_WIDTH, AW_HEIGHT, WBENCHSCREEN }; static int realWidth, realHeight;