REM>.Src.FrontEnd REM Acorn Invaders LEN DynaByte Software 2007,08 REM Front-End LEN Martin H Hansen (Modified with permission.) DIM blk% 2000, menu% 200, icon% 10 DIM block% 2000, buffer% 500, name% 32 $blk%="TASK" SYS "Wimp_Initialise",200,!blk%,"Acorn Invaders" TO ,task% ON ERROR PROCerror:SYS"Wimp_CloseDown":END $icon%="!Invaders" blk%!0=-1:blk%!4=0:blk%!8=0:blk%!12=68:blk%!16=68 blk%!20=&B7002102:blk%!24=icon%:blk%!28=1:blk%!32=LEN($icon%) SYS "Wimp_CreateIcon",,blk% TO invaders% quit%=FALSE:PROCloadtemplates REPEAT CASE FNreason(&81831) OF WHEN 2: PROCo_win(blk%!0,blk%) : REM Open Window WHEN 6: PROCbutton_click : REM Mouse Click WHEN 9: IF blk%!0=1:quit%=TRUE : REM Menu WHEN 17,18:IF blk%!16=0 : REM Shutdown ENDCASE UNTIL quit% SYS "Wimp_CloseDown" END DEFPROCbutton_click LOCAL x%,y%,b% MOUSE x%,y%,b% CASE b% OF WHEN 4 : SYS"Wimp_StartTask",".Resources.Code.!Go" WHEN 2 : PROCmouse_push(blk%) ENDCASE ENDPROC DEFPROCloadtemplates SYS "Wimp_OpenTemplate",,".Templates" info_whandle%=FNtwindow("Info") SYS "Wimp_CloseTemplate" ENDPROC DEFFNtwindow(win$) buffend%=buffer%+500 $name% = win$ SYS "Wimp_LoadTemplate",,block%,buffer%,buffend%,-1,name%,0 block%!64 = 0 : REM no sprites SYS "Wimp_CreateWindow",,block% TO han% =han% DEFFNreason(a%) LOCAL reason% SYS "Wimp_Poll",a%,blk% TO reason% =reason% DEFPROCo_win(handle%,pos%) LOCAL b% IF pos%=FALSE THEN b%=blk% b%!0=handle% SYS "Wimp_GetWindowState",,b% ELSE b%=pos% ENDIF SYS "Wimp_OpenWindow",,b% ENDPROC DEFPROCmouse_push(blk%) PROCicon_menu SYS "Wimp_CreateMenu",,menu%,blk%!0-96,184 ENDPROC DEFPROCicon_menu $(menu%+0) = "Invaders" :REM menu title menu%?12 = 7 :REM black for title foreground menu%?13 = 2 :REM grey for title background menu%?14 = 7 :REM black for work area foreground menu%?15 = 0 :REM white for work area background menu%!16 = 200 :REM width in OS units menu%!20 = 44 :REM height in OS units menu%!24 = 0 :REM gap in OS units menu%!28 = 0 :REM 1st item's flags, all 0 menu%!32 =info_whandle% :REM window handle menu%!36 = &7000021 :REM 1st item's icon flags $(menu%+40) = "Info" :REM 1st item's icon data menu%!52 = &80 :REM 2nd item's flags, last menu%!56 = -1 :REM no submenu, no window handle menu%!60 = &7000021 :REM 2nd item's icon flags $(menu%+64) = "Quit" :REM 2nd item's icon data ENDPROC : DEFPROCerror SYS "Wimp_DragBox",,-1 blk%!0 = ERR $(blk%+4)=REPORT$+" at line "+STR$(ERL)+CHR$(0) SYS "Wimp_ReportError",blk%,1,"Acorn Invaders" ENDPROC