#include #include #include #include #include #include static SHORT BorderVectors1[] = { 0,0, 59,0, 59,21, 0,21, 0,0 }; static struct Border Border1 = { -1,-1, 3,0,JAM1, 5, BorderVectors1, NULL }; static struct TextAttr TOPAZ80 = { (STRPTR)"topaz.font", TOPAZ_EIGHTY,0,0 }; static struct IntuiText IText1 = { 1,0,JAM1, 18,6, &TOPAZ80, "GO!", NULL }; static struct Gadget gogad = { NULL, 200,16, 58,20, NULL, RELVERIFY, BOOLGADGET, (APTR)&Border1, NULL, &IText1, NULL, NULL, 3, NULL }; static SHORT BorderVectors2[] = { 0,0, 72,0, 72,10, 0,10, 0,0 }; static struct Border Border2 = { -1,-1, 3,0,JAM1, 5, BorderVectors2, NULL }; static struct IntuiText IText2 = { 1,0,JAM1, 3,1, &TOPAZ80, "NOFORMAT", NULL }; static struct Gadget nfgad = { &gogad, 115,28, 71,9, NULL, RELVERIFY+TOGGLESELECT, BOOLGADGET, (APTR)&Border2, NULL, &IText2, NULL, NULL, NULL, NULL }; static struct IntuiText IText3 = { 1,0,JAM1, 7,1, &TOPAZ80, "FASTDIR", NULL }; static struct Gadget fdgad = { &nfgad, 115,15, 71,9, NULL, RELVERIFY+TOGGLESELECT, BOOLGADGET, (APTR)&Border2, NULL, &IText3, NULL, NULL, NULL, NULL }; static struct IntuiText IText5 = { 2,0,JAM1, -39,1, &TOPAZ80, "Dest", NULL }; static struct IntuiText IText4 = { 1,0,JAM2, 2,1, &TOPAZ80, "DF1:", &IText5 }; static SHORT BorderVectors5[] = { 0,0, 36,0, 36,10, 0,10, 0,0 }; static struct Border Border5 = { -1,-1, 3,0,JAM1, 5, BorderVectors5, NULL }; static struct Gadget dgad = { &fdgad, 68,28, 35,9, NULL, RELVERIFY, BOOLGADGET, (APTR)&Border5, NULL, &IText4, NULL, NULL, 2, NULL }; static struct IntuiText IText7 = { 2,0,JAM1, -55,1, &TOPAZ80, "Source", NULL }; static struct IntuiText IText6 = { 1,0,JAM2, 2,1, &TOPAZ80, "DF0:", &IText7 }; static struct Gadget sgad = { &dgad, 68,15, 35,9, NULL, RELVERIFY, BOOLGADGET, (APTR)&Border5, NULL, &IText6, NULL, NULL, 1, NULL }; #define GadgetList1 sgad static SHORT BorderVectors6[] = { 0,0, 270,0, 270,12, 0,12, 0,0 }; static struct Border Border6 = { 5,46, 3,0,JAM1, 5, BorderVectors6, NULL }; #define BorderList1 Border6 static struct NewWindow nw = { 189,67, 282,62, 1,2, GADGETUP+CLOSEWINDOW, WINDOWDRAG+WINDOWDEPTH+WINDOWCLOSE+ACTIVATE+RMBTRAP+NOCAREREFRESH, &sgad, NULL, 0, NULL, NULL, 0,0, 0,0, WBENCHSCREEN }; /* end of PowerWindows source generation */ static short dr1=0,dr2=1; static struct RastPort *rp; struct Library *IntuitionBase,*GfxBase; struct ArpBase *ArpBase; static struct Window *w; void _main(void); void _exit(int); void goodbye(int); void pmsg(char*,int); void loop(void); void ongad(void); void do_fast(int,int,int,int); void goodbye(x) int x; { if(w) CloseWindowSafely(w,0); if(ArpBase) CloseLibrary(ArpBase); _exit(x); } static char pb[34]; void pmsg(s,m) char *s; int m; { int c; for(c=0; c<33; pb[c++]=0); strcpy(pb+16-(strlen(s)/2),s); for(c=0; c<33; c++) if(!pb[c]) pb[c]=32; SetDrMd(rp,JAM2); SetAPen(rp,(m)?3:1); Move(rp,8,55); Text(rp,pb,33); if(m) DisplayBeep(0L); } void _main() { if(!(ArpBase=OpenLibrary("arp.library",34))) goodbye(30); GfxBase=ArpBase->GfxBase; IntuitionBase=ArpBase->IntuiBase; if(!(w=OpenWindow(&nw))) goodbye(20); SetWindowTitles(w,"Fastdisk II","Fastdisk II by Thorsten Stolpmann - Improved, Intuized & Arped by Ĝlli"); rp=w->RPort; DrawBorder(rp,&BorderList1,0,0); pmsg("awaiting your orders!",0); loop(); } void loop() { struct IntuiMessage *msg; ongad(); for(;;) { while(!(msg=GetMsg(w->UserPort))) WaitPort(w->UserPort); if(msg->Class==CLOSEWINDOW) goodbye(0); switch(((struct Gadget*)(msg->IAddress))->GadgetID) { case 1: dr1++; dr1&=3; (IText6.IText)[2]='0'+dr1; RefreshGList(&sgad,w,0,1); break; case 2: dr2++; dr2&=3; (IText4.IText)[2]='0'+dr2; RefreshGList(&dgad,w,0,1); break; case 3: if(dr1==dr2) { DisplayBeep(0); pmsg("source == dest !!!",1); break; } sgad.Flags|=GADGDISABLED; dgad.Flags|=GADGDISABLED; nfgad.Flags|=GADGDISABLED; fdgad.Flags|=GADGDISABLED; gogad.Flags|=GADGDISABLED; RefreshGadgets(&sgad,w,0); do_fast(dr1,dr2,fdgad.Flags&SELECTED,nfgad.Flags&SELECTED); ongad(); break; } ReplyMsg(msg); } } void ongad() { if(!(sgad.Flags&GADGDISABLED)) return; SetAPen(rp,0); RectFill(rp,66,13,259,38); sgad.Flags&=~GADGDISABLED; dgad.Flags&=~GADGDISABLED; nfgad.Flags&=~GADGDISABLED; fdgad.Flags&=~GADGDISABLED; gogad.Flags&=~GADGDISABLED; RefreshGadgets(&sgad,w,0); }