/*----------------------------------------------------------------------* idreq.c Version 2.0 - © Copyright 1990 Jaba Development Author : Jan van den Baard Purpose : Set window IDCMP e.c.t *----------------------------------------------------------------------*/ static UBYTE UNDOBUFFER[80]; static SHORT MainPairs2[] = { 0,0,314,0 }; static struct Border MainBorder2 = { 2,12,0,0,JAM1,2,MainPairs2,NULL }; static SHORT MainPairs1[] = { 0,0,315,0,315,197,0,197,0,0 }; static struct Border MainBorder1 = { 2,1,0,0,JAM1,5,MainPairs1,&MainBorder2 }; static SHORT OCPairs[] = { 0,0,56,0,56,23,0,23,0,0 }; static struct Border OCBorder = { -1,-1,0,0,JAM1,5,OCPairs,NULL }; static struct IntuiText CNCText = { 0,0,JAM1,4,7,NULL,(UBYTE *)"CANCEL",NULL }; static struct Gadget CNC = { NULL,253,173,55,22,NULL,RELVERIFY,BOOLGADGET, (APTR)&OCBorder,NULL,&CNCText,NULL,NULL,34,NULL }; static struct IntuiText OKText = { 0,0,JAM1,20,7,NULL,(UBYTE *)"OK",NULL }; static struct Gadget OK = { &CNC,253,147,55,22,NULL,RELVERIFY,BOOLGADGET, (APTR)&OCBorder,NULL,&OKText,NULL,NULL,33,NULL }; static SHORT VALPairs[] = { 0,0,57,0,57,9,0,9,0,0 }; static struct Border VALBorder = { -1,-1,2,0,JAM1,5,VALPairs,NULL }; static UBYTE MAYBuff[4]; static struct StringInfo MAYInfo = { MAYBuff,UNDOBUFFER,0,4,0,0,0,0,0,0,0,0,NULL }; static struct IntuiText MAYText = { 0,0,JAM1,12,-10,NULL,(UBYTE *)"MaxY",NULL }; static struct Gadget MAY = { &OK,253,131,56,8,NULL,RELVERIFY+STRINGCENTER+LONGINT,STRGADGET, (APTR)&VALBorder,NULL,&MAYText,NULL,(APTR)&MAYInfo,32,NULL }; static UBYTE MAXBuff[4]; static struct StringInfo MAXInfo = { MAXBuff,UNDOBUFFER,0,4,0,0,0,0,0,0,0,0,NULL }; static struct IntuiText MAXText = { 0,0,JAM1,12,-10,NULL,(UBYTE *)"MaxX",NULL }; static struct Gadget MAX = { &MAY,253,110,56,8,NULL,RELVERIFY+STRINGCENTER+LONGINT,STRGADGET, (APTR)&VALBorder,NULL,&MAXText,NULL,(APTR)&MAXInfo,31,NULL }; static UBYTE MIYBuff[4]; static struct StringInfo MIYInfo = { MIYBuff,UNDOBUFFER,0,4,0,0,0,0,0,0,0,0,NULL }; static struct IntuiText MIYText = { 0,0,JAM1,12,-10,NULL,(UBYTE *)"MinY",NULL }; static struct Gadget MIY = { &MAX,253,89,56,8,NULL,RELVERIFY+STRINGCENTER+LONGINT,STRGADGET, (APTR)&VALBorder,NULL,&MIYText,NULL,(APTR)&MIYInfo,30,NULL }; static UBYTE MIXBuff[4]; static struct StringInfo MIXInfo = { MIXBuff,UNDOBUFFER,0,4,0,0,0,0,0,0,0,0,NULL }; static struct IntuiText MIXText = { 0,0,JAM1,12,-10,NULL,(UBYTE *)"MinX",NULL }; static struct Gadget MIX = { &MIY,253,68,56,8,NULL,RELVERIFY+STRINGCENTER+LONGINT,STRGADGET, (APTR)&VALBorder,NULL,&MIXText,NULL,(APTR)&MIXInfo,29,NULL }; static UBYTE BPBuff[3]; static struct StringInfo BPInfo = { BPBuff,UNDOBUFFER,0,3,0,0,0,0,0,0,0,0,NULL }; static struct IntuiText BPText = { 0,0,JAM1,9,-10,NULL,(UBYTE *)"Block",NULL }; static struct Gadget BP = { &MIX,252,47,56,8,NULL,RELVERIFY+STRINGCENTER+LONGINT,STRGADGET, (APTR)&VALBorder,NULL,&BPText,NULL,(APTR)&BPInfo,28,NULL }; static UBYTE DPBuff[3]; static struct StringInfo DPInfo = { DPBuff,UNDOBUFFER,0,3,0,0,0,0,0,0,0,0,NULL }; static struct IntuiText DPText = { 0,0,JAM1,5,-10,NULL,(UBYTE *)"Detail",NULL }; static struct Gadget DP = { &BP,252,26,56,8,NULL,RELVERIFY+STRINGCENTER+LONGINT,STRGADGET, (APTR)&VALBorder,NULL,&DPText,NULL,(APTR)&DPInfo,27,NULL }; static SHORT TLPairs[] = { 0,0,169,0,169,9,0,9,0,0 }; static struct Border TLBorder = { -1,-1,2,0,JAM1,5,TLPairs,NULL }; static UBYTE SLBuff[MAXLABEL] = "nw"; static struct StringInfo SLInfo = { SLBuff,UNDOBUFFER,0,MAXLABEL,0,0,0,0,0,0,0,0,NULL }; static struct IntuiText SLText = { 0,0,JAM1,-67,0,NULL,(UBYTE *)"Label",NULL }; static struct Gadget SL = { &DP,75,187,168,8,NULL,RELVERIFY+STRINGCENTER,STRGADGET, (APTR)&TLBorder,NULL,&SLText,NULL,(APTR)&SLInfo,26,NULL }; static UBYTE TIBuff[80] = "Work Window"; static struct StringInfo TIInfo = { TIBuff,UNDOBUFFER,0,80,0,0,0,0,0,0,0,0,NULL }; static struct IntuiText TIText = { 0,0,JAM1,-67,0,NULL,(UBYTE *)"Title",NULL }; static struct Gadget TI = { &SL,75,173,168,8,NULL,RELVERIFY+STRINGCENTER,STRGADGET, (APTR)&TLBorder,NULL,&TIText,NULL,(APTR)&TIInfo,25,NULL }; static SHORT FLPairs[] = { 0,0,115,0,115,10,0,10,0,0 }; static struct Border FLBorder = { -1,-1,0,0,JAM1,5,FLPairs,NULL }; static struct IntuiText LMText = { 0,0,JAM1,5,1,NULL,(UBYTE *)"LONELYMESSAGE",NULL }; static struct Gadget LM = { &TI,129,160,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&LMText,NULL,NULL,23,NULL }; static struct IntuiText WMText = { 0,0,JAM1,5,1,NULL,(UBYTE *)"WBENCHMESSAGE",NULL }; static struct Gadget WM = { &LM,129,147,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&WMText,NULL,NULL,22,NULL }; static struct IntuiText VKText = { 0,0,JAM1,17,1,NULL,(UBYTE *)"VANILLAKEY",NULL }; static struct Gadget VK = { &WM,129,134,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&VKText,NULL,NULL,21,NULL }; static struct IntuiText RKText = { 0,0,JAM1,31,1,NULL,(UBYTE *)"RAWKEY",NULL }; static struct Gadget RK = { &VK,129,121,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&RKText,NULL,NULL,20,NULL }; static struct IntuiText DRText = { 0,0,JAM1,14,1,NULL,(UBYTE *)"DISKREMOVED",NULL }; static struct Gadget DR = { &RK,129,108,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&DRText,NULL,NULL,19,NULL }; static struct IntuiText DIText = { 0,0,JAM1,9,1,NULL,(UBYTE *)"DISKINSERTED",NULL }; static struct Gadget DI = { &DR,129,95,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&DIText,NULL,NULL,18,NULL }; static struct IntuiText NPText = { 0,0,JAM1,25,1,NULL,(UBYTE *)"NEWPREFS",NULL }; static struct Gadget NP = { &DI,129,82,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&NPText,NULL,NULL,17,NULL }; static struct IntuiText ITText = { 0,0,JAM1,15,1,NULL,(UBYTE *)"INTUITICKS",NULL }; static struct Gadget IT = { &NP,129,69,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&ITText,NULL,NULL,16,NULL }; static struct IntuiText DMText = { 0,0,JAM1,21,1,NULL,(UBYTE *)"DELTAMOVE",NULL }; static struct Gadget DM = { &IT,129,56,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&DMText,NULL,NULL,15,NULL }; static struct IntuiText MMText = { 0,0,JAM1,21,1,NULL,(UBYTE *)"MOUSEMOVE",NULL }; static struct Gadget MM = { &DM,129,43,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&MMText,NULL,NULL,14,NULL }; static struct IntuiText MBText = { 0,0,JAM1,9,1,NULL,(UBYTE *)"MOUSEBUTTONS",NULL }; static struct Gadget MB = { &MM,129,30,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&MBText,NULL,NULL,13,NULL }; static struct IntuiText MVText = { 0,0,JAM1,16,1,NULL,(UBYTE *)"MENUVERIFY",NULL }; static struct Gadget MV = { &MB,129,17,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&MVText,NULL,NULL,12,NULL }; static struct IntuiText MPText = { 0,0,JAM1,26,1,NULL,(UBYTE *)"MENUPICK",NULL }; static struct Gadget MP = { &MV,10,160,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&MPText,NULL,NULL,11,NULL }; static struct IntuiText RVText = { 0,0,JAM1,22,1,NULL,(UBYTE *)"REQVERIFY",NULL }; static struct Gadget RV = { &MP,9,147,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&RVText,NULL,NULL,10,NULL }; static struct IntuiText RCText = { 0,0,JAM1,27,1,NULL,(UBYTE *)"REQCLEAR",NULL }; static struct Gadget RC = { &RV,9,134,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&RCText,NULL,NULL,9,NULL }; static struct IntuiText RSText = { 0,0,JAM1,32,1,NULL,(UBYTE *)"REQSET",NULL }; static struct Gadget RS = { &RC,9,121,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&RSText,NULL,NULL,8,NULL }; static struct IntuiText CWText = { 0,0,JAM1,12,1,NULL,(UBYTE *)"CLOSEWINDOW",NULL }; static struct Gadget CW = { &RS,9,108,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&CWText,NULL,NULL,7,NULL }; static struct IntuiText GUText = { 0,0,JAM1,25,1,NULL,(UBYTE *)"GADGETUP",NULL }; static struct Gadget GU = { &CW,9,95,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&GUText,NULL,NULL,6,NULL }; static struct IntuiText GDText = { 0,0,JAM1,15,1,NULL,(UBYTE *)"GADGETDOWN",NULL }; static struct Gadget GD = { &GU,9,82,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&GDText,NULL,NULL,5,NULL }; static struct IntuiText IWText = { 0,0,JAM1,1,1,NULL,(UBYTE *)"INACTIVEWINDOW",NULL }; static struct Gadget IW = { &GD,9,69,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&IWText,NULL,NULL,4,NULL }; static struct IntuiText AWText = { 0,0,JAM1,9,1,NULL,(UBYTE *)"ACTIVEWINDOW",NULL }; static struct Gadget AW = { &IW,9,56,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&AWText,NULL,NULL,3,NULL }; static struct IntuiText RWText = { 0,0,JAM1,5,1,NULL,(UBYTE *)"REFRESHWINDOW",NULL }; static struct Gadget RW = { &AW,9,43,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&RWText,NULL,NULL,2,NULL }; static struct IntuiText NSText = { 0,0,JAM1,28,1,NULL,(UBYTE *)"NEWSIZE",NULL }; static struct Gadget NS = { &RW,9,30,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&NSText,NULL,NULL,1,NULL }; static struct IntuiText SVYText = { 0,0,JAM1,16,1,NULL,(UBYTE *)"SIZEVERIFY",NULL }; static struct Gadget SVY = { &NS,9,17,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET, (APTR)&FLBorder,NULL,&SVYText,NULL,NULL,0,NULL }; static struct IntuiText TText = { 0,0,JAM1,92,3,NULL,(UBYTE *)"Edit Window IDCMP",NULL }; static struct NewWindow id_req = { 0,0,320,200,0,1,GADGETDOWN+GADGETUP, ACTIVATE+RMBTRAP+NOCAREREFRESH, NULL,NULL,NULL,NULL,NULL, 0,0,0,0,CUSTOMSCREEN }; extern struct Window *MainWindow; extern struct Screen *MainScreen; extern struct Gadget *Gadget; extern ULONG IDCMPFlags; extern UBYTE wdt[80]; extern UBYTE wlb[MAXLABEL]; extern BOOL Saved; /* * reset all control gadgets */ VOID re_set() { register struct Gadget *g; g = &SVY; while(1) { if(g == &TI) break; g->Flags = NULL; g = g->NextGadget; } strcpy((char *)&TIBuff,(char *)&wdt); strcpy((char *)&SLBuff,(char *)&wlb); Format((char *)&MAYBuff,"%ld",MainWindow->MaxHeight); MAYInfo.LongInt = MainWindow->MaxHeight; Format((char *)&MAXBuff,"%ld",MainWindow->MaxWidth); MAXInfo.LongInt = MainWindow->MaxWidth; Format((char *)&MIYBuff,"%ld",MainWindow->MinHeight); MIYInfo.LongInt = MainWindow->MinHeight; Format((char *)&MIXBuff,"%ld",MainWindow->MinWidth); MIXInfo.LongInt = MainWindow->MinWidth; Format((char *)&BPBuff,"%ld",MainWindow->BlockPen); BPInfo.LongInt = MainWindow->BlockPen; Format((char *)&DPBuff,"%ld",MainWindow->DetailPen); DPInfo.LongInt = MainWindow->DetailPen; } /* * open the IDCMP window */ VOID idcmp() { struct Window *idw; UCOUNT i; id_req.Screen = MainScreen; re_set(); if(NOT(idw = OpenWindow(&id_req))) return; disable_window(); draw(idw,&SVY,&MainBorder1,&TText); if(TestBits(IDCMPFlags,SIZEVERIFY)) SelectGadget(idw,&SVY,NULL); if(TestBits(IDCMPFlags,NEWSIZE)) SelectGadget(idw,&NS ,NULL); if(TestBits(IDCMPFlags,REFRESHWINDOW)) SelectGadget(idw,&RW,NULL); if(TestBits(IDCMPFlags,ACTIVEWINDOW)) SelectGadget(idw,&AW,NULL); if(TestBits(IDCMPFlags,INACTIVEWINDOW)) SelectGadget(idw,&IW,NULL); if(TestBits(IDCMPFlags,GADGETDOWN)) SelectGadget(idw,&GD,NULL); if(TestBits(IDCMPFlags,GADGETUP)) SelectGadget(idw,&GU,NULL); if(TestBits(IDCMPFlags,CLOSEWINDOW)) SelectGadget(idw,&CW,NULL); if(TestBits(IDCMPFlags,REQSET)) SelectGadget(idw,&RS,NULL); if(TestBits(IDCMPFlags,REQCLEAR)) SelectGadget(idw,&RC,NULL); if(TestBits(IDCMPFlags,REQVERIFY)) SelectGadget(idw,&RV,NULL); if(TestBits(IDCMPFlags,MENUPICK)) SelectGadget(idw,&MP,NULL); if(TestBits(IDCMPFlags,MENUVERIFY)) SelectGadget(idw,&MV,NULL); if(TestBits(IDCMPFlags,MOUSEBUTTONS)) SelectGadget(idw,&MB,NULL); if(TestBits(IDCMPFlags,MOUSEMOVE)) SelectGadget(idw,&MM,NULL); if(TestBits(IDCMPFlags,DELTAMOVE)) SelectGadget(idw,&DM,NULL); if(TestBits(IDCMPFlags,INTUITICKS)) SelectGadget(idw,&IT,NULL); if(TestBits(IDCMPFlags,NEWPREFS)) SelectGadget(idw,&NP,NULL); if(TestBits(IDCMPFlags,DISKINSERTED)) SelectGadget(idw,&DI,NULL); if(TestBits(IDCMPFlags,DISKREMOVED)) SelectGadget(idw,&DR,NULL); if(TestBits(IDCMPFlags,RAWKEY)) SelectGadget(idw,&RK,NULL); if(TestBits(IDCMPFlags,VANILLAKEY)) SelectGadget(idw,&VK,NULL); if(TestBits(IDCMPFlags,WBENCHMESSAGE)) SelectGadget(idw,&WM,NULL); if(TestBits(IDCMPFlags,LONELYMESSAGE)) SelectGadget(idw,&LM,NULL); do { Wait(1 << idw->UserPort->mp_SigBit); while(read_msg(idw)); } while(Gadget->GadgetID < 33); CloseWindow(idw); if(Gadget->GadgetID == 33) { IDCMPFlags = NULL; if(SelectTest(&SVY)) IDCMPFlags |= SIZEVERIFY; if(SelectTest(&NS)) IDCMPFlags |= NEWSIZE; if(SelectTest(&RW)) IDCMPFlags |= REFRESHWINDOW; if(SelectTest(&AW)) IDCMPFlags |= ACTIVEWINDOW; if(SelectTest(&IW)) IDCMPFlags |= INACTIVEWINDOW; if(SelectTest(&GD)) IDCMPFlags |= GADGETDOWN; if(SelectTest(&GU)) IDCMPFlags |= GADGETUP; if(SelectTest(&CW)) IDCMPFlags |= CLOSEWINDOW; if(SelectTest(&RS)) IDCMPFlags |= REQSET; if(SelectTest(&RC)) IDCMPFlags |= REQCLEAR; if(SelectTest(&RV)) IDCMPFlags |= REQVERIFY; if(SelectTest(&MP)) IDCMPFlags |= MENUPICK; if(SelectTest(&MV)) IDCMPFlags |= MENUVERIFY; if(SelectTest(&MB)) IDCMPFlags |= MOUSEBUTTONS; if(SelectTest(&MM)) IDCMPFlags |= MOUSEMOVE; if(SelectTest(&DM)) IDCMPFlags |= DELTAMOVE; if(SelectTest(&IT)) IDCMPFlags |= INTUITICKS; if(SelectTest(&NP)) IDCMPFlags |= NEWPREFS; if(SelectTest(&DI)) IDCMPFlags |= DISKINSERTED; if(SelectTest(&DR)) IDCMPFlags |= DISKREMOVED; if(SelectTest(&RK)) IDCMPFlags |= RAWKEY; if(SelectTest(&VK)) IDCMPFlags |= VANILLAKEY; if(SelectTest(&WM)) IDCMPFlags |= WBENCHMESSAGE; if(SelectTest(&LM)) IDCMPFlags |= LONELYMESSAGE; strcpy((char *)&wdt,(char *)&TIBuff); strcpy((char *)&wlb,(char *)&SLBuff); for(i=0;iFlags,WINDOWSIZING)) { WindowLimits(MainWindow,MIXInfo.LongInt, MIYInfo.LongInt, MAXInfo.LongInt, MAYInfo.LongInt); } MainWindow->DetailPen = DPInfo.LongInt; MainWindow->BlockPen = BPInfo.LongInt; RefreshWindowFrame(MainWindow); Saved = FALSE; } enable_window(); }