REM >!RunImage REM (C) Martyn Fox REM Wimp training program REM version 0.01 (date) ON ERROR PROCclose:REPORT:PRINT" at line ";ERL:END SYS "Wimp_Initialise",200,&4B534154,"Test" TO ,task% PROCinit PROCcreateicon REPEAT PROCpoll UNTIL quit% PROCclose END : DEFPROCcreateicon REM creates the application's icon and puts it on the icon bar !b%=-1:b%!4=0:b%!8=0:b%!12=68:b%!16=68:b%!20=&3002 $(b%+24)="!Test":SYS"Wimp_CreateIcon",,b% TO i% ENDPROC : DEFPROCclose REM tells the Wimp to quit the application SYS "Wimp_CloseDown",task%,&4B534154 ENDPROC : DEFPROCpoll REM main program Wimp polling loop SYS "Wimp_Poll",,b% TO r% CASE r% OF WHEN 2:SYS "Wimp_OpenWindow",,b% WHEN 3:SYS "Wimp_CloseWindow",,b% WHEN 6:PROCmouseclick WHEN 17,18:PROCreceive ENDCASE ENDPROC : DEFPROCinit REM initialisation before polling loop starts DIM b% 1023 quit%=FALSE PROCcreate_window ENDPROC : DEFPROCreceive REM handles messages received from the Wimp with reason codes 17 or 18 CASE b%!16 OF WHEN 0:quit%=TRUE ENDCASE ENDPROC : DEFPROCmouseclick REM handles mouse clicks in response to Wimp_Poll reason code 6 REM b%!0=mousex,b%!4=mousey:b%!8=buttons:b%!12=window handle (-2 for icon bar):b%!16=icon handle CASE b%!12 OF WHEN -2:CASE b%!8 OF WHEN 1:quit%=TRUE WHEN 4:!b%=main%:SYS "Wimp_GetWindowState",,b%:SYS "Wimp_OpenWindow",,b% ENDCASE ENDCASE ENDPROC : DEFPROCcreate_window REM sets up window data block and creates window b%!0=168:REM visible area minimum x b%!4=364:REM visible area minimum y b%!8=804:REM visible area maximum x b%!12=872:REM visible area maximum y b%!16=0:REM scroll x offset relative to work area origin b%!20=0:REM scroll y offset relative to work area origin b%!24=-1:REM handle to open window behind (-1 means top, -2 means bottom) b%!28=&FF030012:REM window flags b%?32=7:REM Title foreground and window frame colour b%?33=2:REM Title background colour b%?34=7:REM Work area foreground colour b%?35=1:REM Work area background colour b%?36=3:REM Scroll bar outer colour b%?37=1:REM Scroll bar inner (slider) colour b%?38=12:REM Title background colour when highlighted b%?39=0:REM Reserved - must be 0 b%!40=0:REM Work area minimum x coordinate b%!44=-700:REM Work area minimum y coordinate b%!48=1000:REM Work area maximum x coordinate b%!52=0:REM Work area maximum y coordinate b%!56=&3D:REM Title bar icon flags b%!60=&3000::REM Work area flags giving button type b%!64=1:REM Sprite area control block pointer (1 for Wimp sprites) b%!68=0:REM Minimum width and height of window $(b%+72)="Test Window":REM Title data b%!84=0:REM Number of icons SYS "Wimp_CreateWindow",,b% TO main% ENDPROC :