/* ProMenu V1.0 © 1995 Procyon Software ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ** This is just another Tools-Menu adder... ** ProMenu is actually pretty like AddMenu (Nic Wilson © 1991) ** and ProMenu works the same way... ** nothing more to say about that?... ** ** To do: ** Add AddMenu fileformat compatibility... ** ** So WHY ProMenu? ** Because it's about 9 times smaller than AddMenu */ OPT OSVERSION=37 MODULE 'wb', 'workbench/workbench', 'intuition/screens', 'intuition/intuition', '+SvProjects/detatch' DEF myport,appitem[100]:ARRAY OF LONG,appmsg:PTR TO appmessage, appstuff[100]:ARRAY OF LONG,win:PTR TO window PROC main() DEF x=0,t[256]:STRING,exit=FALSE,u[512]:STRING,load,r=0,tst[256]:STRING detatch('ProMenu V1.0') IF workbenchbase:=OpenLibrary('workbench.library',37) IF myport:=CreateMsgPort() IF load:=Open('RAM:ProMenu.dat',OLDFILE) inform('Initizializing... & Updating') ; Delay(50) WHILE r:=Fgets(load,t,256) StrCopy(t,t,StrLen(t)-1) Fgets(load,u,256) appstuff[x]:=String(256) StrCopy(appstuff[x],u,StrLen(u)-1) appitem[x]:=AddAppMenuItemA(x,NIL,t,myport,NIL) INC x ENDWHILE inform(NIL) Close(load) ENDIF REPEAT WaitPort(myport) WHILE appmsg:=GetMsg(myport) IF appmsg.id=0 THEN exit:=TRUE -> WriteF('Appmsg id: \d - Data: \s\n',appmsg.id,appstuff[appmsg.id]) StringF(tst,'RUN >NIL: \s',appstuff[appmsg.id]) SystemTagList(tst,[NIL]) ReplyMsg(appmsg) ENDWHILE UNTIL exit=TRUE inform('Cleaning up...') appitem[0] WHILE appitem[] RemoveAppMenuItem(appitem[]) appitem[]++ ENDWHILE inform(NIL) DeleteMsgPort(myport) ENDIF ENDIF ENDPROC PROC inform(text) IF text=NIL IF win THEN CloseWindow(win) win:=NIL RETURN NIL ENDIF IF win=NIL IF (win:=OpenWindowTagList(NIL, [WA_LEFT,269, WA_TOP,33, WA_WIDTH,342, WA_HEIGHT,16, WA_IDCMP,$24C077E, WA_FLAGS,$100F, WA_TITLE,NIL, WA_CLOSEGADGET,NIL, WA_SIZEGADGET,NIL, WA_DEPTHGADGET,NIL, WA_ACTIVATE,NIL, WA_DRAGBAR,NIL, WA_MINWIDTH,67, WA_MINHEIGHT,21, WA_MAXWIDTH,$280, WA_MAXHEIGHT,256, WA_AUTOADJUST,1, WA_AUTOADJUST,1, NIL])) SetStdRast(win.rport) SetAPen(stdrast,1) TextF(10,10,text) ENDIF ENDIF ENDPROC