Home » Archimedes archive » Archimedes World » AW-1995-03-Disc2.adf » Disk2Mar95 » !AWMar95/Goodies/Templed/!TemplEd/Extras/Source
!AWMar95/Goodies/Templed/!TemplEd/Extras/Source
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Archimedes World » AW-1995-03-Disc2.adf » Disk2Mar95 |
Filename: | !AWMar95/Goodies/Templed/!TemplEd/Extras/Source |
Read OK: | ✔ |
File size: | 259BA bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
1REM ><TemplEd$Dir>.Extras.Source 2REM This application is FreeWare. (c) 1992,1993 Dick Alstein 3 4Appl$="TemplEd" 5Version$="1.24 (12-Sep-93)" 6 7REM The following maximum values can be set to suit your needs 8REM (You may need to adapt the WimpSlot) 9MaxTemplates%=100 : REM max number of user templates 10MaxIcons%=200 : REM max number of icons in a user template 11MaxIndirSize%=8000 : REM space for indirected data (only for loading) 12 13REM *** main program and top-level procs *** 14Quit%=FALSE 15PROCinit 16ON ERROR PROCerror(0) 17PollMask%=(1<<0)+(1<<4)+(1<<5)+(1<<11)+(1<<12) 18REPEAT 19 SYS "Wimp_Poll",PollMask%,Blk% TO reason% 20 CASE reason% OF 21 WHEN 0 22 SYS "Wimp_GetPointerInfo",,PtrInfo% 23 IF (PtrInfo%!8>0) AND Mbuttons_Released% THEN 24 REM signal press of mouse button 25 Mbuttons_Released%=FALSE 26 PROCclick(PtrInfo%!0,PtrInfo%!4,PtrInfo%!8,PtrInfo%!12,PtrInfo%!16,0) 27 ELSE 28 IF PtrInfo%!8=0 THEN 29 Mbuttons_Released%=TRUE 30 Drag_Type%=-1 31 TimedDrag_Enabled%=FALSE 32 ELSE 33 REM button still pressed - test if OK to start "timed drag" 34 IF ABS(PtrInfo%!0-ThisClickX%)+ABS(PtrInfo%!4-ThisClickY%)>16 THEN 35 TimedDrag_Enabled%=FALSE : REM moved mouse since click 36 ENDIF 37 IF TimedDrag_Enabled% THEN 38 IF ((TIME-ThisClickTime%)>DragInterval%) AND (PtrInfo%!16>=0) THEN 39 SYS "Wimp_DragBox",-1 40 PROCstarticondrag(PtrInfo%!8,PtrInfo%!12,PtrInfo%!16) 41 TimedDrag_Enabled%=FALSE 42 ENDIF 43 ENDIF 44 ENDIF 45 ENDIF 46 WHEN 1 : PROCredraw(Blk%!0) 47 WHEN 2 48 IF (Blk%!0=TemplW%)THEN 49 c%=(Blk%!12-Blk%!4) DIV TemplW_IconX% 50 IF c%<1 THEN c%=1 51 IF TemplW_Cols%<>c% THEN 52 TemplW_Cols%=c% 53 PROCredefinebrowser(0) 54 Blk%!0=TemplW% 55 ENDIF 56 ENDIF 57 SYS "Wimp_OpenWindow",,Blk% 58 IF Blk%!0=OptionsW% THEN 59 PROCopenpane(OptPaneW%) 60 ENDIF 61 WHEN 3 62 no%=FNwhichtemplate(Blk%!0) 63 IF no%>=0 THEN 64 PROCclosetemplate(no%) 65 ELSE 66 IF NOT (INKEY -1) THEN 67 PROCclosewindow(Blk%!0) 68 ENDIF 69 SYS "Wimp_GetPointerInfo",,PtrInfo% 70 IF (Blk%!0=TemplW%)AND(PtrInfo%!8=1)AND(INSTR(MainFName$,".")>0) THEN 71 SYS "Wimp_StartTask","Filer_OpenDir "+FNdirname(MainFName$) 72 ENDIF 73 ENDIF 74 WHEN 6 : PROCclick(Blk%!0,Blk%!4,Blk%!8,Blk%!12,Blk%!16,TRUE) 75 WHEN 7 : PROCfinishdrag(Blk%!0,Blk%!4,Blk%!8,Blk%!12) 76 WHEN 8 : PROCkey(Blk%!0,Blk%!4,Blk%!24) 77 WHEN 9 : PROCmenuselect(Blk%) 78 WHEN 17,18 : PROCreceive(Blk%) 79 ENDCASE 80 IF IcInfo_Active% THEN 81 PROCicinf_update 82 ENDIF 83UNTIL Quit% AND (TIME>=QuitDeadline%) 84PROCfont_loseall 85PROCregisteraeh(FALSE) 86PROCmsg_exit 87SYS "Wimp_CloseDown" 88END 89 90DEF PROCinit 91LOCAL cmdstr%,p%,fn$,i%,mask% 92DIM ErrBlk% &100 93SYS "Wimp_Initialise",200,&4B534154,Appl$ TO OSversion%,ThisTask% 94ON ERROR PROCerror(1) 95DIM VarBuf% 256 96ApplDir$=FNreadvarval("TemplEd$Dir") 97PROCheap_init : REM initialize heap 98PROCmsg_init : REM load Messages file 99REM lower bounds for Max* variables 100IF MaxTemplates%<4 THEN MaxTemplates%=4 101IF MaxIcons%<64 THEN MaxIcons%=64 102IF MaxIndirSize%<&1000 THEN MaxIndirSize%=&1000 103REM declaration of data blocks and arrays 104DIM IconBlk% 40 105SelBlkSize%=4*MaxIcons% 106DIM SelBlk% SelBlkSize% : REM block to hold list of selected icons 107DIM SelBlk2% SelBlkSize% 108DIM ScrapBlk% &100 : REM block to hold various temporary data 109DIM Blk% &100 : REM for data returned by Wimp_Poll 110DIM PtrInfo% 20 : REM to store pointer info 111DIM NumValidStr% 8 : REM validation string for entering a number 112$NumValidStr%="A0-9" 113DIM FpNumValidStr% 8 : REM for entering a floating point number 114$FpNumValidStr%="A0-9." 115DIM TemplNames% MaxTemplates%*28 : REM to store name and name of icon 116DIM TemplHandle%(MaxTemplates%) : REM handles of the user templates 117DIM PaneFlag% MaxTemplates% : REM 'Pane' flags are kept in this array 118NrTemplates%=0 : REM current number of user templates 119TemplatesOpen%=0 : REM number of templates currently open 120MaxTemplateSize%=92+32*MaxIcons% : REM max size for a template 121MaxTemplateSize%+=MaxIndirSize% : REM extra space for indirected data 122DIM WinBlk% MaxTemplateSize% 123SysIndirSize%=&1800 : REM size of indirected data for system windows 124DIM IndirBlk% SysIndirSize% 125IndirEnd%=IndirBlk% : REM pointer to first unused byte 126IndirFree%=SysIndirSize% : REM remaining free space after IndirEnd% 127DIM IconText%(32) : REM pointers to indirected text icons 128DIM IconTextWhdl%(32) : REM corresponding window handles 129DIM IconTextIhdl%(32) : REM corresponding icon handles 130DIM CselText%(12) : REM pointers to text in colour-select boxes 131DIM CselTextWhdl%(12) : REM corresponding window handles 132DIM CselTextIhdl%(12) : REM corresponding icon handles 133DIM IcButton% 20*16 : REM names of button types for icons 134DIM WinButton% 20*16 : REM names of button types for windows 135FOR i%=0 TO 15 136 $(IcButton%+20*i%)=FNmsg_lookup0("ICBT"+STR$(i%)) 137 $(WinButton%+20*i%)=FNmsg_lookup0("WNBT"+STR$(i%)) 138NEXT i% 139DIM WinEd_Col%(6) : REM colours in the colour-select boxes 140DIM InverseColour%(15) : REM to display text in colour boxes / colour menu 141FOR i%=0 TO 15 142 CASE i% OF 143 WHEN 0,1,2,3,9,12,14 144 InverseColour%(i%)=7 145 OTHERWISE 146 InverseColour%(i%)=0 147 ENDCASE 148NEXT i% 149DIM DragBlk% 40 : REM data block for starting drags 150FileIndexSize%=16+MaxTemplates%*24+4 151DIM FileIndex% FileIndexSize% : REM contains index of a template file 152DIM FontUsage%(256) : REM counts number of icons that use a font 153DIM Fra% 256 : REM font reference array for loading+saving templates 154DIM FontData% 64 : REM buffer for reading font data 155DIM Mouse_Ptt% 16 : REM pixel translation table for pointer changes 156REM initialise global variables 157IcEd_Win%=-1000 : REM invalid values 158IcEd_Icon%=-1000 159WinEd_Win%=-1 160Mbuttons_Released%=FALSE : REM to debounce mouse clicks 161ThisClickTime%=TIME : REM to store data of last mouse click 162ThisClickX%=-1000 163ThisClickY%=-1000 164ThisClickButton%=0 165TimedDrag_Enabled%=FALSE : REM can I start "timed drag" from current click? 166DragInterval%=50 : REM interval after which "timed drag" can start 167DclickInterval%=50 : REM max time between clicks of a double-click 168NextIconNr%=0 : REM for semi-automatic renumbering of icons 169LastMenu%=-1 : REM handle of last menu shown 170LastMenu_Win%=-31 : REM window above which last menu was made 171LastMenu_Icon%=-1 : REM icon handle of same 172MainFName$="Templates" : REM save all templates as .... 173SelFName$="Selection" : REM save template selection as .... 174SavingSelection%=FALSE : REM was last save dialogue to save a selection? 175QuitAfterSave%=FALSE : REM quit program after current save proc? 176QuitDeadline%=0 : REM for "delayed" quit, to avoid Wimp bug 177NewFName$="" : REM name of new template file to be loaded 178ChangesMade%=FALSE : REM have current templates been modified? 179UserSprites%=1 : REM sprites in user templates from Wimp area (at first) 180SpriteFName$="" : REM name of sprite file if not using Wimp area 181Drag_Type%=-1 : REM type of current drag operation (-1 => none) 182SupportAEH%=FALSE : REM is in setup, but must exist before loading templates 183AEHregistered%=FALSE 184REM create icon on icon bar 185IconBlk%!0=-1 186IconBlk%!4=0 : IconBlk%!8=0 187IconBlk%!12=68 : IconBlk%!16=68 188IconBlk%!20=&7000301A 189$(IconBlk%+24)="!templed" 190SYS "Wimp_CreateIcon",,IconBlk% TO BarIcon% 191REM load system sprites 192SysSprites%=FNloadspritefile(ApplDir$+".Sprites") 193REM initialise font reference arrays 194FOR i%=0 TO 255 195 Fra%?i%=0 196NEXT i% 197REM load system templates and set pointers to indirected data 198SYS "Wimp_OpenTemplate",,ApplDir$+".Templates" 199InfoW%=FNloadtemplate("Info",WinBlk%,IndirEnd%,IndirFree%,1) 200$(WinBlk%!(92+3*32+20))=Version$ 201TemplW%=FNloadtemplate("Templates",WinBlk%,IndirEnd%,IndirFree%,SysSprites%) 202TemplTbar%=WinBlk%!76 : REM pointer to text in title bar 203$(TemplTbar%)=MainFName$ 204i%=WinBlk%+92 205TemplW_IconX%=i%!8-i%!0 + 8 : REM size of an icon in browser window 206TemplW_IconY%=i%!12-i%!4 + 8 207TemplW_IconFlags%=i%!16 : REM icon flags 208TemplW_Cols%=(WinBlk%!12-WinBlk%!4) DIV TemplW_IconX% : REM #columns 209IF TemplW_Cols%<1 THEN TemplW_Cols%=1 210ScrapBlk%!0=TemplW% 211ScrapBlk%!4=0 212SYS "Wimp_DeleteIcon",,ScrapBlk% : REM icon is only used to set size 213IcEdW%=FNloadtemplate("IconEdit",WinBlk%,IndirEnd%,IndirFree%,SysSprites%) 214IcEdTbar%=WinBlk%!76 215PROClinkicontext(0,WinBlk%,23) : REM text in a text icon 216PROClinkicontext(1,WinBlk%,24) : REM name of a sprite 217PROClinkicontext(2,WinBlk%,25) : REM validation string 218PROClinkicontext(3,WinBlk%,26) : REM max size 219PROClinkicontext(4,WinBlk%,28) : REM icon button type 220PROClinkicontext(5,WinBlk%,31) : REM esg 221PROClinkicontext(19,WinBlk%,45) : REM font name 222PROClinkicontext(20,WinBlk%,48) : REM font x size 223PROClinkicontext(21,WinBlk%,51) : REM font y size 224PROClinkcseltext(0,WinBlk%,34) : REM foreground colour 225PROClinkcseltext(1,WinBlk%,37) : REM background colour 226WinEdW%=FNloadtemplate("WindowEdit",WinBlk%,IndirEnd%,IndirFree%,SysSprites%) 227WinEdTbar%=WinBlk%!76 228PROClinkicontext(6,WinBlk%,23) : REM window button type 229PROClinkcseltext(2,WinBlk%,27) : REM title foreground colour 230PROClinkcseltext(3,WinBlk%,31) : REM title background colour 231PROClinkcseltext(4,WinBlk%,35) : REM work area foreground colour 232PROClinkcseltext(5,WinBlk%,39) : REM work area background colour 233PROClinkcseltext(6,WinBlk%,43) : REM scrollbar inner colour 234PROClinkcseltext(7,WinBlk%,47) : REM scrollbar outer colour 235PROClinkcseltext(8,WinBlk%,51) : REM input focus colour 236DefW%=FNloadtemplate("DefaultWin",WinBlk%,IndirEnd%,IndirFree%,1) 237SaveW%=FNloadtemplate("SaveBox",WinBlk%,IndirEnd%,IndirFree%,1) 238FileName%=WinBlk%!(92+1*32+20) : REM pointer to file name in savebox 239IcInfoW%=FNloadtemplate("IconInfo",WinBlk%,IndirEnd%,IndirFree%,1) 240PROClinkicontext(7,WinBlk%,6) : REM template name 241PROClinkicontext(8,WinBlk%,7) : REM icon number 242PROClinkicontext(9,WinBlk%,9) : REM minimum x coordinate 243PROClinkicontext(26,WinBlk%,10) : REM maximum x coordinate 244PROClinkicontext(10,WinBlk%,11) : REM minimum y coordinate 245PROClinkicontext(27,WinBlk%,8) : REM maximum y coordinate 246PROClinkicontext(11,WinBlk%,12) : REM icon size 247PROClinkicontext(24,WinBlk%,13) : REM pointer position 248WorkW%=FNloadtemplate("WorkArea",WinBlk%,IndirEnd%,IndirFree%,SysSprites%) 249PROClinkicontext(12,WinBlk%,10) : REM top left X coord 250PROClinkicontext(13,WinBlk%,13) : REM top left Y coord 251PROClinkicontext(14,WinBlk%,16) : REM work area X size 252PROClinkicontext(15,WinBlk%,19) : REM work area Y size 253PROClinkicontext(16,WinBlk%,22) : REM min X size 254PROClinkicontext(17,WinBlk%,25) : REM min Y size 255AlignW%=FNloadtemplate("Align",WinBlk%,IndirEnd%,IndirFree%,SysSprites%) 256PROCselecticon(AlignW%,2,1) : REM set align-left on 257PROCselecticon(AlignW%,8,1) : REM move icons 258OptionsW%=FNloadtemplate("Options",WinBlk%,IndirEnd%,IndirFree%,SysSprites%) 259OptPaneW%=FNloadtemplate("OptPane",WinBlk%,IndirEnd%,IndirFree%,SysSprites%) 260PROClinkicontext(28,WinBlk%,19) : REM iconsize grid X size 261PROClinkicontext(29,WinBlk%,23) : REM iconsize grid Y size 262PROClinkicontext(30,WinBlk%,28) : REM iconpos grid X size 263PROClinkicontext(31,WinBlk%,32) : REM iconpos grid Y size 264SpaceW%=FNloadtemplate("Spaceout",WinBlk%,IndirEnd%,IndirFree%,SysSprites%) 265PROCselecticon(SpaceW%,3,1) : REM set space-vertically on 266PROCselecticon(SpaceW%,4,1) : REM set to fixed spacing 267PROClinkicontext(18,WinBlk%,6) : REM space between icons 268SpaceOut_Space%=4 269PROCseticontext(18,STR$(SpaceOut_Space%)) 270PROCspace_shadeicons 271StatW%=FNloadtemplate("Stats",WinBlk%,IndirEnd%,IndirFree%,SysSprites%) 272PROCselecticon(StatW%,1,1) 273StdIconW%=FNloadtemplate("StdIcons",WinBlk%,IndirEnd%,IndirFree%,1) 274LastStdIcon%=WinBlk%!88-1 275DialW%=FNloadtemplate("Dialogue",WinBlk%,IndirEnd%,IndirFree%,1) 276Dial_Msg%=WinBlk%!(92+20) 277Dial_Button1%=WinBlk%!(92+1*32+20) : REM pointer to text in left button 278Dial_Button2%=WinBlk%!(92+2*32+20) : REM pointer to text in middle button 279Dial_Button3%=WinBlk%!(92+3*32+20) : REM pointer to text in right button 280REM store colours and border flag of buttons 281mask%=(1<<2)+(&FF<<24) 282Dial_ButtonCol1%=(WinBlk%!(92+1*32+16)) AND mask% 283Dial_ButtonCol2%=(WinBlk%!(92+2*32+16)) AND mask% 284Dial_ButtonCol3%=(WinBlk%!(92+3*32+16)) AND mask% 285SYS "Wimp_CloseTemplate" 286REM initialise font usage 287FOR i%=0 TO 255 288 IF Fra%?i%>0 THEN 289 FontUsage%(i%)=1 : REM font is used by system templates 290 ELSE 291 FontUsage%(i%)=0 292 ENDIF 293NEXT i% 294PROCsetup_load 295PROCselecticon(OptPaneW%,13,IcInfo_Active%) 296PROCselecticon(OptPaneW%,11,DuplNames%) 297PROCselecticon(OptPaneW%,12,Hatch%) 298PROCselecticon(OptPaneW%,16,Grid_SizeLock%) 299PROCseticontext(28,STR$(Grid_SizeX%)) 300PROCseticontext(29,STR$(Grid_SizeY%)) 301PROCselecticon(OptPaneW%,25,Grid_PosLock%) 302PROCseticontext(30,STR$(Grid_PosX%)) 303PROCseticontext(31,STR$(Grid_PosY%)) 304PROCselecticon(OptPaneW%,14,Save_Unselected%) 305PROCselecticon(OptPaneW%,15,DeleteOutside%) 306PROCselecticon(OptPaneW%,8,TrapDclick%) 307PROCpreparemenus 308PROCsupportinterface(SupportInterface%) 309AEHregistered%=FALSE 310PROCsupportaeh(SupportAEH%) 311PROCreadscreenvars 312REM get filename that was given as argument with command 313SYS "OS_GetEnv" TO cmdstr% 314fn$=FNstr(cmdstr%) 315p%=INSTR(fn$,ApplDir$) 316p%=INSTR(fn$," ",p%+LEN(ApplDir$)) 317IF p%>0 THEN 318 fn$=MID$(fn$,p%+1) 319 p%=INSTR(fn$," ",p%) 320 fn$=LEFT$(fn$,p%-1) 321 IF LEN(fn$)>0 THEN 322 PROCtempl_loadfile(fn$,1) : REM found filename - load the file 323 PROCsetmainfname(fn$) 324 ENDIF 325ELSE 326 PROCsetextent 327ENDIF 328ENDPROC 329 330DEF PROCkey(window%,icon%,key%) 331LOCAL i%,waslast%,dx%,dy%,no%,help$,xmin%,ymin%,xmax%,ymax%,xstep%,ystep% 332IF (key%=27) AND (Drag_Type%<>-1) THEN 333 PROCabortdrag 334ELSE 335 CASE window% OF 336 WHEN IcEdW% 337 CASE key% OF 338 WHEN &18E,&18A,13 : REM down, tab, return 339 IF icon%>0 THEN 340 i%=icon% 341 waslast%=FALSE 342 REPEAT 343 IF i%=26 THEN 344 i%=23 345 waslast%=TRUE : REM caret went "round" 346 ELSE 347 i%+=1 348 ENDIF 349 UNTIL (NOT FNiconshaded(IcEdW%,i%)) OR (i%=icon%) 350 IF waslast% AND (key%=13) THEN 351 PROCselecticon(IcEdW%,9,1) 352 PROCiced_readwin(-1) 353 PROCselecticon(IcEdW%,9,0) 354 i%=icon% 355 ENDIF 356 PROCsetcaret(IcEdW%,i%) 357 ENDIF 358 WHEN &18F,&19A : REM up, shift+tab 359 IF icon%>0 THEN 360 i%=icon% 361 REPEAT 362 IF i%=23 THEN 363 i%=26 364 ELSE 365 i%-=1 366 ENDIF 367 UNTIL (NOT FNiconshaded(IcEdW%,i%)) OR (i%=icon%) 368 PROCsetcaret(IcEdW%,i%) 369 ENDIF 370 WHEN &181 : REM F1 371 SYS "Wimp_GetPointerInfo",,PtrInfo% 372 IF PtrInfo%!12=IcEdW% THEN 373 help$="" 374 CASE PtrInfo%!16 OF 375 WHEN 14 : help$="Indirected" 376 WHEN 3,25 : help$="Validation" 377 WHEN 4,26 : help$="Maxsize" 378 WHEN 15 : help$="Border" 379 WHEN 16 : help$="Filled" 380 WHEN 17 : help$="Hcentred" 381 WHEN 18 : help$="Vcentred" 382 WHEN 19 : help$="Rjustified" 383 WHEN 20 : help$="Needshelp" 384 WHEN 21 : help$="Allowadjust" 385 WHEN 22 : help$="Halfsize" 386 WHEN 5,27,28,29 : help$="Buttontype" 387 WHEN 6,30,31,32 : help$="ESG" 388 WHEN 39 : help$="Shaded" 389 WHEN 7,33,34,35 : help$="Fgcol" 390 WHEN 8,36,37,38 : help$="Bgcol" 391 WHEN 41 : help$="Font" 392 WHEN 1 : help$="Flags" 393 ENDCASE 394 IF help$<>"" THEN 395 PROCaskhelp("TemplEd.IconInfo_"+help$) 396 ENDIF 397 ENDIF 398 WHEN &182 : REM F2 399 PROCselecticon(IcEdW%,9,1) 400 PROCiced_readwin(-1) 401 PROCselecticon(IcEdW%,9,0) 402 WHEN &183 : REM F3 403 PROCselecticon(IcEdW%,10,1) 404 PROCiced_readwin(-1) 405 PROCselecticon(IcEdW%,10,0) 406 PROCclosewindow(IcEdW%) 407 PROCsetcaret(IcEd_Win%,-1) 408 WHEN &184,27 : REM F4, Esc 409 PROCselecticon(IcEdW%,11,1) 410 PROCclosewindow(IcEdW%) 411 PROCselecticon(IcEdW%,11,0) 412 PROCsetcaret(IcEd_Win%,-1) 413 OTHERWISE 414 SYS "Wimp_ProcessKey",key% 415 ENDCASE 416 WHEN WinEdW% 417 CASE key% OF 418 WHEN &181 419 SYS "Wimp_GetPointerInfo",,PtrInfo% 420 IF PtrInfo%!12=WinEdW% THEN 421 help$="" 422 CASE PtrInfo%!16 OF 423 WHEN 4 : help$="Moveable" 424 WHEN 5 : help$="Auto-redraw" 425 WHEN 6 : help$="Hotkeys" 426 WHEN 7 : help$="Pane" 427 WHEN 8 : help$="Nobounds" 428 WHEN 9 : help$="GCOL" 429 WHEN 10 : help$="Backwindow" 430 WHEN 11,12 : help$="Scroll" 431 WHEN 1,21,22,23,24 : help$="Buttontype" 432 WHEN 20 : help$="Newformat" 433 ENDCASE 434 IF help$<>"" THEN 435 PROCaskhelp("TemplEd.WinInfo_"+help$) 436 ENDIF 437 ENDIF 438 WHEN &182,13 439 PROCselecticon(WinEdW%,53,1) 440 PROCwined_readwin 441 PROCselecticon(WinEdW%,53,0) 442 WHEN &183 443 PROCselecticon(WinEdW%,54,1) 444 PROCwined_readwin 445 PROCselecticon(WinEdW%,54,0) 446 PROCclosewindow(WinEdW%) 447 PROCsetcaret(WinEd_Win%,-1) 448 WHEN &184,27 449 PROCselecticon(WinEdW%,55,1) 450 PROCclosewindow(WinEdW%) 451 PROCselecticon(WinEdW%,55,0) 452 PROCsetcaret(WinEd_Win%,-1) 453 OTHERWISE 454 SYS "Wimp_ProcessKey",key% 455 ENDCASE 456 WHEN SaveW% 457 CASE key% OF 458 WHEN 13 459 PROCselecticon(SaveW%,0,1) 460 IF SavingSelection% THEN 461 SelFName$=$(FileName%) 462 PROCsavetemplates(SelFName$) 463 ELSE 464 PROCsetmainfname($(FileName%)) 465 PROCsavetemplates(MainFName$) 466 ENDIF 467 PROCselecticon(SaveW%,0,0) 468 SYS "Wimp_CreateMenu",,-1 469 WHEN 27 470 SYS "Wimp_CreateMenu",,-1 471 OTHERWISE 472 SYS "Wimp_ProcessKey",key% 473 ENDCASE 474 WHEN WorkW% 475 CASE key% OF 476 WHEN &18E,&18A,13 477 IF icon%=25 THEN 478 IF key%=13 THEN 479 PROCselecticon(WorkW%,30,1) 480 PROCsetworkarea 481 PROCselecticon(WorkW%,30,0) 482 SYS "Wimp_CreateMenu",,-1 483 ELSE 484 PROCsetcaret(WorkW%,10) 485 ENDIF 486 ELSE 487 PROCsetcaret(WorkW%,icon%+3) 488 ENDIF 489 WHEN &18F,&19A 490 IF icon%=10 THEN 491 PROCsetcaret(WorkW%,25) 492 ELSE 493 PROCsetcaret(WorkW%,icon%-3) 494 ENDIF 495 WHEN 27 496 SYS "Wimp_CreateMenu",,-1 497 OTHERWISE 498 SYS "Wimp_ProcessKey",key% 499 ENDCASE 500 WHEN SpaceW% 501 IF key%=13 THEN 502 PROCselecticon(SpaceW%,9,1) 503 PROCspaceicons(LastMenu_Win%) 504 PROCselecticon(SpaceW%,9,0) 505 SYS "Wimp_CreateMenu",,-1 506 ELSE 507 SYS "Wimp_ProcessKey",key% 508 ENDIF 509 OTHERWISE 510 CASE Drag_Type% OF 511 WHEN 0,1,5,6 512 dx%=0 513 dy%=0 514 CASE key% OF 515 WHEN &18C : dx%=-PixToOS_X% 516 WHEN &18D : dx%=PixToOS_X% 517 WHEN &18E : dy%=-PixToOS_Y% 518 WHEN &18F : dy%=PixToOS_Y% 519 WHEN &19C : dx%=-4*PixToOS_X% 520 WHEN &19D : dx%=4*PixToOS_X% 521 WHEN &19E : dy%=-4*PixToOS_Y% 522 WHEN &19F : dy%=4*PixToOS_Y% 523 OTHERWISE : SYS "Wimp_ProcessKey",key% 524 ENDCASE 525 SYS "Wimp_GetPointerInfo",,PtrInfo% 526 MOUSE TO (PtrInfo%!0)+dx%,(PtrInfo%!4)+dy% 527 OTHERWISE 528 no%=FNwhichtemplate(window%) 529 IF no%<>-1 THEN 530 CASE key% OF 531 WHEN 1 : PROCsel_all(window%) : REM ^A 532 WHEN 3 533 dummy%=-1 534 PROCcopyiconsel(window%,dummy%,0) : REM ^C 535 WHEN 4 536 dummy%=-1 537 PROCcopyiconsel(window%,dummy%,2) : REM ^D 538 WHEN 5 : PROCiced_start(window%,-1) : REM ^E 539 WHEN 10 540 PROCsel_get(window%) : REM ^J 541 IF NrSelected%>=2 THEN 542 LastMenu_Win%=window% 543 LastMenu_Icon%=-1 544 SYS "Wimp_GetPointerInfo",,PtrInfo% 545 SYS "Wimp_CreateMenu",,AlignW%,PtrInfo%!0-80,PtrInfo%!4+80 546 ENDIF 547 WHEN 11 548 PROCsel_get(window%) : REM ^K 549 IF NrSelected%>=2 THEN 550 LastMenu_Win%=window% 551 LastMenu_Icon%=-1 552 SYS "Wimp_GetPointerInfo",,PtrInfo% 553 SYS "Wimp_CreateMenu",,SpaceW%,PtrInfo%!0-80,PtrInfo%!4+80 554 ENDIF 555 WHEN 12 556 dummy%=-1 557 PROCcopyiconsel(window%,dummy%,3) : REM ^L 558 WHEN 17,&1A2 : PROCclosetemplate(no%) : REM ^Q,^F2 559 WHEN 18 560 dummy%=-1 561 PROCcopyiconsel(window%,dummy%,4) : REM ^R 562 WHEN 20 : PROCiced_start(window%,-4) : REM ^T 563 WHEN 21 564 dummy%=-1 565 PROCcopyiconsel(window%,dummy%,1) : REM ^U 566 WHEN 23 : PROCwined_fillwin(window%) : REM ^W 567 WHEN 24 : PROCdeleteiconsel(window%,-1) : REM ^X 568 WHEN 26 : PROCsel_clear(window%,-1) : REM ^Z 569 WHEN &18C,&18D,&18E,&18F,&19C,&19D,&19E,&19F 570 PROCsel_get(window%) 571 IF NrSelected%>0 THEN 572 PROCsel_box(window%,xmin%,ymin%,xmax%,ymax%) 573 IF Grid_PosLock% THEN 574 xstep%=Grid_PosX% 575 ystep%=Grid_PosY% 576 ELSE 577 IF Grid_SizeLock% THEN 578 xstep%=Grid_SizeX% 579 ystep%=Grid_SizeY% 580 ELSE 581 xstep%=PixToOS_X% 582 ystep%=PixToOS_Y% 583 ENDIF 584 ENDIF 585 CASE (key% AND &F) OF 586 WHEN &C : dx%=-xstep% 587 WHEN &D : dx%=xstep% 588 WHEN &E : dy%=-ystep% 589 WHEN &F : dy%=ystep% 590 ENDCASE 591 IF key% AND &10 THEN 592 dx%=dx%*4 593 dy%=dy%*4 594 ENDIF 595 xmin%+=dx% 596 xmax%+=dx% 597 ymin%+=dy% 598 ymax%+=dy% 599 PROCmoveresize(window%,-1,window%,xmin%,ymin%,xmax%,ymax%) 600 ENDIF 601 OTHERWISE : SYS "Wimp_ProcessKey",key% 602 ENDCASE 603 ELSE 604 SYS "Wimp_ProcessKey",key% 605 ENDIF 606 ENDCASE 607 ENDCASE 608ENDIF 609ENDPROC 610 611DEF FNloadtemplate(name$,buf%,RETURN indir%,RETURN free%,spptr%) 612LOCAL oldindir%,handle% 613LOCAL ERROR 614ON ERROR LOCAL SYS "Wimp_CloseTemplate" : PROCerror(1) 615oldindir%=indir% 616name$=name$+STRING$(12,CHR$0) 617SYS "Wimp_LoadTemplate",,buf%+4,indir%,indir%+free%,Fra%,name$,0 TO ,,indir% 618free%-=(indir%-oldindir%) 619buf%!68=spptr% 620IF buf%!88>0 THEN 621 FOR i%=0 TO buf%!88 622 f%=buf%!(92+i%*32+16) 623 IF (f% AND &103)=&102 THEN 624 buf%!(92+i%*32+24)=spptr% 625 ENDIF 626 NEXT i% 627ENDIF 628SYS "Wimp_CreateWindow",,buf%+4 TO handle% 629buf%!0=handle% 630=handle% 631 632DEF PROCmenuselect(selection%) 633LOCAL adjust%,selinfo%,itemnr%,item%,item$,parentitem%,parentitem$ 634LOCAL cmd$,i%,j%,minx%,miny%,size,dir% 635SYS "MenuUtil_Decode",LastMenu%,selection% TO ,adjust%,selinfo% 636itemnr%=selinfo%!0 637item%=selinfo%!8 638item$=FNstr(selinfo%!12) 639parentitem%=selinfo%!24 640IF parentitem%<>0 THEN parentitem$=FNstr(selinfo%!28) 641CASE LastMenu% OF 642 WHEN MainMenu% 643 CASE item% OF 644 WHEN item_options% 645 PROCopenwindow(OptionsW%,2) 646 WHEN item_stats% 647 PROCstat_fillwin 648 WHEN item_sprview% 649 cmd$="Run "+SpriteFName$ 650 IF OSversion%>=300 THEN cmd$="Filer_"+cmd$ 651 SYS "Wimp_StartTask",cmd$ 652 WHEN item_sprreload% 653 PROCloadusersprites(SpriteFName$) 654 WHEN item_sprreset% 655 PROCloadusersprites("") 656 WHEN item_quit% 657 IF ChangesMade% THEN 658 PROCdialogue(0,"","") 659 ELSE 660 PROCprequit(0) 661 ENDIF 662 ENDCASE 663 WHEN TemplMenu% 664 CASE item% OF 665 WHEN item_templname% 666 CASE parentitem% OF 667 WHEN item_createtempl% 668 IF LEN(item$)>0 THEN 669 WinBlk%!0=DefW% 670 SYS "Wimp_GetWindowInfo",,WinBlk% 671 $(WinBlk%+76)=item$ : REM title bar equal to template name 672 WinBlk%!88=0 673 PROCtempl_add(item$,WinBlk%,1) 674 PROCopentemplate(NrTemplates%-1) 675 PROCsetchanged(TRUE) 676 ENDIF 677 WHEN item_renametempl% 678 IF LEN(item$)>0 THEN 679 j%=0 680 REM check if name already exists 681 WHILE (j%<NrTemplates%) AND ($(TemplNames%+28*j%)<>item$) 682 j%+=1 683 ENDWHILE 684 IF (j%=NrTemplates%) OR DuplNames% THEN 685 i%=SelBlk%!0 686 $(TemplNames%+28*i%)=item$ 687 IconBlk%!0=TemplW% 688 IconBlk%!4=i% 689 SYS "Wimp_GetIconState",,IconBlk% 690 IconBlk%!16=(IconBlk%!8)+(TemplW_IconX%-8)-16*(11-LEN(item$)) 691 dummy%=FNredefineicon(TemplW%,i%,IconBlk%) 692 PROCsetchanged(TRUE) 693 ELSE 694 PROCcomplain(FNmsg_lookup0("TAEX")) 695 ENDIF 696 ENDIF 697 WHEN item_copytempl% 698 IF LEN(item$)>0 THEN 699 PROCsel_get(TemplW%) 700 WinBlk%!0=TemplHandle%(SelBlk%!0) 701 SYS "Wimp_GetWindowInfo",,WinBlk% 702 IF PaneFlag%?(SelBlk%!(4*i%)) THEN 703 WinBlk%!32=WinBlk%!32 OR (1<<5) : REM copy 'Pane' flag 704 ENDIF 705 PROCiconrealloc(WinBlk%+60,WinBlk%+76) 706 IF WinBlk%!88>0 THEN 707 FOR i%=0 TO WinBlk%!88-1 708 PROCiconrealloc(WinBlk%+92+32*i%+16,WinBlk%+92+32*i%+20) 709 NEXT i% 710 ENDIF 711 PROCtempl_add(item$,WinBlk%,1) 712 PROCopentemplate(NrTemplates%-1) 713 PROCsetchanged(TRUE) 714 ENDIF 715 ENDCASE 716 WHEN item_opentempl% 717 PROCsel_get(TemplW%) 718 FOR i%=NrSelected%-1 TO 0 STEP -1 719 PROCopentemplate(SelBlk%!(4*i%)) 720 NEXT i% 721 WHEN item_closetempl% 722 PROCsel_get(TemplW%) 723 FOR i%=NrSelected%-1 TO 0 STEP -1 724 PROCclosetemplate(SelBlk%!(4*i%)) 725 NEXT i% 726 WHEN item_deletetempl% 727 SYS "Hourglass_On" 728 PROCsel_get(TemplW%) 729 FOR i%=NrSelected%-1 TO 0 STEP -1 730 PROCtempl_delete(SelBlk%!(4*i%)) 731 NEXT i% 732 PROCsel_clear(TemplW%,-1) 733 LastMenu_Win%=TemplW% 734 LastMenu_Icon%=-1 735 SYS "Hourglass_Off" 736 WHEN item_selalltempl% 737 PROCsel_all(TemplW%) 738 WHEN item_clearseltempl% 739 PROCsel_clear(TemplW%,-1) 740 WHEN item_deleteall% 741 IF ChangesMade% THEN 742 PROCdialogue(1,"","") 743 ELSE 744 PROCtempl_deleteall 745 LastMenu_Win%=TemplW% 746 LastMenu_Icon%=-1 747 ENDIF 748 WHEN item_sorttempl% 749 PROCsel_clear(TemplW%,-1) 750 PROCtempl_sort 751 PROCredefinebrowser(TRUE) 752 LastMenu_Win%=TemplW% 753 LastMenu_Icon%=-1 754 WHEN item_save% 755 SavingSelection%=FALSE 756 PROCsavetemplates(MainFName$) 757 ENDCASE 758 IF TemplMenu_Deselect% THEN PROCsel_clear(TemplW%,-1) 759 WHEN UserMenu% 760 CASE item% OF 761 WHEN item_copyicon%,item_up%,item_down%,item_left%,item_right% 762 CASE item% OF 763 WHEN item_copyicon% : dir%=0 764 WHEN item_up% : dir%=1 765 WHEN item_down% : dir%=2 766 WHEN item_left% : dir%=3 767 WHEN item_right% : dir%=4 768 ENDCASE 769 PROCcopyiconsel(LastMenu_Win%,LastMenu_Icon%,dir%) 770 WHEN item_iconnr%,item_renumbericon% 771 IF item%=item_iconnr% THEN NextIconNr%=VAL(item$) 772 PROCsel_get(LastMenu_Win%) 773 CASE NrSelected% OF 774 WHEN 0 775 PROCrenumbericon(LastMenu_Win%,LastMenu_Icon%) 776 LastMenu_Icon%=NextIconNr% 777 WHEN 1 778 PROCrenumbericon(LastMenu_Win%,SelBlk%!0) 779 OTHERWISE 780 PROCrenumbericonsel(LastMenu_Win%) 781 ENDCASE 782 WHEN item_deleteicon% 783 PROCdeleteiconsel(LastMenu_Win%,LastMenu_Icon%) 784 WHEN item_editicon% 785 PROCiced_start(LastMenu_Win%,LastMenu_Icon%) 786 WHEN item_minsize% 787 PROCminimizeiconsel(LastMenu_Win%,LastMenu_Icon%,0) 788 WHEN item_centericon% 789 PROCcentericonsel(LastMenu_Win%,LastMenu_Icon%,0) 790 WHEN item_samesize% 791 PROCsamesizeiconsel(LastMenu_Win%,LastMenu_Icon%,0) 792 WHEN item_both%,item_xdim%,item_ydim% 793 CASE parentitem% OF 794 WHEN item_minsize% 795 PROCminimizeiconsel(LastMenu_Win%,LastMenu_Icon%,itemnr%) 796 WHEN item_centericon% 797 PROCcentericonsel(LastMenu_Win%,LastMenu_Icon%,itemnr%) 798 WHEN item_samesize% 799 PROCsamesizeiconsel(LastMenu_Win%,LastMenu_Icon%,itemnr%) 800 ENDCASE 801 WHEN item_selallicons% 802 PROCsel_all(LastMenu_Win%) 803 WHEN item_clearselicons% 804 PROCsel_clear(LastMenu_Win%,-1) 805 WHEN item_editwindow% 806 PROCwined_fillwin(LastMenu_Win%) 807 WHEN item_edittitle% 808 PROCiced_start(LastMenu_Win%,-4) 809 WHEN item_tidyicons% 810 LastMenu_Win%=FNtidyicons(LastMenu_Win%) 811 WHEN item_centerwin% 812 PROCopenwindow(LastMenu_Win%,1) 813 WHEN item_wimparea% 814 PROCwindow_setspritearea(LastMenu_Win%,1) 815 WHEN item_customarea% 816 PROCwindow_setspritearea(LastMenu_Win%,UserSprites%) 817 WHEN item_closewin% 818 PROCclosetemplate(FNwhichtemplate(LastMenu_Win%)) 819 OTHERWISE 820 IF (item%=item_createicon%) OR (parentitem%=item_createicon%) THEN 821 IF item%=item_createicon% THEN item$="" 822 REM convert screen coords to window coords 823 ScrapBlk%!0=LastMenu_Win% 824 SYS "Wimp_GetWindowState",,ScrapBlk% 825 minx%=LastMenu_X%-(ScrapBlk%!4-ScrapBlk%!20) 826 miny%=LastMenu_Y%-(ScrapBlk%!16-ScrapBlk%!24) 827 PROCcreatestandardicon(item$,LastMenu_Win%,minx%,miny%) 828 ENDIF 829 ENDCASE 830 WHEN IcButtonMenu% 831 IcEd_Button%=itemnr% 832 PROCseticontext(4,$(IcButton%+20*IcEd_Button%)) 833 WHEN WinButtonMenu% 834 WinEd_Button%=itemnr% 835 PROCseticontext(6,$(WinButton%+20*WinEd_Button%)) 836 WHEN EsgMenu% 837 IcEd_Esg%=VAL(LEFT$(item$,2)) 838 PROCseticontext(5,STR$(IcEd_Esg%)) 839 WHEN ColourMenu% 840 IF item$="None" THEN 841 j%=255 842 ELSE 843 j%=VAL(item$) 844 ENDIF 845 CASE LastMenu_Win% OF 846 WHEN IcEdW% 847 CASE LastMenu_Icon% OF 848 WHEN 34 849 IcEd_Fgcol%=j% 850 PROCsetcolourbox(0,j%) 851 WHEN 37 852 IcEd_Bgcol%=j% 853 PROCsetcolourbox(1,j%) 854 ENDCASE 855 WHEN WinEdW% 856 i%=(LastMenu_Icon%-27) DIV 4 857 WinEd_Col%(i%)=j% 858 PROCsetcolourbox(2+i%,j%) 859 ENDCASE 860 WHEN FontMenu% 861 IF LEN(parentitem$)>0 THEN 862 IF item$="(Regular)" THEN 863 IcEd_Font$=parentitem$ 864 ELSE 865 IcEd_Font$=parentitem$+"."+item$ 866 ENDIF 867 PROCseticontext(19,IcEd_Font$) 868 ENDIF 869 WHEN FontSizemenu% 870 size=VAL(item$) 871 IF size>0 THEN 872 IF LastMenu_Icon%=48 THEN 873 IcEd_Xsize=size 874 PROCseticontext(20,LEFT$(STR$(IcEd_Xsize),4)) 875 IF FNiconselected(IcEdW%,53) THEN 876 IcEd_Ysize=IcEd_Xsize 877 PROCseticontext(21,LEFT$(STR$(IcEd_Ysize),4)) 878 ENDIF 879 ELSE 880 IcEd_Ysize=size 881 PROCseticontext(21,LEFT$(STR$(IcEd_Ysize),4)) 882 ENDIF 883 ENDIF 884 WHEN Updatemenu% 885 CASE item% OF 886 WHEN item_updbt% : PROCiced_readwin(&F<<12) 887 WHEN item_updesg% : PROCiced_readwin(&1F<<16) 888 WHEN item_updfg% : PROCiced_readwin((&F<<24)+(1<<6)) 889 WHEN item_updbg% : PROCiced_readwin((&F<<28)+(1<<6)) 890 WHEN item_updfont% : PROCiced_readwin((&FF<<24)+(1<<6)) 891 WHEN item_updrest% : PROCiced_readwin(&EFC+(1<<22)) 892 WHEN item_updbo%: : PROCiced_readwin(1<<2) 893 WHEN item_updfi%: : PROCiced_readwin(1<<5) 894 WHEN item_updhc%: : PROCiced_readwin(1<<3) 895 WHEN item_updvc%: : PROCiced_readwin(1<<4) 896 WHEN item_updrj%: : PROCiced_readwin(1<<9) 897 WHEN item_updnh%: : PROCiced_readwin(1<<7) 898 WHEN item_updaa%: : PROCiced_readwin(1<<10) 899 WHEN item_updhs%: : PROCiced_readwin(1<<11) 900 WHEN item_updsh%: : PROCiced_readwin(1<<22) 901 ENDCASE 902 IF LastMenu_Icon%=10 THEN 903 PROCclosewindow(IcEdW%) 904 PROCsetcaret(IcEd_Win%,-1) 905 adjust%=FALSE 906 ENDIF 907ENDCASE 908IF adjust% THEN 909 PROCcreatemenu(LastMenu_X%,LastMenu_Y%,LastMenu_Win%,LastMenu_Icon%) 910ELSE 911 LastMenu%=-1 912ENDIF 913ENDPROC 914 915DEF PROCeditaction(xpos%,ypos%,button%,window%,icon%) 916LOCAL key%,dclick% 917key%=0 918dclick%=FALSE 919IF (INKEY -1) THEN key%+=1 : REM bit 0 -> Shift key 920IF (INKEY -2) THEN key%+=2 : REM bit 1 -> Ctrl key 921IF (INKEY -3) THEN key%+=4 : REM bit 2 -> Alt key 922TimedDrag_Enabled%=(key%=0)AND(icon%>=-1) 923IF button%>256 THEN 924 button%=button%>>8 : REM clicked on icon with button type 10 925ENDIF 926CASE key% OF 927 WHEN 0 : REM mouse button, no key 928 IF button%>0 THEN 929 dclick%=(TIME-ThisClickTime%)<DclickInterval% 930 dclick%=dclick% AND (ThisClickButton%=button%) 931 dclick%=dclick% AND (ABS(ThisClickX%-xpos%)+ABS(ThisClickY%-ypos%))<32 932 ThisClickTime%=TIME 933 ThisClickX%=xpos% 934 ThisClickY%=ypos% 935 ThisClickButton%=button% 936 ENDIF 937 CASE button% OF 938 WHEN 1,4 939 CASE icon% OF 940 WHEN -4 941 IF dclick% AND TrapDclick% AND (button%=4) THEN 942 PROCiced_start(window%,icon%) 943 ENDIF 944 WHEN -1 945 IF button%=4 THEN PROCsel_clear(window%,-1) 946 IF dclick% AND TrapDclick% AND (button%=4) THEN 947 PROCwined_fillwin(window%) 948 ELSE 949 PROCdragselect(button%) 950 PROCsetcaret(window%,-1) 951 ENDIF 952 OTHERWISE 953 IF icon%>=0 THEN 954 IF button%=1 THEN 955 REM toggle "selected" state 956 ScrapBlk%!0=window% 957 ScrapBlk%!4=icon% 958 SYS "Wimp_GetIconState",,ScrapBlk% 959 CASE ((ScrapBlk%!24)>>12) AND 15 OF 960 WHEN 4,9 : REM selecting useless for these button types 961 WHEN 5,7,8,11 : REM selecting done by wimp 962 OTHERWISE PROCseticonstate(window%,icon%,1<<21,0) 963 ENDCASE 964 ELSE 965 REM "exclusive" select 966 PROCsel_clear(window%,icon%) 967 IF NOT FNiconselected(window%,icon%) THEN 968 PROCselecticon(window%,icon%,1) 969 ENDIF 970 ENDIF 971 IF dclick% AND TrapDclick% AND (button%=4) THEN 972 PROCiced_start(window%,icon%) 973 ELSE 974 PROCdragselect(button%) 975 PROCsetcaret(window%,-1) 976 ENDIF 977 ENDIF 978 ENDCASE 979 ENDCASE 980 WHEN 1 : REM shift + mouse button 981 CASE button% OF 982 WHEN 1,4 983 PROCsetcaret(window%,-1) 984 PROCstarticondrag(button%,window%,icon%) 985 WHEN 2 986 PROCiced_start(window%,icon%) 987 ENDCASE 988 WHEN 2 : REM ctrl + mouse button 989 CASE button% OF 990 WHEN 1 991 PROCsetcaret(window%,-1) 992 PROCstartwindowresize(window%) 993 WHEN 2 994 IF icon%=-4 THEN 995 PROCiced_start(window%,icon%) 996 ELSE 997 PROCwined_fillwin(window%) 998 ENDIF 999 WHEN 4 1000 PROCsetcaret(window%,-1) 1001 PROCstartwindowmove(window%) 1002 ENDCASE 1003 WHEN 4 : REM alt + mouse button 1004 CASE button% OF 1005 WHEN 1 1006 IF icon%>=0 THEN 1007 PROCrenumbericon(window%,icon%) 1008 IF NextIconNr%>0 THEN NextIconNr%-=1 1009 ENDIF 1010 WHEN 4 1011 IF icon%>=0 THEN 1012 PROCrenumbericon(window%,icon%) 1013 NextIconNr%+=1 1014 ENDIF 1015 ENDCASE 1016 OTHERWISE 1017 IF (button%>0) AND SupportInterface% THEN 1018 REM make Interface invert icon 1019 ScrapBlk%!8=button% 1020 ScrapBlk%!12=window% 1021 ScrapBlk%!16=icon% 1022 SYS "Wimp_BorderIcon",,ScrapBlk% 1023 REM back to normal 1024 ScrapBlk%!8=0 1025 ScrapBlk%!12=window% 1026 ScrapBlk%!16=icon% 1027 SYS "Wimp_BorderIcon",,ScrapBlk% 1028 ENDIF 1029 IF (button%>0) AND SupportAEH% THEN 1030 ScrapBlk%!8=button% 1031 ScrapBlk%!12=window% 1032 ScrapBlk%!16=icon% 1033 SYS "AEH_RedrawIcon",,ScrapBlk% 1034 SYS "AEH_ReleaseIcon",0 1035 ENDIF 1036ENDCASE 1037ENDPROC 1038 1039DEF PROCclick(xpos%,ypos%,button%,window%,icon%,wimpclick%) 1040LOCAL no%,key% 1041Mbuttons_Released%=(button%=0) 1042TimedDrag_Enabled%=FALSE 1043no%=FNwhichtemplate(window%) 1044IF button%=2 THEN 1045 REM "steal" clicks with Menu if Shift, Ctrl or Alt pressed 1046 SYS "OS_Byte",121,0 TO ,key% 1047 IF key%>=3 THEN 1048 IF wimpclick% THEN PROCcreatemenu(xpos%,ypos%,window%,icon%) 1049 ELSE 1050 IF no%>=0 THEN PROCeditaction(xpos%,ypos%,button%,window%,icon%) 1051 ENDIF 1052ELSE 1053 IF no%>=0 THEN 1054 PROCeditaction(xpos%,ypos%,button%,window%,icon%) 1055 ELSE 1056 IF wimpclick% THEN PROCiconclick(xpos%,ypos%,button%,window%,icon%) 1057 ENDIF 1058ENDIF 1059ENDPROC 1060 1061DEF PROCiconclick(xpos%,ypos%,button%,window%,icon%) 1062LOCAL select%,menu%,adjust%,i%,j%,xsize%,ysize%,up%,lo% 1063select%=(button%=4) 1064menu%=(button%=2) 1065adjust%=(button%=1) 1066CASE window% OF 1067 WHEN -2 1068 IF select% THEN 1069 PROCopenwindow(TemplW%,3) 1070 IF IcInfo_Active% THEN PROCopenwindow(IcInfoW%,4) 1071 ENDIF 1072 WHEN IcEdW% 1073 PROCiced_click(xpos%,ypos%,select%,adjust%,icon%) 1074 WHEN WinEdW% 1075 PROCwined_click(xpos%,ypos%,select%,adjust%,icon%) 1076 WHEN StatW% 1077 PROCstat_fillwin 1078 WHEN TemplW% 1079 IF (select% OR adjust%) AND (icon%>=0) THEN 1080 ScrapBlk%!0=TemplHandle%(icon%) 1081 SYS "Wimp_GetWindowState",,ScrapBlk% 1082 IF ScrapBlk%!32 AND (1<<16) THEN 1083 PROCclosetemplate(icon%) 1084 ELSE 1085 PROCopentemplate(icon%) 1086 ENDIF 1087 PROCselecticon(TemplW%,icon%,0) 1088 ENDIF 1089 IF select% AND (icon%=-1) THEN 1090 PROCsel_clear(TemplW%,-1) 1091 ENDIF 1092 IF (button%=16) OR (button%=64) THEN 1093 PROCdragselect(button%>>4) 1094 ENDIF 1095 WHEN SaveW% 1096 CASE icon% OF 1097 WHEN 0 1098 IF SavingSelection% THEN 1099 SelFName$=$(FileName%) 1100 PROCsavetemplates(SelFName$) 1101 ELSE 1102 PROCsetmainfname($(FileName%)) 1103 PROCsavetemplates(MainFName$) 1104 ENDIF 1105 SYS "Wimp_CreateMenu",,-1 1106 WHEN 2 1107 IF (button%>>4) AND 5 THEN 1108 IF SavingSelection% THEN 1109 SelFName$=$(FileName%) 1110 ELSE 1111 PROCsetmainfname($(FileName%)) 1112 ENDIF 1113 PROCstartsavedrag 1114 ENDIF 1115 ENDCASE 1116 WHEN AlignW% 1117 CASE icon% OF 1118 WHEN 10 1119 PROCalignicons(LastMenu_Win%) 1120 IF (NOT adjust%) THEN SYS "Wimp_CreateMenu",,-1 1121 OTHERWISE 1122 PROCalign_shadeicons 1123 ENDCASE 1124 WHEN SpaceW% 1125 CASE icon% OF 1126 WHEN 5,7 1127 SpaceOut_Space%=VAL($(IconText%(18))) 1128 up%=(adjust% EOR (icon%=7)) 1129 IF FNchangevar(SpaceOut_Space%,4,up%,-512,512) THEN 1130 PROCseticontext(18,STR$(SpaceOut_Space%)) 1131 PROCsetcaret(SpaceW%,6) 1132 ENDIF 1133 WHEN 4,8 1134 PROCspace_shadeicons 1135 IF icon%=8 THEN PROCsetcaret(-1,-1) 1136 WHEN 9 1137 PROCspaceicons(LastMenu_Win%) 1138 IF (NOT adjust%) THEN SYS "Wimp_CreateMenu",,-1 1139 ENDCASE 1140 WHEN WorkW% 1141 IF icon%<=26 THEN 1142 IF (icon%>=9) AND ((icon% MOD 3)<>1) THEN 1143 REM click on arrow icons 1144 up%=((icon% MOD 3)=2) EOR adjust% 1145 i%=(icon%-9) DIV 3 1146 j%=VAL($(IconText%(12+i%))) 1147 IF i%<2 THEN 1148 lo%=-10000 1149 ELSE 1150 lo%=0 : REM "size" field, can't be negative 1151 ENDIF 1152 IF FNchangevar(j%,4,up%,lo%,10000) THEN 1153 PROCseticontext(12+i%,STR$(j%)) 1154 PROCsetcaret(WorkW%,3*i%+10) 1155 ENDIF 1156 ENDIF 1157 ELSE 1158 WinBlk%!0=LastMenu_Win% 1159 SYS "Wimp_GetWindowState",,WinBlk% 1160 CASE icon% OF 1161 WHEN 27,28 1162 xsize%=WinBlk%!12-WinBlk%!4+WinBlk%!20-WinBlk%!44 1163 ysize%=WinBlk%!16-WinBlk%!8-WinBlk%!24+WinBlk%!56 1164 IF icon%=27 THEN 1165 PROCseticontext(12,STR$(WinBlk%!44)) 1166 PROCseticontext(13,STR$(WinBlk%!56)) 1167 PROCseticontext(14,STR$(xsize%)) 1168 PROCseticontext(15,STR$(ysize%)) 1169 PROCsetcaret(WorkW%,16) 1170 ELSE 1171 PROCseticontext(16,STR$(xsize%)) 1172 PROCseticontext(17,STR$(ysize%)) 1173 PROCsetcaret(WorkW%,22) 1174 ENDIF 1175 WHEN 29 1176 PROCseticontext(12,"0") 1177 PROCseticontext(13,"0") 1178 PROCseticontext(14,"1236") 1179 PROCseticontext(15,"936") 1180 PROCseticontext(16,"0") 1181 PROCseticontext(17,"0") 1182 PROCsetcaret(WorkW%,16) 1183 WHEN 30 1184 PROCsetworkarea 1185 IF (NOT adjust%) THEN SYS "Wimp_CreateMenu",,-1 1186 OTHERWISE 1187 ENDCASE 1188 ENDIF 1189 WHEN OptPaneW% 1190 CASE icon% OF 1191 WHEN 8 : TrapDclick%=NOT TrapDclick% 1192 WHEN 9 : PROCsupportinterface(NOT SupportInterface%) 1193 WHEN 10 : PROCsupportaeh(NOT SupportAEH%) 1194 WHEN 11 : DuplNames%=NOT DuplNames% 1195 WHEN 12 1196 Hatch%=NOT Hatch% 1197 PROCredrawall 1198 WHEN 13 1199 IcInfo_Active%=NOT IcInfo_Active% 1200 IF IcInfo_Active% THEN 1201 PROCopenwindow(IcInfoW%,4) 1202 ELSE 1203 PROCclosewindow(IcInfoW%) 1204 ENDIF 1205 WHEN 14 : Save_Unselected%=NOT Save_Unselected% 1206 WHEN 15 : DeleteOutside%=NOT DeleteOutside% 1207 WHEN 16 : Grid_SizeLock%=NOT Grid_SizeLock% 1208 WHEN 18,20 1209 up%=(adjust% EOR (icon%=20)) 1210 IF FNchangevar(Grid_SizeX%,PixToOS_X%,up%,PixToOS_X%,64) THEN 1211 PROCseticontext(28,STR$(Grid_SizeX%)) 1212 ENDIF 1213 WHEN 22,24 1214 up%=(adjust% EOR (icon%=24)) 1215 IF FNchangevar(Grid_SizeY%,PixToOS_Y%,up%,PixToOS_Y%,64) THEN 1216 PROCseticontext(29,STR$(Grid_SizeY%)) 1217 ENDIF 1218 WHEN 25 : Grid_PosLock%=NOT Grid_PosLock% 1219 WHEN 27,29 1220 up%=(adjust% EOR (icon%=29)) 1221 IF FNchangevar(Grid_PosX%,PixToOS_X%,up%,PixToOS_X%,64) THEN 1222 PROCseticontext(30,STR$(Grid_PosX%)) 1223 ENDIF 1224 WHEN 31,33 1225 up%=(adjust% EOR (icon%=33)) 1226 IF FNchangevar(Grid_PosY%,PixToOS_Y%,up%,PixToOS_Y%,64) THEN 1227 PROCseticontext(31,STR$(Grid_PosY%)) 1228 ENDIF 1229 ENDCASE 1230 WHEN OptionsW% 1231 CASE icon% OF 1232 WHEN 0 1233 PROCsetup_save 1234 PROCclosewindow(OptionsW%) 1235 WHEN 1 1236 PROCclosewindow(OptionsW%) 1237 ENDCASE 1238 WHEN DialW% 1239 SYS "Wimp_CreateMenu",,-1 1240 CASE LastDialogue% OF 1241 WHEN 0 1242 REM program quit with changes made 1243 CASE icon% OF 1244 WHEN 1 1245 SYS "Wimp_GetPointerInfo",,PtrInfo% 1246 $(FileName%)=MainFName$ 1247 SavingSelection%=FALSE 1248 QuitAfterSave%=TRUE 1249 SYS "Wimp_CreateMenu",,SaveW%,PtrInfo%!0-126,PtrInfo%!4+56 1250 WHEN 2 1251 PROCprequit(1) 1252 ENDCASE 1253 WHEN 1 1254 REM delete all with changes made 1255 IF icon%=1 THEN PROCtempl_deleteall 1256 WHEN 2 1257 REM load new file with changes made 1258 IF icon%=1 THEN 1259 PROCtempl_deleteall 1260 PROCtempl_loadfile(NewFName$,1) 1261 PROCsetmainfname(NewFName$) 1262 ENDIF 1263 WHEN 8 1264 REM exit from desktop with changes made 1265 CASE icon% OF 1266 WHEN 1 1267 PROCtempl_deleteall 1268 REM resume prequit procedure (code copied from PRM) 1269 SYS "Wimp_GetCaretPosition",,ScrapBlk% 1270 ScrapBlk%!24=&1FC 1271 SYS "Wimp_SendMessage",8,ScrapBlk%,PreQuitSender% 1272 ENDCASE 1273 ENDCASE 1274ENDCASE 1275ENDPROC 1276 1277DEF PROCwined_click(xpos%,ypos%,select%,adjust%,icon%) 1278LOCAL up%,i%,gcol% 1279CASE icon% OF 1280 WHEN 53 1281 PROCwined_readwin 1282 WHEN 54 1283 PROCwined_readwin 1284 PROCclosewindow(WinEdW%) 1285 PROCsetcaret(WinEd_Win%,-1) 1286 WHEN 55 1287 PROCclosewindow(WinEdW%) 1288 PROCsetcaret(WinEd_Win%,-1) 1289 WHEN 13 1290 IF NOT FNiconselected(WinEdW%,20) THEN 1291 PROCselecticon(WinEdW%,14,FNiconselected(WinEdW%,13)) 1292 ENDIF 1293 WHEN 14 1294 IF NOT FNiconselected(WinEdW%,20) THEN 1295 PROCselecticon(WinEdW%,13,FNiconselected(WinEdW%,14)) 1296 ENDIF 1297 WHEN 15,17,19,20 1298 PROCwined_shadeicons(icon%) 1299 WHEN 23,27,31,35,39,43,47,51 1300 PROCcreatemenu(xpos%,ypos%,WinEdW%,icon%) 1301 WHEN 22,24 1302 up%=(adjust% EOR (icon%=24)) 1303 IF FNchangevar(WinEd_Button%,1,up%,0,15) THEN 1304 PROCseticontext(6,$(WinButton%+20*WinEd_Button%)) 1305 ENDIF 1306 WHEN 56 1307 WinEd_Col%(0)=7 1308 WinEd_Col%(1)=2 1309 WinEd_Col%(2)=7 1310 WinEd_Col%(3)=1 1311 WinEd_Col%(4)=3 1312 WinEd_Col%(5)=1 1313 WinEd_Col%(6)=12 1314 FOR i%=0 TO 6 1315 PROCsetcolourbox(2+i%,WinEd_Col%(i%)) 1316 NEXT i% 1317 OTHERWISE 1318 IF (icon%>=26) AND (icon%<=52) AND ((icon% MOD 2)=0) THEN 1319 up%=((icon% MOD 4)=0) EOR adjust% 1320 i%=(icon%-26) DIV 4 1321 gcol%=FNiconselected(WinEdW%,9) 1322 PROCchangecolourbox(2+i%,WinEd_Col%(i%),1,up%,gcol%) 1323 ENDIF 1324ENDCASE 1325ENDPROC 1326 1327DEF PROCiced_click(xpos%,ypos%,select%,adjust%,icon%) 1328LOCAL up%,l% 1329CASE icon% OF 1330 WHEN 4 1331 IF adjust% AND FNiconselected(IcEdW%,14) THEN 1332 REM minimize number in 'Max size' field 1333 IF FNiconselected(IcEdW%,12) THEN 1334 l%=LEN($(IconText%(0))) 1335 ELSE 1336 IF FNiconselected(IcEdW%,13) THEN 1337 l%=LEN($(IconText%(1))) 1338 ENDIF 1339 ENDIF 1340 PROCseticontext(3,STR$(l%+1)) 1341 ENDIF 1342 WHEN 9 1343 PROCiced_readwin(-1) 1344 WHEN 10 1345 PROCiced_readwin(-1) 1346 PROCclosewindow(IcEdW%) 1347 PROCsetcaret(IcEd_Win%,-1) 1348 WHEN 11 1349 PROCclosewindow(IcEdW%) 1350 PROCsetcaret(IcEd_Win%,-1) 1351 WHEN 12,13,14,41,53 1352 PROCiced_shadeicons(icon%) 1353 WHEN 28,31,34,37,45,46,48,51 1354 PROCcreatemenu(xpos%,ypos%,IcEdW%,icon%) 1355 WHEN 27,29 1356 up%=(adjust% EOR (icon%=29)) 1357 IF FNchangevar(IcEd_Button%,1,up%,0,15) THEN 1358 PROCseticontext(4,$(IcButton%+20*IcEd_Button%)) 1359 ENDIF 1360 WHEN 30,32 1361 up%=(adjust% EOR (icon%=32)) 1362 IF FNchangevar(IcEd_Esg%,1,up%,0,31) THEN 1363 PROCseticontext(5,STR$(IcEd_Esg%)) 1364 ENDIF 1365 WHEN 33,35 1366 up%=(adjust% EOR (icon%=35)) 1367 PROCchangecolourbox(0,IcEd_Fgcol%,1,up%,0) 1368 WHEN 36,38 1369 up%=(adjust% EOR (icon%=38)) 1370 PROCchangecolourbox(1,IcEd_Bgcol%,1,up%,0) 1371 WHEN 47,49 1372 IF (adjust% AND (icon%=47)) OR (select% AND (icon%=49)) THEN 1373 IF IcEd_Xsize<998 THEN 1374 IcEd_Xsize+=2 1375 PROCseticontext(20,LEFT$(STR$(IcEd_Xsize),4)) 1376 IF FNiconselected(IcEdW%,53) THEN 1377 IcEd_Ysize=IcEd_Xsize 1378 PROCseticontext(21,LEFT$(STR$(IcEd_Ysize),4)) 1379 ENDIF 1380 ENDIF 1381 ELSE 1382 IF IcEd_Xsize>2 THEN 1383 IcEd_Xsize-=2 1384 PROCseticontext(20,LEFT$(STR$(IcEd_Xsize),4)) 1385 IF FNiconselected(IcEdW%,53) THEN 1386 IcEd_Ysize=IcEd_Xsize 1387 PROCseticontext(21,LEFT$(STR$(IcEd_Ysize),4)) 1388 ENDIF 1389 ENDIF 1390 ENDIF 1391 WHEN 50,52 1392 IF (adjust% AND (icon%=50)) OR (select% AND (icon%=52)) THEN 1393 IF IcEd_Ysize<998 THEN 1394 IcEd_Ysize+=2 1395 PROCseticontext(21,LEFT$(STR$(IcEd_Ysize),4)) 1396 ENDIF 1397 ELSE 1398 IF IcEd_Ysize>2 THEN 1399 IcEd_Ysize-=2 1400 PROCseticontext(21,LEFT$(STR$(IcEd_Ysize),4)) 1401 ENDIF 1402 ENDIF 1403ENDCASE 1404ENDPROC 1405 1406DEF PROCreceive(buf%) 1407LOCAL sender%,ref%,code%,ackcode%,acktype%,fname$,ftype%,icon%,no%,boot$ 1408sender%=buf%!4 1409ref%=buf%!8 1410code%=buf%!16 1411ackcode%=0 : REM sort of message to acknowledge this message with 1412acktype%=17 : REM message type of acknowledge 1413IF sender% <> ThisTask% THEN 1414 CASE code% OF 1415 WHEN 0 1416 REM 'quit' message 1417 PROCprequit(0) 1418 WHEN 1 1419 REM data save 1420 IF buf%!40=&FEC THEN 1421 REM other app saves file to TemplEd (via Wimp$Scrap) 1422 NewLeafName$=FNstr(buf%+44) 1423 $(buf%+44)="<Wimp$Scrap>" 1424 buf%!36=-1 : REM saved file is "unsafe" 1425 ackcode%=2 1426 ENDIF 1427 WHEN 2 1428 REM data save ack 1429 fname$=FNstr(buf%+44) 1430 IF SavingSelection% THEN 1431 SelFName$=fname$ 1432 PROCsavetemplates(SelFName$) 1433 ELSE 1434 IF (buf%!36<>-1) AND (fname$<>"<Wimp$Scrap>") THEN 1435 PROCsetmainfname(fname$) 1436 ENDIF 1437 PROCsavetemplates(fname$) 1438 ENDIF 1439 SYS "OS_File",17,fname$ TO ftype%,,,,fsize% 1440 IF ftype%=1 THEN 1441 ackcode%=3 1442 buf%!36=fsize% 1443 ENDIF 1444 WHEN 3 1445 REM data load 1446 NewFName$=FNstr(buf%+44) 1447 CASE buf%!40 OF 1448 WHEN &FEC 1449 CASE buf%!20 OF 1450 WHEN TemplW% 1451 PROCsetchanged(NrTemplates%>0) 1452 PROCtempl_loadfile(NewFName$,0) 1453 ackcode%=4 1454 WHEN -2 1455 IF buf%!24=BarIcon% THEN 1456 IF ChangesMade% THEN 1457 PROCdialogue(2,"","") 1458 ELSE 1459 PROCtempl_deleteall 1460 PROCtempl_loadfile(NewFName$,1) 1461 ENDIF 1462 ENDIF 1463 ackcode%=4 1464 ENDCASE 1465 WHEN &FF9 1466 IF (buf%!20=-2) AND (buf%!24=BarIcon%) THEN 1467 PROCloadusersprites(NewFName$) 1468 ackcode%=4 1469 ENDIF 1470 WHEN &2000 1471 NewFName$=FNstr(buf%+44)+".Templates" 1472 IF FNfileexists(NewFName$)AND(buf%!20=-2)AND(buf%!24=BarIcon%) THEN 1473 IF ChangesMade% THEN 1474 PROCdialogue(2,"","") 1475 ELSE 1476 PROCtempl_deleteall 1477 PROCtempl_loadfile(NewFName$,1) 1478 ENDIF 1479 ackcode%=4 1480 ENDIF 1481 ENDCASE 1482 WHEN 5 1483 REM double-click on a file 1484 NewFName$=FNstr(buf%+44) 1485 CASE buf%!40 OF 1486 WHEN &FEC 1487 IF NrTemplates%=0 THEN 1488 PROCtempl_loadfile(NewFName$,1) 1489 ackcode%=4 1490 ENDIF 1491 ENDCASE 1492 WHEN 8 1493 REM desktop exit 1494 IF ChangesMade% THEN 1495 ackcode%=8 1496 acktype%=19 1497 PreQuitSender%=sender% 1498 PROCdialogue(8,"","") 1499 ENDIF 1500 WHEN 10 1501 REM desktop save (RiscOS 3) 1502 boot$="Run "+FNreadvarval("TemplEd$Dir")+CHR$10 1503 SYS "OS_GBPB",2,buf%!20,boot$,LEN(boot$) 1504 WHEN &502 1505 REM request from !Help application 1506 no%=FNwhichtemplate(buf%!32) 1507 icon%=buf%!36 1508 IF (no%>=0) AND (icon%>=-1) THEN 1509 $(buf%+20)=FNiconhelp(no%,icon%) 1510 ackcode%=&503 1511 ENDIF 1512 WHEN &400C0 1513 REM about to open submenu 1514 CASE LastMenu% OF 1515 WHEN TemplMenu% 1516 REM set filename in save window 1517 IF buf%!36=-1 THEN 1518 $(FileName%)=MainFName$ 1519 SavingSelection%=FALSE 1520 ELSE 1521 $(FileName%)=SelFName$ 1522 SavingSelection%=TRUE 1523 ENDIF 1524 PROCsel_get(TemplW%) 1525 IF (buf%!36=-1) OR (NrSelected%=0) THEN 1526 REM template name to create 1527 SYS "MenuUtil_Text",item_templname%,"" 1528 ELSE 1529 REM template name to copy or rename 1530 SYS "MenuUtil_Text",item_templname%,$(TemplNames%+28*(SelBlk%!0)) 1531 ENDIF 1532 WHEN UserMenu% 1533 REM fill icons in workarea window 1534 WinBlk%!0=LastMenu_Win% 1535 SYS "Wimp_GetWindowInfo",,WinBlk% 1536 $(IconText%(12))=STR$(WinBlk%!44) 1537 $(IconText%(13))=STR$(WinBlk%!56) 1538 $(IconText%(14))=STR$(WinBlk%!52-WinBlk%!44) 1539 $(IconText%(15))=STR$(WinBlk%!56-WinBlk%!48) 1540 $(IconText%(16))=STR$((WinBlk%!72) AND &FFFF) 1541 $(IconText%(17))=STR$((WinBlk%!72)>>16) 1542 ENDCASE 1543 SYS "Wimp_CreateSubMenu",,buf%!20,buf%!24,buf%!28 1544 WHEN &400C1 1545 REM mode change 1546 PROCreadscreenvars 1547 IF TemplW_MaxCol%<TemplW_Cols% THEN PROCredefinebrowser(TRUE) 1548 WHEN &400C9 1549 REM menu removed with no menu item chosen 1550 IF LastMenu%=TemplMenu% THEN 1551 IF TemplMenu_Deselect% THEN PROCsel_clear(TemplW%,-1) 1552 ENDIF 1553 ENDCASE 1554 IF ackcode%<>0 THEN 1555 buf%!0=256 1556 buf%!12=ref% 1557 buf%!16=ackcode% 1558 SYS "Wimp_SendMessage",17,buf%,sender% 1559 ENDIF 1560ENDIF 1561ENDPROC 1562 1563DEF PROCredraw(handle%) 1564LOCAL more%,win0x%,win0y%,dx% 1565LOCAL xstart%,height%,xcorr%,ycorr%,x%,y% 1566dx%=48 1567Blk%!0=handle% 1568SYS "Wimp_RedrawWindow",,Blk% TO more% 1569win0x%=Blk%!4-Blk%!20 1570win0y%=Blk%!16-Blk%!24 1571WHILE more% 1572 IF Hatch% THEN 1573 height%=Blk%!40-Blk%!32 1574 xstart%=Blk%!28-height% 1575 xcorr%=(xstart%-win0x%) MOD dx% 1576 ycorr%=(win0y%-Blk%!32) MOD dx% 1577 FOR x%=xstart%-(xcorr%+ycorr%) TO Blk%!36 STEP dx% 1578 MOVE x%,Blk%!32 1579 PLOT 1,height%,height% 1580 NEXT x% 1581 ycorr%=(win0y%-Blk%!40) MOD dx% 1582 FOR x%=xstart%-(xcorr%-ycorr%) TO Blk%!36 STEP dx% 1583 MOVE x%,Blk%!40 1584 PLOT 1,height%,-height% 1585 NEXT x% 1586 ENDIF 1587 IF SupportInterface% THEN 1588 SYS "Wimp_BorderWindow",,Blk% 1589 ENDIF 1590 IF SupportAEH% THEN 1591 SYS "AEH_RedrawWindow",,Blk% 1592 ENDIF 1593 SYS "Wimp_GetRectangle",,Blk% TO more% 1594ENDWHILE 1595ENDPROC 1596 1597REM *** procs for the window-edit window *** 1598 1599DEF PROCwined_fillwin(window%) 1600LOCAL no%,flags%,i% 1601WinEd_Win%=window% 1602WinBlk%!0=WinEd_Win% 1603no%=FNwhichtemplate(window%) 1604SYS "Wimp_GetWindowInfo",,WinBlk% 1605flags%=WinBlk%!32 1606WinEd_Button%=(WinBlk%!64)>>12 1607FOR i%=0 TO 6 1608 WinEd_Col%(i%)=(WinBlk%?(36+i%)) 1609NEXT i% 1610PROCselecticon(WinEdW%,4,flags% AND (1<<1)) 1611PROCselecticon(WinEdW%,5,flags% AND (1<<4)) 1612PROCselecticon(WinEdW%,6,flags% AND (1<<12)) 1613PROCselecticon(WinEdW%,7,PaneFlag%?no%) 1614PROCselecticon(WinEdW%,8,flags% AND (1<<6)) 1615PROCselecticon(WinEdW%,9,flags% AND (1<<10)) 1616PROCselecticon(WinEdW%,10,flags% AND (1<<11)) 1617PROCselecticon(WinEdW%,11,flags% AND (1<<8)) 1618PROCselecticon(WinEdW%,12,flags% AND (1<<9)) 1619PROCselecticon(WinEdW%,20,flags% AND (1<<31)) 1620FOR i%=0 TO 6 1621 PROCselecticon(WinEdW%,13+i%,flags% AND (1<<(24+i%))) 1622NEXT i% 1623IF (flags% AND (1<<31))=0 THEN 1624 PROCselecticon(WinEdW%,14,(flags% AND (1<<7))=0) 1625 PROCselecticon(WinEdW%,13,(flags% AND (1<<7))=0) 1626 PROCselecticon(WinEdW%,15,flags% AND (1<<0)) 1627 PROCselecticon(WinEdW%,17,flags% AND (1<<2)) 1628 PROCselecticon(WinEdW%,19,flags% AND (1<<3)) 1629ENDIF 1630PROCsettitlebar(WinEdW%,WinEdTbar%,FNmsg_lookup1("EDTP",$(TemplNames%+28*no%))) 1631PROCseticontext(6,$(WinButton%+20*WinEd_Button%)) 1632FOR i%=0 TO 6 1633 PROCsetcolourbox(2+i%,WinEd_Col%(i%)) 1634NEXT i% 1635PROCwined_shadeicons(-1) 1636PROCopenwindow(WinEdW%,0) 1637PROCsetcaret(WinEdW%,-1) 1638ENDPROC 1639 1640DEF PROCwined_shadeicons(clickedon%) 1641LOCAL newformat%,titlebar%,scroll% 1642newformat%=FNiconselected(WinEdW%,20) 1643titlebar%=FNiconselected(WinEdW%,15) 1644scroll%=FNiconselected(WinEdW%,17) OR FNiconselected(WinEdW%,19) 1645IF (clickedon%=-1) OR (clickedon%=20) THEN 1646 PROCshadeicon(WinEdW%,16,NOT newformat%) 1647ENDIF 1648IF (clickedon%=-1) OR (clickedon%=15) THEN 1649 PROCshadeicon(WinEdW%,13,NOT titlebar%) 1650 PROCshadeicon(WinEdW%,14,NOT titlebar%) 1651 PROCshadeicon(WinEdW%,16,NOT titlebar%) 1652ENDIF 1653IF (clickedon%<>15) THEN 1654 PROCshadeicon(WinEdW%,18,newformat% AND (NOT scroll%)) 1655ENDIF 1656ENDPROC 1657 1658DEF PROCwined_readwin 1659LOCAL flags%,no%,i% 1660WinBlk%!0=WinEd_Win% 1661SYS "Wimp_GetWindowInfo",,WinBlk% 1662flags%=(WinBlk%!32)AND(&1F<<16) 1663IF FNiconselected(WinEdW%,15) THEN flags%+=(1<<0) 1664IF FNiconselected(WinEdW%,4) THEN flags%+=(1<<1) 1665IF FNiconselected(WinEdW%,17) THEN flags%+=(1<<2) 1666IF FNiconselected(WinEdW%,19) THEN flags%+=(1<<3) 1667IF FNiconselected(WinEdW%,5) THEN flags%+=(1<<4) 1668no%=FNwhichtemplate(WinEd_Win%) 1669IF FNiconselected(WinEdW%,7) THEN 1670 PaneFlag%?no%=1<<5 1671ELSE 1672 PaneFlag%?no%=0 1673ENDIF 1674IF FNiconselected(WinEdW%,8) THEN flags%+=(1<<6) 1675IF NOT FNiconselected(WinEdW%,14) THEN flags%+=(1<<7) 1676IF FNiconselected(WinEdW%,11) THEN flags%+=(1<<8) 1677IF FNiconselected(WinEdW%,12) THEN flags%+=(1<<9) 1678IF FNiconselected(WinEdW%,9) THEN flags%+=(1<<10) 1679IF FNiconselected(WinEdW%,10) THEN flags%+=(1<<11) 1680IF FNiconselected(WinEdW%,6) THEN flags%+=(1<<12) 1681FOR i%=0 TO 7 1682 IF FNiconselected(WinEdW%,13+i%) THEN flags%+=(1<<(24+i%)) 1683NEXT i% 1684WinBlk%!32=flags% 1685WinBlk%!64=WinEd_Button%<<12 1686FOR i%=0 TO 6 1687 WinBlk%?(36+i%)=WinEd_Col%(i%) 1688NEXT i% 1689WinEd_Win%=FNredefinewindow(WinBlk%,1) 1690ENDPROC 1691 1692REM *** procs for the icon-edit window *** 1693 1694DEF PROCiced_start(window%,icon%) 1695IF icon%=-4 THEN 1696 PROCiced_fillwin(window%,-4) 1697ELSE 1698 PROCsel_get(window%) 1699 IF NrSelected%>0 THEN 1700 IF NrSelected%=1 THEN 1701 PROCiced_fillwin(window%,SelBlk%!0) 1702 ELSE 1703 PROCiced_fillwin(window%,-1) 1704 ENDIF 1705 ELSE 1706 IF (icon%>=0) THEN 1707 PROCiced_fillwin(window%,icon%) 1708 ENDIF 1709 ENDIF 1710ENDIF 1711ENDPROC 1712 1713DEF PROCiced_fillwin(window%,icon%) 1714LOCAL no%,flags%,data%,arg$,title$,text%,sprite%,indir%,caretto% 1715LOCAL t$,v$,m$,s$ 1716IcEd_Win%=window% 1717IcEd_Icon%=icon% 1718no%=FNwhichtemplate(window%) 1719WinBlk%!0=IcEd_Win% 1720SYS "Wimp_GetWindowInfo",,WinBlk% 1721CASE icon% OF 1722 WHEN -4 : REM editing title bar icon 1723 flags%=(WinBlk%!60) AND &FFF : REM mask out irrelevant bits 1724 flags%=flags% OR &14 1725 IF (flags% AND (1<<6))=0 THEN 1726 REM copy fg and bg colour flags from window colours 1727 flags%=(flags% AND &FFF) OR ((WinBlk%?36)<<24) OR ((WinBlk%?37)<<28) 1728 ENDIF 1729 data%=WinBlk%+76 1730 arg$+=FNmsg_lookup0("TBAR") 1731 WHEN -1 : REM editing selection (read flags from first icon) 1732 PROCsel_get(IcEd_Win%) 1733 flags%=WinBlk%!(92+32*(SelBlk%!0)+16) 1734 data%=WinBlk%+92+32*(SelBlk%!0)+20 1735 arg$+=FNmsg_lookup0("SEL") 1736 OTHERWISE : REM editing single icon 1737 flags%=WinBlk%!(92+32*IcEd_Icon%+16) 1738 data%=WinBlk%+92+32*IcEd_Icon%+20 1739 arg$+=FNmsg_lookup1("ICNR",STR$(icon%)) 1740ENDCASE 1741title$=FNmsg_lookup2("EDIC",$(TemplNames%+28*no%),arg$) 1742text%=(flags% AND 1)>0 1743sprite%=(flags% AND 2)>0 1744indir%=(flags% AND &100)>0 1745IF text% THEN 1746 IF indir% THEN 1747 t$=$(data%!0) 1748 m$=STR$(data%!8) 1749 IF data%!4<>-1 THEN v$=$(data%!4) 1750 ELSE 1751 t$=$(data%) 1752 ENDIF 1753ENDIF 1754IF sprite% AND (NOT text%) THEN 1755 IF indir% THEN 1756 s$=$(data%!0) 1757 m$=STR$(data%!8) 1758 ELSE 1759 s$=$(data%) 1760 ENDIF 1761ENDIF 1762IcEd_Button%=(flags%>>12) AND 15 1763IcEd_Esg%=(flags%>>16) AND 31 1764IF (flags% AND (1<<6)) THEN 1765 IcEd_Fgcol%=7 1766 IcEd_Bgcol%=0 1767 PROCfont_getinfo((flags%>>24) AND 255,IcEd_Font$,IcEd_Xsize,IcEd_Ysize) 1768ELSE 1769 IcEd_Fgcol%=(flags%>>24) AND 15 1770 IcEd_Bgcol%=(flags%>>28) AND 15 1771 IcEd_Font$="Homerton.Medium" 1772 IcEd_Xsize=12 1773 IcEd_Ysize=12 1774ENDIF 1775PROCsettitlebar(IcEdW%,IcEdTbar%,title$) 1776PROCselecticon(IcEdW%,12,text%) 1777PROCselecticon(IcEdW%,13,sprite%) 1778PROCselecticon(IcEdW%,14,indir%) 1779PROCseticontext(0,t$) 1780PROCseticontext(1,s$) 1781PROCseticontext(2,v$) 1782PROCseticontext(3,m$) 1783PROCselecticon(IcEdW%,15,flags% AND (1<<2)) 1784PROCselecticon(IcEdW%,17,flags% AND (1<<3)) 1785PROCselecticon(IcEdW%,18,flags% AND (1<<4)) 1786PROCselecticon(IcEdW%,16,flags% AND (1<<5)) 1787PROCselecticon(IcEdW%,41,flags% AND (1<<6)) 1788PROCselecticon(IcEdW%,20,flags% AND (1<<7)) 1789PROCselecticon(IcEdW%,19,flags% AND (1<<9)) 1790PROCselecticon(IcEdW%,21,flags% AND (1<<10)) 1791PROCselecticon(IcEdW%,22,flags% AND (1<<11)) 1792PROCselecticon(IcEdW%,39,flags% AND (1<<22)) 1793PROCseticontext(4,$(IcButton%+20*IcEd_Button%)) 1794PROCseticontext(5,STR$(IcEd_Esg%)) 1795PROCsetcolourbox(0,IcEd_Fgcol%) 1796PROCsetcolourbox(1,IcEd_Bgcol%) 1797PROCseticontext(19,IcEd_Font$) 1798PROCseticontext(20,LEFT$(STR$(IcEd_Xsize),4)) 1799PROCseticontext(21,LEFT$(STR$(IcEd_Ysize),4)) 1800PROCselecticon(IcEdW%,53,IcEd_Xsize=IcEd_Ysize) 1801FOR i%=12 TO 14 1802 PROCshadeicon(IcEdW%,i%,IcEd_Icon%=-1) 1803NEXT i% 1804IF IcEd_Icon%=-1 THEN 1805 FOR i%=23 TO 26 1806 PROCshadeicon(IcEdW%,i%,1) 1807 NEXT i% 1808ENDIF 1809PROCshadeicon(IcEdW%,15,IcEd_Icon%=-4) 1810PROCshadeicon(IcEdW%,16,IcEd_Icon%=-4) 1811PROCshadeicon(IcEdW%,20,IcEd_Icon%=-4) 1812PROCshadeicon(IcEdW%,21,IcEd_Icon%=-4) 1813FOR i%=27 TO 32 1814 PROCshadeicon(IcEdW%,i%,IcEd_Icon%=-4) 1815NEXT i% 1816PROCshadeicon(IcEdW%,39,IcEd_Icon%=-4) 1817PROCiced_shadeicons(-1) 1818PROCopenwindow(IcEdW%,0) 1819caretto%=-1 1820IF IcEd_Icon%<>-1 THEN 1821 IF indir% THEN caretto%=25 1822 IF sprite% THEN caretto%=24 1823 IF text% THEN caretto%=23 1824ENDIF 1825PROCsetcaret(IcEdW%,caretto%) 1826ENDPROC 1827 1828DEF PROCiced_shadeicons(clickedon%) 1829LOCAL t%,s%,i%,f%,lockaspect% 1830IF IcEd_Icon%<>-1 THEN 1831 IF (clickedon%=-1) OR (clickedon%<=14) THEN 1832 t%=FNiconselected(IcEdW%,12) 1833 s%=FNiconselected(IcEdW%,13) 1834 i%=FNiconselected(IcEdW%,14) 1835 PROCshadeicon(IcEdW%,23,NOT t%) 1836 PROCshadeicon(IcEdW%,24,(NOT s%) OR (t% AND i%)) 1837 PROCshadeicon(IcEdW%,25,NOT(t% AND i%)) 1838 PROCshadeicon(IcEdW%,26,NOT i%) 1839 ENDIF 1840ENDIF 1841f%=FNiconselected(IcEdW%,41) 1842lockaspect%=FNiconselected(IcEdW%,53) 1843IF (clickedon%=-1) OR (clickedon%=41) THEN 1844 FOR i%=33 TO 38 1845 PROCshadeicon(IcEdW%,i%,f%) 1846 NEXT i% 1847 FOR i%=45 TO 49 1848 PROCshadeicon(IcEdW%,i%,NOT f%) 1849 NEXT i% 1850 PROCshadeicon(IcEdW%,53,NOT f%) 1851ENDIF 1852IF (clickedon%=-1) OR (clickedon%=41) OR (clickedon%=53) THEN 1853 FOR i%=50 TO 52 1854 PROCshadeicon(IcEdW%,i%,(NOT f%) OR lockaspect%) 1855 NEXT i% 1856ENDIF 1857SYS "Wimp_GetCaretPosition",,ScrapBlk% 1858IF FNiconshaded(ScrapBlk%!0,ScrapBlk%!4) THEN 1859 PROCsetcaret(IcEdW%,-1) : REM move caret from shaded icon 1860ENDIF 1861ENDPROC 1862 1863DEF PROCiced_readwin(mask%) 1864LOCAL flags%,flagptr%,data%,ib%,cbp%,xsize,ysize 1865LOCAL xsize16%,ysize16%,fhandle% 1866LOCAL i%,t%,s%,deflen%,maxlen%,p% 1867WinBlk%!0=IcEd_Win% 1868SYS "Wimp_GetWindowInfo",,WinBlk% 1869CASE IcEd_Icon% OF 1870 WHEN -4 : REM editing title bar icon 1871 flagptr%=WinBlk%+60 1872 data%=WinBlk%+76 1873 WHEN -1 : REM editing selection (read flags from first icon) 1874 PROCsel_get(IcEd_Win%) 1875 flagptr%=WinBlk%+92+32*(SelBlk%!0)+16 1876 data%=WinBlk%+92+32*(SelBlk%!0)+20 1877 OTHERWISE : REM editing single icon 1878 IF IcEd_Icon%>=0 THEN 1879 flagptr%=WinBlk%+92+32*IcEd_Icon%+16 1880 data%=WinBlk%+92+32*IcEd_Icon%+20 1881 ib%=WinBlk%+92+32*IcEd_Icon% 1882 ENDIF 1883ENDCASE 1884cbp%=WinBlk%!68 1885REM construct new flags, but do not change "selected" state 1886flags%=(flagptr%!0) AND (1<<21) 1887IF FNiconselected(IcEdW%,15) THEN flags%+=(1<<2) 1888IF FNiconselected(IcEdW%,16) THEN flags%+=(1<<5) 1889IF FNiconselected(IcEdW%,17) THEN flags%+=(1<<3) 1890IF FNiconselected(IcEdW%,18) THEN flags%+=(1<<4) 1891IF FNiconselected(IcEdW%,19) THEN flags%+=(1<<9) 1892IF FNiconselected(IcEdW%,20) THEN flags%+=(1<<7) 1893IF FNiconselected(IcEdW%,21) THEN flags%+=(1<<10) 1894IF FNiconselected(IcEdW%,22) THEN flags%+=(1<<11) 1895IF FNiconselected(IcEdW%,39) THEN flags%+=(1<<22) 1896flags%+=(IcEd_Button%<<12) 1897flags%+=(IcEd_Esg%<<16) 1898IF FNiconselected(IcEdW%,41) THEN 1899 flags%+=(1<<6) 1900 xsize16%=INT(IcEd_Xsize*16) 1901 ysize16%=INT(IcEd_Ysize*16) 1902 IF xsize16%<=0 THEN xsize16%=12*16 1903 IF ysize16%<=0 THEN ysize16%=12*16 1904 SYS "Font_FindFont",,IconText%(19),xsize16%,ysize16%,0,0 TO fhandle% 1905 IF FontUsage%(fhandle%)>0 THEN 1906 SYS "Font_LoseFont",fhandle% : REM font was already in use 1907 ENDIF 1908 FontUsage%(fhandle%)+=1 1909 flags%+=(fhandle%<<24) 1910ELSE 1911 flags%+=(IcEd_Fgcol%<<24) 1912 flags%+=(IcEd_Bgcol%<<28) 1913ENDIF 1914IF (IcEd_Icon%>=0)OR(IcEd_Icon%=-4) THEN 1915 PROCiconrelease(flagptr%!0,data%) 1916 t%=FNiconselected(IcEdW%,12) 1917 s%=FNiconselected(IcEdW%,13) 1918 i%=FNiconselected(IcEdW%,14) 1919 IF s% AND (NOT t%) THEN 1920 deflen%=LEN($(IconText%(1)))+1 : REM default maximum size 1921 ELSE 1922 deflen%=LEN($(IconText%(0)))+1 1923 ENDIF 1924 IF i% THEN 1925 maxlen%=VAL($(IconText%(3))) 1926 ELSE 1927 maxlen%=12 1928 ENDIF 1929 IF maxlen%<deflen% THEN 1930 maxlen%=deflen% : REM increase max size if text is longer 1931 PROCseticontext(3,STR$(maxlen%)) 1932 ENDIF 1933 IF (NOT i%) AND (deflen%>12) THEN 1934 PROCselecticon(IcEdW%,14,1) : REM make indirected if > 12 chars 1935 PROCseticontext(2,"") : REM default validation string 1936 PROCiced_shadeicons(14) 1937 i%=TRUE 1938 ENDIF 1939 IF t% THEN flags%+=(1<<0) 1940 IF s% THEN flags%+=(1<<1) 1941 IF i% THEN flags%+=(1<<8) 1942 IF i% THEN 1943 IF s% AND (NOT t%) THEN 1944 data%!0=IconText%(1) 1945 data%!4=cbp% : REM window CBP as default sprite area pointer 1946 ENDIF 1947 IF t% THEN 1948 data%!0=IconText%(0) 1949 IF LEN($(IconText%(2)))>0 THEN 1950 data%!4=IconText%(2) 1951 ELSE 1952 data%!4=-1 : REM empty validation string 1953 ENDIF 1954 ENDIF 1955 data%!8=maxlen% 1956 ELSE 1957 IF t% THEN 1958 $(data%)=$(IconText%(0)) 1959 ELSE 1960 IF s% THEN 1961 $(data%)=$(IconText%(1)) 1962 ENDIF 1963 ENDIF 1964 ENDIF 1965 flagptr%!0=flags% 1966 PROCiconrealloc(flagptr%,data%) 1967ENDIF 1968CASE IcEd_Icon% OF 1969 WHEN -4 1970 WinBlk%?36=IcEd_Fgcol% 1971 WinBlk%?37=IcEd_Bgcol% 1972 IcEd_Win%=FNredefinewindow(WinBlk%,1) 1973 WHEN -1 1974 REM do not change text, sprite and indir flags of selection 1975 mask%=mask% AND (NOT &103) 1976 IF NrSelected%>0 THEN 1977 FOR i%=0 TO NrSelected%-1 1978 PROCseticonstate(IcEd_Win%,SelBlk%!(4*i%),flags% AND mask%,mask%) 1979 NEXT i% 1980 ELSE 1981 PROCdialogue(9,"","") 1982 ENDIF 1983 OTHERWISE 1984 IF IcEd_Icon%>=0 THEN 1985 IcEd_Icon%=FNredefineicon(IcEd_Win%,IcEd_Icon%,ib%-8) 1986 ELSE 1987 PROCdialogue(4,"","") 1988 ENDIF 1989ENDCASE 1990IF FNiconselected(IcEdW%,41) THEN 1991 REM font count was increased earlier when finding font handle 1992 PROCfont_lose(fhandle%) 1993ENDIF 1994PROCsetchanged(TRUE) 1995ENDPROC 1996 1997REM *** menu procs *** 1998 1999DEF FNmenu_add(text$,submenu%,genmsg%) 2000LOCAL handle% 2001SYS "MenuUtil_Add",,text$ TO handle% 2002IF submenu%<>-1 THEN SYS "MenuUtil_SubMenu",handle%,submenu% 2003IF genmsg% THEN SYS "MenuUtil_Warning",handle%,1 2004=handle% 2005 2006DEF FNmenu_addwritable(maxlen%,validstr%) 2007LOCAL handle% 2008SYS "MenuUtil_Add",,"" TO handle% 2009SYS "MenuUtil_Writable",,1,maxlen%,validstr% 2010=handle% 2011 2012DEF PROCpreparemenus 2013LOCAL i% 2014SYS "MenuUtil_Initialise",010,0 2015SYS "MenuUtil_New",,"Sprites" TO SpritesMenu% 2016item_sprview%=FNmenu_add("View/Edit",-1,0) 2017item_sprreload%=FNmenu_add("Re-load",-1,0) 2018item_sprreset%=FNmenu_add("Reset",-1,0) 2019REM --- iconbar menu 2020SYS "MenuUtil_New",,Appl$ TO MainMenu% 2021item_info%=FNmenu_add("Info",InfoW%,0) 2022item_options%=FNmenu_add("Options...",-1,0) 2023item_stats%=FNmenu_add("Statistics...",-1,0) 2024item_customsprites%=FNmenu_add("Custom sprites",SpritesMenu%,0) 2025item_quit%=FNmenu_add("Quit",-1,0) 2026REM --- template-name menu 2027SYS "MenuUtil_New",," Name: " TO TemplNamemenu% 2028item_templname%=FNmenu_addwritable(12,0) 2029REM --- template submenu 2030SYS "MenuUtil_New",,"" TO TemplSubmenu% 2031item_copytempl%=FNmenu_add("Copy",TemplNamemenu%,1) 2032item_renametempl%=FNmenu_add("Rename",TemplNamemenu%,1) 2033item_deletetempl%=FNmenu_add("Delete",-1,0) 2034item_savetempl%=FNmenu_add("Save",SaveW%,1) 2035item_opentempl%=FNmenu_add("Open",-1,0) 2036item_closetempl%=FNmenu_add("Close",-1,0) 2037REM --- template menu 2038SYS "MenuUtil_New",,Appl$ TO TemplMenu% 2039item_createtempl%=FNmenu_add("Create",TemplNamemenu%,1) 2040item_template%=FNmenu_add("",TemplSubmenu%,0) 2041item_selalltempl%=FNmenu_add("Select all",-1,0) 2042item_clearseltempl%=FNmenu_add("Clear selection",-1,0) 2043item_deleteall%=FNmenu_add("Delete all",-1,0) 2044item_sorttempl%=FNmenu_add("Sort templates",-1,0) 2045item_save%=FNmenu_add("Save",SaveW%,1) 2046REM --- direction menu for icon copying 2047SYS "MenuUtil_New",,"Copy" TO DirMenu% 2048item_up%=FNmenu_add("Up ^U",-1,0) 2049item_down%=FNmenu_add("Down ^D",-1,0) 2050item_left%=FNmenu_add("Left ^L",-1,0) 2051item_right%=FNmenu_add("Right ^R",-1,0) 2052REM --- menu for icon renumbering 2053SYS "MenuUtil_New",,"No.:" TO IconNrmenu% 2054item_iconnr%=FNmenu_addwritable(4,NumValidStr%) 2055REM --- "dimension" menu 2056SYS "MenuUtil_New",,"Dim." TO DimensionMenu% 2057item_both%=FNmenu_add("Both",-1,0) 2058item_xdim%=FNmenu_add("X",-1,0) 2059item_ydim%=FNmenu_add("Y",-1,0) 2060REM --- user-template submenu 2061SYS "MenuUtil_New",,"" TO UserSubmenu% 2062item_copyicon%=FNmenu_add("Copy ^C",DirMenu%,0) 2063item_renumbericon%=FNmenu_add("Renumber",IconNrmenu%,0) 2064item_deleteicon%=FNmenu_add("Delete ^X",-1,0) 2065item_editicon%=FNmenu_add("Edit... ^E",-1,0) 2066SYS "MenuUtil_Dots",,1 2067item_align%=FNmenu_add("Align ^J",AlignW%,0) 2068item_spaceout%=FNmenu_add("Space out ^K",SpaceW%,0) 2069item_minsize%=FNmenu_add("Min. size",DimensionMenu%,0) 2070item_centericon%=FNmenu_add("Center",DimensionMenu%,0) 2071item_samesize%=FNmenu_add("Same size",DimensionMenu%,0) 2072REM --- sprite area menu 2073SYS "MenuUtil_New",,"Sprites from" TO SpriteAreaMenu% 2074item_wimparea%=FNmenu_add("Wimp area",-1,0) 2075item_customarea%=FNmenu_add("Custom area",-1,0) 2076REM --- "Misc" submenu 2077SYS "MenuUtil_New",,"Misc" TO MiscMenu% 2078item_centerwin%=FNmenu_add("Center to screen",-1,0) 2079item_spritearea%=FNmenu_add("Sprite area",SpriteAreaMenu%,0) 2080item_tidyicons%=FNmenu_add("Tidy icons",-1,0) 2081REM --- user-template menu 2082PROCstandardiconmenu 2083SYS "MenuUtil_New",,"Window" TO UserMenu% 2084IF NrStdIcons%=0 THEN 2085 item_createicon%=FNmenu_add("Create icon",-1,0) 2086ELSE 2087 item_createicon%=FNmenu_add("Create icon",StdIconMenu%,0) 2088ENDIF 2089item_icon%=FNmenu_add("",UserSubmenu%,0) 2090item_selallicons%=FNmenu_add("Select all ^A",-1,0) 2091item_clearselicons%=FNmenu_add("Clear selection ^Z",-1,0) 2092SYS "MenuUtil_Dots",item_clearselicons%,1 2093item_workarea%=FNmenu_add("Work area",WorkW%,1) 2094item_editwindow%=FNmenu_add("Edit window... ^W",-1,0) 2095item_edittitle%=FNmenu_add("Edit title... ^T",-1,0) 2096item_misc%=FNmenu_add("Misc",MiscMenu%,0) 2097item_closewin%=FNmenu_add("Close window ^Q",-1,0) 2098REM --- menu with icon button-types 2099SYS "MenuUtil_New",,"Button type" TO IcButtonMenu% 2100FOR i%=0 TO 15 2101 dummy%=FNmenu_add($(IcButton%+20*i%),-1,0) 2102NEXT i% 2103REM --- menu with window button-types 2104SYS "MenuUtil_New",,"Button type" TO WinButtonMenu% 2105FOR i%=0 TO 15 2106 dummy%=FNmenu_add($(WinButton%+20*i%),-1,0) 2107NEXT i% 2108REM --- actual ESG menu is built when Menu is clicked 2109EsgMenu%=0 2110REM --- actual colour menu is built when Menu is clicked 2111ColourMenu%=0 2112REM --- font menu 2113PROCfontmenu 2114REM --- font size menu 2115SYS "MenuUtil_New",,"Size" TO FontSizemenu% 2116SYS "MenuUtil_Add",,"10pt" 2117SYS "MenuUtil_Add",,"12pt" 2118SYS "MenuUtil_Add",,"16pt" 2119SYS "MenuUtil_Add",,"20pt" 2120SYS "MenuUtil_Add",,"24pt" 2121SYS "MenuUtil_Add",,"36pt" 2122item_fontsize%=FNmenu_addwritable(5,FpNumValidStr%) 2123REM --- "partial update" submenu 2124SYS "MenuUtil_New",,"Other" TO UpdateSubmenu% 2125item_updbo%=FNmenu_add("Border",-1,0) 2126item_updfi%=FNmenu_add("Filled",-1,0) 2127item_updhc%=FNmenu_add("H centre",-1,0) 2128item_updvc%=FNmenu_add("V centre",-1,0) 2129item_updrj%=FNmenu_add("R justified",-1,0) 2130item_updnh%=FNmenu_add("Needs help",-1,0) 2131item_updaa%=FNmenu_add("Allow adjust",-1,0) 2132item_updhs%=FNmenu_add("Half size",-1,0) 2133item_updsh%=FNmenu_add("Shaded",-1,0) 2134REM --- "partial update" menu 2135SYS "MenuUtil_New",,"Update" TO Updatemenu% 2136item_updbt%=FNmenu_add("Button type",-1,0) 2137item_updesg%=FNmenu_add("ESG",-1,0) 2138item_updfg%=FNmenu_add("Fg col",-1,0) 2139item_updbg%=FNmenu_add("Bg col",-1,0) 2140item_updfont%=FNmenu_add("Font",-1,0) 2141item_updrest%=FNmenu_add("Other flags",UpdateSubmenu%,0) 2142ENDPROC 2143 2144DEF PROCmainmenu 2145SYS "MenuUtil_Fade",item_stats%,NrTemplates%=0 2146SYS "MenuUtil_Fade",item_customsprites%,UserSprites%=1 2147ENDPROC 2148 2149DEF PROCtemplatemenu(RETURN xpos%,RETURN ypos%,icon%) 2150LOCAL t$ 2151PROCsel_get(TemplW%) 2152IF (NrSelected%=0) AND (icon%>=0) THEN 2153 PROCselecticon(TemplW%,icon%,1) 2154 SelBlk%!0=icon% 2155 NrSelected%=1 2156 TemplMenu_Deselect%=TRUE : REM deselect icon when menu is removed? 2157ELSE 2158 TemplMenu_Deselect%=FALSE 2159ENDIF 2160t$="" 2161IF NrSelected%>1 THEN 2162 t$="Selection" 2163ELSE 2164 IF NrSelected%=1 THEN 2165 t$=$(TemplNames%+28*(SelBlk%!0)) 2166 ENDIF 2167ENDIF 2168SYS "MenuUtil_Text",TemplSubmenu%,t$ 2169SYS "MenuUtil_Fade",item_copytempl%,NrSelected%<>1 2170SYS "MenuUtil_Fade",item_renametempl%,NrSelected%<>1 2171SelFName$=t$ 2172IF NrSelected%>1 THEN 2173 SYS "MenuUtil_Text",item_template%,"Selection" 2174ELSE 2175 SYS "MenuUtil_Text",item_template%,"Template '"+t$+"'" 2176ENDIF 2177SYS "MenuUtil_Fade",item_template%,LEN(t$)=0 2178SYS "MenuUtil_Fade",item_selalltempl%,NrTemplates%=0 2179SYS "MenuUtil_Fade",item_clearseltempl%,NrSelected%=0 2180SYS "MenuUtil_Fade",item_deleteall%,NrTemplates%=0 2181SYS "MenuUtil_Fade",item_sorttempl%,NrTemplates%=0 2182SYS "MenuUtil_Fade",item_save%,NrTemplates%=0 2183QuitAfterSave%=FALSE 2184xpos%-=64 2185IF NrSelected%=0 THEN 2186 ypos%+=22 2187ELSE 2188 ypos%+=66 2189ENDIF 2190ENDPROC 2191 2192DEF PROCusermenu(RETURN xpos%,RETURN ypos%,window%,icon%) 2193LOCAL t$,st$ 2194PROCsel_get(window%) 2195IF (NrSelected%=0) AND (icon%>=0) THEN 2196 SelBlk%!0=icon% 2197 NrSelected%=1 2198ENDIF 2199CASE NrSelected% OF 2200 WHEN 0 2201 t$="No icon" 2202 st$=t$ 2203 WHEN 1 2204 t$="Icon #"+STR$(SelBlk%!0) 2205 st$=t$ 2206 OTHERWISE 2207 t$="Selection" 2208 st$=STR$(NrSelected%)+" icons" 2209ENDCASE 2210SYS "MenuUtil_Text",UserSubmenu%,st$ 2211SYS "MenuUtil_Fade",item_renumbericon%,NrSelected%=0 2212SYS "MenuUtil_Fade",item_align%,NrSelected%<2 2213SYS "MenuUtil_Fade",item_spaceout%,NrSelected%<2 2214SYS "MenuUtil_Text",item_iconnr%,STR$(NextIconNr%) 2215SYS "MenuUtil_Fade",item_samesize%,NrSelected%<2 2216WinBlk%!0=window% 2217SYS "Wimp_GetWindowInfo",,WinBlk% 2218IF WinBlk%!68=1 THEN 2219 SYS "MenuUtil_TickOnly",SpriteAreaMenu%,0 2220ELSE 2221 SYS "MenuUtil_TickOnly",SpriteAreaMenu%,1 2222ENDIF 2223SYS "MenuUtil_Text",item_icon%,t$ 2224SYS "MenuUtil_Fade",item_icon%,NrSelected%=0 2225SYS "MenuUtil_Fade",item_selallicons%,WinBlk%!88=0 2226SYS "MenuUtil_Fade",item_clearselicons%,NrSelected%=0 2227SYS "MenuUtil_Fade",item_tidyicons%,WinBlk%!88=0 2228SYS "MenuUtil_Fade",item_spritearea%,UserSprites%=1 2229xpos%-=64 2230IF NrSelected%=0 THEN 2231 ypos%+=22 2232ELSE 2233 ypos%+=66 2234ENDIF 2235ENDPROC 2236 2237DEF PROCicbuttonmenu(RETURN xpos%,RETURN ypos%) 2238SYS "MenuUtil_TickOnly",IcButtonMenu%,IcEd_Button% 2239xpos%+=16 2240ypos%+=22+IcEd_Button%*44 2241ENDPROC 2242 2243DEF PROCwinbuttonmenu(RETURN xpos%,RETURN ypos%) 2244SYS "MenuUtil_TickOnly",WinButtonMenu%,WinEd_Button% 2245xpos%+=16 2246ypos%+=22+WinEd_Button%*44 2247ENDPROC 2248 2249DEF PROCesgmenu(RETURN xpos%,RETURN ypos%) 2250IF EsgMenu%<>0 THEN SYS "MenuUtil_Delete",EsgMenu%,FALSE 2251IF SupportAEH% THEN 2252 SYS "MenuUtil_New",,"ESG" TO EsgMenu% 2253 dummy%=FNmenu_addwritable(3,NumValidStr%) 2254 SYS "MenuUtil_Text",,STR$(IcEd_Esg%) 2255 dummy%=FNmenu_add("16 (Action)",-1,0) 2256 dummy%=FNmenu_add("18 (Default action)",-1,0) 2257 dummy%=FNmenu_add("19 (Writable)",-1,0) 2258 dummy%=FNmenu_add("20 (Display)",-1,0) 2259 dummy%=FNmenu_add("21 (Group box)",-1,0) 2260 dummy%=FNmenu_add("24 (24bit colour)",-1,0) 2261 dummy%=FNmenu_add("25 (Slider)",-1,0) 2262 ypos%+=22 2263ELSE 2264 SYS "MenuUtil_New",,"ESG" TO EsgMenu% 2265 FOR i%=0 TO 15 2266 dummy%=FNmenu_add(STR$(i%),-1,0) 2267 NEXT i% 2268 ypos%+=22 2269 IF IcEd_Esg%<=15 THEN 2270 SYS "MenuUtil_TickOnly",EsgMenu%,IcEd_Esg% 2271 ypos%+=IcEd_Esg%*44 2272 ENDIF 2273ENDIF 2274xpos%+=16 2275ENDPROC 2276 2277DEF PROCcolourmenu(RETURN xpos%,RETURN ypos%,window%,icon%) 2278LOCAL i%,flags%,current%,bigrange%,transp% 2279IF ColourMenu%<>0 THEN SYS "MenuUtil_Delete",ColourMenu%,FALSE 2280CASE window% OF 2281 WHEN IcEdW% 2282 CASE icon% OF 2283 WHEN 34 : current%=IcEd_Fgcol% 2284 WHEN 37 : current%=IcEd_Bgcol% 2285 ENDCASE 2286 bigrange%=FALSE 2287 transp%=FALSE 2288 WHEN WinEdW% 2289 bigrange%=FNiconselected(WinEdW%,9) 2290 transp%=(icon%=27)OR(icon%=39) 2291 current%=WinEd_Col%((icon%-27)DIV4) 2292ENDCASE 2293IF bigrange% THEN 2294 REM colour menu for colour numbers 0-255 (GCOL colours) 2295 SYS "MenuUtil_New",,"Col" TO ColourMenu% 2296 dummy%=FNmenu_addwritable(4,NumValidStr%) 2297 SYS "MenuUtil_Text",,STR$(current%) 2298 IF transp% THEN 2299 SYS "MenuUtil_Add",,"None" 2300 SYS "MenuUtil_Tick",,current%=255 2301 ENDIF 2302ELSE 2303 REM colour menu for colour numbers 0-15 2304 SYS "MenuUtil_New",,"Col" TO ColourMenu% 2305 FOR i%=0 TO 15 2306 SYS "MenuUtil_Add",,STR$(i%) 2307 SYS "MenuUtil_Colours",,InverseColour%(i%),i% 2308 NEXT i% 2309 IF transp% THEN 2310 SYS "MenuUtil_Dots",,1 2311 SYS "MenuUtil_Add",,"None" 2312 ENDIF 2313 IF current%=255 THEN 2314 SYS "MenuUtil_TickOnly",ColourMenu%,16 2315 ELSE 2316 SYS "MenuUtil_TickOnly",ColourMenu%,current% 2317 ENDIF 2318ENDIF 2319xpos%+=16 2320ypos%+=22 2321IF (NOT bigrange%) THEN 2322 IF current%=255 THEN 2323 ypos%+=16*44+22 2324 ELSE 2325 ypos%+=current%*44 2326 ENDIF 2327ENDIF 2328ENDPROC 2329 2330DEF PROCfontmenu 2331LOCAL next%,font$,fam$,style$,p%,submenu%,item% 2332SYS "MenuUtil_New",,"Font" TO FontMenu% 2333fam$="" 2334next%=0 2335REPEAT 2336 f$=STRING$(40," ") 2337 SYS "Font_ListFonts",,FontData%,next%,-1 TO ,,next% 2338 IF next%<>-1 THEN 2339 f$=$(FontData%) 2340 p%=INSTR(f$,".") 2341 IF p%>0 THEN 2342 style$=MID$(f$,p%+1) 2343 f$=LEFT$(f$,p%-1) 2344 ELSE 2345 style$="(Regular)" 2346 ENDIF 2347 IF (f$<>fam$) AND (next%<>-1) THEN 2348 REM new font family 2349 fam$=f$ 2350 SYS "MenuUtil_Add",FontMenu%,fam$ TO item% 2351 SYS "MenuUtil_New",,fam$ TO submenu% 2352 SYS "MenuUtil_SubMenu",item%,submenu% 2353 ENDIF 2354 SYS "MenuUtil_Add",submenu%,style$ 2355 ENDIF 2356UNTIL next%=-1 2357ENDPROC 2358 2359DEF PROCfontsizemenu(RETURN xpos%,RETURN ypos%,window%,icon%) 2360IF icon%=48 THEN 2361 SYS "MenuUtil_Text",item_fontsize%,LEFT$(STR$(IcEd_Xsize),5) 2362ELSE 2363 SYS "MenuUtil_Text",item_fontsize%,LEFT$(STR$(IcEd_Ysize),5) 2364ENDIF 2365ypos%+=7*44 2366ENDPROC 2367 2368DEF PROCupdatemenu(RETURN xpos%,RETURN ypos%,window%,icon%) 2369LOCAL font% 2370font%=FNiconselected(IcEdW%,41) 2371SYS "MenuUtil_Fade",item_updfg%,font% 2372SYS "MenuUtil_Fade",item_updbg%,font% 2373SYS "MenuUtil_Fade",item_updfont%,NOT font% 2374ypos%+=22 2375ENDPROC 2376 2377DEF PROCcreatemenu(xpos%,ypos%,window%,icon%) 2378LastMenu_X%=xpos% 2379LastMenu_Y%=ypos% 2380LastMenu_Win%=window% 2381LastMenu_Icon%=icon% 2382LastMenu%=-1 2383CASE window% OF 2384 WHEN -2 2385 PROCmainmenu 2386 LastMenu%=MainMenu% 2387 WHEN TemplW% 2388 PROCtemplatemenu(xpos%,ypos%,icon%) 2389 LastMenu%=TemplMenu% 2390 WHEN IcEdW% 2391 CASE icon% OF 2392 WHEN 9,10 2393 IF IcEd_Icon%=-1 THEN 2394 PROCupdatemenu(xpos%,ypos%,window%,icon%) 2395 LastMenu%=Updatemenu% 2396 ENDIF 2397 WHEN 28 2398 PROCicbuttonmenu(xpos%,ypos%) 2399 LastMenu%=IcButtonMenu% 2400 WHEN 31 2401 PROCesgmenu(xpos%,ypos%) 2402 LastMenu%=EsgMenu% 2403 WHEN 34,37 2404 PROCcolourmenu(xpos%,ypos%,window%,icon%) 2405 LastMenu%=ColourMenu% 2406 WHEN 45,46 2407 xpos%+=16 2408 ypos%+=22 2409 LastMenu%=FontMenu% 2410 WHEN 48,51 2411 PROCfontsizemenu(xpos%,ypos%,window%,icon%) 2412 LastMenu%=FontSizemenu% 2413 ENDCASE 2414 WHEN WinEdW% 2415 CASE icon% OF 2416 WHEN 23 2417 PROCwinbuttonmenu(xpos%,ypos%) 2418 LastMenu%=WinButtonMenu% 2419 WHEN 27,31,35,39,43,47,51 2420 PROCcolourmenu(xpos%,ypos%,window%,icon%) 2421 LastMenu%=ColourMenu% 2422 ENDCASE 2423 OTHERWISE 2424 IF FNwhichtemplate(window%)>=0 THEN 2425 PROCusermenu(xpos%,ypos%,window%,icon%) 2426 LastMenu%=UserMenu% 2427 ENDIF 2428ENDCASE 2429IF LastMenu%<>-1 THEN 2430 ScrapBlk%!0=xpos% 2431 ScrapBlk%!4=ypos% 2432 ScrapBlk%!12=window% 2433 SYS "MenuUtil_Show",LastMenu%,ScrapBlk% 2434ENDIF 2435ENDPROC 2436 2437REM *** drag procs; for moving and resizing icons *** 2438 2439DEF PROCfinishdrag(xmin%,ymin%,xmax%,ymax%) 2440LOCAL win0x%,win0y%,i%,iconblk%,inbox% 2441PROCsetmouseshape(0) : REM restore default pointer shape 2442IF xmin%>xmax% THEN SWAP xmin%,xmax% 2443IF ymin%>ymax% THEN SWAP ymin%,ymax% 2444SYS "Wimp_GetPointerInfo",,PtrInfo% 2445CASE Drag_Type% OF 2446 WHEN 0,1 : REM move / resize icon(s) 2447 IF FNwhichtemplate(PtrInfo%!12)>=0 THEN 2448 WinBlk%!0=PtrInfo%!12 2449 SYS "Wimp_GetWindowInfo",,WinBlk% 2450 win0x%=WinBlk%!4-WinBlk%!20 2451 win0y%=WinBlk%!16-WinBlk%!24 2452 xmin%-=win0x% : REM translate from screen coords to window coords 2453 ymin%-=win0y% 2454 xmax%-=win0x% 2455 ymax%-=win0y% 2456 PROCmoveresize(Drag_Win%,Drag_Icon%,PtrInfo%!12,xmin%,ymin%,xmax%,ymax%) 2457 ELSE 2458 IF DeleteOutside% AND (Drag_Type%=0) THEN 2459 REM moved icons outside window - delete them if option set 2460 FOR i%=0 TO NrSelected%-1 2461 PROCdeleteicon(oldwin%,SelBlk%!(4*i%),1,1) 2462 NEXT i% 2463 ENDIF 2464 ENDIF 2465 WHEN 2,3 : REM drag-select icons (with Select/Adjust) 2466 WinBlk%!0=Drag_Win% 2467 SYS "Wimp_GetWindowInfo",,WinBlk% 2468 win0x%=WinBlk%!4-WinBlk%!20 2469 win0y%=WinBlk%!16-WinBlk%!24 2470 xmin%-=win0x% 2471 xmax%-=win0x% 2472 ymin%-=win0y% 2473 ymax%-=win0y% 2474 IF (WinBlk%!88>0) AND ((xmax%-xmin%)+(ymax%-ymin%)>=32) THEN 2475 FOR i%=0 TO WinBlk%!88-1 2476 iconblk%=WinBlk%+92+i%*32 2477 inbox%=(iconblk%!0<xmax%) AND (iconblk%!8>=xmin%) 2478 inbox%=inbox% AND (iconblk%!4<ymax%) AND (iconblk%!12>=ymin%) 2479 IF inbox% AND (i%<>Drag_Icon%) THEN 2480 IF Drag_Type%=2 THEN 2481 PROCselecticon(Drag_Win%,i%,1) 2482 ELSE 2483 PROCseticonstate(Drag_Win%,i%,1<<21,0) 2484 ENDIF 2485 ENDIF 2486 NEXT i% 2487 ENDIF 2488 WHEN 4 : REM drag from save-box 2489 IF DragASprite% THEN SYS "DragASprite_Stop" 2490 Blk%!0=60 2491 Blk%!12=0 2492 Blk%!16=1 2493 Blk%!20=PtrInfo%!12 2494 Blk%!24=PtrInfo%!16 2495 Blk%!28=PtrInfo%!0 2496 Blk%!32=PtrInfo%!4 2497 Blk%!36=20+112*NrTemplates% : REM this is a low estimate of file size 2498 Blk%!40=&FEC 2499 IF SavingSelection% THEN 2500 $(Blk%+44)=FNleafname(SelFName$) 2501 ELSE 2502 $(Blk%+44)=FNleafname(MainFName$) 2503 ENDIF 2504 SYS "Wimp_SendMessage",17,Blk%,PtrInfo%!12,PtrInfo%!16 2505 WHEN 5,6 2506 REM window move/resize - do nothing, no drag event 2507ENDCASE 2508Drag_Type%=-1 2509ENDPROC 2510 2511DEF PROCinitdrag(type%,window%,icon%,box0x%,box0y%) 2512LOCAL b% 2513SYS "OS_Byte",161,&1C TO ,,b% : REM read "dragasprite" bit in CMOS RAM (RO3) 2514DragASprite%=(b% AND 2)<>0 2515IF DragASprite% AND (type%=4) THEN 2516 SYS "DragASprite_Start",&A1,1,"file_fec",DragBlk%+8,DragBlk%+24 2517ELSE 2518 SYS "Wimp_DragBox",1,DragBlk% 2519ENDIF 2520Drag_Type%=type% : REM is not the same as Wimp drag type! 2521Drag_Win%=window% 2522Drag_Icon%=icon% 2523Drag_Box0x%=box0x% : REM window coords of bottomleft corner of box 2524Drag_Box0y%=box0y% 2525Drag_BoxSizex%=ABS(DragBlk%!16-DragBlk%!8) 2526Drag_BoxSizey%=ABS(DragBlk%!20-DragBlk%!12) 2527SYS "Wimp_GetPointerInfo",,PtrInfo% 2528Drag_Ptrx%=PtrInfo%!0 2529Drag_Ptry%=PtrInfo%!4 2530ENDPROC 2531 2532DEF PROCabortdrag 2533IF DragASprite% AND (type%=4) THEN 2534 SYS "DragASprite_Stop" 2535ELSE 2536 SYS "Wimp_DragBox",,-1 2537ENDIF 2538PROCsetmouseshape(0) : REM restore default pointer shape 2539Drag_Type%=-1 2540ENDPROC 2541 2542DEF PROCstartwindowmove(window%) 2543DragBlk%!0=window% 2544DragBlk%!4=1 2545PROCinitdrag(5,-1,-1,0,0) 2546ENDPROC 2547 2548DEF PROCstartwindowresize(window%) 2549DragBlk%!0=window% 2550DragBlk%!4=2 2551PROCinitdrag(6,-1,-1,0,0) 2552ENDPROC 2553 2554DEF PROCstarticondrag(button%,window%,icon%) 2555CASE button% OF 2556 WHEN 1,256 2557 PROCsel_get(window%) 2558 IF NrSelected%>0 THEN 2559 PROCstarticonresize(window%,-1) 2560 ELSE 2561 IF icon%>=0 THEN PROCstarticonresize(window%,icon%) 2562 ENDIF 2563 WHEN 4,1024 2564 PROCsel_get(window%) 2565 IF NrSelected%>0 THEN 2566 PROCstarticonmove(window%,-1) 2567 ELSE 2568 IF icon%>=0 THEN PROCstarticonmove(window%,icon%) 2569 ENDIF 2570ENDCASE 2571ENDPROC 2572 2573DEF PROCstarticonmove(window%,icon%) 2574LOCAL win0x%,win0y%,xmin%,xmax%,ymin%,ymax% 2575WinBlk%!0=window% 2576SYS "Wimp_GetWindowState",,WinBlk% 2577win0x%=WinBlk%!4-WinBlk%!20 2578win0y%=WinBlk%!16-WinBlk%!24 2579IF icon%>=0 THEN 2580 SelBlk%!0=icon% : REM simulate selection of 1 icon 2581 NrSelected%=1 2582ELSE 2583 PROCsel_get(window%) 2584ENDIF 2585PROCsel_box(window%,xmin%,ymin%,xmax%,ymax%) 2586SYS "Wimp_GetPointerInfo",,PtrInfo% 2587DragBlk%!4=5 2588DragBlk%!8=xmin%+win0x% 2589DragBlk%!12=ymin%+win0y% 2590DragBlk%!16=xmax%+win0x% 2591DragBlk%!20=ymax%+win0y% 2592DragBlk%!24=DragBlk%!8-PtrInfo%!0 2593DragBlk%!28=DragBlk%!12-PtrInfo%!4 2594DragBlk%!32=ScreenSize_X%+DragBlk%!16-PtrInfo%!0 2595DragBlk%!36=ScreenSize_Y%+DragBlk%!20-PtrInfo%!4 2596PROCinitdrag(0,window%,icon%,xmin%,ymin%) 2597PROCsetmouseshape(1) 2598ENDPROC 2599 2600DEF PROCstarticonresize(window%,icon%) 2601LOCAL ibxmin%,ibxmax%,ibymin%,ibymax% 2602LOCAL pbxmin%,pbxmax%,pbymin%,pbymax% 2603LOCAL a,b,c 2604LOCAL ibsizex%,ibsizey%,minsizex%,minsizey% 2605LOCAL shape% 2606LOCAL win0x%,win0y%,xmin%,xmax%,ymin%,ymax% 2607WinBlk%!0=window% 2608SYS "Wimp_GetWindowState",,WinBlk% 2609win0x%=WinBlk%!4-WinBlk%!20 2610win0y%=WinBlk%!16-WinBlk%!24 2611IF icon%>=0 THEN 2612 SelBlk%!0=icon% : REM simulate selection of 1 icon 2613 NrSelected%=1 2614ELSE 2615 PROCsel_get(window%) 2616ENDIF 2617PROCsel_box(window%,xmin%,ymin%,xmax%,ymax%) 2618ibxmin%=win0x%+xmin% : REM for initial box, convert to screen coords 2619ibymin%=win0y%+ymin% 2620ibxmax%=win0x%+xmax% 2621ibymax%=win0y%+ymax% 2622ibsizex%=xmax%-xmin% 2623ibsizey%=ymax%-ymin% 2624REM at first, set parent box equal to initial box 2625pbxmin%=ibxmin% 2626pbymin%=ibymin% 2627pbxmax%=ibxmax% 2628pbymax%=ibymax% 2629REM fixed minimum size of drag box (very difficult to calculate!) 2630minsizex%=32 2631minsizey%=32 2632IF minsizex%>ibsizex% THEN minsizex%=ibsizex% 2633IF minsizey%>ibsizey% THEN minsizey%=ibsizey% 2634REM get position of window on screen 2635WinBlk%!0=window% 2636SYS "Wimp_GetWindowState",,WinBlk% 2637REM determine which side to drag - test mouse position relative to 2638REM diagonals of box 2639REM diagonal 1 (bottomleft-topright) y = a*x + b 2640REM diagonal 2 (topleft-bottomright) y = -a*x + c 2641a=ibsizey%/ibsizex% 2642b=ibymin%-a*ibxmin% 2643c=ibymax%+a*ibxmin% 2644SYS "Wimp_GetPointerInfo",,PtrInfo% 2645IF PtrInfo%!4>(a*(PtrInfo%!0)+b) THEN 2646 REM above diagonal 1 2647 IF PtrInfo%!4>(-a*(PtrInfo%!0)+c) THEN 2648 REM above diagonal 2 - drag top side 2649 IF WinBlk%!16>ibymax% THEN pbymax%=WinBlk%!16-ibsizey% 2650 pbymin%+=minsizey% 2651 shape%=2 2652 SWAP ibymin%,ibymax% : REM top side of box must be "rubber" 2653 ELSE 2654 REM below diagonal 2 - drag left side 2655 IF WinBlk%!4<ibxmin% THEN pbxmin%=WinBlk%!4+ibsizex% 2656 pbxmax%-=minsizex% 2657 shape%=5 2658 SWAP ibxmin%,ibxmax% : REM left side of box must be "rubber" 2659 ENDIF 2660ELSE 2661 REM below diagonal 1 2662 IF PtrInfo%!4>(-a*(PtrInfo%!0)+c) THEN 2663 REM above diagonal 2 - drag right side 2664 IF pbxmax%<WinBlk%!12 THEN pbxmax%=WinBlk%!12 2665 pbxmin%-=ibsizex%-minsizex% 2666 shape%=3 2667 ELSE 2668 REM below diagonal 2 - drag bottom side 2669 IF pbymin%>WinBlk%!8 THEN pbymin%=WinBlk%!8 2670 pbymax%+=ibsizey%-minsizey% 2671 shape%=4 2672 ENDIF 2673ENDIF 2674DragBlk%!4=6 2675DragBlk%!8=ibxmin% 2676DragBlk%!12=ibymin% 2677DragBlk%!16=ibxmax% 2678DragBlk%!20=ibymax% 2679DragBlk%!24=pbxmin% 2680DragBlk%!28=pbymin% 2681DragBlk%!32=pbxmax% 2682DragBlk%!36=pbymax% 2683PROCinitdrag(1,window%,icon%,xmin%,ymin%) 2684PROCsetmouseshape(shape%) 2685ENDPROC 2686 2687DEF PROCdragselect(button%) 2688IF Drag_Type%<0 THEN 2689 SYS "Wimp_GetPointerInfo",,PtrInfo% 2690 DragBlk%!4=6 2691 DragBlk%!8=PtrInfo%!0 2692 DragBlk%!12=PtrInfo%!4 2693 DragBlk%!16=PtrInfo%!0 2694 DragBlk%!20=PtrInfo%!4 2695 WinBlk%!0=PtrInfo%!12 2696 SYS "Wimp_GetWindowState",,WinBlk% 2697 DragBlk%!24=WinBlk%!4 2698 DragBlk%!28=WinBlk%!8 2699 DragBlk%!32=WinBlk%!12 2700 DragBlk%!36=WinBlk%!16 2701 IF button%=1 THEN 2702 PROCinitdrag(3,PtrInfo%!12,PtrInfo%!16,0,0) : REM drag with Adjust 2703 ELSE 2704 PROCinitdrag(2,PtrInfo%!12,PtrInfo%!16,0,0) : REM drag with Select 2705 ENDIF 2706ENDIF 2707ENDPROC 2708 2709DEF PROCstartsavedrag 2710LOCAL win0x%,win0y% 2711WinBlk%!0=SaveW% 2712SYS "Wimp_GetWindowState",,WinBlk% 2713win0x%=WinBlk%!4-WinBlk%!20 2714win0y%=WinBlk%!16-WinBlk%!24 2715ScrapBlk%!0=SaveW% 2716ScrapBlk%!4=2 2717SYS "Wimp_GetIconState",,ScrapBlk% 2718DragBlk%!4=5 2719DragBlk%!8=ScrapBlk%!8+win0x% 2720DragBlk%!12=ScrapBlk%!12+win0y% 2721DragBlk%!16=ScrapBlk%!16+win0x% 2722DragBlk%!20=ScrapBlk%!20+win0y% 2723SYS "Wimp_GetPointerInfo",,PtrInfo% 2724DragBlk%!24=DragBlk%!8-PtrInfo%!0 2725DragBlk%!28=DragBlk%!12-PtrInfo%!4 2726DragBlk%!32=ScreenSize_X%+DragBlk%!16-PtrInfo%!0 2727DragBlk%!36=ScreenSize_Y%+DragBlk%!20-PtrInfo%!4 2728PROCinitdrag(4,SaveW%,-1,0,0) 2729ENDPROC 2730 2731REM --- move or resize icons, based on new coords of box --- 2732DEF PROCmoveresize(oldwin%,icon%,newwin%,xmin%,ymin%,xmax%,ymax%) 2733LOCAL oldxmin%,oldymin%,oldxmax%,oldymax% 2734LOCAL xscale,yscale,new%,i% 2735IF icon%>=0 THEN 2736 SelBlk%!0=icon% : REM simulate selection of 1 icon 2737 NrSelected%=1 2738ELSE 2739 PROCsel_get(oldwin%) 2740ENDIF 2741PROCsel_box(oldwin%,oldxmin%,oldymin%,oldxmax%,oldymax%) 2742REM calculate scaling factors (will be 1 for move) 2743xscale=(xmax%-xmin%)/(oldxmax%-oldxmin%) 2744yscale=(ymax%-ymin%)/(oldymax%-oldymin%) 2745FOR i%=0 TO NrSelected%-1 2746 IconBlk%!0=Drag_Win% 2747 IconBlk%!4=SelBlk%!(4*i%) 2748 SYS "Wimp_GetIconState",,IconBlk% 2749 IconBlk%!8=xmin%+INT((IconBlk%!8-oldxmin%)*xscale+0.5) 2750 IconBlk%!12=ymin%+INT((IconBlk%!12-oldymin%)*yscale+0.5) 2751 IconBlk%!16=xmin%+INT((IconBlk%!16-oldxmin%)*xscale+0.5) 2752 IconBlk%!20=ymin%+INT((IconBlk%!20-oldymin%)*yscale+0.5) 2753 IF oldwin%=newwin% THEN 2754 REM move / resize in same window 2755 new%=FNredefineicon(oldwin%,SelBlk%!(4*i%),IconBlk%) 2756 ELSE 2757 REM move to other other window = copy icons 2758 IconBlk%!4=newwin% 2759 PROCiconrealloc(IconBlk%+24,IconBlk%+28) : REM copy indirected data 2760 new%=FNcreateicon(IconBlk%+4) 2761 ENDIF 2762NEXT i% 2763ENDPROC 2764 2765REM *** procs for dialogue and reporting errors *** 2766 2767DEF FNerrbox(err$,boxes%) 2768ErrBlk%!0=0 2769$(ErrBlk%+4)=err$+CHR$0 2770SYS "Wimp_ReportError",ErrBlk%,boxes%,Appl$ TO ,click% 2771=(click%=1) 2772 2773DEF PROCerror(forcequit%) 2774LOCAL button% 2775LOCAL ERROR 2776ON ERROR LOCAL SYS "Wimp_CloseDown" : END 2777SYS "Hourglass_Smash" 2778IF forcequit% THEN 2779 button%=2 2780ELSE 2781 button%=3 2782ENDIF 2783IF (NOT FNerrbox(REPORT$+" (line "+STR$(ERL)+")",button%)) THEN 2784 SYS "Wimp_CloseDown" 2785 END 2786ENDIF 2787ENDPROC 2788 2789DEF PROCcomplain(msg$) 2790LOCAL dummy% 2791dummy%=FNerrbox(msg$,17) 2792ENDPROC 2793 2794DEF PROCdialogue(no%,arg1$,arg2$) 2795LOCAL b1$,b2$,b3$,mask% 2796b1$="" 2797b2$="" 2798b3$="" 2799CASE no% OF 2800 WHEN 0 2801 $Dial_Msg%=FNmsg_lookup0("MOD0") 2802 b1$=FNmsg_lookup0("SAVE") 2803 b2$=FNmsg_lookup0("DCRD") 2804 b3$=FNmsg_lookup0("CANC") 2805 WHEN 1 2806 $Dial_Msg%=FNmsg_lookup0("MOD0") 2807 b1$=FNmsg_lookup0("DALL") 2808 b3$=FNmsg_lookup0("CANC") 2809 WHEN 2 2810 $Dial_Msg%=FNmsg_lookup0("MOD0") 2811 b1$=FNmsg_lookup0("LNEW") 2812 b3$=FNmsg_lookup0("CANC") 2813 WHEN 3 2814 $Dial_Msg%=FNmsg_lookup1("NORM",arg1$) 2815 b2$=FNmsg_lookup0("OK") 2816 WHEN 4 2817 $Dial_Msg%=FNmsg_lookup0("NUPD") 2818 b2$=FNmsg_lookup0("OK") 2819 WHEN 5 2820 $Dial_Msg%=FNmsg_lookup0("NSTF") 2821 b2$=FNmsg_lookup0("OK") 2822 WHEN 6 2823 $Dial_Msg%=FNmsg_lookup0("NOCH") 2824 b2$=FNmsg_lookup0("OK") 2825 WHEN 7 2826 $Dial_Msg%=FNmsg_lookup2("TIDY",arg1$,arg2$) 2827 b2$=FNmsg_lookup0("OK") 2828 WHEN 8 2829 $Dial_Msg%=FNmsg_lookup0("MOD0") 2830 b1$=FNmsg_lookup0("DCRD") 2831 b3$=FNmsg_lookup0("CANC") 2832 WHEN 9 2833 $Dial_Msg%=FNmsg_lookup0("NSEL") 2834 b2$=FNmsg_lookup0("OK") 2835ENDCASE 2836$Dial_Button1%=b1$ 2837$Dial_Button2%=b2$ 2838$Dial_Button3%=b3$ 2839mask%=(1<<2)+(&FF<<24) 2840IF LEN(b1$)=0 THEN 2841 REM grey colour -> invisible% 2842 PROCseticonstate0(DialW%,1,&11<<24,mask%) 2843ELSE 2844 PROCseticonstate0(DialW%,1,Dial_ButtonCol1%,mask%) 2845ENDIF 2846IF LEN(b2$)=0 THEN 2847 PROCseticonstate0(DialW%,2,&11<<24,mask%) 2848ELSE 2849 PROCseticonstate0(DialW%,2,Dial_ButtonCol2%,mask%) 2850ENDIF 2851IF LEN(b3$)=0 THEN 2852 PROCseticonstate0(DialW%,3,&11<<24,mask%) 2853ELSE 2854 PROCseticonstate0(DialW%,3,Dial_ButtonCol3%,mask%) 2855ENDIF 2856ScrapBlk%!0=DialW% 2857SYS "Wimp_GetWindowState",,ScrapBlk% 2858SYS "Wimp_CreateMenu",,DialW%,ScrapBlk%!4,ScrapBlk%!16 2859LastDialogue%=no% 2860ENDPROC 2861 2862REM *** heap procs *** 2863 2864DEF PROCheap_init 2865Heap%=HIMEM : REM heap starts just after end of allocated memory 2866SYS "OS_ReadMemMapInfo" TO PageSize% 2867REM enlarge wimpslot (1 page) and create private heap in new memory 2868SlotSize%=Heap%-&8000 2869SYS "Wimp_SlotSize",SlotSize%+PageSize%,-1 TO SlotSize% 2870HeapEnd%=SlotSize%+&8000 2871IF HeapEnd%<=Heap% THEN ERROR 0,"Can't claim space for heap" 2872SYS "OS_Heap",0,Heap%,,HeapEnd%-Heap% 2873ENDPROC 2874 2875DEF FNheap_get(size%) 2876LOCAL maxfree%,nrpages%,oldheapend%,ptr% 2877SYS "OS_Heap",1,Heap% TO ,,maxfree% 2878IF size%>maxfree% THEN 2879 REM largest free block is too small - try to enlarge wimpslot and heap 2880 nrpages%=1+(size% DIV PageSize%) : REM required # pages of memory 2881 SYS "Wimp_SlotSize",SlotSize%+nrpages%*PageSize%,-1 TO SlotSize% 2882 oldheapend%=HeapEnd% 2883 HeapEnd%=SlotSize%+&8000 2884 SYS "OS_Heap",5,Heap%,,HeapEnd%-oldheapend% 2885 SYS "OS_Heap",1,Heap% TO ,,maxfree% : REM do we have enough now? 2886ENDIF 2887IF size%>maxfree% THEN 2888 PROCcomplain(FNmsg_lookup0("NOHP")) 2889 ptr%=-1 2890ELSE 2891 SYS "OS_Heap",2,Heap%,,size% TO ,,ptr% 2892ENDIF 2893=ptr% 2894 2895DEF PROCheap_release(ptr%) 2896LOCAL maxfree%,nrpages%,flg% 2897SYS "OS_Heap",3,Heap%,ptr% 2898SYS "OS_Heap",1,Heap% TO ,,maxfree% 2899IF maxfree%>PageSize% THEN 2900 REM more than 1 page free - try to shrink heap (page by page) 2901 nrpages%=0 : REM # pages of memory freed 2902 REPEAT 2903 SYS "XOS_Heap",5,Heap%,,-PageSize% TO ;flg% 2904 IF (flg% AND 1)=0 THEN 2905 nrpages%+=1 2906 ENDIF 2907 UNTIL (flg% AND 1)<>0 2908 IF nrpages%>0 THEN 2909 REM successfully shrunk heap - shrink WimpSlot 2910 SYS "Wimp_SlotSize",SlotSize%-nrpages%*PageSize%,-1 TO SlotSize% 2911 HeapEnd%=SlotSize%+&8000 2912 ENDIF 2913 SYS "OS_Heap",5,Heap%,,(HeapEnd%-Heap%)-Heap%!12 2914ENDIF 2915ENDPROC 2916 2917REM *** service procs; interface with SWIs, etc. *** 2918 2919REM --- change a variable with given difference, but keep inside bounds --- 2920DEF FNchangevar(RETURN var%,diff%,up%,low%,high%) 2921LOCAL oldval% 2922oldval%=var% 2923IF up% THEN 2924 var%+=diff% 2925ELSE 2926 var%-=diff% 2927ENDIF 2928IF var%>high% THEN var%=high% 2929IF var%<low% THEN var%=low% 2930REM return TRUE if changed 2931=(oldval%<>var%) 2932 2933DEF FNreadvarval(var$) 2934LOCAL len% 2935SYS "OS_ReadVarVal",var$,VarBuf%,256,0 TO ,,len% 2936VarBuf%?len%=13 2937=$(VarBuf%) 2938 2939REM --- return name of icon to display in browser window --- 2940DEF FNwindowicon(wflags%,open%) 2941LOCAL sname$,tbar%,hscroll%,vscroll% 2942IF wflags% AND (1<<31) THEN 2943 tbar%=(wflags% AND (1<<26))>0 2944 hscroll%=(wflags% AND (1<<30))>0 2945 vscroll%=(wflags% AND (1<<28))>0 2946ELSE 2947 tbar%=(wflags% AND (1<<0))>0 2948 hscroll%=(wflags% AND (1<<3))>0 2949 vscroll%=(wflags% AND (1<<2))>0 2950ENDIF 2951sname$="Swin_" 2952IF tbar% THEN sname$+="t" 2953IF hscroll% THEN sname$+="h" 2954IF vscroll% THEN sname$+="v" 2955IF open% THEN sname$+="o" 2956=sname$ 2957 2958DEF FNmodevar(mode%,v%) 2959LOCAL val% 2960SYS "OS_ReadModeVariable",mode%,v% TO ,,val% 2961=val% 2962 2963DEF PROCreadscreenvars 2964LOCAL xeig%,yeig%,xpixels%,ypixels% 2965xeig%=FNmodevar(-1,4) 2966yeig%=FNmodevar(-1,5) 2967xpixels%=FNmodevar(-1,11) 2968ypixels%=FNmodevar(-1,12) 2969PixToOS_X%=1<<xeig% : REM # OS units that 1 pixel takes 2970PixToOS_Y%=1<<yeig% 2971ScreenSize_X%=(xpixels%+1)*PixToOS_X% : REM screen size in OS units 2972ScreenSize_Y%=(ypixels%+1)*PixToOS_Y% 2973REM grid size must be multiple of # OS units per pixel 2974IF Grid_SizeX%<PixToOS_X% THEN 2975 Grid_SizeX%=PixToOS_X% 2976ELSE 2977 Grid_SizeX%-=(Grid_SizeX% MOD PixToOS_X%) 2978ENDIF 2979IF Grid_SizeY%<PixToOS_Y% THEN 2980 Grid_SizeY%=PixToOS_Y% 2981ELSE 2982 Grid_SizeY%-=(Grid_SizeY% MOD PixToOS_Y%) 2983ENDIF 2984PROCseticontext(28,STR$(Grid_SizeX%)) 2985PROCseticontext(29,STR$(Grid_SizeY%)) 2986IF Grid_PosX%<PixToOS_X% THEN 2987 Grid_PosX%=PixToOS_X% 2988ELSE 2989 Grid_PosX%-=(Grid_PosX% MOD PixToOS_X%) 2990ENDIF 2991IF Grid_PosY%<PixToOS_Y% THEN 2992 Grid_PosY%=PixToOS_Y% 2993ELSE 2994 Grid_PosY%-=(Grid_PosY% MOD PixToOS_Y%) 2995ENDIF 2996PROCseticontext(30,STR$(Grid_PosX%)) 2997PROCseticontext(31,STR$(Grid_PosY%)) 2998TemplW_MaxCol%=(ScreenSize_X%-100) DIV TemplW_IconX% 2999ENDPROC 3000 3001DEF PROCsetcaret(window%,icon%) 3002LOCAL l% 3003IF icon%>=0 THEN 3004 ScrapBlk%!0=window% 3005 ScrapBlk%!4=icon% 3006 SYS "Wimp_GetIconState",,ScrapBlk% 3007 l%=LEN($(ScrapBlk%!28)) 3008 SYS "Wimp_SetCaretPosition",window%,icon%,,,-1,l% 3009ELSE 3010 REM invisible caret 3011 SYS "Wimp_SetCaretPosition",window%,-1,0,0,1<<25 3012ENDIF 3013ENDPROC 3014 3015DEF PROCsetmouseshape(i%) 3016LOCAL n$,xoff%,yoff% 3017CASE i% OF 3018 WHEN 0 : REM default pointer shape 3019 n$="ptr_default" 3020 xoff%=0 3021 yoff%=0 3022 WHEN 1 : REM hand pointer for moving icons 3023 n$="ptr_hand" 3024 xoff%=7 3025 yoff%=6 3026 WHEN 2 : REM pointer for resizing icons, dragging top side 3027 n$="ptr_sizet" 3028 xoff%=7 3029 yoff%=6 3030 WHEN 3 : REM pointer for resizing icons, dragging right side 3031 n$="ptr_sizer" 3032 xoff%=5 3033 yoff%=5 3034 WHEN 4 : REM pointer for resizing icons, dragging bottom side 3035 n$="ptr_sizeb" 3036 xoff%=7 3037 yoff%=4 3038 WHEN 5 : REM pointer for resizing icons, dragging left side 3039 n$="ptr_sizel" 3040 xoff%=10 3041 yoff%=5 3042ENDCASE 3043Mouse_Ptt%!0=&03020100 3044IF i%=0 THEN 3045 SYS "Wimp_SpriteOp",36,,n$,&2,xoff%,yoff%,0,Mouse_Ptt% 3046ELSE 3047 SYS "OS_SpriteOp",&100+36,SysSprites%,n$,&2,xoff%,yoff%,0,Mouse_Ptt% 3048ENDIF 3049MouseShape%=i% 3050ENDPROC 3051 3052REM --- re-allocate indirected icon data and increase font count --- 3053DEF PROCiconrealloc(flagptr%,data%) 3054LOCAL flags%,s$,s%,len% 3055flags%=flagptr%!0 3056IF (flags% AND &800100)=&100 THEN 3057 s$=FNstr(data%!0) 3058 len%=data%!8 : REM don't allocate actual size! 3059 IF len%>256 THEN len%=256 : REM Basic can't handle longer strings 3060 s%=FNheap_get(len%) 3061 IF s%>0 THEN 3062 $(s%)=LEFT$(s$,len%-1) 3063 data%!0=s% 3064 IF (flags% AND 1) AND (data%!4<>-1) THEN 3065 REM re-allocate validation string 3066 s$=FNstr(data%!4) 3067 s%=FNheap_get(LENs$+1) 3068 IF s%>0 THEN 3069 $(s%)=s$ 3070 data%!4=s% 3071 ELSE 3072 data%!4=-1 3073 ENDIF 3074 ENDIF 3075 ELSE 3076 REM allocation failed - make non-indirected and store first chars 3077 flagptr%!0=flagptr%!0 AND (NOT (1<<8)) 3078 $data%=LEFT$(s$,11) 3079 ENDIF 3080ENDIF 3081IF (flags% AND &800040)=&40 THEN 3082 FontUsage%((flags%)>>24)+=1 3083ENDIF 3084ENDPROC 3085 3086REM --- release indirected icon data and decrease font count --- 3087DEF PROCiconrelease(flags%,data%) 3088IF (flags% AND &800100)=&100 THEN 3089 PROCheap_release(data%!0) 3090 IF (flags% AND 1) AND (data%!(4)<>-1) THEN 3091 REM release validation string 3092 PROCheap_release(data%!4) 3093 ENDIF 3094ENDIF 3095IF (flags% AND &800040)=&40 THEN 3096 PROCfont_lose(flags%>>24) 3097ENDIF 3098ENDPROC 3099 3100REM --- open a window --- 3101REM pos% = 0 -> at current position 3102REM 1 -> centered to screen 3103REM 2 -> centered unless already open 3104REM 3 -> in topleft corner unless already open 3105REM 4 -> in topright corner unless already open 3106DEF PROCopenwindow(handle%,pos%) 3107LOCAL notopen%,cx%,cy%,dx%,dy% 3108ScrapBlk%!0=handle% 3109SYS "Wimp_GetWindowState",,ScrapBlk% 3110notopen%=((ScrapBlk%!32 AND (1<<16))=0) 3111dx%=0 3112dy%=0 3113CASE pos% OF 3114 WHEN 1,2 3115 IF (pos%=1) OR notopen% THEN 3116 REM center window to screen 3117 cx%=ScreenSize_X% DIV 2 3118 cy%=ScreenSize_Y% DIV 2 3119 dx%=cx%-(ScrapBlk%!12+ScrapBlk%!4) DIV 2 3120 dy%=cy%-(ScrapBlk%!16+ScrapBlk%!8) DIV 2 3121 ENDIF 3122 WHEN 3 3123 IF notopen% THEN 3124 dx%=-ScrapBlk%!4 3125 dy%=ScreenSize_Y%-ScrapBlk%!16 3126 ENDIF 3127 WHEN 4 3128 IF notopen% THEN 3129 dx%=ScreenSize_X%-ScrapBlk%!12 3130 dy%=ScreenSize_Y%-ScrapBlk%!16 3131 ENDIF 3132ENDCASE 3133ScrapBlk%!4=ScrapBlk%!4+dx% 3134ScrapBlk%!8=ScrapBlk%!8+dy% 3135ScrapBlk%!12=ScrapBlk%!12+dx% 3136ScrapBlk%!16=ScrapBlk%!16+dy% 3137ScrapBlk%!28=-1 3138SYS "Wimp_OpenWindow",,ScrapBlk% 3139IF handle%=OptionsW% THEN PROCopenpane(OptPaneW%) 3140ENDPROC 3141 3142DEF PROCclosewindow(handle%) 3143LOCAL i% 3144ScrapBlk%!0=handle% 3145SYS "Wimp_CloseWindow",,ScrapBlk% 3146CASE handle% OF 3147 WHEN TemplW% 3148 ScrapBlk%!0=IcInfoW% 3149 SYS "Wimp_CloseWindow",,ScrapBlk% 3150 IF NrTemplates%>0 THEN 3151 FOR i%=0 TO NrTemplates%-1 3152 PROCclosetemplate(i%) 3153 NEXT i% 3154 ENDIF 3155 WHEN OptionsW% 3156 ScrapBlk%!0=OptPaneW% 3157 SYS "Wimp_CloseWindow",,ScrapBlk% 3158ENDCASE 3159ENDPROC 3160 3161DEF PROCopenpane(handle%) 3162LOCAL behind%,x%,y% 3163CASE handle% OF 3164 WHEN OptPaneW% 3165 ScrapBlk%!0=OptionsW% 3166 x%=16 : REM distance from topleft corner of parent window 3167 y%=-16 3168ENDCASE 3169SYS "Wimp_GetWindowState",,ScrapBlk% 3170x%+=ScrapBlk%!4 3171y%+=ScrapBlk%!16 3172behind%=ScrapBlk%!28 3173ScrapBlk%!0=handle% 3174SYS "Wimp_GetWindowState",,ScrapBlk% 3175ScrapBlk%!12=x%+(ScrapBlk%!12-ScrapBlk%!4) 3176ScrapBlk%!8=y%-(ScrapBlk%!16-ScrapBlk%!8) 3177ScrapBlk%!4=x% 3178ScrapBlk%!16=y% 3179ScrapBlk%!28=behind% 3180SYS "Wimp_OpenWindow",,ScrapBlk% 3181ENDPROC 3182 3183DEF PROCopentemplate(no%) 3184IF no%>=0 THEN 3185 ScrapBlk%!0=TemplHandle%(no%) 3186 SYS "Wimp_GetWindowState",,ScrapBlk% 3187 IF (ScrapBlk%!32 AND (1<<16))=0 THEN 3188 ScrapBlk%!28=-1 3189 SYS "Wimp_OpenWindow",,ScrapBlk% 3190 $(TemplNames%+28*no%+14)=FNwindowicon(ScrapBlk%!32,1) 3191 PROCseticonstate0(TemplW%,no%,0,0) 3192 IF TemplatesOpen%=0 THEN PollMask%=PollMask% AND (NOT 1) 3193 TemplatesOpen%+=1 3194 PROCsetcaret(TemplHandle%(no%),-1) 3195 ENDIF 3196ENDIF 3197ENDPROC 3198 3199DEF PROCclosetemplate(no%) 3200IF no%>=0 THEN 3201 ScrapBlk%!0=TemplHandle%(no%) 3202 SYS "Wimp_GetWindowState",,ScrapBlk% 3203 IF (ScrapBlk%!32 AND (1<<16))>0 THEN 3204 SYS "Wimp_CloseWindow",,ScrapBlk% 3205 SYS "Wimp_GetWindowState",,ScrapBlk% 3206 $(TemplNames%+28*no%+14)=FNwindowicon(ScrapBlk%!32,0) 3207 PROCseticonstate0(TemplW%,no%,0,0) 3208 IF TemplHandle%(no%)=IcEd_Win% THEN PROCclosewindow(IcEdW%) 3209 IF TemplHandle%(no%)=WinEd_Win% THEN PROCclosewindow(WinEdW%) 3210 TemplatesOpen%-=1 3211 IF TemplatesOpen%=0 THEN PollMask%=PollMask% OR 1 3212 ENDIF 3213ENDIF 3214ENDPROC 3215 3216REM --- convert string to uppercase --- 3217DEF FNupcase(s$) 3218LOCAL i% 3219FOR i%=1 TO LEN(s$) 3220 a%=ASC(MID$(s$,i%,1)) 3221 IF (a%>=97)AND(a%<=122) THEN 3222 MID$(s$,i%,1)=CHR$(a%-32) 3223 ENDIF 3224NEXT i% 3225=s$ 3226 3227REM --- split off leaf name from a filename --- 3228DEF FNleafname(f$) 3229LOCAL p%,q% 3230q%=0 3231REPEAT 3232 p%=q%+1 3233 q%=INSTR(f$,".",p%) 3234UNTIL q%=0 3235=MID$(f$,p%) 3236 3237REM --- split off directory name from a filename --- 3238DEF FNdirname(f$) 3239LOCAL p%,q% 3240p%=1 3241REPEAT 3242 q%=INSTR(f$,".",p%) 3243 IF q% > 0 THEN p%=q%+1 3244UNTIL q%=0 3245=LEFT$(f$,p%-2) 3246 3247REM --- get the control-terminated string at the given address --- 3248DEF FNstr(s%) 3249LOCAL i%,n$ 3250i%=0 3251WHILE (s%?i%>=32) AND (i%<255) 3252 n$+=CHR$(s%?i%) 3253 i%+=1 3254ENDWHILE 3255=n$ 3256 3257DEF FNfileexists(f$) 3258LOCAL type% 3259type%=0 3260IF LEN(f$)>0 THEN 3261 SYS "OS_File",17,f$ TO type% 3262ENDIF 3263=(type%=1) 3264 3265REM --- set icon state in a template window --- 3266DEF PROCseticonstate(window%,icon%,eor%,clr%) 3267LOCAL oldflags%,newflags% 3268ScrapBlk%!0=window% 3269ScrapBlk%!4=icon% 3270REM check if font usage is changing 3271SYS "Wimp_GetIconState",,ScrapBlk% 3272oldflags%=ScrapBlk%!24 3273newflags%=(oldflags% AND NOT clr%) EOR eor% 3274IF (newflags% AND &800040)=&40 THEN 3275 FontUsage%(newflags%>>24)+=1 3276ENDIF 3277IF (oldflags% AND &800040)=&40 THEN 3278 PROCfont_lose(oldflags%>>24) 3279ENDIF 3280ScrapBlk%!8=eor% 3281ScrapBlk%!12=clr% 3282IF SupportAEH% THEN 3283 SYS "AEH_SetIconState",,ScrapBlk% 3284ELSE 3285 SYS "Wimp_SetIconState",,ScrapBlk% 3286ENDIF 3287ENDPROC 3288 3289REM --- set icon state in one of TemplEd's own windows --- 3290DEF PROCseticonstate0(window%,icon%,eor%,clr%) 3291LOCAL oldflags%,newflags% 3292ScrapBlk%!0=window% 3293ScrapBlk%!4=icon% 3294ScrapBlk%!8=eor% 3295ScrapBlk%!12=clr% 3296SYS "Wimp_SetIconState",,ScrapBlk% 3297ENDPROC 3298 3299DEF PROCselecticon(window%,icon%,f%) 3300LOCAL oldflag% 3301ScrapBlk%!0=window% 3302ScrapBlk%!4=icon% 3303SYS "Wimp_GetIconState",,ScrapBlk% 3304oldflag%=(ScrapBlk%!24) AND (1<<21) 3305IF f% THEN 3306 ScrapBlk%!8=1<<21 3307ELSE 3308 ScrapBlk%!8=0 3309ENDIF 3310ScrapBlk%!12=1<<21 3311IF oldflag%<>ScrapBlk%!8 THEN 3312 REM only set when changing 3313 IF SupportAEH% THEN 3314 SYS "AEH_SetIconState",,ScrapBlk% 3315 ELSE 3316 SYS "Wimp_SetIconState",,ScrapBlk% 3317 ENDIF 3318ENDIF 3319ENDPROC 3320 3321DEF FNiconselected(window%,icon%) 3322ScrapBlk%!0=window% 3323ScrapBlk%!4=icon% 3324SYS "Wimp_GetIconState",,ScrapBlk% 3325=((ScrapBlk%!24) AND (1<<21)) > 0 3326 3327DEF PROCshadeicon(window%,icon%,f%) 3328LOCAL oldflag% 3329ScrapBlk%!0=window% 3330ScrapBlk%!4=icon% 3331SYS "Wimp_GetIconState",,ScrapBlk% 3332oldflag%=(ScrapBlk%!24) AND (1<<22) 3333IF f% THEN 3334 ScrapBlk%!8=(1<<22) 3335ELSE 3336 ScrapBlk%!8=0 3337ENDIF 3338ScrapBlk%!12=1<<22 3339IF oldflag%<>ScrapBlk%!8 THEN 3340 REM only set when changing 3341 IF SupportAEH% THEN 3342 SYS "AEH_SetIconState",,ScrapBlk% 3343 ELSE 3344 SYS "Wimp_SetIconState",,ScrapBlk% 3345 ENDIF 3346ENDIF 3347ENDPROC 3348 3349DEF FNiconshaded(window%,icon%) 3350ScrapBlk%!0=window% 3351ScrapBlk%!4=icon% 3352SYS "Wimp_GetIconState",,ScrapBlk% 3353=((ScrapBlk%!24) AND (1<<22)) > 0 3354 3355REM --- store pointer to indirected text icon (for use in PROCseticontext) --- 3356DEF PROClinkicontext(index%,wbuf%,icon%) 3357IconText%(index%)=wbuf%!(92+icon%*32+20) 3358IconTextWhdl%(index%)=wbuf%!0 3359IconTextIhdl%(index%)=icon% 3360ENDPROC 3361 3362DEF PROCseticontext(index%,text$) 3363$(IconText%(index%))=text$ 3364PROCseticonstate0(IconTextWhdl%(index%),IconTextIhdl%(index%),0,0) 3365ENDPROC 3366 3367REM --- store pointer to text of colour-select-box --- 3368DEF PROClinkcseltext(index%,wbuf%,icon%) 3369CselText%(index%)=wbuf%!(92+icon%*32+20) 3370CselTextWhdl%(index%)=wbuf%!0 3371CselTextIhdl%(index%)=icon% 3372ENDPROC 3373 3374REM --- set colour number in colour-select-box --- 3375DEF PROCsetcolourbox(index%,colour%) 3376LOCAL c$,boxcol% 3377c$=STR$(colour%) 3378IF colour%=&FF THEN c$="--" 3379$(CselText%(index%))=c$ 3380boxcol%=&07 3381IF colour%<16 THEN 3382 boxcol%=(colour%<<4)+InverseColour%(colour%) 3383ENDIF 3384boxcol%=boxcol%<<24 3385PROCseticonstate0(CselTextWhdl%(index%),CselTextIhdl%(index%),boxcol%,&FF<<24) 3386ENDPROC 3387 3388REM --- change colour number --- 3389DEF PROCchangecolourbox(index%,RETURN colour%,diff%,up%,bigrange%) 3390LOCAL newcolour% 3391IF up% THEN 3392 newcolour%=colour%+diff% 3393ELSE 3394 newcolour%=colour%-diff% 3395ENDIF 3396IF (newcolour% AND &FF)=255 THEN newcolour%=newcolour%+diff% 3397IF bigrange% THEN 3398 newcolour%=newcolour% AND &FF : REM colours range from 0-255 3399ELSE 3400 IF newcolour%<0 THEN newcolour%=0 : REM colours range from 0-15 3401 IF newcolour%>&F THEN newcolour%=&F 3402ENDIF 3403IF newcolour%<>colour% THEN 3404 colour%=newcolour% 3405 PROCsetcolourbox(index%,colour%) 3406ENDIF 3407ENDPROC 3408 3409REM --- find number of template corresponding with a window handle --- 3410DEF FNwhichtemplate(handle%) 3411LOCAL i% 3412i%=0 3413WHILE (TemplHandle%(i%)<>handle%) AND (i%<NrTemplates%) 3414 i%+=1 3415ENDWHILE 3416IF i%=NrTemplates% THEN i%=-1 : REM handle does not belong to template window 3417=i% 3418 3419DEF PROCsettitlebar(handle%,textptr%,title$) 3420LOCAL xmax%,ymax% 3421$(textptr%)=title$ 3422ScrapBlk%!0=handle% 3423SYS "Wimp_GetWindowOutline",,ScrapBlk% 3424xmax%=ScrapBlk%!12 3425ymax%=ScrapBlk%!16 3426SYS "Wimp_GetWindowState",,ScrapBlk% 3427IF (ScrapBlk%!32 AND (1<<16)) THEN 3428 SYS "Wimp_ForceRedraw",-1,ScrapBlk%!4,ScrapBlk%!16,xmax%,ymax% 3429ENDIF 3430ENDPROC 3431 3432REM --- delete all selected icons in a window --- 3433DEF PROCdeleteiconsel(window%,default%) 3434LOCAL i% 3435PROCsel_get(window%) 3436IF NrSelected%>0 THEN 3437 FOR i%=0 TO NrSelected%-1 3438 PROCdeleteicon(window%,SelBlk%!(4*i%),1,1) 3439 NEXT i% 3440ELSE 3441 REM nothing selected - delete icon no. <default%> 3442 IF default%>=0 THEN PROCdeleteicon(window%,default%,1,1) 3443ENDIF 3444NrSelected%=0 3445ENDPROC 3446 3447DEF PROCdeleteicon(win%,icon%,release%,adjustvars%) 3448ScrapBlk%!0=win% 3449ScrapBlk%!4=icon% 3450SYS "Wimp_GetIconState",,ScrapBlk% 3451IF release% THEN 3452 PROCiconrelease(ScrapBlk%!24,ScrapBlk%+28) 3453ENDIF 3454SYS "Wimp_DeleteIcon",,ScrapBlk% 3455SYS "Wimp_ForceRedraw",win%,ScrapBlk%!8-20,ScrapBlk%!12-20,ScrapBlk%!16+20,ScrapBlk%!20+20 3456IF adjustvars% THEN 3457 IF (win%=IcEd_Win%) AND (icon%=IcEd_Icon%) THEN 3458 IcEd_Icon%=-1000 3459 ENDIF 3460 IF (win%=LastMenu_Win%) AND (icon%=LastMenu_Icon%) THEN 3461 LastMenu_Icon%=-1 3462 ENDIF 3463ENDIF 3464PROCsetchanged(TRUE) 3465ENDPROC 3466 3467DEF FNcreateicon(blk%) 3468LOCAL dxmin%,dymin%,dxmax%,dymax%,handle% 3469IF Grid_PosLock% THEN 3470 dxmin%=FNgriddiff(blk%!4,Grid_PosX%) 3471 dymin%=FNgriddiff(blk%!8,Grid_PosY%) 3472 blk%!4=blk%!4-dxmin% 3473 blk%!8=blk%!8-dymin% 3474 blk%!12=blk%!12-dxmin% 3475 blk%!16=blk%!16-dymin% 3476ENDIF 3477IF Grid_SizeLock% THEN 3478 dxmin%=FNgriddiff(blk%!4,Grid_SizeX%) 3479 dymin%=FNgriddiff(blk%!8,Grid_SizeY%) 3480 dxmax%=FNgriddiff(blk%!12,Grid_SizeX%) 3481 dymax%=FNgriddiff(blk%!16,Grid_SizeY%) 3482ELSE 3483 dxmin%=FNgriddiff(blk%!4,PixToOS_X%): REM round coords to screen pixels 3484 dymin%=FNgriddiff(blk%!8,PixToOS_Y%) 3485 dxmax%=FNgriddiff(blk%!12,PixToOS_X%) 3486 dymax%=FNgriddiff(blk%!16,PixToOS_Y%) 3487ENDIF 3488blk%!4=blk%!4-dxmin% 3489blk%!8=blk%!8-dymin% 3490blk%!12=blk%!12-dxmax% 3491blk%!16=blk%!16-dymax% 3492SYS "Wimp_CreateIcon",,blk% TO handle% 3493SYS "Wimp_ForceRedraw",blk%!0,blk%!4-12,blk%!8-12,blk%!12+12,blk%!16+12 3494IF handle%>MaxIcons% THEN PROCcomplain(FNmsg_lookup0("MICX")) 3495PROCsetchanged(TRUE) 3496=handle% 3497 3498REM --- calculate distance from nearest gridpoint --- 3499DEF FNgriddiff(c%,gridsize%) 3500LOCAL diff% 3501diff%=c% MOD gridsize% 3502IF c%<0 THEN 3503 IF (-diff%)>(gridsize%>>1) THEN diff%+=gridsize% 3504ELSE 3505 IF diff%>(gridsize%>>1) THEN diff%-=gridsize% 3506ENDIF 3507=diff% 3508 3509REM --- copy all selected icons in a window --- 3510DEF PROCcopyiconsel(window%,RETURN icon%,dir%) 3511LOCAL i%,xmin%,ymin%,xmax%,ymax%,dx%,dy%,handle% 3512PROCsel_get(window%) 3513IF (NrSelected%=0) AND (icon%>=0) THEN 3514 SelBlk%!0=icon% 3515 NrSelected%=1 3516ENDIF 3517PROCsel_box(window%,xmin%,ymin%,xmax%,ymax%) 3518CASE dir% OF 3519 WHEN 0 : dx%=16 : dy%=-16 : REM fixed distance (a bit lower+right) 3520 WHEN 1 : dx%=0 : dy%=ymax%-ymin% : REM copy up 3521 WHEN 2 : dx%=0 : dy%=ymin%-ymax% : REM copy down 3522 WHEN 3 : dx%=xmin%-xmax% : dy%=0 : REM copy left 3523 WHEN 4 : dx%=xmax%-xmin% : dy%=0 : REM copy right 3524ENDCASE 3525IF NrSelected%>0 THEN 3526 FOR i%=0 TO NrSelected%-1 3527 REM copy icon 3528 ScrapBlk%!0=window% 3529 ScrapBlk%!4=SelBlk%!(4*i%) 3530 SYS "Wimp_GetIconState",,ScrapBlk% 3531 ScrapBlk%!4=window% 3532 ScrapBlk%!8=ScrapBlk%!8+dx% 3533 ScrapBlk%!12=ScrapBlk%!12+dy% 3534 ScrapBlk%!16=ScrapBlk%!16+dx% 3535 ScrapBlk%!20=ScrapBlk%!20+dy% 3536 PROCiconrealloc(ScrapBlk%+24,ScrapBlk%+28) : REM copy indirected data 3537 handle%=FNcreateicon(ScrapBlk%+4) 3538 REM deselect originals - copies remain selected 3539 PROCselecticon(window%,SelBlk%!(4*i%),0) 3540 NEXT i% 3541 IF icon%>=0 THEN icon%=handle% 3542 PROCsel_get(window%) 3543ENDIF 3544ENDPROC 3545 3546REM --- replace window definition with new one --- 3547DEF FNredefinewindow(wbuf%,setchanged%) 3548LOCAL oldhandle%,no%,wasopen%,newhandle% 3549oldhandle%=wbuf%!0 3550no%=FNwhichtemplate(oldhandle%) 3551ScrapBlk%!0=oldhandle% 3552SYS "Wimp_GetWindowState",,ScrapBlk% 3553wasopen%=(ScrapBlk%!32) AND (1<<16) 3554SYS "Wimp_DeleteWindow",,wbuf% 3555SYS "Wimp_CreateWindow",,wbuf%+4 TO newhandle% 3556wbuf%!0=newhandle% 3557IF no%<>-1 THEN 3558 TemplHandle%(no%)=newhandle% 3559ENDIF 3560IF oldhandle%=IcEd_Win% THEN 3561 IcEd_Win%=newhandle% 3562 IF IcEd_Icon%>=0 THEN 3563 IcEd_Icon%=-1000 : REM invalidate icon handle 3564 ENDIF 3565ENDIF 3566IF oldhandle%=WinEd_Win% THEN WinEd_Win%=newhandle% 3567IF oldhandle%=LastMenu_Win% THEN 3568 LastMenu_Win%=newhandle% 3569 LastMenu_Icon%=-1 3570ENDIF 3571IF wasopen% THEN 3572 SYS "Wimp_OpenWindow",,wbuf% 3573ENDIF 3574$(TemplNames%+28*no%+14)=FNwindowicon(wbuf%!32,wasopen%) 3575PROCseticonstate0(TemplW%,no%,0,0) 3576IF setchanged% THEN PROCsetchanged(TRUE) 3577=newhandle% 3578 3579REM --- replace icon definition with new one --- 3580DEF FNredefineicon(window%,icon%,blk%) 3581LOCAL newicon% 3582PROCdeleteicon(window%,icon%,0,0) 3583REM new icon data must start at blk%+8 (as returned by Wimp_GetIconState) 3584blk%!4=window% 3585newicon%=FNcreateicon(blk%+4) 3586IF (window%=IcEd_Win%) AND (icon%=IcEd_Icon%) THEN 3587 IcEd_Icon%=newicon% 3588ENDIF 3589IF (window%=LastMenu_Win%) AND (icon%=LastMenu_Icon%) THEN 3590 LastMenu_Icon%=newicon% 3591ENDIF 3592=newicon% 3593 3594REM --- renumber an icon; new number is equal to NextIconNr% --- 3595DEF PROCrenumbericon(RETURN window%,icon%) 3596LOCAL i%,ip1%,ip2%,temp% 3597WinBlk%!0=window% 3598SYS "Wimp_GetWindowInfo",,WinBlk% 3599IF icon%>=WinBlk%!88 THEN icon%=WinBlk%!88-1 3600IF NextIconNr%>=WinBlk%!88 THEN NextIconNr%=WinBlk%!88-1 3601ip1%=WinBlk%+92+icon%*32 3602ip2%=WinBlk%+92+NextIconNr%*32 3603REM swap icon data blocks in window definition 3604FOR i%=0 TO 28 STEP 4 3605 temp%=ip1%!i% 3606 ip1%!i%=ip2%!i% 3607 ip2%!i%=temp% 3608NEXT i% 3609window%=FNredefinewindow(WinBlk%,1) 3610ENDPROC 3611 3612REM --- renumber selected icons, ordering based on topleft coords --- 3613DEF PROCrenumbericonsel(RETURN window%) 3614LOCAL i%,j%,f%,l% 3615PROCsel_get(window%) 3616PROCsel_sort(window%,1,1,0,0,0,1) 3617SYS "Wimp_WhichIcon",window%,SelBlk2%,(1<<21)+(1<<23),1<<21 3618WinBlk%!0=window% 3619SYS "Wimp_GetWindowInfo",,WinBlk% 3620f%=NextIconNr% : REM first number of new numbering 3621l%=NextIconNr%+NrSelected%-1 : REM last number 3622IF l%>=WinBlk%!88 THEN 3623 l%=WinBlk%!88-1 : REM make sure new numbers are within range 3624 f%=l%-(NrSelected%-1) 3625ENDIF 3626j%=0 3627FOR i%=0 TO NrSelected%-1 3628 REM replace icon with i%-th icon from sorted selection 3629 PROCreplaceicon(WinBlk%,f%+i%,window%,SelBlk%!(4*i%)) 3630 IF NOT FNiconselected(window%,f%+i%) THEN 3631 REM data of unselected icon overwritten - find new number for this icon 3632 WHILE (SelBlk2%!(4*j%)>=f%) AND (SelBlk2%!(4*j%)<=l%) 3633 j%+=1 3634 ENDWHILE 3635 PROCreplaceicon(WinBlk%,SelBlk2%!(4*j%),window%,f%+i%) 3636 j%+=1 3637 ENDIF 3638NEXT i% 3639window%=FNredefinewindow(WinBlk%,1) 3640NextIconNr%=l%+1 3641ENDPROC 3642 3643REM --- set selected icons to same size as topleft icon --- 3644DEF PROCsamesizeiconsel(window%,default%,dim%) 3645LOCAL i%,xsize%,ysize%,handle% 3646PROCsel_get(window%) 3647IF (NrSelected%=0) AND (default%>=0) THEN 3648 SelBlk%!0=default% 3649 NrSelected%=1 3650ENDIF 3651IF NrSelected%>0 THEN 3652 PROCsel_sort(window%,1,1,0,0,0,1) 3653 IconBlk%!0=window% 3654 IconBlk%!4=SelBlk%!0 3655 SYS "Wimp_GetIconState",,IconBlk% 3656 xsize%=IconBlk%!16-IconBlk%!8 3657 ysize%=IconBlk%!20-IconBlk%!12 3658 FOR i%=0 TO NrSelected%-1 3659 IconBlk%!0=window% 3660 IconBlk%!4=SelBlk%!(4*i%) 3661 SYS "Wimp_GetIconState",,IconBlk% 3662 IF dim%<>2 THEN IconBlk%!16=IconBlk%!8+xsize% 3663 IF dim%<>1 THEN IconBlk%!20=IconBlk%!12+ysize% 3664 handle%=FNredefineicon(window%,SelBlk%!(4*i%),IconBlk%) 3665 NEXT i% 3666ENDIF 3667ENDPROC 3668 3669REM --- in wbuf%, replace data for icon ic1% with data of icon ic2% --- 3670DEF PROCreplaceicon(wbuf%,ic1%,window%,ic2%) 3671LOCAL ib%,temp1%,temp2% 3672ib%=wbuf%+92+32*ic1% 3673temp1%=ib%!(-8) : REM save 2 words just before the icon block 3674temp2%=ib%!(-4) 3675ib%!(-8)=window% 3676ib%!(-4)=ic2% 3677SYS "Wimp_GetIconState",,ib%-8 : REM get icon data block 3678ib%!(-8)=temp1% : REM restore the 2 words 3679ib%!(-4)=temp2% 3680ENDPROC 3681 3682REM --- update contents of icon info window --- 3683DEF PROCicinf_update 3684LOCAL no%,t$,i$,xmin$,xmax$,ymin$,ymax$,s$,mx%,my%,m$ 3685LOCAL showicondata%,xmin%,xmax%,ymin%,ymax% 3686SYS "Wimp_GetPointerInfo",,PtrInfo% 3687no%=FNwhichtemplate(PtrInfo%!12) 3688t$="" 3689i$="" 3690xmin$="" 3691xmax$="" 3692ymin$="" 3693ymax$="" 3694s$="" 3695m$="" 3696showicondata%=FALSE 3697IF (no%>=0) THEN 3698 t$=$(TemplNames%+28*no%) 3699 IF PtrInfo%!16>=-1 THEN 3700 ScrapBlk%!0=PtrInfo%!12 3701 SYS "Wimp_GetWindowState",,ScrapBlk% 3702 mx%=PtrInfo%!0-(ScrapBlk%!4-ScrapBlk%!20) 3703 my%=PtrInfo%!4-(ScrapBlk%!16-ScrapBlk%!24) 3704 m$=STR$(mx%)+","+STR$(my%) 3705 CASE Drag_Type% OF 3706 WHEN 0 3707 REM moving/resizing icon(s) - show current coordinates of dragbox 3708 i$="..." 3709 xmin%=mx%-(Drag_Ptrx%-DragBlk%!8) 3710 ymin%=my%-(Drag_Ptry%-DragBlk%!12) 3711 xmax%=xmin%+Drag_BoxSizex% 3712 ymax%=ymin%+Drag_BoxSizey% 3713 showicondata%=TRUE 3714 WHEN 1 3715 REM resizing icon(s) - show current coordinates of dragbox 3716 i$="..." 3717 xmin%=Drag_Box0x% 3718 ymin%=Drag_Box0y% 3719 xmax%=xmin%+Drag_BoxSizex% 3720 ymax%=ymin%+Drag_BoxSizey% 3721 CASE MouseShape% OF 3722 WHEN 2 : ymax%+=(PtrInfo%!4-Drag_Ptry%) 3723 WHEN 3 : xmax%+=(PtrInfo%!0-Drag_Ptrx%) 3724 WHEN 4 : ymin%+=(PtrInfo%!4-Drag_Ptry%) 3725 WHEN 5 : xmin%+=(PtrInfo%!0-Drag_Ptrx%) 3726 ENDCASE 3727 showicondata%=TRUE 3728 OTHERWISE 3729 REM show data of icon under pointer 3730 IF PtrInfo%!16>=0 THEN 3731 i$=STR$(PtrInfo%!16) 3732 ScrapBlk%!0=PtrInfo%!12 3733 ScrapBlk%!4=PtrInfo%!16 3734 SYS "Wimp_GetIconState",,ScrapBlk% 3735 xmin%=ScrapBlk%!8 3736 xmax%=ScrapBlk%!16 3737 ymin%=ScrapBlk%!12 3738 ymax%=ScrapBlk%!20 3739 showicondata%=TRUE 3740 ENDIF 3741 ENDCASE 3742 IF showicondata% THEN 3743 xmin$=STR$(xmin%) 3744 xmax$=STR$(xmax%) 3745 ymin$=STR$(ymin%) 3746 ymax$=STR$(ymax%) 3747 s$=STR$(xmax%-xmin%)+"x"+STR$(ymax%-ymin%) 3748 ENDIF 3749 ENDIF 3750ENDIF 3751IF t$<>$(IconText%(7)) THEN PROCseticontext(7,t$) 3752IF i$<>$(IconText%(8)) THEN PROCseticontext(8,i$) 3753IF xmin$<>$(IconText%(9)) THEN PROCseticontext(9,xmin$) 3754IF xmax$<>$(IconText%(26)) THEN PROCseticontext(26,xmax$) 3755IF ymin$<>$(IconText%(10)) THEN PROCseticontext(10,ymin$) 3756IF ymax$<>$(IconText%(27)) THEN PROCseticontext(27,ymax$) 3757IF s$<>$(IconText%(11)) THEN PROCseticontext(11,s$) 3758IF m$<>$(IconText%(24)) THEN PROCseticontext(24,m$) 3759ENDPROC 3760 3761DEF PROCalignicons(window%) 3762LOCAL move%,imask%,type%,i%,anchorx%,anchory% 3763LOCAL dx1%,dx2%,dy1%,dy2%,handle% 3764move%=FNiconselected(AlignW%,8) 3765imask%=(31<<16)+(1<<21) 3766SYS "Wimp_WhichIcon",AlignW%,SelBlk%,imask%,(1<<16)+(1<<21) 3767type%=SelBlk%!0 3768PROCsel_get(window%) 3769IF NrSelected%>1 THEN 3770 CASE type% OF 3771 WHEN 2,3 : PROCsel_sort(window%,0,0,1,0,1,1) 3772 WHEN 4 : PROCsel_sort(window%,0,1,0,0,1,1) 3773 WHEN 5,6 : PROCsel_sort(window%,1,1,0,1,0,0) 3774 WHEN 7 : PROCsel_sort(window%,1,0,1,1,1,1) 3775 ENDCASE 3776 IconBlk%!0=window% 3777 IconBlk%!4=SelBlk%!0 3778 SYS "Wimp_GetIconState",,IconBlk% 3779 CASE type% OF 3780 WHEN 2 3781 anchorx%=IconBlk%!8 : REM left 3782 WHEN 3 3783 anchorx%=IconBlk%!8+(IconBlk%!16-IconBlk%!8)DIV2 : REM h centre 3784 WHEN 4 3785 anchorx%=IconBlk%!16 : REM right 3786 WHEN 5 3787 anchory%=IconBlk%!20 : REM top 3788 WHEN 6 3789 anchory%=IconBlk%!12+(IconBlk%!20-IconBlk%!12)DIV2 : REM v centre 3790 WHEN 7 3791 anchory%=IconBlk%!12 : REM bottom 3792 ENDCASE 3793 FOR i%=1 TO NrSelected%-1 3794 IconBlk%!0=window% 3795 IconBlk%!4=SelBlk%!(4*i%) 3796 SYS "Wimp_GetIconState",,IconBlk% 3797 dx1%=0 3798 dx2%=0 3799 dy1%=0 3800 dy2%=0 3801 CASE type% OF 3802 WHEN 2 3803 dx1%=anchorx%-IconBlk%!8 3804 IF move% THEN dx2%=dx1% 3805 WHEN 3 3806 dx1%=anchorx%-(IconBlk%!8+(IconBlk%!16-IconBlk%!8)DIV2) 3807 IF move% THEN dx2%=dx1% 3808 WHEN 4 3809 dx2%=anchorx%-IconBlk%!16 3810 IF move% THEN dx1%=dx2% 3811 WHEN 5 3812 dy2%=anchory%-IconBlk%!20 3813 IF move% THEN dy1%=dy2% 3814 WHEN 6 3815 dy1%=anchory%-(IconBlk%!12+(IconBlk%!20-IconBlk%!12)DIV2) 3816 IF move% THEN dy2%=dy1% 3817 WHEN 7 3818 dy1%=anchory%-IconBlk%!12 3819 IF move% THEN dy2%=dy1% 3820 ENDCASE 3821 IconBlk%!8=IconBlk%!8+dx1% 3822 IconBlk%!12=IconBlk%!12+dy1% 3823 IconBlk%!16=IconBlk%!16+dx2% 3824 IconBlk%!20=IconBlk%!20+dy2% 3825 IF IconBlk%!16<=IconBlk%!8 THEN IconBlk%!16=IconBlk%!8+32 3826 IF IconBlk%!20<=IconBlk%!12 THEN IconBlk%!20=IconBlk%!12+32 3827 handle%=FNredefineicon(window%,SelBlk%!(4*i%),IconBlk%) 3828 NEXT i% 3829ENDIF 3830ENDPROC 3831 3832REM --- shade the appropriate icons in the Align window 3833DEF PROCalign_shadeicons 3834IF FNiconselected(AlignW%,3) OR FNiconselected(AlignW%,6) THEN 3835 PROCshadeicon(AlignW%,9,1) 3836ELSE 3837 PROCshadeicon(AlignW%,9,0) 3838ENDIF 3839PROCshadeicon(AlignW%,3,FNiconselected(AlignW%,9)) 3840PROCshadeicon(AlignW%,6,FNiconselected(AlignW%,9)) 3841ENDPROC 3842 3843DEF PROCspaceicons(window%) 3844LOCAL imask%,type%,i%,distance%,space%,ib%,anchor%,dx%,dy%,handle% 3845SpaceOut_Space%=VAL($(IconText%(18))) 3846imask%=(31<<16)+(1<<21) : REM check if spacing must be horizontal or vertical 3847SYS "Wimp_WhichIcon",SpaceW%,SelBlk%,imask%,(1<<16)+(1<<21) 3848type%=SelBlk%!0 : REM type%=2 => horizontal, type%=3 => vertical 3849PROCsel_get(window%) 3850IF NrSelected%>1 THEN 3851 IF type%=2 THEN 3852 PROCsel_sort(window%,0,0,1,0,1,0) 3853 ELSE 3854 PROCsel_sort(window%,1,0,1,1,1,0) 3855 ENDIF 3856 IF FNiconselected(SpaceW%,4) THEN 3857 distance%=SpaceOut_Space% 3858 ELSE 3859 REM calc available space between icons 3860 WinBlk%!0=window% 3861 SYS "Wimp_GetWindowInfo",,WinBlk% 3862 REM start with space between outer icons 3863 IF type%=2 THEN 3864 space%=WinBlk%!(92+32*(SelBlk%!(4*(NrSelected%-1)))) 3865 space%-=WinBlk%!(92+32*(SelBlk%!0)+8) 3866 ELSE 3867 space%=WinBlk%!(92+32*(SelBlk%!(4*(NrSelected%-1)))+4) 3868 space%-=WinBlk%!(92+32*(SelBlk%!0)+12) 3869 ENDIF 3870 REM subtract sizes of intermediate icons 3871 IF NrSelected%>2 THEN 3872 FOR i%=1 TO (NrSelected%-2) 3873 ib%=WinBlk%+92+32*(SelBlk%!(4*i%)) 3874 IF type%=2 THEN 3875 space%-=(ib%!8-ib%!0) 3876 ELSE 3877 space%-=(ib%!12-ib%!4) 3878 ENDIF 3879 NEXT i% 3880 ENDIF 3881 distance%=space% DIV (NrSelected%-1) 3882 ENDIF 3883 IconBlk%!0=window% 3884 IconBlk%!4=SelBlk%!0 3885 SYS "Wimp_GetIconState",,IconBlk% 3886 CASE type% OF 3887 WHEN 2 : anchor%=IconBlk%!16 3888 WHEN 3 : anchor%=IconBlk%!20 3889 ENDCASE 3890 FOR i%=1 TO NrSelected%-1 3891 anchor%+=distance% 3892 IconBlk%!0=window% 3893 IconBlk%!4=SelBlk%!(4*i%) 3894 SYS "Wimp_GetIconState",,IconBlk% 3895 dx%=0 3896 dy%=0 3897 CASE type% OF 3898 WHEN 2 : dx%=anchor%-IconBlk%!8 3899 WHEN 3 : dy%=anchor%-IconBlk%!12 3900 ENDCASE 3901 IconBlk%!8=IconBlk%!8+dx% 3902 IconBlk%!12=IconBlk%!12+dy% 3903 IconBlk%!16=IconBlk%!16+dx% 3904 IconBlk%!20=IconBlk%!20+dy% 3905 CASE type% OF 3906 WHEN 2 : anchor%=IconBlk%!16 3907 WHEN 3 : anchor%=IconBlk%!20 3908 ENDCASE 3909 handle%=FNredefineicon(window%,SelBlk%!(4*i%),IconBlk%) 3910 NEXT i% 3911ENDIF 3912ENDPROC 3913 3914DEF PROCspace_shadeicons 3915LOCAL useavail%,i% 3916useavail%=FNiconselected(SpaceW%,8) 3917FOR i%=5 TO 7 3918 PROCshadeicon(SpaceW%,i%,useavail%) 3919NEXT i% 3920ENDPROC 3921 3922DEF FNtidyicons(window%) 3923LOCAL changed1%,changed2%,ib1%,ib2%,end%,nricons%,dx%,dy%,i%,handle% 3924WinBlk%!0=window% 3925SYS "Wimp_GetWindowInfo",,WinBlk% 3926changed1%=0 3927changed2%=0 3928IF WinBlk%!88>0 THEN 3929 ib1%=WinBlk%+92 3930 ib2%=ib1% 3931 end%=ib1%+32*(WinBlk%!88) 3932 nricons%=0 3933 WHILE ib1%<end% 3934 IF ((ib1%!16)AND(1<<23))=0 THEN 3935 REM test if icon position is within work area 3936 dx%=0 3937 dy%=0 3938 IF ib1%!0<WinBlk%!44 THEN dx%=WinBlk%!44-ib1%!0 3939 IF ib1%!4<WinBlk%!48 THEN dy%=WinBlk%!48-ib1%!4 3940 IF ib1%!8>WinBlk%!52 THEN dx%=WinBlk%!52-ib1%!8 3941 IF ib1%!12>WinBlk%!56 THEN dy%=WinBlk%!56-ib1%!12 3942 ib1%!0=ib1%!0+dx% 3943 ib1%!4=ib1%!4+dy% 3944 ib1%!8=ib1%!8+dx% 3945 ib1%!12=ib1%!12+dy% 3946 REM move block of icon data 3947 FOR i%=0 TO 28 STEP 4 3948 ib2%!i%=ib1%!i% 3949 NEXT i% 3950 ib2%+=32 3951 nricons%+=1 3952 IF (dx%<>0)OR(dy%<>0) THEN changed2%+=1 3953 ELSE 3954 REM don't copy deleted icon 3955 changed1%+=1 3956 ENDIF 3957 ib1%+=32 3958 ENDWHILE 3959 IF (changed1%=0)AND(changed2%=0) THEN 3960 PROCdialogue(6,"","") 3961 ELSE 3962 WinBlk%!88=nricons% 3963 handle%=FNredefinewindow(WinBlk%,1) 3964 PROCdialogue(7,STR$(changed1%),STR$(changed2%)) 3965 ENDIF 3966ENDIF 3967=handle% 3968 3969DEF PROCsetworkarea 3970LOCAL xtopleft%,ytopleft%,xsize%,ysize%,xmin%,ymin% 3971WinBlk%!0=LastMenu_Win% 3972SYS "Wimp_GetWindowInfo",,WinBlk% 3973xtopleft%=VAL($(IconText%(12))) 3974ytopleft%=VAL($(IconText%(13))) 3975xsize%=VAL($(IconText%(14))) 3976ysize%=VAL($(IconText%(15))) 3977xmin%=VAL($(IconText%(16))) AND &FFFF 3978ymin%=VAL($(IconText%(17))) AND &FFFF 3979IF (xsize%<32) OR (ysize%<32) THEN 3980 PROCcomplain(FNmsg_lookup0("IWAS")) 3981ELSE 3982 IF xmin%>xsize% THEN 3983 xmin%=xsize% 3984 PROCseticontext(16,STR$(xmin%)) 3985 ENDIF 3986 IF ymin%>ysize% THEN 3987 ymin%=ysize% 3988 PROCseticontext(17,STR$(ymin%)) 3989 ENDIF 3990 WinBlk%!44=xtopleft% 3991 WinBlk%!48=ytopleft%-ysize% 3992 WinBlk%!52=xtopleft%+xsize% 3993 WinBlk%!56=ytopleft% 3994 WinBlk%!72=(ymin%<<16)+xmin% 3995 LastMenu_Win%=FNredefinewindow(WinBlk%,1) 3996ENDIF 3997ENDPROC 3998 3999DEF PROCcentericonsel(window%,default%,dim%) 4000LOCAL xmin%,ymin%,xmax%,ymax%,xfree%,yfree%,dx%,dy%,i%,handle% 4001PROCsel_get(window%) 4002IF (NrSelected%=0) AND (default%>=0) THEN 4003 SelBlk%!0=default% 4004 NrSelected%=1 4005ENDIF 4006IF NrSelected%>0 THEN 4007 PROCsel_box(window%,xmin%,ymin%,xmax%,ymax%) 4008 ScrapBlk%!0=window% 4009 SYS "Wimp_GetWindowState",,ScrapBlk% 4010 xfree%=(ScrapBlk%!12-ScrapBlk%!4)-(xmax%-xmin%) 4011 dx%=ScrapBlk%!20+(xfree% DIV 2)-xmin% 4012 yfree%=(ScrapBlk%!16-ScrapBlk%!8)-(ymax%-ymin%) 4013 dy%=ScrapBlk%!24-(yfree% DIV 2)-ymax% 4014 IF dim%=2 THEN dx%=0 4015 IF dim%=1 THEN dy%=0 4016 FOR i%=0 TO NrSelected%-1 4017 IconBlk%!0=window% 4018 IconBlk%!4=SelBlk%!(4*i%) 4019 SYS "Wimp_GetIconState",,IconBlk% 4020 IconBlk%!8=IconBlk%!8+dx% 4021 IconBlk%!12=IconBlk%!12+dy% 4022 IconBlk%!16=IconBlk%!16+dx% 4023 IconBlk%!20=IconBlk%!20+dy% 4024 handle%=FNredefineicon(window%,SelBlk%!(4*i%),IconBlk%) 4025 NEXT i% 4026ENDIF 4027ENDPROC 4028 4029DEF PROCsupportinterface(switch%) 4030LOCAL flg% 4031old%=SupportInterface% 4032SupportInterface%=switch% 4033IF switch% THEN 4034 SYS "XOS_Module",18,"InterfaceManager" TO ;flg% 4035 IF (flg% AND 1) THEN 4036 SupportInterface%=FALSE 4037 PROCdialogue(3,"Interface","") 4038 ELSE 4039 PROCsupportaeh(FALSE) 4040 ENDIF 4041ENDIF 4042PROCselecticon(OptPaneW%,9,SupportInterface%) 4043IF SupportInterface%<>old% THEN PROCredrawall 4044ENDPROC 4045 4046DEF PROCsupportaeh(switch%) 4047LOCAL old%,flg% 4048old%=SupportAEH% 4049SupportAEH%=switch% 4050IF switch% THEN 4051 SYS "XOS_Module",18,"AEHModule" TO ;flg% 4052 IF (flg% AND 1) THEN 4053 SupportAEH%=FALSE 4054 PROCdialogue(3,"AEH","") 4055 ELSE 4056 PROCsupportinterface(FALSE) 4057 ENDIF 4058ENDIF 4059PROCselecticon(OptPaneW%,10,SupportAEH%) 4060PROCregisteraeh(SupportAEH%) 4061IF SupportAEH%<>old% THEN PROCredrawall 4062ENDPROC 4063 4064DEF PROCregisteraeh(switch%) 4065LOCAL old%,flg% 4066IF switch% THEN 4067 IF NOT AEHregistered% THEN 4068 SYS "XAEH_Register",1 TO ;flg% 4069 AEHregistered%=((flg% AND 1)<>0) 4070 ENDIF 4071ELSE 4072 IF AEHregistered% THEN 4073 SYS "XAEH_Register",-1 4074 AEHregistered%=FALSE 4075 ENDIF 4076ENDIF 4077ENDPROC 4078 4079REM --- force the redraw of all open template windows --- 4080DEF PROCredrawall 4081LOCAL i% 4082IF NrTemplates%>0 THEN 4083 FOR i%=0 TO (NrTemplates%-1) 4084 Blk%!0=TemplHandle%(i%) 4085 SYS "Wimp_GetWindowState",,Blk% 4086 IF (Blk%!32 AND (1<<16)) THEN 4087 SYS "Wimp_ForceRedraw",-1,Blk%!4,Blk%!8,Blk%!12,Blk%!16 4088 ENDIF 4089 NEXT i% 4090ENDIF 4091ENDPROC 4092 4093DEF PROCsetmainfname(fn$) 4094MainFName$=fn$ 4095IF ChangesMade% THEN fn$+=" *" 4096PROCsettitlebar(TemplW%,TemplTbar%,fn$) 4097ENDPROC 4098 4099REM --- set the 'changes made' status --- 4100DEF PROCsetchanged(switch%) 4101LOCAL title$ 4102IF ChangesMade%<>switch% THEN 4103 IF switch% THEN 4104 title$=$(TemplTbar%)+" *" 4105 ELSE 4106 title$=LEFT$($(TemplTbar%),LEN($(TemplTbar%))-2) 4107 ENDIF 4108 PROCsettitlebar(TemplW%,TemplTbar%,title$) 4109 ChangesMade%=switch% 4110ENDIF 4111ENDPROC 4112 4113REM --- build string with info to send to !Help --- 4114DEF FNiconhelp(no%,icon%) 4115LOCAL help$,p% 4116help$="Template '"+$(TemplNames%+28*no%) 4117IF icon%>=0 THEN 4118 help$+="', Icon #"+STR$(icon%)+"|M" 4119 ScrapBlk%!0=TemplHandle%(no%) 4120 ScrapBlk%!4=icon% 4121 SYS "Wimp_GetIconState",,ScrapBlk% 4122 flags%=ScrapBlk%!24 4123 CASE (flags% AND 3) OF 4124 WHEN 0 : help$+="Non-text, non-sprite" 4125 WHEN 1 : help$+="Text" 4126 WHEN 2 : help$+="Sprite" 4127 WHEN 3 : help$+="Text + Sprite" 4128 ENDCASE 4129 help$+=" icon, " 4130 IF (flags% AND &100) THEN 4131 help$+="Indirected (max. size "+STR$(ScrapBlk%!36)+")|M" 4132 IF (flags% AND 1) THEN 4133 IF ScrapBlk%!32=-1 THEN 4134 help$+="No validation string" 4135 ELSE 4136 help$+="Validation string: '"+$(ScrapBlk%!32)+"'" 4137 ENDIF 4138 ENDIF 4139 ELSE 4140 help$+="Non-indirected|M " 4141 ENDIF 4142 help$+="|MButton type: '"+$(IcButton%+20*((flags%>>12)AND &F)) 4143 help$+="', ESG: "+STR$((flags%>>16)AND &1F) 4144 IF OSversion%>=300 THEN 4145 REM replace "\" with "\\", else !Help (RiscOS 3) thinks it's a token 4146 p%=INSTR(help$,"\") 4147 WHILE p%<>0 4148 help$=LEFT$(help$,p%)+"\"+MID$(help$,p%+1) 4149 p%=INSTR(help$,"\",p%+2) 4150 ENDWHILE 4151 ENDIF 4152ELSE 4153 WinBlk%!0=TemplHandle%(no%) 4154 SYS "Wimp_GetWindowInfo",,WinBlk% 4155 help$+="', Window background|MButton type: '" 4156 help$+=$(WinButton%+20*(((WinBlk%!64)>>12)AND &F))+"'" 4157ENDIF 4158=help$ 4159 4160REM --- schedule the closedown of TemplEd --- 4161DEF PROCprequit(delayed%) 4162PollMask%=PollMask% AND(NOT 1) 4163Quit%=TRUE 4164IF delayed% THEN 4165 REM delayed quit is a workaround for bug in RiscOS 3.1 4166 QuitDeadline%=TIME+60 4167ELSE 4168 QuitDeadline%=TIME 4169ENDIF 4170ENDPROC 4171 4172REM --- send help-request to StrongHelp, for help on a subject --- 4173DEF PROCaskhelp(string$) 4174Blk%!0=256 4175Blk%!12=0 4176Blk%!16=&43B00 4177$(Blk%+20)="Help_Word "+string$+CHR$0 4178SYS "Wimp_SendMessage",17,Blk%,0 4179ENDPROC 4180 4181REM *** procs for saving templates *** 4182 4183DEF PROCsavetemplates(fname$) 4184LOCAL handle%,offset%,no% 4185LOCAL ERROR 4186IF (INSTR(fname$,".")=0) AND (fname$<>"<Wimp$Scrap>") THEN 4187 PROCcomplain(FNmsg_lookup0("ISLF")) 4188ELSE 4189 SYS "Hourglass_On" 4190 PROCsave_init(fname$,NrTemplates%,handle%,offset%) 4191 ON ERROR LOCAL CLOSE #handle% : PROCerror(0) : ENDPROC 4192 FOR no%=0 TO NrTemplates%-1 4193 IF (NOT SavingSelection%) OR (FNiconselected(TemplW%,no%)) THEN 4194 PROCsave_template(no%,handle%,offset%) 4195 ENDIF 4196 NEXT no% 4197 PROCsave_finish(handle%,offset%) 4198 SYS "OS_File",18,fname$,&FEC 4199 SYS "Hourglass_Off" 4200 IF fname$=MainFName$ THEN PROCsetchanged(FALSE) 4201ENDIF 4202SYS "Wimp_CreateMenu",,-1 4203IF QuitAfterSave% THEN PROCprequit(1) 4204ENDPROC 4205 4206DEF PROCsave_init(fname$,nrtempl%,RETURN handle%,RETURN offset%) 4207LOCAL i% 4208Save_IndexOfs%=16 4209FOR i%=0 TO FileIndexSize%-1 4210 FileIndex%?i%=0 4211NEXT i% 4212REM set up translation table for font handles -> internal font handles 4213FOR i%=0 TO 255 4214 Fra%?i%=0 4215NEXT i% 4216Save_NrFonts%=0 4217FileIndex%!0=-1 : REM no fonts (so far) 4218offset%=16+nrtempl%*24+4 : REM skip first part of file (index saved later) 4219handle%=OPENOUT fname$ 4220ENDPROC 4221 4222DEF PROCsave_template(no%,handle%,RETURN offset%) 4223LOCAL nricons%,i%,dataofs%,ib% 4224FileIndex%!(Save_IndexOfs%)=offset% 4225FileIndex%!(Save_IndexOfs%+8)=1 4226$(FileIndex%+Save_IndexOfs%+12)=$(TemplNames%+28*no%) 4227WinBlk%!0=TemplHandle%(no%) 4228SYS "Wimp_GetWindowInfo",,WinBlk% 4229IF PaneFlag%?no% THEN 4230 WinBlk%!32=WinBlk%!32 OR (1<<5) : REM restore 'Pane' flag 4231ENDIF 4232nricons%=WinBlk%!88 4233dataofs%=88+32*nricons% 4234WinBlk%!68=1 : REM reset sprite pointer to Wimp area 4235PROCsave_translate(WinBlk%+60,WinBlk%+76,dataofs%) 4236IF nricons%>0 THEN 4237 FOR i%=0 TO nricons%-1 4238 ib%=WinBlk%+92+i%*32 4239 PROCsave_translate(ib%+16,ib%+20,dataofs%) 4240 IF Save_Unselected% THEN 4241 ib%!16=ib%!16 AND (NOT(1<<21)) 4242 ENDIF 4243 NEXT i% 4244ENDIF 4245SYS "OS_GBPB",1,handle%,WinBlk%+4,88+32*nricons%,offset% TO ,,,,offset% 4246SYS "Wimp_GetWindowInfo",,WinBlk% 4247PROCsave_icon(WinBlk%!(60),WinBlk%+76,handle%,offset%) 4248IF nricons%>0 THEN 4249 FOR i%=0 TO nricons%-1 4250 PROCsave_icon(WinBlk%!(92+i%*32+16),WinBlk%+92+i%*32+20,handle%,offset%) 4251 NEXT i% 4252ENDIF 4253FileIndex%!(Save_IndexOfs%+4)=offset%-FileIndex%!(Save_IndexOfs%) 4254Save_IndexOfs%+=24 4255ENDPROC 4256 4257REM --- translate data in icon block (indirected pointers + font handles) --- 4258DEF PROCsave_translate(flagptr%,data%,RETURN dataofs%) 4259LOCAL flags%,sl%,fhandle%,inthandle% 4260flags%=flagptr%!0 4261IF (flags% AND (1<<23))>0 THEN 4262 REM icon has been deleted - fill with default data 4263 flagptr%!0=&07800001 4264 $(data%)="<Deleted>" 4265ELSE 4266 REM 1. calculate file offset for indirected icon data 4267 IF (flags% AND &100)=&100 THEN 4268 CASE (flags% AND 3) OF 4269 WHEN 0 4270 data%!0=dataofs% : REM default data for non-text,non-sprite icon 4271 dataofs%+=1 : REM empty string, 1 char is terminator 4272 data%!4=-1 4273 WHEN 2 4274 sl%=LEN($(data%!0)) 4275 data%!0=dataofs% 4276 dataofs%+=sl%+1 4277 data%!4=1 : REM reset sprite pointer to Wimp area 4278 WHEN 1,3 4279 sl%=LEN($(data%!0)) 4280 data%!0=dataofs% 4281 dataofs%+=sl%+1 4282 IF data%!4<>-1 THEN 4283 sl%=LEN($(data%!4)) 4284 data%!4=dataofs% 4285 dataofs%+=sl%+1 4286 ENDIF 4287 ENDCASE 4288 ENDIF 4289 REM 2. translate font handle to internal handle 4290 IF flags% AND (1<<6) THEN 4291 fhandle%=flags%>>24 4292 inthandle%=Fra%?fhandle% 4293 IF inthandle%=0 THEN 4294 Save_NrFonts%+=1 4295 inthandle%=Save_NrFonts% 4296 Fra%?fhandle%=inthandle% 4297 ENDIF 4298 flagptr%!0=(flags% AND &FFFFFF) OR (inthandle%<<24) 4299 ENDIF 4300ENDIF 4301ENDPROC 4302 4303REM --- save indirected icon data to file --- 4304DEF PROCsave_icon(flags%,data%,handle%,RETURN offset%) 4305LOCAL sl% 4306ScrapBlk%!0=13 : REM temporary buffer for empty string 4307IF (flags% AND &800100)=&100 THEN 4308 IF flags% AND 3 THEN 4309 sl%=LEN($(data%!0)) 4310 SYS "OS_GBPB",1,handle%,data%!0,sl%+1,offset% TO ,,,,offset% 4311 IF flags% AND 1 THEN 4312 IF data%!4<>-1 THEN 4313 sl%=LEN($(data%!4)) 4314 SYS "OS_GBPB",1,handle%,data%!4,sl%+1,offset% TO ,,,,offset% 4315 ENDIF 4316 ENDIF 4317 ELSE 4318 REM non-text,non-sprite icon - write empty string 4319 SYS "OS_GBPB",1,handle%,ScrapBlk%,1,offset% TO ,,,,offset% 4320 ENDIF 4321ENDIF 4322ENDPROC 4323 4324DEF PROCsave_finish(handle%,offset%) 4325LOCAL i%,j% 4326REM save font data 4327IF Save_NrFonts%>0 THEN 4328 FileIndex%!0=offset% 4329 FOR i%=1 TO Save_NrFonts% 4330 REM find font that got internal handle i% 4331 j%=0 4332 WHILE Fra%?j%<>i% 4333 j%+=1 4334 ENDWHILE 4335 SYS "Font_ReadDefn",j%,FontData%+8 TO ,,FontData%!0,FontData%!4 4336 SYS "OS_GBPB",1,handle%,FontData%,48,offset% TO ,,,,offset% 4337 NEXT i% 4338ENDIF 4339REM save header + index entries 4340SYS "OS_GBPB",1,handle%,FileIndex%,Save_IndexOfs%+4,0 4341CLOSE #handle% 4342ENDPROC 4343 4344REM *** procs for loading and deleting user templates *** 4345 4346DEF PROCtempl_add(name$,wblk%,setextent%) 4347LOCAL no%,nameptr%,spptr%,i% 4348IF NrTemplates%=MaxTemplates% THEN 4349 PROCcomplain(FNmsg_lookup0("MTPX")) 4350ELSE 4351 no%=NrTemplates% 4352 PaneFlag%?no%=(wblk%!32) AND (1<<5) 4353 wblk%!32=(wblk%!32) AND NOT(1<<5) 4354 SYS "Wimp_CreateWindow",,wblk%+4 TO TemplHandle%(no%) 4355 NrTemplates%+=1 4356 ScrapBlk%!0=TemplW% 4357 ScrapBlk%!4=8+TemplW_IconX%*(no% MOD TemplW_Cols%) 4358 ScrapBlk%!12=(ScrapBlk%!4)+(TemplW_IconX%-8)-16*(11-LEN(name$)) 4359 ScrapBlk%!16=-8-TemplW_IconY%*(no% DIV TemplW_Cols%) 4360 ScrapBlk%!8=(ScrapBlk%!16)-(TemplW_IconY%-8) 4361 ScrapBlk%!20=TemplW_IconFlags% 4362 nameptr%=TemplNames%+28*no% 4363 $(nameptr%)=name$ 4364 ScrapBlk%!24=nameptr% 4365 spptr%=TemplNames%+28*no%+14 4366 $(spptr%)=FNwindowicon(wblk%!32,0) 4367 ScrapBlk%!28=spptr% 4368 ScrapBlk%!32=16 4369 SYS "Wimp_CreateIcon",,ScrapBlk% 4370 IF NOT DuplNames% THEN 4371 i%=0 4372 WHILE $(TemplNames%+28*i%)<>name$ 4373 i%+=1 4374 ENDWHILE 4375 IF i%<no% THEN PROCtempl_delete(i%) 4376 ENDIF 4377 IF setextent% THEN PROCsetextent 4378 PROCseticonstate0(TemplW%,NrTemplates%-1,0,0) 4379ENDIF 4380ENDPROC 4381 4382DEF PROCtempl_deleteall 4383LOCAL i% 4384SYS "Hourglass_On" 4385IF NrTemplates%>0 THEN 4386 FOR i%=NrTemplates%-1 TO 0 STEP -1 4387 PROCtempl_delete(i%) 4388 NEXT i% 4389ENDIF 4390PROCsetmainfname("Templates") 4391PROCsetchanged(FALSE) 4392SYS "Hourglass_Off" 4393ENDPROC 4394 4395DEF PROCtempl_delete(no%) 4396LOCAL i%,j%,wasopen%,oldhandle% 4397oldhandle%=TemplHandle%(no%) 4398WinBlk%!0=oldhandle% 4399SYS "Wimp_GetWindowInfo",,WinBlk% 4400PROCiconrelease(WinBlk%!60,WinBlk%+76) 4401IF WinBlk%!88>0 THEN 4402 FOR i%=0 TO (WinBlk%!88-1) 4403 PROCiconrelease(WinBlk%!(92+i%*32+16),WinBlk%+92+i%*32+20) 4404 NEXT i% 4405ENDIF 4406SYS "Wimp_DeleteWindow",,WinBlk% 4407REM update browser window 4408WinBlk%!0=TemplW% 4409SYS "Wimp_GetWindowInfo",,WinBlk% 4410wasopen%=(WinBlk%!32) AND (1<<16) 4411IF no%<(NrTemplates%-1) THEN 4412 REM move data for icons after the one that is deleted 4413 FOR i%=no% TO NrTemplates%-2 4414 ib%=WinBlk%+92+32*i% 4415 FOR j%=0 TO 16 STEP 4 4416 ib%!j%=ib%!(j%+32) 4417 NEXT j% 4418 TemplHandle%(i%)=TemplHandle%(i%+1) 4419 $(TemplNames%+28*i%)=$(TemplNames%+28*(i%+1)) 4420 $(TemplNames%+28*i%+14)=$(TemplNames%+28*(i%+1)+14) 4421 NEXT i% 4422ENDIF 4423WinBlk%!88=WinBlk%!88-1 4424SYS "Wimp_DeleteWindow",,WinBlk% 4425SYS "Wimp_CreateWindow",,WinBlk%+4 TO TemplW% 4426NrTemplates%-=1 4427PROCsetchanged(NrTemplates%>0) 4428PROCredefinebrowser(0) 4429IF wasopen% THEN 4430 WinBlk%!0=TemplW% 4431 SYS "Wimp_GetWindowInfo",,WinBlk% 4432 SYS "Wimp_OpenWindow",,WinBlk% 4433ENDIF 4434IF oldhandle%=IcEd_Win% THEN PROCclosewindow(IcEdW%) 4435IF oldhandle%=WinEd_Win% THEN PROCclosewindow(WinEdW%) 4436IF oldhandle%=LastMenu_Win% THEN LastMenu_Win%=-1 4437IF NrTemplates%=0 THEN PROCclosewindow(StatW%) 4438ENDPROC 4439 4440REM --- adapt extent of browser window to number of templates --- 4441DEF PROCsetextent 4442LOCAL nrrows%,xsize%,titlesize% 4443nrrows%=1+((NrTemplates%-1) DIV TemplW_Cols%) 4444IF nrrows%<2 THEN nrrows%=2 4445IF NrTemplates%=0 THEN 4446 xsize%=8+TemplW_IconX% 4447ELSE 4448 IF NrTemplates% < TemplW_MaxCol% THEN 4449 xsize%=8+NrTemplates%*TemplW_IconX% 4450 ELSE 4451 xsize%=8+TemplW_MaxCol%*TemplW_IconX% 4452 ENDIF 4453ENDIF 4454titlesize%=128+16*LEN($(TemplTbar%)) 4455IF xsize%<titlesize% THEN xsize%=titlesize% 4456ScrapBlk%!0=0 4457ScrapBlk%!4=-8-TemplW_IconY%*nrrows% 4458ScrapBlk%!8=xsize% 4459ScrapBlk%!12=0 4460SYS "Wimp_SetExtent",TemplW%,ScrapBlk% 4461ENDPROC 4462 4463REM --- move icons in browser window to adapt to new window size --- 4464DEF PROCredefinebrowser(reopen%) 4465LOCAL wasopen%,i%,ib%,xsize%,ysize% 4466WinBlk%!0=TemplW% 4467SYS "Wimp_GetWindowInfo",,WinBlk% 4468wasopen%=(WinBlk%!32) AND (1<<16) 4469IF WinBlk%!88>0 THEN 4470 FOR i%=0 TO (WinBlk%!88-1) 4471 ib%=WinBlk%+92+32*i% 4472 xsize%=(TemplW_IconX%-8)-16*(11-LEN($(TemplNames%+i%*28))) 4473 ysize%=ib%!12-ib%!4 4474 ib%!0=8+TemplW_IconX%*(i% MOD TemplW_Cols%) 4475 ib%!8=(ib%!0)+xsize% 4476 ib%!12=-8-TemplW_IconY%*(i% DIV TemplW_Cols%) 4477 ib%!4=(ib%!12)-ysize% 4478 NEXT i% 4479ENDIF 4480SYS "Wimp_DeleteWindow",,WinBlk% 4481SYS "Wimp_CreateWindow",,WinBlk%+4 TO TemplW% 4482PROCsetextent 4483IF reopen% AND wasopen% THEN 4484 WinBlk%!0=TemplW% 4485 SYS "Wimp_GetWindowInfo",,WinBlk% 4486 REM adapt scroll offsets if visible area exceeds work area 4487 IF (WinBlk%!20+(WinBlk%!12-WinBlk%!4))>WinBlk%!52 THEN 4488 WinBlk%!20=WinBlk%!52-(WinBlk%!12-WinBlk%!4) 4489 IF WinBlk%!20<0 THEN 4490 WinBlk%!12=WinBlk%!12+WinBlk%!20 4491 WinBlk%!20=0 4492 ENDIF 4493 ENDIF 4494 IF (WinBlk%!24-(WinBlk%!16-WinBlk%!8))<WinBlk%!48 THEN 4495 WinBlk%!24=WinBlk%!48+(WinBlk%!16-WinBlk%!8) 4496 IF WinBlk%!24>0 THEN 4497 WinBlk%!8=WinBlk%!8+WinBlk%!24 4498 WinBlk%!20=0 4499 ENDIF 4500 ENDIF 4501 SYS "Wimp_OpenWindow",,WinBlk% 4502ENDIF 4503ENDPROC 4504 4505DEF PROCtempl_loadfile(fname$,loadsprites%) 4506LOCAL i%,nr%,name$,handle%,ip%,indirbuf%,sname$ 4507SYS "Hourglass_On" 4508FOR i%=0 TO 255 4509 IF FontUsage%(i%)>0 THEN 4510 REM font in use - make for extra call to Font_LoseFont at end of proc 4511 Fra%?i%=1 4512 ELSE 4513 Fra%?i%=0 4514 ENDIF 4515NEXT i% 4516IF NrTemplates%=0 THEN 4517 IF fname$="<Wimp$Scrap>" THEN 4518 PROCsetmainfname(NewLeafName$) 4519 ELSE 4520 PROCsetmainfname(fname$) 4521 ENDIF 4522ENDIF 4523IF loadsprites% AND (FNleafname(fname$)="Templates") THEN 4524 sname$=FNdirname(fname$)+".Sprites" 4525 IF FNfileexists(sname$) THEN 4526 PROCloadusersprites(sname$) 4527 ENDIF 4528ENDIF 4529indirbuf%=FNheap_get(MaxIndirSize%) 4530IF indirbuf%>0 THEN 4531 handle%=OPENIN fname$ 4532 IF handle%>0 THEN 4533 REM read index of template file to check for oversized templates 4534 SYS "OS_GBPB",3,handle%,FileIndex%,FileIndexSize%,0 4535 CLOSE #handle% 4536 SYS "Wimp_OpenTemplate",,fname$ 4537 ip%=FileIndex%+24 4538 nr%=0 4539 REPEAT 4540 IF ip%!0>MaxTemplateSize% THEN 4541 PROCcomplain(FNmsg_lookup1("TTLB",$(ip%+12))) 4542 ELSE 4543 PROCtempl_load(nr%,name$,indirbuf%,MaxIndirSize%) 4544 IF nr%>0 THEN 4545 PROCtempl_add(name$,WinBlk%,0) 4546 ENDIF 4547 ENDIF 4548 ip%+=24 4549 UNTIL (nr%<=0) OR (NrTemplates%=MaxTemplates%) 4550 SYS "Wimp_CloseTemplate" 4551 IF fname$="<Wimp$Scrap>" THEN 4552 SYS "OS_File",6,fname$ : REM delete Wimp$Scrap file after reading 4553 ENDIF 4554 PROCheap_release(indirbuf%) 4555 PROCsetextent 4556 ENDIF 4557ENDIF 4558FOR i%=0 TO 255 4559 REM neutralise calls of Font_FindFont done by Wimp_LoadTemplate 4560 WHILE Fra%?i%>1 4561 SYS "Font_LoseFont",i% 4562 Fra%?i%-=1 4563 ENDWHILE 4564NEXT i% 4565SYS "Hourglass_Off" 4566PROCopenwindow(TemplW%,3) 4567IF IcInfo_Active% THEN PROCopenwindow(IcInfoW%,4) 4568ENDPROC 4569 4570DEF PROCtempl_load(RETURN nr%,RETURN n$,p%,psize%) 4571LOCAL dx%,dy%,icon%,tb%,ib% 4572LOCAL ERROR 4573ON ERROR LOCAL SYS "Wimp_CloseTemplate" : PROCerror(0) : nr%=0 : ENDPROC 4574n$="*"+STRING$(11,CHR$0) : REM name length must be 12 4575SYS "Wimp_LoadTemplate",,WinBlk%+4,p%,p%+psize%,Fra%,n$,nr% TO ,,,,,n$,nr% 4576IF nr%>0 THEN 4577 REM make sure window origin position is within current screen size 4578 dx%=0 4579 dy%=0 4580 IF WinBlk%!4<0 THEN dx%=-WinBlk%!4 4581 IF WinBlk%!8<0 THEN dy%=-WinBlk%!8 4582 IF WinBlk%!12>ScreenSize_X% THEN dx%=ScreenSize_X%-WinBlk%!12 4583 IF WinBlk%!16>(ScreenSize_Y%-44) THEN dy%=ScreenSize_Y%-44-WinBlk%!16 4584 WinBlk%!4=WinBlk%!4+dx% 4585 WinBlk%!8=WinBlk%!8+dy% 4586 WinBlk%!12=WinBlk%!12+dx% 4587 WinBlk%!16=WinBlk%!16+dy% 4588 WinBlk%!68=UserSprites% : REM set sprite area (CBP pointer) 4589 REM re-allocate indirected data, each field in a separate heap block 4590 IF WinBlk%!32 AND (1<<31) THEN 4591 tb%=WinBlk%!32 AND (1<<26) 4592 ELSE 4593 tb%=WinBlk%!32 AND (1<<0) 4594 ENDIF 4595 IF tb% THEN 4596 PROCiconrealloc(WinBlk%+60,WinBlk%+76) : REM realloc title bar icon 4597 PROCicon_setspritearea(WinBlk%!60,WinBlk%+76,UserSprites%) 4598 ELSE 4599 REM no title bar: fill data with default 4600 WinBlk%!60=&3D 4601 $(WinBlk%+76)="<Untitled>" 4602 ENDIF 4603 IF (WinBlk%!88)>0 THEN 4604 FOR icon%=0 TO (WinBlk%!88)-1 4605 ib%=WinBlk%+92+icon%*32 4606 PROCiconrealloc(ib%+16,ib%+20) 4607 REM set sprite pointers (indirected sprite-only icons) 4608 PROCicon_setspritearea(ib%!16,ib%+20,UserSprites%) 4609 NEXT icon% 4610 ENDIF 4611ENDIF 4612ENDPROC 4613 4614REM --- sort templates on names (case-insensitive) --- 4615DEF PROCtempl_sort 4616LOCAL i%,j%,index%,candidate%,candname$,name$ 4617i%=0 : REM first <i%> templates are sorted 4618WHILE i%<(NrTemplates%-1) 4619 REM find template with lowest name 4620 candidate%=i% 4621 candname$=FNupcase($(TemplNames%+i%*28)) 4622 FOR j%=i%+1 TO (NrTemplates%-1) 4623 name$=FNupcase($(TemplNames%+j%*28)) 4624 IF name$<candname$ THEN 4625 candidate%=j% 4626 candname$=name$ 4627 ENDIF 4628 NEXT j% 4629 REM swap template data 4630 FOR j%=0 TO (28-4) STEP 4 4631 SWAP TemplNames%!(i%*28+j%),TemplNames%!(candidate%*28+j%) 4632 NEXT j% 4633 SWAP TemplHandle%(i%),TemplHandle%(candidate%) 4634 SWAP PaneFlag%?i%,PaneFlag%?candidate% 4635 i%+=1 4636ENDWHILE 4637ENDPROC 4638 4639REM *** procs for reading and sorting selections *** 4640 4641REM --- get list of selected icons and count them --- 4642DEF PROCsel_get(window%) 4643SYS "Wimp_WhichIcon",window%,SelBlk%,(1<<21)+(1<<23),1<<21 4644NrSelected%=0 4645WHILE SelBlk%!(4*NrSelected%)<>-1 4646 NrSelected%+=1 4647ENDWHILE 4648ENDPROC 4649 4650REM --- select all icons --- 4651DEF PROCsel_all(window%) 4652LOCAL i% 4653REM get all icons that are not selected nor deleted 4654SYS "Wimp_WhichIcon",window%,SelBlk%,(1<<21)+(1<<23),0 4655i%=0 4656WHILE SelBlk%!i%<>-1 4657 PROCselecticon(window%,SelBlk%!i%,1) 4658 i%+=4 4659ENDWHILE 4660ENDPROC 4661 4662REM --- unselect all icons (except, maybe, for one icon) --- 4663DEF PROCsel_clear(window%,except%) 4664LOCAL i% 4665SYS "Wimp_WhichIcon",window%,SelBlk%,1<<21,1<<21 4666i%=0 4667WHILE SelBlk%!i%<>-1 4668 IF SelBlk%!i%<>except% THEN PROCselecticon(window%,SelBlk%!i%,0) 4669 i%+=4 4670ENDWHILE 4671NrSelected%=0 4672ENDPROC 4673 4674REM --- sort icon selection (assumes selection present in SelBlk%) --- 4675DEF PROCsel_sort(window%,key1%,max1%,dir1%,key2%,max2%,dir2%) 4676REM if key=0 then sort on horizontal coordinates, else vertical 4677REM if max=0 then sort on minimum coordinates, else maximum 4678REM if dir=0 then sort in descending order, else ascending 4679LOCAL i%,j%,index1%,index2%,ib% 4680LOCAL value1%,value2%,candidate%,bestsofar1%,bestsofar2%,better% 4681i%=0 : REM first <i%> icons in selection are sorted 4682IF key1%=0 THEN 4683 index1%=0 4684ELSE 4685 index1%=4 4686ENDIF 4687IF max1% THEN index1%+=8 4688IF key2%=0 THEN 4689 index2%=0 4690ELSE 4691 index2%=4 4692ENDIF 4693IF max2% THEN index2%+=8 4694WinBlk%!0=window% 4695SYS "Wimp_GetWindowInfo",,WinBlk% 4696WHILE i%<(NrSelected%-1) 4697 REM find icon with smallest/highest value for coordinate 4698 candidate%=i% 4699 ib%=WinBlk%+92+32*(SelBlk%!(4*i%)) 4700 bestsofar1%=ib%!(index1%) 4701 bestsofar2%=ib%!(index2%) 4702 FOR j%=i%+1 TO (NrSelected%-1) 4703 ib%=WinBlk%+92+32*(SelBlk%!(4*j%)) 4704 value1%=ib%!(index1%) 4705 value2%=ib%!(index2%) 4706 IF bestsofar1%=value1% THEN 4707 REM look at second sort key 4708 IF dir2% THEN 4709 better%=(value2%<bestsofar2%) 4710 ELSE 4711 better%=(value2%>bestsofar2%) 4712 ENDIF 4713 ELSE 4714 IF dir1% THEN 4715 better%=(value1%<bestsofar1%) : REM looking for lowest value 4716 ELSE 4717 better%=(value1%>bestsofar1%) : REM looking for highest value 4718 ENDIF 4719 ENDIF 4720 IF better% THEN 4721 candidate%=j% 4722 bestsofar1%=value1% 4723 bestsofar2%=value2% 4724 ENDIF 4725 NEXT j% 4726 REM swap icons in selection sequence 4727 SWAP SelBlk%!(4*candidate%),SelBlk%!(4*i%) 4728 i%+=1 4729ENDWHILE 4730ENDPROC 4731 4732REM --- calculate coords of box surrounding selected icons --- 4733DEF PROCsel_box(window%,RETURN xmin%,RETURN ymin%,RETURN xmax%,RETURN ymax%) 4734REM assume selection present in SelBlk% 4735LOCAL i% 4736ScrapBlk%!0=window% 4737ScrapBlk%!4=SelBlk%!0 4738SYS "Wimp_GetIconState",,ScrapBlk% 4739xmin%=ScrapBlk%!8 4740ymin%=ScrapBlk%!12 4741xmax%=ScrapBlk%!16 4742ymax%=ScrapBlk%!20 4743FOR i%=0 TO NrSelected%-1 4744 ScrapBlk%!4=SelBlk%!(4*i%) 4745 SYS "Wimp_GetIconState",,ScrapBlk% 4746 IF xmin%>ScrapBlk%!8 THEN xmin%=ScrapBlk%!8 4747 IF ymin%>ScrapBlk%!12 THEN ymin%=ScrapBlk%!12 4748 IF xmax%<ScrapBlk%!16 THEN xmax%=ScrapBlk%!16 4749 IF ymax%<ScrapBlk%!20 THEN ymax%=ScrapBlk%!20 4750NEXT i% 4751ENDPROC 4752 4753REM *** setup procs *** 4754 4755DEF PROCsetup_default 4756IcInfo_Active%=TRUE 4757DuplNames%=TRUE 4758Hatch%=TRUE 4759SupportInterface%=FALSE 4760Grid_SizeLock%=TRUE 4761Grid_SizeX%=2 4762Grid_SizeY%=4 4763Grid_PosLock%=FALSE 4764Grid_PosX%=2 4765Grid_PosY%=4 4766Save_Unselected%=FALSE 4767DeleteOutside%=FALSE 4768TrapDclick%=TRUE 4769SupportAEH%=FALSE 4770ENDPROC 4771 4772DEF PROCsetup_load 4773LOCAL f% 4774LOCAL ERROR 4775f%=OPENIN (ApplDir$+".Options") 4776IF f%=0 THEN 4777 PROCdialogue(5,"","") 4778 PROCsetup_default 4779ELSE 4780 ON ERROR LOCAL CLOSE #f% : PROCerror(0) : PROCsetup_default : ENDPROC 4781 INPUT#f%,IcInfo_Active%,DuplNames%,Hatch%,SupportInterface% 4782 INPUT#f%,Grid_SizeLock%,Grid_SizeX%,Grid_SizeY% 4783 INPUT#f%,Grid_PosLock%,Grid_PosX%,Grid_PosY% 4784 INPUT#f%,Save_Unselected%,DeleteOutside%,TrapDclick%,SupportAEH% 4785 CLOSE #f% 4786ENDIF 4787ENDPROC 4788 4789DEF PROCsetup_save 4790LOCAL f% 4791LOCAL ERROR 4792f%=OPENOUT (ApplDir$+".Options") 4793ON ERROR LOCAL IF f%<>0 THEN CLOSE #f% : PROCerror(0) : ENDPROC 4794PRINT#f%,IcInfo_Active%,DuplNames%,Hatch%,SupportInterface% 4795PRINT#f%,Grid_SizeLock%,Grid_SizeX%,Grid_SizeY% 4796PRINT#f%,Grid_PosLock%,Grid_PosX%,Grid_PosY% 4797PRINT#f%,Save_Unselected%,DeleteOutside%,TrapDclick%,SupportAEH% 4798CLOSE #f% 4799ENDPROC 4800 4801REM *** procs for statistics window *** 4802 4803DEF PROCstat_fillwin 4804LOCAL type%,wasopen%,ysize%,maxwdef%,totindsize%,i%,wdef%,indsize%,j%,ib% 4805SYS "Hourglass_On" 4806PROCsel_get(StatW%) 4807IF SelBlk%!0=2 THEN 4808 type%=2 : REM numbers in hexadecimal 4809ELSE 4810 type%=1 : REM decimal 4811ENDIF 4812WinBlk%!0=StatW% 4813SYS "Wimp_GetWindowInfo",,WinBlk% 4814wasopen%=(WinBlk%!32) AND (1<<16) 4815SYS "Wimp_DeleteWindow",,WinBlk% 4816WinBlk%!88=15 4817ysize%=204+NrTemplates%*40 : REM set extent 4818WinBlk%!8=WinBlk%!16-WinBlk%!24-ysize% 4819WinBlk%!48=-ysize% 4820SYS "Wimp_CreateWindow",,WinBlk%+4 TO StatW% 4821WinBlk%!0=StatW% 4822PROClinkicontext(25,WinBlk%,5) : REM number of templates 4823PROClinkicontext(22,WinBlk%,7) : REM largest window definition 4824PROClinkicontext(23,WinBlk%,9) : REM total size of indirected data 4825maxwdef%=0 4826totindsize%=0 4827FOR i%=0 TO NrTemplates%-1 4828 WinBlk%!0=TemplHandle%(i%) 4829 SYS "Wimp_GetWindowInfo",,WinBlk% 4830 wdef%=88+32*WinBlk%!88 4831 indsize%=FNstat_calcindirsize(WinBlk%!60,WinBlk%+76) 4832 IF WinBlk%!88>0 THEN 4833 FOR j%=0 TO (WinBlk%!88-1) 4834 ib%=WinBlk%+92+32*j% 4835 indsize%+=FNstat_calcindirsize(ib%!16,ib%+20) 4836 NEXT j% 4837 ENDIF 4838 PROCstat_createicon(10,$(TemplNames%+i%*28),i%) 4839 PROCstat_createicon(11,FNstat_num2str(WinBlk%!88,type%),i%) 4840 PROCstat_createicon(12,FNstat_num2str(wdef%,type%),i%) 4841 PROCstat_createicon(13,FNstat_num2str(indsize%,type%),i%) 4842 PROCstat_createicon(14,FNstat_num2str(wdef%+indsize%,type%),i%) 4843 wdef%+=indsize% 4844 IF maxwdef%<wdef% THEN maxwdef%=wdef% 4845 totindsize%+=indsize% 4846NEXT i% 4847PROCseticontext(25,STR$(NrTemplates%)) 4848PROCseticontext(22,FNstat_num2str(maxwdef%,type%)) 4849PROCseticontext(23,FNstat_num2str(totindsize%,type%)) 4850IF wasopen% THEN 4851 PROCopenwindow(StatW%,0) 4852ELSE 4853 PROCopenwindow(StatW%,1) 4854ENDIF 4855SYS "Hourglass_Off" 4856ENDPROC 4857 4858REM --- calculate size of indirected data needed for an icon --- 4859DEF FNstat_calcindirsize(flags%,data%) 4860LOCAL size% 4861IF (flags% AND &800100)=&100 THEN 4862 size%=data%!8 4863 IF (flags% AND 1) AND (data%!4<>-1) THEN 4864 size%=size%+LEN($(data%!4))+1 4865 ENDIF 4866ELSE 4867 size%=0 4868ENDIF 4869=size% 4870 4871REM --- create an icon in the stats window --- 4872DEF PROCstat_createicon(copyfrom%,s$,line%) 4873ScrapBlk%!0=StatW% 4874ScrapBlk%!4=copyfrom% 4875SYS "Wimp_GetIconState",,ScrapBlk% 4876REM create icon that is identical, except for string, colours and Y coord 4877ScrapBlk%!12=ScrapBlk%!12-4-40*(line%+1) 4878ScrapBlk%!20=ScrapBlk%!12+40 4879ScrapBlk%!24=(ScrapBlk%!24 AND &FFFFFF) OR &18000000 4880ScrapBlk%!24=ScrapBlk%!24 AND (NOT &100) : REM icon must be not-indirected 4881$(ScrapBlk%+28)=s$ 4882ScrapBlk%!4=StatW% 4883SYS "Wimp_CreateIcon",,ScrapBlk%+4 4884ENDPROC 4885 4886REM --- convert a number to a string (hex or decimal) --- 4887DEF FNstat_num2str(num%,type%) 4888LOCAL s$ 4889IF type%=1 THEN 4890 s$=STR$(num%) 4891ELSE 4892 s$="&"+STR$~(num%) 4893ENDIF 4894=s$ 4895 4896REM *** procs for handling outline fonts *** 4897 4898DEF PROCfont_lose(font%) 4899FontUsage%(font%)-=1 4900IF FontUsage%(font%)=0 THEN 4901 SYS "Font_LoseFont",font% 4902ENDIF 4903ENDPROC 4904 4905DEF PROCfont_loseall 4906LOCAL i%,j% 4907FOR i%=0 TO 255 4908 IF FontUsage%(i%)<>0 THEN 4909 SYS "Font_LoseFont",i% 4910 ENDIF 4911NEXT i% 4912ENDPROC 4913 4914REM --- get font name and size from a font handle --- 4915DEF PROCfont_getinfo(fhandle%,RETURN name$,RETURN xsize,RETURN ysize) 4916LOCAL xsize16%,ysize16% 4917SYS "Font_ReadDefn",fhandle%,FontData% TO ,,xsize16%,ysize16% 4918name$=$(FontData%) 4919xsize=xsize16%/16 4920ysize=ysize16%/16 4921ENDPROC 4922 4923REM *** procs for creating icons in user templates *** 4924 4925REM --- build the 'Create icon' submenu --- 4926DEF PROCstandardiconmenu 4927LOCAL i% 4928REM get list of "name" icons (ESG=31) 4929SYS "Wimp_WhichIcon",StdIconW%,SelBlk%,31<<16,31<<16 4930NrStdIcons%=0 4931WHILE SelBlk%!(4*NrStdIcons%)<>-1 4932 NrStdIcons%+=1 4933ENDWHILE 4934IF NrStdIcons%=0 THEN 4935 StdIconMenu%=-1 4936ELSE 4937 SYS "MenuUtil_New",,"Create icon" TO StdIconMenu% 4938 ScrapBlk%!0=StdIconW% 4939 FOR i%=0 TO NrStdIcons%-1 4940 ScrapBlk%!4=SelBlk%!(4*i%) 4941 SYS "Wimp_GetIconState",,ScrapBlk% 4942 SYS "MenuUtil_Add",,ScrapBlk%!28 4943 NEXT i% 4944ENDIF 4945ENDPROC 4946 4947DEF PROCcreatestandardicon(name$,window%,xpos%,ypos%) 4948LOCAL i%,j%,last%,dx%,dy%,handle% 4949REM scan "name" icons to check which was chosen 4950SYS "Wimp_WhichIcon",StdIconW%,SelBlk%,31<<16,31<<16 4951ScrapBlk%!0=StdIconW% 4952i%=0 4953REPEAT 4954 j%=SelBlk%!(4*i%) 4955 ScrapBlk%!4=j% 4956 SYS "Wimp_GetIconState",,ScrapBlk% 4957 i%+=1 4958UNTIL ($(ScrapBlk%!28)=name$) OR (SelBlk%!(4*i%)=-1) 4959REM copy all icons until next "name" icon 4960IF SelBlk%!(4*i%)=-1 THEN 4961 last%=LastStdIcon% 4962ELSE 4963 last%=SelBlk%!(4*i%)-1 4964ENDIF 4965j%+=1 4966ScrapBlk%!0=StdIconW% 4967ScrapBlk%!4=j% 4968SYS "Wimp_GetIconState",,ScrapBlk% 4969dx%=xpos%-ScrapBlk%!8 4970dy%=ypos%-ScrapBlk%!12 4971WHILE j%<=last% 4972 ScrapBlk%!0=StdIconW% 4973 ScrapBlk%!4=j% 4974 SYS "Wimp_GetIconState",,ScrapBlk% 4975 ScrapBlk%!4=window% 4976 ScrapBlk%!8=ScrapBlk%!8+dx% 4977 ScrapBlk%!12=ScrapBlk%!12+dy% 4978 ScrapBlk%!16=ScrapBlk%!16+dx% 4979 ScrapBlk%!20=ScrapBlk%!20+dy% 4980 PROCiconrealloc(ScrapBlk%+24,ScrapBlk%+28) 4981 handle%=FNcreateicon(ScrapBlk%+4) 4982 j%+=1 4983ENDWHILE 4984ENDPROC 4985 4986REM *** procs for calculating & setting the minimum size of an icon *** 4987 4988DEF PROCminimizeiconsel(window%,default%,dim%) 4989LOCAL i%,xsize%,ysize%,handle% 4990PROCsel_get(window%) 4991IF (NrSelected%=0) AND (default%>=0) THEN 4992 SelBlk%!0=default% 4993 NrSelected%=1 4994ENDIF 4995IF NrSelected%>0 THEN 4996 FOR i%=0 TO NrSelected%-1 4997 PROCminiconsize(window%,SelBlk%!(4*i%),xsize%,ysize%) 4998 IconBlk%!0=window% 4999 IconBlk%!4=SelBlk%!(4*i%) 5000 SYS "Wimp_GetIconState",,IconBlk% 5001 IF dim%<>2 THEN IconBlk%!16=IconBlk%!8+xsize% 5002 IF dim%<>1 THEN IconBlk%!20=IconBlk%!12+ysize% 5003 handle%=FNredefineicon(window%,SelBlk%!(4*i%),IconBlk%) 5004 NEXT i% 5005ENDIF 5006ENDPROC 5007 5008DEF PROCminiconsize(window%,icon%,RETURN minx%,RETURN miny%) 5009LOCAL sparea%,flags%,data%,text%,sprite%,indir% 5010LOCAL sminx%,sminy%,tminx%,tminy%,p%,val$,sname$,t$ 5011LOCAL xmin%,ymin%,xmax%,ymax% 5012LOCAL l$,lspace%,lines%,b$ 5013WinBlk%!0=window% 5014SYS "Wimp_GetWindowInfo",,WinBlk% 5015sparea%=WinBlk%!68 5016ScrapBlk%!0=window% 5017ScrapBlk%!4=icon% 5018SYS "Wimp_GetIconState",,ScrapBlk% 5019flags%=ScrapBlk%!24 5020data%=ScrapBlk%+28 5021text%=(flags% AND 1)>0 5022sprite%=(flags% AND 2)>0 5023indir%=(flags% AND &100)>0 5024IF indir% AND text% AND (data%!4<>-1) THEN 5025 val$=$(data%!4) 5026ENDIF 5027IF sprite% THEN 5028 IF indir% THEN 5029 IF text% THEN 5030 REM search validation string for sprite name 5031 sname$=FNvalidationcommand(val$,"S") 5032 p%=INSTR(sname$,",") 5033 IF p%>0 THEN 5034 sname$=MID$(sname$,2,p%-2) 5035 ELSE 5036 sname$=MID$(sname$,2) 5037 ENDIF 5038 ELSE 5039 sname$=$(data%!0) 5040 sparea%=data%!4 5041 ENDIF 5042 ELSE 5043 sname$=$(data%) 5044 ENDIF 5045 IF LEN(sname$)>0 THEN PROCspritesize(sname$,sparea%,sminx%,sminy%) 5046ENDIF 5047IF text% THEN 5048 IF indir% THEN 5049 t$=$(data%!0) 5050 ELSE 5051 t$=$(data%) 5052 ENDIF 5053 IF flags% AND (1<<6) THEN 5054 REM calc size of string printed as outline font 5055 SYS "Font_SetFont",(flags%>>24) 5056 SYS "Font_StringBBox",,t$ TO ,xmin%,ymin%,xmax%,ymax% 5057 SYS "Font_ConverttoOS",,xmax%-xmin%,ymax%-ymin% TO ,tminx%,tminy% 5058 tminx%+=2*PixToOS_X% 5059 tminy%+=2*PixToOS_Y% 5060 ELSE 5061 tminx%=16*LEN(t$)+4 : REM system font 5062 tminy%=32 5063 ENDIF 5064 l$=FNvalidationcommand(val$,"L") 5065 IF LEN(l$)>0 THEN 5066 REM multi-line text - calc Y size, X size fixed 5067 lspace%=VAL(MID$(l$,2)) 5068 IF lspace%=0 THEN lspace%=40 5069 lines%=(tminx%-1) DIV (ScrapBlk%!16-ScrapBlk%!8) 5070 tminx%=ScrapBlk%!16-ScrapBlk%!8 5071 tminy%=lspace%*(lines%+1) 5072 ENDIF 5073 IF LEN(t$)=0 THEN 5074 tminx%=ScrapBlk%!16-ScrapBlk%!8 : REM empty string - don't change X size 5075 ENDIF 5076ENDIF 5077IF flags% AND (1<<4) THEN 5078 minx%=sminx%+tminx% 5079 IF text% AND sprite% THEN minx%+=6 5080 IF sminy%>tminy% THEN miny%=sminy% ELSE miny%=tminy% 5081ELSE 5082 IF sminx%>tminx% THEN minx%=sminx% ELSE minx%=tminx% 5083 miny%=sminy%+tminy% 5084ENDIF 5085IF flags% AND (1<<2) THEN 5086 REM add space taken by border 5087 b$=FNvalidationcommand(val$,"R") 5088 IF LEN(b$)=0 THEN 5089 minx%+=16 : REM no border command - "flat" border 5090 miny%+=16 5091 ELSE 5092 REM found command for 3-D border 5093 CASE VAL(MID$(b$,2)) OF 5094 WHEN 3,4 5095 minx%+=24 5096 miny%+=24 5097 WHEN 6,7 5098 minx%+=32 5099 miny%+=32 5100 OTHERWISE 5101 minx%+=16 5102 miny%+=16 5103 ENDCASE 5104 ENDIF 5105ENDIF 5106IF minx%<16 THEN minx%=16 5107IF miny%<16 THEN miny%=16 5108ENDPROC 5109 5110REM --- return size of a sprite in Os units --- 5111DEF PROCspritesize(name$,area%,RETURN xsize%,RETURN ysize%) 5112LOCAL spmode%,xpixels%,ypixels% 5113IF area%=1 THEN 5114 SYS "XWimp_SpriteOp",40,,name$ TO ,,,xpixels%,ypixels%,,spmode%;flg% 5115ELSE 5116 SYS "OS_SpriteOp",296,area%,name$ TO ,,,xpixels%,ypixels%,,spmode%;flg% 5117ENDIF 5118IF (flg% AND 1) THEN 5119 xsize%=0 5120 ysize%=0 5121ELSE 5122 xsize%=xpixels%<<FNmodevar(spmode%,4) 5123 ysize%=ypixels%<<FNmodevar(spmode%,5) 5124ENDIF 5125ENDPROC 5126 5127REM --- search validation string for a certain command and return it --- 5128DEF FNvalidationcommand(v$,cmd$) 5129LOCAL upc$,loc$,p% 5130upc$=CHR$(ASC(cmd$) AND &DF) 5131loc$=CHR$(ASC(cmd$) OR &20) 5132WHILE (LEFT$(v$,1)<>upc$) AND (LEFT$(v$,1)<>loc$) AND (LEN(v$)>0) 5133 p%=INSTR(v$,";") 5134 IF (p%>1) AND (MID$(v$,p%-1,1)="\") THEN p%=INSTR(v$,";",p%+1) 5135 IF p%=0 THEN 5136 v$="" 5137 ELSE 5138 v$=MID$(v$,p%+1) 5139 ENDIF 5140ENDWHILE 5141p%=INSTR(v$,";") 5142IF p%>0 THEN v$=LEFT$(v$,p%-1) 5143=v$ 5144 5145REM *** procs for handling messages in the Messages file *** 5146 5147DEF PROCmsg_init 5148LOCAL fname$,flags%,size%,buf% 5149fname$=ApplDir$+".Messages" 5150SYS "MessageTrans_FileInfo",,fname$ TO flags%,,size% 5151IF flags% AND 1 THEN 5152 buf%=0 5153ELSE 5154 buf%=FNheap_get(size%) 5155ENDIF 5156MsgDesc%=FNheap_get(17+LEN(fname$)) 5157$(MsgDesc%+16)=fname$ 5158SYS "MessageTrans_OpenFile",MsgDesc%,MsgDesc%+16,buf% 5159ENDPROC 5160 5161DEF PROCmsg_exit 5162SYS "MessageTrans_CloseFile",MsgDesc% 5163MsgDesc%=0 5164ENDPROC 5165 5166DEF FNmsg_lookup0(token$) 5167LOCAL result% 5168SYS "MessageTrans_Lookup",MsgDesc%,token$,0 TO ,,result% 5169=FNstr(result%) 5170 5171DEF FNmsg_lookup1(token$,param$) 5172LOCAL result% 5173SYS "MessageTrans_Lookup",MsgDesc%,token$,ScrapBlk%,&100,param$ TO ,,result% 5174=FNstr(result%) 5175 5176DEF FNmsg_lookup2(token$,param1$,param2$) 5177LOCAL result% 5178SYS "MessageTrans_Lookup",MsgDesc%,token$,ScrapBlk%,&100,param1$,param2$ TO ,,result% 5179=FNstr(result%) 5180 5181REM *** procs for loading and using user-sprites *** 5182 5183REM --- load a sprite file and let all templates use the sprites 5184DEF PROCloadusersprites(fname$) 5185LOCAL no% 5186IF UserSprites%<>1 THEN PROCheap_release(UserSprites%) 5187IF fname$="" THEN 5188 UserSprites%=1 5189ELSE 5190 UserSprites%=FNloadspritefile(fname$) 5191ENDIF 5192IF NrTemplates%>0 THEN 5193 FOR no%=0 TO NrTemplates%-1 5194 PROCwindow_setspritearea(TemplHandle%(no%),UserSprites%) 5195 NEXT no% 5196ENDIF 5197IF UserSprites%=1 THEN 5198 SpriteFName$="" 5199ELSE 5200 SpriteFName$=fname$ 5201ENDIF 5202ENDPROC 5203 5204DEF FNloadspritefile(fname$) 5205LOCAL ftype%,fsize%,area% 5206SYS "OS_File",17,fname$ TO ftype%,,,,fsize% 5207IF ftype%<>1 THEN 5208 PROCcomplain(FNmsg_lookup1("NOSF",fname$)) 5209 area%=1 5210ELSE 5211 fsize%+=16 5212 area%=FNheap_get(fsize%) 5213 IF area%>0 THEN 5214 area%!0=fsize% 5215 area%!8=16 5216 SYS "OS_SpriteOp",256+9,area% 5217 SYS "OS_SpriteOp",256+10,area%,fname$ 5218 ELSE 5219 area%=1 : REM couldn't allocate space in heap - reset to Wimp area 5220 ENDIF 5221ENDIF 5222=area% 5223 5224DEF PROCwindow_setspritearea(handle%,area%) 5225LOCAL icon%,ib% 5226WinBlk%!0=handle% 5227SYS "Wimp_GetWindowInfo",,WinBlk% 5228WinBlk%!68=area% : REM CBP pointer 5229PROCicon_setspritearea(WinBlk%!60,WinBlk%+76,area%) 5230IF (WinBlk%!88)>0 THEN 5231 FOR icon%=0 TO (WinBlk%!88)-1 5232 ib%=WinBlk%+92+icon%*32 5233 PROCicon_setspritearea(ib%!16,ib%+20,area%) 5234 NEXT icon% 5235ENDIF 5236handle%=FNredefinewindow(WinBlk%,0) 5237ENDPROC 5238 5239DEF PROCicon_setspritearea(flags%,data%,area%) 5240IF ((flags% AND 3)=2) AND ((flags% AND &100)<>0) THEN 5241 data%!4=area% 5242ENDIF 5243ENDPROC 5244
"� ><TemplEd$Dir>.Extras.Source >� This application is FreeWare. (c) 1992,1993 Dick Alstein Appl$="TemplEd" Version$="1.24 (12-Sep-93)" @� The following maximum values can be set to suit your needs *� (You may need to adapt the WimpSlot) 7MaxTemplates%=100 : � max number of user templates AMaxIcons%=200 : � max number of icons in a user template GMaxIndirSize%=8000 : � space for indirected data (only for loading) .� *** main program and top-level procs *** Quit%=� �init � � �error(0) 2PollMask%=(1<<0)+(1<<4)+(1<<5)+(1<<11)+(1<<12) � - ș "Wimp_Poll",PollMask%,Blk% � reason% Ȏ reason% � � 0 , ș "Wimp_GetPointerInfo",,PtrInfo% 1 � (PtrInfo%!8>0) � Mbuttons_Released% � * � signal press of mouse button Mbuttons_Released%=� N �click(PtrInfo%!0,PtrInfo%!4,PtrInfo%!8,PtrInfo%!12,PtrInfo%!16,0) � � PtrInfo%!8=0 � " Mbuttons_Released%=� Drag_Type%=-1 " TimedDrag_Enabled%=� � !G � button still pressed - test if OK to start "timed drag" "H � �(PtrInfo%!0-ThisClickX%)+�(PtrInfo%!4-ThisClickY%)>16 � #@ TimedDrag_Enabled%=� : � moved mouse since click $ � %$ � TimedDrag_Enabled% � &I � ((�-ThisClickTime%)>DragInterval%) � (PtrInfo%!16>=0) � '& ș "Wimp_DragBox",-1 (D �starticondrag(PtrInfo%!8,PtrInfo%!12,PtrInfo%!16) )& TimedDrag_Enabled%=� * � + � , � - � . � 1 : �redraw(Blk%!0) / � 2 0 � (Blk%!0=TemplW%)� 1/ c%=(Blk%!12-Blk%!4) � TemplW_IconX% 2 � c%<1 � c%=1 3 � TemplW_Cols%<>c% � 4 TemplW_Cols%=c% 5! �redefinebrowser(0) 6 Blk%!0=TemplW% 7 � 8 � 9$ ș "Wimp_OpenWindow",,Blk% : � Blk%!0=OptionsW% � ; �openpane(OptPaneW%) < � = � 3 >$ no%=�whichtemplate(Blk%!0) ? � no%>=0 � @ �closetemplate(no%) A � B � � (� -1) � C" �closewindow(Blk%!0) D � E. ș "Wimp_GetPointerInfo",,PtrInfo% FD � (Blk%!0=TemplW%)�(PtrInfo%!8=1)�(�MainFName$,".")>0) � GG ș "Wimp_StartTask","Filer_OpenDir "+�dirname(MainFName$) H � I � J< � 6 : �click(Blk%!0,Blk%!4,Blk%!8,Blk%!12,Blk%!16,�) K7 � 7 : �finishdrag(Blk%!0,Blk%!4,Blk%!8,Blk%!12) L) � 8 : �key(Blk%!0,Blk%!4,Blk%!24) M � 9 : �menuselect(Blk%) N � 17,18 : �receive(Blk%) O � P � IcInfo_Active% � Q �icinf_update R � S � Quit% � (�>=QuitDeadline%) T�font_loseall U�registeraeh(�) V �msg_exit Wș "Wimp_CloseDown" X� Y Z� �init [� cmdstr%,p%,fn$,i%,mask% \� ErrBlk% &100 ]Cș "Wimp_Initialise",200,&4B534154,Appl$ � OSversion%,ThisTask% ^� � �error(1) _� VarBuf% 256 `'ApplDir$=�readvarval("TemplEd$Dir") a,�heap_init : � initialize heap b/�msg_init : � load Messages file c%� lower bounds for Max* variables d'� MaxTemplates%<4 � MaxTemplates%=4 e!� MaxIcons%<64 � MaxIcons%=64 f/� MaxIndirSize%<&1000 � MaxIndirSize%=&1000 g+� declaration of data blocks and arrays h� IconBlk% 40 iSelBlkSize%=4*MaxIcons% jB� SelBlk% SelBlkSize% : � block to hold list of selected icons k� SelBlk2% SelBlkSize% lB� ScrapBlk% &100 : � block to hold various temporary data m<� Blk% &100 : � for data returned by Wimp_Poll n3� PtrInfo% 20 : � to store pointer info oE� NumValidStr% 8 : � validation string for entering a number p$NumValidStr%="A0-9" qB� FpNumValidStr% 8 : � for entering a floating point number r$FpNumValidStr%="A0-9." sE� TemplNames% MaxTemplates%*28 : � to store name and name of icon tD� TemplHandle%(MaxTemplates%) : � handles of the user templates uJ� PaneFlag% MaxTemplates% : � 'Pane' flags are kept in this array vINrTemplates%=0 : � current number of user templates wKTemplatesOpen%=0 : � number of templates currently open x@MaxTemplateSize%=92+32*MaxIcons% : � max size for a template yHMaxTemplateSize%+=MaxIndirSize% : � extra space for indirected data z� WinBlk% MaxTemplateSize% {NSysIndirSize%=&1800 : � size of indirected data for system windows |� IndirBlk% SysIndirSize% }@IndirEnd%=IndirBlk% : � pointer to first unused byte ~HIndirFree%=SysIndirSize% : � remaining free space after IndirEnd% C� IconText%(32) : � pointers to indirected text icons �>� IconTextWhdl%(32) : � corresponding window handles �<� IconTextIhdl%(32) : � corresponding icon handles �I� CselText%(12) : � pointers to text in colour-select boxes �>� CselTextWhdl%(12) : � corresponding window handles �<� CselTextIhdl%(12) : � corresponding icon handles �A� IcButton% 20*16 : � names of button types for icons �C� WinButton% 20*16 : � names of button types for windows �� i%=0 � 15 �3 $(IcButton%+20*i%)=�msg_lookup0("ICBT"+�(i%)) �4 $(WinButton%+20*i%)=�msg_lookup0("WNBT"+�(i%)) �� i% �?� WinEd_Col%(6) : � colours in the colour-select boxes �J� InverseColour%(15) : � to display text in colour boxes / colour menu �� i%=0 � 15 � Ȏ i% � � � 0,1,2,3,9,12,14 � InverseColour%(i%)=7 � � InverseColour%(i%)=0 � � �� i% �7� DragBlk% 40 : � data block for starting drags �(FileIndexSize%=16+MaxTemplates%*24+4 �E� FileIndex% FileIndexSize% : � contains index of a template file �@� FontUsage%(256) : � counts number of icons that use a font �K� Fra% 256 : � font reference array for loading+saving templates �6� FontData% 64 : � buffer for reading font data �J� Mouse_Ptt% 16 : � pixel translation table for pointer changes �!� initialise global variables �/IcEd_Win%=-1000 : � invalid values �IcEd_Icon%=-1000 �WinEd_Win%=-1 �5Mbuttons_Released%=� : � to debounce mouse clicks �?ThisClickTime%=� : � to store data of last mouse click �ThisClickX%=-1000 �ThisClickY%=-1000 �ThisClickButton%=0 �ITimedDrag_Enabled%=� : � can I start "timed drag" from current click? �LDragInterval%=50 : � interval after which "timed drag" can start �JDclickInterval%=50 : � max time between clicks of a double-click �HNextIconNr%=0 : � for semi-automatic renumbering of icons �:LastMenu%=-1 : � handle of last menu shown �FLastMenu_Win%=-31 : � window above which last menu was made �4LastMenu_Icon%=-1 : � icon handle of same �;MainFName$="Templates" : � save all templates as .... �@SelFName$="Selection" : � save template selection as .... �HSavingSelection%=� : � was last save dialogue to save a selection? �BQuitAfterSave%=� : � quit program after current save proc? �FQuitDeadline%=0 : � for "delayed" quit, to avoid Wimp bug �GNewFName$="" : � name of new template file to be loaded �BChangesMade%=� : � have current templates been modified? �KUserSprites%=1 : � sprites in user templates from Wimp area (at first) �BSpriteFName$="" : � name of sprite file if not using Wimp area �CDrag_Type%=-1 : � type of current drag operation (-1 => none) �JSupportAEH%=� : � is in setup, but must exist before loading templates �AEHregistered%=� �� create icon on icon bar �IconBlk%!0=-1 �IconBlk%!4=0 : IconBlk%!8=0 �#IconBlk%!12=68 : IconBlk%!16=68 �IconBlk%!20=&7000301A �$(IconBlk%+24)="!templed" �-ș "Wimp_CreateIcon",,IconBlk% � BarIcon% �� load system sprites �4SysSprites%=�loadspritefile(ApplDir$+".Sprites") �&� initialise font reference arrays �� i%=0 � 255 � Fra%?i%=0 �� i% �?� load system templates and set pointers to indirected data �1ș "Wimp_OpenTemplate",,ApplDir$+".Templates" �?InfoW%=�loadtemplate("Info",WinBlk%,IndirEnd%,IndirFree%,1) �$$(WinBlk%!(92+3*32+20))=Version$ �OTemplW%=�loadtemplate("Templates",WinBlk%,IndirEnd%,IndirFree%,SysSprites%) �DTemplTbar%=WinBlk%!76 : � pointer to text in title bar �$(TemplTbar%)=MainFName$ �i%=WinBlk%+92 �ITemplW_IconX%=i%!8-i%!0 + 8 : � size of an icon in browser window � TemplW_IconY%=i%!12-i%!4 + 8 �2TemplW_IconFlags%=i%!16 : � icon flags �DTemplW_Cols%=(WinBlk%!12-WinBlk%!4) � TemplW_IconX% : � #columns �%� TemplW_Cols%<1 � TemplW_Cols%=1 �ScrapBlk%!0=TemplW% �ScrapBlk%!4=0 �Eș "Wimp_DeleteIcon",,ScrapBlk% : � icon is only used to set size �MIcEdW%=�loadtemplate("IconEdit",WinBlk%,IndirEnd%,IndirFree%,SysSprites%) �IcEdTbar%=WinBlk%!76 �8�linkicontext(0,WinBlk%,23) : � text in a text icon �5�linkicontext(1,WinBlk%,24) : � name of a sprite �6�linkicontext(2,WinBlk%,25) : � validation string �-�linkicontext(3,WinBlk%,26) : � max size �5�linkicontext(4,WinBlk%,28) : � icon button type �(�linkicontext(5,WinBlk%,31) : � esg �.�linkicontext(19,WinBlk%,45) : � font name �0�linkicontext(20,WinBlk%,48) : � font x size �0�linkicontext(21,WinBlk%,51) : � font y size �6�linkcseltext(0,WinBlk%,34) : � foreground colour �6�linkcseltext(1,WinBlk%,37) : � background colour �PWinEdW%=�loadtemplate("WindowEdit",WinBlk%,IndirEnd%,IndirFree%,SysSprites%) �WinEdTbar%=WinBlk%!76 �7�linkicontext(6,WinBlk%,23) : � window button type �<�linkcseltext(2,WinBlk%,27) : � title foreground colour �<�linkcseltext(3,WinBlk%,31) : � title background colour �@�linkcseltext(4,WinBlk%,35) : � work area foreground colour �@�linkcseltext(5,WinBlk%,39) : � work area background colour �;�linkcseltext(6,WinBlk%,43) : � scrollbar inner colour �;�linkcseltext(7,WinBlk%,47) : � scrollbar outer colour �7�linkcseltext(8,WinBlk%,51) : � input focus colour �DDefW%=�loadtemplate("DefaultWin",WinBlk%,IndirEnd%,IndirFree%,1) �BSaveW%=�loadtemplate("SaveBox",WinBlk%,IndirEnd%,IndirFree%,1) �GFileName%=WinBlk%!(92+1*32+20) : � pointer to file name in savebox �EIcInfoW%=�loadtemplate("IconInfo",WinBlk%,IndirEnd%,IndirFree%,1) �2�linkicontext(7,WinBlk%,6) : � template name �0�linkicontext(8,WinBlk%,7) : � icon number �9�linkicontext(9,WinBlk%,9) : � minimum x coordinate �9�linkicontext(26,WinBlk%,10) : � maximum x coordinate �9�linkicontext(10,WinBlk%,11) : � minimum y coordinate �9�linkicontext(27,WinBlk%,8) : � maximum y coordinate �.�linkicontext(11,WinBlk%,12) : � icon size �5�linkicontext(24,WinBlk%,13) : � pointer position �MWorkW%=�loadtemplate("WorkArea",WinBlk%,IndirEnd%,IndirFree%,SysSprites%) �5�linkicontext(12,WinBlk%,10) : � top left X coord �5�linkicontext(13,WinBlk%,13) : � top left Y coord �5�linkicontext(14,WinBlk%,16) : � work area X size �5�linkicontext(15,WinBlk%,19) : � work area Y size �/�linkicontext(16,WinBlk%,22) : � min X size �/�linkicontext(17,WinBlk%,25) : � min Y size �KAlignW%=�loadtemplate("Align",WinBlk%,IndirEnd%,IndirFree%,SysSprites%) 6�selecticon(AlignW%,2,1) : � set align-left on /�selecticon(AlignW%,8,1) : � move icons OOptionsW%=�loadtemplate("Options",WinBlk%,IndirEnd%,IndirFree%,SysSprites%) OOptPaneW%=�loadtemplate("OptPane",WinBlk%,IndirEnd%,IndirFree%,SysSprites%) 9�linkicontext(28,WinBlk%,19) : � iconsize grid X size 9�linkicontext(29,WinBlk%,23) : � iconsize grid Y size 8�linkicontext(30,WinBlk%,28) : � iconpos grid X size 8�linkicontext(31,WinBlk%,32) : � iconpos grid Y size NSpaceW%=�loadtemplate("Spaceout",WinBlk%,IndirEnd%,IndirFree%,SysSprites%) ;�selecticon(SpaceW%,3,1) : � set space-vertically on 8�selecticon(SpaceW%,4,1) : � set to fixed spacing 7�linkicontext(18,WinBlk%,6) : � space between icons SpaceOut_Space%=4 '�seticontext(18,�(SpaceOut_Space%)) �space_shadeicons JStatW%=�loadtemplate("Stats",WinBlk%,IndirEnd%,IndirFree%,SysSprites%) �selecticon(StatW%,1,1) FStdIconW%=�loadtemplate("StdIcons",WinBlk%,IndirEnd%,IndirFree%,1) LastStdIcon%=WinBlk%!88-1 CDialW%=�loadtemplate("Dialogue",WinBlk%,IndirEnd%,IndirFree%,1) Dial_Msg%=WinBlk%!(92+20) IDial_Button1%=WinBlk%!(92+1*32+20) : � pointer to text in left button KDial_Button2%=WinBlk%!(92+2*32+20) : � pointer to text in middle button JDial_Button3%=WinBlk%!(92+3*32+20) : � pointer to text in right button .� store colours and border flag of buttons mask%=(1<<2)+(&FF<<24) 3Dial_ButtonCol1%=(WinBlk%!(92+1*32+16)) � mask% 3Dial_ButtonCol2%=(WinBlk%!(92+2*32+16)) � mask% 3Dial_ButtonCol3%=(WinBlk%!(92+3*32+16)) � mask% ș "Wimp_CloseTemplate" � initialise font usage � i%=0 � 255 � Fra%?i%>0 � != FontUsage%(i%)=1 : � font is used by system templates " � # FontUsage%(i%)=0 $ � %� i% &�setup_load ',�selecticon(OptPaneW%,13,IcInfo_Active%) ((�selecticon(OptPaneW%,11,DuplNames%) )$�selecticon(OptPaneW%,12,Hatch%) *,�selecticon(OptPaneW%,16,Grid_SizeLock%) +#�seticontext(28,�(Grid_SizeX%)) ,#�seticontext(29,�(Grid_SizeY%)) -+�selecticon(OptPaneW%,25,Grid_PosLock%) ."�seticontext(30,�(Grid_PosX%)) /"�seticontext(31,�(Grid_PosY%)) 0.�selecticon(OptPaneW%,14,Save_Unselected%) 1,�selecticon(OptPaneW%,15,DeleteOutside%) 2(�selecticon(OptPaneW%,8,TrapDclick%) 3�preparemenus 4(�supportinterface(SupportInterface%) 5AEHregistered%=� 6�supportaeh(SupportAEH%) 7�readscreenvars 8:� get filename that was given as argument with command 9ș "OS_GetEnv" � cmdstr% :fn$=�str(cmdstr%) ;p%=�fn$,ApplDir$) <p%=�fn$," ",p%+�(ApplDir$)) =� p%>0 � > fn$=�fn$,p%+1) ? p%=�fn$," ",p%) @ fn$=�fn$,p%-1) A � �(fn$)>0 � BA �templ_loadfile(fn$,1) : � found filename - load the file C �setmainfname(fn$) D � E� F �setextent G� H� I J� �key(window%,icon%,key%) KI� i%,waslast%,dx%,dy%,no%,help$,xmin%,ymin%,xmax%,ymax%,xstep%,ystep% L$� (key%=27) � (Drag_Type%<>-1) � M �abortdrag N� O Ȏ window% � P � IcEdW% Q Ȏ key% � R0 � &18E,&18A,13 : � down, tab, return S � icon%>0 � T i%=icon% U waslast%=� V � W � i%=26 � X i%=23 Y5 waslast%=� : � caret went "round" Z � [ i%+=1 \ � ]9 � (� �iconshaded(IcEdW%,i%)) � (i%=icon%) ^( � waslast% � (key%=13) � _) �selecticon(IcEdW%,9,1) `# �iced_readwin(-1) a) �selecticon(IcEdW%,9,0) b i%=icon% c � d$ �setcaret(IcEdW%,i%) e � f) � &18F,&19A : � up, shift+tab g � icon%>0 � h i%=icon% i � j � i%=23 � k i%=26 l � m i%-=1 n � o9 � (� �iconshaded(IcEdW%,i%)) � (i%=icon%) p$ �setcaret(IcEdW%,i%) q � r � &181 : � F1 s0 ș "Wimp_GetPointerInfo",,PtrInfo% t$ � PtrInfo%!12=IcEdW% � u help$="" v Ȏ PtrInfo%!16 � w6 � 14 : help$="Indirected" x6 � 3,25 : help$="Validation" y3 � 4,26 : help$="Maxsize" z2 � 15 : help$="Border" {2 � 16 : help$="Filled" |4 � 17 : help$="Hcentred" }4 � 18 : help$="Vcentred" ~6 � 19 : help$="Rjustified" 5 � 20 : help$="Needshelp" �7 � 21 : help$="Allowadjust" �4 � 22 : help$="Halfsize" �6 � 5,27,28,29 : help$="Buttontype" �/ � 6,30,31,32 : help$="ESG" �2 � 39 : help$="Shaded" �1 � 7,33,34,35 : help$="Fgcol" �1 � 8,36,37,38 : help$="Bgcol" �0 � 41 : help$="Font" �1 � 1 : help$="Flags" � � � � help$<>"" � �5 �askhelp("TemplEd.IconInfo_"+help$) � � � � � � &182 : � F2 �% �selecticon(IcEdW%,9,1) � �iced_readwin(-1) �% �selecticon(IcEdW%,9,0) � � &183 : � F3 �& �selecticon(IcEdW%,10,1) � �iced_readwin(-1) �& �selecticon(IcEdW%,10,0) �" �closewindow(IcEdW%) �% �setcaret(IcEd_Win%,-1) �! � &184,27 : � F4, Esc �& �selecticon(IcEdW%,11,1) �" �closewindow(IcEdW%) �& �selecticon(IcEdW%,11,0) �% �setcaret(IcEd_Win%,-1) � �' ș "Wimp_ProcessKey",key% � � � � WinEdW% � Ȏ key% � � � &181 �0 ș "Wimp_GetPointerInfo",,PtrInfo% �% � PtrInfo%!12=WinEdW% � � help$="" � Ȏ PtrInfo%!16 � �4 � 4 : help$="Moveable" �7 � 5 : help$="Auto-redraw" �3 � 6 : help$="Hotkeys" �0 � 7 : help$="Pane" �4 � 8 : help$="Nobounds" �0 � 9 : help$="GCOL" �6 � 10 : help$="Backwindow" �2 � 11,12 : help$="Scroll" �6 � 1,21,22,23,24 : help$="Buttontype" �5 � 20 : help$="Newformat" � � � � help$<>"" � �4 �askhelp("TemplEd.WinInfo_"+help$) � � � � � � &182,13 �' �selecticon(WinEdW%,53,1) � �wined_readwin �' �selecticon(WinEdW%,53,0) � � &183 �' �selecticon(WinEdW%,54,1) � �wined_readwin �' �selecticon(WinEdW%,54,0) �# �closewindow(WinEdW%) �& �setcaret(WinEd_Win%,-1) � � &184,27 �' �selecticon(WinEdW%,55,1) �# �closewindow(WinEdW%) �' �selecticon(WinEdW%,55,0) �& �setcaret(WinEd_Win%,-1) � �' ș "Wimp_ProcessKey",key% � � � � SaveW% � Ȏ key% � � � 13 �% �selecticon(SaveW%,0,1) �" � SavingSelection% � �& SelFName$=$(FileName%) �) �savetemplates(SelFName$) � � �+ �setmainfname($(FileName%)) �* �savetemplates(MainFName$) � � �% �selecticon(SaveW%,0,0) �& ș "Wimp_CreateMenu",,-1 � � 27 �& ș "Wimp_CreateMenu",,-1 � �' ș "Wimp_ProcessKey",key% � � � � WorkW% � Ȏ key% � � � &18E,&18A,13 � � icon%=25 � � � key%=13 � �* �selecticon(WorkW%,30,1) � �setworkarea �* �selecticon(WorkW%,30,0) �* ș "Wimp_CreateMenu",,-1 � � �& �setcaret(WorkW%,10) � � � � �) �setcaret(WorkW%,icon%+3) � � � � &18F,&19A � � icon%=10 � �$ �setcaret(WorkW%,25) � � �) �setcaret(WorkW%,icon%-3) � � � � 27 �& ș "Wimp_CreateMenu",,-1 � �' ș "Wimp_ProcessKey",key% � � � � SpaceW% � � key%=13 � �$ �selecticon(SpaceW%,9,1) �& �spaceicons(LastMenu_Win%) �$ �selecticon(SpaceW%,9,0) �$ ș "Wimp_CreateMenu",,-1 � � �% ș "Wimp_ProcessKey",key% � � � � Ȏ Drag_Type% � � � 0,1,5,6 dx%=0 dy%=0 Ȏ key% � ( � &18C : dx%=-PixToOS_X% ' � &18D : dx%=PixToOS_X% ( � &18E : dy%=-PixToOS_Y% ' � &18F : dy%=PixToOS_Y% * � &19C : dx%=-4*PixToOS_X% ) � &19D : dx%=4*PixToOS_X% * � &19E : dy%=-4*PixToOS_Y% ) � &19F : dy%=4*PixToOS_Y% - : ș "Wimp_ProcessKey",key% � 0 ș "Wimp_GetPointerInfo",,PtrInfo% 4 ȗ � (PtrInfo%!0)+dx%,(PtrInfo%!4)+dy% ) no%=�whichtemplate(window%) � no%<>-1 � Ȏ key% � @ � 1 : �sel_all(window%) : � ^A � 3 dummy%=-1 C �copyiconsel(window%,dummy%,0) : � ^C � 4 dummy%=-1 C �copyiconsel(window%,dummy%,2) : � ^D @ � 5 : �iced_start(window%,-1) : � ^E � 10 C �sel_get(window%) : � ^J & � NrSelected%>=2 � + LastMenu_Win%=window% ' LastMenu_Icon%=-1 8 ș "Wimp_GetPointerInfo",,PtrInfo% !O ș "Wimp_CreateMenu",,AlignW%,PtrInfo%!0-80,PtrInfo%!4+80 " � # � 11 $C �sel_get(window%) : � ^K %& � NrSelected%>=2 � &+ LastMenu_Win%=window% '' LastMenu_Icon%=-1 (8 ș "Wimp_GetPointerInfo",,PtrInfo% )O ș "Wimp_CreateMenu",,SpaceW%,PtrInfo%!0-80,PtrInfo%!4+80 * � + � 12 , dummy%=-1 -C �copyiconsel(window%,dummy%,3) : � ^L .D � 17,&1A2 : �closetemplate(no%) : � ^Q,^F2 / � 18 0 dummy%=-1 1C �copyiconsel(window%,dummy%,4) : � ^R 2@ � 20 : �iced_start(window%,-4) : � ^T 3 � 21 4 dummy%=-1 5C �copyiconsel(window%,dummy%,1) : � ^U 6@ � 23 : �wined_fillwin(window%) : � ^W 7@ � 24 : �deleteiconsel(window%,-1) : � ^X 8@ � 26 : �sel_clear(window%,-1) : � ^Z 9; � &18C,&18D,&18E,&18F,&19C,&19D,&19E,&19F :% �sel_get(window%) ;% � NrSelected%>0 � <? �sel_box(window%,xmin%,ymin%,xmax%,ymax%) =' � Grid_PosLock% � >) xstep%=Grid_PosX% ?) ystep%=Grid_PosY% @ � A* � Grid_SizeLock% � B, xstep%=Grid_SizeX% C, ystep%=Grid_SizeY% D � E+ xstep%=PixToOS_X% F+ ystep%=PixToOS_Y% G � H � I& Ȏ (key% � &F) � J* � &C : dx%=-xstep% K) � &D : dx%=xstep% L* � &E : dy%=-ystep% M) � &F : dy%=ystep% N � O$ � key% � &10 � P! dx%=dx%*4 Q! dy%=dy%*4 R � S xmin%+=dx% T xmax%+=dx% U ymin%+=dy% V ymax%+=dy% WM �moveresize(window%,-1,window%,xmin%,ymin%,xmax%,ymax%) X � Y2 : ș "Wimp_ProcessKey",key% Z � [ � \) ș "Wimp_ProcessKey",key% ] � ^ � _ � `� a� b c7� �loadtemplate(name$,buf%,� indir%,� free%,spptr%) d� oldindir%,handle% e� � f-� � � ș "Wimp_CloseTemplate" : �error(1) goldindir%=indir% hname$=name$+�12,�0) iNș "Wimp_LoadTemplate",,buf%+4,indir%,indir%+free%,Fra%,name$,0 � ,,indir% jfree%-=(indir%-oldindir%) kbuf%!68=spptr% l� buf%!88>0 � m � i%=0 � buf%!88 n f%=buf%!(92+i%*32+16) o � (f% � &103)=&102 � p# buf%!(92+i%*32+24)=spptr% q � r � i% s� t,ș "Wimp_CreateWindow",,buf%+4 � handle% ubuf%!0=handle% v=handle% w x� �menuselect(selection%) yB� adjust%,selinfo%,itemnr%,item%,item$,parentitem%,parentitem$ z&� cmd$,i%,j%,minx%,miny%,size,dir% {Aș "MenuUtil_Decode",LastMenu%,selection% � ,adjust%,selinfo% |itemnr%=selinfo%!0 }item%=selinfo%!8 ~item$=�str(selinfo%!12) parentitem%=selinfo%!24 �4� parentitem%<>0 � parentitem$=�str(selinfo%!28) �Ȏ LastMenu% � � � MainMenu% � Ȏ item% � � � item_options% �$ �openwindow(OptionsW%,2) � � item_stats% � �stat_fillwin � � item_sprview% �$ cmd$="Run "+SpriteFName$ �2 � OSversion%>=300 � cmd$="Filer_"+cmd$ �$ ș "Wimp_StartTask",cmd$ � � item_sprreload% �* �loadusersprites(SpriteFName$) � � item_sprreset% � �loadusersprites("") � � item_quit% � � ChangesMade% � � �dialogue(0,"","") � � � �prequit(0) � � � � � � TemplMenu% � Ȏ item% � � � item_templname% � Ȏ parentitem% � �! � item_createtempl% � � �(item$)>0 � �! WinBlk%!0=DefW% �2 ș "Wimp_GetWindowInfo",,WinBlk% �J $(WinBlk%+76)=item$ : � title bar equal to template name � WinBlk%!88=0 �- �templ_add(item$,WinBlk%,1) �/ �opentemplate(NrTemplates%-1) � �setchanged(�) � � �! � item_renametempl% � � �(item$)>0 � � j%=0 �0 � check if name already exists �F ȕ (j%<NrTemplates%) � ($(TemplNames%+28*j%)<>item$) � j%+=1 � � �4 � (j%=NrTemplates%) � DuplNames% � � i%=SelBlk%!0 �. $(TemplNames%+28*i%)=item$ �& IconBlk%!0=TemplW% �! IconBlk%!4=i% �4 ș "Wimp_GetIconState",,IconBlk% �O IconBlk%!16=(IconBlk%!8)+(TemplW_IconX%-8)-16*(11-�(item$)) �= dummy%=�redefineicon(TemplW%,i%,IconBlk%) �" �setchanged(�) � � �3 �complain(�msg_lookup0("TAEX")) � � � � � � item_copytempl% � � �(item$)>0 � �# �sel_get(TemplW%) �3 WinBlk%!0=TemplHandle%(SelBlk%!0) �2 ș "Wimp_GetWindowInfo",,WinBlk% �0 � PaneFlag%?(SelBlk%!(4*i%)) � �G WinBlk%!32=WinBlk%!32 � (1<<5) : � copy 'Pane' flag � � �5 �iconrealloc(WinBlk%+60,WinBlk%+76) �" � WinBlk%!88>0 � �) � i%=0 � WinBlk%!88-1 �K �iconrealloc(WinBlk%+92+32*i%+16,WinBlk%+92+32*i%+20) � � i% � � �- �templ_add(item$,WinBlk%,1) �/ �opentemplate(NrTemplates%-1) � �setchanged(�) � � � � � � item_opentempl% � �sel_get(TemplW%) �' � i%=NrSelected%-1 � 0 � -1 �+ �opentemplate(SelBlk%!(4*i%)) � � i% � � item_closetempl% � �sel_get(TemplW%) �' � i%=NrSelected%-1 � 0 � -1 �, �closetemplate(SelBlk%!(4*i%)) � � i% � � item_deletetempl% � ș "Hourglass_On" � �sel_get(TemplW%) �' � i%=NrSelected%-1 � 0 � -1 �+ �templ_delete(SelBlk%!(4*i%)) � � i% �" �sel_clear(TemplW%,-1) �! LastMenu_Win%=TemplW% � LastMenu_Icon%=-1 � ș "Hourglass_Off" � � item_selalltempl% � �sel_all(TemplW%) � � item_clearseltempl% �" �sel_clear(TemplW%,-1) � � item_deleteall% � � ChangesMade% � � �dialogue(1,"","") � � � �templ_deleteall �# LastMenu_Win%=TemplW% � LastMenu_Icon%=-1 � � � � item_sorttempl% �" �sel_clear(TemplW%,-1) � �templ_sort � �redefinebrowser(�) �! LastMenu_Win%=TemplW% � LastMenu_Icon%=-1 � � item_save% � SavingSelection%=� �& �savetemplates(MainFName$) � � �6 � TemplMenu_Deselect% � �sel_clear(TemplW%,-1) � � UserMenu% � Ȏ item% � �E � item_copyicon%,item_up%,item_down%,item_left%,item_right% � Ȏ item% � �' � item_copyicon% : dir%=0 �' � item_up% : dir%=1 �' � item_down% : dir%=2 �' � item_left% : dir%=3 �' � item_right% : dir%=4 � ; �copyiconsel(LastMenu_Win%,LastMenu_Icon%,dir%) + � item_iconnr%,item_renumbericon% 7 � item%=item_iconnr% � NextIconNr%=�(item$) # �sel_get(LastMenu_Win%) Ȏ NrSelected% � � 0 ; �renumbericon(LastMenu_Win%,LastMenu_Icon%) * LastMenu_Icon%=NextIconNr% � 1 6 �renumbericon(LastMenu_Win%,SelBlk%!0) / �renumbericonsel(LastMenu_Win%) � � item_deleteicon% 8 �deleteiconsel(LastMenu_Win%,LastMenu_Icon%) � item_editicon% 5 �iced_start(LastMenu_Win%,LastMenu_Icon%) � item_minsize% < �minimizeiconsel(LastMenu_Win%,LastMenu_Icon%,0) � item_centericon% : �centericonsel(LastMenu_Win%,LastMenu_Icon%,0) � item_samesize% < �samesizeiconsel(LastMenu_Win%,LastMenu_Icon%,0) , � item_both%,item_xdim%,item_ydim% Ȏ parentitem% � � item_minsize% F �minimizeiconsel(LastMenu_Win%,LastMenu_Icon%,itemnr%) � item_centericon% D �centericonsel(LastMenu_Win%,LastMenu_Icon%,itemnr%) � item_samesize% F �samesizeiconsel(LastMenu_Win%,LastMenu_Icon%,itemnr%) � ! � item_selallicons% "# �sel_all(LastMenu_Win%) # � item_clearselicons% $( �sel_clear(LastMenu_Win%,-1) % � item_editwindow% &) �wined_fillwin(LastMenu_Win%) ' � item_edittitle% () �iced_start(LastMenu_Win%,-4) ) � item_tidyicons% *3 LastMenu_Win%=�tidyicons(LastMenu_Win%) + � item_centerwin% ,( �openwindow(LastMenu_Win%,1) - � item_wimparea% .2 �window_setspritearea(LastMenu_Win%,1) / � item_customarea% 0= �window_setspritearea(LastMenu_Win%,UserSprites%) 1 � item_closewin% 29 �closetemplate(�whichtemplate(LastMenu_Win%)) 3 4I � (item%=item_createicon%) � (parentitem%=item_createicon%) � 51 � item%=item_createicon% � item$="" 66 � convert screen coords to window coords 7' ScrapBlk%!0=LastMenu_Win% 81 ș "Wimp_GetWindowState",,ScrapBlk% 9: minx%=LastMenu_X%-(ScrapBlk%!4-ScrapBlk%!20) :; miny%=LastMenu_Y%-(ScrapBlk%!16-ScrapBlk%!24) ;B �createstandardicon(item$,LastMenu_Win%,minx%,miny%) < � = � > � IcButtonMenu% ? IcEd_Button%=itemnr% @4 �seticontext(4,$(IcButton%+20*IcEd_Button%)) A � WinButtonMenu% B WinEd_Button%=itemnr% C6 �seticontext(6,$(WinButton%+20*WinEd_Button%)) D � EsgMenu% E IcEd_Esg%=�(�item$,2)) F$ �seticontext(5,�(IcEd_Esg%)) G � ColourMenu% H � item$="None" � I j%=255 J � K j%=�(item$) L � M Ȏ LastMenu_Win% � N � IcEdW% O Ȏ LastMenu_Icon% � P � 34 Q IcEd_Fgcol%=j% R# �setcolourbox(0,j%) S � 37 T IcEd_Bgcol%=j% U# �setcolourbox(1,j%) V � W � WinEdW% X& i%=(LastMenu_Icon%-27) � 4 Y WinEd_Col%(i%)=j% Z" �setcolourbox(2+i%,j%) [ � \ � FontMenu% ] � �(parentitem$)>0 � ^ � item$="(Regular)" � _" IcEd_Font$=parentitem$ ` � a, IcEd_Font$=parentitem$+"."+item$ b � c% �seticontext(19,IcEd_Font$) d � e � FontSizemenu% f size=�(item$) g � size>0 � h � LastMenu_Icon%=48 � i IcEd_Xsize=size j. �seticontext(20,��(IcEd_Xsize),4)) k( � �iconselected(IcEdW%,53) � l# IcEd_Ysize=IcEd_Xsize m0 �seticontext(21,��(IcEd_Ysize),4)) n � o � p IcEd_Ysize=size q. �seticontext(21,��(IcEd_Ysize),4)) r � s � t � Updatemenu% u Ȏ item% � v1 � item_updbt% : �iced_readwin(&F<<12) w2 � item_updesg% : �iced_readwin(&1F<<16) x: � item_updfg% : �iced_readwin((&F<<24)+(1<<6)) y: � item_updbg% : �iced_readwin((&F<<28)+(1<<6)) z; � item_updfont% : �iced_readwin((&FF<<24)+(1<<6)) {7 � item_updrest% : �iced_readwin(&EFC+(1<<22)) |/ � item_updbo%: : �iced_readwin(1<<2) }/ � item_updfi%: : �iced_readwin(1<<5) ~/ � item_updhc%: : �iced_readwin(1<<3) / � item_updvc%: : �iced_readwin(1<<4) �/ � item_updrj%: : �iced_readwin(1<<9) �/ � item_updnh%: : �iced_readwin(1<<7) �0 � item_updaa%: : �iced_readwin(1<<10) �0 � item_updhs%: : �iced_readwin(1<<11) �0 � item_updsh%: : �iced_readwin(1<<22) � � � � LastMenu_Icon%=10 � � �closewindow(IcEdW%) �! �setcaret(IcEd_Win%,-1) � adjust%=� � � �� �� adjust% � �G �createmenu(LastMenu_X%,LastMenu_Y%,LastMenu_Win%,LastMenu_Icon%) �� � LastMenu%=-1 �� �� � �4� �editaction(xpos%,ypos%,button%,window%,icon%) �� key%,dclick% � key%=0 � dclick%=� �-� (� -1) � key%+=1 : � bit 0 -> Shift key �,� (� -2) � key%+=2 : � bit 1 -> Ctrl key �+� (� -3) � key%+=4 : � bit 2 -> Alt key �+TimedDrag_Enabled%=(key%=0)�(icon%>=-1) �� button%>256 � �@ button%=button%>>8 : � clicked on icon with button type 10 �� � Ȏ key% � �" � 0 : � mouse button, no key � � button%>0 � �4 dclick%=(�-ThisClickTime%)<DclickInterval% �6 dclick%=dclick% � (ThisClickButton%=button%) �J dclick%=dclick% � (�(ThisClickX%-xpos%)+�(ThisClickY%-ypos%))<32 � ThisClickTime%=� � ThisClickX%=xpos% � ThisClickY%=ypos% �" ThisClickButton%=button% � � � Ȏ button% � � � 1,4 � Ȏ icon% � � � -4 �7 � dclick% � TrapDclick% � (button%=4) � �, �iced_start(window%,icon%) � � � � -1 �4 � button%=4 � �sel_clear(window%,-1) �7 � dclick% � TrapDclick% � (button%=4) � �) �wined_fillwin(window%) � � �& �dragselect(button%) �' �setcaret(window%,-1) � � � � � icon%>=0 � � � button%=1 � �- � toggle "selected" state �' ScrapBlk%!0=window% �% ScrapBlk%!4=icon% �5 ș "Wimp_GetIconState",,ScrapBlk% �2 Ȏ ((ScrapBlk%!24)>>12) � 15 � �M � 4,9 : � selecting useless for these button types �; � 5,7,8,11 : � selecting done by wimp �< �seticonstate(window%,icon%,1<<21,0) � � � � �( � "exclusive" select �- �sel_clear(window%,icon%) �6 � � �iconselected(window%,icon%) � �2 �selecticon(window%,icon%,1) � � � � �9 � dclick% � TrapDclick% � (button%=4) � �. �iced_start(window%,icon%) � � �( �dragselect(button%) �) �setcaret(window%,-1) � � � � � � � � �" � 1 : � shift + mouse button � Ȏ button% � � � 1,4 �! �setcaret(window%,-1) �1 �starticondrag(button%,window%,icon%) � � 2 �& �iced_start(window%,icon%) � � �! � 2 : � ctrl + mouse button � Ȏ button% � � � 1 �! �setcaret(window%,-1) �' �startwindowresize(window%) � � 2 � � icon%=-4 � �( �iced_start(window%,icon%) � � �% �wined_fillwin(window%) � � � � 4 �! �setcaret(window%,-1) �% �startwindowmove(window%) � � � � 4 : � alt + mouse button � Ȏ button% � � � 1 � � icon%>=0 � �* �renumbericon(window%,icon%) �. � NextIconNr%>0 � NextIconNr%-=1 � � � � 4 � � icon%>=0 � �* �renumbericon(window%,icon%) � NextIconNr%+=1 � � � � � �+ � (button%>0) � SupportInterface% � �& � make Interface invert icon � ScrapBlk%!8=button% � ScrapBlk%!12=window% � ScrapBlk%!16=icon% �) ș "Wimp_BorderIcon",,ScrapBlk% � � back to normal ScrapBlk%!8=0 ScrapBlk%!12=window% ScrapBlk%!16=icon% ) ș "Wimp_BorderIcon",,ScrapBlk% � % � (button%>0) � SupportAEH% � ScrapBlk%!8=button% ScrapBlk%!12=window% ScrapBlk%!16=icon% ( ș "AEH_RedrawIcon",,ScrapBlk% ș "AEH_ReleaseIcon",0 � � � :� �click(xpos%,ypos%,button%,window%,icon%,wimpclick%) � no%,key% "Mbuttons_Released%=(button%=0) TimedDrag_Enabled%=� no%=�whichtemplate(window%) � button%=2 � > � "steal" clicks with Menu if Shift, Ctrl or Alt pressed ș "OS_Byte",121,0 � ,key% � key%>=3 � = � wimpclick% � �createmenu(xpos%,ypos%,window%,icon%) � A � no%>=0 � �editaction(xpos%,ypos%,button%,window%,icon%) � � � no%>=0 � 6 �editaction(xpos%,ypos%,button%,window%,icon%) � D � wimpclick% � �iconclick(xpos%,ypos%,button%,window%,icon%) ! � "� #� $ %3� �iconclick(xpos%,ypos%,button%,window%,icon%) &7� select%,menu%,adjust%,i%,j%,xsize%,ysize%,up%,lo% 'select%=(button%=4) (menu%=(button%=2) )adjust%=(button%=1) *Ȏ window% � + � -2 , � select% � - �openwindow(TemplW%,3) .4 � IcInfo_Active% � �openwindow(IcInfoW%,4) / � 0 � IcEdW% 16 �iced_click(xpos%,ypos%,select%,adjust%,icon%) 2 � WinEdW% 37 �wined_click(xpos%,ypos%,select%,adjust%,icon%) 4 � StatW% 5 �stat_fillwin 6 � TemplW% 7, � (select% � adjust%) � (icon%>=0) � 8) ScrapBlk%!0=TemplHandle%(icon%) 9- ș "Wimp_GetWindowState",,ScrapBlk% :$ � ScrapBlk%!32 � (1<<16) � ;! �closetemplate(icon%) < � = �opentemplate(icon%) > � ?& �selecticon(TemplW%,icon%,0) @ � A � select% � (icon%=-1) � B �sel_clear(TemplW%,-1) C � D' � (button%=16) � (button%=64) � E! �dragselect(button%>>4) F � G � SaveW% H Ȏ icon% � I � 0 J � SavingSelection% � K$ SelFName$=$(FileName%) L' �savetemplates(SelFName$) M � N) �setmainfname($(FileName%)) O( �savetemplates(MainFName$) P � Q$ ș "Wimp_CreateMenu",,-1 R � 2 S � (button%>>4) � 5 � T" � SavingSelection% � U& SelFName$=$(FileName%) V � W+ �setmainfname($(FileName%)) X � Y �startsavedrag Z � [ � \ � AlignW% ] Ȏ icon% � ^ � 10 _& �alignicons(LastMenu_Win%) `4 � (� adjust%) � ș "Wimp_CreateMenu",,-1 a b �align_shadeicons c � d � SpaceW% e Ȏ icon% � f � 5,7 g/ SpaceOut_Space%=�($(IconText%(18))) h% up%=(adjust% � (icon%=7)) i: � �changevar(SpaceOut_Space%,4,up%,-512,512) � j1 �seticontext(18,�(SpaceOut_Space%)) k" �setcaret(SpaceW%,6) l � m � 4,8 n �space_shadeicons o( � icon%=8 � �setcaret(-1,-1) p � 9 q& �spaceicons(LastMenu_Win%) r4 � (� adjust%) � ș "Wimp_CreateMenu",,-1 s � t � WorkW% u � icon%<=26 � v+ � (icon%>=9) � ((icon% � 3)<>1) � w" � click on arrow icons x) up%=((icon% � 3)=2) � adjust% y i%=(icon%-9) � 3 z% j%=�($(IconText%(12+i%))) { � i%<2 � | lo%=-10000 } � ~7 lo%=0 : � "size" field, can't be negative � �. � �changevar(j%,4,up%,lo%,10000) � �' �seticontext(12+i%,�(j%)) �' �setcaret(WorkW%,3*i%+10) � � � � � � �! WinBlk%!0=LastMenu_Win% �+ ș "Wimp_GetWindowState",,WinBlk% � Ȏ icon% � � � 27,28 �? xsize%=WinBlk%!12-WinBlk%!4+WinBlk%!20-WinBlk%!44 �? ysize%=WinBlk%!16-WinBlk%!8-WinBlk%!24+WinBlk%!56 � � icon%=27 � �. �seticontext(12,�(WinBlk%!44)) �. �seticontext(13,�(WinBlk%!56)) �* �seticontext(14,�(xsize%)) �* �seticontext(15,�(ysize%)) �$ �setcaret(WorkW%,16) � � �* �seticontext(16,�(xsize%)) �* �seticontext(17,�(ysize%)) �$ �setcaret(WorkW%,22) � � � � 29 �" �seticontext(12,"0") �" �seticontext(13,"0") �% �seticontext(14,"1236") �$ �seticontext(15,"936") �" �seticontext(16,"0") �" �seticontext(17,"0") �" �setcaret(WorkW%,16) � � 30 � �setworkarea �6 � (� adjust%) � ș "Wimp_CreateMenu",,-1 � � � � � � � OptPaneW% � Ȏ icon% � �* � 8 : TrapDclick%=� TrapDclick% �7 � 9 : �supportinterface(� SupportInterface%) �+ � 10 : �supportaeh(� SupportAEH%) �( � 11 : DuplNames%=� DuplNames% � � 12 � Hatch%=� Hatch% � �redrawall � � 13 �+ IcInfo_Active%=� IcInfo_Active% � � IcInfo_Active% � �% �openwindow(IcInfoW%,4) � � �$ �closewindow(IcInfoW%) � � �4 � 14 : Save_Unselected%=� Save_Unselected% �0 � 15 : DeleteOutside%=� DeleteOutside% �0 � 16 : Grid_SizeLock%=� Grid_SizeLock% � � 18,20 �& up%=(adjust% � (icon%=20)) �D � �changevar(Grid_SizeX%,PixToOS_X%,up%,PixToOS_X%,64) � �- �seticontext(28,�(Grid_SizeX%)) � � � � 22,24 �& up%=(adjust% � (icon%=24)) �D � �changevar(Grid_SizeY%,PixToOS_Y%,up%,PixToOS_Y%,64) � �- �seticontext(29,�(Grid_SizeY%)) � � �. � 25 : Grid_PosLock%=� Grid_PosLock% � � 27,29 �& up%=(adjust% � (icon%=29)) �C � �changevar(Grid_PosX%,PixToOS_X%,up%,PixToOS_X%,64) � �, �seticontext(30,�(Grid_PosX%)) � � � � 31,33 �& up%=(adjust% � (icon%=33)) �C � �changevar(Grid_PosY%,PixToOS_Y%,up%,PixToOS_Y%,64) � �, �seticontext(31,�(Grid_PosY%)) � � � � � � OptionsW% � Ȏ icon% � � � 0 � �setup_save �# �closewindow(OptionsW%) � � 1 �# �closewindow(OptionsW%) � � � � DialW% � ș "Wimp_CreateMenu",,-1 � Ȏ LastDialogue% � � � 0 �, � program quit with changes made � Ȏ icon% � � � 1 �2 ș "Wimp_GetPointerInfo",,PtrInfo% �' $(FileName%)=MainFName$ �" SavingSelection%=� � QuitAfterSave%=� �I ș "Wimp_CreateMenu",,SaveW%,PtrInfo%!0-126,PtrInfo%!4+56 � � 2 � �prequit(1) � � � � 1 �* � delete all with changes made �( � icon%=1 � �templ_deleteall � � 2 �- � load new file with changes made � � icon%=1 � � �templ_deleteall �* �templ_loadfile(NewFName$,1) �& �setmainfname(NewFName$) � � � � 8 �1 � exit from desktop with changes made � Ȏ icon% � � � 1 � �templ_deleteall �A � resume prequit procedure (code copied from PRM) �5 ș "Wimp_GetCaretPosition",,ScrapBlk% �! ScrapBlk%!24=&1FC �@ ș "Wimp_SendMessage",8,ScrapBlk%,PreQuitSender% � � � � �� �� � �5� �wined_click(xpos%,ypos%,select%,adjust%,icon%) �� up%,i%,gcol% �Ȏ icon% � � 53 �wined_readwin � 54 �wined_readwin �closewindow(WinEdW%) �setcaret(WinEd_Win%,-1) � 55 �closewindow(WinEdW%) �setcaret(WinEd_Win%,-1) � 13 ' � � �iconselected(WinEdW%,20) � ; �selecticon(WinEdW%,14,�iconselected(WinEdW%,13)) � � 14 ' � � �iconselected(WinEdW%,20) � ; �selecticon(WinEdW%,13,�iconselected(WinEdW%,14)) � � 15,17,19,20 �wined_shadeicons(icon%) � 23,27,31,35,39,43,47,51 . �createmenu(xpos%,ypos%,WinEdW%,icon%) � 22,24 " up%=(adjust% � (icon%=24)) 0 � �changevar(WinEd_Button%,1,up%,0,15) � 8 �seticontext(6,$(WinButton%+20*WinEd_Button%)) � � 56 WinEd_Col%(0)=7 WinEd_Col%(1)=2 WinEd_Col%(2)=7 WinEd_Col%(3)=1 WinEd_Col%(4)=3 WinEd_Col%(5)=1 ! WinEd_Col%(6)=12 " � i%=0 � 6 #, �setcolourbox(2+i%,WinEd_Col%(i%)) $ � i% % &7 � (icon%>=26) � (icon%<=52) � ((icon% � 2)=0) � '' up%=((icon% � 4)=0) � adjust% ( i%=(icon%-26) � 4 )( gcol%=�iconselected(WinEdW%,9) *; �changecolourbox(2+i%,WinEd_Col%(i%),1,up%,gcol%) + � ,� -� . /4� �iced_click(xpos%,ypos%,select%,adjust%,icon%) 0� up%,l% 1Ȏ icon% � 2 � 4 3. � adjust% � �iconselected(IcEdW%,14) � 4/ � minimize number in 'Max size' field 5& � �iconselected(IcEdW%,12) � 6# l%=�($(IconText%(0))) 7 � 8( � �iconselected(IcEdW%,13) � 9# l%=�($(IconText%(1))) : � ; � <! �seticontext(3,�(l%+1)) = � > � 9 ? �iced_readwin(-1) @ � 10 A �iced_readwin(-1) B �closewindow(IcEdW%) C �setcaret(IcEd_Win%,-1) D � 11 E �closewindow(IcEdW%) F �setcaret(IcEd_Win%,-1) G � 12,13,14,41,53 H �iced_shadeicons(icon%) I � 28,31,34,37,45,46,48,51 J- �createmenu(xpos%,ypos%,IcEdW%,icon%) K � 27,29 L" up%=(adjust% � (icon%=29)) M/ � �changevar(IcEd_Button%,1,up%,0,15) � N6 �seticontext(4,$(IcButton%+20*IcEd_Button%)) O � P � 30,32 Q" up%=(adjust% � (icon%=32)) R, � �changevar(IcEd_Esg%,1,up%,0,31) � S& �seticontext(5,�(IcEd_Esg%)) T � U � 33,35 V" up%=(adjust% � (icon%=35)) W/ �changecolourbox(0,IcEd_Fgcol%,1,up%,0) X � 36,38 Y" up%=(adjust% � (icon%=38)) Z/ �changecolourbox(1,IcEd_Bgcol%,1,up%,0) [ � 47,49 \; � (adjust% � (icon%=47)) � (select% � (icon%=49)) � ] � IcEd_Xsize<998 � ^ IcEd_Xsize+=2 _. �seticontext(20,��(IcEd_Xsize),4)) `( � �iconselected(IcEdW%,53) � a# IcEd_Ysize=IcEd_Xsize b0 �seticontext(21,��(IcEd_Ysize),4)) c � d � e � f � IcEd_Xsize>2 � g IcEd_Xsize-=2 h. �seticontext(20,��(IcEd_Xsize),4)) i( � �iconselected(IcEdW%,53) � j# IcEd_Ysize=IcEd_Xsize k0 �seticontext(21,��(IcEd_Ysize),4)) l � m � n � o � 50,52 p; � (adjust% � (icon%=50)) � (select% � (icon%=52)) � q � IcEd_Ysize<998 � r IcEd_Ysize+=2 s. �seticontext(21,��(IcEd_Ysize),4)) t � u � v � IcEd_Ysize>2 � w IcEd_Ysize-=2 x. �seticontext(21,��(IcEd_Ysize),4)) y � z � {� |� } ~� �receive(buf%) H� sender%,ref%,code%,ackcode%,acktype%,fname$,ftype%,icon%,no%,boot$ �sender%=buf%!4 �ref%=buf%!8 �code%=buf%!16 �Cackcode%=0 : � sort of message to acknowledge this message with �/acktype%=17 : � message type of acknowledge �� sender% <> ThisTask% � � Ȏ code% � � � 0 � � 'quit' message � �prequit(0) � � 1 � � data save � � buf%!40=&FEC � �> � other app saves file to TemplEd (via Wimp$Scrap) �& NewLeafName$=�str(buf%+44) �% $(buf%+44)="<Wimp$Scrap>" �1 buf%!36=-1 : � saved file is "unsafe" � ackcode%=2 � � � � 2 � � data save ack � fname$=�str(buf%+44) � � SavingSelection% � � SelFName$=fname$ �% �savetemplates(SelFName$) � � �8 � (buf%!36<>-1) � (fname$<>"<Wimp$Scrap>") � �# �setmainfname(fname$) � � �" �savetemplates(fname$) � � �3 ș "OS_File",17,fname$ � ftype%,,,,fsize% � � ftype%=1 � � ackcode%=3 � buf%!36=fsize% � � � � 3 � � data load �! NewFName$=�str(buf%+44) � Ȏ buf%!40 � � � &FEC � Ȏ buf%!20 � � � TemplW% �- �setchanged(NrTemplates%>0) �. �templ_loadfile(NewFName$,0) � ackcode%=4 � � -2 �& � buf%!24=BarIcon% � �$ � ChangesMade% � �( �dialogue(2,"","") � � �& �templ_deleteall �2 �templ_loadfile(NewFName$,1) � � � � � ackcode%=4 � � � � &FF9 �3 � (buf%!20=-2) � (buf%!24=BarIcon%) � �+ �loadusersprites(NewFName$) � ackcode%=4 � � � � &2000 �2 NewFName$=�str(buf%+44)+".Templates" �H � �fileexists(NewFName$)�(buf%!20=-2)�(buf%!24=BarIcon%) � � � ChangesMade% � �$ �dialogue(2,"","") � � �" �templ_deleteall �. �templ_loadfile(NewFName$,1) � � � ackcode%=4 � � � � � � 5 �" � double-click on a file �! NewFName$=�str(buf%+44) � Ȏ buf%!40 � � � &FEC � � NrTemplates%=0 � �, �templ_loadfile(NewFName$,1) � ackcode%=4 � � � � � � 8 � � desktop exit � � ChangesMade% � � ackcode%=8 � acktype%=19 �" PreQuitSender%=sender% � �dialogue(8,"","") � � � � 10 �# � desktop save (RiscOS 3) �5 boot$="Run "+�readvarval("TemplEd$Dir")+�10 �/ ș "OS_GBPB",2,buf%!20,boot$,�(boot$) � � &502 �* � request from !Help application �% no%=�whichtemplate(buf%!32) � icon%=buf%!36 �$ � (no%>=0) � (icon%>=-1) � �+ $(buf%+20)=�iconhelp(no%,icon%) � ackcode%=&503 � � � � &400C0 �! � about to open submenu � Ȏ LastMenu% � � � TemplMenu% �+ � set filename in save window � � buf%!36=-1 � �' $(FileName%)=MainFName$ �" SavingSelection%=� � � �& $(FileName%)=SelFName$ �" SavingSelection%=� � � � �sel_get(TemplW%) �0 � (buf%!36=-1) � (NrSelected%=0) � �) � template name to create �5 ș "MenuUtil_Text",item_templname%,"" � � �1 � template name to copy or rename �P ș "MenuUtil_Text",item_templname%,$(TemplNames%+28*(SelBlk%!0)) � � � � UserMenu% �- � fill icons in workarea window �% WinBlk%!0=LastMenu_Win% �. ș "Wimp_GetWindowInfo",,WinBlk% , $(IconText%(12))=�(WinBlk%!44) , $(IconText%(13))=�(WinBlk%!56) 7 $(IconText%(14))=�(WinBlk%!52-WinBlk%!44) 7 $(IconText%(15))=�(WinBlk%!56-WinBlk%!48) 6 $(IconText%(16))=�((WinBlk%!72) � &FFFF) 2 $(IconText%(17))=�((WinBlk%!72)>>16) � : ș "Wimp_CreateSubMenu",,buf%!20,buf%!24,buf%!28 � &400C1 � mode change �readscreenvars = � TemplW_MaxCol%<TemplW_Cols% � �redefinebrowser(�) � &400C9 1 � menu removed with no menu item chosen " � LastMenu%=TemplMenu% � : � TemplMenu_Deselect% � �sel_clear(TemplW%,-1) � � � ackcode%<>0 � buf%!0=256 buf%!12=ref% buf%!16=ackcode% - ș "Wimp_SendMessage",17,buf%,sender% � � � � �redraw(handle%) � more%,win0x%,win0y%,dx% )� xstart%,height%,xcorr%,ycorr%,x%,y% dx%=48 Blk%!0=handle% (ș "Wimp_RedrawWindow",,Blk% � more% !win0x%=Blk%!4-Blk%!20 "win0y%=Blk%!16-Blk%!24 #ȕ more% $ � Hatch% � % height%=Blk%!40-Blk%!32 & xstart%=Blk%!28-height% '% xcorr%=(xstart%-win0x%) � dx% (% ycorr%=(win0y%-Blk%!32) � dx% )4 � x%=xstart%-(xcorr%+ycorr%) � Blk%!36 � dx% * � x%,Blk%!32 + � 1,height%,height% , � x% -% ycorr%=(win0y%-Blk%!40) � dx% .4 � x%=xstart%-(xcorr%-ycorr%) � Blk%!36 � dx% / � x%,Blk%!40 0 � 1,height%,-height% 1 � x% 2 � 3 � SupportInterface% � 4$ ș "Wimp_BorderWindow",,Blk% 5 � 6 � SupportAEH% � 7# ș "AEH_RedrawWindow",,Blk% 8 � 9* ș "Wimp_GetRectangle",,Blk% � more% :� ;� < =.� *** procs for the window-edit window *** > ?� �wined_fillwin(window%) @� no%,flags%,i% AWinEd_Win%=window% BWinBlk%!0=WinEd_Win% Cno%=�whichtemplate(window%) D$ș "Wimp_GetWindowInfo",,WinBlk% Eflags%=WinBlk%!32 F"WinEd_Button%=(WinBlk%!64)>>12 G� i%=0 � 6 H& WinEd_Col%(i%)=(WinBlk%?(36+i%)) I� i% J*�selecticon(WinEdW%,4,flags% � (1<<1)) K*�selecticon(WinEdW%,5,flags% � (1<<4)) L+�selecticon(WinEdW%,6,flags% � (1<<12)) M(�selecticon(WinEdW%,7,PaneFlag%?no%) N*�selecticon(WinEdW%,8,flags% � (1<<6)) O+�selecticon(WinEdW%,9,flags% � (1<<10)) P,�selecticon(WinEdW%,10,flags% � (1<<11)) Q+�selecticon(WinEdW%,11,flags% � (1<<8)) R+�selecticon(WinEdW%,12,flags% � (1<<9)) S,�selecticon(WinEdW%,20,flags% � (1<<31)) T� i%=0 � 6 U6 �selecticon(WinEdW%,13+i%,flags% � (1<<(24+i%))) V� i% W� (flags% � (1<<31))=0 � X1 �selecticon(WinEdW%,14,(flags% � (1<<7))=0) Y1 �selecticon(WinEdW%,13,(flags% � (1<<7))=0) Z- �selecticon(WinEdW%,15,flags% � (1<<0)) [- �selecticon(WinEdW%,17,flags% � (1<<2)) \- �selecticon(WinEdW%,19,flags% � (1<<3)) ]� ^O�settitlebar(WinEdW%,WinEdTbar%,�msg_lookup1("EDTP",$(TemplNames%+28*no%))) _2�seticontext(6,$(WinButton%+20*WinEd_Button%)) `� i%=0 � 6 a( �setcolourbox(2+i%,WinEd_Col%(i%)) b� i% c�wined_shadeicons(-1) d�openwindow(WinEdW%,0) e�setcaret(WinEdW%,-1) f� g h#� �wined_shadeicons(clickedon%) i"� newformat%,titlebar%,scroll% j(newformat%=�iconselected(WinEdW%,20) k'titlebar%=�iconselected(WinEdW%,15) lAscroll%=�iconselected(WinEdW%,17) � �iconselected(WinEdW%,19) m)� (clickedon%=-1) � (clickedon%=20) � n) �shadeicon(WinEdW%,16,� newformat%) o� p)� (clickedon%=-1) � (clickedon%=15) � q( �shadeicon(WinEdW%,13,� titlebar%) r( �shadeicon(WinEdW%,14,� titlebar%) s( �shadeicon(WinEdW%,16,� titlebar%) t� u� (clickedon%<>15) � v5 �shadeicon(WinEdW%,18,newformat% � (� scroll%)) w� x� y z� �wined_readwin {� flags%,no%,i% |WinBlk%!0=WinEd_Win% }$ș "Wimp_GetWindowInfo",,WinBlk% ~!flags%=(WinBlk%!32)�(&1F<<16) 0� �iconselected(WinEdW%,15) � flags%+=(1<<0) �/� �iconselected(WinEdW%,4) � flags%+=(1<<1) �0� �iconselected(WinEdW%,17) � flags%+=(1<<2) �0� �iconselected(WinEdW%,19) � flags%+=(1<<3) �/� �iconselected(WinEdW%,5) � flags%+=(1<<4) �"no%=�whichtemplate(WinEd_Win%) � � �iconselected(WinEdW%,7) � � PaneFlag%?no%=1<<5 �� � PaneFlag%?no%=0 �� �/� �iconselected(WinEdW%,8) � flags%+=(1<<6) �2� � �iconselected(WinEdW%,14) � flags%+=(1<<7) �0� �iconselected(WinEdW%,11) � flags%+=(1<<8) �0� �iconselected(WinEdW%,12) � flags%+=(1<<9) �0� �iconselected(WinEdW%,9) � flags%+=(1<<10) �1� �iconselected(WinEdW%,10) � flags%+=(1<<11) �0� �iconselected(WinEdW%,6) � flags%+=(1<<12) �� i%=0 � 7 �; � �iconselected(WinEdW%,13+i%) � flags%+=(1<<(24+i%)) �� i% �WinBlk%!32=flags% � WinBlk%!64=WinEd_Button%<<12 �� i%=0 � 6 �$ WinBlk%?(36+i%)=WinEd_Col%(i%) �� i% �)WinEd_Win%=�redefinewindow(WinBlk%,1) �� � �,� *** procs for the icon-edit window *** � � � �iced_start(window%,icon%) �� icon%=-4 � � �iced_fillwin(window%,-4) �� � �sel_get(window%) � � NrSelected%>0 � � � NrSelected%=1 � �* �iced_fillwin(window%,SelBlk%!0) � � �$ �iced_fillwin(window%,-1) � � � � � � (icon%>=0) � �& �iced_fillwin(window%,icon%) � � � � �� �� � �"� �iced_fillwin(window%,icon%) �@� no%,flags%,data%,arg$,title$,text%,sprite%,indir%,caretto% �� t$,v$,m$,s$ �IcEd_Win%=window% �IcEd_Icon%=icon% �no%=�whichtemplate(window%) �WinBlk%!0=IcEd_Win% �$ș "Wimp_GetWindowInfo",,WinBlk% �Ȏ icon% � �& � -4 : � editing title bar icon �? flags%=(WinBlk%!60) � &FFF : � mask out irrelevant bits � flags%=flags% � &14 � � (flags% � (1<<6))=0 � �; � copy fg and bg colour flags from window colours �J flags%=(flags% � &FFF) � ((WinBlk%?36)<<24) � ((WinBlk%?37)<<28) � � � data%=WinBlk%+76 �" arg$+=�msg_lookup0("TBAR") �> � -1 : � editing selection (read flags from first icon) � �sel_get(IcEd_Win%) �- flags%=WinBlk%!(92+32*(SelBlk%!0)+16) �* data%=WinBlk%+92+32*(SelBlk%!0)+20 �! arg$+=�msg_lookup0("SEL") � : � editing single icon �, flags%=WinBlk%!(92+32*IcEd_Icon%+16) �) data%=WinBlk%+92+32*IcEd_Icon%+20 �+ arg$+=�msg_lookup1("ICNR",�(icon%)) �� �:title$=�msg_lookup2("EDIC",$(TemplNames%+28*no%),arg$) �text%=(flags% � 1)>0 �sprite%=(flags% � 2)>0 �indir%=(flags% � &100)>0 � � text% � � � indir% � � t$=$(data%!0) � m$=�(data%!8) �% � data%!4<>-1 � v$=$(data%!4) � � � t$=$(data%) � � �� �� sprite% � (� text%) � � � indir% � � s$=$(data%!0) � m$=�(data%!8) � � � s$=$(data%) � � �� �"IcEd_Button%=(flags%>>12) � 15 �IcEd_Esg%=(flags%>>16) � 31 �� (flags% � (1<<6)) � � IcEd_Fgcol%=7 � IcEd_Bgcol%=0 �H �font_getinfo((flags%>>24) � 255,IcEd_Font$,IcEd_Xsize,IcEd_Ysize) �� �# IcEd_Fgcol%=(flags%>>24) � 15 �# IcEd_Bgcol%=(flags%>>28) � 15 �" IcEd_Font$="Homerton.Medium" � IcEd_Xsize=12 � IcEd_Ysize=12 �� �)�settitlebar(IcEdW%,IcEdTbar%,title$) � �selecticon(IcEdW%,12,text%) �"�selecticon(IcEdW%,13,sprite%) �!�selecticon(IcEdW%,14,indir%) ��seticontext(0,t$) ��seticontext(1,s$) ��seticontext(2,v$) ��seticontext(3,m$) �*�selecticon(IcEdW%,15,flags% � (1<<2)) �*�selecticon(IcEdW%,17,flags% � (1<<3)) �*�selecticon(IcEdW%,18,flags% � (1<<4)) �*�selecticon(IcEdW%,16,flags% � (1<<5)) �*�selecticon(IcEdW%,41,flags% � (1<<6)) �*�selecticon(IcEdW%,20,flags% � (1<<7)) �*�selecticon(IcEdW%,19,flags% � (1<<9)) �+�selecticon(IcEdW%,21,flags% � (1<<10)) �+�selecticon(IcEdW%,22,flags% � (1<<11)) +�selecticon(IcEdW%,39,flags% � (1<<22)) 0�seticontext(4,$(IcButton%+20*IcEd_Button%)) �seticontext(5,�(IcEd_Esg%)) �setcolourbox(0,IcEd_Fgcol%) �setcolourbox(1,IcEd_Bgcol%) �seticontext(19,IcEd_Font$) &�seticontext(20,��(IcEd_Xsize),4)) &�seticontext(21,��(IcEd_Ysize),4)) 0�selecticon(IcEdW%,53,IcEd_Xsize=IcEd_Ysize) � i%=12 � 14 ) �shadeicon(IcEdW%,i%,IcEd_Icon%=-1) � i% � IcEd_Icon%=-1 � � i%=23 � 26 �shadeicon(IcEdW%,i%,1) � i% � '�shadeicon(IcEdW%,15,IcEd_Icon%=-4) '�shadeicon(IcEdW%,16,IcEd_Icon%=-4) '�shadeicon(IcEdW%,20,IcEd_Icon%=-4) '�shadeicon(IcEdW%,21,IcEd_Icon%=-4) � i%=27 � 32 ) �shadeicon(IcEdW%,i%,IcEd_Icon%=-4) � i% '�shadeicon(IcEdW%,39,IcEd_Icon%=-4) �iced_shadeicons(-1) �openwindow(IcEdW%,0) caretto%=-1 � IcEd_Icon%<>-1 � � indir% � caretto%=25 � sprite% � caretto%=24 � text% � caretto%=23 � !�setcaret(IcEdW%,caretto%) "� # $"� �iced_shadeicons(clickedon%) %� t%,s%,i%,f%,lockaspect% &� IcEd_Icon%<>-1 � ', � (clickedon%=-1) � (clickedon%<=14) � (# t%=�iconselected(IcEdW%,12) )# s%=�iconselected(IcEdW%,13) *# i%=�iconselected(IcEdW%,14) +" �shadeicon(IcEdW%,23,� t%) ,0 �shadeicon(IcEdW%,24,(� s%) � (t% � i%)) -( �shadeicon(IcEdW%,25,�(t% � i%)) ." �shadeicon(IcEdW%,26,� i%) / � 0� 1f%=�iconselected(IcEdW%,41) 2(lockaspect%=�iconselected(IcEdW%,53) 3)� (clickedon%=-1) � (clickedon%=41) � 4 � i%=33 � 38 5 �shadeicon(IcEdW%,i%,f%) 6 � i% 7 � i%=45 � 49 8" �shadeicon(IcEdW%,i%,� f%) 9 � i% : �shadeicon(IcEdW%,53,� f%) ;� <;� (clickedon%=-1) � (clickedon%=41) � (clickedon%=53) � = � i%=50 � 52 >2 �shadeicon(IcEdW%,i%,(� f%) � lockaspect%) ? � i% @� A)ș "Wimp_GetCaretPosition",,ScrapBlk% B,� �iconshaded(ScrapBlk%!0,ScrapBlk%!4) � C: �setcaret(IcEdW%,-1) : � move caret from shaded icon D� E� F G� �iced_readwin(mask%) H0� flags%,flagptr%,data%,ib%,cbp%,xsize,ysize I � xsize16%,ysize16%,fhandle% J!� i%,t%,s%,deflen%,maxlen%,p% KWinBlk%!0=IcEd_Win% L$ș "Wimp_GetWindowInfo",,WinBlk% MȎ IcEd_Icon% � N& � -4 : � editing title bar icon O flagptr%=WinBlk%+60 P data%=WinBlk%+76 Q> � -1 : � editing selection (read flags from first icon) R �sel_get(IcEd_Win%) S- flagptr%=WinBlk%+92+32*(SelBlk%!0)+16 T* data%=WinBlk%+92+32*(SelBlk%!0)+20 U : � editing single icon V � IcEd_Icon%>=0 � W. flagptr%=WinBlk%+92+32*IcEd_Icon%+16 X+ data%=WinBlk%+92+32*IcEd_Icon%+20 Y& ib%=WinBlk%+92+32*IcEd_Icon% Z � [� \cbp%=WinBlk%!68 ]=� construct new flags, but do not change "selected" state ^!flags%=(flagptr%!0) � (1<<21) _/� �iconselected(IcEdW%,15) � flags%+=(1<<2) `/� �iconselected(IcEdW%,16) � flags%+=(1<<5) a/� �iconselected(IcEdW%,17) � flags%+=(1<<3) b/� �iconselected(IcEdW%,18) � flags%+=(1<<4) c/� �iconselected(IcEdW%,19) � flags%+=(1<<9) d/� �iconselected(IcEdW%,20) � flags%+=(1<<7) e0� �iconselected(IcEdW%,21) � flags%+=(1<<10) f0� �iconselected(IcEdW%,22) � flags%+=(1<<11) g0� �iconselected(IcEdW%,39) � flags%+=(1<<22) hflags%+=(IcEd_Button%<<12) iflags%+=(IcEd_Esg%<<16) j � �iconselected(IcEdW%,41) � k flags%+=(1<<6) l xsize16%=�(IcEd_Xsize*16) m ysize16%=�(IcEd_Ysize*16) n$ � xsize16%<=0 � xsize16%=12*16 o$ � ysize16%<=0 � ysize16%=12*16 pH ș "Font_FindFont",,IconText%(19),xsize16%,ysize16%,0,0 � fhandle% q � FontUsage%(fhandle%)>0 � r? ș "Font_LoseFont",fhandle% : � font was already in use s � t FontUsage%(fhandle%)+=1 u flags%+=(fhandle%<<24) v� w flags%+=(IcEd_Fgcol%<<24) x flags%+=(IcEd_Bgcol%<<28) y� z'� (IcEd_Icon%>=0)�(IcEd_Icon%=-4) � {$ �iconrelease(flagptr%!0,data%) |! t%=�iconselected(IcEdW%,12) }! s%=�iconselected(IcEdW%,13) ~! i%=�iconselected(IcEdW%,14) � s% � (� t%) � �= deflen%=�($(IconText%(1)))+1 : � default maximum size � � �$ deflen%=�($(IconText%(0)))+1 � � � � i% � �" maxlen%=�($(IconText%(3))) � � � maxlen%=12 � � � � maxlen%<deflen% � �N maxlen%=deflen% : � increase max size if text is longer �" �seticontext(3,�(maxlen%)) � � � � (� i%) � (deflen%>12) � �E �selecticon(IcEdW%,14,1) : � make indirected if > 12 chars �A �seticontext(2,"") : � default validation string � �iced_shadeicons(14) � i%=� � � � � t% � flags%+=(1<<0) � � s% � flags%+=(1<<1) � � i% � flags%+=(1<<8) � � i% � � � s% � (� t%) � � data%!0=IconText%(1) �D data%!4=cbp% : � window CBP as default sprite area pointer � � � � t% � � data%!0=IconText%(0) �" � �($(IconText%(2)))>0 � � data%!4=IconText%(2) � � �2 data%!4=-1 : � empty validation string � � � � � data%!8=maxlen% � � � � t% � �" $(data%)=$(IconText%(0)) � � � � s% � �$ $(data%)=$(IconText%(1)) � � � � � � � flagptr%!0=flags% �" �iconrealloc(flagptr%,data%) �� �Ȏ IcEd_Icon% � � � -4 � WinBlk%?36=IcEd_Fgcol% � WinBlk%?37=IcEd_Bgcol% �, IcEd_Win%=�redefinewindow(WinBlk%,1) � � -1 �A � do not change text, sprite and indir flags of selection � mask%=mask% � (� &103) � � NrSelected%>0 � � � i%=0 � NrSelected%-1 �H �seticonstate(IcEd_Win%,SelBlk%!(4*i%),flags% � mask%,mask%) � � i% � � � �dialogue(9,"","") � � � � � IcEd_Icon%>=0 � �> IcEd_Icon%=�redefineicon(IcEd_Win%,IcEd_Icon%,ib%-8) � � � �dialogue(4,"","") � � �� � � �iconselected(IcEdW%,41) � �A � font count was increased earlier when finding font handle � �font_lose(fhandle%) �� ��setchanged(�) �� � �� *** menu procs *** � �'� �menu_add(text$,submenu%,genmsg%) � � handle% �&ș "MenuUtil_Add",,text$ � handle% �;� submenu%<>-1 � ș "MenuUtil_SubMenu",handle%,submenu% �/� genmsg% � ș "MenuUtil_Warning",handle%,1 �=handle% � �*� �menu_addwritable(maxlen%,validstr%) � � handle% �#ș "MenuUtil_Add",,"" � handle% �/ș "MenuUtil_Writable",,1,maxlen%,validstr% �=handle% � �� �preparemenus �� i% �"ș "MenuUtil_Initialise",010,0 �/ș "MenuUtil_New",,"Sprites" � SpritesMenu% �-item_sprview%=�menu_add("View/Edit",-1,0) �-item_sprreload%=�menu_add("Re-load",-1,0) �*item_sprreset%=�menu_add("Reset",-1,0) �� --- iconbar menu �(ș "MenuUtil_New",,Appl$ � MainMenu% �)item_info%=�menu_add("Info",InfoW%,0) �.item_options%=�menu_add("Options...",-1,0) �/item_stats%=�menu_add("Statistics...",-1,0) �Bitem_customsprites%=�menu_add("Custom sprites",SpritesMenu%,0) �%item_quit%=�menu_add("Quit",-1,0) �� --- template-name menu �5ș "MenuUtil_New",," Name: " � TemplNamemenu% �+item_templname%=�menu_addwritable(12,0) �� --- template submenu �)ș "MenuUtil_New",,"" � TemplSubmenu% �6item_copytempl%=�menu_add("Copy",TemplNamemenu%,1) �:item_renametempl%=�menu_add("Rename",TemplNamemenu%,1) �.item_deletetempl%=�menu_add("Delete",-1,0) �.item_savetempl%=�menu_add("Save",SaveW%,1) �*item_opentempl%=�menu_add("Open",-1,0) �,item_closetempl%=�menu_add("Close",-1,0) �� --- template menu �)ș "MenuUtil_New",,Appl$ � TemplMenu% �:item_createtempl%=�menu_add("Create",TemplNamemenu%,1) �0item_template%=�menu_add("",TemplSubmenu%,0) �2item_selalltempl%=�menu_add("Select all",-1,0) �9item_clearseltempl%=�menu_add("Clear selection",-1,0) �0item_deleteall%=�menu_add("Delete all",-1,0) �4item_sorttempl%=�menu_add("Sort templates",-1,0) �)item_save%=�menu_add("Save",SaveW%,1) �)� --- direction menu for icon copying �(ș "MenuUtil_New",,"Copy" � DirMenu% 'item_up%=�menu_add("Up ^U",-1,0) )item_down%=�menu_add("Down ^D",-1,0) )item_left%=�menu_add("Left ^L",-1,0) *item_right%=�menu_add("Right ^R",-1,0) #� --- menu for icon renumbering +ș "MenuUtil_New",,"No.:" � IconNrmenu% 2item_iconnr%=�menu_addwritable(4,NumValidStr%) � --- "dimension" menu .ș "MenuUtil_New",,"Dim." � DimensionMenu% %item_both%=�menu_add("Both",-1,0) "item_xdim%=�menu_add("X",-1,0) "item_ydim%=�menu_add("Y",-1,0) � --- user-template submenu (ș "MenuUtil_New",,"" � UserSubmenu% 7item_copyicon%=�menu_add("Copy ^C",DirMenu%,0) :item_renumbericon%=�menu_add("Renumber",IconNrmenu%,0) 3item_deleteicon%=�menu_add("Delete ^X",-1,0) 1item_editicon%=�menu_add("Edit... ^E",-1,0) ș "MenuUtil_Dots",,1 3item_align%=�menu_add("Align ^J",AlignW%,0) 6item_spaceout%=�menu_add("Space out ^K",SpaceW%,0) 9item_minsize%=�menu_add("Min. size",DimensionMenu%,0) 9item_centericon%=�menu_add("Center",DimensionMenu%,0) :item_samesize%=�menu_add("Same size",DimensionMenu%,0) � --- sprite area menu 8ș "MenuUtil_New",,"Sprites from" � SpriteAreaMenu% .item_wimparea%=�menu_add("Wimp area",-1,0) 2item_customarea%=�menu_add("Custom area",-1,0) � --- "Misc" submenu )ș "MenuUtil_New",,"Misc" � MiscMenu% 6item_centerwin%=�menu_add("Center to screen",-1,0) ?item_spritearea%=�menu_add("Sprite area",SpriteAreaMenu%,0) 0item_tidyicons%=�menu_add("Tidy icons",-1,0) !� --- user-template menu "�standardiconmenu #+ș "MenuUtil_New",,"Window" � UserMenu% $� NrStdIcons%=0 � %4 item_createicon%=�menu_add("Create icon",-1,0) &� '> item_createicon%=�menu_add("Create icon",StdIconMenu%,0) (� )+item_icon%=�menu_add("",UserSubmenu%,0) *;item_selallicons%=�menu_add("Select all ^A",-1,0) +=item_clearselicons%=�menu_add("Clear selection ^Z",-1,0) ,,ș "MenuUtil_Dots",item_clearselicons%,1 -2item_workarea%=�menu_add("Work area",WorkW%,1) .:item_editwindow%=�menu_add("Edit window... ^W",-1,0) /9item_edittitle%=�menu_add("Edit title... ^T",-1,0) 0,item_misc%=�menu_add("Misc",MiscMenu%,0) 18item_closewin%=�menu_add("Close window ^Q",-1,0) 2%� --- menu with icon button-types 34ș "MenuUtil_New",,"Button type" � IcButtonMenu% 4� i%=0 � 15 5/ dummy%=�menu_add($(IcButton%+20*i%),-1,0) 6� i% 7'� --- menu with window button-types 85ș "MenuUtil_New",,"Button type" � WinButtonMenu% 9� i%=0 � 15 :0 dummy%=�menu_add($(WinButton%+20*i%),-1,0) ;� i% <7� --- actual ESG menu is built when Menu is clicked =EsgMenu%=0 >:� --- actual colour menu is built when Menu is clicked ?ColourMenu%=0 @� --- font menu A �fontmenu B� --- font size menu C-ș "MenuUtil_New",,"Size" � FontSizemenu% Dș "MenuUtil_Add",,"10pt" Eș "MenuUtil_Add",,"12pt" Fș "MenuUtil_Add",,"16pt" Gș "MenuUtil_Add",,"20pt" Hș "MenuUtil_Add",,"24pt" Iș "MenuUtil_Add",,"36pt" J6item_fontsize%=�menu_addwritable(5,FpNumValidStr%) K"� --- "partial update" submenu L/ș "MenuUtil_New",,"Other" � UpdateSubmenu% M(item_updbo%=�menu_add("Border",-1,0) N(item_updfi%=�menu_add("Filled",-1,0) O*item_updhc%=�menu_add("H centre",-1,0) P*item_updvc%=�menu_add("V centre",-1,0) Q-item_updrj%=�menu_add("R justified",-1,0) R,item_updnh%=�menu_add("Needs help",-1,0) S.item_updaa%=�menu_add("Allow adjust",-1,0) T+item_updhs%=�menu_add("Half size",-1,0) U(item_updsh%=�menu_add("Shaded",-1,0) V� --- "partial update" menu W-ș "MenuUtil_New",,"Update" � Updatemenu% X-item_updbt%=�menu_add("Button type",-1,0) Y&item_updesg%=�menu_add("ESG",-1,0) Z(item_updfg%=�menu_add("Fg col",-1,0) [(item_updbg%=�menu_add("Bg col",-1,0) \(item_updfont%=�menu_add("Font",-1,0) ];item_updrest%=�menu_add("Other flags",UpdateSubmenu%,0) ^� _ `� �mainmenu a1ș "MenuUtil_Fade",item_stats%,NrTemplates%=0 b9ș "MenuUtil_Fade",item_customsprites%,UserSprites%=1 c� d e*� �templatemenu(� xpos%,� ypos%,icon%) f� t$ g�sel_get(TemplW%) h$� (NrSelected%=0) � (icon%>=0) � i" �selecticon(TemplW%,icon%,1) j SelBlk%!0=icon% k NrSelected%=1 lD TemplMenu_Deselect%=� : � deselect icon when menu is removed? m� n TemplMenu_Deselect%=� o� p t$="" q� NrSelected%>1 � r t$="Selection" s� t � NrSelected%=1 � u( t$=$(TemplNames%+28*(SelBlk%!0)) v � w� x'ș "MenuUtil_Text",TemplSubmenu%,t$ y5ș "MenuUtil_Fade",item_copytempl%,NrSelected%<>1 z7ș "MenuUtil_Fade",item_renametempl%,NrSelected%<>1 {SelFName$=t$ |� NrSelected%>1 � }3 ș "MenuUtil_Text",item_template%,"Selection" ~� ; ș "MenuUtil_Text",item_template%,"Template '"+t$+"'" �� �-ș "MenuUtil_Fade",item_template%,�(t$)=0 �7ș "MenuUtil_Fade",item_selalltempl%,NrTemplates%=0 �8ș "MenuUtil_Fade",item_clearseltempl%,NrSelected%=0 �5ș "MenuUtil_Fade",item_deleteall%,NrTemplates%=0 �5ș "MenuUtil_Fade",item_sorttempl%,NrTemplates%=0 �0ș "MenuUtil_Fade",item_save%,NrTemplates%=0 �QuitAfterSave%=� � xpos%-=64 �� NrSelected%=0 � � ypos%+=22 �� � ypos%+=66 �� �� � �.� �usermenu(� xpos%,� ypos%,window%,icon%) �� t$,st$ ��sel_get(window%) �$� (NrSelected%=0) � (icon%>=0) � � SelBlk%!0=icon% � NrSelected%=1 �� �Ȏ NrSelected% � � � 0 � t$="No icon" � st$=t$ � � 1 � t$="Icon #"+�(SelBlk%!0) � st$=t$ � � t$="Selection" �# st$=�(NrSelected%)+" icons" �� �'ș "MenuUtil_Text",UserSubmenu%,st$ �7ș "MenuUtil_Fade",item_renumbericon%,NrSelected%=0 �0ș "MenuUtil_Fade",item_align%,NrSelected%<2 �3ș "MenuUtil_Fade",item_spaceout%,NrSelected%<2 �2ș "MenuUtil_Text",item_iconnr%,�(NextIconNr%) �3ș "MenuUtil_Fade",item_samesize%,NrSelected%<2 �WinBlk%!0=window% �$ș "Wimp_GetWindowInfo",,WinBlk% �� WinBlk%!68=1 � �. ș "MenuUtil_TickOnly",SpriteAreaMenu%,0 �� �. ș "MenuUtil_TickOnly",SpriteAreaMenu%,1 �� �$ș "MenuUtil_Text",item_icon%,t$ �/ș "MenuUtil_Fade",item_icon%,NrSelected%=0 �5ș "MenuUtil_Fade",item_selallicons%,WinBlk%!88=0 �8ș "MenuUtil_Fade",item_clearselicons%,NrSelected%=0 �3ș "MenuUtil_Fade",item_tidyicons%,WinBlk%!88=0 �6ș "MenuUtil_Fade",item_spritearea%,UserSprites%=1 � xpos%-=64 �� NrSelected%=0 � � ypos%+=22 �� � ypos%+=66 �� �� � �$� �icbuttonmenu(� xpos%,� ypos%) �5ș "MenuUtil_TickOnly",IcButtonMenu%,IcEd_Button% � xpos%+=16 �ypos%+=22+IcEd_Button%*44 �� � �%� �winbuttonmenu(� xpos%,� ypos%) �7ș "MenuUtil_TickOnly",WinButtonMenu%,WinEd_Button% � xpos%+=16 �ypos%+=22+WinEd_Button%*44 �� � �� �esgmenu(� xpos%,� ypos%) �3� EsgMenu%<>0 � ș "MenuUtil_Delete",EsgMenu%,� �� SupportAEH% � �) ș "MenuUtil_New",,"ESG" � EsgMenu% �. dummy%=�menu_addwritable(3,NumValidStr%) �& ș "MenuUtil_Text",,�(IcEd_Esg%) �* dummy%=�menu_add("16 (Action)",-1,0) �2 dummy%=�menu_add("18 (Default action)",-1,0) �, dummy%=�menu_add("19 (Writable)",-1,0) �+ dummy%=�menu_add("20 (Display)",-1,0) �- dummy%=�menu_add("21 (Group box)",-1,0) �0 dummy%=�menu_add("24 (24bit colour)",-1,0) �* dummy%=�menu_add("25 (Slider)",-1,0) � ypos%+=22 �� �) ș "MenuUtil_New",,"ESG" � EsgMenu% � � i%=0 � 15 �$ dummy%=�menu_add(�(i%),-1,0) � � i% � ypos%+=22 � � IcEd_Esg%<=15 � �1 ș "MenuUtil_TickOnly",EsgMenu%,IcEd_Esg% � ypos%+=IcEd_Esg%*44 � � �� � xpos%+=16 �� � �0� �colourmenu(� xpos%,� ypos%,window%,icon%) �*� i%,flags%,current%,bigrange%,transp% �9� ColourMenu%<>0 � ș "MenuUtil_Delete",ColourMenu%,� �Ȏ window% � � � IcEdW% � Ȏ icon% � �% � 34 : current%=IcEd_Fgcol% �% � 37 : current%=IcEd_Bgcol% � � � bigrange%=� � transp%=� � � WinEdW% �* bigrange%=�iconselected(WinEdW%,9) �% transp%=(icon%=27)�(icon%=39) �) current%=WinEd_Col%((icon%-27)�4) �� �� bigrange% � �; � colour menu for colour numbers 0-255 (GCOL colours) �, ș "MenuUtil_New",,"Col" � ColourMenu% �. dummy%=�menu_addwritable(4,NumValidStr%) �% ș "MenuUtil_Text",,�(current%) � � transp% � �! ș "MenuUtil_Add",,"None" �( ș "MenuUtil_Tick",,current%=255 � � �� �+ � colour menu for colour numbers 0-15 , ș "MenuUtil_New",,"Col" � ColourMenu% � i%=0 � 15 ș "MenuUtil_Add",,�(i%) 4 ș "MenuUtil_Colours",,InverseColour%(i%),i% � i% � transp% � ș "MenuUtil_Dots",,1 ! ș "MenuUtil_Add",,"None" � � current%=255 � - ș "MenuUtil_TickOnly",ColourMenu%,16 � 3 ș "MenuUtil_TickOnly",ColourMenu%,current% � � xpos%+=16 ypos%+=22 � (� bigrange%) � � current%=255 � ypos%+=16*44+22 � ypos%+=current%*44 � � � � �fontmenu /� next%,font$,fam$,style$,p%,submenu%,item% )ș "MenuUtil_New",,"Font" � FontMenu% fam$="" next%=0 � f$=�40," ") !7 ș "Font_ListFonts",,FontData%,next%,-1 � ,,next% " � next%<>-1 � # f$=$(FontData%) $ p%=�f$,".") % � p%>0 � & style$=�f$,p%+1) ' f$=�f$,p%-1) ( � ) style$="(Regular)" * � +$ � (f$<>fam$) � (next%<>-1) � , � new font family - fam$=f$ .2 ș "MenuUtil_Add",FontMenu%,fam$ � item% /, ș "MenuUtil_New",,fam$ � submenu% 0. ș "MenuUtil_SubMenu",item%,submenu% 1 � 2) ș "MenuUtil_Add",submenu%,style$ 3 � 4� next%=-1 5� 6 72� �fontsizemenu(� xpos%,� ypos%,window%,icon%) 8� icon%=48 � 99 ș "MenuUtil_Text",item_fontsize%,��(IcEd_Xsize),5) :� ;9 ș "MenuUtil_Text",item_fontsize%,��(IcEd_Ysize),5) <� =ypos%+=7*44 >� ? @0� �updatemenu(� xpos%,� ypos%,window%,icon%) A� font% B"font%=�iconselected(IcEdW%,41) C(ș "MenuUtil_Fade",item_updfg%,font% D(ș "MenuUtil_Fade",item_updbg%,font% E,ș "MenuUtil_Fade",item_updfont%,� font% F ypos%+=22 G� H I,� �createmenu(xpos%,ypos%,window%,icon%) JLastMenu_X%=xpos% KLastMenu_Y%=ypos% LLastMenu_Win%=window% MLastMenu_Icon%=icon% NLastMenu%=-1 OȎ window% � P � -2 Q �mainmenu R LastMenu%=MainMenu% S � TemplW% T( �templatemenu(xpos%,ypos%,icon%) U LastMenu%=TemplMenu% V � IcEdW% W Ȏ icon% � X � 9,10 Y � IcEd_Icon%=-1 � Z4 �updatemenu(xpos%,ypos%,window%,icon%) [# LastMenu%=Updatemenu% \ � ] � 28 ^& �icbuttonmenu(xpos%,ypos%) _# LastMenu%=IcButtonMenu% ` � 31 a! �esgmenu(xpos%,ypos%) b LastMenu%=EsgMenu% c � 34,37 d2 �colourmenu(xpos%,ypos%,window%,icon%) e! LastMenu%=ColourMenu% f � 45,46 g xpos%+=16 h ypos%+=22 i LastMenu%=FontMenu% j � 48,51 k4 �fontsizemenu(xpos%,ypos%,window%,icon%) l# LastMenu%=FontSizemenu% m � n � WinEdW% o Ȏ icon% � p � 23 q' �winbuttonmenu(xpos%,ypos%) r$ LastMenu%=WinButtonMenu% s � 27,31,35,39,43,47,51 t2 �colourmenu(xpos%,ypos%,window%,icon%) u! LastMenu%=ColourMenu% v � w x& � �whichtemplate(window%)>=0 � y. �usermenu(xpos%,ypos%,window%,icon%) z LastMenu%=UserMenu% { � |� }� LastMenu%<>-1 � ~ ScrapBlk%!0=xpos% ScrapBlk%!4=ypos% � ScrapBlk%!12=window% �, ș "MenuUtil_Show",LastMenu%,ScrapBlk% �� �� � �7� *** drag procs; for moving and resizing icons *** � �*� �finishdrag(xmin%,ymin%,xmax%,ymax%) �&� win0x%,win0y%,i%,iconblk%,inbox% �H�setmouseshape(0) : � restore default pointer shape �"� xmin%>xmax% � Ȕ xmin%,xmax% �"� ymin%>ymax% � Ȕ ymin%,ymax% �&ș "Wimp_GetPointerInfo",,PtrInfo% �Ȏ Drag_Type% � �% � 0,1 : � move / resize icon(s) �* � �whichtemplate(PtrInfo%!12)>=0 � � WinBlk%!0=PtrInfo%!12 �* ș "Wimp_GetWindowInfo",,WinBlk% �% win0x%=WinBlk%!4-WinBlk%!20 �& win0y%=WinBlk%!16-WinBlk%!24 �I xmin%-=win0x% : � translate from screen coords to window coords � ymin%-=win0y% � xmax%-=win0x% � ymax%-=win0y% �O �moveresize(Drag_Win%,Drag_Icon%,PtrInfo%!12,xmin%,ymin%,xmax%,ymax%) � � �- � DeleteOutside% � (Drag_Type%=0) � �D � moved icons outside window - delete them if option set �" � i%=0 � NrSelected%-1 �5 �deleteicon(oldwin%,SelBlk%!(4*i%),1,1) � � i% � � � � �6 � 2,3 : � drag-select icons (with Select/Adjust) � WinBlk%!0=Drag_Win% �( ș "Wimp_GetWindowInfo",,WinBlk% �# win0x%=WinBlk%!4-WinBlk%!20 �$ win0y%=WinBlk%!16-WinBlk%!24 � xmin%-=win0x% � xmax%-=win0x% � ymin%-=win0y% � ymax%-=win0y% �> � (WinBlk%!88>0) � ((xmax%-xmin%)+(ymax%-ymin%)>=32) � � � i%=0 � WinBlk%!88-1 �% iconblk%=WinBlk%+92+i%*32 �; inbox%=(iconblk%!0<xmax%) � (iconblk%!8>=xmin%) �E inbox%=inbox% � (iconblk%!4<ymax%) � (iconblk%!12>=ymin%) �) � inbox% � (i%<>Drag_Icon%) � � � Drag_Type%=2 � �+ �selecticon(Drag_Win%,i%,1) � � �3 �seticonstate(Drag_Win%,i%,1<<21,0) � � � � � � i% � � � � 4 : � drag from save-box �. � DragASprite% � ș "DragASprite_Stop" � Blk%!0=60 � Blk%!12=0 � Blk%!16=1 � Blk%!20=PtrInfo%!12 � Blk%!24=PtrInfo%!16 � Blk%!28=PtrInfo%!0 � Blk%!32=PtrInfo%!4 �K Blk%!36=20+112*NrTemplates% : � this is a low estimate of file size � Blk%!40=&FEC � � SavingSelection% � �) $(Blk%+44)=�leafname(SelFName$) � � �* $(Blk%+44)=�leafname(MainFName$) � � �= ș "Wimp_SendMessage",17,Blk%,PtrInfo%!12,PtrInfo%!16 � � 5,6 �8 � window move/resize - do nothing, no drag event �� �Drag_Type%=-1 �� � �2� �initdrag(type%,window%,icon%,box0x%,box0y%) �� b% �Lș "OS_Byte",161,&1C � ,,b% : � read "dragasprite" bit in CMOS RAM (RO3) �DragASprite%=(b% � 2)<>0 � � DragASprite% � (type%=4) � �D ș "DragASprite_Start",&A1,1,"file_fec",DragBlk%+8,DragBlk%+24 �� �" ș "Wimp_DragBox",1,DragBlk% �� �=Drag_Type%=type% : � is not the same as Wimp drag type! �Drag_Win%=window% �Drag_Icon%=icon% �DDrag_Box0x%=box0x% : � window coords of bottomleft corner of box �Drag_Box0y%=box0y% �,Drag_BoxSizex%=�(DragBlk%!16-DragBlk%!8) �-Drag_BoxSizey%=�(DragBlk%!20-DragBlk%!12) �&ș "Wimp_GetPointerInfo",,PtrInfo% �Drag_Ptrx%=PtrInfo%!0 �Drag_Ptry%=PtrInfo%!4 �� � �� �abortdrag � � DragASprite% � (type%=4) � � ș "DragASprite_Stop" �� � ș "Wimp_DragBox",,-1 �� �@�setmouseshape(0) : � restore default pointer shape �Drag_Type%=-1 �� � �� �startwindowmove(window%) �DragBlk%!0=window% �DragBlk%!4=1 ��initdrag(5,-1,-1,0,0) �� � �!� �startwindowresize(window%) �DragBlk%!0=window% �DragBlk%!4=2 ��initdrag(6,-1,-1,0,0) �� � �+� �starticondrag(button%,window%,icon%) �Ȏ button% � � � 1,256 � �sel_get(window%) � � NrSelected%>0 � �& �starticonresize(window%,-1) � 6 � icon%>=0 � �starticonresize(window%,icon%) � � 4,1024 �sel_get(window%) � NrSelected%>0 � $ �starticonmove(window%,-1) � 4 � icon%>=0 � �starticonmove(window%,icon%) � � � #� �starticonmove(window%,icon%) +� win0x%,win0y%,xmin%,xmax%,ymin%,ymax% WinBlk%!0=window% %ș "Wimp_GetWindowState",,WinBlk% win0x%=WinBlk%!4-WinBlk%!20 win0y%=WinBlk%!16-WinBlk%!24 � icon%>=0 � 6 SelBlk%!0=icon% : � simulate selection of 1 icon NrSelected%=1 � �sel_get(window%) � -�sel_box(window%,xmin%,ymin%,xmax%,ymax%) &ș "Wimp_GetPointerInfo",,PtrInfo% DragBlk%!4=5 DragBlk%!8=xmin%+win0x% DragBlk%!12=ymin%+win0y% DragBlk%!16=xmax%+win0x% DragBlk%!20=ymax%+win0y% %DragBlk%!24=DragBlk%!8-PtrInfo%!0 !&DragBlk%!28=DragBlk%!12-PtrInfo%!4 "4DragBlk%!32=ScreenSize_X%+DragBlk%!16-PtrInfo%!0 #4DragBlk%!36=ScreenSize_Y%+DragBlk%!20-PtrInfo%!4 $*�initdrag(0,window%,icon%,xmin%,ymin%) %�setmouseshape(1) &� ' (%� �starticonresize(window%,icon%) )%� ibxmin%,ibxmax%,ibymin%,ibymax% *%� pbxmin%,pbxmax%,pbymin%,pbymax% +� a,b,c ,+� ibsizex%,ibsizey%,minsizex%,minsizey% -� shape% .+� win0x%,win0y%,xmin%,xmax%,ymin%,ymax% /WinBlk%!0=window% 0%ș "Wimp_GetWindowState",,WinBlk% 1win0x%=WinBlk%!4-WinBlk%!20 2 win0y%=WinBlk%!16-WinBlk%!24 3� icon%>=0 � 46 SelBlk%!0=icon% : � simulate selection of 1 icon 5 NrSelected%=1 6� 7 �sel_get(window%) 8� 9-�sel_box(window%,xmin%,ymin%,xmax%,ymax%) :Fibxmin%=win0x%+xmin% : � for initial box, convert to screen coords ;ibymin%=win0y%+ymin% <ibxmax%=win0x%+xmax% =ibymax%=win0y%+ymax% >ibsizex%=xmax%-xmin% ?ibsizey%=ymax%-ymin% @3� at first, set parent box equal to initial box Apbxmin%=ibxmin% Bpbymin%=ibymin% Cpbxmax%=ibxmax% Dpbymax%=ibymax% EC� fixed minimum size of drag box (very difficult to calculate!) Fminsizex%=32 Gminsizey%=32 H-� minsizex%>ibsizex% � minsizex%=ibsizex% I-� minsizey%>ibsizey% � minsizey%=ibsizey% J&� get position of window on screen KWinBlk%!0=window% L%ș "Wimp_GetWindowState",,WinBlk% MD� determine which side to drag - test mouse position relative to N� diagonals of box O2� diagonal 1 (bottomleft-topright) y = a*x + b P3� diagonal 2 (topleft-bottomright) y = -a*x + c Qa=ibsizey%/ibsizex% Rb=ibymin%-a*ibxmin% Sc=ibymax%+a*ibxmin% T&ș "Wimp_GetPointerInfo",,PtrInfo% U%� PtrInfo%!4>(a*(PtrInfo%!0)+b) � V � above diagonal 1 W( � PtrInfo%!4>(-a*(PtrInfo%!0)+c) � X* � above diagonal 2 - drag top side Y: � WinBlk%!16>ibymax% � pbymax%=WinBlk%!16-ibsizey% Z pbymin%+=minsizey% [ shape%=2 \? Ȕ ibymin%,ibymax% : � top side of box must be "rubber" ] � ^+ � below diagonal 2 - drag left side _8 � WinBlk%!4<ibxmin% � pbxmin%=WinBlk%!4+ibsizex% ` pbxmax%-=minsizex% a shape%=5 b@ Ȕ ibxmin%,ibxmax% : � left side of box must be "rubber" c � d� e � below diagonal 1 f( � PtrInfo%!4>(-a*(PtrInfo%!0)+c) � g, � above diagonal 2 - drag right side h1 � pbxmax%<WinBlk%!12 � pbxmax%=WinBlk%!12 i# pbxmin%-=ibsizex%-minsizex% j shape%=3 k � l- � below diagonal 2 - drag bottom side m/ � pbymin%>WinBlk%!8 � pbymin%=WinBlk%!8 n# pbymax%+=ibsizey%-minsizey% o shape%=4 p � q� rDragBlk%!4=6 sDragBlk%!8=ibxmin% tDragBlk%!12=ibymin% uDragBlk%!16=ibxmax% vDragBlk%!20=ibymax% wDragBlk%!24=pbxmin% xDragBlk%!28=pbymin% yDragBlk%!32=pbxmax% zDragBlk%!36=pbymax% {*�initdrag(1,window%,icon%,xmin%,ymin%) |�setmouseshape(shape%) }� ~ � �dragselect(button%) �� Drag_Type%<0 � �( ș "Wimp_GetPointerInfo",,PtrInfo% � DragBlk%!4=6 � DragBlk%!8=PtrInfo%!0 � DragBlk%!12=PtrInfo%!4 � DragBlk%!16=PtrInfo%!0 � DragBlk%!20=PtrInfo%!4 � WinBlk%!0=PtrInfo%!12 �' ș "Wimp_GetWindowState",,WinBlk% � DragBlk%!24=WinBlk%!4 � DragBlk%!28=WinBlk%!8 � DragBlk%!32=WinBlk%!12 � DragBlk%!36=WinBlk%!16 � � button%=1 � �E �initdrag(3,PtrInfo%!12,PtrInfo%!16,0,0) : � drag with Adjust � � �E �initdrag(2,PtrInfo%!12,PtrInfo%!16,0,0) : � drag with Select � � �� �� � �� �startsavedrag �� win0x%,win0y% �WinBlk%!0=SaveW% �%ș "Wimp_GetWindowState",,WinBlk% �win0x%=WinBlk%!4-WinBlk%!20 � win0y%=WinBlk%!16-WinBlk%!24 �ScrapBlk%!0=SaveW% �ScrapBlk%!4=2 �%ș "Wimp_GetIconState",,ScrapBlk% �DragBlk%!4=5 �!DragBlk%!8=ScrapBlk%!8+win0x% �#DragBlk%!12=ScrapBlk%!12+win0y% �#DragBlk%!16=ScrapBlk%!16+win0x% �#DragBlk%!20=ScrapBlk%!20+win0y% �&ș "Wimp_GetPointerInfo",,PtrInfo% �%DragBlk%!24=DragBlk%!8-PtrInfo%!0 �&DragBlk%!28=DragBlk%!12-PtrInfo%!4 �4DragBlk%!32=ScreenSize_X%+DragBlk%!16-PtrInfo%!0 �4DragBlk%!36=ScreenSize_Y%+DragBlk%!20-PtrInfo%!4 ��initdrag(4,SaveW%,-1,0,0) �� � �>� --- move or resize icons, based on new coords of box --- �@� �moveresize(oldwin%,icon%,newwin%,xmin%,ymin%,xmax%,ymax%) �)� oldxmin%,oldymin%,oldxmax%,oldymax% �� xscale,yscale,new%,i% �� icon%>=0 � �6 SelBlk%!0=icon% : � simulate selection of 1 icon � NrSelected%=1 �� � �sel_get(oldwin%) �� �9�sel_box(oldwin%,oldxmin%,oldymin%,oldxmax%,oldymax%) �4� calculate scaling factors (will be 1 for move) �,xscale=(xmax%-xmin%)/(oldxmax%-oldxmin%) �,yscale=(ymax%-ymin%)/(oldymax%-oldymin%) �� i%=0 � NrSelected%-1 � IconBlk%!0=Drag_Win% � IconBlk%!4=SelBlk%!(4*i%) �& ș "Wimp_GetIconState",,IconBlk% �: IconBlk%!8=xmin%+�((IconBlk%!8-oldxmin%)*xscale+0.5) �< IconBlk%!12=ymin%+�((IconBlk%!12-oldymin%)*yscale+0.5) �< IconBlk%!16=xmin%+�((IconBlk%!16-oldxmin%)*xscale+0.5) �< IconBlk%!20=ymin%+�((IconBlk%!20-oldymin%)*yscale+0.5) � � oldwin%=newwin% � �& � move / resize in same window �; new%=�redefineicon(oldwin%,SelBlk%!(4*i%),IconBlk%) � � �1 � move to other other window = copy icons � IconBlk%!4=newwin% �F �iconrealloc(IconBlk%+24,IconBlk%+28) : � copy indirected data �$ new%=�createicon(IconBlk%+4) � � �� i% �� � �5� *** procs for dialogue and reporting errors *** � �� �errbox(err$,boxes%) �ErrBlk%!0=0 �$(ErrBlk%+4)=err$+�0 �8ș "Wimp_ReportError",ErrBlk%,boxes%,Appl$ � ,click% �=(click%=1) � �� �error(forcequit%) � � button% �� � �!� � � ș "Wimp_CloseDown" : � �ș "Hourglass_Smash" �� forcequit% � � button%=2 �� � button%=3 �� �2� (� �errbox(�$+" (line "+�(�)+")",button%)) � � ș "Wimp_CloseDown" � � �� �� � �� �complain(msg$) �� dummy% �dummy%=�errbox(msg$,17) �� � � � �dialogue(no%,arg1$,arg2$) �� b1$,b2$,b3$,mask% � b1$="" � b2$="" � b3$="" �Ȏ no% � � � 0 �' $Dial_Msg%=�msg_lookup0("MOD0") � b1$=�msg_lookup0("SAVE") � b2$=�msg_lookup0("DCRD") � b3$=�msg_lookup0("CANC") � � 1 �' $Dial_Msg%=�msg_lookup0("MOD0") � b1$=�msg_lookup0("DALL") � b3$=�msg_lookup0("CANC") � � 2 �' $Dial_Msg%=�msg_lookup0("MOD0") � b1$=�msg_lookup0("LNEW") � b3$=�msg_lookup0("CANC") � � 3 �- $Dial_Msg%=�msg_lookup1("NORM",arg1$) � b2$=�msg_lookup0("OK") � 4 ' $Dial_Msg%=�msg_lookup0("NUPD") b2$=�msg_lookup0("OK") � 5 ' $Dial_Msg%=�msg_lookup0("NSTF") b2$=�msg_lookup0("OK") � 6 ' $Dial_Msg%=�msg_lookup0("NOCH") b2$=�msg_lookup0("OK") � 7 3 $Dial_Msg%=�msg_lookup2("TIDY",arg1$,arg2$) b2$=�msg_lookup0("OK") � 8 ' $Dial_Msg%=�msg_lookup0("MOD0") b1$=�msg_lookup0("DCRD") b3$=�msg_lookup0("CANC") � 9 ' $Dial_Msg%=�msg_lookup0("NSEL") b2$=�msg_lookup0("OK") � $Dial_Button1%=b1$ $Dial_Button2%=b2$ $Dial_Button3%=b3$ mask%=(1<<2)+(&FF<<24) � �(b1$)=0 � ! � grey colour -> invisible% , �seticonstate0(DialW%,1,&11<<24,mask%) � 5 �seticonstate0(DialW%,1,Dial_ButtonCol1%,mask%) � � �(b2$)=0 � , �seticonstate0(DialW%,2,&11<<24,mask%) � !5 �seticonstate0(DialW%,2,Dial_ButtonCol2%,mask%) "� #� �(b3$)=0 � $, �seticonstate0(DialW%,3,&11<<24,mask%) %� &5 �seticonstate0(DialW%,3,Dial_ButtonCol3%,mask%) '� (ScrapBlk%!0=DialW% )'ș "Wimp_GetWindowState",,ScrapBlk% *9ș "Wimp_CreateMenu",,DialW%,ScrapBlk%!4,ScrapBlk%!16 +LastDialogue%=no% ,� - .� *** heap procs *** / 0� �heap_init 1>Heap%=� : � heap starts just after end of allocated memory 2&ș "OS_ReadMemMapInfo" � PageSize% 3E� enlarge wimpslot (1 page) and create private heap in new memory 4SlotSize%=Heap%-&8000 59ș "Wimp_SlotSize",SlotSize%+PageSize%,-1 � SlotSize% 6HeapEnd%=SlotSize%+&8000 78� HeapEnd%<=Heap% � � 0,"Can't claim space for heap" 8(ș "OS_Heap",0,Heap%,,HeapEnd%-Heap% 9� : ;� �heap_get(size%) <(� maxfree%,nrpages%,oldheapend%,ptr% =%ș "OS_Heap",1,Heap% � ,,maxfree% >� size%>maxfree% � ?J � largest free block is too small - try to enlarge wimpslot and heap @C nrpages%=1+(size% � PageSize%) : � required # pages of memory AD ș "Wimp_SlotSize",SlotSize%+nrpages%*PageSize%,-1 � SlotSize% B oldheapend%=HeapEnd% C HeapEnd%=SlotSize%+&8000 D0 ș "OS_Heap",5,Heap%,,HeapEnd%-oldheapend% EB ș "OS_Heap",1,Heap% � ,,maxfree% : � do we have enough now? F� G� size%>maxfree% � H% �complain(�msg_lookup0("NOHP")) I ptr%=-1 J� K* ș "OS_Heap",2,Heap%,,size% � ,,ptr% L� M =ptr% N O� �heap_release(ptr%) P� maxfree%,nrpages%,flg% Qș "OS_Heap",3,Heap%,ptr% R%ș "OS_Heap",1,Heap% � ,,maxfree% S� maxfree%>PageSize% � TA � more than 1 page free - try to shrink heap (page by page) U, nrpages%=0 : � # pages of memory freed V � W1 ș "XOS_Heap",5,Heap%,,-PageSize% � ;flg% X � (flg% � 1)=0 � Y nrpages%+=1 Z � [ � (flg% � 1)<>0 \ � nrpages%>0 � ]4 � successfully shrunk heap - shrink WimpSlot ^F ș "Wimp_SlotSize",SlotSize%-nrpages%*PageSize%,-1 � SlotSize% _ HeapEnd%=SlotSize%+&8000 ` � a5 ș "OS_Heap",5,Heap%,,(HeapEnd%-Heap%)-Heap%!12 b� c� d e6� *** service procs; interface with SWIs, etc. *** f gM� --- change a variable with given difference, but keep inside bounds --- h-� �changevar(� var%,diff%,up%,low%,high%) i � oldval% joldval%=var% k� up% � l var%+=diff% m� n var%-=diff% o� p� var%>high% � var%=high% q� var%<low% � var%=low% r� return TRUE if changed s=(oldval%<>var%) t u� �readvarval(var$) v � len% w2ș "OS_ReadVarVal",var$,VarBuf%,256,0 � ,,len% xVarBuf%?len%=13 y=$(VarBuf%) z {>� --- return name of icon to display in browser window --- | � �windowicon(wflags%,open%) }$� sname$,tbar%,hscroll%,vscroll% ~� wflags% � (1<<31) � ! tbar%=(wflags% � (1<<26))>0 �$ hscroll%=(wflags% � (1<<30))>0 �$ vscroll%=(wflags% � (1<<28))>0 �� � tbar%=(wflags% � (1<<0))>0 �# hscroll%=(wflags% � (1<<3))>0 �# vscroll%=(wflags% � (1<<2))>0 �� �sname$="Swin_" �� tbar% � sname$+="t" �� hscroll% � sname$+="h" �� vscroll% � sname$+="v" �� open% � sname$+="o" �=sname$ � �� �modevar(mode%,v%) � � val% �.ș "OS_ReadModeVariable",mode%,v% � ,,val% � =val% � �� �readscreenvars �#� xeig%,yeig%,xpixels%,ypixels% �xeig%=�modevar(-1,4) �yeig%=�modevar(-1,5) �xpixels%=�modevar(-1,11) �ypixels%=�modevar(-1,12) �9PixToOS_X%=1<<xeig% : � # OS units that 1 pixel takes �PixToOS_Y%=1<<yeig% �EScreenSize_X%=(xpixels%+1)*PixToOS_X% : � screen size in OS units �)ScreenSize_Y%=(ypixels%+1)*PixToOS_Y% �8� grid size must be multiple of # OS units per pixel �� Grid_SizeX%<PixToOS_X% � � Grid_SizeX%=PixToOS_X% �� �- Grid_SizeX%-=(Grid_SizeX% � PixToOS_X%) �� �� Grid_SizeY%<PixToOS_Y% � � Grid_SizeY%=PixToOS_Y% �� �- Grid_SizeY%-=(Grid_SizeY% � PixToOS_Y%) �� �#�seticontext(28,�(Grid_SizeX%)) �#�seticontext(29,�(Grid_SizeY%)) �� Grid_PosX%<PixToOS_X% � � Grid_PosX%=PixToOS_X% �� �+ Grid_PosX%-=(Grid_PosX% � PixToOS_X%) �� �� Grid_PosY%<PixToOS_Y% � � Grid_PosY%=PixToOS_Y% �� �+ Grid_PosY%-=(Grid_PosY% � PixToOS_Y%) �� �"�seticontext(30,�(Grid_PosX%)) �"�seticontext(31,�(Grid_PosY%)) �6TemplW_MaxCol%=(ScreenSize_X%-100) � TemplW_IconX% �� � �� �setcaret(window%,icon%) �� l% �� icon%>=0 � � ScrapBlk%!0=window% � ScrapBlk%!4=icon% �' ș "Wimp_GetIconState",,ScrapBlk% � l%=�($(ScrapBlk%!28)) �6 ș "Wimp_SetCaretPosition",window%,icon%,,,-1,l% �� � � invisible caret �5 ș "Wimp_SetCaretPosition",window%,-1,0,0,1<<25 �� �� � �� �setmouseshape(i%) �� n$,xoff%,yoff% �Ȏ i% � �# � 0 : � default pointer shape � n$="ptr_default" � xoff%=0 � yoff%=0 �+ � 1 : � hand pointer for moving icons � n$="ptr_hand" � xoff%=7 � yoff%=6 �; � 2 : � pointer for resizing icons, dragging top side � n$="ptr_sizet" � xoff%=7 � yoff%=6 �= � 3 : � pointer for resizing icons, dragging right side � n$="ptr_sizer" � xoff%=5 � yoff%=5 �> � 4 : � pointer for resizing icons, dragging bottom side � n$="ptr_sizeb" � xoff%=7 � yoff%=4 �< � 5 : � pointer for resizing icons, dragging left side � n$="ptr_sizel" � xoff%=10 � yoff%=5 �� �Mouse_Ptt%!0=&03020100 �� i%=0 � �; ș "Wimp_SpriteOp",36,,n$,&2,xoff%,yoff%,0,Mouse_Ptt% �� �I ș "OS_SpriteOp",&100+36,SysSprites%,n$,&2,xoff%,yoff%,0,Mouse_Ptt% �� �MouseShape%=i% �� � �F� --- re-allocate indirected icon data and increase font count --- �"� �iconrealloc(flagptr%,data%) �� flags%,s$,s%,len% �flags%=flagptr%!0 �� (flags% � &800100)=&100 � � s$=�str(data%!0) �? len%=data%!8 : � don't allocate actual size! �A � len%>256 � len%=256 : � Basic can't handle longer strings � s%=�heap_get(len%) � � s%>0 � � $(s%)=�s$,len%-1) � data%!0=s% �( � (flags% � 1) � (data%!4<>-1) � �) � re-allocate validation string � s$=�str(data%!4) � s%=�heap_get(�s$+1) � � s%>0 � � $(s%)=s$ � data%!4=s% � � data%!4=-1 � � � G � allocation failed - make non-indirected and store first chars * flagptr%!0=flagptr%!0 � (� (1<<8)) $data%=�s$,11) � � � (flags% � &800040)=&40 � ! FontUsage%((flags%)>>24)+=1 � � B� --- release indirected icon data and decrease font count --- � �iconrelease(flags%,data%) � (flags% � &800100)=&100 � �heap_release(data%!0) ( � (flags% � 1) � (data%!(4)<>-1) � # � release validation string �heap_release(data%!4) � � � (flags% � &800040)=&40 � �font_lose(flags%>>24) � � � --- open a window --- +� pos% = 0 -> at current position *� 1 -> centered to screen 4� 2 -> centered unless already open =� 3 -> in topleft corner unless already open !>� 4 -> in topright corner unless already open "� �openwindow(handle%,pos%) #� notopen%,cx%,cy%,dx%,dy% $ScrapBlk%!0=handle% %'ș "Wimp_GetWindowState",,ScrapBlk% &)notopen%=((ScrapBlk%!32 � (1<<16))=0) ' dx%=0 ( dy%=0 ) Ȏ pos% � * � 1,2 + � (pos%=1) � notopen% � ,# � center window to screen - cx%=ScreenSize_X% � 2 . cy%=ScreenSize_Y% � 2 /0 dx%=cx%-(ScrapBlk%!12+ScrapBlk%!4) � 2 00 dy%=cy%-(ScrapBlk%!16+ScrapBlk%!8) � 2 1 � 2 � 3 3 � notopen% � 4 dx%=-ScrapBlk%!4 5( dy%=ScreenSize_Y%-ScrapBlk%!16 6 � 7 � 4 8 � notopen% � 9( dx%=ScreenSize_X%-ScrapBlk%!12 :( dy%=ScreenSize_Y%-ScrapBlk%!16 ; � <� =ScrapBlk%!4=ScrapBlk%!4+dx% >ScrapBlk%!8=ScrapBlk%!8+dy% ?!ScrapBlk%!12=ScrapBlk%!12+dx% @!ScrapBlk%!16=ScrapBlk%!16+dy% AScrapBlk%!28=-1 B#ș "Wimp_OpenWindow",,ScrapBlk% C.� handle%=OptionsW% � �openpane(OptPaneW%) D� E F� �closewindow(handle%) G� i% HScrapBlk%!0=handle% I$ș "Wimp_CloseWindow",,ScrapBlk% JȎ handle% � K � TemplW% L ScrapBlk%!0=IcInfoW% M( ș "Wimp_CloseWindow",,ScrapBlk% N � NrTemplates%>0 � O! � i%=0 � NrTemplates%-1 P �closetemplate(i%) Q � i% R � S � OptionsW% T ScrapBlk%!0=OptPaneW% U( ș "Wimp_CloseWindow",,ScrapBlk% V� W� X Y� �openpane(handle%) Z� behind%,x%,y% [Ȏ handle% � \ � OptPaneW% ] ScrapBlk%!0=OptionsW% ^@ x%=16 : � distance from topleft corner of parent window _ y%=-16 `� a'ș "Wimp_GetWindowState",,ScrapBlk% bx%+=ScrapBlk%!4 cy%+=ScrapBlk%!16 dbehind%=ScrapBlk%!28 eScrapBlk%!0=handle% f'ș "Wimp_GetWindowState",,ScrapBlk% g.ScrapBlk%!12=x%+(ScrapBlk%!12-ScrapBlk%!4) h-ScrapBlk%!8=y%-(ScrapBlk%!16-ScrapBlk%!8) iScrapBlk%!4=x% jScrapBlk%!16=y% kScrapBlk%!28=behind% l#ș "Wimp_OpenWindow",,ScrapBlk% m� n o� �opentemplate(no%) p� no%>=0 � q# ScrapBlk%!0=TemplHandle%(no%) r) ș "Wimp_GetWindowState",,ScrapBlk% s$ � (ScrapBlk%!32 � (1<<16))=0 � t ScrapBlk%!28=-1 u' ș "Wimp_OpenWindow",,ScrapBlk% v< $(TemplNames%+28*no%+14)=�windowicon(ScrapBlk%!32,1) w' �seticonstate0(TemplW%,no%,0,0) x8 � TemplatesOpen%=0 � PollMask%=PollMask% � (� 1) y TemplatesOpen%+=1 z' �setcaret(TemplHandle%(no%),-1) { � |� }� ~ � �closetemplate(no%) �� no%>=0 � �# ScrapBlk%!0=TemplHandle%(no%) �) ș "Wimp_GetWindowState",,ScrapBlk% �$ � (ScrapBlk%!32 � (1<<16))>0 � �( ș "Wimp_CloseWindow",,ScrapBlk% �+ ș "Wimp_GetWindowState",,ScrapBlk% �< $(TemplNames%+28*no%+14)=�windowicon(ScrapBlk%!32,0) �' �seticonstate0(TemplW%,no%,0,0) �< � TemplHandle%(no%)=IcEd_Win% � �closewindow(IcEdW%) �> � TemplHandle%(no%)=WinEd_Win% � �closewindow(WinEdW%) � TemplatesOpen%-=1 �4 � TemplatesOpen%=0 � PollMask%=PollMask% � 1 � � �� �� � �)� --- convert string to uppercase --- �� �upcase(s$) �� i% �� i%=1 � �(s$) � a%=�(�s$,i%,1)) � � (a%>=97)�(a%<=122) � � �s$,i%,1)=�(a%-32) � � �� i% �=s$ � �1� --- split off leaf name from a filename --- �� �leafname(f$) �� p%,q% �q%=0 �� � p%=q%+1 � q%=�f$,".",p%) � � q%=0 �=�f$,p%) � �6� --- split off directory name from a filename --- �� �dirname(f$) �� p%,q% �p%=1 �� � q%=�f$,".",p%) � � q% > 0 � p%=q%+1 � � q%=0 �=�f$,p%-2) � �D� --- get the control-terminated string at the given address --- �� �str(s%) �� i%,n$ �i%=0 �ȕ (s%?i%>=32) � (i%<255) � n$+=�(s%?i%) � i%+=1 �� �=n$ � �� �fileexists(f$) �� type% �type%=0 �� �(f$)>0 � � ș "OS_File",17,f$ � type% �� �=(type%=1) � �1� --- set icon state in a template window --- �,� �seticonstate(window%,icon%,eor%,clr%) �� oldflags%,newflags% �ScrapBlk%!0=window% �ScrapBlk%!4=icon% �%� check if font usage is changing �%ș "Wimp_GetIconState",,ScrapBlk% �oldflags%=ScrapBlk%!24 �)newflags%=(oldflags% � � clr%) � eor% �!� (newflags% � &800040)=&40 � �" FontUsage%(newflags%>>24)+=1 �� �!� (oldflags% � &800040)=&40 � � �font_lose(oldflags%>>24) �� �ScrapBlk%!8=eor% �ScrapBlk%!12=clr% �� SupportAEH% � �% ș "AEH_SetIconState",,ScrapBlk% �� �& ș "Wimp_SetIconState",,ScrapBlk% �� �� � �<� --- set icon state in one of TemplEd's own windows --- �-� �seticonstate0(window%,icon%,eor%,clr%) �� oldflags%,newflags% �ScrapBlk%!0=window% �ScrapBlk%!4=icon% �ScrapBlk%!8=eor% �ScrapBlk%!12=clr% �%ș "Wimp_SetIconState",,ScrapBlk% �� � �#� �selecticon(window%,icon%,f%) �� oldflag% �ScrapBlk%!0=window% �ScrapBlk%!4=icon% �%ș "Wimp_GetIconState",,ScrapBlk% �%oldflag%=(ScrapBlk%!24) � (1<<21) � � f% � � ScrapBlk%!8=1<<21 �� � ScrapBlk%!8=0 �� �ScrapBlk%!12=1<<21 �� oldflag%<>ScrapBlk%!8 � � � only set when changing � � SupportAEH% � �' ș "AEH_SetIconState",,ScrapBlk% � � �( ș "Wimp_SetIconState",,ScrapBlk% � � �� �� � �"� �iconselected(window%,icon%) �ScrapBlk%!0=window% �ScrapBlk%!4=icon% �%ș "Wimp_GetIconState",,ScrapBlk% �#=((ScrapBlk%!24) � (1<<21)) > 0 � �"� �shadeicon(window%,icon%,f%) � oldflag% ScrapBlk%!0=window% ScrapBlk%!4=icon% %ș "Wimp_GetIconState",,ScrapBlk% %oldflag%=(ScrapBlk%!24) � (1<<22) � f% � ScrapBlk%!8=(1<<22) � ScrapBlk%!8=0 � ScrapBlk%!12=1<<22 � oldflag%<>ScrapBlk%!8 � � only set when changing � SupportAEH% � ' ș "AEH_SetIconState",,ScrapBlk% � ( ș "Wimp_SetIconState",,ScrapBlk% � � � � �iconshaded(window%,icon%) ScrapBlk%!0=window% ScrapBlk%!4=icon% %ș "Wimp_GetIconState",,ScrapBlk% #=((ScrapBlk%!24) � (1<<22)) > 0 P� --- store pointer to indirected text icon (for use in PROCseticontext) --- '� �linkicontext(index%,wbuf%,icon%) ,IconText%(index%)=wbuf%!(92+icon%*32+20) !IconTextWhdl%(index%)=wbuf%!0 IconTextIhdl%(index%)=icon% � ! " � �seticontext(index%,text$) #$(IconText%(index%))=text$ $C�seticonstate0(IconTextWhdl%(index%),IconTextIhdl%(index%),0,0) %� & '8� --- store pointer to text of colour-select-box --- ('� �linkcseltext(index%,wbuf%,icon%) ),CselText%(index%)=wbuf%!(92+icon%*32+20) *!CselTextWhdl%(index%)=wbuf%!0 +CselTextIhdl%(index%)=icon% ,� - .4� --- set colour number in colour-select-box --- /#� �setcolourbox(index%,colour%) 0� c$,boxcol% 1c$=�(colour%) 2� colour%=&FF � c$="--" 3$(CselText%(index%))=c$ 4boxcol%=&07 5� colour%<16 � 62 boxcol%=(colour%<<4)+InverseColour%(colour%) 7� 8boxcol%=boxcol%<<24 9O�seticonstate0(CselTextWhdl%(index%),CselTextIhdl%(index%),boxcol%,&FF<<24) :� ; <"� --- change colour number --- =<� �changecolourbox(index%,� colour%,diff%,up%,bigrange%) >� newcolour% ?� up% � @ newcolour%=colour%+diff% A� B newcolour%=colour%-diff% C� D:� (newcolour% � &FF)=255 � newcolour%=newcolour%+diff% E� bigrange% � FE newcolour%=newcolour% � &FF : � colours range from 0-255 G� HB � newcolour%<0 � newcolour%=0 : � colours range from 0-15 I% � newcolour%>&F � newcolour%=&F J� K� newcolour%<>colour% � L colour%=newcolour% M# �setcolourbox(index%,colour%) N� O� P QH� --- find number of template corresponding with a window handle --- R� �whichtemplate(handle%) S� i% Ti%=0 U6ȕ (TemplHandle%(i%)<>handle%) � (i%<NrTemplates%) V i%+=1 W� XK� i%=NrTemplates% � i%=-1 : � handle does not belong to template window Y=i% Z [+� �settitlebar(handle%,textptr%,title$) \� xmax%,ymax% ]$(textptr%)=title$ ^ScrapBlk%!0=handle% _)ș "Wimp_GetWindowOutline",,ScrapBlk% `xmax%=ScrapBlk%!12 aymax%=ScrapBlk%!16 b'ș "Wimp_GetWindowState",,ScrapBlk% c � (ScrapBlk%!32 � (1<<16)) � dC ș "Wimp_ForceRedraw",-1,ScrapBlk%!4,ScrapBlk%!16,xmax%,ymax% e� f� g h3� --- delete all selected icons in a window --- i&� �deleteiconsel(window%,default%) j� i% k�sel_get(window%) l� NrSelected%>0 � m � i%=0 � NrSelected%-1 n/ �deleteicon(window%,SelBlk%!(4*i%),1,1) o � i% p� q5 � nothing selected - delete icon no. <default%> r7 � default%>=0 � �deleteicon(window%,default%,1,1) s� tNrSelected%=0 u� v w2� �deleteicon(win%,icon%,release%,adjustvars%) xScrapBlk%!0=win% yScrapBlk%!4=icon% z%ș "Wimp_GetIconState",,ScrapBlk% {� release% � |- �iconrelease(ScrapBlk%!24,ScrapBlk%+28) }� ~#ș "Wimp_DeleteIcon",,ScrapBlk% ]ș "Wimp_ForceRedraw",win%,ScrapBlk%!8-20,ScrapBlk%!12-20,ScrapBlk%!16+20,ScrapBlk%!20+20 �� adjustvars% � �/ � (win%=IcEd_Win%) � (icon%=IcEd_Icon%) � � IcEd_Icon%=-1000 � � �7 � (win%=LastMenu_Win%) � (icon%=LastMenu_Icon%) � � LastMenu_Icon%=-1 � � �� ��setchanged(�) �� � �� �createicon(blk%) �)� dxmin%,dymin%,dxmax%,dymax%,handle% �� Grid_PosLock% � �) dxmin%=�griddiff(blk%!4,Grid_PosX%) �) dymin%=�griddiff(blk%!8,Grid_PosY%) � blk%!4=blk%!4-dxmin% � blk%!8=blk%!8-dymin% � blk%!12=blk%!12-dxmin% � blk%!16=blk%!16-dymin% �� �� Grid_SizeLock% � �* dxmin%=�griddiff(blk%!4,Grid_SizeX%) �* dymin%=�griddiff(blk%!8,Grid_SizeY%) �+ dxmax%=�griddiff(blk%!12,Grid_SizeX%) �+ dymax%=�griddiff(blk%!16,Grid_SizeY%) �� �J dxmin%=�griddiff(blk%!4,PixToOS_X%): � round coords to screen pixels �) dymin%=�griddiff(blk%!8,PixToOS_Y%) �* dxmax%=�griddiff(blk%!12,PixToOS_X%) �* dymax%=�griddiff(blk%!16,PixToOS_Y%) �� �blk%!4=blk%!4-dxmin% �blk%!8=blk%!8-dymin% �blk%!12=blk%!12-dxmax% �blk%!16=blk%!16-dymax% �(ș "Wimp_CreateIcon",,blk% � handle% �Jș "Wimp_ForceRedraw",blk%!0,blk%!4-12,blk%!8-12,blk%!12+12,blk%!16+12 �9� handle%>MaxIcons% � �complain(�msg_lookup0("MICX")) ��setchanged(�) �=handle% � �7� --- calculate distance from nearest gridpoint --- �� �griddiff(c%,gridsize%) �� diff% �diff%=c% � gridsize% �� c%<0 � �2 � (-diff%)>(gridsize%>>1) � diff%+=gridsize% �� �/ � diff%>(gridsize%>>1) � diff%-=gridsize% �� � =diff% � �1� --- copy all selected icons in a window --- �(� �copyiconsel(window%,� icon%,dir%) �0� i%,xmin%,ymin%,xmax%,ymax%,dx%,dy%,handle% ��sel_get(window%) �$� (NrSelected%=0) � (icon%>=0) � � SelBlk%!0=icon% � NrSelected%=1 �� �-�sel_box(window%,xmin%,ymin%,xmax%,ymax%) � Ȏ dir% � �J � 0 : dx%=16 : dy%=-16 : � fixed distance (a bit lower+right) �/ � 1 : dx%=0 : dy%=ymax%-ymin% : � copy up �1 � 2 : dx%=0 : dy%=ymin%-ymax% : � copy down �1 � 3 : dx%=xmin%-xmax% : dy%=0 : � copy left �2 � 4 : dx%=xmax%-xmin% : dy%=0 : � copy right �� �� NrSelected%>0 � � � i%=0 � NrSelected%-1 � � copy icon � ScrapBlk%!0=window% �" ScrapBlk%!4=SelBlk%!(4*i%) �) ș "Wimp_GetIconState",,ScrapBlk% � ScrapBlk%!4=window% �# ScrapBlk%!8=ScrapBlk%!8+dx% �% ScrapBlk%!12=ScrapBlk%!12+dy% �% ScrapBlk%!16=ScrapBlk%!16+dx% �% ScrapBlk%!20=ScrapBlk%!20+dy% �H �iconrealloc(ScrapBlk%+24,ScrapBlk%+28) : � copy indirected data �( handle%=�createicon(ScrapBlk%+4) �5 � deselect originals - copies remain selected �- �selecticon(window%,SelBlk%!(4*i%),0) � � i% � � icon%>=0 � icon%=handle% � �sel_get(window%) �� �� � �4� --- replace window definition with new one --- �(� �redefinewindow(wbuf%,setchanged%) �(� oldhandle%,no%,wasopen%,newhandle% �oldhandle%=wbuf%!0 �"no%=�whichtemplate(oldhandle%) �ScrapBlk%!0=oldhandle% �'ș "Wimp_GetWindowState",,ScrapBlk% �%wasopen%=(ScrapBlk%!32) � (1<<16) �!ș "Wimp_DeleteWindow",,wbuf% �0ș "Wimp_CreateWindow",,wbuf%+4 � newhandle% �wbuf%!0=newhandle% �� no%<>-1 � �" TemplHandle%(no%)=newhandle% �� �� oldhandle%=IcEd_Win% � � IcEd_Win%=newhandle% � � IcEd_Icon%>=0 � �3 IcEd_Icon%=-1000 : � invalidate icon handle � � �� �3� oldhandle%=WinEd_Win% � WinEd_Win%=newhandle% � � oldhandle%=LastMenu_Win% � � LastMenu_Win%=newhandle% � LastMenu_Icon%=-1 �� �� wasopen% � �! ș "Wimp_OpenWindow",,wbuf% �� �;$(TemplNames%+28*no%+14)=�windowicon(wbuf%!32,wasopen%) �#�seticonstate0(TemplW%,no%,0,0) �"� setchanged% � �setchanged(�) �=newhandle% � �2� --- replace icon definition with new one --- �'� �redefineicon(window%,icon%,blk%) �� newicon% �"�deleteicon(window%,icon%,0,0) �K� new icon data must start at blk%+8 (as returned by Wimp_GetIconState) blk%!4=window% newicon%=�createicon(blk%+4) 0� (window%=IcEd_Win%) � (icon%=IcEd_Icon%) � IcEd_Icon%=newicon% � 8� (window%=LastMenu_Win%) � (icon%=LastMenu_Icon%) � LastMenu_Icon%=newicon% � =newicon% B� --- renumber an icon; new number is equal to NextIconNr% --- $� �renumbericon(� window%,icon%) � i%,ip1%,ip2%,temp% WinBlk%!0=window% $ș "Wimp_GetWindowInfo",,WinBlk% ,� icon%>=WinBlk%!88 � icon%=WinBlk%!88-1 8� NextIconNr%>=WinBlk%!88 � NextIconNr%=WinBlk%!88-1 ip1%=WinBlk%+92+icon%*32 "ip2%=WinBlk%+92+NextIconNr%*32 0� swap icon data blocks in window definition � i%=0 � 28 � 4 temp%=ip1%!i% ip1%!i%=ip2%!i% ip2%!i%=temp% � i% &window%=�redefinewindow(WinBlk%,1) � G� --- renumber selected icons, ordering based on topleft coords --- !� �renumbericonsel(� window%) � i%,j%,f%,l% �sel_get(window%) "�sel_sort(window%,1,1,0,0,0,1) !>ș "Wimp_WhichIcon",window%,SelBlk2%,(1<<21)+(1<<23),1<<21 "WinBlk%!0=window% #$ș "Wimp_GetWindowInfo",,WinBlk% $Bf%=NextIconNr% : � first number of new numbering %0l%=NextIconNr%+NrSelected%-1 : � last number &� l%>=WinBlk%!88 � 'K l%=WinBlk%!88-1 : � make sure new numbers are within range ( f%=l%-(NrSelected%-1) )� *j%=0 +� i%=0 � NrSelected%-1 ,: � replace icon with i%-th icon from sorted selection -8 �replaceicon(WinBlk%,f%+i%,window%,SelBlk%!(4*i%)) .( � � �iconselected(window%,f%+i%) � /M � data of unselected icon overwritten - find new number for this icon 08 ȕ (SelBlk2%!(4*j%)>=f%) � (SelBlk2%!(4*j%)<=l%) 1 j%+=1 2 � 3; �replaceicon(WinBlk%,SelBlk2%!(4*j%),window%,f%+i%) 4 j%+=1 5 � 6� i% 7&window%=�redefinewindow(WinBlk%,1) 8NextIconNr%=l%+1 9� : ;=� --- set selected icons to same size as topleft icon --- <-� �samesizeiconsel(window%,default%,dim%) =� i%,xsize%,ysize%,handle% >�sel_get(window%) ?'� (NrSelected%=0) � (default%>=0) � @ SelBlk%!0=default% A NrSelected%=1 B� C� NrSelected%>0 � D$ �sel_sort(window%,1,1,0,0,0,1) E IconBlk%!0=window% F IconBlk%!4=SelBlk%!0 G& ș "Wimp_GetIconState",,IconBlk% H# xsize%=IconBlk%!16-IconBlk%!8 I$ ysize%=IconBlk%!20-IconBlk%!12 J � i%=0 � NrSelected%-1 K IconBlk%!0=window% L! IconBlk%!4=SelBlk%!(4*i%) M( ș "Wimp_GetIconState",,IconBlk% N1 � dim%<>2 � IconBlk%!16=IconBlk%!8+xsize% O2 � dim%<>1 � IconBlk%!20=IconBlk%!12+ysize% P> handle%=�redefineicon(window%,SelBlk%!(4*i%),IconBlk%) Q � i% R� S� T UI� --- in wbuf%, replace data for icon ic1% with data of icon ic2% --- V+� �replaceicon(wbuf%,ic1%,window%,ic2%) W� ib%,temp1%,temp2% Xib%=wbuf%+92+32*ic1% Y?temp1%=ib%!(-8) : � save 2 words just before the icon block Ztemp2%=ib%!(-4) [ib%!(-8)=window% \ib%!(-4)=ic2% ]9ș "Wimp_GetIconState",,ib%-8 : � get icon data block ^+ib%!(-8)=temp1% : � restore the 2 words _ib%!(-4)=temp2% `� a b1� --- update contents of icon info window --- c� �icinf_update d5� no%,t$,i$,xmin$,xmax$,ymin$,ymax$,s$,mx%,my%,m$ e+� showicondata%,xmin%,xmax%,ymin%,ymax% f&ș "Wimp_GetPointerInfo",,PtrInfo% g#no%=�whichtemplate(PtrInfo%!12) h t$="" i i$="" jxmin$="" kxmax$="" lymin$="" mymax$="" n s$="" o m$="" pshowicondata%=� q� (no%>=0) � r t$=$(TemplNames%+28*no%) s � PtrInfo%!16>=-1 � t ScrapBlk%!0=PtrInfo%!12 u+ ș "Wimp_GetWindowState",,ScrapBlk% v1 mx%=PtrInfo%!0-(ScrapBlk%!4-ScrapBlk%!20) w2 my%=PtrInfo%!4-(ScrapBlk%!16-ScrapBlk%!24) x m$=�(mx%)+","+�(my%) y Ȏ Drag_Type% � z � 0 {K � moving/resizing icon(s) - show current coordinates of dragbox | i$="..." }- xmin%=mx%-(Drag_Ptrx%-DragBlk%!8) ~. ymin%=my%-(Drag_Ptry%-DragBlk%!12) & xmax%=xmin%+Drag_BoxSizex% �& ymax%=ymin%+Drag_BoxSizey% � showicondata%=� � � 1 �D � resizing icon(s) - show current coordinates of dragbox � i$="..." � xmin%=Drag_Box0x% � ymin%=Drag_Box0y% �& xmax%=xmin%+Drag_BoxSizex% �& ymax%=ymin%+Drag_BoxSizey% � Ȏ MouseShape% � �2 � 2 : ymax%+=(PtrInfo%!4-Drag_Ptry%) �2 � 3 : xmax%+=(PtrInfo%!0-Drag_Ptrx%) �2 � 4 : ymin%+=(PtrInfo%!4-Drag_Ptry%) �2 � 5 : xmin%+=(PtrInfo%!0-Drag_Ptrx%) � � � showicondata%=� � �- � show data of icon under pointer � � PtrInfo%!16>=0 � � i$=�(PtrInfo%!16) �% ScrapBlk%!0=PtrInfo%!12 �% ScrapBlk%!4=PtrInfo%!16 �/ ș "Wimp_GetIconState",,ScrapBlk% � xmin%=ScrapBlk%!8 � xmax%=ScrapBlk%!16 � ymin%=ScrapBlk%!12 � ymax%=ScrapBlk%!20 � showicondata%=� � � � � � � showicondata% � � xmin$=�(xmin%) � xmax$=�(xmax%) � ymin$=�(ymin%) � ymax$=�(ymax%) �. s$=�(xmax%-xmin%)+"x"+�(ymax%-ymin%) � � � � �� �.� t$<>$(IconText%(7)) � �seticontext(7,t$) �.� i$<>$(IconText%(8)) � �seticontext(8,i$) �4� xmin$<>$(IconText%(9)) � �seticontext(9,xmin$) �6� xmax$<>$(IconText%(26)) � �seticontext(26,xmax$) �6� ymin$<>$(IconText%(10)) � �seticontext(10,ymin$) �6� ymax$<>$(IconText%(27)) � �seticontext(27,ymax$) �0� s$<>$(IconText%(11)) � �seticontext(11,s$) �0� m$<>$(IconText%(24)) � �seticontext(24,m$) �� � �� �alignicons(window%) �-� move%,imask%,type%,i%,anchorx%,anchory% �!� dx1%,dx2%,dy1%,dy2%,handle% �"move%=�iconselected(AlignW%,8) �imask%=(31<<16)+(1<<21) �>ș "Wimp_WhichIcon",AlignW%,SelBlk%,imask%,(1<<16)+(1<<21) �type%=SelBlk%!0 ��sel_get(window%) �� NrSelected%>1 � � Ȏ type% � �. � 2,3 : �sel_sort(window%,0,0,1,0,1,1) �. � 4 : �sel_sort(window%,0,1,0,0,1,1) �. � 5,6 : �sel_sort(window%,1,1,0,1,0,0) �. � 7 : �sel_sort(window%,1,0,1,1,1,1) � � � IconBlk%!0=window% � IconBlk%!4=SelBlk%!0 �& ș "Wimp_GetIconState",,IconBlk% � Ȏ type% � � � 2 �E anchorx%=IconBlk%!8 : � left � � 3 �G anchorx%=IconBlk%!8+(IconBlk%!16-IconBlk%!8)�2 : � h centre � � 4 �F anchorx%=IconBlk%!16 : � right � � 5 �D anchory%=IconBlk%!20 : � top � � 6 �G anchory%=IconBlk%!12+(IconBlk%!20-IconBlk%!12)�2 : � v centre � � 7 �G anchory%=IconBlk%!12 : � bottom � � � � i%=1 � NrSelected%-1 � IconBlk%!0=window% �! IconBlk%!4=SelBlk%!(4*i%) �( ș "Wimp_GetIconState",,IconBlk% � dx1%=0 � dx2%=0 � dy1%=0 � dy2%=0 � Ȏ type% � � � 2 �$ dx1%=anchorx%-IconBlk%!8 � � move% � dx2%=dx1% � � 3 �A dx1%=anchorx%-(IconBlk%!8+(IconBlk%!16-IconBlk%!8)�2) � � move% � dx2%=dx1% � � 4 �% dx2%=anchorx%-IconBlk%!16 � � move% � dx1%=dx2% � � 5 �% dy2%=anchory%-IconBlk%!20 � � move% � dy1%=dy2% � � 6 �C dy1%=anchory%-(IconBlk%!12+(IconBlk%!20-IconBlk%!12)�2) � � move% � dy2%=dy1% � � 7 �% dy1%=anchory%-IconBlk%!12 � � move% � dy2%=dy1% � � �" IconBlk%!8=IconBlk%!8+dx1% �$ IconBlk%!12=IconBlk%!12+dy1% �$ IconBlk%!16=IconBlk%!16+dx2% �$ IconBlk%!20=IconBlk%!20+dy2% �= � IconBlk%!16<=IconBlk%!8 � IconBlk%!16=IconBlk%!8+32 �? � IconBlk%!20<=IconBlk%!12 � IconBlk%!20=IconBlk%!12+32 �> handle%=�redefineicon(window%,SelBlk%!(4*i%),IconBlk%) � � i% �� �� � �9� --- shade the appropriate icons in the Align window �� �align_shadeicons �<� �iconselected(AlignW%,3) � �iconselected(AlignW%,6) � � �shadeicon(AlignW%,9,1) �� � �shadeicon(AlignW%,9,0) �� �2�shadeicon(AlignW%,3,�iconselected(AlignW%,9)) 2�shadeicon(AlignW%,6,�iconselected(AlignW%,9)) � � �spaceicons(window%) B� imask%,type%,i%,distance%,space%,ib%,anchor%,dx%,dy%,handle% 'SpaceOut_Space%=�($(IconText%(18))) Oimask%=(31<<16)+(1<<21) : � check if spacing must be horizontal or vertical >ș "Wimp_WhichIcon",SpaceW%,SelBlk%,imask%,(1<<16)+(1<<21) Btype%=SelBlk%!0 : � type%=2 => horizontal, type%=3 => vertical �sel_get(window%) � NrSelected%>1 � � type%=2 � & �sel_sort(window%,0,0,1,0,1,0) � & �sel_sort(window%,1,0,1,1,1,0) � " � �iconselected(SpaceW%,4) � ! distance%=SpaceOut_Space% � , � calc available space between icons WinBlk%!0=window% ( ș "Wimp_GetWindowInfo",,WinBlk% . � start with space between outer icons � type%=2 � > space%=WinBlk%!(92+32*(SelBlk%!(4*(NrSelected%-1)))) / space%-=WinBlk%!(92+32*(SelBlk%!0)+8) � @ space%=WinBlk%!(92+32*(SelBlk%!(4*(NrSelected%-1)))+4) 0 space%-=WinBlk%!(92+32*(SelBlk%!0)+12) � . � subtract sizes of intermediate icons � NrSelected%>2 � " � i%=1 � (NrSelected%-2) !. ib%=WinBlk%+92+32*(SelBlk%!(4*i%)) " � type%=2 � ## space%-=(ib%!8-ib%!0) $ � %$ space%-=(ib%!12-ib%!4) & � ' � i% ( � )* distance%=space% � (NrSelected%-1) * � + IconBlk%!0=window% , IconBlk%!4=SelBlk%!0 -& ș "Wimp_GetIconState",,IconBlk% . Ȏ type% � /! � 2 : anchor%=IconBlk%!16 0! � 3 : anchor%=IconBlk%!20 1 � 2 � i%=1 � NrSelected%-1 3 anchor%+=distance% 4 IconBlk%!0=window% 5! IconBlk%!4=SelBlk%!(4*i%) 6( ș "Wimp_GetIconState",,IconBlk% 7 dx%=0 8 dy%=0 9 Ȏ type% � :& � 2 : dx%=anchor%-IconBlk%!8 ;' � 3 : dy%=anchor%-IconBlk%!12 < � =! IconBlk%!8=IconBlk%!8+dx% ># IconBlk%!12=IconBlk%!12+dy% ?# IconBlk%!16=IconBlk%!16+dx% @# IconBlk%!20=IconBlk%!20+dy% A Ȏ type% � B# � 2 : anchor%=IconBlk%!16 C# � 3 : anchor%=IconBlk%!20 D � E> handle%=�redefineicon(window%,SelBlk%!(4*i%),IconBlk%) F � i% G� H� I J� �space_shadeicons K� useavail%,i% L&useavail%=�iconselected(SpaceW%,8) M� i%=5 � 7 N& �shadeicon(SpaceW%,i%,useavail%) O� i% P� Q R� �tidyicons(window%) SD� changed1%,changed2%,ib1%,ib2%,end%,nricons%,dx%,dy%,i%,handle% TWinBlk%!0=window% U$ș "Wimp_GetWindowInfo",,WinBlk% Vchanged1%=0 Wchanged2%=0 X� WinBlk%!88>0 � Y ib1%=WinBlk%+92 Z ib2%=ib1% [ end%=ib1%+32*(WinBlk%!88) \ nricons%=0 ] ȕ ib1%<end% ^! � ((ib1%!16)�(1<<23))=0 � _5 � test if icon position is within work area ` dx%=0 a dy%=0 b5 � ib1%!0<WinBlk%!44 � dx%=WinBlk%!44-ib1%!0 c5 � ib1%!4<WinBlk%!48 � dy%=WinBlk%!48-ib1%!4 d5 � ib1%!8>WinBlk%!52 � dx%=WinBlk%!52-ib1%!8 e7 � ib1%!12>WinBlk%!56 � dy%=WinBlk%!56-ib1%!12 f ib1%!0=ib1%!0+dx% g ib1%!4=ib1%!4+dy% h ib1%!8=ib1%!8+dx% i ib1%!12=ib1%!12+dy% j# � move block of icon data k � i%=0 � 28 � 4 l ib2%!i%=ib1%!i% m � i% n ib2%+=32 o nricons%+=1 p, � (dx%<>0)�(dy%<>0) � changed2%+=1 q � r# � don't copy deleted icon s changed1%+=1 t � u ib1%+=32 v � w% � (changed1%=0)�(changed2%=0) � x �dialogue(6,"","") y � z WinBlk%!88=nricons% {* handle%=�redefinewindow(WinBlk%,1) |. �dialogue(7,�(changed1%),�(changed2%)) } � ~� =handle% � �� �setworkarea �3� xtopleft%,ytopleft%,xsize%,ysize%,xmin%,ymin% �WinBlk%!0=LastMenu_Win% �$ș "Wimp_GetWindowInfo",,WinBlk% �!xtopleft%=�($(IconText%(12))) �!ytopleft%=�($(IconText%(13))) �xsize%=�($(IconText%(14))) �ysize%=�($(IconText%(15))) �%xmin%=�($(IconText%(16))) � &FFFF �%ymin%=�($(IconText%(17))) � &FFFF �!� (xsize%<32) � (ysize%<32) � �% �complain(�msg_lookup0("IWAS")) �� � � xmin%>xsize% � � xmin%=xsize% �! �seticontext(16,�(xmin%)) � � � � ymin%>ysize% � � ymin%=ysize% �! �seticontext(17,�(ymin%)) � � � WinBlk%!44=xtopleft% �! WinBlk%!48=ytopleft%-ysize% �! WinBlk%!52=xtopleft%+xsize% � WinBlk%!56=ytopleft% �" WinBlk%!72=(ymin%<<16)+xmin% �. LastMenu_Win%=�redefinewindow(WinBlk%,1) �� �� � �+� �centericonsel(window%,default%,dim%) �>� xmin%,ymin%,xmax%,ymax%,xfree%,yfree%,dx%,dy%,i%,handle% ��sel_get(window%) �'� (NrSelected%=0) � (default%>=0) � � SelBlk%!0=default% � NrSelected%=1 �� �� NrSelected%>0 � �/ �sel_box(window%,xmin%,ymin%,xmax%,ymax%) � ScrapBlk%!0=window% �) ș "Wimp_GetWindowState",,ScrapBlk% �5 xfree%=(ScrapBlk%!12-ScrapBlk%!4)-(xmax%-xmin%) �) dx%=ScrapBlk%!20+(xfree% � 2)-xmin% �5 yfree%=(ScrapBlk%!16-ScrapBlk%!8)-(ymax%-ymin%) �) dy%=ScrapBlk%!24-(yfree% � 2)-ymax% � � dim%=2 � dx%=0 � � dim%=1 � dy%=0 � � i%=0 � NrSelected%-1 � IconBlk%!0=window% �! IconBlk%!4=SelBlk%!(4*i%) �( ș "Wimp_GetIconState",,IconBlk% �! IconBlk%!8=IconBlk%!8+dx% �# IconBlk%!12=IconBlk%!12+dy% �# IconBlk%!16=IconBlk%!16+dx% �# IconBlk%!20=IconBlk%!20+dy% �> handle%=�redefineicon(window%,SelBlk%!(4*i%),IconBlk%) � � i% �� �� � � � �supportinterface(switch%) � � flg% �old%=SupportInterface% �SupportInterface%=switch% �� switch% � �3 ș "XOS_Module",18,"InterfaceManager" � ;flg% � � (flg% � 1) � � SupportInterface%=� �# �dialogue(3,"Interface","") � � � �supportaeh(�) � � �� �.�selecticon(OptPaneW%,9,SupportInterface%) �*� SupportInterface%<>old% � �redrawall �� � �� �supportaeh(switch%) �� old%,flg% �old%=SupportAEH% �SupportAEH%=switch% �� switch% � �, ș "XOS_Module",18,"AEHModule" � ;flg% � � (flg% � 1) � � SupportAEH%=� � �dialogue(3,"AEH","") � � � �supportinterface(�) � � �� �)�selecticon(OptPaneW%,10,SupportAEH%) ��registeraeh(SupportAEH%) �$� SupportAEH%<>old% � �redrawall �� � �� �registeraeh(switch%) �� old%,flg% �� switch% � � � � AEHregistered% � �$ ș "XAEH_Register",1 � ;flg% �& AEHregistered%=((flg% � 1)<>0) � � �� � � AEHregistered% � � ș "XAEH_Register",-1 � AEHregistered%=� � � �� �� � �;� --- force the redraw of all open template windows --- �� �redrawall �� i% �� NrTemplates%>0 � � � i%=0 � (NrTemplates%-1) � Blk%!0=TemplHandle%(i%) �& ș "Wimp_GetWindowState",,Blk% � � (Blk%!32 � (1<<16)) � �@ ș "Wimp_ForceRedraw",-1,Blk%!4,Blk%!8,Blk%!12,Blk%!16 � � � � i% �� �� � �� �setmainfname(fn$) �MainFName$=fn$ �� ChangesMade% � fn$+=" *" (�settitlebar(TemplW%,TemplTbar%,fn$) � +� --- set the 'changes made' status --- � �setchanged(switch%) � title$ � ChangesMade%<>switch% � � switch% � ! title$=$(TemplTbar%)+" *" � 1 title$=�$(TemplTbar%),�($(TemplTbar%))-2) � - �settitlebar(TemplW%,TemplTbar%,title$) ChangesMade%=switch% � � 5� --- build string with info to send to !Help --- � �iconhelp(no%,icon%) � help$,p% ,help$="Template '"+$(TemplNames%+28*no%) � icon%>=0 � & help$+="', Icon #"+�(icon%)+"|M" # ScrapBlk%!0=TemplHandle%(no%) ScrapBlk%!4=icon% ' ș "Wimp_GetIconState",,ScrapBlk% flags%=ScrapBlk%!24 Ȏ (flags% � 3) � + � 0 : help$+="Non-text, non-sprite" � 1 : help$+="Text" � 2 : help$+="Sprite" $ � 3 : help$+="Text + Sprite" � ! help$+=" icon, " " � (flags% � &100) � #= help$+="Indirected (max. size "+�(ScrapBlk%!36)+")|M" $ � (flags% � 1) � % � ScrapBlk%!32=-1 � &) help$+="No validation string" ' � (= help$+="Validation string: '"+$(ScrapBlk%!32)+"'" ) � * � + � ," help$+="Non-indirected|M " - � .B help$+="|MButton type: '"+$(IcButton%+20*((flags%>>12)� &F)) /, help$+="', ESG: "+�((flags%>>16)� &1F) 0 � OSversion%>=300 � 1J � replace "\" with "\\", else !Help (RiscOS 3) thinks it's a token 2 p%=�help$,"\") 3 ȕ p%<>0 4+ help$=�help$,p%)+"\"+�help$,p%+1) 5 p%=�help$,"\",p%+2) 6 � 7 � 8� 9! WinBlk%!0=TemplHandle%(no%) :& ș "Wimp_GetWindowInfo",,WinBlk% ;3 help$+="', Window background|MButton type: '" <: help$+=$(WinButton%+20*(((WinBlk%!64)>>12)� &F))+"'" =� > =help$ ? @/� --- schedule the closedown of TemplEd --- A� �prequit(delayed%) BPollMask%=PollMask% �(� 1) CQuit%=� D� delayed% � E: � delayed quit is a workaround for bug in RiscOS 3.1 F QuitDeadline%=�+60 G� H QuitDeadline%=� I� J� K LD� --- send help-request to StrongHelp, for help on a subject --- M� �askhelp(string$) NBlk%!0=256 O Blk%!12=0 PBlk%!16=&43B00 Q&$(Blk%+20)="Help_Word "+string$+�0 R#ș "Wimp_SendMessage",17,Blk%,0 S� T U(� *** procs for saving templates *** V W� �savetemplates(fname$) X� handle%,offset%,no% Y� � Z3� (�fname$,".")=0) � (fname$<>"<Wimp$Scrap>") � [% �complain(�msg_lookup0("ISLF")) \� ] ș "Hourglass_On" ^5 �save_init(fname$,NrTemplates%,handle%,offset%) _& � � � � #handle% : �error(0) : � ` � no%=0 � NrTemplates%-1 a? � (� SavingSelection%) � (�iconselected(TemplW%,no%)) � b- �save_template(no%,handle%,offset%) c � d � no% e# �save_finish(handle%,offset%) f! ș "OS_File",18,fname$,&FEC g ș "Hourglass_Off" h* � fname$=MainFName$ � �setchanged(�) i� jș "Wimp_CreateMenu",,-1 k"� QuitAfterSave% � �prequit(1) l� m n5� �save_init(fname$,nrtempl%,� handle%,� offset%) o� i% pSave_IndexOfs%=16 q� i%=0 � FileIndexSize%-1 r FileIndex%?i%=0 s� i% tH� set up translation table for font handles -> internal font handles u� i%=0 � 255 v Fra%?i%=0 w� i% xSave_NrFonts%=0 y2FileIndex%!0=-1 : � no fonts (so far) zLoffset%=16+nrtempl%*24+4 : � skip first part of file (index saved later) {handle%=� fname$ |� } ~+� �save_template(no%,handle%,� offset%) � nricons%,i%,dataofs%,ib% �'FileIndex%!(Save_IndexOfs%)=offset% �#FileIndex%!(Save_IndexOfs%+8)=1 �9$(FileIndex%+Save_IndexOfs%+12)=$(TemplNames%+28*no%) �WinBlk%!0=TemplHandle%(no%) �$ș "Wimp_GetWindowInfo",,WinBlk% �� PaneFlag%?no% � �< WinBlk%!32=WinBlk%!32 � (1<<5) : � restore 'Pane' flag �� �nricons%=WinBlk%!88 �dataofs%=88+32*nricons% �6WinBlk%!68=1 : � reset sprite pointer to Wimp area �3�save_translate(WinBlk%+60,WinBlk%+76,dataofs%) �� nricons%>0 � � � i%=0 � nricons%-1 � ib%=WinBlk%+92+i%*32 �/ �save_translate(ib%+16,ib%+20,dataofs%) � � Save_Unselected% � �$ ib%!16=ib%!16 � (�(1<<21)) � � � � i% �� �Iș "OS_GBPB",1,handle%,WinBlk%+4,88+32*nricons%,offset% � ,,,,offset% �$ș "Wimp_GetWindowInfo",,WinBlk% �7�save_icon(WinBlk%!(60),WinBlk%+76,handle%,offset%) �� nricons%>0 � � � i%=0 � nricons%-1 �M �save_icon(WinBlk%!(92+i%*32+16),WinBlk%+92+i%*32+20,handle%,offset%) � � i% �� �EFileIndex%!(Save_IndexOfs%+4)=offset%-FileIndex%!(Save_IndexOfs%) �Save_IndexOfs%+=24 �� � �O� --- translate data in icon block (indirected pointers + font handles) --- �0� �save_translate(flagptr%,data%,� dataofs%) �$� flags%,sl%,fhandle%,inthandle% �flags%=flagptr%!0 �� (flags% � (1<<23))>0 � �6 � icon has been deleted - fill with default data � flagptr%!0=&07800001 � $(data%)="<Deleted>" �� �9 � 1. calculate file offset for indirected icon data � � (flags% � &100)=&100 � � Ȏ (flags% � 3) � � � 0 �L data%!0=dataofs% : � default data for non-text,non-sprite icon �E dataofs%+=1 : � empty string, 1 char is terminator � data%!4=-1 � � 2 � sl%=�($(data%!0)) � data%!0=dataofs% � dataofs%+=sl%+1 �D data%!4=1 : � reset sprite pointer to Wimp area � � 1,3 � sl%=�($(data%!0)) � data%!0=dataofs% � dataofs%+=sl%+1 � � data%!4<>-1 � � sl%=�($(data%!4)) � data%!4=dataofs% � dataofs%+=sl%+1 � � � � � � �3 � 2. translate font handle to internal handle � � flags% � (1<<6) � � fhandle%=flags%>>24 � inthandle%=Fra%?fhandle% � � inthandle%=0 � � Save_NrFonts%+=1 �" inthandle%=Save_NrFonts% �" Fra%?fhandle%=inthandle% � � �8 flagptr%!0=(flags% � &FFFFFF) � (inthandle%<<24) � � �� �� � �/� --- save indirected icon data to file --- �0� �save_icon(flags%,data%,handle%,� offset%) � � sl% �8ScrapBlk%!0=13 : � temporary buffer for empty string �� (flags% � &800100)=&100 � � � flags% � 3 � � sl%=�($(data%!0)) �B ș "OS_GBPB",1,handle%,data%!0,sl%+1,offset% � ,,,,offset% � � flags% � 1 � � � data%!4<>-1 � � sl%=�($(data%!4)) �F ș "OS_GBPB",1,handle%,data%!4,sl%+1,offset% � ,,,,offset% � � � � � � �7 � non-text,non-sprite icon - write empty string �@ ș "OS_GBPB",1,handle%,ScrapBlk%,1,offset% � ,,,,offset% � � �� �� � �#� �save_finish(handle%,offset%) �� i%,j% �� save font data �� Save_NrFonts%>0 � � FileIndex%!0=offset% � � i%=1 � Save_NrFonts% �/ � find font that got internal handle i% � j%=0 � ȕ Fra%?j%<>i% � j%+=1 � � �E ș "Font_ReadDefn",j%,FontData%+8 � ,,FontData%!0,FontData%!4 �A ș "OS_GBPB",1,handle%,FontData%,48,offset% � ,,,,offset% � � i% �� �!� save header + index entries �8ș "OS_GBPB",1,handle%,FileIndex%,Save_IndexOfs%+4,0 �� #handle% �� � �;� *** procs for loading and deleting user templates *** � �(� �templ_add(name$,wblk%,setextent%) �� no%,nameptr%,spptr%,i% �"� NrTemplates%=MaxTemplates% � �% �complain(�msg_lookup0("MTPX")) �� � no%=NrTemplates% ' PaneFlag%?no%=(wblk%!32) � (1<<5) # wblk%!32=(wblk%!32) � �(1<<5) 9 ș "Wimp_CreateWindow",,wblk%+4 � TemplHandle%(no%) NrTemplates%+=1 ScrapBlk%!0=TemplW% 6 ScrapBlk%!4=8+TemplW_IconX%*(no% � TemplW_Cols%) C ScrapBlk%!12=(ScrapBlk%!4)+(TemplW_IconX%-8)-16*(11-�(name$)) 8 ScrapBlk%!16=-8-TemplW_IconY%*(no% � TemplW_Cols%) 2 ScrapBlk%!8=(ScrapBlk%!16)-(TemplW_IconY%-8) $ ScrapBlk%!20=TemplW_IconFlags% ! nameptr%=TemplNames%+28*no% $(nameptr%)=name$ ScrapBlk%!24=nameptr% " spptr%=TemplNames%+28*no%+14 ' $(spptr%)=�windowicon(wblk%!32,0) ScrapBlk%!28=spptr% ScrapBlk%!32=16 % ș "Wimp_CreateIcon",,ScrapBlk% � � DuplNames% � i%=0 & ȕ $(TemplNames%+28*i%)<>name$ i%+=1 � $ � i%<no% � �templ_delete(i%) � � setextent% � �setextent 0 �seticonstate0(TemplW%,NrTemplates%-1,0,0) � � � �templ_deleteall � i% ș "Hourglass_On" !� NrTemplates%>0 � "" � i%=NrTemplates%-1 � 0 � -1 # �templ_delete(i%) $ � i% %� &�setmainfname("Templates") '�setchanged(�) (ș "Hourglass_Off" )� * +� �templ_delete(no%) ,� i%,j%,wasopen%,oldhandle% - oldhandle%=TemplHandle%(no%) .WinBlk%!0=oldhandle% /$ș "Wimp_GetWindowInfo",,WinBlk% 0'�iconrelease(WinBlk%!60,WinBlk%+76) 1� WinBlk%!88>0 � 2 � i%=0 � (WinBlk%!88-1) 3? �iconrelease(WinBlk%!(92+i%*32+16),WinBlk%+92+i%*32+20) 4 � i% 5� 6#ș "Wimp_DeleteWindow",,WinBlk% 7� update browser window 8WinBlk%!0=TemplW% 9$ș "Wimp_GetWindowInfo",,WinBlk% :#wasopen%=(WinBlk%!32) � (1<<16) ;� no%<(NrTemplates%-1) � <9 � move data for icons after the one that is deleted = � i%=no% � NrTemplates%-2 > ib%=WinBlk%+92+32*i% ? � j%=0 � 16 � 4 @ ib%!j%=ib%!(j%+32) A � j% B+ TemplHandle%(i%)=TemplHandle%(i%+1) C5 $(TemplNames%+28*i%)=$(TemplNames%+28*(i%+1)) D; $(TemplNames%+28*i%+14)=$(TemplNames%+28*(i%+1)+14) E � i% F� GWinBlk%!88=WinBlk%!88-1 H#ș "Wimp_DeleteWindow",,WinBlk% I/ș "Wimp_CreateWindow",,WinBlk%+4 � TemplW% JNrTemplates%-=1 K�setchanged(NrTemplates%>0) L�redefinebrowser(0) M� wasopen% � N WinBlk%!0=TemplW% O& ș "Wimp_GetWindowInfo",,WinBlk% P# ș "Wimp_OpenWindow",,WinBlk% Q� R1� oldhandle%=IcEd_Win% � �closewindow(IcEdW%) S3� oldhandle%=WinEd_Win% � �closewindow(WinEdW%) T1� oldhandle%=LastMenu_Win% � LastMenu_Win%=-1 U+� NrTemplates%=0 � �closewindow(StatW%) V� W XC� --- adapt extent of browser window to number of templates --- Y� �setextent Z� nrrows%,xsize%,titlesize% [/nrrows%=1+((NrTemplates%-1) � TemplW_Cols%) \� nrrows%<2 � nrrows%=2 ]� NrTemplates%=0 � ^ xsize%=8+TemplW_IconX% _� `' � NrTemplates% < TemplW_MaxCol% � a+ xsize%=8+NrTemplates%*TemplW_IconX% b � c- xsize%=8+TemplW_MaxCol%*TemplW_IconX% d � e� f&titlesize%=128+16*�($(TemplTbar%)) g+� xsize%<titlesize% � xsize%=titlesize% hScrapBlk%!0=0 i(ScrapBlk%!4=-8-TemplW_IconY%*nrrows% jScrapBlk%!8=xsize% kScrapBlk%!12=0 l)ș "Wimp_SetExtent",TemplW%,ScrapBlk% m� n oF� --- move icons in browser window to adapt to new window size --- p� �redefinebrowser(reopen%) q#� wasopen%,i%,ib%,xsize%,ysize% rWinBlk%!0=TemplW% s$ș "Wimp_GetWindowInfo",,WinBlk% t#wasopen%=(WinBlk%!32) � (1<<16) u� WinBlk%!88>0 � v � i%=0 � (WinBlk%!88-1) w ib%=WinBlk%+92+32*i% x@ xsize%=(TemplW_IconX%-8)-16*(11-�($(TemplNames%+i%*28))) y ysize%=ib%!12-ib%!4 z1 ib%!0=8+TemplW_IconX%*(i% � TemplW_Cols%) { ib%!8=(ib%!0)+xsize% |3 ib%!12=-8-TemplW_IconY%*(i% � TemplW_Cols%) } ib%!4=(ib%!12)-ysize% ~ � i% � �#ș "Wimp_DeleteWindow",,WinBlk% �/ș "Wimp_CreateWindow",,WinBlk%+4 � TemplW% ��setextent �� reopen% � wasopen% � � WinBlk%!0=TemplW% �& ș "Wimp_GetWindowInfo",,WinBlk% �> � adapt scroll offsets if visible area exceeds work area �8 � (WinBlk%!20+(WinBlk%!12-WinBlk%!4))>WinBlk%!52 � �4 WinBlk%!20=WinBlk%!52-(WinBlk%!12-WinBlk%!4) � � WinBlk%!20<0 � �* WinBlk%!12=WinBlk%!12+WinBlk%!20 � WinBlk%!20=0 � � � � �8 � (WinBlk%!24-(WinBlk%!16-WinBlk%!8))<WinBlk%!48 � �4 WinBlk%!24=WinBlk%!48+(WinBlk%!16-WinBlk%!8) � � WinBlk%!24>0 � �( WinBlk%!8=WinBlk%!8+WinBlk%!24 � WinBlk%!20=0 � � � � �# ș "Wimp_OpenWindow",,WinBlk% �� �� � �*� �templ_loadfile(fname$,loadsprites%) �/� i%,nr%,name$,handle%,ip%,indirbuf%,sname$ �ș "Hourglass_On" �� i%=0 � 255 � � FontUsage%(i%)>0 � �K � font in use - make for extra call to Font_LoseFont at end of proc � Fra%?i%=1 � � � Fra%?i%=0 � � �� i% �� NrTemplates%=0 � � � fname$="<Wimp$Scrap>" � �# �setmainfname(NewLeafName$) � � � �setmainfname(fname$) � � �� �6� loadsprites% � (�leafname(fname$)="Templates") � �( sname$=�dirname(fname$)+".Sprites" � � �fileexists(sname$) � � �loadusersprites(sname$) � � �� �&indirbuf%=�heap_get(MaxIndirSize%) �� indirbuf%>0 � � handle%=� fname$ � � handle%>0 � �F � read index of template file to check for oversized templates �: ș "OS_GBPB",3,handle%,FileIndex%,FileIndexSize%,0 � � #handle% �& ș "Wimp_OpenTemplate",,fname$ � ip%=FileIndex%+24 � nr%=0 � � �$ � ip%!0>MaxTemplateSize% � �5 �complain(�msg_lookup1("TTLB",$(ip%+12))) � � �: �templ_load(nr%,name$,indirbuf%,MaxIndirSize%) � � nr%>0 � �) �templ_add(name$,WinBlk%,0) � � � � � ip%+=24 �1 � (nr%<=0) � (NrTemplates%=MaxTemplates%) � ș "Wimp_CloseTemplate" �! � fname$="<Wimp$Scrap>" � �H ș "OS_File",6,fname$ : � delete Wimp$Scrap file after reading � � � �heap_release(indirbuf%) � �setextent � � �� �� i%=0 � 255 �C � neutralise calls of Font_FindFont done by Wimp_LoadTemplate � ȕ Fra%?i%>1 � ș "Font_LoseFont",i% � Fra%?i%-=1 � � �� i% �ș "Hourglass_Off" ��openwindow(TemplW%,3) �.� IcInfo_Active% � �openwindow(IcInfoW%,4) �� � �'� �templ_load(� nr%,� n$,p%,psize%) �� dx%,dy%,icon%,tb%,ib% �� � �9� � � ș "Wimp_CloseTemplate" : �error(0) : nr%=0 : � �-n$="*"+�11,�0) : � name length must be 12 �Lș "Wimp_LoadTemplate",,WinBlk%+4,p%,p%+psize%,Fra%,n$,nr% � ,,,,,n$,nr% � � nr%>0 � �F � make sure window origin position is within current screen size � dx%=0 � dy%=0 �$ � WinBlk%!4<0 � dx%=-WinBlk%!4 �$ � WinBlk%!8<0 � dy%=-WinBlk%!8 �? � WinBlk%!12>ScreenSize_X% � dx%=ScreenSize_X%-WinBlk%!12 �G � WinBlk%!16>(ScreenSize_Y%-44) � dy%=ScreenSize_Y%-44-WinBlk%!16 � WinBlk%!4=WinBlk%!4+dx% � WinBlk%!8=WinBlk%!8+dy% � WinBlk%!12=WinBlk%!12+dx% � WinBlk%!16=WinBlk%!16+dy% �? WinBlk%!68=UserSprites% : � set sprite area (CBP pointer) �H � re-allocate indirected data, each field in a separate heap block � � WinBlk%!32 � (1<<31) � � tb%=WinBlk%!32 � (1<<26) � � � tb%=WinBlk%!32 � (1<<0) � � � � tb% � �F �iconrealloc(WinBlk%+60,WinBlk%+76) : � realloc title bar icon �? �icon_setspritearea(WinBlk%!60,WinBlk%+76,UserSprites%) � � �. � no title bar: fill data with default � WinBlk%!60=&3D �" $(WinBlk%+76)="<Untitled>" � � � � (WinBlk%!88)>0 � �" � icon%=0 � (WinBlk%!88)-1 �! ib%=WinBlk%+92+icon%*32 �% �iconrealloc(ib%+16,ib%+20) �> � set sprite pointers (indirected sprite-only icons) 9 �icon_setspritearea(ib%!16,ib%+20,UserSprites%) � icon% � � � 8� --- sort templates on names (case-insensitive) --- � �templ_sort -� i%,j%,index%,candidate%,candname$,name$ ,i%=0 : � first <i%> templates are sorted ȕ i%<(NrTemplates%-1) & � find template with lowest name candidate%=i% - candname$=�upcase($(TemplNames%+i%*28)) " � j%=i%+1 � (NrTemplates%-1) + name$=�upcase($(TemplNames%+j%*28)) � name$<candname$ � candidate%=j% candname$=name$ � � j% � swap template data � j%=0 � (28-4) � 4 @ Ȕ TemplNames%!(i%*28+j%),TemplNames%!(candidate%*28+j%) � j% 2 Ȕ TemplHandle%(i%),TemplHandle%(candidate%) * Ȕ PaneFlag%?i%,PaneFlag%?candidate% i%+=1 � � 6� *** procs for reading and sorting selections *** !7� --- get list of selected icons and count them --- "� �sel_get(window%) #=ș "Wimp_WhichIcon",window%,SelBlk%,(1<<21)+(1<<23),1<<21 $NrSelected%=0 %"ȕ SelBlk%!(4*NrSelected%)<>-1 & NrSelected%+=1 '� (� ) *� --- select all icons --- +� �sel_all(window%) ,� i% -5� get all icons that are not selected nor deleted .9ș "Wimp_WhichIcon",window%,SelBlk%,(1<<21)+(1<<23),0 /i%=0 0ȕ SelBlk%!i%<>-1 1' �selecticon(window%,SelBlk%!i%,1) 2 i%+=4 3� 4� 5 6>� --- unselect all icons (except, maybe, for one icon) --- 7!� �sel_clear(window%,except%) 8� i% 93ș "Wimp_WhichIcon",window%,SelBlk%,1<<21,1<<21 :i%=0 ;ȕ SelBlk%!i%<>-1 <? � SelBlk%!i%<>except% � �selecticon(window%,SelBlk%!i%,0) = i%+=4 >� ?NrSelected%=0 @� A BH� --- sort icon selection (assumes selection present in SelBlk%) --- C<� �sel_sort(window%,key1%,max1%,dir1%,key2%,max2%,dir2%) DA� if key=0 then sort on horizontal coordinates, else vertical E=� if max=0 then sort on minimum coordinates, else maximum F<� if dir=0 then sort in descending order, else ascending G� i%,j%,index1%,index2%,ib% H@� value1%,value2%,candidate%,bestsofar1%,bestsofar2%,better% I5i%=0 : � first <i%> icons in selection are sorted J� key1%=0 � K index1%=0 L� M index1%=4 N� O� max1% � index1%+=8 P� key2%=0 � Q index2%=0 R� S index2%=4 T� U� max2% � index2%+=8 VWinBlk%!0=window% W$ș "Wimp_GetWindowInfo",,WinBlk% Xȕ i%<(NrSelected%-1) Y< � find icon with smallest/highest value for coordinate Z candidate%=i% [( ib%=WinBlk%+92+32*(SelBlk%!(4*i%)) \ bestsofar1%=ib%!(index1%) ] bestsofar2%=ib%!(index2%) ^! � j%=i%+1 � (NrSelected%-1) _* ib%=WinBlk%+92+32*(SelBlk%!(4*j%)) ` value1%=ib%!(index1%) a value2%=ib%!(index2%) b � bestsofar1%=value1% � c# � look at second sort key d � dir2% � e) better%=(value2%<bestsofar2%) f � g) better%=(value2%>bestsofar2%) h � i � j � dir1% � kF better%=(value1%<bestsofar1%) : � looking for lowest value l � mG better%=(value1%>bestsofar1%) : � looking for highest value n � o � p � better% � q candidate%=j% r bestsofar1%=value1% s bestsofar2%=value2% t � u � j% v( � swap icons in selection sequence w. Ȕ SelBlk%!(4*candidate%),SelBlk%!(4*i%) x i%+=1 y� z� { |@� --- calculate coords of box surrounding selected icons --- }7� �sel_box(window%,� xmin%,� ymin%,� xmax%,� ymax%) ~)� assume selection present in SelBlk% � i% �ScrapBlk%!0=window% �ScrapBlk%!4=SelBlk%!0 �%ș "Wimp_GetIconState",,ScrapBlk% �xmin%=ScrapBlk%!8 �ymin%=ScrapBlk%!12 �xmax%=ScrapBlk%!16 �ymax%=ScrapBlk%!20 �� i%=0 � NrSelected%-1 � ScrapBlk%!4=SelBlk%!(4*i%) �' ș "Wimp_GetIconState",,ScrapBlk% �- � xmin%>ScrapBlk%!8 � xmin%=ScrapBlk%!8 �/ � ymin%>ScrapBlk%!12 � ymin%=ScrapBlk%!12 �/ � xmax%<ScrapBlk%!16 � xmax%=ScrapBlk%!16 �/ � ymax%<ScrapBlk%!20 � ymax%=ScrapBlk%!20 �� i% �� � �� *** setup procs *** � �� �setup_default �IcInfo_Active%=� �DuplNames%=� �Hatch%=� �SupportInterface%=� �Grid_SizeLock%=� �Grid_SizeX%=2 �Grid_SizeY%=4 �Grid_PosLock%=� �Grid_PosX%=2 �Grid_PosY%=4 �Save_Unselected%=� �DeleteOutside%=� �TrapDclick%=� �SupportAEH%=� �� � �� �setup_load �� f% �� � �f%=� (ApplDir$+".Options") �� f%=0 � � �dialogue(5,"","") � �setup_default �� �2 � � � � #f% : �error(0) : �setup_default : � �= �#f%,IcInfo_Active%,DuplNames%,Hatch%,SupportInterface% �1 �#f%,Grid_SizeLock%,Grid_SizeX%,Grid_SizeY% �. �#f%,Grid_PosLock%,Grid_PosX%,Grid_PosY% �B �#f%,Save_Unselected%,DeleteOutside%,TrapDclick%,SupportAEH% � � #f% �� �� � �� �setup_save �� f% �� � �f%=� (ApplDir$+".Options") �)� � � � f%<>0 � � #f% : �error(0) : � �;�#f%,IcInfo_Active%,DuplNames%,Hatch%,SupportInterface% �/�#f%,Grid_SizeLock%,Grid_SizeX%,Grid_SizeY% �,�#f%,Grid_PosLock%,Grid_PosX%,Grid_PosY% �@�#f%,Save_Unselected%,DeleteOutside%,TrapDclick%,SupportAEH% � � #f% �� � �)� *** procs for statistics window *** � �� �stat_fillwin �I� type%,wasopen%,ysize%,maxwdef%,totindsize%,i%,wdef%,indsize%,j%,ib% �ș "Hourglass_On" ��sel_get(StatW%) �� SelBlk%!0=2 � �( type%=2 : � numbers in hexadecimal �� � type%=1 : � decimal �� �WinBlk%!0=StatW% �$ș "Wimp_GetWindowInfo",,WinBlk% �#wasopen%=(WinBlk%!32) � (1<<16) �#ș "Wimp_DeleteWindow",,WinBlk% �WinBlk%!88=15 �-ysize%=204+NrTemplates%*40 : � set extent �*WinBlk%!8=WinBlk%!16-WinBlk%!24-ysize% �WinBlk%!48=-ysize% �.ș "Wimp_CreateWindow",,WinBlk%+4 � StatW% �WinBlk%!0=StatW% �7�linkicontext(25,WinBlk%,5) : � number of templates �=�linkicontext(22,WinBlk%,7) : � largest window definition �A�linkicontext(23,WinBlk%,9) : � total size of indirected data �maxwdef%=0 �totindsize%=0 �� i%=0 � NrTemplates%-1 � WinBlk%!0=TemplHandle%(i%) �& ș "Wimp_GetWindowInfo",,WinBlk% � wdef%=88+32*WinBlk%!88 �9 indsize%=�stat_calcindirsize(WinBlk%!60,WinBlk%+76) � � WinBlk%!88>0 � � � j%=0 � (WinBlk%!88-1) � ib%=WinBlk%+92+32*j% �6 indsize%+=�stat_calcindirsize(ib%!16,ib%+20) � � j% � � �2 �stat_createicon(10,$(TemplNames%+i%*28),i%) �= �stat_createicon(11,�stat_num2str(WinBlk%!88,type%),i%) �8 �stat_createicon(12,�stat_num2str(wdef%,type%),i%) �; �stat_createicon(13,�stat_num2str(indsize%,type%),i%) �A �stat_createicon(14,�stat_num2str(wdef%+indsize%,type%),i%) � wdef%+=indsize% �' � maxwdef%<wdef% � maxwdef%=wdef% � totindsize%+=indsize% �� i% �$�seticontext(25,�(NrTemplates%)) �2�seticontext(22,�stat_num2str(maxwdef%,type%)) �5�seticontext(23,�stat_num2str(totindsize%,type%)) �� wasopen% � � �openwindow(StatW%,0) �� � �openwindow(StatW%,1) �� �ș "Hourglass_Off" �� � �B� --- calculate size of indirected data needed for an icon --- �'� �stat_calcindirsize(flags%,data%) �� size% �� (flags% � &800100)=&100 � � size%=data%!8 �& � (flags% � 1) � (data%!4<>-1) � # size%=size%+�($(data%!4))+1 � � size%=0 � =size% 0� --- create an icon in the stats window --- *� �stat_createicon(copyfrom%,s$,line%) ScrapBlk%!0=StatW% ScrapBlk%!4=copyfrom% %ș "Wimp_GetIconState",,ScrapBlk% K� create icon that is identical, except for string, colours and Y coord ,ScrapBlk%!12=ScrapBlk%!12-4-40*(line%+1) ScrapBlk%!20=ScrapBlk%!12+40 5ScrapBlk%!24=(ScrapBlk%!24 � &FFFFFF) � &18000000 HScrapBlk%!24=ScrapBlk%!24 � (� &100) : � icon must be not-indirected $(ScrapBlk%+28)=s$ ScrapBlk%!4=StatW% %ș "Wimp_CreateIcon",,ScrapBlk%+4 � ;� --- convert a number to a string (hex or decimal) --- � �stat_num2str(num%,type%) � s$ � type%=1 � s$=�(num%) � s$="&"+�~(num%) � =s$ .� *** procs for handling outline fonts *** ! "� �font_lose(font%) #FontUsage%(font%)-=1 $� FontUsage%(font%)=0 � % ș "Font_LoseFont",font% &� '� ( )� �font_loseall *� i%,j% +� i%=0 � 255 , � FontUsage%(i%)<>0 � - ș "Font_LoseFont",i% . � /� i% 0� 1 27� --- get font name and size from a font handle --- 35� �font_getinfo(fhandle%,� name$,� xsize,� ysize) 4� xsize16%,ysize16% 5?ș "Font_ReadDefn",fhandle%,FontData% � ,,xsize16%,ysize16% 6name$=$(FontData%) 7xsize=xsize16%/16 8ysize=ysize16%/16 9� : ;8� *** procs for creating icons in user templates *** < =-� --- build the 'Create icon' submenu --- >� �standardiconmenu ?� i% @'� get list of "name" icons (ESG=31) A7ș "Wimp_WhichIcon",StdIconW%,SelBlk%,31<<16,31<<16 BNrStdIcons%=0 C"ȕ SelBlk%!(4*NrStdIcons%)<>-1 D NrStdIcons%+=1 E� F� NrStdIcons%=0 � G StdIconMenu%=-1 H� I5 ș "MenuUtil_New",,"Create icon" � StdIconMenu% J ScrapBlk%!0=StdIconW% K � i%=0 � NrStdIcons%-1 L" ScrapBlk%!4=SelBlk%!(4*i%) M) ș "Wimp_GetIconState",,ScrapBlk% N' ș "MenuUtil_Add",,ScrapBlk%!28 O � i% P� Q� R S4� �createstandardicon(name$,window%,xpos%,ypos%) T!� i%,j%,last%,dx%,dy%,handle% U1� scan "name" icons to check which was chosen V7ș "Wimp_WhichIcon",StdIconW%,SelBlk%,31<<16,31<<16 WScrapBlk%!0=StdIconW% Xi%=0 Y� Z j%=SelBlk%!(4*i%) [ ScrapBlk%!4=j% \' ș "Wimp_GetIconState",,ScrapBlk% ] i%+=1 ^3� ($(ScrapBlk%!28)=name$) � (SelBlk%!(4*i%)=-1) _+� copy all icons until next "name" icon `� SelBlk%!(4*i%)=-1 � a last%=LastStdIcon% b� c last%=SelBlk%!(4*i%)-1 d� e j%+=1 fScrapBlk%!0=StdIconW% gScrapBlk%!4=j% h%ș "Wimp_GetIconState",,ScrapBlk% idx%=xpos%-ScrapBlk%!8 jdy%=ypos%-ScrapBlk%!12 kȕ j%<=last% l ScrapBlk%!0=StdIconW% m ScrapBlk%!4=j% n' ș "Wimp_GetIconState",,ScrapBlk% o ScrapBlk%!4=window% p! ScrapBlk%!8=ScrapBlk%!8+dx% q# ScrapBlk%!12=ScrapBlk%!12+dy% r# ScrapBlk%!16=ScrapBlk%!16+dx% s# ScrapBlk%!20=ScrapBlk%!20+dy% t- �iconrealloc(ScrapBlk%+24,ScrapBlk%+28) u& handle%=�createicon(ScrapBlk%+4) v j%+=1 w� x� y zI� *** procs for calculating & setting the minimum size of an icon *** { |-� �minimizeiconsel(window%,default%,dim%) }� i%,xsize%,ysize%,handle% ~�sel_get(window%) '� (NrSelected%=0) � (default%>=0) � � SelBlk%!0=default% � NrSelected%=1 �� �� NrSelected%>0 � � � i%=0 � NrSelected%-1 �: �miniconsize(window%,SelBlk%!(4*i%),xsize%,ysize%) � IconBlk%!0=window% �! IconBlk%!4=SelBlk%!(4*i%) �( ș "Wimp_GetIconState",,IconBlk% �1 � dim%<>2 � IconBlk%!16=IconBlk%!8+xsize% �2 � dim%<>1 � IconBlk%!20=IconBlk%!12+ysize% �> handle%=�redefineicon(window%,SelBlk%!(4*i%),IconBlk%) � � i% �� �� � �1� �miniconsize(window%,icon%,� minx%,� miny%) �/� sparea%,flags%,data%,text%,sprite%,indir% �3� sminx%,sminy%,tminx%,tminy%,p%,val$,sname$,t$ �� xmin%,ymin%,xmax%,ymax% �� l$,lspace%,lines%,b$ �WinBlk%!0=window% �$ș "Wimp_GetWindowInfo",,WinBlk% �sparea%=WinBlk%!68 �ScrapBlk%!0=window% �ScrapBlk%!4=icon% �%ș "Wimp_GetIconState",,ScrapBlk% �flags%=ScrapBlk%!24 �data%=ScrapBlk%+28 �text%=(flags% � 1)>0 �sprite%=(flags% � 2)>0 �indir%=(flags% � &100)>0 �&� indir% � text% � (data%!4<>-1) � � val$=$(data%!4) �� �� sprite% � � � indir% � � � text% � �4 � search validation string for sprite name �- sname$=�validationcommand(val$,"S") � p%=�sname$,",") � � p%>0 � �" sname$=�sname$,2,p%-2) � � � sname$=�sname$,2) � � � � � sname$=$(data%!0) � sparea%=data%!4 � � � � � sname$=$(data%) � � �? � �(sname$)>0 � �spritesize(sname$,sparea%,sminx%,sminy%) �� � � text% � � � indir% � � t$=$(data%!0) � � � t$=$(data%) � � � � flags% � (1<<6) � �5 � calc size of string printed as outline font �& ș "Font_SetFont",(flags%>>24) �; ș "Font_StringBBox",,t$ � ,xmin%,ymin%,xmax%,ymax% �G ș "Font_ConverttoOS",,xmax%-xmin%,ymax%-ymin% � ,tminx%,tminy% � tminx%+=2*PixToOS_X% � tminy%+=2*PixToOS_Y% � � �) tminx%=16*�(t$)+4 : � system font � tminy%=32 � � �% l$=�validationcommand(val$,"L") � � �(l$)>0 � �5 � multi-line text - calc Y size, X size fixed � lspace%=�(�l$,2)) � � lspace%=0 � lspace%=40 �6 lines%=(tminx%-1) � (ScrapBlk%!16-ScrapBlk%!8) �' tminx%=ScrapBlk%!16-ScrapBlk%!8 �! tminy%=lspace%*(lines%+1) � � � � �(t$)=0 � �N tminx%=ScrapBlk%!16-ScrapBlk%!8 : � empty string - don't change X size � � �� �� flags% � (1<<4) � � minx%=sminx%+tminx% �" � text% � sprite% � minx%+=6 �3 � sminy%>tminy% � miny%=sminy% � miny%=tminy% �� �3 � sminx%>tminx% � minx%=sminx% � minx%=tminx% � miny%=sminy%+tminy% �� �� flags% � (1<<2) � �! � add space taken by border �% b$=�validationcommand(val$,"R") � � �(b$)=0 � �7 minx%+=16 : � no border command - "flat" border � miny%+=16 � � �& � found command for 3-D border � Ȏ �(�b$,2)) � � � 3,4 � minx%+=24 � miny%+=24 � � 6,7 � minx%+=32 � miny%+=32 � � minx%+=16 � miny%+=16 � � � � �� �� minx%<16 � minx%=16 �� miny%<16 � miny%=16 �� � �1� --- return size of a sprite in Os units --- �0� �spritesize(name$,area%,� xsize%,� ysize%) �� spmode%,xpixels%,ypixels% �� area%=1 � �H ș "XWimp_SpriteOp",40,,name$ � ,,,xpixels%,ypixels%,,spmode%;flg% �� �K ș "OS_SpriteOp",296,area%,name$ � ,,,xpixels%,ypixels%,,spmode%;flg% �� �� (flg% � 1) � � xsize%=0 ysize%=0 � * xsize%=xpixels%<<�modevar(spmode%,4) * ysize%=ypixels%<<�modevar(spmode%,5) � � J� --- search validation string for a certain command and return it --- !� �validationcommand(v$,cmd$) � upc$,loc$,p% upc$=�(�(cmd$) � &DF) loc$=�(�(cmd$) � &20) 2ȕ (�v$,1)<>upc$) � (�v$,1)<>loc$) � (�(v$)>0) p%=�v$,";") 5 � (p%>1) � (�v$,p%-1,1)="\") � p%=�v$,";",p%+1) � p%=0 � v$="" � v$=�v$,p%+1) � � p%=�v$,";") � p%>0 � v$=�v$,p%-1) =v$ >� *** procs for handling messages in the Messages file *** � �msg_init � fname$,flags%,size%,buf% fname$=ApplDir$+".Messages" 6ș "MessageTrans_FileInfo",,fname$ � flags%,,size% � flags% � 1 � buf%=0 !� " buf%=�heap_get(size%) #� $$MsgDesc%=�heap_get(17+�(fname$)) %$(MsgDesc%+16)=fname$ &8ș "MessageTrans_OpenFile",MsgDesc%,MsgDesc%+16,buf% '� ( )� �msg_exit *(ș "MessageTrans_CloseFile",MsgDesc% +MsgDesc%=0 ,� - .� �msg_lookup0(token$) / � result% 0:ș "MessageTrans_Lookup",MsgDesc%,token$,0 � ,,result% 1=�str(result%) 2 3!� �msg_lookup1(token$,param$) 4 � result% 5Nș "MessageTrans_Lookup",MsgDesc%,token$,ScrapBlk%,&100,param$ � ,,result% 6=�str(result%) 7 8*� �msg_lookup2(token$,param1$,param2$) 9 � result% :Wș "MessageTrans_Lookup",MsgDesc%,token$,ScrapBlk%,&100,param1$,param2$ � ,,result% ;=�str(result%) < =6� *** procs for loading and using user-sprites *** > ?B� --- load a sprite file and let all templates use the sprites @� �loadusersprites(fname$) A � no% B3� UserSprites%<>1 � �heap_release(UserSprites%) C� fname$="" � D UserSprites%=1 E� F* UserSprites%=�loadspritefile(fname$) G� H� NrTemplates%>0 � I � no%=0 � NrTemplates%-1 J= �window_setspritearea(TemplHandle%(no%),UserSprites%) K � no% L� M� UserSprites%=1 � N SpriteFName$="" O� P SpriteFName$=fname$ Q� R� S T� �loadspritefile(fname$) U� ftype%,fsize%,area% V-ș "OS_File",17,fname$ � ftype%,,,,fsize% W� ftype%<>1 � X, �complain(�msg_lookup1("NOSF",fname$)) Y area%=1 Z� [ fsize%+=16 \ area%=�heap_get(fsize%) ] � area%>0 � ^ area%!0=fsize% _ area%!8=16 `$ ș "OS_SpriteOp",256+9,area% a, ș "OS_SpriteOp",256+10,area%,fname$ b � cH area%=1 : � couldn't allocate space in heap - reset to Wimp area d � e� f =area% g h*� �window_setspritearea(handle%,area%) i� icon%,ib% jWinBlk%!0=handle% k$ș "Wimp_GetWindowInfo",,WinBlk% l$WinBlk%!68=area% : � CBP pointer m4�icon_setspritearea(WinBlk%!60,WinBlk%+76,area%) n� (WinBlk%!88)>0 � o � icon%=0 � (WinBlk%!88)-1 p ib%=WinBlk%+92+icon%*32 q0 �icon_setspritearea(ib%!16,ib%+20,area%) r � icon% s� t&handle%=�redefinewindow(WinBlk%,0) u� v w-� �icon_setspritearea(flags%,data%,area%) x/� ((flags% � 3)=2) � ((flags% � &100)<>0) � y data%!4=area% z� {� | �
00000000 0d 00 01 22 f4 20 3e 3c 54 65 6d 70 6c 45 64 24 |...". ><TemplEd$| 00000010 44 69 72 3e 2e 45 78 74 72 61 73 2e 53 6f 75 72 |Dir>.Extras.Sour| 00000020 63 65 0d 00 02 3e f4 20 54 68 69 73 20 61 70 70 |ce...>. This app| 00000030 6c 69 63 61 74 69 6f 6e 20 69 73 20 46 72 65 65 |lication is Free| 00000040 57 61 72 65 2e 20 28 63 29 20 31 39 39 32 2c 31 |Ware. (c) 1992,1| 00000050 39 39 33 20 44 69 63 6b 20 41 6c 73 74 65 69 6e |993 Dick Alstein| 00000060 0d 00 03 04 0d 00 04 13 41 70 70 6c 24 3d 22 54 |........Appl$="T| 00000070 65 6d 70 6c 45 64 22 0d 00 05 1f 56 65 72 73 69 |emplEd"....Versi| 00000080 6f 6e 24 3d 22 31 2e 32 34 20 28 31 32 2d 53 65 |on$="1.24 (12-Se| 00000090 70 2d 39 33 29 22 0d 00 06 04 0d 00 07 40 f4 20 |p-93)".......@. | 000000a0 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6d 61 |The following ma| 000000b0 78 69 6d 75 6d 20 76 61 6c 75 65 73 20 63 61 6e |ximum values can| 000000c0 20 62 65 20 73 65 74 20 74 6f 20 73 75 69 74 20 | be set to suit | 000000d0 79 6f 75 72 20 6e 65 65 64 73 0d 00 08 2a f4 20 |your needs...*. | 000000e0 28 59 6f 75 20 6d 61 79 20 6e 65 65 64 20 74 6f |(You may need to| 000000f0 20 61 64 61 70 74 20 74 68 65 20 57 69 6d 70 53 | adapt the WimpS| 00000100 6c 6f 74 29 0d 00 09 37 4d 61 78 54 65 6d 70 6c |lot)...7MaxTempl| 00000110 61 74 65 73 25 3d 31 30 30 20 20 3a 20 f4 20 6d |ates%=100 : . m| 00000120 61 78 20 6e 75 6d 62 65 72 20 6f 66 20 75 73 65 |ax number of use| 00000130 72 20 74 65 6d 70 6c 61 74 65 73 0d 00 0a 41 4d |r templates...AM| 00000140 61 78 49 63 6f 6e 73 25 3d 32 30 30 20 20 20 20 |axIcons%=200 | 00000150 20 20 3a 20 f4 20 6d 61 78 20 6e 75 6d 62 65 72 | : . max number| 00000160 20 6f 66 20 69 63 6f 6e 73 20 69 6e 20 61 20 75 | of icons in a u| 00000170 73 65 72 20 74 65 6d 70 6c 61 74 65 0d 00 0b 47 |ser template...G| 00000180 4d 61 78 49 6e 64 69 72 53 69 7a 65 25 3d 38 30 |MaxIndirSize%=80| 00000190 30 30 20 3a 20 f4 20 73 70 61 63 65 20 66 6f 72 |00 : . space for| 000001a0 20 69 6e 64 69 72 65 63 74 65 64 20 64 61 74 61 | indirected data| 000001b0 20 28 6f 6e 6c 79 20 66 6f 72 20 6c 6f 61 64 69 | (only for loadi| 000001c0 6e 67 29 0d 00 0c 04 0d 00 0d 2e f4 20 2a 2a 2a |ng)......... ***| 000001d0 20 6d 61 69 6e 20 70 72 6f 67 72 61 6d 20 61 6e | main program an| 000001e0 64 20 74 6f 70 2d 6c 65 76 65 6c 20 70 72 6f 63 |d top-level proc| 000001f0 73 20 2a 2a 2a 0d 00 0e 0b 51 75 69 74 25 3d a3 |s ***....Quit%=.| 00000200 0d 00 0f 09 f2 69 6e 69 74 0d 00 10 11 ee 20 85 |.....init..... .| 00000210 20 f2 65 72 72 6f 72 28 30 29 0d 00 11 32 50 6f | .error(0)...2Po| 00000220 6c 6c 4d 61 73 6b 25 3d 28 31 3c 3c 30 29 2b 28 |llMask%=(1<<0)+(| 00000230 31 3c 3c 34 29 2b 28 31 3c 3c 35 29 2b 28 31 3c |1<<4)+(1<<5)+(1<| 00000240 3c 31 31 29 2b 28 31 3c 3c 31 32 29 0d 00 12 05 |<11)+(1<<12)....| 00000250 f5 0d 00 13 2d 20 20 c8 99 20 22 57 69 6d 70 5f |....- .. "Wimp_| 00000260 50 6f 6c 6c 22 2c 50 6f 6c 6c 4d 61 73 6b 25 2c |Poll",PollMask%,| 00000270 42 6c 6b 25 20 b8 20 72 65 61 73 6f 6e 25 0d 00 |Blk% . reason%..| 00000280 14 12 20 20 c8 8e 20 72 65 61 73 6f 6e 25 20 ca |.. .. reason% .| 00000290 0d 00 15 0b 20 20 20 20 c9 20 30 0d 00 16 2c 20 |.... . 0..., | 000002a0 20 20 20 20 20 c8 99 20 22 57 69 6d 70 5f 47 65 | .. "Wimp_Ge| 000002b0 74 50 6f 69 6e 74 65 72 49 6e 66 6f 22 2c 2c 50 |tPointerInfo",,P| 000002c0 74 72 49 6e 66 6f 25 0d 00 17 31 20 20 20 20 20 |trInfo%...1 | 000002d0 20 e7 20 28 50 74 72 49 6e 66 6f 25 21 38 3e 30 | . (PtrInfo%!8>0| 000002e0 29 20 80 20 4d 62 75 74 74 6f 6e 73 5f 52 65 6c |) . Mbuttons_Rel| 000002f0 65 61 73 65 64 25 20 8c 0d 00 18 2a 20 20 20 20 |eased% ....* | 00000300 20 20 20 20 f4 20 73 69 67 6e 61 6c 20 70 72 65 | . signal pre| 00000310 73 73 20 6f 66 20 6d 6f 75 73 65 20 62 75 74 74 |ss of mouse butt| 00000320 6f 6e 0d 00 19 20 20 20 20 20 20 20 20 20 4d 62 |on... Mb| 00000330 75 74 74 6f 6e 73 5f 52 65 6c 65 61 73 65 64 25 |uttons_Released%| 00000340 3d a3 0d 00 1a 4e 20 20 20 20 20 20 20 20 f2 63 |=....N .c| 00000350 6c 69 63 6b 28 50 74 72 49 6e 66 6f 25 21 30 2c |lick(PtrInfo%!0,| 00000360 50 74 72 49 6e 66 6f 25 21 34 2c 50 74 72 49 6e |PtrInfo%!4,PtrIn| 00000370 66 6f 25 21 38 2c 50 74 72 49 6e 66 6f 25 21 31 |fo%!8,PtrInfo%!1| 00000380 32 2c 50 74 72 49 6e 66 6f 25 21 31 36 2c 30 29 |2,PtrInfo%!16,0)| 00000390 0d 00 1b 0b 20 20 20 20 20 20 cc 0d 00 1c 1c 20 |.... ..... | 000003a0 20 20 20 20 20 20 20 e7 20 50 74 72 49 6e 66 6f | . PtrInfo| 000003b0 25 21 38 3d 30 20 8c 0d 00 1d 22 20 20 20 20 20 |%!8=0 ...." | 000003c0 20 20 20 20 20 4d 62 75 74 74 6f 6e 73 5f 52 65 | Mbuttons_Re| 000003d0 6c 65 61 73 65 64 25 3d b9 0d 00 1e 1b 20 20 20 |leased%=..... | 000003e0 20 20 20 20 20 20 20 44 72 61 67 5f 54 79 70 65 | Drag_Type| 000003f0 25 3d 2d 31 0d 00 1f 22 20 20 20 20 20 20 20 20 |%=-1..." | 00000400 20 20 54 69 6d 65 64 44 72 61 67 5f 45 6e 61 62 | TimedDrag_Enab| 00000410 6c 65 64 25 3d a3 0d 00 20 0d 20 20 20 20 20 20 |led%=... . | 00000420 20 20 cc 0d 00 21 47 20 20 20 20 20 20 20 20 20 | ...!G | 00000430 20 f4 20 62 75 74 74 6f 6e 20 73 74 69 6c 6c 20 | . button still | 00000440 70 72 65 73 73 65 64 20 2d 20 74 65 73 74 20 69 |pressed - test i| 00000450 66 20 4f 4b 20 74 6f 20 73 74 61 72 74 20 22 74 |f OK to start "t| 00000460 69 6d 65 64 20 64 72 61 67 22 0d 00 22 48 20 20 |imed drag".."H | 00000470 20 20 20 20 20 20 20 20 e7 20 94 28 50 74 72 49 | . .(PtrI| 00000480 6e 66 6f 25 21 30 2d 54 68 69 73 43 6c 69 63 6b |nfo%!0-ThisClick| 00000490 58 25 29 2b 94 28 50 74 72 49 6e 66 6f 25 21 34 |X%)+.(PtrInfo%!4| 000004a0 2d 54 68 69 73 43 6c 69 63 6b 59 25 29 3e 31 36 |-ThisClickY%)>16| 000004b0 20 8c 0d 00 23 40 20 20 20 20 20 20 20 20 20 20 | ...#@ | 000004c0 20 20 54 69 6d 65 64 44 72 61 67 5f 45 6e 61 62 | TimedDrag_Enab| 000004d0 6c 65 64 25 3d a3 20 3a 20 f4 20 6d 6f 76 65 64 |led%=. : . moved| 000004e0 20 6d 6f 75 73 65 20 73 69 6e 63 65 20 63 6c 69 | mouse since cli| 000004f0 63 6b 0d 00 24 0f 20 20 20 20 20 20 20 20 20 20 |ck..$. | 00000500 cd 0d 00 25 24 20 20 20 20 20 20 20 20 20 20 e7 |...%$ .| 00000510 20 54 69 6d 65 64 44 72 61 67 5f 45 6e 61 62 6c | TimedDrag_Enabl| 00000520 65 64 25 20 8c 0d 00 26 49 20 20 20 20 20 20 20 |ed% ...&I | 00000530 20 20 20 20 20 e7 20 28 28 91 2d 54 68 69 73 43 | . ((.-ThisC| 00000540 6c 69 63 6b 54 69 6d 65 25 29 3e 44 72 61 67 49 |lickTime%)>DragI| 00000550 6e 74 65 72 76 61 6c 25 29 20 80 20 28 50 74 72 |nterval%) . (Ptr| 00000560 49 6e 66 6f 25 21 31 36 3e 3d 30 29 20 8c 0d 00 |Info%!16>=0) ...| 00000570 27 26 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |'& | 00000580 c8 99 20 22 57 69 6d 70 5f 44 72 61 67 42 6f 78 |.. "Wimp_DragBox| 00000590 22 2c 2d 31 0d 00 28 44 20 20 20 20 20 20 20 20 |",-1..(D | 000005a0 20 20 20 20 20 20 f2 73 74 61 72 74 69 63 6f 6e | .starticon| 000005b0 64 72 61 67 28 50 74 72 49 6e 66 6f 25 21 38 2c |drag(PtrInfo%!8,| 000005c0 50 74 72 49 6e 66 6f 25 21 31 32 2c 50 74 72 49 |PtrInfo%!12,PtrI| 000005d0 6e 66 6f 25 21 31 36 29 0d 00 29 26 20 20 20 20 |nfo%!16)..)& | 000005e0 20 20 20 20 20 20 20 20 20 20 54 69 6d 65 64 44 | TimedD| 000005f0 72 61 67 5f 45 6e 61 62 6c 65 64 25 3d a3 0d 00 |rag_Enabled%=...| 00000600 2a 11 20 20 20 20 20 20 20 20 20 20 20 20 cd 0d |*. ..| 00000610 00 2b 0f 20 20 20 20 20 20 20 20 20 20 cd 0d 00 |.+. ...| 00000620 2c 0d 20 20 20 20 20 20 20 20 cd 0d 00 2d 0b 20 |,. ...-. | 00000630 20 20 20 20 20 cd 0d 00 2e 1d 20 20 20 20 c9 20 | ..... . | 00000640 31 20 3a 20 f2 72 65 64 72 61 77 28 42 6c 6b 25 |1 : .redraw(Blk%| 00000650 21 30 29 0d 00 2f 0c 20 20 20 20 c9 20 32 20 0d |!0)../. . 2 .| 00000660 00 30 1d 20 20 20 20 20 20 e7 20 28 42 6c 6b 25 |.0. . (Blk%| 00000670 21 30 3d 54 65 6d 70 6c 57 25 29 8c 0d 00 31 2f |!0=TemplW%)...1/| 00000680 20 20 20 20 20 20 20 20 63 25 3d 28 42 6c 6b 25 | c%=(Blk%| 00000690 21 31 32 2d 42 6c 6b 25 21 34 29 20 81 20 54 65 |!12-Blk%!4) . Te| 000006a0 6d 70 6c 57 5f 49 63 6f 6e 58 25 0d 00 32 19 20 |mplW_IconX%..2. | 000006b0 20 20 20 20 20 20 20 e7 20 63 25 3c 31 20 8c 20 | . c%<1 . | 000006c0 63 25 3d 31 0d 00 33 20 20 20 20 20 20 20 20 20 |c%=1..3 | 000006d0 e7 20 54 65 6d 70 6c 57 5f 43 6f 6c 73 25 3c 3e |. TemplW_Cols%<>| 000006e0 63 25 20 8c 0d 00 34 1d 20 20 20 20 20 20 20 20 |c% ...4. | 000006f0 20 20 54 65 6d 70 6c 57 5f 43 6f 6c 73 25 3d 63 | TemplW_Cols%=c| 00000700 25 0d 00 35 21 20 20 20 20 20 20 20 20 20 20 f2 |%..5! .| 00000710 72 65 64 65 66 69 6e 65 62 72 6f 77 73 65 72 28 |redefinebrowser(| 00000720 30 29 0d 00 36 1c 20 20 20 20 20 20 20 20 20 20 |0)..6. | 00000730 42 6c 6b 25 21 30 3d 54 65 6d 70 6c 57 25 0d 00 |Blk%!0=TemplW%..| 00000740 37 0d 20 20 20 20 20 20 20 20 cd 0d 00 38 0b 20 |7. ...8. | 00000750 20 20 20 20 20 cd 0d 00 39 24 20 20 20 20 20 20 | ...9$ | 00000760 c8 99 20 22 57 69 6d 70 5f 4f 70 65 6e 57 69 6e |.. "Wimp_OpenWin| 00000770 64 6f 77 22 2c 2c 42 6c 6b 25 0d 00 3a 1e 20 20 |dow",,Blk%..:. | 00000780 20 20 20 20 e7 20 42 6c 6b 25 21 30 3d 4f 70 74 | . Blk%!0=Opt| 00000790 69 6f 6e 73 57 25 20 8c 0d 00 3b 20 20 20 20 20 |ionsW% ...; | 000007a0 20 20 20 20 f2 6f 70 65 6e 70 61 6e 65 28 4f 70 | .openpane(Op| 000007b0 74 50 61 6e 65 57 25 29 0d 00 3c 0b 20 20 20 20 |tPaneW%)..<. | 000007c0 20 20 cd 0d 00 3d 0b 20 20 20 20 c9 20 33 0d 00 | ...=. . 3..| 000007d0 3e 24 20 20 20 20 20 20 6e 6f 25 3d a4 77 68 69 |>$ no%=.whi| 000007e0 63 68 74 65 6d 70 6c 61 74 65 28 42 6c 6b 25 21 |chtemplate(Blk%!| 000007f0 30 29 0d 00 3f 14 20 20 20 20 20 20 e7 20 6e 6f |0)..?. . no| 00000800 25 3e 3d 30 20 8c 0d 00 40 1f 20 20 20 20 20 20 |%>=0 ...@. | 00000810 20 20 f2 63 6c 6f 73 65 74 65 6d 70 6c 61 74 65 | .closetemplate| 00000820 28 6e 6f 25 29 0d 00 41 0b 20 20 20 20 20 20 cc |(no%)..A. .| 00000830 0d 00 42 18 20 20 20 20 20 20 20 20 e7 20 ac 20 |..B. . . | 00000840 28 a6 20 2d 31 29 20 8c 0d 00 43 22 20 20 20 20 |(. -1) ...C" | 00000850 20 20 20 20 20 20 f2 63 6c 6f 73 65 77 69 6e 64 | .closewind| 00000860 6f 77 28 42 6c 6b 25 21 30 29 0d 00 44 0d 20 20 |ow(Blk%!0)..D. | 00000870 20 20 20 20 20 20 cd 0d 00 45 2e 20 20 20 20 20 | ...E. | 00000880 20 20 20 c8 99 20 22 57 69 6d 70 5f 47 65 74 50 | .. "Wimp_GetP| 00000890 6f 69 6e 74 65 72 49 6e 66 6f 22 2c 2c 50 74 72 |ointerInfo",,Ptr| 000008a0 49 6e 66 6f 25 0d 00 46 44 20 20 20 20 20 20 20 |Info%..FD | 000008b0 20 e7 20 28 42 6c 6b 25 21 30 3d 54 65 6d 70 6c | . (Blk%!0=Templ| 000008c0 57 25 29 80 28 50 74 72 49 6e 66 6f 25 21 38 3d |W%).(PtrInfo%!8=| 000008d0 31 29 80 28 a7 4d 61 69 6e 46 4e 61 6d 65 24 2c |1).(.MainFName$,| 000008e0 22 2e 22 29 3e 30 29 20 8c 0d 00 47 47 20 20 20 |".")>0) ...GG | 000008f0 20 20 20 20 20 20 20 c8 99 20 22 57 69 6d 70 5f | .. "Wimp_| 00000900 53 74 61 72 74 54 61 73 6b 22 2c 22 46 69 6c 65 |StartTask","File| 00000910 72 5f 4f 70 65 6e 44 69 72 20 22 2b a4 64 69 72 |r_OpenDir "+.dir| 00000920 6e 61 6d 65 28 4d 61 69 6e 46 4e 61 6d 65 24 29 |name(MainFName$)| 00000930 0d 00 48 0d 20 20 20 20 20 20 20 20 cd 0d 00 49 |..H. ...I| 00000940 0b 20 20 20 20 20 20 cd 0d 00 4a 3c 20 20 20 20 |. ...J< | 00000950 c9 20 36 20 3a 20 f2 63 6c 69 63 6b 28 42 6c 6b |. 6 : .click(Blk| 00000960 25 21 30 2c 42 6c 6b 25 21 34 2c 42 6c 6b 25 21 |%!0,Blk%!4,Blk%!| 00000970 38 2c 42 6c 6b 25 21 31 32 2c 42 6c 6b 25 21 31 |8,Blk%!12,Blk%!1| 00000980 36 2c b9 29 0d 00 4b 37 20 20 20 20 c9 20 37 20 |6,.)..K7 . 7 | 00000990 3a 20 f2 66 69 6e 69 73 68 64 72 61 67 28 42 6c |: .finishdrag(Bl| 000009a0 6b 25 21 30 2c 42 6c 6b 25 21 34 2c 42 6c 6b 25 |k%!0,Blk%!4,Blk%| 000009b0 21 38 2c 42 6c 6b 25 21 31 32 29 0d 00 4c 29 20 |!8,Blk%!12)..L) | 000009c0 20 20 20 c9 20 38 20 3a 20 f2 6b 65 79 28 42 6c | . 8 : .key(Bl| 000009d0 6b 25 21 30 2c 42 6c 6b 25 21 34 2c 42 6c 6b 25 |k%!0,Blk%!4,Blk%| 000009e0 21 32 34 29 0d 00 4d 1f 20 20 20 20 c9 20 39 20 |!24)..M. . 9 | 000009f0 3a 20 f2 6d 65 6e 75 73 65 6c 65 63 74 28 42 6c |: .menuselect(Bl| 00000a00 6b 25 29 0d 00 4e 20 20 20 20 20 c9 20 31 37 2c |k%)..N . 17,| 00000a10 31 38 20 3a 20 f2 72 65 63 65 69 76 65 28 42 6c |18 : .receive(Bl| 00000a20 6b 25 29 0d 00 4f 07 20 20 cb 0d 00 50 18 20 20 |k%)..O. ...P. | 00000a30 e7 20 49 63 49 6e 66 6f 5f 41 63 74 69 76 65 25 |. IcInfo_Active%| 00000a40 20 8c 0d 00 51 15 20 20 20 20 f2 69 63 69 6e 66 | ...Q. .icinf| 00000a50 5f 75 70 64 61 74 65 0d 00 52 07 20 20 cd 0d 00 |_update..R. ...| 00000a60 53 20 fd 20 51 75 69 74 25 20 80 20 28 91 3e 3d |S . Quit% . (.>=| 00000a70 51 75 69 74 44 65 61 64 6c 69 6e 65 25 29 0d 00 |QuitDeadline%)..| 00000a80 54 11 f2 66 6f 6e 74 5f 6c 6f 73 65 61 6c 6c 0d |T..font_loseall.| 00000a90 00 55 13 f2 72 65 67 69 73 74 65 72 61 65 68 28 |.U..registeraeh(| 00000aa0 a3 29 0d 00 56 0d f2 6d 73 67 5f 65 78 69 74 0d |.)..V..msg_exit.| 00000ab0 00 57 17 c8 99 20 22 57 69 6d 70 5f 43 6c 6f 73 |.W... "Wimp_Clos| 00000ac0 65 44 6f 77 6e 22 0d 00 58 05 e0 0d 00 59 04 0d |eDown"..X....Y..| 00000ad0 00 5a 0b dd 20 f2 69 6e 69 74 0d 00 5b 1d ea 20 |.Z.. .init..[.. | 00000ae0 63 6d 64 73 74 72 25 2c 70 25 2c 66 6e 24 2c 69 |cmdstr%,p%,fn$,i| 00000af0 25 2c 6d 61 73 6b 25 0d 00 5c 12 de 20 45 72 72 |%,mask%..\.. Err| 00000b00 42 6c 6b 25 20 26 31 30 30 0d 00 5d 43 c8 99 20 |Blk% &100..]C.. | 00000b10 22 57 69 6d 70 5f 49 6e 69 74 69 61 6c 69 73 65 |"Wimp_Initialise| 00000b20 22 2c 32 30 30 2c 26 34 42 35 33 34 31 35 34 2c |",200,&4B534154,| 00000b30 41 70 70 6c 24 20 b8 20 4f 53 76 65 72 73 69 6f |Appl$ . OSversio| 00000b40 6e 25 2c 54 68 69 73 54 61 73 6b 25 0d 00 5e 11 |n%,ThisTask%..^.| 00000b50 ee 20 85 20 f2 65 72 72 6f 72 28 31 29 0d 00 5f |. . .error(1).._| 00000b60 11 de 20 56 61 72 42 75 66 25 20 32 35 36 0d 00 |.. VarBuf% 256..| 00000b70 60 27 41 70 70 6c 44 69 72 24 3d a4 72 65 61 64 |`'ApplDir$=.read| 00000b80 76 61 72 76 61 6c 28 22 54 65 6d 70 6c 45 64 24 |varval("TemplEd$| 00000b90 44 69 72 22 29 0d 00 61 2c f2 68 65 61 70 5f 69 |Dir")..a,.heap_i| 00000ba0 6e 69 74 20 20 20 20 20 20 20 20 20 20 20 3a 20 |nit : | 00000bb0 f4 20 69 6e 69 74 69 61 6c 69 7a 65 20 68 65 61 |. initialize hea| 00000bc0 70 0d 00 62 2f f2 6d 73 67 5f 69 6e 69 74 20 20 |p..b/.msg_init | 00000bd0 20 20 20 20 20 20 20 20 20 20 3a 20 f4 20 6c 6f | : . lo| 00000be0 61 64 20 4d 65 73 73 61 67 65 73 20 66 69 6c 65 |ad Messages file| 00000bf0 0d 00 63 25 f4 20 6c 6f 77 65 72 20 62 6f 75 6e |..c%. lower boun| 00000c00 64 73 20 66 6f 72 20 4d 61 78 2a 20 76 61 72 69 |ds for Max* vari| 00000c10 61 62 6c 65 73 0d 00 64 27 e7 20 4d 61 78 54 65 |ables..d'. MaxTe| 00000c20 6d 70 6c 61 74 65 73 25 3c 34 20 8c 20 4d 61 78 |mplates%<4 . Max| 00000c30 54 65 6d 70 6c 61 74 65 73 25 3d 34 0d 00 65 21 |Templates%=4..e!| 00000c40 e7 20 4d 61 78 49 63 6f 6e 73 25 3c 36 34 20 8c |. MaxIcons%<64 .| 00000c50 20 4d 61 78 49 63 6f 6e 73 25 3d 36 34 0d 00 66 | MaxIcons%=64..f| 00000c60 2f e7 20 4d 61 78 49 6e 64 69 72 53 69 7a 65 25 |/. MaxIndirSize%| 00000c70 3c 26 31 30 30 30 20 8c 20 4d 61 78 49 6e 64 69 |<&1000 . MaxIndi| 00000c80 72 53 69 7a 65 25 3d 26 31 30 30 30 0d 00 67 2b |rSize%=&1000..g+| 00000c90 f4 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 6f 66 |. declaration of| 00000ca0 20 64 61 74 61 20 62 6c 6f 63 6b 73 20 61 6e 64 | data blocks and| 00000cb0 20 61 72 72 61 79 73 0d 00 68 11 de 20 49 63 6f | arrays..h.. Ico| 00000cc0 6e 42 6c 6b 25 20 34 30 0d 00 69 1b 53 65 6c 42 |nBlk% 40..i.SelB| 00000cd0 6c 6b 53 69 7a 65 25 3d 34 2a 4d 61 78 49 63 6f |lkSize%=4*MaxIco| 00000ce0 6e 73 25 0d 00 6a 42 de 20 53 65 6c 42 6c 6b 25 |ns%..jB. SelBlk%| 00000cf0 20 53 65 6c 42 6c 6b 53 69 7a 65 25 20 3a 20 f4 | SelBlkSize% : .| 00000d00 20 62 6c 6f 63 6b 20 74 6f 20 68 6f 6c 64 20 6c | block to hold l| 00000d10 69 73 74 20 6f 66 20 73 65 6c 65 63 74 65 64 20 |ist of selected | 00000d20 69 63 6f 6e 73 0d 00 6b 1a de 20 53 65 6c 42 6c |icons..k.. SelBl| 00000d30 6b 32 25 20 53 65 6c 42 6c 6b 53 69 7a 65 25 0d |k2% SelBlkSize%.| 00000d40 00 6c 42 de 20 53 63 72 61 70 42 6c 6b 25 20 26 |.lB. ScrapBlk% &| 00000d50 31 30 30 20 20 20 20 20 20 3a 20 f4 20 62 6c 6f |100 : . blo| 00000d60 63 6b 20 74 6f 20 68 6f 6c 64 20 76 61 72 69 6f |ck to hold vario| 00000d70 75 73 20 74 65 6d 70 6f 72 61 72 79 20 64 61 74 |us temporary dat| 00000d80 61 0d 00 6d 3c de 20 42 6c 6b 25 20 26 31 30 30 |a..m<. Blk% &100| 00000d90 20 20 20 20 20 20 20 20 20 20 20 3a 20 f4 20 66 | : . f| 00000da0 6f 72 20 64 61 74 61 20 72 65 74 75 72 6e 65 64 |or data returned| 00000db0 20 62 79 20 57 69 6d 70 5f 50 6f 6c 6c 0d 00 6e | by Wimp_Poll..n| 00000dc0 33 de 20 50 74 72 49 6e 66 6f 25 20 32 30 20 20 |3. PtrInfo% 20 | 00000dd0 20 20 20 20 20 20 20 3a 20 f4 20 74 6f 20 73 74 | : . to st| 00000de0 6f 72 65 20 70 6f 69 6e 74 65 72 20 69 6e 66 6f |ore pointer info| 00000df0 0d 00 6f 45 de 20 4e 75 6d 56 61 6c 69 64 53 74 |..oE. NumValidSt| 00000e00 72 25 20 38 20 20 20 20 20 20 3a 20 f4 20 76 61 |r% 8 : . va| 00000e10 6c 69 64 61 74 69 6f 6e 20 73 74 72 69 6e 67 20 |lidation string | 00000e20 66 6f 72 20 65 6e 74 65 72 69 6e 67 20 61 20 6e |for entering a n| 00000e30 75 6d 62 65 72 0d 00 70 18 24 4e 75 6d 56 61 6c |umber..p.$NumVal| 00000e40 69 64 53 74 72 25 3d 22 41 30 2d 39 22 0d 00 71 |idStr%="A0-9"..q| 00000e50 42 de 20 46 70 4e 75 6d 56 61 6c 69 64 53 74 72 |B. FpNumValidStr| 00000e60 25 20 38 20 20 20 20 3a 20 f4 20 66 6f 72 20 65 |% 8 : . for e| 00000e70 6e 74 65 72 69 6e 67 20 61 20 66 6c 6f 61 74 69 |ntering a floati| 00000e80 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 0d |ng point number.| 00000e90 00 72 1b 24 46 70 4e 75 6d 56 61 6c 69 64 53 74 |.r.$FpNumValidSt| 00000ea0 72 25 3d 22 41 30 2d 39 2e 22 0d 00 73 45 de 20 |r%="A0-9."..sE. | 00000eb0 54 65 6d 70 6c 4e 61 6d 65 73 25 20 4d 61 78 54 |TemplNames% MaxT| 00000ec0 65 6d 70 6c 61 74 65 73 25 2a 32 38 20 3a 20 f4 |emplates%*28 : .| 00000ed0 20 74 6f 20 73 74 6f 72 65 20 6e 61 6d 65 20 61 | to store name a| 00000ee0 6e 64 20 6e 61 6d 65 20 6f 66 20 69 63 6f 6e 0d |nd name of icon.| 00000ef0 00 74 44 de 20 54 65 6d 70 6c 48 61 6e 64 6c 65 |.tD. TemplHandle| 00000f00 25 28 4d 61 78 54 65 6d 70 6c 61 74 65 73 25 29 |%(MaxTemplates%)| 00000f10 20 20 3a 20 f4 20 68 61 6e 64 6c 65 73 20 6f 66 | : . handles of| 00000f20 20 74 68 65 20 75 73 65 72 20 74 65 6d 70 6c 61 | the user templa| 00000f30 74 65 73 0d 00 75 4a de 20 50 61 6e 65 46 6c 61 |tes..uJ. PaneFla| 00000f40 67 25 20 4d 61 78 54 65 6d 70 6c 61 74 65 73 25 |g% MaxTemplates%| 00000f50 20 20 20 20 20 20 3a 20 f4 20 27 50 61 6e 65 27 | : . 'Pane'| 00000f60 20 66 6c 61 67 73 20 61 72 65 20 6b 65 70 74 20 | flags are kept | 00000f70 69 6e 20 74 68 69 73 20 61 72 72 61 79 0d 00 76 |in this array..v| 00000f80 49 4e 72 54 65 6d 70 6c 61 74 65 73 25 3d 30 20 |INrTemplates%=0 | 00000f90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000fa0 20 20 3a 20 f4 20 63 75 72 72 65 6e 74 20 6e 75 | : . current nu| 00000fb0 6d 62 65 72 20 6f 66 20 75 73 65 72 20 74 65 6d |mber of user tem| 00000fc0 70 6c 61 74 65 73 0d 00 77 4b 54 65 6d 70 6c 61 |plates..wKTempla| 00000fd0 74 65 73 4f 70 65 6e 25 3d 30 20 20 20 20 20 20 |tesOpen%=0 | 00000fe0 20 20 20 20 20 20 20 20 20 20 20 3a 20 f4 20 6e | : . n| 00000ff0 75 6d 62 65 72 20 6f 66 20 74 65 6d 70 6c 61 74 |umber of templat| 00001000 65 73 20 63 75 72 72 65 6e 74 6c 79 20 6f 70 65 |es currently ope| 00001010 6e 0d 00 78 40 4d 61 78 54 65 6d 70 6c 61 74 65 |n..x@MaxTemplate| 00001020 53 69 7a 65 25 3d 39 32 2b 33 32 2a 4d 61 78 49 |Size%=92+32*MaxI| 00001030 63 6f 6e 73 25 20 3a 20 f4 20 6d 61 78 20 73 69 |cons% : . max si| 00001040 7a 65 20 66 6f 72 20 61 20 74 65 6d 70 6c 61 74 |ze for a templat| 00001050 65 0d 00 79 48 4d 61 78 54 65 6d 70 6c 61 74 65 |e..yHMaxTemplate| 00001060 53 69 7a 65 25 2b 3d 4d 61 78 49 6e 64 69 72 53 |Size%+=MaxIndirS| 00001070 69 7a 65 25 20 20 3a 20 f4 20 65 78 74 72 61 20 |ize% : . extra | 00001080 73 70 61 63 65 20 66 6f 72 20 69 6e 64 69 72 65 |space for indire| 00001090 63 74 65 64 20 64 61 74 61 0d 00 7a 1e de 20 57 |cted data..z.. W| 000010a0 69 6e 42 6c 6b 25 20 4d 61 78 54 65 6d 70 6c 61 |inBlk% MaxTempla| 000010b0 74 65 53 69 7a 65 25 0d 00 7b 4e 53 79 73 49 6e |teSize%..{NSysIn| 000010c0 64 69 72 53 69 7a 65 25 3d 26 31 38 30 30 20 20 |dirSize%=&1800 | 000010d0 20 20 20 20 20 20 20 3a 20 f4 20 73 69 7a 65 20 | : . size | 000010e0 6f 66 20 69 6e 64 69 72 65 63 74 65 64 20 64 61 |of indirected da| 000010f0 74 61 20 66 6f 72 20 73 79 73 74 65 6d 20 77 69 |ta for system wi| 00001100 6e 64 6f 77 73 0d 00 7c 1d de 20 49 6e 64 69 72 |ndows..|.. Indir| 00001110 42 6c 6b 25 20 53 79 73 49 6e 64 69 72 53 69 7a |Blk% SysIndirSiz| 00001120 65 25 0d 00 7d 40 49 6e 64 69 72 45 6e 64 25 3d |e%..}@IndirEnd%=| 00001130 49 6e 64 69 72 42 6c 6b 25 20 20 20 20 20 20 20 |IndirBlk% | 00001140 20 20 3a 20 f4 20 70 6f 69 6e 74 65 72 20 74 6f | : . pointer to| 00001150 20 66 69 72 73 74 20 75 6e 75 73 65 64 20 62 79 | first unused by| 00001160 74 65 0d 00 7e 48 49 6e 64 69 72 46 72 65 65 25 |te..~HIndirFree%| 00001170 3d 53 79 73 49 6e 64 69 72 53 69 7a 65 25 20 20 |=SysIndirSize% | 00001180 20 20 3a 20 f4 20 72 65 6d 61 69 6e 69 6e 67 20 | : . remaining | 00001190 66 72 65 65 20 73 70 61 63 65 20 61 66 74 65 72 |free space after| 000011a0 20 49 6e 64 69 72 45 6e 64 25 0d 00 7f 43 de 20 | IndirEnd%...C. | 000011b0 49 63 6f 6e 54 65 78 74 25 28 33 32 29 20 20 20 |IconText%(32) | 000011c0 20 20 20 20 20 20 20 20 3a 20 f4 20 70 6f 69 6e | : . poin| 000011d0 74 65 72 73 20 74 6f 20 69 6e 64 69 72 65 63 74 |ters to indirect| 000011e0 65 64 20 74 65 78 74 20 69 63 6f 6e 73 0d 00 80 |ed text icons...| 000011f0 3e de 20 49 63 6f 6e 54 65 78 74 57 68 64 6c 25 |>. IconTextWhdl%| 00001200 28 33 32 29 20 20 20 20 20 20 20 3a 20 f4 20 63 |(32) : . c| 00001210 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 77 69 6e |orresponding win| 00001220 64 6f 77 20 68 61 6e 64 6c 65 73 0d 00 81 3c de |dow handles...<.| 00001230 20 49 63 6f 6e 54 65 78 74 49 68 64 6c 25 28 33 | IconTextIhdl%(3| 00001240 32 29 20 20 20 20 20 20 20 3a 20 f4 20 63 6f 72 |2) : . cor| 00001250 72 65 73 70 6f 6e 64 69 6e 67 20 69 63 6f 6e 20 |responding icon | 00001260 68 61 6e 64 6c 65 73 0d 00 82 49 de 20 43 73 65 |handles...I. Cse| 00001270 6c 54 65 78 74 25 28 31 32 29 20 20 20 20 20 20 |lText%(12) | 00001280 20 20 20 20 20 3a 20 f4 20 70 6f 69 6e 74 65 72 | : . pointer| 00001290 73 20 74 6f 20 74 65 78 74 20 69 6e 20 63 6f 6c |s to text in col| 000012a0 6f 75 72 2d 73 65 6c 65 63 74 20 62 6f 78 65 73 |our-select boxes| 000012b0 0d 00 83 3e de 20 43 73 65 6c 54 65 78 74 57 68 |...>. CselTextWh| 000012c0 64 6c 25 28 31 32 29 20 20 20 20 20 20 20 3a 20 |dl%(12) : | 000012d0 f4 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 |. corresponding | 000012e0 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 73 0d 00 |window handles..| 000012f0 84 3c de 20 43 73 65 6c 54 65 78 74 49 68 64 6c |.<. CselTextIhdl| 00001300 25 28 31 32 29 20 20 20 20 20 20 20 3a 20 f4 20 |%(12) : . | 00001310 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 69 63 |corresponding ic| 00001320 6f 6e 20 68 61 6e 64 6c 65 73 0d 00 85 41 de 20 |on handles...A. | 00001330 49 63 42 75 74 74 6f 6e 25 20 32 30 2a 31 36 20 |IcButton% 20*16 | 00001340 20 20 20 20 20 20 20 20 3a 20 f4 20 6e 61 6d 65 | : . name| 00001350 73 20 6f 66 20 62 75 74 74 6f 6e 20 74 79 70 65 |s of button type| 00001360 73 20 66 6f 72 20 69 63 6f 6e 73 0d 00 86 43 de |s for icons...C.| 00001370 20 57 69 6e 42 75 74 74 6f 6e 25 20 32 30 2a 31 | WinButton% 20*1| 00001380 36 20 20 20 20 20 20 20 20 3a 20 f4 20 6e 61 6d |6 : . nam| 00001390 65 73 20 6f 66 20 62 75 74 74 6f 6e 20 74 79 70 |es of button typ| 000013a0 65 73 20 66 6f 72 20 77 69 6e 64 6f 77 73 0d 00 |es for windows..| 000013b0 87 0f e3 20 69 25 3d 30 20 b8 20 31 35 0d 00 88 |... i%=0 . 15...| 000013c0 33 20 20 24 28 49 63 42 75 74 74 6f 6e 25 2b 32 |3 $(IcButton%+2| 000013d0 30 2a 69 25 29 3d a4 6d 73 67 5f 6c 6f 6f 6b 75 |0*i%)=.msg_looku| 000013e0 70 30 28 22 49 43 42 54 22 2b c3 28 69 25 29 29 |p0("ICBT"+.(i%))| 000013f0 0d 00 89 34 20 20 24 28 57 69 6e 42 75 74 74 6f |...4 $(WinButto| 00001400 6e 25 2b 32 30 2a 69 25 29 3d a4 6d 73 67 5f 6c |n%+20*i%)=.msg_l| 00001410 6f 6f 6b 75 70 30 28 22 57 4e 42 54 22 2b c3 28 |ookup0("WNBT"+.(| 00001420 69 25 29 29 0d 00 8a 08 ed 20 69 25 0d 00 8b 3f |i%))..... i%...?| 00001430 de 20 57 69 6e 45 64 5f 43 6f 6c 25 28 36 29 20 |. WinEd_Col%(6) | 00001440 20 20 20 20 20 3a 20 f4 20 63 6f 6c 6f 75 72 73 | : . colours| 00001450 20 69 6e 20 74 68 65 20 63 6f 6c 6f 75 72 2d 73 | in the colour-s| 00001460 65 6c 65 63 74 20 62 6f 78 65 73 0d 00 8c 4a de |elect boxes...J.| 00001470 20 49 6e 76 65 72 73 65 43 6f 6c 6f 75 72 25 28 | InverseColour%(| 00001480 31 35 29 20 3a 20 f4 20 74 6f 20 64 69 73 70 6c |15) : . to displ| 00001490 61 79 20 74 65 78 74 20 69 6e 20 63 6f 6c 6f 75 |ay text in colou| 000014a0 72 20 62 6f 78 65 73 20 2f 20 63 6f 6c 6f 75 72 |r boxes / colour| 000014b0 20 6d 65 6e 75 0d 00 8d 0f e3 20 69 25 3d 30 20 | menu..... i%=0 | 000014c0 b8 20 31 35 0d 00 8e 0d 20 20 c8 8e 20 69 25 20 |. 15.... .. i% | 000014d0 ca 0d 00 8f 19 20 20 20 20 c9 20 30 2c 31 2c 32 |..... . 0,1,2| 000014e0 2c 33 2c 39 2c 31 32 2c 31 34 0d 00 90 1e 20 20 |,3,9,12,14.... | 000014f0 20 20 20 20 49 6e 76 65 72 73 65 43 6f 6c 6f 75 | InverseColou| 00001500 72 25 28 69 25 29 3d 37 0d 00 91 09 20 20 20 20 |r%(i%)=7.... | 00001510 7f 0d 00 92 1e 20 20 20 20 20 20 49 6e 76 65 72 |..... Inver| 00001520 73 65 43 6f 6c 6f 75 72 25 28 69 25 29 3d 30 0d |seColour%(i%)=0.| 00001530 00 93 07 20 20 cb 0d 00 94 08 ed 20 69 25 0d 00 |... ...... i%..| 00001540 95 37 de 20 44 72 61 67 42 6c 6b 25 20 34 30 20 |.7. DragBlk% 40 | 00001550 20 20 20 20 3a 20 f4 20 64 61 74 61 20 62 6c 6f | : . data blo| 00001560 63 6b 20 66 6f 72 20 73 74 61 72 74 69 6e 67 20 |ck for starting | 00001570 64 72 61 67 73 0d 00 96 28 46 69 6c 65 49 6e 64 |drags...(FileInd| 00001580 65 78 53 69 7a 65 25 3d 31 36 2b 4d 61 78 54 65 |exSize%=16+MaxTe| 00001590 6d 70 6c 61 74 65 73 25 2a 32 34 2b 34 0d 00 97 |mplates%*24+4...| 000015a0 45 de 20 46 69 6c 65 49 6e 64 65 78 25 20 46 69 |E. FileIndex% Fi| 000015b0 6c 65 49 6e 64 65 78 53 69 7a 65 25 20 3a 20 f4 |leIndexSize% : .| 000015c0 20 63 6f 6e 74 61 69 6e 73 20 69 6e 64 65 78 20 | contains index | 000015d0 6f 66 20 61 20 74 65 6d 70 6c 61 74 65 20 66 69 |of a template fi| 000015e0 6c 65 0d 00 98 40 de 20 46 6f 6e 74 55 73 61 67 |le...@. FontUsag| 000015f0 65 25 28 32 35 36 29 20 3a 20 f4 20 63 6f 75 6e |e%(256) : . coun| 00001600 74 73 20 6e 75 6d 62 65 72 20 6f 66 20 69 63 6f |ts number of ico| 00001610 6e 73 20 74 68 61 74 20 75 73 65 20 61 20 66 6f |ns that use a fo| 00001620 6e 74 0d 00 99 4b de 20 46 72 61 25 20 32 35 36 |nt...K. Fra% 256| 00001630 20 20 20 20 20 20 20 20 3a 20 f4 20 66 6f 6e 74 | : . font| 00001640 20 72 65 66 65 72 65 6e 63 65 20 61 72 72 61 79 | reference array| 00001650 20 66 6f 72 20 6c 6f 61 64 69 6e 67 2b 73 61 76 | for loading+sav| 00001660 69 6e 67 20 74 65 6d 70 6c 61 74 65 73 0d 00 9a |ing templates...| 00001670 36 de 20 46 6f 6e 74 44 61 74 61 25 20 36 34 20 |6. FontData% 64 | 00001680 20 20 20 3a 20 f4 20 62 75 66 66 65 72 20 66 6f | : . buffer fo| 00001690 72 20 72 65 61 64 69 6e 67 20 66 6f 6e 74 20 64 |r reading font d| 000016a0 61 74 61 0d 00 9b 4a de 20 4d 6f 75 73 65 5f 50 |ata...J. Mouse_P| 000016b0 74 74 25 20 31 36 20 20 20 20 20 20 20 20 3a 20 |tt% 16 : | 000016c0 f4 20 70 69 78 65 6c 20 74 72 61 6e 73 6c 61 74 |. pixel translat| 000016d0 69 6f 6e 20 74 61 62 6c 65 20 66 6f 72 20 70 6f |ion table for po| 000016e0 69 6e 74 65 72 20 63 68 61 6e 67 65 73 0d 00 9c |inter changes...| 000016f0 21 f4 20 69 6e 69 74 69 61 6c 69 73 65 20 67 6c |!. initialise gl| 00001700 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 73 0d 00 |obal variables..| 00001710 9d 2f 49 63 45 64 5f 57 69 6e 25 3d 2d 31 30 30 |./IcEd_Win%=-100| 00001720 30 20 20 20 20 20 20 20 20 20 20 3a 20 f4 20 69 |0 : . i| 00001730 6e 76 61 6c 69 64 20 76 61 6c 75 65 73 0d 00 9e |nvalid values...| 00001740 14 49 63 45 64 5f 49 63 6f 6e 25 3d 2d 31 30 30 |.IcEd_Icon%=-100| 00001750 30 0d 00 9f 11 57 69 6e 45 64 5f 57 69 6e 25 3d |0....WinEd_Win%=| 00001760 2d 31 0d 00 a0 35 4d 62 75 74 74 6f 6e 73 5f 52 |-1...5Mbuttons_R| 00001770 65 6c 65 61 73 65 64 25 3d a3 20 3a 20 f4 20 74 |eleased%=. : . t| 00001780 6f 20 64 65 62 6f 75 6e 63 65 20 6d 6f 75 73 65 |o debounce mouse| 00001790 20 63 6c 69 63 6b 73 0d 00 a1 3f 54 68 69 73 43 | clicks...?ThisC| 000017a0 6c 69 63 6b 54 69 6d 65 25 3d 91 20 20 20 20 20 |lickTime%=. | 000017b0 20 3a 20 f4 20 74 6f 20 73 74 6f 72 65 20 64 61 | : . to store da| 000017c0 74 61 20 6f 66 20 6c 61 73 74 20 6d 6f 75 73 65 |ta of last mouse| 000017d0 20 63 6c 69 63 6b 0d 00 a2 15 54 68 69 73 43 6c | click....ThisCl| 000017e0 69 63 6b 58 25 3d 2d 31 30 30 30 0d 00 a3 15 54 |ickX%=-1000....T| 000017f0 68 69 73 43 6c 69 63 6b 59 25 3d 2d 31 30 30 30 |hisClickY%=-1000| 00001800 0d 00 a4 16 54 68 69 73 43 6c 69 63 6b 42 75 74 |....ThisClickBut| 00001810 74 6f 6e 25 3d 30 0d 00 a5 49 54 69 6d 65 64 44 |ton%=0...ITimedD| 00001820 72 61 67 5f 45 6e 61 62 6c 65 64 25 3d a3 20 3a |rag_Enabled%=. :| 00001830 20 f4 20 63 61 6e 20 49 20 73 74 61 72 74 20 22 | . can I start "| 00001840 74 69 6d 65 64 20 64 72 61 67 22 20 66 72 6f 6d |timed drag" from| 00001850 20 63 75 72 72 65 6e 74 20 63 6c 69 63 6b 3f 0d | current click?.| 00001860 00 a6 4c 44 72 61 67 49 6e 74 65 72 76 61 6c 25 |..LDragInterval%| 00001870 3d 35 30 20 20 20 20 20 20 20 20 20 3a 20 f4 20 |=50 : . | 00001880 69 6e 74 65 72 76 61 6c 20 61 66 74 65 72 20 77 |interval after w| 00001890 68 69 63 68 20 22 74 69 6d 65 64 20 64 72 61 67 |hich "timed drag| 000018a0 22 20 63 61 6e 20 73 74 61 72 74 0d 00 a7 4a 44 |" can start...JD| 000018b0 63 6c 69 63 6b 49 6e 74 65 72 76 61 6c 25 3d 35 |clickInterval%=5| 000018c0 30 20 20 20 20 20 20 20 3a 20 f4 20 6d 61 78 20 |0 : . max | 000018d0 74 69 6d 65 20 62 65 74 77 65 65 6e 20 63 6c 69 |time between cli| 000018e0 63 6b 73 20 6f 66 20 61 20 64 6f 75 62 6c 65 2d |cks of a double-| 000018f0 63 6c 69 63 6b 0d 00 a8 48 4e 65 78 74 49 63 6f |click...HNextIco| 00001900 6e 4e 72 25 3d 30 20 20 20 20 20 20 20 20 20 20 |nNr%=0 | 00001910 20 20 3a 20 f4 20 66 6f 72 20 73 65 6d 69 2d 61 | : . for semi-a| 00001920 75 74 6f 6d 61 74 69 63 20 72 65 6e 75 6d 62 65 |utomatic renumbe| 00001930 72 69 6e 67 20 6f 66 20 69 63 6f 6e 73 0d 00 a9 |ring of icons...| 00001940 3a 4c 61 73 74 4d 65 6e 75 25 3d 2d 31 20 20 20 |:LastMenu%=-1 | 00001950 20 20 20 20 20 20 20 20 20 20 3a 20 f4 20 68 61 | : . ha| 00001960 6e 64 6c 65 20 6f 66 20 6c 61 73 74 20 6d 65 6e |ndle of last men| 00001970 75 20 73 68 6f 77 6e 0d 00 aa 46 4c 61 73 74 4d |u shown...FLastM| 00001980 65 6e 75 5f 57 69 6e 25 3d 2d 33 31 20 20 20 20 |enu_Win%=-31 | 00001990 20 20 20 20 3a 20 f4 20 77 69 6e 64 6f 77 20 61 | : . window a| 000019a0 62 6f 76 65 20 77 68 69 63 68 20 6c 61 73 74 20 |bove which last | 000019b0 6d 65 6e 75 20 77 61 73 20 6d 61 64 65 0d 00 ab |menu was made...| 000019c0 34 4c 61 73 74 4d 65 6e 75 5f 49 63 6f 6e 25 3d |4LastMenu_Icon%=| 000019d0 2d 31 20 20 20 20 20 20 20 20 3a 20 f4 20 69 63 |-1 : . ic| 000019e0 6f 6e 20 68 61 6e 64 6c 65 20 6f 66 20 73 61 6d |on handle of sam| 000019f0 65 0d 00 ac 3b 4d 61 69 6e 46 4e 61 6d 65 24 3d |e...;MainFName$=| 00001a00 22 54 65 6d 70 6c 61 74 65 73 22 20 20 20 3a 20 |"Templates" : | 00001a10 f4 20 73 61 76 65 20 61 6c 6c 20 74 65 6d 70 6c |. save all templ| 00001a20 61 74 65 73 20 61 73 20 2e 2e 2e 2e 0d 00 ad 40 |ates as .......@| 00001a30 53 65 6c 46 4e 61 6d 65 24 3d 22 53 65 6c 65 63 |SelFName$="Selec| 00001a40 74 69 6f 6e 22 20 20 20 20 3a 20 f4 20 73 61 76 |tion" : . sav| 00001a50 65 20 74 65 6d 70 6c 61 74 65 20 73 65 6c 65 63 |e template selec| 00001a60 74 69 6f 6e 20 61 73 20 2e 2e 2e 2e 0d 00 ae 48 |tion as .......H| 00001a70 53 61 76 69 6e 67 53 65 6c 65 63 74 69 6f 6e 25 |SavingSelection%| 00001a80 3d a3 20 20 20 3a 20 f4 20 77 61 73 20 6c 61 73 |=. : . was las| 00001a90 74 20 73 61 76 65 20 64 69 61 6c 6f 67 75 65 20 |t save dialogue | 00001aa0 74 6f 20 73 61 76 65 20 61 20 73 65 6c 65 63 74 |to save a select| 00001ab0 69 6f 6e 3f 0d 00 af 42 51 75 69 74 41 66 74 65 |ion?...BQuitAfte| 00001ac0 72 53 61 76 65 25 3d a3 20 20 20 20 20 3a 20 f4 |rSave%=. : .| 00001ad0 20 71 75 69 74 20 70 72 6f 67 72 61 6d 20 61 66 | quit program af| 00001ae0 74 65 72 20 63 75 72 72 65 6e 74 20 73 61 76 65 |ter current save| 00001af0 20 70 72 6f 63 3f 0d 00 b0 46 51 75 69 74 44 65 | proc?...FQuitDe| 00001b00 61 64 6c 69 6e 65 25 3d 30 20 20 20 20 20 20 20 |adline%=0 | 00001b10 20 20 20 3a 20 f4 20 66 6f 72 20 22 64 65 6c 61 | : . for "dela| 00001b20 79 65 64 22 20 71 75 69 74 2c 20 74 6f 20 61 76 |yed" quit, to av| 00001b30 6f 69 64 20 57 69 6d 70 20 62 75 67 0d 00 b1 47 |oid Wimp bug...G| 00001b40 4e 65 77 46 4e 61 6d 65 24 3d 22 22 20 20 20 20 |NewFName$="" | 00001b50 20 20 20 20 20 20 20 20 20 3a 20 f4 20 6e 61 6d | : . nam| 00001b60 65 20 6f 66 20 6e 65 77 20 74 65 6d 70 6c 61 74 |e of new templat| 00001b70 65 20 66 69 6c 65 20 74 6f 20 62 65 20 6c 6f 61 |e file to be loa| 00001b80 64 65 64 0d 00 b2 42 43 68 61 6e 67 65 73 4d 61 |ded...BChangesMa| 00001b90 64 65 25 3d a3 20 20 20 20 20 20 20 3a 20 f4 20 |de%=. : . | 00001ba0 68 61 76 65 20 63 75 72 72 65 6e 74 20 74 65 6d |have current tem| 00001bb0 70 6c 61 74 65 73 20 62 65 65 6e 20 6d 6f 64 69 |plates been modi| 00001bc0 66 69 65 64 3f 0d 00 b3 4b 55 73 65 72 53 70 72 |fied?...KUserSpr| 00001bd0 69 74 65 73 25 3d 31 20 20 3a 20 f4 20 73 70 72 |ites%=1 : . spr| 00001be0 69 74 65 73 20 69 6e 20 75 73 65 72 20 74 65 6d |ites in user tem| 00001bf0 70 6c 61 74 65 73 20 66 72 6f 6d 20 57 69 6d 70 |plates from Wimp| 00001c00 20 61 72 65 61 20 28 61 74 20 66 69 72 73 74 29 | area (at first)| 00001c10 0d 00 b4 42 53 70 72 69 74 65 46 4e 61 6d 65 24 |...BSpriteFName$| 00001c20 3d 22 22 20 3a 20 f4 20 6e 61 6d 65 20 6f 66 20 |="" : . name of | 00001c30 73 70 72 69 74 65 20 66 69 6c 65 20 69 66 20 6e |sprite file if n| 00001c40 6f 74 20 75 73 69 6e 67 20 57 69 6d 70 20 61 72 |ot using Wimp ar| 00001c50 65 61 0d 00 b5 43 44 72 61 67 5f 54 79 70 65 25 |ea...CDrag_Type%| 00001c60 3d 2d 31 20 20 20 3a 20 f4 20 74 79 70 65 20 6f |=-1 : . type o| 00001c70 66 20 63 75 72 72 65 6e 74 20 64 72 61 67 20 6f |f current drag o| 00001c80 70 65 72 61 74 69 6f 6e 20 28 2d 31 20 3d 3e 20 |peration (-1 => | 00001c90 6e 6f 6e 65 29 0d 00 b6 4a 53 75 70 70 6f 72 74 |none)...JSupport| 00001ca0 41 45 48 25 3d a3 20 3a 20 f4 20 69 73 20 69 6e |AEH%=. : . is in| 00001cb0 20 73 65 74 75 70 2c 20 62 75 74 20 6d 75 73 74 | setup, but must| 00001cc0 20 65 78 69 73 74 20 62 65 66 6f 72 65 20 6c 6f | exist before lo| 00001cd0 61 64 69 6e 67 20 74 65 6d 70 6c 61 74 65 73 0d |ading templates.| 00001ce0 00 b7 14 41 45 48 72 65 67 69 73 74 65 72 65 64 |...AEHregistered| 00001cf0 25 3d a3 0d 00 b8 1d f4 20 63 72 65 61 74 65 20 |%=...... create | 00001d00 69 63 6f 6e 20 6f 6e 20 69 63 6f 6e 20 62 61 72 |icon on icon bar| 00001d10 0d 00 b9 11 49 63 6f 6e 42 6c 6b 25 21 30 3d 2d |....IconBlk%!0=-| 00001d20 31 0d 00 ba 1f 49 63 6f 6e 42 6c 6b 25 21 34 3d |1....IconBlk%!4=| 00001d30 30 20 3a 20 49 63 6f 6e 42 6c 6b 25 21 38 3d 30 |0 : IconBlk%!8=0| 00001d40 0d 00 bb 23 49 63 6f 6e 42 6c 6b 25 21 31 32 3d |...#IconBlk%!12=| 00001d50 36 38 20 3a 20 49 63 6f 6e 42 6c 6b 25 21 31 36 |68 : IconBlk%!16| 00001d60 3d 36 38 0d 00 bc 19 49 63 6f 6e 42 6c 6b 25 21 |=68....IconBlk%!| 00001d70 32 30 3d 26 37 30 30 30 33 30 31 41 0d 00 bd 1d |20=&7000301A....| 00001d80 24 28 49 63 6f 6e 42 6c 6b 25 2b 32 34 29 3d 22 |$(IconBlk%+24)="| 00001d90 21 74 65 6d 70 6c 65 64 22 0d 00 be 2d c8 99 20 |!templed"...-.. | 00001da0 22 57 69 6d 70 5f 43 72 65 61 74 65 49 63 6f 6e |"Wimp_CreateIcon| 00001db0 22 2c 2c 49 63 6f 6e 42 6c 6b 25 20 b8 20 42 61 |",,IconBlk% . Ba| 00001dc0 72 49 63 6f 6e 25 0d 00 bf 19 f4 20 6c 6f 61 64 |rIcon%..... load| 00001dd0 20 73 79 73 74 65 6d 20 73 70 72 69 74 65 73 0d | system sprites.| 00001de0 00 c0 34 53 79 73 53 70 72 69 74 65 73 25 3d a4 |..4SysSprites%=.| 00001df0 6c 6f 61 64 73 70 72 69 74 65 66 69 6c 65 28 41 |loadspritefile(A| 00001e00 70 70 6c 44 69 72 24 2b 22 2e 53 70 72 69 74 65 |pplDir$+".Sprite| 00001e10 73 22 29 0d 00 c1 26 f4 20 69 6e 69 74 69 61 6c |s")...&. initial| 00001e20 69 73 65 20 66 6f 6e 74 20 72 65 66 65 72 65 6e |ise font referen| 00001e30 63 65 20 61 72 72 61 79 73 0d 00 c2 10 e3 20 69 |ce arrays..... i| 00001e40 25 3d 30 20 b8 20 32 35 35 0d 00 c3 0f 20 20 46 |%=0 . 255.... F| 00001e50 72 61 25 3f 69 25 3d 30 0d 00 c4 08 ed 20 69 25 |ra%?i%=0..... i%| 00001e60 0d 00 c5 3f f4 20 6c 6f 61 64 20 73 79 73 74 65 |...?. load syste| 00001e70 6d 20 74 65 6d 70 6c 61 74 65 73 20 61 6e 64 20 |m templates and | 00001e80 73 65 74 20 70 6f 69 6e 74 65 72 73 20 74 6f 20 |set pointers to | 00001e90 69 6e 64 69 72 65 63 74 65 64 20 64 61 74 61 0d |indirected data.| 00001ea0 00 c6 31 c8 99 20 22 57 69 6d 70 5f 4f 70 65 6e |..1.. "Wimp_Open| 00001eb0 54 65 6d 70 6c 61 74 65 22 2c 2c 41 70 70 6c 44 |Template",,ApplD| 00001ec0 69 72 24 2b 22 2e 54 65 6d 70 6c 61 74 65 73 22 |ir$+".Templates"| 00001ed0 0d 00 c7 3f 49 6e 66 6f 57 25 3d a4 6c 6f 61 64 |...?InfoW%=.load| 00001ee0 74 65 6d 70 6c 61 74 65 28 22 49 6e 66 6f 22 2c |template("Info",| 00001ef0 57 69 6e 42 6c 6b 25 2c 49 6e 64 69 72 45 6e 64 |WinBlk%,IndirEnd| 00001f00 25 2c 49 6e 64 69 72 46 72 65 65 25 2c 31 29 0d |%,IndirFree%,1).| 00001f10 00 c8 24 24 28 57 69 6e 42 6c 6b 25 21 28 39 32 |..$$(WinBlk%!(92| 00001f20 2b 33 2a 33 32 2b 32 30 29 29 3d 56 65 72 73 69 |+3*32+20))=Versi| 00001f30 6f 6e 24 0d 00 c9 4f 54 65 6d 70 6c 57 25 3d a4 |on$...OTemplW%=.| 00001f40 6c 6f 61 64 74 65 6d 70 6c 61 74 65 28 22 54 65 |loadtemplate("Te| 00001f50 6d 70 6c 61 74 65 73 22 2c 57 69 6e 42 6c 6b 25 |mplates",WinBlk%| 00001f60 2c 49 6e 64 69 72 45 6e 64 25 2c 49 6e 64 69 72 |,IndirEnd%,Indir| 00001f70 46 72 65 65 25 2c 53 79 73 53 70 72 69 74 65 73 |Free%,SysSprites| 00001f80 25 29 0d 00 ca 44 54 65 6d 70 6c 54 62 61 72 25 |%)...DTemplTbar%| 00001f90 3d 57 69 6e 42 6c 6b 25 21 37 36 20 20 20 20 20 |=WinBlk%!76 | 00001fa0 20 20 20 20 20 20 3a 20 f4 20 70 6f 69 6e 74 65 | : . pointe| 00001fb0 72 20 74 6f 20 74 65 78 74 20 69 6e 20 74 69 74 |r to text in tit| 00001fc0 6c 65 20 62 61 72 0d 00 cb 1c 24 28 54 65 6d 70 |le bar....$(Temp| 00001fd0 6c 54 62 61 72 25 29 3d 4d 61 69 6e 46 4e 61 6d |lTbar%)=MainFNam| 00001fe0 65 24 0d 00 cc 11 69 25 3d 57 69 6e 42 6c 6b 25 |e$....i%=WinBlk%| 00001ff0 2b 39 32 0d 00 cd 49 54 65 6d 70 6c 57 5f 49 63 |+92...ITemplW_Ic| 00002000 6f 6e 58 25 3d 69 25 21 38 2d 69 25 21 30 20 2b |onX%=i%!8-i%!0 +| 00002010 20 38 20 20 20 20 20 3a 20 f4 20 73 69 7a 65 20 | 8 : . size | 00002020 6f 66 20 61 6e 20 69 63 6f 6e 20 69 6e 20 62 72 |of an icon in br| 00002030 6f 77 73 65 72 20 77 69 6e 64 6f 77 0d 00 ce 20 |owser window... | 00002040 54 65 6d 70 6c 57 5f 49 63 6f 6e 59 25 3d 69 25 |TemplW_IconY%=i%| 00002050 21 31 32 2d 69 25 21 34 20 2b 20 38 0d 00 cf 32 |!12-i%!4 + 8...2| 00002060 54 65 6d 70 6c 57 5f 49 63 6f 6e 46 6c 61 67 73 |TemplW_IconFlags| 00002070 25 3d 69 25 21 31 36 20 20 20 20 20 20 20 20 20 |%=i%!16 | 00002080 3a 20 f4 20 69 63 6f 6e 20 66 6c 61 67 73 0d 00 |: . icon flags..| 00002090 d0 44 54 65 6d 70 6c 57 5f 43 6f 6c 73 25 3d 28 |.DTemplW_Cols%=(| 000020a0 57 69 6e 42 6c 6b 25 21 31 32 2d 57 69 6e 42 6c |WinBlk%!12-WinBl| 000020b0 6b 25 21 34 29 20 81 20 54 65 6d 70 6c 57 5f 49 |k%!4) . TemplW_I| 000020c0 63 6f 6e 58 25 20 3a 20 f4 20 23 63 6f 6c 75 6d |conX% : . #colum| 000020d0 6e 73 0d 00 d1 25 e7 20 54 65 6d 70 6c 57 5f 43 |ns...%. TemplW_C| 000020e0 6f 6c 73 25 3c 31 20 8c 20 54 65 6d 70 6c 57 5f |ols%<1 . TemplW_| 000020f0 43 6f 6c 73 25 3d 31 0d 00 d2 17 53 63 72 61 70 |Cols%=1....Scrap| 00002100 42 6c 6b 25 21 30 3d 54 65 6d 70 6c 57 25 0d 00 |Blk%!0=TemplW%..| 00002110 d3 11 53 63 72 61 70 42 6c 6b 25 21 34 3d 30 0d |..ScrapBlk%!4=0.| 00002120 00 d4 45 c8 99 20 22 57 69 6d 70 5f 44 65 6c 65 |..E.. "Wimp_Dele| 00002130 74 65 49 63 6f 6e 22 2c 2c 53 63 72 61 70 42 6c |teIcon",,ScrapBl| 00002140 6b 25 20 3a 20 f4 20 69 63 6f 6e 20 69 73 20 6f |k% : . icon is o| 00002150 6e 6c 79 20 75 73 65 64 20 74 6f 20 73 65 74 20 |nly used to set | 00002160 73 69 7a 65 0d 00 d5 4d 49 63 45 64 57 25 3d a4 |size...MIcEdW%=.| 00002170 6c 6f 61 64 74 65 6d 70 6c 61 74 65 28 22 49 63 |loadtemplate("Ic| 00002180 6f 6e 45 64 69 74 22 2c 57 69 6e 42 6c 6b 25 2c |onEdit",WinBlk%,| 00002190 49 6e 64 69 72 45 6e 64 25 2c 49 6e 64 69 72 46 |IndirEnd%,IndirF| 000021a0 72 65 65 25 2c 53 79 73 53 70 72 69 74 65 73 25 |ree%,SysSprites%| 000021b0 29 0d 00 d6 18 49 63 45 64 54 62 61 72 25 3d 57 |)....IcEdTbar%=W| 000021c0 69 6e 42 6c 6b 25 21 37 36 0d 00 d7 38 f2 6c 69 |inBlk%!76...8.li| 000021d0 6e 6b 69 63 6f 6e 74 65 78 74 28 30 2c 57 69 6e |nkicontext(0,Win| 000021e0 42 6c 6b 25 2c 32 33 29 20 20 3a 20 f4 20 74 65 |Blk%,23) : . te| 000021f0 78 74 20 69 6e 20 61 20 74 65 78 74 20 69 63 6f |xt in a text ico| 00002200 6e 0d 00 d8 35 f2 6c 69 6e 6b 69 63 6f 6e 74 65 |n...5.linkiconte| 00002210 78 74 28 31 2c 57 69 6e 42 6c 6b 25 2c 32 34 29 |xt(1,WinBlk%,24)| 00002220 20 20 3a 20 f4 20 6e 61 6d 65 20 6f 66 20 61 20 | : . name of a | 00002230 73 70 72 69 74 65 0d 00 d9 36 f2 6c 69 6e 6b 69 |sprite...6.linki| 00002240 63 6f 6e 74 65 78 74 28 32 2c 57 69 6e 42 6c 6b |context(2,WinBlk| 00002250 25 2c 32 35 29 20 20 3a 20 f4 20 76 61 6c 69 64 |%,25) : . valid| 00002260 61 74 69 6f 6e 20 73 74 72 69 6e 67 0d 00 da 2d |ation string...-| 00002270 f2 6c 69 6e 6b 69 63 6f 6e 74 65 78 74 28 33 2c |.linkicontext(3,| 00002280 57 69 6e 42 6c 6b 25 2c 32 36 29 20 20 3a 20 f4 |WinBlk%,26) : .| 00002290 20 6d 61 78 20 73 69 7a 65 0d 00 db 35 f2 6c 69 | max size...5.li| 000022a0 6e 6b 69 63 6f 6e 74 65 78 74 28 34 2c 57 69 6e |nkicontext(4,Win| 000022b0 42 6c 6b 25 2c 32 38 29 20 20 3a 20 f4 20 69 63 |Blk%,28) : . ic| 000022c0 6f 6e 20 62 75 74 74 6f 6e 20 74 79 70 65 0d 00 |on button type..| 000022d0 dc 28 f2 6c 69 6e 6b 69 63 6f 6e 74 65 78 74 28 |.(.linkicontext(| 000022e0 35 2c 57 69 6e 42 6c 6b 25 2c 33 31 29 20 20 3a |5,WinBlk%,31) :| 000022f0 20 f4 20 65 73 67 0d 00 dd 2e f2 6c 69 6e 6b 69 | . esg.....linki| 00002300 63 6f 6e 74 65 78 74 28 31 39 2c 57 69 6e 42 6c |context(19,WinBl| 00002310 6b 25 2c 34 35 29 20 3a 20 f4 20 66 6f 6e 74 20 |k%,45) : . font | 00002320 6e 61 6d 65 0d 00 de 30 f2 6c 69 6e 6b 69 63 6f |name...0.linkico| 00002330 6e 74 65 78 74 28 32 30 2c 57 69 6e 42 6c 6b 25 |ntext(20,WinBlk%| 00002340 2c 34 38 29 20 3a 20 f4 20 66 6f 6e 74 20 78 20 |,48) : . font x | 00002350 73 69 7a 65 0d 00 df 30 f2 6c 69 6e 6b 69 63 6f |size...0.linkico| 00002360 6e 74 65 78 74 28 32 31 2c 57 69 6e 42 6c 6b 25 |ntext(21,WinBlk%| 00002370 2c 35 31 29 20 3a 20 f4 20 66 6f 6e 74 20 79 20 |,51) : . font y | 00002380 73 69 7a 65 0d 00 e0 36 f2 6c 69 6e 6b 63 73 65 |size...6.linkcse| 00002390 6c 74 65 78 74 28 30 2c 57 69 6e 42 6c 6b 25 2c |ltext(0,WinBlk%,| 000023a0 33 34 29 20 20 3a 20 f4 20 66 6f 72 65 67 72 6f |34) : . foregro| 000023b0 75 6e 64 20 63 6f 6c 6f 75 72 0d 00 e1 36 f2 6c |und colour...6.l| 000023c0 69 6e 6b 63 73 65 6c 74 65 78 74 28 31 2c 57 69 |inkcseltext(1,Wi| 000023d0 6e 42 6c 6b 25 2c 33 37 29 20 20 3a 20 f4 20 62 |nBlk%,37) : . b| 000023e0 61 63 6b 67 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 |ackground colour| 000023f0 0d 00 e2 50 57 69 6e 45 64 57 25 3d a4 6c 6f 61 |...PWinEdW%=.loa| 00002400 64 74 65 6d 70 6c 61 74 65 28 22 57 69 6e 64 6f |dtemplate("Windo| 00002410 77 45 64 69 74 22 2c 57 69 6e 42 6c 6b 25 2c 49 |wEdit",WinBlk%,I| 00002420 6e 64 69 72 45 6e 64 25 2c 49 6e 64 69 72 46 72 |ndirEnd%,IndirFr| 00002430 65 65 25 2c 53 79 73 53 70 72 69 74 65 73 25 29 |ee%,SysSprites%)| 00002440 0d 00 e3 19 57 69 6e 45 64 54 62 61 72 25 3d 57 |....WinEdTbar%=W| 00002450 69 6e 42 6c 6b 25 21 37 36 0d 00 e4 37 f2 6c 69 |inBlk%!76...7.li| 00002460 6e 6b 69 63 6f 6e 74 65 78 74 28 36 2c 57 69 6e |nkicontext(6,Win| 00002470 42 6c 6b 25 2c 32 33 29 20 20 3a 20 f4 20 77 69 |Blk%,23) : . wi| 00002480 6e 64 6f 77 20 62 75 74 74 6f 6e 20 74 79 70 65 |ndow button type| 00002490 0d 00 e5 3c f2 6c 69 6e 6b 63 73 65 6c 74 65 78 |...<.linkcseltex| 000024a0 74 28 32 2c 57 69 6e 42 6c 6b 25 2c 32 37 29 20 |t(2,WinBlk%,27) | 000024b0 20 3a 20 f4 20 74 69 74 6c 65 20 66 6f 72 65 67 | : . title foreg| 000024c0 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 0d 00 e6 3c |round colour...<| 000024d0 f2 6c 69 6e 6b 63 73 65 6c 74 65 78 74 28 33 2c |.linkcseltext(3,| 000024e0 57 69 6e 42 6c 6b 25 2c 33 31 29 20 20 3a 20 f4 |WinBlk%,31) : .| 000024f0 20 74 69 74 6c 65 20 62 61 63 6b 67 72 6f 75 6e | title backgroun| 00002500 64 20 63 6f 6c 6f 75 72 0d 00 e7 40 f2 6c 69 6e |d colour...@.lin| 00002510 6b 63 73 65 6c 74 65 78 74 28 34 2c 57 69 6e 42 |kcseltext(4,WinB| 00002520 6c 6b 25 2c 33 35 29 20 20 3a 20 f4 20 77 6f 72 |lk%,35) : . wor| 00002530 6b 20 61 72 65 61 20 66 6f 72 65 67 72 6f 75 6e |k area foregroun| 00002540 64 20 63 6f 6c 6f 75 72 0d 00 e8 40 f2 6c 69 6e |d colour...@.lin| 00002550 6b 63 73 65 6c 74 65 78 74 28 35 2c 57 69 6e 42 |kcseltext(5,WinB| 00002560 6c 6b 25 2c 33 39 29 20 20 3a 20 f4 20 77 6f 72 |lk%,39) : . wor| 00002570 6b 20 61 72 65 61 20 62 61 63 6b 67 72 6f 75 6e |k area backgroun| 00002580 64 20 63 6f 6c 6f 75 72 0d 00 e9 3b f2 6c 69 6e |d colour...;.lin| 00002590 6b 63 73 65 6c 74 65 78 74 28 36 2c 57 69 6e 42 |kcseltext(6,WinB| 000025a0 6c 6b 25 2c 34 33 29 20 20 3a 20 f4 20 73 63 72 |lk%,43) : . scr| 000025b0 6f 6c 6c 62 61 72 20 69 6e 6e 65 72 20 63 6f 6c |ollbar inner col| 000025c0 6f 75 72 0d 00 ea 3b f2 6c 69 6e 6b 63 73 65 6c |our...;.linkcsel| 000025d0 74 65 78 74 28 37 2c 57 69 6e 42 6c 6b 25 2c 34 |text(7,WinBlk%,4| 000025e0 37 29 20 20 3a 20 f4 20 73 63 72 6f 6c 6c 62 61 |7) : . scrollba| 000025f0 72 20 6f 75 74 65 72 20 63 6f 6c 6f 75 72 0d 00 |r outer colour..| 00002600 eb 37 f2 6c 69 6e 6b 63 73 65 6c 74 65 78 74 28 |.7.linkcseltext(| 00002610 38 2c 57 69 6e 42 6c 6b 25 2c 35 31 29 20 20 3a |8,WinBlk%,51) :| 00002620 20 f4 20 69 6e 70 75 74 20 66 6f 63 75 73 20 63 | . input focus c| 00002630 6f 6c 6f 75 72 0d 00 ec 44 44 65 66 57 25 3d a4 |olour...DDefW%=.| 00002640 6c 6f 61 64 74 65 6d 70 6c 61 74 65 28 22 44 65 |loadtemplate("De| 00002650 66 61 75 6c 74 57 69 6e 22 2c 57 69 6e 42 6c 6b |faultWin",WinBlk| 00002660 25 2c 49 6e 64 69 72 45 6e 64 25 2c 49 6e 64 69 |%,IndirEnd%,Indi| 00002670 72 46 72 65 65 25 2c 31 29 0d 00 ed 42 53 61 76 |rFree%,1)...BSav| 00002680 65 57 25 3d a4 6c 6f 61 64 74 65 6d 70 6c 61 74 |eW%=.loadtemplat| 00002690 65 28 22 53 61 76 65 42 6f 78 22 2c 57 69 6e 42 |e("SaveBox",WinB| 000026a0 6c 6b 25 2c 49 6e 64 69 72 45 6e 64 25 2c 49 6e |lk%,IndirEnd%,In| 000026b0 64 69 72 46 72 65 65 25 2c 31 29 0d 00 ee 47 46 |dirFree%,1)...GF| 000026c0 69 6c 65 4e 61 6d 65 25 3d 57 69 6e 42 6c 6b 25 |ileName%=WinBlk%| 000026d0 21 28 39 32 2b 31 2a 33 32 2b 32 30 29 20 20 3a |!(92+1*32+20) :| 000026e0 20 f4 20 70 6f 69 6e 74 65 72 20 74 6f 20 66 69 | . pointer to fi| 000026f0 6c 65 20 6e 61 6d 65 20 69 6e 20 73 61 76 65 62 |le name in saveb| 00002700 6f 78 0d 00 ef 45 49 63 49 6e 66 6f 57 25 3d a4 |ox...EIcInfoW%=.| 00002710 6c 6f 61 64 74 65 6d 70 6c 61 74 65 28 22 49 63 |loadtemplate("Ic| 00002720 6f 6e 49 6e 66 6f 22 2c 57 69 6e 42 6c 6b 25 2c |onInfo",WinBlk%,| 00002730 49 6e 64 69 72 45 6e 64 25 2c 49 6e 64 69 72 46 |IndirEnd%,IndirF| 00002740 72 65 65 25 2c 31 29 0d 00 f0 32 f2 6c 69 6e 6b |ree%,1)...2.link| 00002750 69 63 6f 6e 74 65 78 74 28 37 2c 57 69 6e 42 6c |icontext(7,WinBl| 00002760 6b 25 2c 36 29 20 20 20 3a 20 f4 20 74 65 6d 70 |k%,6) : . temp| 00002770 6c 61 74 65 20 6e 61 6d 65 0d 00 f1 30 f2 6c 69 |late name...0.li| 00002780 6e 6b 69 63 6f 6e 74 65 78 74 28 38 2c 57 69 6e |nkicontext(8,Win| 00002790 42 6c 6b 25 2c 37 29 20 20 20 3a 20 f4 20 69 63 |Blk%,7) : . ic| 000027a0 6f 6e 20 6e 75 6d 62 65 72 0d 00 f2 39 f2 6c 69 |on number...9.li| 000027b0 6e 6b 69 63 6f 6e 74 65 78 74 28 39 2c 57 69 6e |nkicontext(9,Win| 000027c0 42 6c 6b 25 2c 39 29 20 20 20 3a 20 f4 20 6d 69 |Blk%,9) : . mi| 000027d0 6e 69 6d 75 6d 20 78 20 63 6f 6f 72 64 69 6e 61 |nimum x coordina| 000027e0 74 65 0d 00 f3 39 f2 6c 69 6e 6b 69 63 6f 6e 74 |te...9.linkicont| 000027f0 65 78 74 28 32 36 2c 57 69 6e 42 6c 6b 25 2c 31 |ext(26,WinBlk%,1| 00002800 30 29 20 3a 20 f4 20 6d 61 78 69 6d 75 6d 20 78 |0) : . maximum x| 00002810 20 63 6f 6f 72 64 69 6e 61 74 65 0d 00 f4 39 f2 | coordinate...9.| 00002820 6c 69 6e 6b 69 63 6f 6e 74 65 78 74 28 31 30 2c |linkicontext(10,| 00002830 57 69 6e 42 6c 6b 25 2c 31 31 29 20 3a 20 f4 20 |WinBlk%,11) : . | 00002840 6d 69 6e 69 6d 75 6d 20 79 20 63 6f 6f 72 64 69 |minimum y coordi| 00002850 6e 61 74 65 0d 00 f5 39 f2 6c 69 6e 6b 69 63 6f |nate...9.linkico| 00002860 6e 74 65 78 74 28 32 37 2c 57 69 6e 42 6c 6b 25 |ntext(27,WinBlk%| 00002870 2c 38 29 20 20 3a 20 f4 20 6d 61 78 69 6d 75 6d |,8) : . maximum| 00002880 20 79 20 63 6f 6f 72 64 69 6e 61 74 65 0d 00 f6 | y coordinate...| 00002890 2e f2 6c 69 6e 6b 69 63 6f 6e 74 65 78 74 28 31 |..linkicontext(1| 000028a0 31 2c 57 69 6e 42 6c 6b 25 2c 31 32 29 20 3a 20 |1,WinBlk%,12) : | 000028b0 f4 20 69 63 6f 6e 20 73 69 7a 65 0d 00 f7 35 f2 |. icon size...5.| 000028c0 6c 69 6e 6b 69 63 6f 6e 74 65 78 74 28 32 34 2c |linkicontext(24,| 000028d0 57 69 6e 42 6c 6b 25 2c 31 33 29 20 3a 20 f4 20 |WinBlk%,13) : . | 000028e0 70 6f 69 6e 74 65 72 20 70 6f 73 69 74 69 6f 6e |pointer position| 000028f0 0d 00 f8 4d 57 6f 72 6b 57 25 3d a4 6c 6f 61 64 |...MWorkW%=.load| 00002900 74 65 6d 70 6c 61 74 65 28 22 57 6f 72 6b 41 72 |template("WorkAr| 00002910 65 61 22 2c 57 69 6e 42 6c 6b 25 2c 49 6e 64 69 |ea",WinBlk%,Indi| 00002920 72 45 6e 64 25 2c 49 6e 64 69 72 46 72 65 65 25 |rEnd%,IndirFree%| 00002930 2c 53 79 73 53 70 72 69 74 65 73 25 29 0d 00 f9 |,SysSprites%)...| 00002940 35 f2 6c 69 6e 6b 69 63 6f 6e 74 65 78 74 28 31 |5.linkicontext(1| 00002950 32 2c 57 69 6e 42 6c 6b 25 2c 31 30 29 20 3a 20 |2,WinBlk%,10) : | 00002960 f4 20 74 6f 70 20 6c 65 66 74 20 58 20 63 6f 6f |. top left X coo| 00002970 72 64 0d 00 fa 35 f2 6c 69 6e 6b 69 63 6f 6e 74 |rd...5.linkicont| 00002980 65 78 74 28 31 33 2c 57 69 6e 42 6c 6b 25 2c 31 |ext(13,WinBlk%,1| 00002990 33 29 20 3a 20 f4 20 74 6f 70 20 6c 65 66 74 20 |3) : . top left | 000029a0 59 20 63 6f 6f 72 64 0d 00 fb 35 f2 6c 69 6e 6b |Y coord...5.link| 000029b0 69 63 6f 6e 74 65 78 74 28 31 34 2c 57 69 6e 42 |icontext(14,WinB| 000029c0 6c 6b 25 2c 31 36 29 20 3a 20 f4 20 77 6f 72 6b |lk%,16) : . work| 000029d0 20 61 72 65 61 20 58 20 73 69 7a 65 0d 00 fc 35 | area X size...5| 000029e0 f2 6c 69 6e 6b 69 63 6f 6e 74 65 78 74 28 31 35 |.linkicontext(15| 000029f0 2c 57 69 6e 42 6c 6b 25 2c 31 39 29 20 3a 20 f4 |,WinBlk%,19) : .| 00002a00 20 77 6f 72 6b 20 61 72 65 61 20 59 20 73 69 7a | work area Y siz| 00002a10 65 0d 00 fd 2f f2 6c 69 6e 6b 69 63 6f 6e 74 65 |e.../.linkiconte| 00002a20 78 74 28 31 36 2c 57 69 6e 42 6c 6b 25 2c 32 32 |xt(16,WinBlk%,22| 00002a30 29 20 3a 20 f4 20 6d 69 6e 20 58 20 73 69 7a 65 |) : . min X size| 00002a40 0d 00 fe 2f f2 6c 69 6e 6b 69 63 6f 6e 74 65 78 |.../.linkicontex| 00002a50 74 28 31 37 2c 57 69 6e 42 6c 6b 25 2c 32 35 29 |t(17,WinBlk%,25)| 00002a60 20 3a 20 f4 20 6d 69 6e 20 59 20 73 69 7a 65 0d | : . min Y size.| 00002a70 00 ff 4b 41 6c 69 67 6e 57 25 3d a4 6c 6f 61 64 |..KAlignW%=.load| 00002a80 74 65 6d 70 6c 61 74 65 28 22 41 6c 69 67 6e 22 |template("Align"| 00002a90 2c 57 69 6e 42 6c 6b 25 2c 49 6e 64 69 72 45 6e |,WinBlk%,IndirEn| 00002aa0 64 25 2c 49 6e 64 69 72 46 72 65 65 25 2c 53 79 |d%,IndirFree%,Sy| 00002ab0 73 53 70 72 69 74 65 73 25 29 0d 01 00 36 f2 73 |sSprites%)...6.s| 00002ac0 65 6c 65 63 74 69 63 6f 6e 28 41 6c 69 67 6e 57 |electicon(AlignW| 00002ad0 25 2c 32 2c 31 29 20 20 20 20 20 3a 20 f4 20 73 |%,2,1) : . s| 00002ae0 65 74 20 61 6c 69 67 6e 2d 6c 65 66 74 20 6f 6e |et align-left on| 00002af0 0d 01 01 2f f2 73 65 6c 65 63 74 69 63 6f 6e 28 |.../.selecticon(| 00002b00 41 6c 69 67 6e 57 25 2c 38 2c 31 29 20 20 20 20 |AlignW%,8,1) | 00002b10 20 3a 20 f4 20 6d 6f 76 65 20 69 63 6f 6e 73 0d | : . move icons.| 00002b20 01 02 4f 4f 70 74 69 6f 6e 73 57 25 3d a4 6c 6f |..OOptionsW%=.lo| 00002b30 61 64 74 65 6d 70 6c 61 74 65 28 22 4f 70 74 69 |adtemplate("Opti| 00002b40 6f 6e 73 22 2c 57 69 6e 42 6c 6b 25 2c 49 6e 64 |ons",WinBlk%,Ind| 00002b50 69 72 45 6e 64 25 2c 49 6e 64 69 72 46 72 65 65 |irEnd%,IndirFree| 00002b60 25 2c 53 79 73 53 70 72 69 74 65 73 25 29 0d 01 |%,SysSprites%)..| 00002b70 03 4f 4f 70 74 50 61 6e 65 57 25 3d a4 6c 6f 61 |.OOptPaneW%=.loa| 00002b80 64 74 65 6d 70 6c 61 74 65 28 22 4f 70 74 50 61 |dtemplate("OptPa| 00002b90 6e 65 22 2c 57 69 6e 42 6c 6b 25 2c 49 6e 64 69 |ne",WinBlk%,Indi| 00002ba0 72 45 6e 64 25 2c 49 6e 64 69 72 46 72 65 65 25 |rEnd%,IndirFree%| 00002bb0 2c 53 79 73 53 70 72 69 74 65 73 25 29 0d 01 04 |,SysSprites%)...| 00002bc0 39 f2 6c 69 6e 6b 69 63 6f 6e 74 65 78 74 28 32 |9.linkicontext(2| 00002bd0 38 2c 57 69 6e 42 6c 6b 25 2c 31 39 29 20 3a 20 |8,WinBlk%,19) : | 00002be0 f4 20 69 63 6f 6e 73 69 7a 65 20 67 72 69 64 20 |. iconsize grid | 00002bf0 58 20 73 69 7a 65 0d 01 05 39 f2 6c 69 6e 6b 69 |X size...9.linki| 00002c00 63 6f 6e 74 65 78 74 28 32 39 2c 57 69 6e 42 6c |context(29,WinBl| 00002c10 6b 25 2c 32 33 29 20 3a 20 f4 20 69 63 6f 6e 73 |k%,23) : . icons| 00002c20 69 7a 65 20 67 72 69 64 20 59 20 73 69 7a 65 0d |ize grid Y size.| 00002c30 01 06 38 f2 6c 69 6e 6b 69 63 6f 6e 74 65 78 74 |..8.linkicontext| 00002c40 28 33 30 2c 57 69 6e 42 6c 6b 25 2c 32 38 29 20 |(30,WinBlk%,28) | 00002c50 3a 20 f4 20 69 63 6f 6e 70 6f 73 20 67 72 69 64 |: . iconpos grid| 00002c60 20 58 20 73 69 7a 65 0d 01 07 38 f2 6c 69 6e 6b | X size...8.link| 00002c70 69 63 6f 6e 74 65 78 74 28 33 31 2c 57 69 6e 42 |icontext(31,WinB| 00002c80 6c 6b 25 2c 33 32 29 20 3a 20 f4 20 69 63 6f 6e |lk%,32) : . icon| 00002c90 70 6f 73 20 67 72 69 64 20 59 20 73 69 7a 65 0d |pos grid Y size.| 00002ca0 01 08 4e 53 70 61 63 65 57 25 3d a4 6c 6f 61 64 |..NSpaceW%=.load| 00002cb0 74 65 6d 70 6c 61 74 65 28 22 53 70 61 63 65 6f |template("Spaceo| 00002cc0 75 74 22 2c 57 69 6e 42 6c 6b 25 2c 49 6e 64 69 |ut",WinBlk%,Indi| 00002cd0 72 45 6e 64 25 2c 49 6e 64 69 72 46 72 65 65 25 |rEnd%,IndirFree%| 00002ce0 2c 53 79 73 53 70 72 69 74 65 73 25 29 0d 01 09 |,SysSprites%)...| 00002cf0 3b f2 73 65 6c 65 63 74 69 63 6f 6e 28 53 70 61 |;.selecticon(Spa| 00002d00 63 65 57 25 2c 33 2c 31 29 20 20 20 20 3a 20 f4 |ceW%,3,1) : .| 00002d10 20 73 65 74 20 73 70 61 63 65 2d 76 65 72 74 69 | set space-verti| 00002d20 63 61 6c 6c 79 20 6f 6e 0d 01 0a 38 f2 73 65 6c |cally on...8.sel| 00002d30 65 63 74 69 63 6f 6e 28 53 70 61 63 65 57 25 2c |ecticon(SpaceW%,| 00002d40 34 2c 31 29 20 20 20 20 3a 20 f4 20 73 65 74 20 |4,1) : . set | 00002d50 74 6f 20 66 69 78 65 64 20 73 70 61 63 69 6e 67 |to fixed spacing| 00002d60 0d 01 0b 37 f2 6c 69 6e 6b 69 63 6f 6e 74 65 78 |...7.linkicontex| 00002d70 74 28 31 38 2c 57 69 6e 42 6c 6b 25 2c 36 29 20 |t(18,WinBlk%,6) | 00002d80 3a 20 f4 20 73 70 61 63 65 20 62 65 74 77 65 65 |: . space betwee| 00002d90 6e 20 69 63 6f 6e 73 0d 01 0c 15 53 70 61 63 65 |n icons....Space| 00002da0 4f 75 74 5f 53 70 61 63 65 25 3d 34 0d 01 0d 27 |Out_Space%=4...'| 00002db0 f2 73 65 74 69 63 6f 6e 74 65 78 74 28 31 38 2c |.seticontext(18,| 00002dc0 c3 28 53 70 61 63 65 4f 75 74 5f 53 70 61 63 65 |.(SpaceOut_Space| 00002dd0 25 29 29 0d 01 0e 15 f2 73 70 61 63 65 5f 73 68 |%)).....space_sh| 00002de0 61 64 65 69 63 6f 6e 73 0d 01 0f 4a 53 74 61 74 |adeicons...JStat| 00002df0 57 25 3d a4 6c 6f 61 64 74 65 6d 70 6c 61 74 65 |W%=.loadtemplate| 00002e00 28 22 53 74 61 74 73 22 2c 57 69 6e 42 6c 6b 25 |("Stats",WinBlk%| 00002e10 2c 49 6e 64 69 72 45 6e 64 25 2c 49 6e 64 69 72 |,IndirEnd%,Indir| 00002e20 46 72 65 65 25 2c 53 79 73 53 70 72 69 74 65 73 |Free%,SysSprites| 00002e30 25 29 0d 01 10 1b f2 73 65 6c 65 63 74 69 63 6f |%).....selectico| 00002e40 6e 28 53 74 61 74 57 25 2c 31 2c 31 29 0d 01 11 |n(StatW%,1,1)...| 00002e50 46 53 74 64 49 63 6f 6e 57 25 3d a4 6c 6f 61 64 |FStdIconW%=.load| 00002e60 74 65 6d 70 6c 61 74 65 28 22 53 74 64 49 63 6f |template("StdIco| 00002e70 6e 73 22 2c 57 69 6e 42 6c 6b 25 2c 49 6e 64 69 |ns",WinBlk%,Indi| 00002e80 72 45 6e 64 25 2c 49 6e 64 69 72 46 72 65 65 25 |rEnd%,IndirFree%| 00002e90 2c 31 29 0d 01 12 1d 4c 61 73 74 53 74 64 49 63 |,1)....LastStdIc| 00002ea0 6f 6e 25 3d 57 69 6e 42 6c 6b 25 21 38 38 2d 31 |on%=WinBlk%!88-1| 00002eb0 0d 01 13 43 44 69 61 6c 57 25 3d a4 6c 6f 61 64 |...CDialW%=.load| 00002ec0 74 65 6d 70 6c 61 74 65 28 22 44 69 61 6c 6f 67 |template("Dialog| 00002ed0 75 65 22 2c 57 69 6e 42 6c 6b 25 2c 49 6e 64 69 |ue",WinBlk%,Indi| 00002ee0 72 45 6e 64 25 2c 49 6e 64 69 72 46 72 65 65 25 |rEnd%,IndirFree%| 00002ef0 2c 31 29 0d 01 14 1d 44 69 61 6c 5f 4d 73 67 25 |,1)....Dial_Msg%| 00002f00 3d 57 69 6e 42 6c 6b 25 21 28 39 32 2b 32 30 29 |=WinBlk%!(92+20)| 00002f10 0d 01 15 49 44 69 61 6c 5f 42 75 74 74 6f 6e 31 |...IDial_Button1| 00002f20 25 3d 57 69 6e 42 6c 6b 25 21 28 39 32 2b 31 2a |%=WinBlk%!(92+1*| 00002f30 33 32 2b 32 30 29 20 3a 20 f4 20 70 6f 69 6e 74 |32+20) : . point| 00002f40 65 72 20 74 6f 20 74 65 78 74 20 69 6e 20 6c 65 |er to text in le| 00002f50 66 74 20 62 75 74 74 6f 6e 0d 01 16 4b 44 69 61 |ft button...KDia| 00002f60 6c 5f 42 75 74 74 6f 6e 32 25 3d 57 69 6e 42 6c |l_Button2%=WinBl| 00002f70 6b 25 21 28 39 32 2b 32 2a 33 32 2b 32 30 29 20 |k%!(92+2*32+20) | 00002f80 3a 20 f4 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 |: . pointer to t| 00002f90 65 78 74 20 69 6e 20 6d 69 64 64 6c 65 20 62 75 |ext in middle bu| 00002fa0 74 74 6f 6e 0d 01 17 4a 44 69 61 6c 5f 42 75 74 |tton...JDial_But| 00002fb0 74 6f 6e 33 25 3d 57 69 6e 42 6c 6b 25 21 28 39 |ton3%=WinBlk%!(9| 00002fc0 32 2b 33 2a 33 32 2b 32 30 29 20 3a 20 f4 20 70 |2+3*32+20) : . p| 00002fd0 6f 69 6e 74 65 72 20 74 6f 20 74 65 78 74 20 69 |ointer to text i| 00002fe0 6e 20 72 69 67 68 74 20 62 75 74 74 6f 6e 0d 01 |n right button..| 00002ff0 18 2e f4 20 73 74 6f 72 65 20 63 6f 6c 6f 75 72 |... store colour| 00003000 73 20 61 6e 64 20 62 6f 72 64 65 72 20 66 6c 61 |s and border fla| 00003010 67 20 6f 66 20 62 75 74 74 6f 6e 73 0d 01 19 1a |g of buttons....| 00003020 6d 61 73 6b 25 3d 28 31 3c 3c 32 29 2b 28 26 46 |mask%=(1<<2)+(&F| 00003030 46 3c 3c 32 34 29 0d 01 1a 33 44 69 61 6c 5f 42 |F<<24)...3Dial_B| 00003040 75 74 74 6f 6e 43 6f 6c 31 25 3d 28 57 69 6e 42 |uttonCol1%=(WinB| 00003050 6c 6b 25 21 28 39 32 2b 31 2a 33 32 2b 31 36 29 |lk%!(92+1*32+16)| 00003060 29 20 80 20 6d 61 73 6b 25 0d 01 1b 33 44 69 61 |) . mask%...3Dia| 00003070 6c 5f 42 75 74 74 6f 6e 43 6f 6c 32 25 3d 28 57 |l_ButtonCol2%=(W| 00003080 69 6e 42 6c 6b 25 21 28 39 32 2b 32 2a 33 32 2b |inBlk%!(92+2*32+| 00003090 31 36 29 29 20 80 20 6d 61 73 6b 25 0d 01 1c 33 |16)) . mask%...3| 000030a0 44 69 61 6c 5f 42 75 74 74 6f 6e 43 6f 6c 33 25 |Dial_ButtonCol3%| 000030b0 3d 28 57 69 6e 42 6c 6b 25 21 28 39 32 2b 33 2a |=(WinBlk%!(92+3*| 000030c0 33 32 2b 31 36 29 29 20 80 20 6d 61 73 6b 25 0d |32+16)) . mask%.| 000030d0 01 1d 1b c8 99 20 22 57 69 6d 70 5f 43 6c 6f 73 |..... "Wimp_Clos| 000030e0 65 54 65 6d 70 6c 61 74 65 22 0d 01 1e 1b f4 20 |eTemplate"..... | 000030f0 69 6e 69 74 69 61 6c 69 73 65 20 66 6f 6e 74 20 |initialise font | 00003100 75 73 61 67 65 0d 01 1f 10 e3 20 69 25 3d 30 20 |usage..... i%=0 | 00003110 b8 20 32 35 35 0d 01 20 13 20 20 e7 20 46 72 61 |. 255.. . . Fra| 00003120 25 3f 69 25 3e 30 20 8c 0d 01 21 3d 20 20 20 20 |%?i%>0 ...!= | 00003130 46 6f 6e 74 55 73 61 67 65 25 28 69 25 29 3d 31 |FontUsage%(i%)=1| 00003140 20 3a 20 f4 20 66 6f 6e 74 20 69 73 20 75 73 65 | : . font is use| 00003150 64 20 62 79 20 73 79 73 74 65 6d 20 74 65 6d 70 |d by system temp| 00003160 6c 61 74 65 73 0d 01 22 07 20 20 cc 0d 01 23 18 |lates..". ...#.| 00003170 20 20 20 20 46 6f 6e 74 55 73 61 67 65 25 28 69 | FontUsage%(i| 00003180 25 29 3d 30 0d 01 24 07 20 20 cd 0d 01 25 08 ed |%)=0..$. ...%..| 00003190 20 69 25 0d 01 26 0f f2 73 65 74 75 70 5f 6c 6f | i%..&..setup_lo| 000031a0 61 64 0d 01 27 2c f2 73 65 6c 65 63 74 69 63 6f |ad..',.selectico| 000031b0 6e 28 4f 70 74 50 61 6e 65 57 25 2c 31 33 2c 49 |n(OptPaneW%,13,I| 000031c0 63 49 6e 66 6f 5f 41 63 74 69 76 65 25 29 0d 01 |cInfo_Active%)..| 000031d0 28 28 f2 73 65 6c 65 63 74 69 63 6f 6e 28 4f 70 |((.selecticon(Op| 000031e0 74 50 61 6e 65 57 25 2c 31 31 2c 44 75 70 6c 4e |tPaneW%,11,DuplN| 000031f0 61 6d 65 73 25 29 0d 01 29 24 f2 73 65 6c 65 63 |ames%)..)$.selec| 00003200 74 69 63 6f 6e 28 4f 70 74 50 61 6e 65 57 25 2c |ticon(OptPaneW%,| 00003210 31 32 2c 48 61 74 63 68 25 29 0d 01 2a 2c f2 73 |12,Hatch%)..*,.s| 00003220 65 6c 65 63 74 69 63 6f 6e 28 4f 70 74 50 61 6e |electicon(OptPan| 00003230 65 57 25 2c 31 36 2c 47 72 69 64 5f 53 69 7a 65 |eW%,16,Grid_Size| 00003240 4c 6f 63 6b 25 29 0d 01 2b 23 f2 73 65 74 69 63 |Lock%)..+#.setic| 00003250 6f 6e 74 65 78 74 28 32 38 2c c3 28 47 72 69 64 |ontext(28,.(Grid| 00003260 5f 53 69 7a 65 58 25 29 29 0d 01 2c 23 f2 73 65 |_SizeX%))..,#.se| 00003270 74 69 63 6f 6e 74 65 78 74 28 32 39 2c c3 28 47 |ticontext(29,.(G| 00003280 72 69 64 5f 53 69 7a 65 59 25 29 29 0d 01 2d 2b |rid_SizeY%))..-+| 00003290 f2 73 65 6c 65 63 74 69 63 6f 6e 28 4f 70 74 50 |.selecticon(OptP| 000032a0 61 6e 65 57 25 2c 32 35 2c 47 72 69 64 5f 50 6f |aneW%,25,Grid_Po| 000032b0 73 4c 6f 63 6b 25 29 0d 01 2e 22 f2 73 65 74 69 |sLock%)...".seti| 000032c0 63 6f 6e 74 65 78 74 28 33 30 2c c3 28 47 72 69 |context(30,.(Gri| 000032d0 64 5f 50 6f 73 58 25 29 29 0d 01 2f 22 f2 73 65 |d_PosX%))../".se| 000032e0 74 69 63 6f 6e 74 65 78 74 28 33 31 2c c3 28 47 |ticontext(31,.(G| 000032f0 72 69 64 5f 50 6f 73 59 25 29 29 0d 01 30 2e f2 |rid_PosY%))..0..| 00003300 73 65 6c 65 63 74 69 63 6f 6e 28 4f 70 74 50 61 |selecticon(OptPa| 00003310 6e 65 57 25 2c 31 34 2c 53 61 76 65 5f 55 6e 73 |neW%,14,Save_Uns| 00003320 65 6c 65 63 74 65 64 25 29 0d 01 31 2c f2 73 65 |elected%)..1,.se| 00003330 6c 65 63 74 69 63 6f 6e 28 4f 70 74 50 61 6e 65 |lecticon(OptPane| 00003340 57 25 2c 31 35 2c 44 65 6c 65 74 65 4f 75 74 73 |W%,15,DeleteOuts| 00003350 69 64 65 25 29 0d 01 32 28 f2 73 65 6c 65 63 74 |ide%)..2(.select| 00003360 69 63 6f 6e 28 4f 70 74 50 61 6e 65 57 25 2c 38 |icon(OptPaneW%,8| 00003370 2c 54 72 61 70 44 63 6c 69 63 6b 25 29 0d 01 33 |,TrapDclick%)..3| 00003380 11 f2 70 72 65 70 61 72 65 6d 65 6e 75 73 0d 01 |..preparemenus..| 00003390 34 28 f2 73 75 70 70 6f 72 74 69 6e 74 65 72 66 |4(.supportinterf| 000033a0 61 63 65 28 53 75 70 70 6f 72 74 49 6e 74 65 72 |ace(SupportInter| 000033b0 66 61 63 65 25 29 0d 01 35 14 41 45 48 72 65 67 |face%)..5.AEHreg| 000033c0 69 73 74 65 72 65 64 25 3d a3 0d 01 36 1c f2 73 |istered%=...6..s| 000033d0 75 70 70 6f 72 74 61 65 68 28 53 75 70 70 6f 72 |upportaeh(Suppor| 000033e0 74 41 45 48 25 29 0d 01 37 13 f2 72 65 61 64 73 |tAEH%)..7..reads| 000033f0 63 72 65 65 6e 76 61 72 73 0d 01 38 3a f4 20 67 |creenvars..8:. g| 00003400 65 74 20 66 69 6c 65 6e 61 6d 65 20 74 68 61 74 |et filename that| 00003410 20 77 61 73 20 67 69 76 65 6e 20 61 73 20 61 72 | was given as ar| 00003420 67 75 6d 65 6e 74 20 77 69 74 68 20 63 6f 6d 6d |gument with comm| 00003430 61 6e 64 0d 01 39 1c c8 99 20 22 4f 53 5f 47 65 |and..9... "OS_Ge| 00003440 74 45 6e 76 22 20 b8 20 63 6d 64 73 74 72 25 0d |tEnv" . cmdstr%.| 00003450 01 3a 15 66 6e 24 3d a4 73 74 72 28 63 6d 64 73 |.:.fn$=.str(cmds| 00003460 74 72 25 29 0d 01 3b 15 70 25 3d a7 66 6e 24 2c |tr%)..;.p%=.fn$,| 00003470 41 70 70 6c 44 69 72 24 29 0d 01 3c 1f 70 25 3d |ApplDir$)..<.p%=| 00003480 a7 66 6e 24 2c 22 20 22 2c 70 25 2b a9 28 41 70 |.fn$," ",p%+.(Ap| 00003490 70 6c 44 69 72 24 29 29 0d 01 3d 0c e7 20 70 25 |plDir$))..=.. p%| 000034a0 3e 30 20 8c 0d 01 3e 14 20 20 66 6e 24 3d c1 66 |>0 ...>. fn$=.f| 000034b0 6e 24 2c 70 25 2b 31 29 0d 01 3f 15 20 20 70 25 |n$,p%+1)..?. p%| 000034c0 3d a7 66 6e 24 2c 22 20 22 2c 70 25 29 0d 01 40 |=.fn$," ",p%)..@| 000034d0 14 20 20 66 6e 24 3d c0 66 6e 24 2c 70 25 2d 31 |. fn$=.fn$,p%-1| 000034e0 29 0d 01 41 12 20 20 e7 20 a9 28 66 6e 24 29 3e |)..A. . .(fn$)>| 000034f0 30 20 8c 0d 01 42 41 20 20 20 20 f2 74 65 6d 70 |0 ...BA .temp| 00003500 6c 5f 6c 6f 61 64 66 69 6c 65 28 66 6e 24 2c 31 |l_loadfile(fn$,1| 00003510 29 20 3a 20 f4 20 66 6f 75 6e 64 20 66 69 6c 65 |) : . found file| 00003520 6e 61 6d 65 20 2d 20 6c 6f 61 64 20 74 68 65 20 |name - load the | 00003530 66 69 6c 65 0d 01 43 1a 20 20 20 20 f2 73 65 74 |file..C. .set| 00003540 6d 61 69 6e 66 6e 61 6d 65 28 66 6e 24 29 0d 01 |mainfname(fn$)..| 00003550 44 07 20 20 cd 0d 01 45 05 cc 0d 01 46 10 20 20 |D. ...E....F. | 00003560 f2 73 65 74 65 78 74 65 6e 74 0d 01 47 05 cd 0d |.setextent..G...| 00003570 01 48 05 e1 0d 01 49 04 0d 01 4a 1e dd 20 f2 6b |.H....I...J.. .k| 00003580 65 79 28 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 |ey(window%,icon%| 00003590 2c 6b 65 79 25 29 0d 01 4b 49 ea 20 69 25 2c 77 |,key%)..KI. i%,w| 000035a0 61 73 6c 61 73 74 25 2c 64 78 25 2c 64 79 25 2c |aslast%,dx%,dy%,| 000035b0 6e 6f 25 2c 68 65 6c 70 24 2c 78 6d 69 6e 25 2c |no%,help$,xmin%,| 000035c0 79 6d 69 6e 25 2c 78 6d 61 78 25 2c 79 6d 61 78 |ymin%,xmax%,ymax| 000035d0 25 2c 78 73 74 65 70 25 2c 79 73 74 65 70 25 0d |%,xstep%,ystep%.| 000035e0 01 4c 24 e7 20 28 6b 65 79 25 3d 32 37 29 20 80 |.L$. (key%=27) .| 000035f0 20 28 44 72 61 67 5f 54 79 70 65 25 3c 3e 2d 31 | (Drag_Type%<>-1| 00003600 29 20 8c 0d 01 4d 10 20 20 f2 61 62 6f 72 74 64 |) ...M. .abortd| 00003610 72 61 67 0d 01 4e 05 cc 0d 01 4f 12 20 20 c8 8e |rag..N....O. ..| 00003620 20 77 69 6e 64 6f 77 25 20 ca 0d 01 50 10 20 20 | window% ...P. | 00003630 20 20 c9 20 49 63 45 64 57 25 0d 01 51 13 20 20 | . IcEdW%..Q. | 00003640 20 20 20 20 c8 8e 20 6b 65 79 25 20 ca 0d 01 52 | .. key% ...R| 00003650 30 20 20 20 20 20 20 20 20 c9 20 26 31 38 45 2c |0 . &18E,| 00003660 26 31 38 41 2c 31 33 20 3a 20 f4 20 64 6f 77 6e |&18A,13 : . down| 00003670 2c 20 74 61 62 2c 20 72 65 74 75 72 6e 0d 01 53 |, tab, return..S| 00003680 19 20 20 20 20 20 20 20 20 20 20 e7 20 69 63 6f |. . ico| 00003690 6e 25 3e 30 20 8c 0d 01 54 18 20 20 20 20 20 20 |n%>0 ...T. | 000036a0 20 20 20 20 20 20 69 25 3d 69 63 6f 6e 25 0d 01 | i%=icon%..| 000036b0 55 1a 20 20 20 20 20 20 20 20 20 20 20 20 77 61 |U. wa| 000036c0 73 6c 61 73 74 25 3d a3 0d 01 56 11 20 20 20 20 |slast%=...V. | 000036d0 20 20 20 20 20 20 20 20 f5 0d 01 57 1b 20 20 20 | ...W. | 000036e0 20 20 20 20 20 20 20 20 20 20 20 e7 20 69 25 3d | . i%=| 000036f0 32 36 20 8c 0d 01 58 19 20 20 20 20 20 20 20 20 |26 ...X. | 00003700 20 20 20 20 20 20 20 20 69 25 3d 32 33 0d 01 59 | i%=23..Y| 00003710 35 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |5 | 00003720 20 77 61 73 6c 61 73 74 25 3d b9 20 3a 20 f4 20 | waslast%=. : . | 00003730 63 61 72 65 74 20 77 65 6e 74 20 22 72 6f 75 6e |caret went "roun| 00003740 64 22 0d 01 5a 13 20 20 20 20 20 20 20 20 20 20 |d"..Z. | 00003750 20 20 20 20 cc 0d 01 5b 19 20 20 20 20 20 20 20 | ...[. | 00003760 20 20 20 20 20 20 20 20 20 69 25 2b 3d 31 0d 01 | i%+=1..| 00003770 5c 13 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |\. | 00003780 cd 0d 01 5d 39 20 20 20 20 20 20 20 20 20 20 20 |...]9 | 00003790 20 fd 20 28 ac 20 a4 69 63 6f 6e 73 68 61 64 65 | . (. .iconshade| 000037a0 64 28 49 63 45 64 57 25 2c 69 25 29 29 20 84 20 |d(IcEdW%,i%)) . | 000037b0 28 69 25 3d 69 63 6f 6e 25 29 0d 01 5e 28 20 20 |(i%=icon%)..^( | 000037c0 20 20 20 20 20 20 20 20 20 20 e7 20 77 61 73 6c | . wasl| 000037d0 61 73 74 25 20 80 20 28 6b 65 79 25 3d 31 33 29 |ast% . (key%=13)| 000037e0 20 8c 0d 01 5f 29 20 20 20 20 20 20 20 20 20 20 | ..._) | 000037f0 20 20 20 20 f2 73 65 6c 65 63 74 69 63 6f 6e 28 | .selecticon(| 00003800 49 63 45 64 57 25 2c 39 2c 31 29 0d 01 60 23 20 |IcEdW%,9,1)..`# | 00003810 20 20 20 20 20 20 20 20 20 20 20 20 20 f2 69 63 | .ic| 00003820 65 64 5f 72 65 61 64 77 69 6e 28 2d 31 29 0d 01 |ed_readwin(-1)..| 00003830 61 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |a) | 00003840 f2 73 65 6c 65 63 74 69 63 6f 6e 28 49 63 45 64 |.selecticon(IcEd| 00003850 57 25 2c 39 2c 30 29 0d 01 62 1a 20 20 20 20 20 |W%,9,0)..b. | 00003860 20 20 20 20 20 20 20 20 20 69 25 3d 69 63 6f 6e | i%=icon| 00003870 25 0d 01 63 11 20 20 20 20 20 20 20 20 20 20 20 |%..c. | 00003880 20 cd 0d 01 64 24 20 20 20 20 20 20 20 20 20 20 | ...d$ | 00003890 20 20 f2 73 65 74 63 61 72 65 74 28 49 63 45 64 | .setcaret(IcEd| 000038a0 57 25 2c 69 25 29 0d 01 65 0f 20 20 20 20 20 20 |W%,i%)..e. | 000038b0 20 20 20 20 cd 0d 01 66 29 20 20 20 20 20 20 20 | ...f) | 000038c0 20 c9 20 26 31 38 46 2c 26 31 39 41 20 3a 20 f4 | . &18F,&19A : .| 000038d0 20 75 70 2c 20 73 68 69 66 74 2b 74 61 62 0d 01 | up, shift+tab..| 000038e0 67 19 20 20 20 20 20 20 20 20 20 20 e7 20 69 63 |g. . ic| 000038f0 6f 6e 25 3e 30 20 8c 0d 01 68 18 20 20 20 20 20 |on%>0 ...h. | 00003900 20 20 20 20 20 20 20 69 25 3d 69 63 6f 6e 25 0d | i%=icon%.| 00003910 01 69 11 20 20 20 20 20 20 20 20 20 20 20 20 f5 |.i. .| 00003920 0d 01 6a 1b 20 20 20 20 20 20 20 20 20 20 20 20 |..j. | 00003930 20 20 e7 20 69 25 3d 32 33 20 8c 0d 01 6b 19 20 | . i%=23 ...k. | 00003940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 | i| 00003950 25 3d 32 36 0d 01 6c 13 20 20 20 20 20 20 20 20 |%=26..l. | 00003960 20 20 20 20 20 20 cc 0d 01 6d 19 20 20 20 20 20 | ...m. | 00003970 20 20 20 20 20 20 20 20 20 20 20 69 25 2d 3d 31 | i%-=1| 00003980 0d 01 6e 13 20 20 20 20 20 20 20 20 20 20 20 20 |..n. | 00003990 20 20 cd 0d 01 6f 39 20 20 20 20 20 20 20 20 20 | ...o9 | 000039a0 20 20 20 fd 20 28 ac 20 a4 69 63 6f 6e 73 68 61 | . (. .iconsha| 000039b0 64 65 64 28 49 63 45 64 57 25 2c 69 25 29 29 20 |ded(IcEdW%,i%)) | 000039c0 84 20 28 69 25 3d 69 63 6f 6e 25 29 0d 01 70 24 |. (i%=icon%)..p$| 000039d0 20 20 20 20 20 20 20 20 20 20 20 20 f2 73 65 74 | .set| 000039e0 63 61 72 65 74 28 49 63 45 64 57 25 2c 69 25 29 |caret(IcEdW%,i%)| 000039f0 0d 01 71 0f 20 20 20 20 20 20 20 20 20 20 cd 0d |..q. ..| 00003a00 01 72 19 20 20 20 20 20 20 20 20 c9 20 26 31 38 |.r. . &18| 00003a10 31 20 3a 20 f4 20 46 31 0d 01 73 30 20 20 20 20 |1 : . F1..s0 | 00003a20 20 20 20 20 20 20 c8 99 20 22 57 69 6d 70 5f 47 | .. "Wimp_G| 00003a30 65 74 50 6f 69 6e 74 65 72 49 6e 66 6f 22 2c 2c |etPointerInfo",,| 00003a40 50 74 72 49 6e 66 6f 25 0d 01 74 24 20 20 20 20 |PtrInfo%..t$ | 00003a50 20 20 20 20 20 20 e7 20 50 74 72 49 6e 66 6f 25 | . PtrInfo%| 00003a60 21 31 32 3d 49 63 45 64 57 25 20 8c 0d 01 75 18 |!12=IcEdW% ...u.| 00003a70 20 20 20 20 20 20 20 20 20 20 20 20 68 65 6c 70 | help| 00003a80 24 3d 22 22 0d 01 76 20 20 20 20 20 20 20 20 20 |$=""..v | 00003a90 20 20 20 20 c8 8e 20 50 74 72 49 6e 66 6f 25 21 | .. PtrInfo%!| 00003aa0 31 36 20 ca 0d 01 77 36 20 20 20 20 20 20 20 20 |16 ...w6 | 00003ab0 20 20 20 20 20 20 c9 20 31 34 20 20 20 20 20 20 | . 14 | 00003ac0 20 20 20 20 20 20 3a 20 68 65 6c 70 24 3d 22 49 | : help$="I| 00003ad0 6e 64 69 72 65 63 74 65 64 22 0d 01 78 36 20 20 |ndirected"..x6 | 00003ae0 20 20 20 20 20 20 20 20 20 20 20 20 c9 20 33 2c | . 3,| 00003af0 32 35 20 20 20 20 20 20 20 20 20 20 3a 20 68 65 |25 : he| 00003b00 6c 70 24 3d 22 56 61 6c 69 64 61 74 69 6f 6e 22 |lp$="Validation"| 00003b10 0d 01 79 33 20 20 20 20 20 20 20 20 20 20 20 20 |..y3 | 00003b20 20 20 c9 20 34 2c 32 36 20 20 20 20 20 20 20 20 | . 4,26 | 00003b30 20 20 3a 20 68 65 6c 70 24 3d 22 4d 61 78 73 69 | : help$="Maxsi| 00003b40 7a 65 22 0d 01 7a 32 20 20 20 20 20 20 20 20 20 |ze"..z2 | 00003b50 20 20 20 20 20 c9 20 31 35 20 20 20 20 20 20 20 | . 15 | 00003b60 20 20 20 20 20 3a 20 68 65 6c 70 24 3d 22 42 6f | : help$="Bo| 00003b70 72 64 65 72 22 0d 01 7b 32 20 20 20 20 20 20 20 |rder"..{2 | 00003b80 20 20 20 20 20 20 20 c9 20 31 36 20 20 20 20 20 | . 16 | 00003b90 20 20 20 20 20 20 20 3a 20 68 65 6c 70 24 3d 22 | : help$="| 00003ba0 46 69 6c 6c 65 64 22 0d 01 7c 34 20 20 20 20 20 |Filled"..|4 | 00003bb0 20 20 20 20 20 20 20 20 20 c9 20 31 37 20 20 20 | . 17 | 00003bc0 20 20 20 20 20 20 20 20 20 3a 20 68 65 6c 70 24 | : help$| 00003bd0 3d 22 48 63 65 6e 74 72 65 64 22 0d 01 7d 34 20 |="Hcentred"..}4 | 00003be0 20 20 20 20 20 20 20 20 20 20 20 20 20 c9 20 31 | . 1| 00003bf0 38 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 68 |8 : h| 00003c00 65 6c 70 24 3d 22 56 63 65 6e 74 72 65 64 22 0d |elp$="Vcentred".| 00003c10 01 7e 36 20 20 20 20 20 20 20 20 20 20 20 20 20 |.~6 | 00003c20 20 c9 20 31 39 20 20 20 20 20 20 20 20 20 20 20 | . 19 | 00003c30 20 3a 20 68 65 6c 70 24 3d 22 52 6a 75 73 74 69 | : help$="Rjusti| 00003c40 66 69 65 64 22 0d 01 7f 35 20 20 20 20 20 20 20 |fied"...5 | 00003c50 20 20 20 20 20 20 20 c9 20 32 30 20 20 20 20 20 | . 20 | 00003c60 20 20 20 20 20 20 20 3a 20 68 65 6c 70 24 3d 22 | : help$="| 00003c70 4e 65 65 64 73 68 65 6c 70 22 0d 01 80 37 20 20 |Needshelp"...7 | 00003c80 20 20 20 20 20 20 20 20 20 20 20 20 c9 20 32 31 | . 21| 00003c90 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 68 65 | : he| 00003ca0 6c 70 24 3d 22 41 6c 6c 6f 77 61 64 6a 75 73 74 |lp$="Allowadjust| 00003cb0 22 0d 01 81 34 20 20 20 20 20 20 20 20 20 20 20 |"...4 | 00003cc0 20 20 20 c9 20 32 32 20 20 20 20 20 20 20 20 20 | . 22 | 00003cd0 20 20 20 3a 20 68 65 6c 70 24 3d 22 48 61 6c 66 | : help$="Half| 00003ce0 73 69 7a 65 22 0d 01 82 36 20 20 20 20 20 20 20 |size"...6 | 00003cf0 20 20 20 20 20 20 20 c9 20 35 2c 32 37 2c 32 38 | . 5,27,28| 00003d00 2c 32 39 20 20 20 20 3a 20 68 65 6c 70 24 3d 22 |,29 : help$="| 00003d10 42 75 74 74 6f 6e 74 79 70 65 22 0d 01 83 2f 20 |Buttontype".../ | 00003d20 20 20 20 20 20 20 20 20 20 20 20 20 20 c9 20 36 | . 6| 00003d30 2c 33 30 2c 33 31 2c 33 32 20 20 20 20 3a 20 68 |,30,31,32 : h| 00003d40 65 6c 70 24 3d 22 45 53 47 22 0d 01 84 32 20 20 |elp$="ESG"...2 | 00003d50 20 20 20 20 20 20 20 20 20 20 20 20 c9 20 33 39 | . 39| 00003d60 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 68 65 | : he| 00003d70 6c 70 24 3d 22 53 68 61 64 65 64 22 0d 01 85 31 |lp$="Shaded"...1| 00003d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c9 20 | . | 00003d90 37 2c 33 33 2c 33 34 2c 33 35 20 20 20 20 3a 20 |7,33,34,35 : | 00003da0 68 65 6c 70 24 3d 22 46 67 63 6f 6c 22 0d 01 86 |help$="Fgcol"...| 00003db0 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c9 |1 .| 00003dc0 20 38 2c 33 36 2c 33 37 2c 33 38 20 20 20 20 3a | 8,36,37,38 :| 00003dd0 20 68 65 6c 70 24 3d 22 42 67 63 6f 6c 22 0d 01 | help$="Bgcol"..| 00003de0 87 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.0 | 00003df0 c9 20 34 31 20 20 20 20 20 20 20 20 20 20 20 20 |. 41 | 00003e00 3a 20 68 65 6c 70 24 3d 22 46 6f 6e 74 22 0d 01 |: help$="Font"..| 00003e10 88 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.1 | 00003e20 c9 20 31 20 20 20 20 20 20 20 20 20 20 20 20 20 |. 1 | 00003e30 3a 20 68 65 6c 70 24 3d 22 46 6c 61 67 73 22 0d |: help$="Flags".| 00003e40 01 89 11 20 20 20 20 20 20 20 20 20 20 20 20 cb |... .| 00003e50 0d 01 8a 1d 20 20 20 20 20 20 20 20 20 20 20 20 |.... | 00003e60 e7 20 68 65 6c 70 24 3c 3e 22 22 20 8c 0d 01 8b |. help$<>"" ....| 00003e70 35 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f2 |5 .| 00003e80 61 73 6b 68 65 6c 70 28 22 54 65 6d 70 6c 45 64 |askhelp("TemplEd| 00003e90 2e 49 63 6f 6e 49 6e 66 6f 5f 22 2b 68 65 6c 70 |.IconInfo_"+help| 00003ea0 24 29 0d 01 8c 11 20 20 20 20 20 20 20 20 20 20 |$).... | 00003eb0 20 20 cd 0d 01 8d 0f 20 20 20 20 20 20 20 20 20 | ..... | 00003ec0 20 cd 0d 01 8e 19 20 20 20 20 20 20 20 20 c9 20 | ..... . | 00003ed0 26 31 38 32 20 3a 20 f4 20 46 32 0d 01 8f 25 20 |&182 : . F2...% | 00003ee0 20 20 20 20 20 20 20 20 20 f2 73 65 6c 65 63 74 | .select| 00003ef0 69 63 6f 6e 28 49 63 45 64 57 25 2c 39 2c 31 29 |icon(IcEdW%,9,1)| 00003f00 0d 01 90 1f 20 20 20 20 20 20 20 20 20 20 f2 69 |.... .i| 00003f10 63 65 64 5f 72 65 61 64 77 69 6e 28 2d 31 29 0d |ced_readwin(-1).| 00003f20 01 91 25 20 20 20 20 20 20 20 20 20 20 f2 73 65 |..% .se| 00003f30 6c 65 63 74 69 63 6f 6e 28 49 63 45 64 57 25 2c |lecticon(IcEdW%,| 00003f40 39 2c 30 29 0d 01 92 19 20 20 20 20 20 20 20 20 |9,0).... | 00003f50 c9 20 26 31 38 33 20 3a 20 f4 20 46 33 0d 01 93 |. &183 : . F3...| 00003f60 26 20 20 20 20 20 20 20 20 20 20 f2 73 65 6c 65 |& .sele| 00003f70 63 74 69 63 6f 6e 28 49 63 45 64 57 25 2c 31 30 |cticon(IcEdW%,10| 00003f80 2c 31 29 0d 01 94 1f 20 20 20 20 20 20 20 20 20 |,1).... | 00003f90 20 f2 69 63 65 64 5f 72 65 61 64 77 69 6e 28 2d | .iced_readwin(-| 00003fa0 31 29 0d 01 95 26 20 20 20 20 20 20 20 20 20 20 |1)...& | 00003fb0 f2 73 65 6c 65 63 74 69 63 6f 6e 28 49 63 45 64 |.selecticon(IcEd| 00003fc0 57 25 2c 31 30 2c 30 29 0d 01 96 22 20 20 20 20 |W%,10,0)..." | 00003fd0 20 20 20 20 20 20 f2 63 6c 6f 73 65 77 69 6e 64 | .closewind| 00003fe0 6f 77 28 49 63 45 64 57 25 29 0d 01 97 25 20 20 |ow(IcEdW%)...% | 00003ff0 20 20 20 20 20 20 20 20 f2 73 65 74 63 61 72 65 | .setcare| 00004000 74 28 49 63 45 64 5f 57 69 6e 25 2c 2d 31 29 0d |t(IcEd_Win%,-1).| 00004010 01 98 21 20 20 20 20 20 20 20 20 c9 20 26 31 38 |..! . &18| 00004020 34 2c 32 37 20 3a 20 f4 20 46 34 2c 20 45 73 63 |4,27 : . F4, Esc| 00004030 0d 01 99 26 20 20 20 20 20 20 20 20 20 20 f2 73 |...& .s| 00004040 65 6c 65 63 74 69 63 6f 6e 28 49 63 45 64 57 25 |electicon(IcEdW%| 00004050 2c 31 31 2c 31 29 0d 01 9a 22 20 20 20 20 20 20 |,11,1)..." | 00004060 20 20 20 20 f2 63 6c 6f 73 65 77 69 6e 64 6f 77 | .closewindow| 00004070 28 49 63 45 64 57 25 29 0d 01 9b 26 20 20 20 20 |(IcEdW%)...& | 00004080 20 20 20 20 20 20 f2 73 65 6c 65 63 74 69 63 6f | .selectico| 00004090 6e 28 49 63 45 64 57 25 2c 31 31 2c 30 29 0d 01 |n(IcEdW%,11,0)..| 000040a0 9c 25 20 20 20 20 20 20 20 20 20 20 f2 73 65 74 |.% .set| 000040b0 63 61 72 65 74 28 49 63 45 64 5f 57 69 6e 25 2c |caret(IcEd_Win%,| 000040c0 2d 31 29 0d 01 9d 0d 20 20 20 20 20 20 20 20 7f |-1).... .| 000040d0 0d 01 9e 27 20 20 20 20 20 20 20 20 20 20 c8 99 |...' ..| 000040e0 20 22 57 69 6d 70 5f 50 72 6f 63 65 73 73 4b 65 | "Wimp_ProcessKe| 000040f0 79 22 2c 6b 65 79 25 0d 01 9f 0b 20 20 20 20 20 |y",key%.... | 00004100 20 cb 0d 01 a0 11 20 20 20 20 c9 20 57 69 6e 45 | ..... . WinE| 00004110 64 57 25 0d 01 a1 13 20 20 20 20 20 20 c8 8e 20 |dW%.... .. | 00004120 6b 65 79 25 20 ca 0d 01 a2 17 20 20 20 20 20 20 |key% ..... | 00004130 20 20 c9 20 26 31 38 31 20 20 20 20 20 0d 01 a3 | . &181 ...| 00004140 30 20 20 20 20 20 20 20 20 20 20 c8 99 20 22 57 |0 .. "W| 00004150 69 6d 70 5f 47 65 74 50 6f 69 6e 74 65 72 49 6e |imp_GetPointerIn| 00004160 66 6f 22 2c 2c 50 74 72 49 6e 66 6f 25 0d 01 a4 |fo",,PtrInfo%...| 00004170 25 20 20 20 20 20 20 20 20 20 20 e7 20 50 74 72 |% . Ptr| 00004180 49 6e 66 6f 25 21 31 32 3d 57 69 6e 45 64 57 25 |Info%!12=WinEdW%| 00004190 20 8c 0d 01 a5 18 20 20 20 20 20 20 20 20 20 20 | ..... | 000041a0 20 20 68 65 6c 70 24 3d 22 22 0d 01 a6 20 20 20 | help$=""... | 000041b0 20 20 20 20 20 20 20 20 20 20 c8 8e 20 50 74 72 | .. Ptr| 000041c0 49 6e 66 6f 25 21 31 36 20 ca 0d 01 a7 34 20 20 |Info%!16 ....4 | 000041d0 20 20 20 20 20 20 20 20 20 20 20 20 c9 20 34 20 | . 4 | 000041e0 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 68 65 | : he| 000041f0 6c 70 24 3d 22 4d 6f 76 65 61 62 6c 65 22 0d 01 |lp$="Moveable"..| 00004200 a8 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.7 | 00004210 c9 20 35 20 20 20 20 20 20 20 20 20 20 20 20 20 |. 5 | 00004220 3a 20 68 65 6c 70 24 3d 22 41 75 74 6f 2d 72 65 |: help$="Auto-re| 00004230 64 72 61 77 22 0d 01 a9 33 20 20 20 20 20 20 20 |draw"...3 | 00004240 20 20 20 20 20 20 20 c9 20 36 20 20 20 20 20 20 | . 6 | 00004250 20 20 20 20 20 20 20 3a 20 68 65 6c 70 24 3d 22 | : help$="| 00004260 48 6f 74 6b 65 79 73 22 0d 01 aa 30 20 20 20 20 |Hotkeys"...0 | 00004270 20 20 20 20 20 20 20 20 20 20 c9 20 37 20 20 20 | . 7 | 00004280 20 20 20 20 20 20 20 20 20 20 3a 20 68 65 6c 70 | : help| 00004290 24 3d 22 50 61 6e 65 22 0d 01 ab 34 20 20 20 20 |$="Pane"...4 | 000042a0 20 20 20 20 20 20 20 20 20 20 c9 20 38 20 20 20 | . 8 | 000042b0 20 20 20 20 20 20 20 20 20 20 3a 20 68 65 6c 70 | : help| 000042c0 24 3d 22 4e 6f 62 6f 75 6e 64 73 22 0d 01 ac 30 |$="Nobounds"...0| 000042d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c9 20 | . | 000042e0 39 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 |9 : | 000042f0 68 65 6c 70 24 3d 22 47 43 4f 4c 22 0d 01 ad 36 |help$="GCOL"...6| 00004300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c9 20 | . | 00004310 31 30 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 |10 : | 00004320 68 65 6c 70 24 3d 22 42 61 63 6b 77 69 6e 64 6f |help$="Backwindo| 00004330 77 22 0d 01 ae 32 20 20 20 20 20 20 20 20 20 20 |w"...2 | 00004340 20 20 20 20 c9 20 31 31 2c 31 32 20 20 20 20 20 | . 11,12 | 00004350 20 20 20 20 3a 20 68 65 6c 70 24 3d 22 53 63 72 | : help$="Scr| 00004360 6f 6c 6c 22 0d 01 af 36 20 20 20 20 20 20 20 20 |oll"...6 | 00004370 20 20 20 20 20 20 c9 20 31 2c 32 31 2c 32 32 2c | . 1,21,22,| 00004380 32 33 2c 32 34 20 3a 20 68 65 6c 70 24 3d 22 42 |23,24 : help$="B| 00004390 75 74 74 6f 6e 74 79 70 65 22 0d 01 b0 35 20 20 |uttontype"...5 | 000043a0 20 20 20 20 20 20 20 20 20 20 20 20 c9 20 32 30 | . 20| 000043b0 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 68 65 | : he| 000043c0 6c 70 24 3d 22 4e 65 77 66 6f 72 6d 61 74 22 0d |lp$="Newformat".| 000043d0 01 b1 11 20 20 20 20 20 20 20 20 20 20 20 20 cb |... .| 000043e0 0d 01 b2 1d 20 20 20 20 20 20 20 20 20 20 20 20 |.... | 000043f0 e7 20 68 65 6c 70 24 3c 3e 22 22 20 8c 0d 01 b3 |. help$<>"" ....| 00004400 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f2 |4 .| 00004410 61 73 6b 68 65 6c 70 28 22 54 65 6d 70 6c 45 64 |askhelp("TemplEd| 00004420 2e 57 69 6e 49 6e 66 6f 5f 22 2b 68 65 6c 70 24 |.WinInfo_"+help$| 00004430 29 0d 01 b4 11 20 20 20 20 20 20 20 20 20 20 20 |).... | 00004440 20 cd 0d 01 b5 0f 20 20 20 20 20 20 20 20 20 20 | ..... | 00004450 cd 0d 01 b6 15 20 20 20 20 20 20 20 20 c9 20 26 |..... . &| 00004460 31 38 32 2c 31 33 0d 01 b7 27 20 20 20 20 20 20 |182,13...' | 00004470 20 20 20 20 f2 73 65 6c 65 63 74 69 63 6f 6e 28 | .selecticon(| 00004480 57 69 6e 45 64 57 25 2c 35 33 2c 31 29 0d 01 b8 |WinEdW%,53,1)...| 00004490 1c 20 20 20 20 20 20 20 20 20 20 f2 77 69 6e 65 |. .wine| 000044a0 64 5f 72 65 61 64 77 69 6e 0d 01 b9 27 20 20 20 |d_readwin...' | 000044b0 20 20 20 20 20 20 20 f2 73 65 6c 65 63 74 69 63 | .selectic| 000044c0 6f 6e 28 57 69 6e 45 64 57 25 2c 35 33 2c 30 29 |on(WinEdW%,53,0)| 000044d0 0d 01 ba 12 20 20 20 20 20 20 20 20 c9 20 26 31 |.... . &1| 000044e0 38 33 0d 01 bb 27 20 20 20 20 20 20 20 20 20 20 |83...' | 000044f0 f2 73 65 6c 65 63 74 69 63 6f 6e 28 57 69 6e 45 |.selecticon(WinE| 00004500 64 57 25 2c 35 34 2c 31 29 0d 01 bc 1c 20 20 20 |dW%,54,1).... | 00004510 20 20 20 20 20 20 20 f2 77 69 6e 65 64 5f 72 65 | .wined_re| 00004520 61 64 77 69 6e 0d 01 bd 27 20 20 20 20 20 20 20 |adwin...' | 00004530 20 20 20 f2 73 65 6c 65 63 74 69 63 6f 6e 28 57 | .selecticon(W| 00004540 69 6e 45 64 57 25 2c 35 34 2c 30 29 0d 01 be 23 |inEdW%,54,0)...#| 00004550 20 20 20 20 20 20 20 20 20 20 f2 63 6c 6f 73 65 | .close| 00004560 77 69 6e 64 6f 77 28 57 69 6e 45 64 57 25 29 0d |window(WinEdW%).| 00004570 01 bf 26 20 20 20 20 20 20 20 20 20 20 f2 73 65 |..& .se| 00004580 74 63 61 72 65 74 28 57 69 6e 45 64 5f 57 69 6e |tcaret(WinEd_Win| 00004590 25 2c 2d 31 29 0d 01 c0 15 20 20 20 20 20 20 20 |%,-1).... | 000045a0 20 c9 20 26 31 38 34 2c 32 37 0d 01 c1 27 20 20 | . &184,27...' | 000045b0 20 20 20 20 20 20 20 20 f2 73 65 6c 65 63 74 69 | .selecti| 000045c0 63 6f 6e 28 57 69 6e 45 64 57 25 2c 35 35 2c 31 |con(WinEdW%,55,1| 000045d0 29 0d 01 c2 23 20 20 20 20 20 20 20 20 20 20 f2 |)...# .| 000045e0 63 6c 6f 73 65 77 69 6e 64 6f 77 28 57 69 6e 45 |closewindow(WinE| 000045f0 64 57 25 29 0d 01 c3 27 20 20 20 20 20 20 20 20 |dW%)...' | 00004600 20 20 f2 73 65 6c 65 63 74 69 63 6f 6e 28 57 69 | .selecticon(Wi| 00004610 6e 45 64 57 25 2c 35 35 2c 30 29 0d 01 c4 26 20 |nEdW%,55,0)...& | 00004620 20 20 20 20 20 20 20 20 20 f2 73 65 74 63 61 72 | .setcar| 00004630 65 74 28 57 69 6e 45 64 5f 57 69 6e 25 2c 2d 31 |et(WinEd_Win%,-1| 00004640 29 0d 01 c5 0d 20 20 20 20 20 20 20 20 7f 0d 01 |).... ...| 00004650 c6 27 20 20 20 20 20 20 20 20 20 20 c8 99 20 22 |.' .. "| 00004660 57 69 6d 70 5f 50 72 6f 63 65 73 73 4b 65 79 22 |Wimp_ProcessKey"| 00004670 2c 6b 65 79 25 0d 01 c7 0b 20 20 20 20 20 20 cb |,key%.... .| 00004680 0d 01 c8 10 20 20 20 20 c9 20 53 61 76 65 57 25 |.... . SaveW%| 00004690 0d 01 c9 13 20 20 20 20 20 20 c8 8e 20 6b 65 79 |.... .. key| 000046a0 25 20 ca 0d 01 ca 10 20 20 20 20 20 20 20 20 c9 |% ..... .| 000046b0 20 31 33 0d 01 cb 25 20 20 20 20 20 20 20 20 20 | 13...% | 000046c0 20 f2 73 65 6c 65 63 74 69 63 6f 6e 28 53 61 76 | .selecticon(Sav| 000046d0 65 57 25 2c 30 2c 31 29 0d 01 cc 22 20 20 20 20 |eW%,0,1)..." | 000046e0 20 20 20 20 20 20 e7 20 53 61 76 69 6e 67 53 65 | . SavingSe| 000046f0 6c 65 63 74 69 6f 6e 25 20 8c 0d 01 cd 26 20 20 |lection% ....& | 00004700 20 20 20 20 20 20 20 20 20 20 53 65 6c 46 4e 61 | SelFNa| 00004710 6d 65 24 3d 24 28 46 69 6c 65 4e 61 6d 65 25 29 |me$=$(FileName%)| 00004720 0d 01 ce 29 20 20 20 20 20 20 20 20 20 20 20 20 |...) | 00004730 f2 73 61 76 65 74 65 6d 70 6c 61 74 65 73 28 53 |.savetemplates(S| 00004740 65 6c 46 4e 61 6d 65 24 29 0d 01 cf 0f 20 20 20 |elFName$).... | 00004750 20 20 20 20 20 20 20 cc 0d 01 d0 2b 20 20 20 20 | ....+ | 00004760 20 20 20 20 20 20 20 20 f2 73 65 74 6d 61 69 6e | .setmain| 00004770 66 6e 61 6d 65 28 24 28 46 69 6c 65 4e 61 6d 65 |fname($(FileName| 00004780 25 29 29 0d 01 d1 2a 20 20 20 20 20 20 20 20 20 |%))...* | 00004790 20 20 20 f2 73 61 76 65 74 65 6d 70 6c 61 74 65 | .savetemplate| 000047a0 73 28 4d 61 69 6e 46 4e 61 6d 65 24 29 0d 01 d2 |s(MainFName$)...| 000047b0 0f 20 20 20 20 20 20 20 20 20 20 cd 0d 01 d3 25 |. ....%| 000047c0 20 20 20 20 20 20 20 20 20 20 f2 73 65 6c 65 63 | .selec| 000047d0 74 69 63 6f 6e 28 53 61 76 65 57 25 2c 30 2c 30 |ticon(SaveW%,0,0| 000047e0 29 0d 01 d4 26 20 20 20 20 20 20 20 20 20 20 c8 |)...& .| 000047f0 99 20 22 57 69 6d 70 5f 43 72 65 61 74 65 4d 65 |. "Wimp_CreateMe| 00004800 6e 75 22 2c 2c 2d 31 0d 01 d5 10 20 20 20 20 20 |nu",,-1.... | 00004810 20 20 20 c9 20 32 37 0d 01 d6 26 20 20 20 20 20 | . 27...& | 00004820 20 20 20 20 20 c8 99 20 22 57 69 6d 70 5f 43 72 | .. "Wimp_Cr| 00004830 65 61 74 65 4d 65 6e 75 22 2c 2c 2d 31 0d 01 d7 |eateMenu",,-1...| 00004840 0d 20 20 20 20 20 20 20 20 7f 0d 01 d8 27 20 20 |. ....' | 00004850 20 20 20 20 20 20 20 20 c8 99 20 22 57 69 6d 70 | .. "Wimp| 00004860 5f 50 72 6f 63 65 73 73 4b 65 79 22 2c 6b 65 79 |_ProcessKey",key| 00004870 25 0d 01 d9 0b 20 20 20 20 20 20 cb 0d 01 da 10 |%.... .....| 00004880 20 20 20 20 c9 20 57 6f 72 6b 57 25 0d 01 db 13 | . WorkW%....| 00004890 20 20 20 20 20 20 c8 8e 20 6b 65 79 25 20 ca 0d | .. key% ..| 000048a0 01 dc 1a 20 20 20 20 20 20 20 20 c9 20 26 31 38 |... . &18| 000048b0 45 2c 26 31 38 41 2c 31 33 0d 01 dd 1a 20 20 20 |E,&18A,13.... | 000048c0 20 20 20 20 20 20 20 e7 20 69 63 6f 6e 25 3d 32 | . icon%=2| 000048d0 35 20 8c 0d 01 de 1b 20 20 20 20 20 20 20 20 20 |5 ..... | 000048e0 20 20 20 e7 20 6b 65 79 25 3d 31 33 20 8c 0d 01 | . key%=13 ...| 000048f0 df 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.* | 00004900 f2 73 65 6c 65 63 74 69 63 6f 6e 28 57 6f 72 6b |.selecticon(Work| 00004910 57 25 2c 33 30 2c 31 29 0d 01 e0 1e 20 20 20 20 |W%,30,1).... | 00004920 20 20 20 20 20 20 20 20 20 20 f2 73 65 74 77 6f | .setwo| 00004930 72 6b 61 72 65 61 0d 01 e1 2a 20 20 20 20 20 20 |rkarea...* | 00004940 20 20 20 20 20 20 20 20 f2 73 65 6c 65 63 74 69 | .selecti| 00004950 63 6f 6e 28 57 6f 72 6b 57 25 2c 33 30 2c 30 29 |con(WorkW%,30,0)| 00004960 0d 01 e2 2a 20 20 20 20 20 20 20 20 20 20 20 20 |...* | 00004970 20 20 c8 99 20 22 57 69 6d 70 5f 43 72 65 61 74 | .. "Wimp_Creat| 00004980 65 4d 65 6e 75 22 2c 2c 2d 31 0d 01 e3 11 20 20 |eMenu",,-1.... | 00004990 20 20 20 20 20 20 20 20 20 20 cc 0d 01 e4 26 20 | ....& | 000049a0 20 20 20 20 20 20 20 20 20 20 20 20 20 f2 73 65 | .se| 000049b0 74 63 61 72 65 74 28 57 6f 72 6b 57 25 2c 31 30 |tcaret(WorkW%,10| 000049c0 29 0d 01 e5 11 20 20 20 20 20 20 20 20 20 20 20 |).... | 000049d0 20 cd 0d 01 e6 0f 20 20 20 20 20 20 20 20 20 20 | ..... | 000049e0 cc 0d 01 e7 29 20 20 20 20 20 20 20 20 20 20 20 |....) | 000049f0 20 f2 73 65 74 63 61 72 65 74 28 57 6f 72 6b 57 | .setcaret(WorkW| 00004a00 25 2c 69 63 6f 6e 25 2b 33 29 0d 01 e8 0f 20 20 |%,icon%+3).... | 00004a10 20 20 20 20 20 20 20 20 cd 0d 01 e9 17 20 20 20 | ..... | 00004a20 20 20 20 20 20 c9 20 26 31 38 46 2c 26 31 39 41 | . &18F,&19A| 00004a30 0d 01 ea 1a 20 20 20 20 20 20 20 20 20 20 e7 20 |.... . | 00004a40 69 63 6f 6e 25 3d 31 30 20 8c 0d 01 eb 24 20 20 |icon%=10 ....$ | 00004a50 20 20 20 20 20 20 20 20 20 20 f2 73 65 74 63 61 | .setca| 00004a60 72 65 74 28 57 6f 72 6b 57 25 2c 32 35 29 0d 01 |ret(WorkW%,25)..| 00004a70 ec 0f 20 20 20 20 20 20 20 20 20 20 cc 0d 01 ed |.. ....| 00004a80 29 20 20 20 20 20 20 20 20 20 20 20 20 f2 73 65 |) .se| 00004a90 74 63 61 72 65 74 28 57 6f 72 6b 57 25 2c 69 63 |tcaret(WorkW%,ic| 00004aa0 6f 6e 25 2d 33 29 0d 01 ee 0f 20 20 20 20 20 20 |on%-3).... | 00004ab0 20 20 20 20 cd 0d 01 ef 10 20 20 20 20 20 20 20 | ..... | 00004ac0 20 c9 20 32 37 0d 01 f0 26 20 20 20 20 20 20 20 | . 27...& | 00004ad0 20 20 20 c8 99 20 22 57 69 6d 70 5f 43 72 65 61 | .. "Wimp_Crea| 00004ae0 74 65 4d 65 6e 75 22 2c 2c 2d 31 0d 01 f1 0d 20 |teMenu",,-1.... | 00004af0 20 20 20 20 20 20 20 7f 0d 01 f2 27 20 20 20 20 | ....' | 00004b00 20 20 20 20 20 20 c8 99 20 22 57 69 6d 70 5f 50 | .. "Wimp_P| 00004b10 72 6f 63 65 73 73 4b 65 79 22 2c 6b 65 79 25 0d |rocessKey",key%.| 00004b20 01 f3 0b 20 20 20 20 20 20 cb 0d 01 f4 11 20 20 |... ..... | 00004b30 20 20 c9 20 53 70 61 63 65 57 25 0d 01 f5 15 20 | . SpaceW%.... | 00004b40 20 20 20 20 20 e7 20 6b 65 79 25 3d 31 33 20 8c | . key%=13 .| 00004b50 0d 01 f6 24 20 20 20 20 20 20 20 20 f2 73 65 6c |...$ .sel| 00004b60 65 63 74 69 63 6f 6e 28 53 70 61 63 65 57 25 2c |ecticon(SpaceW%,| 00004b70 39 2c 31 29 0d 01 f7 26 20 20 20 20 20 20 20 20 |9,1)...& | 00004b80 f2 73 70 61 63 65 69 63 6f 6e 73 28 4c 61 73 74 |.spaceicons(Last| 00004b90 4d 65 6e 75 5f 57 69 6e 25 29 0d 01 f8 24 20 20 |Menu_Win%)...$ | 00004ba0 20 20 20 20 20 20 f2 73 65 6c 65 63 74 69 63 6f | .selectico| 00004bb0 6e 28 53 70 61 63 65 57 25 2c 39 2c 30 29 0d 01 |n(SpaceW%,9,0)..| 00004bc0 f9 24 20 20 20 20 20 20 20 20 c8 99 20 22 57 69 |.$ .. "Wi| 00004bd0 6d 70 5f 43 72 65 61 74 65 4d 65 6e 75 22 2c 2c |mp_CreateMenu",,| 00004be0 2d 31 0d 01 fa 0b 20 20 20 20 20 20 cc 0d 01 fb |-1.... ....| 00004bf0 25 20 20 20 20 20 20 20 20 c8 99 20 22 57 69 6d |% .. "Wim| 00004c00 70 5f 50 72 6f 63 65 73 73 4b 65 79 22 2c 6b 65 |p_ProcessKey",ke| 00004c10 79 25 0d 01 fc 0b 20 20 20 20 20 20 cd 0d 01 fd |y%.... ....| 00004c20 09 20 20 20 20 7f 0d 01 fe 19 20 20 20 20 20 20 |. ..... | 00004c30 c8 8e 20 44 72 61 67 5f 54 79 70 65 25 20 ca 0d |.. Drag_Type% ..| 00004c40 01 ff 15 20 20 20 20 20 20 20 20 c9 20 30 2c 31 |... . 0,1| 00004c50 2c 35 2c 36 0d 02 00 13 20 20 20 20 20 20 20 20 |,5,6.... | 00004c60 20 20 64 78 25 3d 30 0d 02 01 13 20 20 20 20 20 | dx%=0.... | 00004c70 20 20 20 20 20 64 79 25 3d 30 0d 02 02 17 20 20 | dy%=0.... | 00004c80 20 20 20 20 20 20 20 20 c8 8e 20 6b 65 79 25 20 | .. key% | 00004c90 ca 0d 02 03 28 20 20 20 20 20 20 20 20 20 20 20 |....( | 00004ca0 20 c9 20 26 31 38 43 20 3a 20 64 78 25 3d 2d 50 | . &18C : dx%=-P| 00004cb0 69 78 54 6f 4f 53 5f 58 25 0d 02 04 27 20 20 20 |ixToOS_X%...' | 00004cc0 20 20 20 20 20 20 20 20 20 c9 20 26 31 38 44 20 | . &18D | 00004cd0 3a 20 64 78 25 3d 50 69 78 54 6f 4f 53 5f 58 25 |: dx%=PixToOS_X%| 00004ce0 0d 02 05 28 20 20 20 20 20 20 20 20 20 20 20 20 |...( | 00004cf0 c9 20 26 31 38 45 20 3a 20 64 79 25 3d 2d 50 69 |. &18E : dy%=-Pi| 00004d00 78 54 6f 4f 53 5f 59 25 0d 02 06 27 20 20 20 20 |xToOS_Y%...' | 00004d10 20 20 20 20 20 20 20 20 c9 20 26 31 38 46 20 3a | . &18F :| 00004d20 20 64 79 25 3d 50 69 78 54 6f 4f 53 5f 59 25 0d | dy%=PixToOS_Y%.| 00004d30 02 07 2a 20 20 20 20 20 20 20 20 20 20 20 20 c9 |..* .| 00004d40 20 26 31 39 43 20 3a 20 64 78 25 3d 2d 34 2a 50 | &19C : dx%=-4*P| 00004d50 69 78 54 6f 4f 53 5f 58 25 0d 02 08 29 20 20 20 |ixToOS_X%...) | 00004d60 20 20 20 20 20 20 20 20 20 c9 20 26 31 39 44 20 | . &19D | 00004d70 3a 20 64 78 25 3d 34 2a 50 69 78 54 6f 4f 53 5f |: dx%=4*PixToOS_| 00004d80 58 25 0d 02 09 2a 20 20 20 20 20 20 20 20 20 20 |X%...* | 00004d90 20 20 c9 20 26 31 39 45 20 3a 20 64 79 25 3d 2d | . &19E : dy%=-| 00004da0 34 2a 50 69 78 54 6f 4f 53 5f 59 25 0d 02 0a 29 |4*PixToOS_Y%...)| 00004db0 20 20 20 20 20 20 20 20 20 20 20 20 c9 20 26 31 | . &1| 00004dc0 39 46 20 3a 20 64 79 25 3d 34 2a 50 69 78 54 6f |9F : dy%=4*PixTo| 00004dd0 4f 53 5f 59 25 0d 02 0b 2d 20 20 20 20 20 20 20 |OS_Y%...- | 00004de0 20 20 20 20 20 7f 20 3a 20 c8 99 20 22 57 69 6d | . : .. "Wim| 00004df0 70 5f 50 72 6f 63 65 73 73 4b 65 79 22 2c 6b 65 |p_ProcessKey",ke| 00004e00 79 25 0d 02 0c 0f 20 20 20 20 20 20 20 20 20 20 |y%.... | 00004e10 cb 0d 02 0d 30 20 20 20 20 20 20 20 20 20 20 c8 |....0 .| 00004e20 99 20 22 57 69 6d 70 5f 47 65 74 50 6f 69 6e 74 |. "Wimp_GetPoint| 00004e30 65 72 49 6e 66 6f 22 2c 2c 50 74 72 49 6e 66 6f |erInfo",,PtrInfo| 00004e40 25 0d 02 0e 34 20 20 20 20 20 20 20 20 20 20 c8 |%...4 .| 00004e50 97 20 b8 20 28 50 74 72 49 6e 66 6f 25 21 30 29 |. . (PtrInfo%!0)| 00004e60 2b 64 78 25 2c 28 50 74 72 49 6e 66 6f 25 21 34 |+dx%,(PtrInfo%!4| 00004e70 29 2b 64 79 25 0d 02 0f 0d 20 20 20 20 20 20 20 |)+dy%.... | 00004e80 20 7f 0d 02 10 29 20 20 20 20 20 20 20 20 20 20 | ....) | 00004e90 6e 6f 25 3d a4 77 68 69 63 68 74 65 6d 70 6c 61 |no%=.whichtempla| 00004ea0 74 65 28 77 69 6e 64 6f 77 25 29 0d 02 11 19 20 |te(window%).... | 00004eb0 20 20 20 20 20 20 20 20 20 e7 20 6e 6f 25 3c 3e | . no%<>| 00004ec0 2d 31 20 8c 0d 02 12 19 20 20 20 20 20 20 20 20 |-1 ..... | 00004ed0 20 20 20 20 c8 8e 20 6b 65 79 25 20 ca 0d 02 13 | .. key% ....| 00004ee0 40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c9 |@ .| 00004ef0 20 31 20 20 20 20 20 20 20 20 3a 20 f2 73 65 6c | 1 : .sel| 00004f00 5f 61 6c 6c 28 77 69 6e 64 6f 77 25 29 20 20 20 |_all(window%) | 00004f10 20 20 20 20 20 20 20 3a 20 f4 20 5e 41 0d 02 14 | : . ^A...| 00004f20 15 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c9 |. .| 00004f30 20 33 0d 02 15 1d 20 20 20 20 20 20 20 20 20 20 | 3.... | 00004f40 20 20 20 20 20 20 64 75 6d 6d 79 25 3d 2d 31 0d | dummy%=-1.| 00004f50 02 16 43 20 20 20 20 20 20 20 20 20 20 20 20 20 |..C | 00004f60 20 20 20 f2 63 6f 70 79 69 63 6f 6e 73 65 6c 28 | .copyiconsel(| 00004f70 77 69 6e 64 6f 77 25 2c 64 75 6d 6d 79 25 2c 30 |window%,dummy%,0| 00004f80 29 20 20 20 20 20 20 20 20 20 20 20 3a 20 f4 20 |) : . | 00004f90 5e 43 0d 02 17 15 20 20 20 20 20 20 20 20 20 20 |^C.... | 00004fa0 20 20 20 20 c9 20 34 0d 02 18 1d 20 20 20 20 20 | . 4.... | 00004fb0 20 20 20 20 20 20 20 20 20 20 20 64 75 6d 6d 79 | dummy| 00004fc0 25 3d 2d 31 0d 02 19 43 20 20 20 20 20 20 20 20 |%=-1...C | 00004fd0 20 20 20 20 20 20 20 20 f2 63 6f 70 79 69 63 6f | .copyico| 00004fe0 6e 73 65 6c 28 77 69 6e 64 6f 77 25 2c 64 75 6d |nsel(window%,dum| 00004ff0 6d 79 25 2c 32 29 20 20 20 20 20 20 20 20 20 20 |my%,2) | 00005000 20 3a 20 f4 20 5e 44 0d 02 1a 40 20 20 20 20 20 | : . ^D...@ | 00005010 20 20 20 20 20 20 20 20 20 c9 20 35 20 20 20 20 | . 5 | 00005020 20 20 20 3a 20 f2 69 63 65 64 5f 73 74 61 72 74 | : .iced_start| 00005030 28 77 69 6e 64 6f 77 25 2c 2d 31 29 20 20 20 20 |(window%,-1) | 00005040 20 3a 20 f4 20 5e 45 0d 02 1b 16 20 20 20 20 20 | : . ^E.... | 00005050 20 20 20 20 20 20 20 20 20 c9 20 31 30 0d 02 1c | . 10...| 00005060 43 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |C | 00005070 20 f2 73 65 6c 5f 67 65 74 28 77 69 6e 64 6f 77 | .sel_get(window| 00005080 25 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |%) | 00005090 20 20 20 20 20 20 20 20 20 20 3a 20 f4 20 5e 4a | : . ^J| 000050a0 0d 02 1d 26 20 20 20 20 20 20 20 20 20 20 20 20 |...& | 000050b0 20 20 20 20 e7 20 4e 72 53 65 6c 65 63 74 65 64 | . NrSelected| 000050c0 25 3e 3d 32 20 8c 0d 02 1e 2b 20 20 20 20 20 20 |%>=2 ....+ | 000050d0 20 20 20 20 20 20 20 20 20 20 20 20 4c 61 73 74 | Last| 000050e0 4d 65 6e 75 5f 57 69 6e 25 3d 77 69 6e 64 6f 77 |Menu_Win%=window| 000050f0 25 0d 02 1f 27 20 20 20 20 20 20 20 20 20 20 20 |%...' | 00005100 20 20 20 20 20 20 20 4c 61 73 74 4d 65 6e 75 5f | LastMenu_| 00005110 49 63 6f 6e 25 3d 2d 31 0d 02 20 38 20 20 20 20 |Icon%=-1.. 8 | 00005120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c8 99 | ..| 00005130 20 22 57 69 6d 70 5f 47 65 74 50 6f 69 6e 74 65 | "Wimp_GetPointe| 00005140 72 49 6e 66 6f 22 2c 2c 50 74 72 49 6e 66 6f 25 |rInfo",,PtrInfo%| 00005150 0d 02 21 4f 20 20 20 20 20 20 20 20 20 20 20 20 |..!O | 00005160 20 20 20 20 20 20 c8 99 20 22 57 69 6d 70 5f 43 | .. "Wimp_C| 00005170 72 65 61 74 65 4d 65 6e 75 22 2c 2c 41 6c 69 67 |reateMenu",,Alig| 00005180 6e 57 25 2c 50 74 72 49 6e 66 6f 25 21 30 2d 38 |nW%,PtrInfo%!0-8| 00005190 30 2c 50 74 72 49 6e 66 6f 25 21 34 2b 38 30 0d |0,PtrInfo%!4+80.| 000051a0 02 22 15 20 20 20 20 20 20 20 20 20 20 20 20 20 |.". | 000051b0 20 20 20 cd 0d 02 23 16 20 20 20 20 20 20 20 20 | ...#. | 000051c0 20 20 20 20 20 20 c9 20 31 31 0d 02 24 43 20 20 | . 11..$C | 000051d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f2 73 | .s| 000051e0 65 6c 5f 67 65 74 28 77 69 6e 64 6f 77 25 29 20 |el_get(window%) | 000051f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00005200 20 20 20 20 20 20 20 3a 20 f4 20 5e 4b 0d 02 25 | : . ^K..%| 00005210 26 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |& | 00005220 20 e7 20 4e 72 53 65 6c 65 63 74 65 64 25 3e 3d | . NrSelected%>=| 00005230 32 20 8c 0d 02 26 2b 20 20 20 20 20 20 20 20 20 |2 ...&+ | 00005240 20 20 20 20 20 20 20 20 20 4c 61 73 74 4d 65 6e | LastMen| 00005250 75 5f 57 69 6e 25 3d 77 69 6e 64 6f 77 25 0d 02 |u_Win%=window%..| 00005260 27 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |'' | 00005270 20 20 20 20 4c 61 73 74 4d 65 6e 75 5f 49 63 6f | LastMenu_Ico| 00005280 6e 25 3d 2d 31 0d 02 28 38 20 20 20 20 20 20 20 |n%=-1..(8 | 00005290 20 20 20 20 20 20 20 20 20 20 20 c8 99 20 22 57 | .. "W| 000052a0 69 6d 70 5f 47 65 74 50 6f 69 6e 74 65 72 49 6e |imp_GetPointerIn| 000052b0 66 6f 22 2c 2c 50 74 72 49 6e 66 6f 25 0d 02 29 |fo",,PtrInfo%..)| 000052c0 4f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |O | 000052d0 20 20 20 c8 99 20 22 57 69 6d 70 5f 43 72 65 61 | .. "Wimp_Crea| 000052e0 74 65 4d 65 6e 75 22 2c 2c 53 70 61 63 65 57 25 |teMenu",,SpaceW%| 000052f0 2c 50 74 72 49 6e 66 6f 25 21 30 2d 38 30 2c 50 |,PtrInfo%!0-80,P| 00005300 74 72 49 6e 66 6f 25 21 34 2b 38 30 0d 02 2a 15 |trInfo%!4+80..*.| 00005310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00005320 cd 0d 02 2b 16 20 20 20 20 20 20 20 20 20 20 20 |...+. | 00005330 20 20 20 c9 20 31 32 0d 02 2c 1d 20 20 20 20 20 | . 12..,. | 00005340 20 20 20 20 20 20 20 20 20 20 20 64 75 6d 6d 79 | dummy| 00005350 25 3d 2d 31 0d 02 2d 43 20 20 20 20 20 20 20 20 |%=-1..-C | 00005360 20 20 20 20 20 20 20 20 f2 63 6f 70 79 69 63 6f | .copyico| 00005370 6e 73 65 6c 28 77 69 6e 64 6f 77 25 2c 64 75 6d |nsel(window%,dum| 00005380 6d 79 25 2c 33 29 20 20 20 20 20 20 20 20 20 20 |my%,3) | 00005390 20 3a 20 f4 20 5e 4c 0d 02 2e 44 20 20 20 20 20 | : . ^L...D | 000053a0 20 20 20 20 20 20 20 20 20 c9 20 31 37 2c 26 31 | . 17,&1| 000053b0 41 32 20 3a 20 f2 63 6c 6f 73 65 74 65 6d 70 6c |A2 : .closetempl| 000053c0 61 74 65 28 6e 6f 25 29 20 20 20 20 20 20 20 20 |ate(no%) | 000053d0 20 3a 20 f4 20 5e 51 2c 5e 46 32 0d 02 2f 16 20 | : . ^Q,^F2../. | 000053e0 20 20 20 20 20 20 20 20 20 20 20 20 20 c9 20 31 | . 1| 000053f0 38 0d 02 30 1d 20 20 20 20 20 20 20 20 20 20 20 |8..0. | 00005400 20 20 20 20 20 64 75 6d 6d 79 25 3d 2d 31 0d 02 | dummy%=-1..| 00005410 31 43 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |1C | 00005420 20 20 f2 63 6f 70 79 69 63 6f 6e 73 65 6c 28 77 | .copyiconsel(w| 00005430 69 6e 64 6f 77 25 2c 64 75 6d 6d 79 25 2c 34 29 |indow%,dummy%,4)| 00005440 20 20 20 20 20 20 20 20 20 20 20 3a 20 f4 20 5e | : . ^| 00005450 52 0d 02 32 40 20 20 20 20 20 20 20 20 20 20 20 |R..2@ | 00005460 20 20 20 c9 20 32 30 20 20 20 20 20 20 3a 20 f2 | . 20 : .| 00005470 69 63 65 64 5f 73 74 61 72 74 28 77 69 6e 64 6f |iced_start(windo| 00005480 77 25 2c 2d 34 29 20 20 20 20 20 3a 20 f4 20 5e |w%,-4) : . ^| 00005490 54 0d 02 33 16 20 20 20 20 20 20 20 20 20 20 20 |T..3. | 000054a0 20 20 20 c9 20 32 31 0d 02 34 1d 20 20 20 20 20 | . 21..4. | 000054b0 20 20 20 20 20 20 20 20 20 20 20 64 75 6d 6d 79 | dummy| 000054c0 25 3d 2d 31 0d 02 35 43 20 20 20 20 20 20 20 20 |%=-1..5C | 000054d0 20 20 20 20 20 20 20 20 f2 63 6f 70 79 69 63 6f | .copyico| 000054e0 6e 73 65 6c 28 77 69 6e 64 6f 77 25 2c 64 75 6d |nsel(window%,dum| 000054f0 6d 79 25 2c 31 29 20 20 20 20 20 20 20 20 20 20 |my%,1) | 00005500 20 3a 20 f4 20 5e 55 0d 02 36 40 20 20 20 20 20 | : . ^U..6@ | 00005510 20 20 20 20 20 20 20 20 20 c9 20 32 33 20 20 20 | . 23 | 00005520 20 20 20 3a 20 f2 77 69 6e 65 64 5f 66 69 6c 6c | : .wined_fill| 00005530 77 69 6e 28 77 69 6e 64 6f 77 25 29 20 20 20 20 |win(window%) | 00005540 20 3a 20 f4 20 5e 57 0d 02 37 40 20 20 20 20 20 | : . ^W..7@ | 00005550 20 20 20 20 20 20 20 20 20 c9 20 32 34 20 20 20 | . 24 | 00005560 20 20 20 3a 20 f2 64 65 6c 65 74 65 69 63 6f 6e | : .deleteicon| 00005570 73 65 6c 28 77 69 6e 64 6f 77 25 2c 2d 31 29 20 |sel(window%,-1) | 00005580 20 3a 20 f4 20 5e 58 0d 02 38 40 20 20 20 20 20 | : . ^X..8@ | 00005590 20 20 20 20 20 20 20 20 20 c9 20 32 36 20 20 20 | . 26 | 000055a0 20 20 20 3a 20 f2 73 65 6c 5f 63 6c 65 61 72 28 | : .sel_clear(| 000055b0 77 69 6e 64 6f 77 25 2c 2d 31 29 20 20 20 20 20 |window%,-1) | 000055c0 20 3a 20 f4 20 5e 5a 0d 02 39 3b 20 20 20 20 20 | : . ^Z..9; | 000055d0 20 20 20 20 20 20 20 20 20 c9 20 26 31 38 43 2c | . &18C,| 000055e0 26 31 38 44 2c 26 31 38 45 2c 26 31 38 46 2c 26 |&18D,&18E,&18F,&| 000055f0 31 39 43 2c 26 31 39 44 2c 26 31 39 45 2c 26 31 |19C,&19D,&19E,&1| 00005600 39 46 0d 02 3a 25 20 20 20 20 20 20 20 20 20 20 |9F..:% | 00005610 20 20 20 20 20 20 f2 73 65 6c 5f 67 65 74 28 77 | .sel_get(w| 00005620 69 6e 64 6f 77 25 29 0d 02 3b 25 20 20 20 20 20 |indow%)..;% | 00005630 20 20 20 20 20 20 20 20 20 20 20 e7 20 4e 72 53 | . NrS| 00005640 65 6c 65 63 74 65 64 25 3e 30 20 8c 0d 02 3c 3f |elected%>0 ...<?| 00005650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00005660 20 20 f2 73 65 6c 5f 62 6f 78 28 77 69 6e 64 6f | .sel_box(windo| 00005670 77 25 2c 78 6d 69 6e 25 2c 79 6d 69 6e 25 2c 78 |w%,xmin%,ymin%,x| 00005680 6d 61 78 25 2c 79 6d 61 78 25 29 0d 02 3d 27 20 |max%,ymax%)..=' | 00005690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000056a0 20 e7 20 47 72 69 64 5f 50 6f 73 4c 6f 63 6b 25 | . Grid_PosLock%| 000056b0 20 8c 0d 02 3e 29 20 20 20 20 20 20 20 20 20 20 | ...>) | 000056c0 20 20 20 20 20 20 20 20 20 20 78 73 74 65 70 25 | xstep%| 000056d0 3d 47 72 69 64 5f 50 6f 73 58 25 0d 02 3f 29 20 |=Grid_PosX%..?) | 000056e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000056f0 20 20 20 79 73 74 65 70 25 3d 47 72 69 64 5f 50 | ystep%=Grid_P| 00005700 6f 73 59 25 0d 02 40 17 20 20 20 20 20 20 20 20 |osY%..@. | 00005710 20 20 20 20 20 20 20 20 20 20 cc 0d 02 41 2a 20 | ...A* | 00005720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00005730 20 20 20 e7 20 47 72 69 64 5f 53 69 7a 65 4c 6f | . Grid_SizeLo| 00005740 63 6b 25 20 8c 0d 02 42 2c 20 20 20 20 20 20 20 |ck% ...B, | 00005750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 78 | x| 00005760 73 74 65 70 25 3d 47 72 69 64 5f 53 69 7a 65 58 |step%=Grid_SizeX| 00005770 25 0d 02 43 2c 20 20 20 20 20 20 20 20 20 20 20 |%..C, | 00005780 20 20 20 20 20 20 20 20 20 20 20 79 73 74 65 70 | ystep| 00005790 25 3d 47 72 69 64 5f 53 69 7a 65 59 25 0d 02 44 |%=Grid_SizeY%..D| 000057a0 19 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 000057b0 20 20 20 20 20 cc 0d 02 45 2b 20 20 20 20 20 20 | ...E+ | 000057c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000057d0 78 73 74 65 70 25 3d 50 69 78 54 6f 4f 53 5f 58 |xstep%=PixToOS_X| 000057e0 25 0d 02 46 2b 20 20 20 20 20 20 20 20 20 20 20 |%..F+ | 000057f0 20 20 20 20 20 20 20 20 20 20 20 79 73 74 65 70 | ystep| 00005800 25 3d 50 69 78 54 6f 4f 53 5f 59 25 0d 02 47 19 |%=PixToOS_Y%..G.| 00005810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00005820 20 20 20 20 cd 0d 02 48 17 20 20 20 20 20 20 20 | ...H. | 00005830 20 20 20 20 20 20 20 20 20 20 20 cd 0d 02 49 26 | ...I&| 00005840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00005850 20 20 c8 8e 20 28 6b 65 79 25 20 80 20 26 46 29 | .. (key% . &F)| 00005860 20 ca 0d 02 4a 2a 20 20 20 20 20 20 20 20 20 20 | ...J* | 00005870 20 20 20 20 20 20 20 20 20 20 c9 20 26 43 20 3a | . &C :| 00005880 20 64 78 25 3d 2d 78 73 74 65 70 25 0d 02 4b 29 | dx%=-xstep%..K)| 00005890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000058a0 20 20 20 20 c9 20 26 44 20 3a 20 64 78 25 3d 78 | . &D : dx%=x| 000058b0 73 74 65 70 25 0d 02 4c 2a 20 20 20 20 20 20 20 |step%..L* | 000058c0 20 20 20 20 20 20 20 20 20 20 20 20 20 c9 20 26 | . &| 000058d0 45 20 3a 20 64 79 25 3d 2d 79 73 74 65 70 25 0d |E : dy%=-ystep%.| 000058e0 02 4d 29 20 20 20 20 20 20 20 20 20 20 20 20 20 |.M) | 000058f0 20 20 20 20 20 20 20 c9 20 26 46 20 3a 20 64 79 | . &F : dy| 00005900 25 3d 79 73 74 65 70 25 0d 02 4e 17 20 20 20 20 |%=ystep%..N. | 00005910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cb 0d | ..| 00005920 02 4f 24 20 20 20 20 20 20 20 20 20 20 20 20 20 |.O$ | 00005930 20 20 20 20 20 e7 20 6b 65 79 25 20 80 20 26 31 | . key% . &1| 00005940 30 20 8c 0d 02 50 21 20 20 20 20 20 20 20 20 20 |0 ...P! | 00005950 20 20 20 20 20 20 20 20 20 20 20 64 78 25 3d 64 | dx%=d| 00005960 78 25 2a 34 0d 02 51 21 20 20 20 20 20 20 20 20 |x%*4..Q! | 00005970 20 20 20 20 20 20 20 20 20 20 20 20 64 79 25 3d | dy%=| 00005980 64 79 25 2a 34 0d 02 52 17 20 20 20 20 20 20 20 |dy%*4..R. | 00005990 20 20 20 20 20 20 20 20 20 20 20 cd 0d 02 53 20 | ...S | 000059a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000059b0 20 20 78 6d 69 6e 25 2b 3d 64 78 25 0d 02 54 20 | xmin%+=dx%..T | 000059c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000059d0 20 20 78 6d 61 78 25 2b 3d 64 78 25 0d 02 55 20 | xmax%+=dx%..U | 000059e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000059f0 20 20 79 6d 69 6e 25 2b 3d 64 79 25 0d 02 56 20 | ymin%+=dy%..V | 00005a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00005a10 20 20 79 6d 61 78 25 2b 3d 64 79 25 0d 02 57 4d | ymax%+=dy%..WM| 00005a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00005a30 20 20 f2 6d 6f 76 65 72 65 73 69 7a 65 28 77 69 | .moveresize(wi| 00005a40 6e 64 6f 77 25 2c 2d 31 2c 77 69 6e 64 6f 77 25 |ndow%,-1,window%| 00005a50 2c 78 6d 69 6e 25 2c 79 6d 69 6e 25 2c 78 6d 61 |,xmin%,ymin%,xma| 00005a60 78 25 2c 79 6d 61 78 25 29 0d 02 58 15 20 20 20 |x%,ymax%)..X. | 00005a70 20 20 20 20 20 20 20 20 20 20 20 20 20 cd 0d 02 | ...| 00005a80 59 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |Y2 | 00005a90 7f 20 20 20 20 3a 20 c8 99 20 22 57 69 6d 70 5f |. : .. "Wimp_| 00005aa0 50 72 6f 63 65 73 73 4b 65 79 22 2c 6b 65 79 25 |ProcessKey",key%| 00005ab0 0d 02 5a 11 20 20 20 20 20 20 20 20 20 20 20 20 |..Z. | 00005ac0 cb 0d 02 5b 0f 20 20 20 20 20 20 20 20 20 20 cc |...[. .| 00005ad0 0d 02 5c 29 20 20 20 20 20 20 20 20 20 20 20 20 |..\) | 00005ae0 c8 99 20 22 57 69 6d 70 5f 50 72 6f 63 65 73 73 |.. "Wimp_Process| 00005af0 4b 65 79 22 2c 6b 65 79 25 0d 02 5d 0f 20 20 20 |Key",key%..]. | 00005b00 20 20 20 20 20 20 20 cd 0d 02 5e 0b 20 20 20 20 | ...^. | 00005b10 20 20 cb 0d 02 5f 07 20 20 cb 0d 02 60 05 cd 0d | ..._. ...`...| 00005b20 02 61 05 e1 0d 02 62 04 0d 02 63 37 dd 20 a4 6c |.a....b...c7. .l| 00005b30 6f 61 64 74 65 6d 70 6c 61 74 65 28 6e 61 6d 65 |oadtemplate(name| 00005b40 24 2c 62 75 66 25 2c f8 20 69 6e 64 69 72 25 2c |$,buf%,. indir%,| 00005b50 f8 20 66 72 65 65 25 2c 73 70 70 74 72 25 29 0d |. free%,spptr%).| 00005b60 02 64 17 ea 20 6f 6c 64 69 6e 64 69 72 25 2c 68 |.d.. oldindir%,h| 00005b70 61 6e 64 6c 65 25 0d 02 65 07 ea 20 85 0d 02 66 |andle%..e.. ...f| 00005b80 2d ee 20 85 20 ea 20 c8 99 20 22 57 69 6d 70 5f |-. . . .. "Wimp_| 00005b90 43 6c 6f 73 65 54 65 6d 70 6c 61 74 65 22 20 3a |CloseTemplate" :| 00005ba0 20 f2 65 72 72 6f 72 28 31 29 0d 02 67 14 6f 6c | .error(1)..g.ol| 00005bb0 64 69 6e 64 69 72 25 3d 69 6e 64 69 72 25 0d 02 |dindir%=indir%..| 00005bc0 68 17 6e 61 6d 65 24 3d 6e 61 6d 65 24 2b c4 31 |h.name$=name$+.1| 00005bd0 32 2c bd 30 29 0d 02 69 4e c8 99 20 22 57 69 6d |2,.0)..iN.. "Wim| 00005be0 70 5f 4c 6f 61 64 54 65 6d 70 6c 61 74 65 22 2c |p_LoadTemplate",| 00005bf0 2c 62 75 66 25 2b 34 2c 69 6e 64 69 72 25 2c 69 |,buf%+4,indir%,i| 00005c00 6e 64 69 72 25 2b 66 72 65 65 25 2c 46 72 61 25 |ndir%+free%,Fra%| 00005c10 2c 6e 61 6d 65 24 2c 30 20 b8 20 2c 2c 69 6e 64 |,name$,0 . ,,ind| 00005c20 69 72 25 0d 02 6a 1d 66 72 65 65 25 2d 3d 28 69 |ir%..j.free%-=(i| 00005c30 6e 64 69 72 25 2d 6f 6c 64 69 6e 64 69 72 25 29 |ndir%-oldindir%)| 00005c40 0d 02 6b 12 62 75 66 25 21 36 38 3d 73 70 70 74 |..k.buf%!68=sppt| 00005c50 72 25 0d 02 6c 11 e7 20 62 75 66 25 21 38 38 3e |r%..l.. buf%!88>| 00005c60 30 20 8c 0d 02 6d 16 20 20 e3 20 69 25 3d 30 20 |0 ...m. . i%=0 | 00005c70 b8 20 62 75 66 25 21 38 38 0d 02 6e 1d 20 20 20 |. buf%!88..n. | 00005c80 20 66 25 3d 62 75 66 25 21 28 39 32 2b 69 25 2a | f%=buf%!(92+i%*| 00005c90 33 32 2b 31 36 29 0d 02 6f 1c 20 20 20 20 e7 20 |32+16)..o. . | 00005ca0 28 66 25 20 80 20 26 31 30 33 29 3d 26 31 30 32 |(f% . &103)=&102| 00005cb0 20 8c 0d 02 70 23 20 20 20 20 20 20 62 75 66 25 | ...p# buf%| 00005cc0 21 28 39 32 2b 69 25 2a 33 32 2b 32 34 29 3d 73 |!(92+i%*32+24)=s| 00005cd0 70 70 74 72 25 0d 02 71 09 20 20 20 20 cd 0d 02 |pptr%..q. ...| 00005ce0 72 0a 20 20 ed 20 69 25 0d 02 73 05 cd 0d 02 74 |r. . i%..s....t| 00005cf0 2c c8 99 20 22 57 69 6d 70 5f 43 72 65 61 74 65 |,.. "Wimp_Create| 00005d00 57 69 6e 64 6f 77 22 2c 2c 62 75 66 25 2b 34 20 |Window",,buf%+4 | 00005d10 b8 20 68 61 6e 64 6c 65 25 0d 02 75 12 62 75 66 |. handle%..u.buf| 00005d20 25 21 30 3d 68 61 6e 64 6c 65 25 0d 02 76 0c 3d |%!0=handle%..v.=| 00005d30 68 61 6e 64 6c 65 25 0d 02 77 04 0d 02 78 1d dd |handle%..w...x..| 00005d40 20 f2 6d 65 6e 75 73 65 6c 65 63 74 28 73 65 6c | .menuselect(sel| 00005d50 65 63 74 69 6f 6e 25 29 0d 02 79 42 ea 20 61 64 |ection%)..yB. ad| 00005d60 6a 75 73 74 25 2c 73 65 6c 69 6e 66 6f 25 2c 69 |just%,selinfo%,i| 00005d70 74 65 6d 6e 72 25 2c 69 74 65 6d 25 2c 69 74 65 |temnr%,item%,ite| 00005d80 6d 24 2c 70 61 72 65 6e 74 69 74 65 6d 25 2c 70 |m$,parentitem%,p| 00005d90 61 72 65 6e 74 69 74 65 6d 24 0d 02 7a 26 ea 20 |arentitem$..z&. | 00005da0 63 6d 64 24 2c 69 25 2c 6a 25 2c 6d 69 6e 78 25 |cmd$,i%,j%,minx%| 00005db0 2c 6d 69 6e 79 25 2c 73 69 7a 65 2c 64 69 72 25 |,miny%,size,dir%| 00005dc0 0d 02 7b 41 c8 99 20 22 4d 65 6e 75 55 74 69 6c |..{A.. "MenuUtil| 00005dd0 5f 44 65 63 6f 64 65 22 2c 4c 61 73 74 4d 65 6e |_Decode",LastMen| 00005de0 75 25 2c 73 65 6c 65 63 74 69 6f 6e 25 20 b8 20 |u%,selection% . | 00005df0 2c 61 64 6a 75 73 74 25 2c 73 65 6c 69 6e 66 6f |,adjust%,selinfo| 00005e00 25 0d 02 7c 16 69 74 65 6d 6e 72 25 3d 73 65 6c |%..|.itemnr%=sel| 00005e10 69 6e 66 6f 25 21 30 0d 02 7d 14 69 74 65 6d 25 |info%!0..}.item%| 00005e20 3d 73 65 6c 69 6e 66 6f 25 21 38 0d 02 7e 1b 69 |=selinfo%!8..~.i| 00005e30 74 65 6d 24 3d a4 73 74 72 28 73 65 6c 69 6e 66 |tem$=.str(selinf| 00005e40 6f 25 21 31 32 29 0d 02 7f 1b 70 61 72 65 6e 74 |o%!12)....parent| 00005e50 69 74 65 6d 25 3d 73 65 6c 69 6e 66 6f 25 21 32 |item%=selinfo%!2| 00005e60 34 0d 02 80 34 e7 20 70 61 72 65 6e 74 69 74 65 |4...4. parentite| 00005e70 6d 25 3c 3e 30 20 8c 20 70 61 72 65 6e 74 69 74 |m%<>0 . parentit| 00005e80 65 6d 24 3d a4 73 74 72 28 73 65 6c 69 6e 66 6f |em$=.str(selinfo| 00005e90 25 21 32 38 29 0d 02 81 12 c8 8e 20 4c 61 73 74 |%!28)...... Last| 00005ea0 4d 65 6e 75 25 20 ca 0d 02 82 11 20 20 c9 20 4d |Menu% ..... . M| 00005eb0 61 69 6e 4d 65 6e 75 25 0d 02 83 12 20 20 20 20 |ainMenu%.... | 00005ec0 c8 8e 20 69 74 65 6d 25 20 ca 0d 02 84 19 20 20 |.. item% ..... | 00005ed0 20 20 20 20 c9 20 69 74 65 6d 5f 6f 70 74 69 6f | . item_optio| 00005ee0 6e 73 25 0d 02 85 24 20 20 20 20 20 20 20 20 f2 |ns%...$ .| 00005ef0 6f 70 65 6e 77 69 6e 64 6f 77 28 4f 70 74 69 6f |openwindow(Optio| 00005f00 6e 73 57 25 2c 32 29 0d 02 86 17 20 20 20 20 20 |nsW%,2).... | 00005f10 20 c9 20 69 74 65 6d 5f 73 74 61 74 73 25 0d 02 | . item_stats%..| 00005f20 87 19 20 20 20 20 20 20 20 20 f2 73 74 61 74 5f |.. .stat_| 00005f30 66 69 6c 6c 77 69 6e 0d 02 88 19 20 20 20 20 20 |fillwin.... | 00005f40 20 c9 20 69 74 65 6d 5f 73 70 72 76 69 65 77 25 | . item_sprview%| 00005f50 0d 02 89 24 20 20 20 20 20 20 20 20 63 6d 64 24 |...$ cmd$| 00005f60 3d 22 52 75 6e 20 22 2b 53 70 72 69 74 65 46 4e |="Run "+SpriteFN| 00005f70 61 6d 65 24 0d 02 8a 32 20 20 20 20 20 20 20 20 |ame$...2 | 00005f80 e7 20 4f 53 76 65 72 73 69 6f 6e 25 3e 3d 33 30 |. OSversion%>=30| 00005f90 30 20 8c 20 63 6d 64 24 3d 22 46 69 6c 65 72 5f |0 . cmd$="Filer_| 00005fa0 22 2b 63 6d 64 24 0d 02 8b 24 20 20 20 20 20 20 |"+cmd$...$ | 00005fb0 20 20 c8 99 20 22 57 69 6d 70 5f 53 74 61 72 74 | .. "Wimp_Start| 00005fc0 54 61 73 6b 22 2c 63 6d 64 24 0d 02 8c 1b 20 20 |Task",cmd$.... | 00005fd0 20 20 20 20 c9 20 69 74 65 6d 5f 73 70 72 72 65 | . item_sprre| 00005fe0 6c 6f 61 64 25 0d 02 8d 2a 20 20 20 20 20 20 20 |load%...* | 00005ff0 20 f2 6c 6f 61 64 75 73 65 72 73 70 72 69 74 65 | .loadusersprite| 00006000 73 28 53 70 72 69 74 65 46 4e 61 6d 65 24 29 0d |s(SpriteFName$).| 00006010 02 8e 1a 20 20 20 20 20 20 c9 20 69 74 65 6d 5f |... . item_| 00006020 73 70 72 72 65 73 65 74 25 0d 02 8f 20 20 20 20 |sprreset%... | 00006030 20 20 20 20 20 f2 6c 6f 61 64 75 73 65 72 73 70 | .loadusersp| 00006040 72 69 74 65 73 28 22 22 29 0d 02 90 16 20 20 20 |rites("").... | 00006050 20 20 20 c9 20 69 74 65 6d 5f 71 75 69 74 25 0d | . item_quit%.| 00006060 02 91 1c 20 20 20 20 20 20 20 20 e7 20 43 68 61 |... . Cha| 00006070 6e 67 65 73 4d 61 64 65 25 20 8c 0d 02 92 20 20 |ngesMade% .... | 00006080 20 20 20 20 20 20 20 20 20 f2 64 69 61 6c 6f 67 | .dialog| 00006090 75 65 28 30 2c 22 22 2c 22 22 29 0d 02 93 0d 20 |ue(0,"","").... | 000060a0 20 20 20 20 20 20 20 cc 0d 02 94 19 20 20 20 20 | ..... | 000060b0 20 20 20 20 20 20 f2 70 72 65 71 75 69 74 28 30 | .prequit(0| 000060c0 29 0d 02 95 0d 20 20 20 20 20 20 20 20 cd 0d 02 |).... ...| 000060d0 96 09 20 20 20 20 cb 0d 02 97 12 20 20 c9 20 54 |.. ..... . T| 000060e0 65 6d 70 6c 4d 65 6e 75 25 0d 02 98 12 20 20 20 |emplMenu%.... | 000060f0 20 c8 8e 20 69 74 65 6d 25 20 ca 0d 02 99 1b 20 | .. item% ..... | 00006100 20 20 20 20 20 c9 20 69 74 65 6d 5f 74 65 6d 70 | . item_temp| 00006110 6c 6e 61 6d 65 25 0d 02 9a 1c 20 20 20 20 20 20 |lname%.... | 00006120 20 20 c8 8e 20 70 61 72 65 6e 74 69 74 65 6d 25 | .. parentitem%| 00006130 20 ca 0d 02 9b 21 20 20 20 20 20 20 20 20 20 20 | ....! | 00006140 c9 20 69 74 65 6d 5f 63 72 65 61 74 65 74 65 6d |. item_createtem| 00006150 70 6c 25 0d 02 9c 1e 20 20 20 20 20 20 20 20 20 |pl%.... | 00006160 20 20 20 e7 20 a9 28 69 74 65 6d 24 29 3e 30 20 | . .(item$)>0 | 00006170 8c 0d 02 9d 21 20 20 20 20 20 20 20 20 20 20 20 |....! | 00006180 20 20 20 57 69 6e 42 6c 6b 25 21 30 3d 44 65 66 | WinBlk%!0=Def| 00006190 57 25 0d 02 9e 32 20 20 20 20 20 20 20 20 20 20 |W%...2 | 000061a0 20 20 20 20 c8 99 20 22 57 69 6d 70 5f 47 65 74 | .. "Wimp_Get| 000061b0 57 69 6e 64 6f 77 49 6e 66 6f 22 2c 2c 57 69 6e |WindowInfo",,Win| 000061c0 42 6c 6b 25 0d 02 9f 4a 20 20 20 20 20 20 20 20 |Blk%...J | 000061d0 20 20 20 20 20 20 24 28 57 69 6e 42 6c 6b 25 2b | $(WinBlk%+| 000061e0 37 36 29 3d 69 74 65 6d 24 20 3a 20 f4 20 74 69 |76)=item$ : . ti| 000061f0 74 6c 65 20 62 61 72 20 65 71 75 61 6c 20 74 6f |tle bar equal to| 00006200 20 74 65 6d 70 6c 61 74 65 20 6e 61 6d 65 0d 02 | template name..| 00006210 a0 1e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.. | 00006220 57 69 6e 42 6c 6b 25 21 38 38 3d 30 0d 02 a1 2d |WinBlk%!88=0...-| 00006230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f2 74 | .t| 00006240 65 6d 70 6c 5f 61 64 64 28 69 74 65 6d 24 2c 57 |empl_add(item$,W| 00006250 69 6e 42 6c 6b 25 2c 31 29 0d 02 a2 2f 20 20 20 |inBlk%,1).../ | 00006260 20 20 20 20 20 20 20 20 20 20 20 f2 6f 70 65 6e | .open| 00006270 74 65 6d 70 6c 61 74 65 28 4e 72 54 65 6d 70 6c |template(NrTempl| 00006280 61 74 65 73 25 2d 31 29 0d 02 a3 20 20 20 20 20 |ates%-1)... | 00006290 20 20 20 20 20 20 20 20 20 20 f2 73 65 74 63 68 | .setch| 000062a0 61 6e 67 65 64 28 b9 29 0d 02 a4 11 20 20 20 20 |anged(.).... | 000062b0 20 20 20 20 20 20 20 20 cd 0d 02 a5 21 20 20 20 | ....! | 000062c0 20 20 20 20 20 20 20 c9 20 69 74 65 6d 5f 72 65 | . item_re| 000062d0 6e 61 6d 65 74 65 6d 70 6c 25 0d 02 a6 1e 20 20 |nametempl%.... | 000062e0 20 20 20 20 20 20 20 20 20 20 e7 20 a9 28 69 74 | . .(it| 000062f0 65 6d 24 29 3e 30 20 8c 0d 02 a7 16 20 20 20 20 |em$)>0 ..... | 00006300 20 20 20 20 20 20 20 20 20 20 6a 25 3d 30 0d 02 | j%=0..| 00006310 a8 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.0 | 00006320 f4 20 63 68 65 63 6b 20 69 66 20 6e 61 6d 65 20 |. check if name | 00006330 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 0d 02 |already exists..| 00006340 a9 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.F | 00006350 c8 95 20 28 6a 25 3c 4e 72 54 65 6d 70 6c 61 74 |.. (j%<NrTemplat| 00006360 65 73 25 29 20 80 20 28 24 28 54 65 6d 70 6c 4e |es%) . ($(TemplN| 00006370 61 6d 65 73 25 2b 32 38 2a 6a 25 29 3c 3e 69 74 |ames%+28*j%)<>it| 00006380 65 6d 24 29 0d 02 aa 19 20 20 20 20 20 20 20 20 |em$).... | 00006390 20 20 20 20 20 20 20 20 6a 25 2b 3d 31 0d 02 ab | j%+=1...| 000063a0 13 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ce |. .| 000063b0 0d 02 ac 34 20 20 20 20 20 20 20 20 20 20 20 20 |...4 | 000063c0 20 20 e7 20 28 6a 25 3d 4e 72 54 65 6d 70 6c 61 | . (j%=NrTempla| 000063d0 74 65 73 25 29 20 84 20 44 75 70 6c 4e 61 6d 65 |tes%) . DuplName| 000063e0 73 25 20 8c 0d 02 ad 20 20 20 20 20 20 20 20 20 |s% .... | 000063f0 20 20 20 20 20 20 20 20 69 25 3d 53 65 6c 42 6c | i%=SelBl| 00006400 6b 25 21 30 0d 02 ae 2e 20 20 20 20 20 20 20 20 |k%!0.... | 00006410 20 20 20 20 20 20 20 20 24 28 54 65 6d 70 6c 4e | $(TemplN| 00006420 61 6d 65 73 25 2b 32 38 2a 69 25 29 3d 69 74 65 |ames%+28*i%)=ite| 00006430 6d 24 0d 02 af 26 20 20 20 20 20 20 20 20 20 20 |m$...& | 00006440 20 20 20 20 20 20 49 63 6f 6e 42 6c 6b 25 21 30 | IconBlk%!0| 00006450 3d 54 65 6d 70 6c 57 25 0d 02 b0 21 20 20 20 20 |=TemplW%...! | 00006460 20 20 20 20 20 20 20 20 20 20 20 20 49 63 6f 6e | Icon| 00006470 42 6c 6b 25 21 34 3d 69 25 0d 02 b1 34 20 20 20 |Blk%!4=i%...4 | 00006480 20 20 20 20 20 20 20 20 20 20 20 20 20 c8 99 20 | .. | 00006490 22 57 69 6d 70 5f 47 65 74 49 63 6f 6e 53 74 61 |"Wimp_GetIconSta| 000064a0 74 65 22 2c 2c 49 63 6f 6e 42 6c 6b 25 0d 02 b2 |te",,IconBlk%...| 000064b0 4f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |O | 000064c0 20 49 63 6f 6e 42 6c 6b 25 21 31 36 3d 28 49 63 | IconBlk%!16=(Ic| 000064d0 6f 6e 42 6c 6b 25 21 38 29 2b 28 54 65 6d 70 6c |onBlk%!8)+(Templ| 000064e0 57 5f 49 63 6f 6e 58 25 2d 38 29 2d 31 36 2a 28 |W_IconX%-8)-16*(| 000064f0 31 31 2d a9 28 69 74 65 6d 24 29 29 0d 02 b3 3d |11-.(item$))...=| 00006500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00006510 64 75 6d 6d 79 25 3d a4 72 65 64 65 66 69 6e 65 |dummy%=.redefine| 00006520 69 63 6f 6e 28 54 65 6d 70 6c 57 25 2c 69 25 2c |icon(TemplW%,i%,| 00006530 49 63 6f 6e 42 6c 6b 25 29 0d 02 b4 22 20 20 20 |IconBlk%)..." | 00006540 20 20 20 20 20 20 20 20 20 20 20 20 20 f2 73 65 | .se| 00006550 74 63 68 61 6e 67 65 64 28 b9 29 0d 02 b5 13 20 |tchanged(.).... | 00006560 20 20 20 20 20 20 20 20 20 20 20 20 20 cc 0d 02 | ...| 00006570 b6 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.3 | 00006580 20 20 f2 63 6f 6d 70 6c 61 69 6e 28 a4 6d 73 67 | .complain(.msg| 00006590 5f 6c 6f 6f 6b 75 70 30 28 22 54 41 45 58 22 29 |_lookup0("TAEX")| 000065a0 29 0d 02 b7 13 20 20 20 20 20 20 20 20 20 20 20 |).... | 000065b0 20 20 20 cd 0d 02 b8 11 20 20 20 20 20 20 20 20 | ..... | 000065c0 20 20 20 20 cd 0d 02 b9 1f 20 20 20 20 20 20 20 | ..... | 000065d0 20 20 20 c9 20 69 74 65 6d 5f 63 6f 70 79 74 65 | . item_copyte| 000065e0 6d 70 6c 25 0d 02 ba 1e 20 20 20 20 20 20 20 20 |mpl%.... | 000065f0 20 20 20 20 e7 20 a9 28 69 74 65 6d 24 29 3e 30 | . .(item$)>0| 00006600 20 8c 0d 02 bb 23 20 20 20 20 20 20 20 20 20 20 | ....# | 00006610 20 20 20 20 f2 73 65 6c 5f 67 65 74 28 54 65 6d | .sel_get(Tem| 00006620 70 6c 57 25 29 0d 02 bc 33 20 20 20 20 20 20 20 |plW%)...3 | 00006630 20 20 20 20 20 20 20 57 69 6e 42 6c 6b 25 21 30 | WinBlk%!0| 00006640 3d 54 65 6d 70 6c 48 61 6e 64 6c 65 25 28 53 65 |=TemplHandle%(Se| 00006650 6c 42 6c 6b 25 21 30 29 0d 02 bd 32 20 20 20 20 |lBlk%!0)...2 | 00006660 20 20 20 20 20 20 20 20 20 20 c8 99 20 22 57 69 | .. "Wi| 00006670 6d 70 5f 47 65 74 57 69 6e 64 6f 77 49 6e 66 6f |mp_GetWindowInfo| 00006680 22 2c 2c 57 69 6e 42 6c 6b 25 0d 02 be 30 20 20 |",,WinBlk%...0 | 00006690 20 20 20 20 20 20 20 20 20 20 20 20 e7 20 50 61 | . Pa| 000066a0 6e 65 46 6c 61 67 25 3f 28 53 65 6c 42 6c 6b 25 |neFlag%?(SelBlk%| 000066b0 21 28 34 2a 69 25 29 29 20 8c 0d 02 bf 47 20 20 |!(4*i%)) ....G | 000066c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 69 | Wi| 000066d0 6e 42 6c 6b 25 21 33 32 3d 57 69 6e 42 6c 6b 25 |nBlk%!32=WinBlk%| 000066e0 21 33 32 20 84 20 28 31 3c 3c 35 29 20 3a 20 f4 |!32 . (1<<5) : .| 000066f0 20 63 6f 70 79 20 27 50 61 6e 65 27 20 66 6c 61 | copy 'Pane' fla| 00006700 67 0d 02 c0 13 20 20 20 20 20 20 20 20 20 20 20 |g.... | 00006710 20 20 20 cd 0d 02 c1 35 20 20 20 20 20 20 20 20 | ....5 | 00006720 20 20 20 20 20 20 f2 69 63 6f 6e 72 65 61 6c 6c | .iconreall| 00006730 6f 63 28 57 69 6e 42 6c 6b 25 2b 36 30 2c 57 69 |oc(WinBlk%+60,Wi| 00006740 6e 42 6c 6b 25 2b 37 36 29 0d 02 c2 22 20 20 20 |nBlk%+76)..." | 00006750 20 20 20 20 20 20 20 20 20 20 20 e7 20 57 69 6e | . Win| 00006760 42 6c 6b 25 21 38 38 3e 30 20 8c 0d 02 c3 29 20 |Blk%!88>0 ....) | 00006770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e3 | .| 00006780 20 69 25 3d 30 20 b8 20 57 69 6e 42 6c 6b 25 21 | i%=0 . WinBlk%!| 00006790 38 38 2d 31 0d 02 c4 4b 20 20 20 20 20 20 20 20 |88-1...K | 000067a0 20 20 20 20 20 20 20 20 20 20 f2 69 63 6f 6e 72 | .iconr| 000067b0 65 61 6c 6c 6f 63 28 57 69 6e 42 6c 6b 25 2b 39 |ealloc(WinBlk%+9| 000067c0 32 2b 33 32 2a 69 25 2b 31 36 2c 57 69 6e 42 6c |2+32*i%+16,WinBl| 000067d0 6b 25 2b 39 32 2b 33 32 2a 69 25 2b 32 30 29 0d |k%+92+32*i%+20).| 000067e0 02 c5 18 20 20 20 20 20 20 20 20 20 20 20 20 20 |... | 000067f0 20 20 20 ed 20 69 25 0d 02 c6 13 20 20 20 20 20 | . i%.... | 00006800 20 20 20 20 20 20 20 20 20 cd 0d 02 c7 2d 20 20 | ....- | 00006810 20 20 20 20 20 20 20 20 20 20 20 20 f2 74 65 6d | .tem| 00006820 70 6c 5f 61 64 64 28 69 74 65 6d 24 2c 57 69 6e |pl_add(item$,Win| 00006830 42 6c 6b 25 2c 31 29 0d 02 c8 2f 20 20 20 20 20 |Blk%,1).../ | 00006840 20 20 20 20 20 20 20 20 20 f2 6f 70 65 6e 74 65 | .opente| 00006850 6d 70 6c 61 74 65 28 4e 72 54 65 6d 70 6c 61 74 |mplate(NrTemplat| 00006860 65 73 25 2d 31 29 0d 02 c9 20 20 20 20 20 20 20 |es%-1)... | 00006870 20 20 20 20 20 20 20 20 f2 73 65 74 63 68 61 6e | .setchan| 00006880 67 65 64 28 b9 29 0d 02 ca 11 20 20 20 20 20 20 |ged(.).... | 00006890 20 20 20 20 20 20 cd 0d 02 cb 0d 20 20 20 20 20 | ..... | 000068a0 20 20 20 cb 0d 02 cc 1b 20 20 20 20 20 20 c9 20 | ..... . | 000068b0 69 74 65 6d 5f 6f 70 65 6e 74 65 6d 70 6c 25 0d |item_opentempl%.| 000068c0 02 cd 1d 20 20 20 20 20 20 20 20 f2 73 65 6c 5f |... .sel_| 000068d0 67 65 74 28 54 65 6d 70 6c 57 25 29 0d 02 ce 27 |get(TemplW%)...'| 000068e0 20 20 20 20 20 20 20 20 e3 20 69 25 3d 4e 72 53 | . i%=NrS| 000068f0 65 6c 65 63 74 65 64 25 2d 31 20 b8 20 30 20 88 |elected%-1 . 0 .| 00006900 20 2d 31 0d 02 cf 2b 20 20 20 20 20 20 20 20 20 | -1...+ | 00006910 20 f2 6f 70 65 6e 74 65 6d 70 6c 61 74 65 28 53 | .opentemplate(S| 00006920 65 6c 42 6c 6b 25 21 28 34 2a 69 25 29 29 0d 02 |elBlk%!(4*i%))..| 00006930 d0 10 20 20 20 20 20 20 20 20 ed 20 69 25 0d 02 |.. . i%..| 00006940 d1 1c 20 20 20 20 20 20 c9 20 69 74 65 6d 5f 63 |.. . item_c| 00006950 6c 6f 73 65 74 65 6d 70 6c 25 0d 02 d2 1d 20 20 |losetempl%.... | 00006960 20 20 20 20 20 20 f2 73 65 6c 5f 67 65 74 28 54 | .sel_get(T| 00006970 65 6d 70 6c 57 25 29 0d 02 d3 27 20 20 20 20 20 |emplW%)...' | 00006980 20 20 20 e3 20 69 25 3d 4e 72 53 65 6c 65 63 74 | . i%=NrSelect| 00006990 65 64 25 2d 31 20 b8 20 30 20 88 20 2d 31 0d 02 |ed%-1 . 0 . -1..| 000069a0 d4 2c 20 20 20 20 20 20 20 20 20 20 f2 63 6c 6f |., .clo| 000069b0 73 65 74 65 6d 70 6c 61 74 65 28 53 65 6c 42 6c |setemplate(SelBl| 000069c0 6b 25 21 28 34 2a 69 25 29 29 0d 02 d5 10 20 20 |k%!(4*i%)).... | 000069d0 20 20 20 20 20 20 ed 20 69 25 0d 02 d6 1d 20 20 | . i%.... | 000069e0 20 20 20 20 c9 20 69 74 65 6d 5f 64 65 6c 65 74 | . item_delet| 000069f0 65 74 65 6d 70 6c 25 0d 02 d7 1d 20 20 20 20 20 |etempl%.... | 00006a00 20 20 20 c8 99 20 22 48 6f 75 72 67 6c 61 73 73 | .. "Hourglass| 00006a10 5f 4f 6e 22 0d 02 d8 1d 20 20 20 20 20 20 20 20 |_On".... | 00006a20 f2 73 65 6c 5f 67 65 74 28 54 65 6d 70 6c 57 25 |.sel_get(TemplW%| 00006a30 29 0d 02 d9 27 20 20 20 20 20 20 20 20 e3 20 69 |)...' . i| 00006a40 25 3d 4e 72 53 65 6c 65 63 74 65 64 25 2d 31 20 |%=NrSelected%-1 | 00006a50 b8 20 30 20 88 20 2d 31 0d 02 da 2b 20 20 20 20 |. 0 . -1...+ | 00006a60 20 20 20 20 20 20 f2 74 65 6d 70 6c 5f 64 65 6c | .templ_del| 00006a70 65 74 65 28 53 65 6c 42 6c 6b 25 21 28 34 2a 69 |ete(SelBlk%!(4*i| 00006a80 25 29 29 0d 02 db 10 20 20 20 20 20 20 20 20 ed |%)).... .| 00006a90 20 69 25 0d 02 dc 22 20 20 20 20 20 20 20 20 f2 | i%..." .| 00006aa0 73 65 6c 5f 63 6c 65 61 72 28 54 65 6d 70 6c 57 |sel_clear(TemplW| 00006ab0 25 2c 2d 31 29 0d 02 dd 21 20 20 20 20 20 20 20 |%,-1)...! | 00006ac0 20 4c 61 73 74 4d 65 6e 75 5f 57 69 6e 25 3d 54 | LastMenu_Win%=T| 00006ad0 65 6d 70 6c 57 25 0d 02 de 1d 20 20 20 20 20 20 |emplW%.... | 00006ae0 20 20 4c 61 73 74 4d 65 6e 75 5f 49 63 6f 6e 25 | LastMenu_Icon%| 00006af0 3d 2d 31 0d 02 df 1e 20 20 20 20 20 20 20 20 c8 |=-1.... .| 00006b00 99 20 22 48 6f 75 72 67 6c 61 73 73 5f 4f 66 66 |. "Hourglass_Off| 00006b10 22 0d 02 e0 1d 20 20 20 20 20 20 c9 20 69 74 65 |".... . ite| 00006b20 6d 5f 73 65 6c 61 6c 6c 74 65 6d 70 6c 25 0d 02 |m_selalltempl%..| 00006b30 e1 1d 20 20 20 20 20 20 20 20 f2 73 65 6c 5f 61 |.. .sel_a| 00006b40 6c 6c 28 54 65 6d 70 6c 57 25 29 0d 02 e2 1f 20 |ll(TemplW%).... | 00006b50 20 20 20 20 20 c9 20 69 74 65 6d 5f 63 6c 65 61 | . item_clea| 00006b60 72 73 65 6c 74 65 6d 70 6c 25 0d 02 e3 22 20 20 |rseltempl%..." | 00006b70 20 20 20 20 20 20 f2 73 65 6c 5f 63 6c 65 61 72 | .sel_clear| 00006b80 28 54 65 6d 70 6c 57 25 2c 2d 31 29 0d 02 e4 1b |(TemplW%,-1)....| 00006b90 20 20 20 20 20 20 c9 20 69 74 65 6d 5f 64 65 6c | . item_del| 00006ba0 65 74 65 61 6c 6c 25 0d 02 e5 1c 20 20 20 20 20 |eteall%.... | 00006bb0 20 20 20 e7 20 43 68 61 6e 67 65 73 4d 61 64 65 | . ChangesMade| 00006bc0 25 20 8c 0d 02 e6 20 20 20 20 20 20 20 20 20 20 |% .... | 00006bd0 20 f2 64 69 61 6c 6f 67 75 65 28 31 2c 22 22 2c | .dialogue(1,"",| 00006be0 22 22 29 0d 02 e7 0d 20 20 20 20 20 20 20 20 cc |"").... .| 00006bf0 0d 02 e8 1e 20 20 20 20 20 20 20 20 20 20 f2 74 |.... .t| 00006c00 65 6d 70 6c 5f 64 65 6c 65 74 65 61 6c 6c 0d 02 |empl_deleteall..| 00006c10 e9 23 20 20 20 20 20 20 20 20 20 20 4c 61 73 74 |.# Last| 00006c20 4d 65 6e 75 5f 57 69 6e 25 3d 54 65 6d 70 6c 57 |Menu_Win%=TemplW| 00006c30 25 0d 02 ea 1f 20 20 20 20 20 20 20 20 20 20 4c |%.... L| 00006c40 61 73 74 4d 65 6e 75 5f 49 63 6f 6e 25 3d 2d 31 |astMenu_Icon%=-1| 00006c50 0d 02 eb 0d 20 20 20 20 20 20 20 20 cd 0d 02 ec |.... ....| 00006c60 1b 20 20 20 20 20 20 c9 20 69 74 65 6d 5f 73 6f |. . item_so| 00006c70 72 74 74 65 6d 70 6c 25 0d 02 ed 22 20 20 20 20 |rttempl%..." | 00006c80 20 20 20 20 f2 73 65 6c 5f 63 6c 65 61 72 28 54 | .sel_clear(T| 00006c90 65 6d 70 6c 57 25 2c 2d 31 29 0d 02 ee 17 20 20 |emplW%,-1).... | 00006ca0 20 20 20 20 20 20 f2 74 65 6d 70 6c 5f 73 6f 72 | .templ_sor| 00006cb0 74 0d 02 ef 1f 20 20 20 20 20 20 20 20 f2 72 65 |t.... .re| 00006cc0 64 65 66 69 6e 65 62 72 6f 77 73 65 72 28 b9 29 |definebrowser(.)| 00006cd0 0d 02 f0 21 20 20 20 20 20 20 20 20 4c 61 73 74 |...! Last| 00006ce0 4d 65 6e 75 5f 57 69 6e 25 3d 54 65 6d 70 6c 57 |Menu_Win%=TemplW| 00006cf0 25 0d 02 f1 1d 20 20 20 20 20 20 20 20 4c 61 73 |%.... Las| 00006d00 74 4d 65 6e 75 5f 49 63 6f 6e 25 3d 2d 31 0d 02 |tMenu_Icon%=-1..| 00006d10 f2 16 20 20 20 20 20 20 c9 20 69 74 65 6d 5f 73 |.. . item_s| 00006d20 61 76 65 25 0d 02 f3 1e 20 20 20 20 20 20 20 20 |ave%.... | 00006d30 53 61 76 69 6e 67 53 65 6c 65 63 74 69 6f 6e 25 |SavingSelection%| 00006d40 3d a3 0d 02 f4 26 20 20 20 20 20 20 20 20 f2 73 |=....& .s| 00006d50 61 76 65 74 65 6d 70 6c 61 74 65 73 28 4d 61 69 |avetemplates(Mai| 00006d60 6e 46 4e 61 6d 65 24 29 0d 02 f5 09 20 20 20 20 |nFName$).... | 00006d70 cb 0d 02 f6 36 20 20 20 20 e7 20 54 65 6d 70 6c |....6 . Templ| 00006d80 4d 65 6e 75 5f 44 65 73 65 6c 65 63 74 25 20 8c |Menu_Deselect% .| 00006d90 20 f2 73 65 6c 5f 63 6c 65 61 72 28 54 65 6d 70 | .sel_clear(Temp| 00006da0 6c 57 25 2c 2d 31 29 0d 02 f7 11 20 20 c9 20 55 |lW%,-1).... . U| 00006db0 73 65 72 4d 65 6e 75 25 0d 02 f8 12 20 20 20 20 |serMenu%.... | 00006dc0 c8 8e 20 69 74 65 6d 25 20 ca 0d 02 f9 45 20 20 |.. item% ....E | 00006dd0 20 20 20 20 c9 20 69 74 65 6d 5f 63 6f 70 79 69 | . item_copyi| 00006de0 63 6f 6e 25 2c 69 74 65 6d 5f 75 70 25 2c 69 74 |con%,item_up%,it| 00006df0 65 6d 5f 64 6f 77 6e 25 2c 69 74 65 6d 5f 6c 65 |em_down%,item_le| 00006e00 66 74 25 2c 69 74 65 6d 5f 72 69 67 68 74 25 0d |ft%,item_right%.| 00006e10 02 fa 16 20 20 20 20 20 20 20 20 c8 8e 20 69 74 |... .. it| 00006e20 65 6d 25 20 ca 0d 02 fb 27 20 20 20 20 20 20 20 |em% ....' | 00006e30 20 20 20 c9 20 69 74 65 6d 5f 63 6f 70 79 69 63 | . item_copyic| 00006e40 6f 6e 25 20 3a 20 64 69 72 25 3d 30 0d 02 fc 27 |on% : dir%=0...'| 00006e50 20 20 20 20 20 20 20 20 20 20 c9 20 69 74 65 6d | . item| 00006e60 5f 75 70 25 20 20 20 20 20 20 20 3a 20 64 69 72 |_up% : dir| 00006e70 25 3d 31 0d 02 fd 27 20 20 20 20 20 20 20 20 20 |%=1...' | 00006e80 20 c9 20 69 74 65 6d 5f 64 6f 77 6e 25 20 20 20 | . item_down% | 00006e90 20 20 3a 20 64 69 72 25 3d 32 0d 02 fe 27 20 20 | : dir%=2...' | 00006ea0 20 20 20 20 20 20 20 20 c9 20 69 74 65 6d 5f 6c | . item_l| 00006eb0 65 66 74 25 20 20 20 20 20 3a 20 64 69 72 25 3d |eft% : dir%=| 00006ec0 33 0d 02 ff 27 20 20 20 20 20 20 20 20 20 20 c9 |3...' .| 00006ed0 20 69 74 65 6d 5f 72 69 67 68 74 25 20 20 20 20 | item_right% | 00006ee0 3a 20 64 69 72 25 3d 34 0d 03 00 0d 20 20 20 20 |: dir%=4.... | 00006ef0 20 20 20 20 cb 0d 03 01 3b 20 20 20 20 20 20 20 | ....; | 00006f00 20 f2 63 6f 70 79 69 63 6f 6e 73 65 6c 28 4c 61 | .copyiconsel(La| 00006f10 73 74 4d 65 6e 75 5f 57 69 6e 25 2c 4c 61 73 74 |stMenu_Win%,Last| 00006f20 4d 65 6e 75 5f 49 63 6f 6e 25 2c 64 69 72 25 29 |Menu_Icon%,dir%)| 00006f30 0d 03 02 2b 20 20 20 20 20 20 c9 20 69 74 65 6d |...+ . item| 00006f40 5f 69 63 6f 6e 6e 72 25 2c 69 74 65 6d 5f 72 65 |_iconnr%,item_re| 00006f50 6e 75 6d 62 65 72 69 63 6f 6e 25 0d 03 03 37 20 |numbericon%...7 | 00006f60 20 20 20 20 20 20 20 e7 20 69 74 65 6d 25 3d 69 | . item%=i| 00006f70 74 65 6d 5f 69 63 6f 6e 6e 72 25 20 8c 20 4e 65 |tem_iconnr% . Ne| 00006f80 78 74 49 63 6f 6e 4e 72 25 3d bb 28 69 74 65 6d |xtIconNr%=.(item| 00006f90 24 29 0d 03 04 23 20 20 20 20 20 20 20 20 f2 73 |$)...# .s| 00006fa0 65 6c 5f 67 65 74 28 4c 61 73 74 4d 65 6e 75 5f |el_get(LastMenu_| 00006fb0 57 69 6e 25 29 0d 03 05 1c 20 20 20 20 20 20 20 |Win%).... | 00006fc0 20 c8 8e 20 4e 72 53 65 6c 65 63 74 65 64 25 20 | .. NrSelected% | 00006fd0 ca 0d 03 06 11 20 20 20 20 20 20 20 20 20 20 c9 |..... .| 00006fe0 20 30 0d 03 07 3b 20 20 20 20 20 20 20 20 20 20 | 0...; | 00006ff0 20 20 f2 72 65 6e 75 6d 62 65 72 69 63 6f 6e 28 | .renumbericon(| 00007000 4c 61 73 74 4d 65 6e 75 5f 57 69 6e 25 2c 4c 61 |LastMenu_Win%,La| 00007010 73 74 4d 65 6e 75 5f 49 63 6f 6e 25 29 0d 03 08 |stMenu_Icon%)...| 00007020 2a 20 20 20 20 20 20 20 20 20 20 20 20 4c 61 73 |* Las| 00007030 74 4d 65 6e 75 5f 49 63 6f 6e 25 3d 4e 65 78 74 |tMenu_Icon%=Next| 00007040 49 63 6f 6e 4e 72 25 0d 03 09 11 20 20 20 20 20 |IconNr%.... | 00007050 20 20 20 20 20 c9 20 31 0d 03 0a 36 20 20 20 20 | . 1...6 | 00007060 20 20 20 20 20 20 20 20 f2 72 65 6e 75 6d 62 65 | .renumbe| 00007070 72 69 63 6f 6e 28 4c 61 73 74 4d 65 6e 75 5f 57 |ricon(LastMenu_W| 00007080 69 6e 25 2c 53 65 6c 42 6c 6b 25 21 30 29 0d 03 |in%,SelBlk%!0)..| 00007090 0b 0f 20 20 20 20 20 20 20 20 20 20 7f 0d 03 0c |.. ....| 000070a0 2f 20 20 20 20 20 20 20 20 20 20 20 20 f2 72 65 |/ .re| 000070b0 6e 75 6d 62 65 72 69 63 6f 6e 73 65 6c 28 4c 61 |numbericonsel(La| 000070c0 73 74 4d 65 6e 75 5f 57 69 6e 25 29 0d 03 0d 0d |stMenu_Win%)....| 000070d0 20 20 20 20 20 20 20 20 cb 0d 03 0e 1c 20 20 20 | ..... | 000070e0 20 20 20 c9 20 69 74 65 6d 5f 64 65 6c 65 74 65 | . item_delete| 000070f0 69 63 6f 6e 25 0d 03 0f 38 20 20 20 20 20 20 20 |icon%...8 | 00007100 20 f2 64 65 6c 65 74 65 69 63 6f 6e 73 65 6c 28 | .deleteiconsel(| 00007110 4c 61 73 74 4d 65 6e 75 5f 57 69 6e 25 2c 4c 61 |LastMenu_Win%,La| 00007120 73 74 4d 65 6e 75 5f 49 63 6f 6e 25 29 0d 03 10 |stMenu_Icon%)...| 00007130 1a 20 20 20 20 20 20 c9 20 69 74 65 6d 5f 65 64 |. . item_ed| 00007140 69 74 69 63 6f 6e 25 0d 03 11 35 20 20 20 20 20 |iticon%...5 | 00007150 20 20 20 f2 69 63 65 64 5f 73 74 61 72 74 28 4c | .iced_start(L| 00007160 61 73 74 4d 65 6e 75 5f 57 69 6e 25 2c 4c 61 73 |astMenu_Win%,Las| 00007170 74 4d 65 6e 75 5f 49 63 6f 6e 25 29 0d 03 12 19 |tMenu_Icon%)....| 00007180 20 20 20 20 20 20 c9 20 69 74 65 6d 5f 6d 69 6e | . item_min| 00007190 73 69 7a 65 25 0d 03 13 3c 20 20 20 20 20 20 20 |size%...< | 000071a0 20 f2 6d 69 6e 69 6d 69 7a 65 69 63 6f 6e 73 65 | .minimizeiconse| 000071b0 6c 28 4c 61 73 74 4d 65 6e 75 5f 57 69 6e 25 2c |l(LastMenu_Win%,| 000071c0 4c 61 73 74 4d 65 6e 75 5f 49 63 6f 6e 25 2c 30 |LastMenu_Icon%,0| 000071d0 29 0d 03 14 1c 20 20 20 20 20 20 c9 20 69 74 65 |).... . ite| 000071e0 6d 5f 63 65 6e 74 65 72 69 63 6f 6e 25 0d 03 15 |m_centericon%...| 000071f0 3a 20 20 20 20 20 20 20 20 f2 63 65 6e 74 65 72 |: .center| 00007200 69 63 6f 6e 73 65 6c 28 4c 61 73 74 4d 65 6e 75 |iconsel(LastMenu| 00007210 5f 57 69 6e 25 2c 4c 61 73 74 4d 65 6e 75 5f 49 |_Win%,LastMenu_I| 00007220 63 6f 6e 25 2c 30 29 0d 03 16 1a 20 20 20 20 20 |con%,0).... | 00007230 20 c9 20 69 74 65 6d 5f 73 61 6d 65 73 69 7a 65 | . item_samesize| 00007240 25 0d 03 17 3c 20 20 20 20 20 20 20 20 f2 73 61 |%...< .sa| 00007250 6d 65 73 69 7a 65 69 63 6f 6e 73 65 6c 28 4c 61 |mesizeiconsel(La| 00007260 73 74 4d 65 6e 75 5f 57 69 6e 25 2c 4c 61 73 74 |stMenu_Win%,Last| 00007270 4d 65 6e 75 5f 49 63 6f 6e 25 2c 30 29 0d 03 18 |Menu_Icon%,0)...| 00007280 2c 20 20 20 20 20 20 c9 20 69 74 65 6d 5f 62 6f |, . item_bo| 00007290 74 68 25 2c 69 74 65 6d 5f 78 64 69 6d 25 2c 69 |th%,item_xdim%,i| 000072a0 74 65 6d 5f 79 64 69 6d 25 0d 03 19 1c 20 20 20 |tem_ydim%.... | 000072b0 20 20 20 20 20 c8 8e 20 70 61 72 65 6e 74 69 74 | .. parentit| 000072c0 65 6d 25 20 ca 0d 03 1a 1d 20 20 20 20 20 20 20 |em% ..... | 000072d0 20 20 20 c9 20 69 74 65 6d 5f 6d 69 6e 73 69 7a | . item_minsiz| 000072e0 65 25 0d 03 1b 46 20 20 20 20 20 20 20 20 20 20 |e%...F | 000072f0 20 20 f2 6d 69 6e 69 6d 69 7a 65 69 63 6f 6e 73 | .minimizeicons| 00007300 65 6c 28 4c 61 73 74 4d 65 6e 75 5f 57 69 6e 25 |el(LastMenu_Win%| 00007310 2c 4c 61 73 74 4d 65 6e 75 5f 49 63 6f 6e 25 2c |,LastMenu_Icon%,| 00007320 69 74 65 6d 6e 72 25 29 0d 03 1c 20 20 20 20 20 |itemnr%)... | 00007330 20 20 20 20 20 20 c9 20 69 74 65 6d 5f 63 65 6e | . item_cen| 00007340 74 65 72 69 63 6f 6e 25 0d 03 1d 44 20 20 20 20 |tericon%...D | 00007350 20 20 20 20 20 20 20 20 f2 63 65 6e 74 65 72 69 | .centeri| 00007360 63 6f 6e 73 65 6c 28 4c 61 73 74 4d 65 6e 75 5f |consel(LastMenu_| 00007370 57 69 6e 25 2c 4c 61 73 74 4d 65 6e 75 5f 49 63 |Win%,LastMenu_Ic| 00007380 6f 6e 25 2c 69 74 65 6d 6e 72 25 29 0d 03 1e 1e |on%,itemnr%)....| 00007390 20 20 20 20 20 20 20 20 20 20 c9 20 69 74 65 6d | . item| 000073a0 5f 73 61 6d 65 73 69 7a 65 25 0d 03 1f 46 20 20 |_samesize%...F | 000073b0 20 20 20 20 20 20 20 20 20 20 f2 73 61 6d 65 73 | .sames| 000073c0 69 7a 65 69 63 6f 6e 73 65 6c 28 4c 61 73 74 4d |izeiconsel(LastM| 000073d0 65 6e 75 5f 57 69 6e 25 2c 4c 61 73 74 4d 65 6e |enu_Win%,LastMen| 000073e0 75 5f 49 63 6f 6e 25 2c 69 74 65 6d 6e 72 25 29 |u_Icon%,itemnr%)| 000073f0 0d 03 20 0d 20 20 20 20 20 20 20 20 cb 0d 03 21 |.. . ...!| 00007400 1d 20 20 20 20 20 20 c9 20 69 74 65 6d 5f 73 65 |. . item_se| 00007410 6c 61 6c 6c 69 63 6f 6e 73 25 0d 03 22 23 20 20 |lallicons%.."# | 00007420 20 20 20 20 20 20 f2 73 65 6c 5f 61 6c 6c 28 4c | .sel_all(L| 00007430 61 73 74 4d 65 6e 75 5f 57 69 6e 25 29 0d 03 23 |astMenu_Win%)..#| 00007440 1f 20 20 20 20 20 20 c9 20 69 74 65 6d 5f 63 6c |. . item_cl| 00007450 65 61 72 73 65 6c 69 63 6f 6e 73 25 0d 03 24 28 |earselicons%..$(| 00007460 20 20 20 20 20 20 20 20 f2 73 65 6c 5f 63 6c 65 | .sel_cle| 00007470 61 72 28 4c 61 73 74 4d 65 6e 75 5f 57 69 6e 25 |ar(LastMenu_Win%| 00007480 2c 2d 31 29 0d 03 25 1c 20 20 20 20 20 20 c9 20 |,-1)..%. . | 00007490 69 74 65 6d 5f 65 64 69 74 77 69 6e 64 6f 77 25 |item_editwindow%| 000074a0 0d 03 26 29 20 20 20 20 20 20 20 20 f2 77 69 6e |..&) .win| 000074b0 65 64 5f 66 69 6c 6c 77 69 6e 28 4c 61 73 74 4d |ed_fillwin(LastM| 000074c0 65 6e 75 5f 57 69 6e 25 29 0d 03 27 1b 20 20 20 |enu_Win%)..'. | 000074d0 20 20 20 c9 20 69 74 65 6d 5f 65 64 69 74 74 69 | . item_editti| 000074e0 74 6c 65 25 0d 03 28 29 20 20 20 20 20 20 20 20 |tle%..() | 000074f0 f2 69 63 65 64 5f 73 74 61 72 74 28 4c 61 73 74 |.iced_start(Last| 00007500 4d 65 6e 75 5f 57 69 6e 25 2c 2d 34 29 0d 03 29 |Menu_Win%,-4)..)| 00007510 1b 20 20 20 20 20 20 c9 20 69 74 65 6d 5f 74 69 |. . item_ti| 00007520 64 79 69 63 6f 6e 73 25 0d 03 2a 33 20 20 20 20 |dyicons%..*3 | 00007530 20 20 20 20 4c 61 73 74 4d 65 6e 75 5f 57 69 6e | LastMenu_Win| 00007540 25 3d a4 74 69 64 79 69 63 6f 6e 73 28 4c 61 73 |%=.tidyicons(Las| 00007550 74 4d 65 6e 75 5f 57 69 6e 25 29 0d 03 2b 1b 20 |tMenu_Win%)..+. | 00007560 20 20 20 20 20 c9 20 69 74 65 6d 5f 63 65 6e 74 | . item_cent| 00007570 65 72 77 69 6e 25 0d 03 2c 28 20 20 20 20 20 20 |erwin%..,( | 00007580 20 20 f2 6f 70 65 6e 77 69 6e 64 6f 77 28 4c 61 | .openwindow(La| 00007590 73 74 4d 65 6e 75 5f 57 69 6e 25 2c 31 29 0d 03 |stMenu_Win%,1)..| 000075a0 2d 1a 20 20 20 20 20 20 c9 20 69 74 65 6d 5f 77 |-. . item_w| 000075b0 69 6d 70 61 72 65 61 25 0d 03 2e 32 20 20 20 20 |imparea%...2 | 000075c0 20 20 20 20 f2 77 69 6e 64 6f 77 5f 73 65 74 73 | .window_sets| 000075d0 70 72 69 74 65 61 72 65 61 28 4c 61 73 74 4d 65 |pritearea(LastMe| 000075e0 6e 75 5f 57 69 6e 25 2c 31 29 0d 03 2f 1c 20 20 |nu_Win%,1)../. | 000075f0 20 20 20 20 c9 20 69 74 65 6d 5f 63 75 73 74 6f | . item_custo| 00007600 6d 61 72 65 61 25 0d 03 30 3d 20 20 20 20 20 20 |marea%..0= | 00007610 20 20 f2 77 69 6e 64 6f 77 5f 73 65 74 73 70 72 | .window_setspr| 00007620 69 74 65 61 72 65 61 28 4c 61 73 74 4d 65 6e 75 |itearea(LastMenu| 00007630 5f 57 69 6e 25 2c 55 73 65 72 53 70 72 69 74 65 |_Win%,UserSprite| 00007640 73 25 29 0d 03 31 1a 20 20 20 20 20 20 c9 20 69 |s%)..1. . i| 00007650 74 65 6d 5f 63 6c 6f 73 65 77 69 6e 25 0d 03 32 |tem_closewin%..2| 00007660 39 20 20 20 20 20 20 20 20 f2 63 6c 6f 73 65 74 |9 .closet| 00007670 65 6d 70 6c 61 74 65 28 a4 77 68 69 63 68 74 65 |emplate(.whichte| 00007680 6d 70 6c 61 74 65 28 4c 61 73 74 4d 65 6e 75 5f |mplate(LastMenu_| 00007690 57 69 6e 25 29 29 0d 03 33 0b 20 20 20 20 20 20 |Win%))..3. | 000076a0 7f 0d 03 34 49 20 20 20 20 20 20 20 20 e7 20 28 |...4I . (| 000076b0 69 74 65 6d 25 3d 69 74 65 6d 5f 63 72 65 61 74 |item%=item_creat| 000076c0 65 69 63 6f 6e 25 29 20 84 20 28 70 61 72 65 6e |eicon%) . (paren| 000076d0 74 69 74 65 6d 25 3d 69 74 65 6d 5f 63 72 65 61 |titem%=item_crea| 000076e0 74 65 69 63 6f 6e 25 29 20 8c 0d 03 35 31 20 20 |teicon%) ...51 | 000076f0 20 20 20 20 20 20 20 20 e7 20 69 74 65 6d 25 3d | . item%=| 00007700 69 74 65 6d 5f 63 72 65 61 74 65 69 63 6f 6e 25 |item_createicon%| 00007710 20 8c 20 69 74 65 6d 24 3d 22 22 0d 03 36 36 20 | . item$=""..66 | 00007720 20 20 20 20 20 20 20 20 20 f4 20 63 6f 6e 76 65 | . conve| 00007730 72 74 20 73 63 72 65 65 6e 20 63 6f 6f 72 64 73 |rt screen coords| 00007740 20 74 6f 20 77 69 6e 64 6f 77 20 63 6f 6f 72 64 | to window coord| 00007750 73 0d 03 37 27 20 20 20 20 20 20 20 20 20 20 53 |s..7' S| 00007760 63 72 61 70 42 6c 6b 25 21 30 3d 4c 61 73 74 4d |crapBlk%!0=LastM| 00007770 65 6e 75 5f 57 69 6e 25 0d 03 38 31 20 20 20 20 |enu_Win%..81 | 00007780 20 20 20 20 20 20 c8 99 20 22 57 69 6d 70 5f 47 | .. "Wimp_G| 00007790 65 74 57 69 6e 64 6f 77 53 74 61 74 65 22 2c 2c |etWindowState",,| 000077a0 53 63 72 61 70 42 6c 6b 25 0d 03 39 3a 20 20 20 |ScrapBlk%..9: | 000077b0 20 20 20 20 20 20 20 6d 69 6e 78 25 3d 4c 61 73 | minx%=Las| 000077c0 74 4d 65 6e 75 5f 58 25 2d 28 53 63 72 61 70 42 |tMenu_X%-(ScrapB| 000077d0 6c 6b 25 21 34 2d 53 63 72 61 70 42 6c 6b 25 21 |lk%!4-ScrapBlk%!| 000077e0 32 30 29 0d 03 3a 3b 20 20 20 20 20 20 20 20 20 |20)..:; | 000077f0 20 6d 69 6e 79 25 3d 4c 61 73 74 4d 65 6e 75 5f | miny%=LastMenu_| 00007800 59 25 2d 28 53 63 72 61 70 42 6c 6b 25 21 31 36 |Y%-(ScrapBlk%!16| 00007810 2d 53 63 72 61 70 42 6c 6b 25 21 32 34 29 0d 03 |-ScrapBlk%!24)..| 00007820 3b 42 20 20 20 20 20 20 20 20 20 20 f2 63 72 65 |;B .cre| 00007830 61 74 65 73 74 61 6e 64 61 72 64 69 63 6f 6e 28 |atestandardicon(| 00007840 69 74 65 6d 24 2c 4c 61 73 74 4d 65 6e 75 5f 57 |item$,LastMenu_W| 00007850 69 6e 25 2c 6d 69 6e 78 25 2c 6d 69 6e 79 25 29 |in%,minx%,miny%)| 00007860 0d 03 3c 0d 20 20 20 20 20 20 20 20 cd 0d 03 3d |..<. ...=| 00007870 09 20 20 20 20 cb 0d 03 3e 15 20 20 c9 20 49 63 |. ...>. . Ic| 00007880 42 75 74 74 6f 6e 4d 65 6e 75 25 0d 03 3f 1c 20 |ButtonMenu%..?. | 00007890 20 20 20 49 63 45 64 5f 42 75 74 74 6f 6e 25 3d | IcEd_Button%=| 000078a0 69 74 65 6d 6e 72 25 0d 03 40 34 20 20 20 20 f2 |itemnr%..@4 .| 000078b0 73 65 74 69 63 6f 6e 74 65 78 74 28 34 2c 24 28 |seticontext(4,$(| 000078c0 49 63 42 75 74 74 6f 6e 25 2b 32 30 2a 49 63 45 |IcButton%+20*IcE| 000078d0 64 5f 42 75 74 74 6f 6e 25 29 29 0d 03 41 16 20 |d_Button%))..A. | 000078e0 20 c9 20 57 69 6e 42 75 74 74 6f 6e 4d 65 6e 75 | . WinButtonMenu| 000078f0 25 0d 03 42 1d 20 20 20 20 57 69 6e 45 64 5f 42 |%..B. WinEd_B| 00007900 75 74 74 6f 6e 25 3d 69 74 65 6d 6e 72 25 0d 03 |utton%=itemnr%..| 00007910 43 36 20 20 20 20 f2 73 65 74 69 63 6f 6e 74 65 |C6 .seticonte| 00007920 78 74 28 36 2c 24 28 57 69 6e 42 75 74 74 6f 6e |xt(6,$(WinButton| 00007930 25 2b 32 30 2a 57 69 6e 45 64 5f 42 75 74 74 6f |%+20*WinEd_Butto| 00007940 6e 25 29 29 0d 03 44 10 20 20 c9 20 45 73 67 4d |n%))..D. . EsgM| 00007950 65 6e 75 25 0d 03 45 1e 20 20 20 20 49 63 45 64 |enu%..E. IcEd| 00007960 5f 45 73 67 25 3d bb 28 c0 69 74 65 6d 24 2c 32 |_Esg%=.(.item$,2| 00007970 29 29 0d 03 46 24 20 20 20 20 f2 73 65 74 69 63 |))..F$ .setic| 00007980 6f 6e 74 65 78 74 28 35 2c c3 28 49 63 45 64 5f |ontext(5,.(IcEd_| 00007990 45 73 67 25 29 29 0d 03 47 13 20 20 c9 20 43 6f |Esg%))..G. . Co| 000079a0 6c 6f 75 72 4d 65 6e 75 25 0d 03 48 18 20 20 20 |lourMenu%..H. | 000079b0 20 e7 20 69 74 65 6d 24 3d 22 4e 6f 6e 65 22 20 | . item$="None" | 000079c0 8c 0d 03 49 10 20 20 20 20 20 20 6a 25 3d 32 35 |...I. j%=25| 000079d0 35 0d 03 4a 09 20 20 20 20 cc 0d 03 4b 15 20 20 |5..J. ...K. | 000079e0 20 20 20 20 6a 25 3d bb 28 69 74 65 6d 24 29 0d | j%=.(item$).| 000079f0 03 4c 09 20 20 20 20 cd 0d 03 4d 1a 20 20 20 20 |.L. ...M. | 00007a00 c8 8e 20 4c 61 73 74 4d 65 6e 75 5f 57 69 6e 25 |.. LastMenu_Win%| 00007a10 20 ca 0d 03 4e 12 20 20 20 20 20 20 c9 20 49 63 | ...N. . Ic| 00007a20 45 64 57 25 0d 03 4f 1f 20 20 20 20 20 20 20 20 |EdW%..O. | 00007a30 c8 8e 20 4c 61 73 74 4d 65 6e 75 5f 49 63 6f 6e |.. LastMenu_Icon| 00007a40 25 20 ca 0d 03 50 12 20 20 20 20 20 20 20 20 20 |% ...P. | 00007a50 20 c9 20 33 34 0d 03 51 1e 20 20 20 20 20 20 20 | . 34..Q. | 00007a60 20 20 20 20 20 49 63 45 64 5f 46 67 63 6f 6c 25 | IcEd_Fgcol%| 00007a70 3d 6a 25 0d 03 52 23 20 20 20 20 20 20 20 20 20 |=j%..R# | 00007a80 20 20 20 f2 73 65 74 63 6f 6c 6f 75 72 62 6f 78 | .setcolourbox| 00007a90 28 30 2c 6a 25 29 0d 03 53 12 20 20 20 20 20 20 |(0,j%)..S. | 00007aa0 20 20 20 20 c9 20 33 37 0d 03 54 1e 20 20 20 20 | . 37..T. | 00007ab0 20 20 20 20 20 20 20 20 49 63 45 64 5f 42 67 63 | IcEd_Bgc| 00007ac0 6f 6c 25 3d 6a 25 0d 03 55 23 20 20 20 20 20 20 |ol%=j%..U# | 00007ad0 20 20 20 20 20 20 f2 73 65 74 63 6f 6c 6f 75 72 | .setcolour| 00007ae0 62 6f 78 28 31 2c 6a 25 29 0d 03 56 0d 20 20 20 |box(1,j%)..V. | 00007af0 20 20 20 20 20 cb 0d 03 57 13 20 20 20 20 20 20 | ...W. | 00007b00 c9 20 57 69 6e 45 64 57 25 0d 03 58 26 20 20 20 |. WinEdW%..X& | 00007b10 20 20 20 20 20 69 25 3d 28 4c 61 73 74 4d 65 6e | i%=(LastMen| 00007b20 75 5f 49 63 6f 6e 25 2d 32 37 29 20 81 20 34 0d |u_Icon%-27) . 4.| 00007b30 03 59 1d 20 20 20 20 20 20 20 20 57 69 6e 45 64 |.Y. WinEd| 00007b40 5f 43 6f 6c 25 28 69 25 29 3d 6a 25 0d 03 5a 22 |_Col%(i%)=j%..Z"| 00007b50 20 20 20 20 20 20 20 20 f2 73 65 74 63 6f 6c 6f | .setcolo| 00007b60 75 72 62 6f 78 28 32 2b 69 25 2c 6a 25 29 0d 03 |urbox(2+i%,j%)..| 00007b70 5b 09 20 20 20 20 cb 0d 03 5c 11 20 20 c9 20 46 |[. ...\. . F| 00007b80 6f 6e 74 4d 65 6e 75 25 0d 03 5d 1c 20 20 20 20 |ontMenu%..]. | 00007b90 e7 20 a9 28 70 61 72 65 6e 74 69 74 65 6d 24 29 |. .(parentitem$)| 00007ba0 3e 30 20 8c 0d 03 5e 1f 20 20 20 20 20 20 e7 20 |>0 ...^. . | 00007bb0 69 74 65 6d 24 3d 22 28 52 65 67 75 6c 61 72 29 |item$="(Regular)| 00007bc0 22 20 8c 0d 03 5f 22 20 20 20 20 20 20 20 20 49 |" ..._" I| 00007bd0 63 45 64 5f 46 6f 6e 74 24 3d 70 61 72 65 6e 74 |cEd_Font$=parent| 00007be0 69 74 65 6d 24 0d 03 60 0b 20 20 20 20 20 20 cc |item$..`. .| 00007bf0 0d 03 61 2c 20 20 20 20 20 20 20 20 49 63 45 64 |..a, IcEd| 00007c00 5f 46 6f 6e 74 24 3d 70 61 72 65 6e 74 69 74 65 |_Font$=parentite| 00007c10 6d 24 2b 22 2e 22 2b 69 74 65 6d 24 0d 03 62 0b |m$+"."+item$..b.| 00007c20 20 20 20 20 20 20 cd 0d 03 63 25 20 20 20 20 20 | ...c% | 00007c30 20 f2 73 65 74 69 63 6f 6e 74 65 78 74 28 31 39 | .seticontext(19| 00007c40 2c 49 63 45 64 5f 46 6f 6e 74 24 29 0d 03 64 09 |,IcEd_Font$)..d.| 00007c50 20 20 20 20 cd 0d 03 65 15 20 20 c9 20 46 6f 6e | ...e. . Fon| 00007c60 74 53 69 7a 65 6d 65 6e 75 25 0d 03 66 15 20 20 |tSizemenu%..f. | 00007c70 20 20 73 69 7a 65 3d bb 28 69 74 65 6d 24 29 0d | size=.(item$).| 00007c80 03 67 12 20 20 20 20 e7 20 73 69 7a 65 3e 30 20 |.g. . size>0 | 00007c90 8c 0d 03 68 1f 20 20 20 20 20 20 e7 20 4c 61 73 |...h. . Las| 00007ca0 74 4d 65 6e 75 5f 49 63 6f 6e 25 3d 34 38 20 8c |tMenu_Icon%=48 .| 00007cb0 0d 03 69 1b 20 20 20 20 20 20 20 20 49 63 45 64 |..i. IcEd| 00007cc0 5f 58 73 69 7a 65 3d 73 69 7a 65 0d 03 6a 2e 20 |_Xsize=size..j. | 00007cd0 20 20 20 20 20 20 20 f2 73 65 74 69 63 6f 6e 74 | .seticont| 00007ce0 65 78 74 28 32 30 2c c0 c3 28 49 63 45 64 5f 58 |ext(20,..(IcEd_X| 00007cf0 73 69 7a 65 29 2c 34 29 29 0d 03 6b 28 20 20 20 |size),4))..k( | 00007d00 20 20 20 20 20 e7 20 a4 69 63 6f 6e 73 65 6c 65 | . .iconsele| 00007d10 63 74 65 64 28 49 63 45 64 57 25 2c 35 33 29 20 |cted(IcEdW%,53) | 00007d20 8c 0d 03 6c 23 20 20 20 20 20 20 20 20 20 20 49 |...l# I| 00007d30 63 45 64 5f 59 73 69 7a 65 3d 49 63 45 64 5f 58 |cEd_Ysize=IcEd_X| 00007d40 73 69 7a 65 0d 03 6d 30 20 20 20 20 20 20 20 20 |size..m0 | 00007d50 20 20 f2 73 65 74 69 63 6f 6e 74 65 78 74 28 32 | .seticontext(2| 00007d60 31 2c c0 c3 28 49 63 45 64 5f 59 73 69 7a 65 29 |1,..(IcEd_Ysize)| 00007d70 2c 34 29 29 0d 03 6e 0d 20 20 20 20 20 20 20 20 |,4))..n. | 00007d80 cd 0d 03 6f 0b 20 20 20 20 20 20 cc 0d 03 70 1b |...o. ...p.| 00007d90 20 20 20 20 20 20 20 20 49 63 45 64 5f 59 73 69 | IcEd_Ysi| 00007da0 7a 65 3d 73 69 7a 65 0d 03 71 2e 20 20 20 20 20 |ze=size..q. | 00007db0 20 20 20 f2 73 65 74 69 63 6f 6e 74 65 78 74 28 | .seticontext(| 00007dc0 32 31 2c c0 c3 28 49 63 45 64 5f 59 73 69 7a 65 |21,..(IcEd_Ysize| 00007dd0 29 2c 34 29 29 0d 03 72 0b 20 20 20 20 20 20 cd |),4))..r. .| 00007de0 0d 03 73 09 20 20 20 20 cd 0d 03 74 13 20 20 c9 |..s. ...t. .| 00007df0 20 55 70 64 61 74 65 6d 65 6e 75 25 0d 03 75 12 | Updatemenu%..u.| 00007e00 20 20 20 20 c8 8e 20 69 74 65 6d 25 20 ca 0d 03 | .. item% ...| 00007e10 76 31 20 20 20 20 20 20 c9 20 69 74 65 6d 5f 75 |v1 . item_u| 00007e20 70 64 62 74 25 20 20 20 3a 20 f2 69 63 65 64 5f |pdbt% : .iced_| 00007e30 72 65 61 64 77 69 6e 28 26 46 3c 3c 31 32 29 0d |readwin(&F<<12).| 00007e40 03 77 32 20 20 20 20 20 20 c9 20 69 74 65 6d 5f |.w2 . item_| 00007e50 75 70 64 65 73 67 25 20 20 3a 20 f2 69 63 65 64 |updesg% : .iced| 00007e60 5f 72 65 61 64 77 69 6e 28 26 31 46 3c 3c 31 36 |_readwin(&1F<<16| 00007e70 29 0d 03 78 3a 20 20 20 20 20 20 c9 20 69 74 65 |)..x: . ite| 00007e80 6d 5f 75 70 64 66 67 25 20 20 20 3a 20 f2 69 63 |m_updfg% : .ic| 00007e90 65 64 5f 72 65 61 64 77 69 6e 28 28 26 46 3c 3c |ed_readwin((&F<<| 00007ea0 32 34 29 2b 28 31 3c 3c 36 29 29 0d 03 79 3a 20 |24)+(1<<6))..y: | 00007eb0 20 20 20 20 20 c9 20 69 74 65 6d 5f 75 70 64 62 | . item_updb| 00007ec0 67 25 20 20 20 3a 20 f2 69 63 65 64 5f 72 65 61 |g% : .iced_rea| 00007ed0 64 77 69 6e 28 28 26 46 3c 3c 32 38 29 2b 28 31 |dwin((&F<<28)+(1| 00007ee0 3c 3c 36 29 29 0d 03 7a 3b 20 20 20 20 20 20 c9 |<<6))..z; .| 00007ef0 20 69 74 65 6d 5f 75 70 64 66 6f 6e 74 25 20 3a | item_updfont% :| 00007f00 20 f2 69 63 65 64 5f 72 65 61 64 77 69 6e 28 28 | .iced_readwin((| 00007f10 26 46 46 3c 3c 32 34 29 2b 28 31 3c 3c 36 29 29 |&FF<<24)+(1<<6))| 00007f20 0d 03 7b 37 20 20 20 20 20 20 c9 20 69 74 65 6d |..{7 . item| 00007f30 5f 75 70 64 72 65 73 74 25 20 3a 20 f2 69 63 65 |_updrest% : .ice| 00007f40 64 5f 72 65 61 64 77 69 6e 28 26 45 46 43 2b 28 |d_readwin(&EFC+(| 00007f50 31 3c 3c 32 32 29 29 0d 03 7c 2f 20 20 20 20 20 |1<<22))..|/ | 00007f60 20 c9 20 69 74 65 6d 5f 75 70 64 62 6f 25 3a 20 | . item_updbo%: | 00007f70 20 3a 20 f2 69 63 65 64 5f 72 65 61 64 77 69 6e | : .iced_readwin| 00007f80 28 31 3c 3c 32 29 0d 03 7d 2f 20 20 20 20 20 20 |(1<<2)..}/ | 00007f90 c9 20 69 74 65 6d 5f 75 70 64 66 69 25 3a 20 20 |. item_updfi%: | 00007fa0 3a 20 f2 69 63 65 64 5f 72 65 61 64 77 69 6e 28 |: .iced_readwin(| 00007fb0 31 3c 3c 35 29 0d 03 7e 2f 20 20 20 20 20 20 c9 |1<<5)..~/ .| 00007fc0 20 69 74 65 6d 5f 75 70 64 68 63 25 3a 20 20 3a | item_updhc%: :| 00007fd0 20 f2 69 63 65 64 5f 72 65 61 64 77 69 6e 28 31 | .iced_readwin(1| 00007fe0 3c 3c 33 29 0d 03 7f 2f 20 20 20 20 20 20 c9 20 |<<3).../ . | 00007ff0 69 74 65 6d 5f 75 70 64 76 63 25 3a 20 20 3a 20 |item_updvc%: : | 00008000 f2 69 63 65 64 5f 72 65 61 64 77 69 6e 28 31 3c |.iced_readwin(1<| 00008010 3c 34 29 0d 03 80 2f 20 20 20 20 20 20 c9 20 69 |<4).../ . i| 00008020 74 65 6d 5f 75 70 64 72 6a 25 3a 20 20 3a 20 f2 |tem_updrj%: : .| 00008030 69 63 65 64 5f 72 65 61 64 77 69 6e 28 31 3c 3c |iced_readwin(1<<| 00008040 39 29 0d 03 81 2f 20 20 20 20 20 20 c9 20 69 74 |9).../ . it| 00008050 65 6d 5f 75 70 64 6e 68 25 3a 20 20 3a 20 f2 69 |em_updnh%: : .i| 00008060 63 65 64 5f 72 65 61 64 77 69 6e 28 31 3c 3c 37 |ced_readwin(1<<7| 00008070 29 0d 03 82 30 20 20 20 20 20 20 c9 20 69 74 65 |)...0 . ite| 00008080 6d 5f 75 70 64 61 61 25 3a 20 20 3a 20 f2 69 63 |m_updaa%: : .ic| 00008090 65 64 5f 72 65 61 64 77 69 6e 28 31 3c 3c 31 30 |ed_readwin(1<<10| 000080a0 29 0d 03 83 30 20 20 20 20 20 20 c9 20 69 74 65 |)...0 . ite| 000080b0 6d 5f 75 70 64 68 73 25 3a 20 20 3a 20 f2 69 63 |m_updhs%: : .ic| 000080c0 65 64 5f 72 65 61 64 77 69 6e 28 31 3c 3c 31 31 |ed_readwin(1<<11| 000080d0 29 0d 03 84 30 20 20 20 20 20 20 c9 20 69 74 65 |)...0 . ite| 000080e0 6d 5f 75 70 64 73 68 25 3a 20 20 3a 20 f2 69 63 |m_updsh%: : .ic| 000080f0 65 64 5f 72 65 61 64 77 69 6e 28 31 3c 3c 32 32 |ed_readwin(1<<22| 00008100 29 0d 03 85 09 20 20 20 20 cb 0d 03 86 1d 20 20 |).... ..... | 00008110 20 20 e7 20 4c 61 73 74 4d 65 6e 75 5f 49 63 6f | . LastMenu_Ico| 00008120 6e 25 3d 31 30 20 8c 0d 03 87 1e 20 20 20 20 20 |n%=10 ..... | 00008130 20 f2 63 6c 6f 73 65 77 69 6e 64 6f 77 28 49 63 | .closewindow(Ic| 00008140 45 64 57 25 29 0d 03 88 21 20 20 20 20 20 20 f2 |EdW%)...! .| 00008150 73 65 74 63 61 72 65 74 28 49 63 45 64 5f 57 69 |setcaret(IcEd_Wi| 00008160 6e 25 2c 2d 31 29 0d 03 89 13 20 20 20 20 20 20 |n%,-1).... | 00008170 61 64 6a 75 73 74 25 3d a3 0d 03 8a 09 20 20 20 |adjust%=..... | 00008180 20 cd 0d 03 8b 05 cb 0d 03 8c 0f e7 20 61 64 6a | ........... adj| 00008190 75 73 74 25 20 8c 0d 03 8d 47 20 20 f2 63 72 65 |ust% ....G .cre| 000081a0 61 74 65 6d 65 6e 75 28 4c 61 73 74 4d 65 6e 75 |atemenu(LastMenu| 000081b0 5f 58 25 2c 4c 61 73 74 4d 65 6e 75 5f 59 25 2c |_X%,LastMenu_Y%,| 000081c0 4c 61 73 74 4d 65 6e 75 5f 57 69 6e 25 2c 4c 61 |LastMenu_Win%,La| 000081d0 73 74 4d 65 6e 75 5f 49 63 6f 6e 25 29 0d 03 8e |stMenu_Icon%)...| 000081e0 05 cc 0d 03 8f 12 20 20 4c 61 73 74 4d 65 6e 75 |...... LastMenu| 000081f0 25 3d 2d 31 0d 03 90 05 cd 0d 03 91 05 e1 0d 03 |%=-1............| 00008200 92 04 0d 03 93 34 dd 20 f2 65 64 69 74 61 63 74 |.....4. .editact| 00008210 69 6f 6e 28 78 70 6f 73 25 2c 79 70 6f 73 25 2c |ion(xpos%,ypos%,| 00008220 62 75 74 74 6f 6e 25 2c 77 69 6e 64 6f 77 25 2c |button%,window%,| 00008230 69 63 6f 6e 25 29 0d 03 94 12 ea 20 6b 65 79 25 |icon%)..... key%| 00008240 2c 64 63 6c 69 63 6b 25 0d 03 95 0a 6b 65 79 25 |,dclick%....key%| 00008250 3d 30 0d 03 96 0d 64 63 6c 69 63 6b 25 3d a3 0d |=0....dclick%=..| 00008260 03 97 2d e7 20 28 a6 20 2d 31 29 20 8c 20 6b 65 |..-. (. -1) . ke| 00008270 79 25 2b 3d 31 20 3a 20 f4 20 62 69 74 20 30 20 |y%+=1 : . bit 0 | 00008280 2d 3e 20 53 68 69 66 74 20 6b 65 79 0d 03 98 2c |-> Shift key...,| 00008290 e7 20 28 a6 20 2d 32 29 20 8c 20 6b 65 79 25 2b |. (. -2) . key%+| 000082a0 3d 32 20 3a 20 f4 20 62 69 74 20 31 20 2d 3e 20 |=2 : . bit 1 -> | 000082b0 43 74 72 6c 20 6b 65 79 0d 03 99 2b e7 20 28 a6 |Ctrl key...+. (.| 000082c0 20 2d 33 29 20 8c 20 6b 65 79 25 2b 3d 34 20 3a | -3) . key%+=4 :| 000082d0 20 f4 20 62 69 74 20 32 20 2d 3e 20 41 6c 74 20 | . bit 2 -> Alt | 000082e0 6b 65 79 0d 03 9a 2b 54 69 6d 65 64 44 72 61 67 |key...+TimedDrag| 000082f0 5f 45 6e 61 62 6c 65 64 25 3d 28 6b 65 79 25 3d |_Enabled%=(key%=| 00008300 30 29 80 28 69 63 6f 6e 25 3e 3d 2d 31 29 0d 03 |0).(icon%>=-1)..| 00008310 9b 13 e7 20 62 75 74 74 6f 6e 25 3e 32 35 36 20 |... button%>256 | 00008320 8c 0d 03 9c 40 20 20 62 75 74 74 6f 6e 25 3d 62 |....@ button%=b| 00008330 75 74 74 6f 6e 25 3e 3e 38 20 3a 20 f4 20 63 6c |utton%>>8 : . cl| 00008340 69 63 6b 65 64 20 6f 6e 20 69 63 6f 6e 20 77 69 |icked on icon wi| 00008350 74 68 20 62 75 74 74 6f 6e 20 74 79 70 65 20 31 |th button type 1| 00008360 30 0d 03 9d 05 cd 0d 03 9e 0d c8 8e 20 6b 65 79 |0........... key| 00008370 25 20 ca 0d 03 9f 22 20 20 c9 20 30 20 3a 20 f4 |% ...." . 0 : .| 00008380 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e 2c 20 6e | mouse button, n| 00008390 6f 20 6b 65 79 0d 03 a0 15 20 20 20 20 e7 20 62 |o key.... . b| 000083a0 75 74 74 6f 6e 25 3e 30 20 8c 0d 03 a1 34 20 20 |utton%>0 ....4 | 000083b0 20 20 20 20 64 63 6c 69 63 6b 25 3d 28 91 2d 54 | dclick%=(.-T| 000083c0 68 69 73 43 6c 69 63 6b 54 69 6d 65 25 29 3c 44 |hisClickTime%)<D| 000083d0 63 6c 69 63 6b 49 6e 74 65 72 76 61 6c 25 0d 03 |clickInterval%..| 000083e0 a2 36 20 20 20 20 20 20 64 63 6c 69 63 6b 25 3d |.6 dclick%=| 000083f0 64 63 6c 69 63 6b 25 20 80 20 28 54 68 69 73 43 |dclick% . (ThisC| 00008400 6c 69 63 6b 42 75 74 74 6f 6e 25 3d 62 75 74 74 |lickButton%=butt| 00008410 6f 6e 25 29 0d 03 a3 4a 20 20 20 20 20 20 64 63 |on%)...J dc| 00008420 6c 69 63 6b 25 3d 64 63 6c 69 63 6b 25 20 80 20 |lick%=dclick% . | 00008430 28 94 28 54 68 69 73 43 6c 69 63 6b 58 25 2d 78 |(.(ThisClickX%-x| 00008440 70 6f 73 25 29 2b 94 28 54 68 69 73 43 6c 69 63 |pos%)+.(ThisClic| 00008450 6b 59 25 2d 79 70 6f 73 25 29 29 3c 33 32 0d 03 |kY%-ypos%))<32..| 00008460 a4 1a 20 20 20 20 20 20 54 68 69 73 43 6c 69 63 |.. ThisClic| 00008470 6b 54 69 6d 65 25 3d 91 0d 03 a5 1b 20 20 20 20 |kTime%=..... | 00008480 20 20 54 68 69 73 43 6c 69 63 6b 58 25 3d 78 70 | ThisClickX%=xp| 00008490 6f 73 25 0d 03 a6 1b 20 20 20 20 20 20 54 68 69 |os%.... Thi| 000084a0 73 43 6c 69 63 6b 59 25 3d 79 70 6f 73 25 0d 03 |sClickY%=ypos%..| 000084b0 a7 22 20 20 20 20 20 20 54 68 69 73 43 6c 69 63 |." ThisClic| 000084c0 6b 42 75 74 74 6f 6e 25 3d 62 75 74 74 6f 6e 25 |kButton%=button%| 000084d0 0d 03 a8 09 20 20 20 20 cd 0d 03 a9 14 20 20 20 |.... ..... | 000084e0 20 c8 8e 20 62 75 74 74 6f 6e 25 20 ca 0d 03 aa | .. button% ....| 000084f0 0f 20 20 20 20 20 20 c9 20 31 2c 34 0d 03 ab 16 |. . 1,4....| 00008500 20 20 20 20 20 20 20 20 c8 8e 20 69 63 6f 6e 25 | .. icon%| 00008510 20 ca 0d 03 ac 12 20 20 20 20 20 20 20 20 20 20 | ..... | 00008520 c9 20 2d 34 0d 03 ad 37 20 20 20 20 20 20 20 20 |. -4...7 | 00008530 20 20 20 20 e7 20 64 63 6c 69 63 6b 25 20 80 20 | . dclick% . | 00008540 54 72 61 70 44 63 6c 69 63 6b 25 20 80 20 28 62 |TrapDclick% . (b| 00008550 75 74 74 6f 6e 25 3d 34 29 20 8c 0d 03 ae 2c 20 |utton%=4) ...., | 00008560 20 20 20 20 20 20 20 20 20 20 20 20 20 f2 69 63 | .ic| 00008570 65 64 5f 73 74 61 72 74 28 77 69 6e 64 6f 77 25 |ed_start(window%| 00008580 2c 69 63 6f 6e 25 29 0d 03 af 11 20 20 20 20 20 |,icon%).... | 00008590 20 20 20 20 20 20 20 cd 0d 03 b0 12 20 20 20 20 | ..... | 000085a0 20 20 20 20 20 20 c9 20 2d 31 0d 03 b1 34 20 20 | . -1...4 | 000085b0 20 20 20 20 20 20 20 20 20 20 e7 20 62 75 74 74 | . butt| 000085c0 6f 6e 25 3d 34 20 8c 20 f2 73 65 6c 5f 63 6c 65 |on%=4 . .sel_cle| 000085d0 61 72 28 77 69 6e 64 6f 77 25 2c 2d 31 29 0d 03 |ar(window%,-1)..| 000085e0 b2 37 20 20 20 20 20 20 20 20 20 20 20 20 e7 20 |.7 . | 000085f0 64 63 6c 69 63 6b 25 20 80 20 54 72 61 70 44 63 |dclick% . TrapDc| 00008600 6c 69 63 6b 25 20 80 20 28 62 75 74 74 6f 6e 25 |lick% . (button%| 00008610 3d 34 29 20 8c 0d 03 b3 29 20 20 20 20 20 20 20 |=4) ....) | 00008620 20 20 20 20 20 20 20 f2 77 69 6e 65 64 5f 66 69 | .wined_fi| 00008630 6c 6c 77 69 6e 28 77 69 6e 64 6f 77 25 29 0d 03 |llwin(window%)..| 00008640 b4 11 20 20 20 20 20 20 20 20 20 20 20 20 cc 0d |.. ..| 00008650 03 b5 26 20 20 20 20 20 20 20 20 20 20 20 20 20 |..& | 00008660 20 f2 64 72 61 67 73 65 6c 65 63 74 28 62 75 74 | .dragselect(but| 00008670 74 6f 6e 25 29 0d 03 b6 27 20 20 20 20 20 20 20 |ton%)...' | 00008680 20 20 20 20 20 20 20 f2 73 65 74 63 61 72 65 74 | .setcaret| 00008690 28 77 69 6e 64 6f 77 25 2c 2d 31 29 0d 03 b7 11 |(window%,-1)....| 000086a0 20 20 20 20 20 20 20 20 20 20 20 20 cd 0d 03 b8 | ....| 000086b0 0f 20 20 20 20 20 20 20 20 20 20 7f 0d 03 b9 1c |. .....| 000086c0 20 20 20 20 20 20 20 20 20 20 20 20 e7 20 69 63 | . ic| 000086d0 6f 6e 25 3e 3d 30 20 8c 0d 03 ba 1f 20 20 20 20 |on%>=0 ..... | 000086e0 20 20 20 20 20 20 20 20 20 20 e7 20 62 75 74 74 | . butt| 000086f0 6f 6e 25 3d 31 20 8c 0d 03 bb 2d 20 20 20 20 20 |on%=1 ....- | 00008700 20 20 20 20 20 20 20 20 20 20 20 f4 20 74 6f 67 | . tog| 00008710 67 6c 65 20 22 73 65 6c 65 63 74 65 64 22 20 73 |gle "selected" s| 00008720 74 61 74 65 0d 03 bc 27 20 20 20 20 20 20 20 20 |tate...' | 00008730 20 20 20 20 20 20 20 20 53 63 72 61 70 42 6c 6b | ScrapBlk| 00008740 25 21 30 3d 77 69 6e 64 6f 77 25 0d 03 bd 25 20 |%!0=window%...% | 00008750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 | S| 00008760 63 72 61 70 42 6c 6b 25 21 34 3d 69 63 6f 6e 25 |crapBlk%!4=icon%| 00008770 0d 03 be 35 20 20 20 20 20 20 20 20 20 20 20 20 |...5 | 00008780 20 20 20 20 c8 99 20 22 57 69 6d 70 5f 47 65 74 | .. "Wimp_Get| 00008790 49 63 6f 6e 53 74 61 74 65 22 2c 2c 53 63 72 61 |IconState",,Scra| 000087a0 70 42 6c 6b 25 0d 03 bf 32 20 20 20 20 20 20 20 |pBlk%...2 | 000087b0 20 20 20 20 20 20 20 20 20 c8 8e 20 28 28 53 63 | .. ((Sc| 000087c0 72 61 70 42 6c 6b 25 21 32 34 29 3e 3e 31 32 29 |rapBlk%!24)>>12)| 000087d0 20 80 20 31 35 20 ca 0d 03 c0 4d 20 20 20 20 20 | . 15 ....M | 000087e0 20 20 20 20 20 20 20 20 20 20 20 20 20 c9 20 34 | . 4| 000087f0 2c 39 20 20 20 20 20 20 3a 20 f4 20 73 65 6c 65 |,9 : . sele| 00008800 63 74 69 6e 67 20 75 73 65 6c 65 73 73 20 66 6f |cting useless fo| 00008810 72 20 74 68 65 73 65 20 62 75 74 74 6f 6e 20 74 |r these button t| 00008820 79 70 65 73 0d 03 c1 3b 20 20 20 20 20 20 20 20 |ypes...; | 00008830 20 20 20 20 20 20 20 20 20 20 c9 20 35 2c 37 2c | . 5,7,| 00008840 38 2c 31 31 20 3a 20 f4 20 73 65 6c 65 63 74 69 |8,11 : . selecti| 00008850 6e 67 20 64 6f 6e 65 20 62 79 20 77 69 6d 70 0d |ng done by wimp.| 00008860 03 c2 3c 20 20 20 20 20 20 20 20 20 20 20 20 20 |..< | 00008870 20 20 20 20 20 7f 20 f2 73 65 74 69 63 6f 6e 73 | . .seticons| 00008880 74 61 74 65 28 77 69 6e 64 6f 77 25 2c 69 63 6f |tate(window%,ico| 00008890 6e 25 2c 31 3c 3c 32 31 2c 30 29 0d 03 c3 15 20 |n%,1<<21,0).... | 000088a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cb | .| 000088b0 0d 03 c4 13 20 20 20 20 20 20 20 20 20 20 20 20 |.... | 000088c0 20 20 cc 0d 03 c5 28 20 20 20 20 20 20 20 20 20 | ....( | 000088d0 20 20 20 20 20 20 20 f4 20 22 65 78 63 6c 75 73 | . "exclus| 000088e0 69 76 65 22 20 73 65 6c 65 63 74 0d 03 c6 2d 20 |ive" select...- | 000088f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f2 | .| 00008900 73 65 6c 5f 63 6c 65 61 72 28 77 69 6e 64 6f 77 |sel_clear(window| 00008910 25 2c 69 63 6f 6e 25 29 0d 03 c7 36 20 20 20 20 |%,icon%)...6 | 00008920 20 20 20 20 20 20 20 20 20 20 20 20 e7 20 ac 20 | . . | 00008930 a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 28 77 69 |.iconselected(wi| 00008940 6e 64 6f 77 25 2c 69 63 6f 6e 25 29 20 8c 0d 03 |ndow%,icon%) ...| 00008950 c8 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.2 | 00008960 20 20 20 20 f2 73 65 6c 65 63 74 69 63 6f 6e 28 | .selecticon(| 00008970 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 2c 31 29 |window%,icon%,1)| 00008980 0d 03 c9 15 20 20 20 20 20 20 20 20 20 20 20 20 |.... | 00008990 20 20 20 20 cd 0d 03 ca 13 20 20 20 20 20 20 20 | ..... | 000089a0 20 20 20 20 20 20 20 cd 0d 03 cb 39 20 20 20 20 | ....9 | 000089b0 20 20 20 20 20 20 20 20 20 20 e7 20 64 63 6c 69 | . dcli| 000089c0 63 6b 25 20 80 20 54 72 61 70 44 63 6c 69 63 6b |ck% . TrapDclick| 000089d0 25 20 80 20 28 62 75 74 74 6f 6e 25 3d 34 29 20 |% . (button%=4) | 000089e0 8c 0d 03 cc 2e 20 20 20 20 20 20 20 20 20 20 20 |..... | 000089f0 20 20 20 20 20 f2 69 63 65 64 5f 73 74 61 72 74 | .iced_start| 00008a00 28 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 29 0d |(window%,icon%).| 00008a10 03 cd 13 20 20 20 20 20 20 20 20 20 20 20 20 20 |... | 00008a20 20 cc 0d 03 ce 28 20 20 20 20 20 20 20 20 20 20 | ....( | 00008a30 20 20 20 20 20 20 f2 64 72 61 67 73 65 6c 65 63 | .dragselec| 00008a40 74 28 62 75 74 74 6f 6e 25 29 0d 03 cf 29 20 20 |t(button%)...) | 00008a50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f2 73 | .s| 00008a60 65 74 63 61 72 65 74 28 77 69 6e 64 6f 77 25 2c |etcaret(window%,| 00008a70 2d 31 29 0d 03 d0 13 20 20 20 20 20 20 20 20 20 |-1).... | 00008a80 20 20 20 20 20 cd 0d 03 d1 11 20 20 20 20 20 20 | ..... | 00008a90 20 20 20 20 20 20 cd 0d 03 d2 0d 20 20 20 20 20 | ..... | 00008aa0 20 20 20 cb 0d 03 d3 09 20 20 20 20 cb 0d 03 d4 | ..... ....| 00008ab0 22 20 20 c9 20 31 20 3a 20 f4 20 73 68 69 66 74 |" . 1 : . shift| 00008ac0 20 2b 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e 0d | + mouse button.| 00008ad0 03 d5 14 20 20 20 20 c8 8e 20 62 75 74 74 6f 6e |... .. button| 00008ae0 25 20 ca 0d 03 d6 0f 20 20 20 20 20 20 c9 20 31 |% ..... . 1| 00008af0 2c 34 0d 03 d7 21 20 20 20 20 20 20 20 20 f2 73 |,4...! .s| 00008b00 65 74 63 61 72 65 74 28 77 69 6e 64 6f 77 25 2c |etcaret(window%,| 00008b10 2d 31 29 0d 03 d8 31 20 20 20 20 20 20 20 20 f2 |-1)...1 .| 00008b20 73 74 61 72 74 69 63 6f 6e 64 72 61 67 28 62 75 |starticondrag(bu| 00008b30 74 74 6f 6e 25 2c 77 69 6e 64 6f 77 25 2c 69 63 |tton%,window%,ic| 00008b40 6f 6e 25 29 0d 03 d9 0d 20 20 20 20 20 20 c9 20 |on%).... . | 00008b50 32 0d 03 da 26 20 20 20 20 20 20 20 20 f2 69 63 |2...& .ic| 00008b60 65 64 5f 73 74 61 72 74 28 77 69 6e 64 6f 77 25 |ed_start(window%| 00008b70 2c 69 63 6f 6e 25 29 0d 03 db 09 20 20 20 20 cb |,icon%).... .| 00008b80 0d 03 dc 21 20 20 c9 20 32 20 3a 20 f4 20 63 74 |...! . 2 : . ct| 00008b90 72 6c 20 2b 20 6d 6f 75 73 65 20 62 75 74 74 6f |rl + mouse butto| 00008ba0 6e 0d 03 dd 14 20 20 20 20 c8 8e 20 62 75 74 74 |n.... .. butt| 00008bb0 6f 6e 25 20 ca 0d 03 de 0d 20 20 20 20 20 20 c9 |on% ..... .| 00008bc0 20 31 0d 03 df 21 20 20 20 20 20 20 20 20 f2 73 | 1...! .s| 00008bd0 65 74 63 61 72 65 74 28 77 69 6e 64 6f 77 25 2c |etcaret(window%,| 00008be0 2d 31 29 0d 03 e0 27 20 20 20 20 20 20 20 20 f2 |-1)...' .| 00008bf0 73 74 61 72 74 77 69 6e 64 6f 77 72 65 73 69 7a |startwindowresiz| 00008c00 65 28 77 69 6e 64 6f 77 25 29 0d 03 e1 0d 20 20 |e(window%).... | 00008c10 20 20 20 20 c9 20 32 0d 03 e2 18 20 20 20 20 20 | . 2.... | 00008c20 20 20 20 e7 20 69 63 6f 6e 25 3d 2d 34 20 8c 0d | . icon%=-4 ..| 00008c30 03 e3 28 20 20 20 20 20 20 20 20 20 20 f2 69 63 |..( .ic| 00008c40 65 64 5f 73 74 61 72 74 28 77 69 6e 64 6f 77 25 |ed_start(window%| 00008c50 2c 69 63 6f 6e 25 29 0d 03 e4 0d 20 20 20 20 20 |,icon%).... | 00008c60 20 20 20 cc 0d 03 e5 25 20 20 20 20 20 20 20 20 | ....% | 00008c70 20 20 f2 77 69 6e 65 64 5f 66 69 6c 6c 77 69 6e | .wined_fillwin| 00008c80 28 77 69 6e 64 6f 77 25 29 0d 03 e6 0d 20 20 20 |(window%).... | 00008c90 20 20 20 20 20 cd 0d 03 e7 0d 20 20 20 20 20 20 | ..... | 00008ca0 c9 20 34 0d 03 e8 21 20 20 20 20 20 20 20 20 f2 |. 4...! .| 00008cb0 73 65 74 63 61 72 65 74 28 77 69 6e 64 6f 77 25 |setcaret(window%| 00008cc0 2c 2d 31 29 0d 03 e9 25 20 20 20 20 20 20 20 20 |,-1)...% | 00008cd0 f2 73 74 61 72 74 77 69 6e 64 6f 77 6d 6f 76 65 |.startwindowmove| 00008ce0 28 77 69 6e 64 6f 77 25 29 0d 03 ea 09 20 20 20 |(window%).... | 00008cf0 20 cb 0d 03 eb 20 20 20 c9 20 34 20 3a 20 f4 20 | .... . 4 : . | 00008d00 61 6c 74 20 2b 20 6d 6f 75 73 65 20 62 75 74 74 |alt + mouse butt| 00008d10 6f 6e 0d 03 ec 14 20 20 20 20 c8 8e 20 62 75 74 |on.... .. but| 00008d20 74 6f 6e 25 20 ca 0d 03 ed 0d 20 20 20 20 20 20 |ton% ..... | 00008d30 c9 20 31 0d 03 ee 18 20 20 20 20 20 20 20 20 e7 |. 1.... .| 00008d40 20 69 63 6f 6e 25 3e 3d 30 20 8c 0d 03 ef 2a 20 | icon%>=0 ....* | 00008d50 20 20 20 20 20 20 20 20 20 f2 72 65 6e 75 6d 62 | .renumb| 00008d60 65 72 69 63 6f 6e 28 77 69 6e 64 6f 77 25 2c 69 |ericon(window%,i| 00008d70 63 6f 6e 25 29 0d 03 f0 2e 20 20 20 20 20 20 20 |con%).... | 00008d80 20 20 20 e7 20 4e 65 78 74 49 63 6f 6e 4e 72 25 | . NextIconNr%| 00008d90 3e 30 20 8c 20 4e 65 78 74 49 63 6f 6e 4e 72 25 |>0 . NextIconNr%| 00008da0 2d 3d 31 0d 03 f1 0d 20 20 20 20 20 20 20 20 cd |-=1.... .| 00008db0 0d 03 f2 0d 20 20 20 20 20 20 c9 20 34 0d 03 f3 |.... . 4...| 00008dc0 18 20 20 20 20 20 20 20 20 e7 20 69 63 6f 6e 25 |. . icon%| 00008dd0 3e 3d 30 20 8c 0d 03 f4 2a 20 20 20 20 20 20 20 |>=0 ....* | 00008de0 20 20 20 f2 72 65 6e 75 6d 62 65 72 69 63 6f 6e | .renumbericon| 00008df0 28 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 29 0d |(window%,icon%).| 00008e00 03 f5 1c 20 20 20 20 20 20 20 20 20 20 4e 65 78 |... Nex| 00008e10 74 49 63 6f 6e 4e 72 25 2b 3d 31 0d 03 f6 0d 20 |tIconNr%+=1.... | 00008e20 20 20 20 20 20 20 20 cd 0d 03 f7 09 20 20 20 20 | ..... | 00008e30 cb 0d 03 f8 07 20 20 7f 0d 03 f9 2b 20 20 20 20 |..... ....+ | 00008e40 e7 20 28 62 75 74 74 6f 6e 25 3e 30 29 20 80 20 |. (button%>0) . | 00008e50 53 75 70 70 6f 72 74 49 6e 74 65 72 66 61 63 65 |SupportInterface| 00008e60 25 20 8c 0d 03 fa 26 20 20 20 20 20 20 f4 20 6d |% ....& . m| 00008e70 61 6b 65 20 49 6e 74 65 72 66 61 63 65 20 69 6e |ake Interface in| 00008e80 76 65 72 74 20 69 63 6f 6e 0d 03 fb 1d 20 20 20 |vert icon.... | 00008e90 20 20 20 53 63 72 61 70 42 6c 6b 25 21 38 3d 62 | ScrapBlk%!8=b| 00008ea0 75 74 74 6f 6e 25 0d 03 fc 1e 20 20 20 20 20 20 |utton%.... | 00008eb0 53 63 72 61 70 42 6c 6b 25 21 31 32 3d 77 69 6e |ScrapBlk%!12=win| 00008ec0 64 6f 77 25 0d 03 fd 1c 20 20 20 20 20 20 53 63 |dow%.... Sc| 00008ed0 72 61 70 42 6c 6b 25 21 31 36 3d 69 63 6f 6e 25 |rapBlk%!16=icon%| 00008ee0 0d 03 fe 29 20 20 20 20 20 20 c8 99 20 22 57 69 |...) .. "Wi| 00008ef0 6d 70 5f 42 6f 72 64 65 72 49 63 6f 6e 22 2c 2c |mp_BorderIcon",,| 00008f00 53 63 72 61 70 42 6c 6b 25 0d 03 ff 1a 20 20 20 |ScrapBlk%.... | 00008f10 20 20 20 f4 20 62 61 63 6b 20 74 6f 20 6e 6f 72 | . back to nor| 00008f20 6d 61 6c 0d 04 00 17 20 20 20 20 20 20 53 63 72 |mal.... Scr| 00008f30 61 70 42 6c 6b 25 21 38 3d 30 0d 04 01 1e 20 20 |apBlk%!8=0.... | 00008f40 20 20 20 20 53 63 72 61 70 42 6c 6b 25 21 31 32 | ScrapBlk%!12| 00008f50 3d 77 69 6e 64 6f 77 25 0d 04 02 1c 20 20 20 20 |=window%.... | 00008f60 20 20 53 63 72 61 70 42 6c 6b 25 21 31 36 3d 69 | ScrapBlk%!16=i| 00008f70 63 6f 6e 25 0d 04 03 29 20 20 20 20 20 20 c8 99 |con%...) ..| 00008f80 20 22 57 69 6d 70 5f 42 6f 72 64 65 72 49 63 6f | "Wimp_BorderIco| 00008f90 6e 22 2c 2c 53 63 72 61 70 42 6c 6b 25 0d 04 04 |n",,ScrapBlk%...| 00008fa0 09 20 20 20 20 cd 0d 04 05 25 20 20 20 20 e7 20 |. ....% . | 00008fb0 28 62 75 74 74 6f 6e 25 3e 30 29 20 80 20 53 75 |(button%>0) . Su| 00008fc0 70 70 6f 72 74 41 45 48 25 20 8c 0d 04 06 1d 20 |pportAEH% ..... | 00008fd0 20 20 20 20 20 53 63 72 61 70 42 6c 6b 25 21 38 | ScrapBlk%!8| 00008fe0 3d 62 75 74 74 6f 6e 25 0d 04 07 1e 20 20 20 20 |=button%.... | 00008ff0 20 20 53 63 72 61 70 42 6c 6b 25 21 31 32 3d 77 | ScrapBlk%!12=w| 00009000 69 6e 64 6f 77 25 0d 04 08 1c 20 20 20 20 20 20 |indow%.... | 00009010 53 63 72 61 70 42 6c 6b 25 21 31 36 3d 69 63 6f |ScrapBlk%!16=ico| 00009020 6e 25 0d 04 09 28 20 20 20 20 20 20 c8 99 20 22 |n%...( .. "| 00009030 41 45 48 5f 52 65 64 72 61 77 49 63 6f 6e 22 2c |AEH_RedrawIcon",| 00009040 2c 53 63 72 61 70 42 6c 6b 25 0d 04 0a 20 20 20 |,ScrapBlk%... | 00009050 20 20 20 20 c8 99 20 22 41 45 48 5f 52 65 6c 65 | .. "AEH_Rele| 00009060 61 73 65 49 63 6f 6e 22 2c 30 0d 04 0b 09 20 20 |aseIcon",0.... | 00009070 20 20 cd 0d 04 0c 05 cb 0d 04 0d 05 e1 0d 04 0e | ..............| 00009080 04 0d 04 0f 3a dd 20 f2 63 6c 69 63 6b 28 78 70 |....:. .click(xp| 00009090 6f 73 25 2c 79 70 6f 73 25 2c 62 75 74 74 6f 6e |os%,ypos%,button| 000090a0 25 2c 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 2c |%,window%,icon%,| 000090b0 77 69 6d 70 63 6c 69 63 6b 25 29 0d 04 10 0e ea |wimpclick%).....| 000090c0 20 6e 6f 25 2c 6b 65 79 25 0d 04 11 22 4d 62 75 | no%,key%..."Mbu| 000090d0 74 74 6f 6e 73 5f 52 65 6c 65 61 73 65 64 25 3d |ttons_Released%=| 000090e0 28 62 75 74 74 6f 6e 25 3d 30 29 0d 04 12 18 54 |(button%=0)....T| 000090f0 69 6d 65 64 44 72 61 67 5f 45 6e 61 62 6c 65 64 |imedDrag_Enabled| 00009100 25 3d a3 0d 04 13 1f 6e 6f 25 3d a4 77 68 69 63 |%=.....no%=.whic| 00009110 68 74 65 6d 70 6c 61 74 65 28 77 69 6e 64 6f 77 |htemplate(window| 00009120 25 29 0d 04 14 11 e7 20 62 75 74 74 6f 6e 25 3d |%)..... button%=| 00009130 32 20 8c 0d 04 15 3e 20 20 f4 20 22 73 74 65 61 |2 ....> . "stea| 00009140 6c 22 20 63 6c 69 63 6b 73 20 77 69 74 68 20 4d |l" clicks with M| 00009150 65 6e 75 20 69 66 20 53 68 69 66 74 2c 20 43 74 |enu if Shift, Ct| 00009160 72 6c 20 6f 72 20 41 6c 74 20 70 72 65 73 73 65 |rl or Alt presse| 00009170 64 0d 04 16 20 20 20 c8 99 20 22 4f 53 5f 42 79 |d... .. "OS_By| 00009180 74 65 22 2c 31 32 31 2c 30 20 b8 20 2c 6b 65 79 |te",121,0 . ,key| 00009190 25 0d 04 17 11 20 20 e7 20 6b 65 79 25 3e 3d 33 |%.... . key%>=3| 000091a0 20 8c 0d 04 18 3d 20 20 20 20 e7 20 77 69 6d 70 | ....= . wimp| 000091b0 63 6c 69 63 6b 25 20 8c 20 f2 63 72 65 61 74 65 |click% . .create| 000091c0 6d 65 6e 75 28 78 70 6f 73 25 2c 79 70 6f 73 25 |menu(xpos%,ypos%| 000091d0 2c 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 29 0d |,window%,icon%).| 000091e0 04 19 07 20 20 cc 0d 04 1a 41 20 20 20 20 e7 20 |... ....A . | 000091f0 6e 6f 25 3e 3d 30 20 8c 20 f2 65 64 69 74 61 63 |no%>=0 . .editac| 00009200 74 69 6f 6e 28 78 70 6f 73 25 2c 79 70 6f 73 25 |tion(xpos%,ypos%| 00009210 2c 62 75 74 74 6f 6e 25 2c 77 69 6e 64 6f 77 25 |,button%,window%| 00009220 2c 69 63 6f 6e 25 29 0d 04 1b 07 20 20 cd 0d 04 |,icon%).... ...| 00009230 1c 05 cc 0d 04 1d 10 20 20 e7 20 6e 6f 25 3e 3d |....... . no%>=| 00009240 30 20 8c 0d 04 1e 36 20 20 20 20 f2 65 64 69 74 |0 ....6 .edit| 00009250 61 63 74 69 6f 6e 28 78 70 6f 73 25 2c 79 70 6f |action(xpos%,ypo| 00009260 73 25 2c 62 75 74 74 6f 6e 25 2c 77 69 6e 64 6f |s%,button%,windo| 00009270 77 25 2c 69 63 6f 6e 25 29 0d 04 1f 07 20 20 cc |w%,icon%).... .| 00009280 0d 04 20 44 20 20 20 20 e7 20 77 69 6d 70 63 6c |.. D . wimpcl| 00009290 69 63 6b 25 20 8c 20 f2 69 63 6f 6e 63 6c 69 63 |ick% . .iconclic| 000092a0 6b 28 78 70 6f 73 25 2c 79 70 6f 73 25 2c 62 75 |k(xpos%,ypos%,bu| 000092b0 74 74 6f 6e 25 2c 77 69 6e 64 6f 77 25 2c 69 63 |tton%,window%,ic| 000092c0 6f 6e 25 29 0d 04 21 07 20 20 cd 0d 04 22 05 cd |on%)..!. ..."..| 000092d0 0d 04 23 05 e1 0d 04 24 04 0d 04 25 33 dd 20 f2 |..#....$...%3. .| 000092e0 69 63 6f 6e 63 6c 69 63 6b 28 78 70 6f 73 25 2c |iconclick(xpos%,| 000092f0 79 70 6f 73 25 2c 62 75 74 74 6f 6e 25 2c 77 69 |ypos%,button%,wi| 00009300 6e 64 6f 77 25 2c 69 63 6f 6e 25 29 0d 04 26 37 |ndow%,icon%)..&7| 00009310 ea 20 73 65 6c 65 63 74 25 2c 6d 65 6e 75 25 2c |. select%,menu%,| 00009320 61 64 6a 75 73 74 25 2c 69 25 2c 6a 25 2c 78 73 |adjust%,i%,j%,xs| 00009330 69 7a 65 25 2c 79 73 69 7a 65 25 2c 75 70 25 2c |ize%,ysize%,up%,| 00009340 6c 6f 25 0d 04 27 17 73 65 6c 65 63 74 25 3d 28 |lo%..'.select%=(| 00009350 62 75 74 74 6f 6e 25 3d 34 29 0d 04 28 15 6d 65 |button%=4)..(.me| 00009360 6e 75 25 3d 28 62 75 74 74 6f 6e 25 3d 32 29 0d |nu%=(button%=2).| 00009370 04 29 17 61 64 6a 75 73 74 25 3d 28 62 75 74 74 |.).adjust%=(butt| 00009380 6f 6e 25 3d 31 29 0d 04 2a 10 c8 8e 20 77 69 6e |on%=1)..*... win| 00009390 64 6f 77 25 20 ca 0d 04 2b 0a 20 20 c9 20 2d 32 |dow% ...+. . -2| 000093a0 0d 04 2c 13 20 20 20 20 e7 20 73 65 6c 65 63 74 |..,. . select| 000093b0 25 20 8c 0d 04 2d 20 20 20 20 20 20 20 f2 6f 70 |% ...- .op| 000093c0 65 6e 77 69 6e 64 6f 77 28 54 65 6d 70 6c 57 25 |enwindow(TemplW%| 000093d0 2c 33 29 0d 04 2e 34 20 20 20 20 20 20 e7 20 49 |,3)...4 . I| 000093e0 63 49 6e 66 6f 5f 41 63 74 69 76 65 25 20 8c 20 |cInfo_Active% . | 000093f0 f2 6f 70 65 6e 77 69 6e 64 6f 77 28 49 63 49 6e |.openwindow(IcIn| 00009400 66 6f 57 25 2c 34 29 0d 04 2f 09 20 20 20 20 cd |foW%,4)../. .| 00009410 0d 04 30 0e 20 20 c9 20 49 63 45 64 57 25 0d 04 |..0. . IcEdW%..| 00009420 31 36 20 20 20 20 f2 69 63 65 64 5f 63 6c 69 63 |16 .iced_clic| 00009430 6b 28 78 70 6f 73 25 2c 79 70 6f 73 25 2c 73 65 |k(xpos%,ypos%,se| 00009440 6c 65 63 74 25 2c 61 64 6a 75 73 74 25 2c 69 63 |lect%,adjust%,ic| 00009450 6f 6e 25 29 0d 04 32 0f 20 20 c9 20 57 69 6e 45 |on%)..2. . WinE| 00009460 64 57 25 0d 04 33 37 20 20 20 20 f2 77 69 6e 65 |dW%..37 .wine| 00009470 64 5f 63 6c 69 63 6b 28 78 70 6f 73 25 2c 79 70 |d_click(xpos%,yp| 00009480 6f 73 25 2c 73 65 6c 65 63 74 25 2c 61 64 6a 75 |os%,select%,adju| 00009490 73 74 25 2c 69 63 6f 6e 25 29 0d 04 34 0e 20 20 |st%,icon%)..4. | 000094a0 c9 20 53 74 61 74 57 25 0d 04 35 15 20 20 20 20 |. StatW%..5. | 000094b0 f2 73 74 61 74 5f 66 69 6c 6c 77 69 6e 0d 04 36 |.stat_fillwin..6| 000094c0 0f 20 20 c9 20 54 65 6d 70 6c 57 25 0d 04 37 2c |. . TemplW%..7,| 000094d0 20 20 20 20 e7 20 28 73 65 6c 65 63 74 25 20 84 | . (select% .| 000094e0 20 61 64 6a 75 73 74 25 29 20 80 20 28 69 63 6f | adjust%) . (ico| 000094f0 6e 25 3e 3d 30 29 20 8c 0d 04 38 29 20 20 20 20 |n%>=0) ...8) | 00009500 20 20 53 63 72 61 70 42 6c 6b 25 21 30 3d 54 65 | ScrapBlk%!0=Te| 00009510 6d 70 6c 48 61 6e 64 6c 65 25 28 69 63 6f 6e 25 |mplHandle%(icon%| 00009520 29 0d 04 39 2d 20 20 20 20 20 20 c8 99 20 22 57 |)..9- .. "W| 00009530 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 53 74 61 |imp_GetWindowSta| 00009540 74 65 22 2c 2c 53 63 72 61 70 42 6c 6b 25 0d 04 |te",,ScrapBlk%..| 00009550 3a 24 20 20 20 20 20 20 e7 20 53 63 72 61 70 42 |:$ . ScrapB| 00009560 6c 6b 25 21 33 32 20 80 20 28 31 3c 3c 31 36 29 |lk%!32 . (1<<16)| 00009570 20 8c 0d 04 3b 21 20 20 20 20 20 20 20 20 f2 63 | ...;! .c| 00009580 6c 6f 73 65 74 65 6d 70 6c 61 74 65 28 69 63 6f |losetemplate(ico| 00009590 6e 25 29 0d 04 3c 0b 20 20 20 20 20 20 cc 0d 04 |n%)..<. ...| 000095a0 3d 20 20 20 20 20 20 20 20 20 f2 6f 70 65 6e 74 |= .opent| 000095b0 65 6d 70 6c 61 74 65 28 69 63 6f 6e 25 29 0d 04 |emplate(icon%)..| 000095c0 3e 0b 20 20 20 20 20 20 cd 0d 04 3f 26 20 20 20 |>. ...?& | 000095d0 20 20 20 f2 73 65 6c 65 63 74 69 63 6f 6e 28 54 | .selecticon(T| 000095e0 65 6d 70 6c 57 25 2c 69 63 6f 6e 25 2c 30 29 0d |emplW%,icon%,0).| 000095f0 04 40 09 20 20 20 20 cd 0d 04 41 20 20 20 20 20 |.@. ...A | 00009600 e7 20 73 65 6c 65 63 74 25 20 80 20 28 69 63 6f |. select% . (ico| 00009610 6e 25 3d 2d 31 29 20 8c 0d 04 42 20 20 20 20 20 |n%=-1) ...B | 00009620 20 20 f2 73 65 6c 5f 63 6c 65 61 72 28 54 65 6d | .sel_clear(Tem| 00009630 70 6c 57 25 2c 2d 31 29 0d 04 43 09 20 20 20 20 |plW%,-1)..C. | 00009640 cd 0d 04 44 27 20 20 20 20 e7 20 28 62 75 74 74 |...D' . (butt| 00009650 6f 6e 25 3d 31 36 29 20 84 20 28 62 75 74 74 6f |on%=16) . (butto| 00009660 6e 25 3d 36 34 29 20 8c 0d 04 45 21 20 20 20 20 |n%=64) ...E! | 00009670 20 20 f2 64 72 61 67 73 65 6c 65 63 74 28 62 75 | .dragselect(bu| 00009680 74 74 6f 6e 25 3e 3e 34 29 0d 04 46 09 20 20 20 |tton%>>4)..F. | 00009690 20 cd 0d 04 47 0e 20 20 c9 20 53 61 76 65 57 25 | ...G. . SaveW%| 000096a0 0d 04 48 12 20 20 20 20 c8 8e 20 69 63 6f 6e 25 |..H. .. icon%| 000096b0 20 ca 0d 04 49 0d 20 20 20 20 20 20 c9 20 30 0d | ...I. . 0.| 000096c0 04 4a 20 20 20 20 20 20 20 20 20 e7 20 53 61 76 |.J . Sav| 000096d0 69 6e 67 53 65 6c 65 63 74 69 6f 6e 25 20 8c 0d |ingSelection% ..| 000096e0 04 4b 24 20 20 20 20 20 20 20 20 20 20 53 65 6c |.K$ Sel| 000096f0 46 4e 61 6d 65 24 3d 24 28 46 69 6c 65 4e 61 6d |FName$=$(FileNam| 00009700 65 25 29 0d 04 4c 27 20 20 20 20 20 20 20 20 20 |e%)..L' | 00009710 20 f2 73 61 76 65 74 65 6d 70 6c 61 74 65 73 28 | .savetemplates(| 00009720 53 65 6c 46 4e 61 6d 65 24 29 0d 04 4d 0d 20 20 |SelFName$)..M. | 00009730 20 20 20 20 20 20 cc 0d 04 4e 29 20 20 20 20 20 | ...N) | 00009740 20 20 20 20 20 f2 73 65 74 6d 61 69 6e 66 6e 61 | .setmainfna| 00009750 6d 65 28 24 28 46 69 6c 65 4e 61 6d 65 25 29 29 |me($(FileName%))| 00009760 0d 04 4f 28 20 20 20 20 20 20 20 20 20 20 f2 73 |..O( .s| 00009770 61 76 65 74 65 6d 70 6c 61 74 65 73 28 4d 61 69 |avetemplates(Mai| 00009780 6e 46 4e 61 6d 65 24 29 0d 04 50 0d 20 20 20 20 |nFName$)..P. | 00009790 20 20 20 20 cd 0d 04 51 24 20 20 20 20 20 20 20 | ...Q$ | 000097a0 20 c8 99 20 22 57 69 6d 70 5f 43 72 65 61 74 65 | .. "Wimp_Create| 000097b0 4d 65 6e 75 22 2c 2c 2d 31 0d 04 52 0d 20 20 20 |Menu",,-1..R. | 000097c0 20 20 20 c9 20 32 0d 04 53 20 20 20 20 20 20 20 | . 2..S | 000097d0 20 20 e7 20 28 62 75 74 74 6f 6e 25 3e 3e 34 29 | . (button%>>4)| 000097e0 20 80 20 35 20 8c 0d 04 54 22 20 20 20 20 20 20 | . 5 ...T" | 000097f0 20 20 20 20 e7 20 53 61 76 69 6e 67 53 65 6c 65 | . SavingSele| 00009800 63 74 69 6f 6e 25 20 8c 0d 04 55 26 20 20 20 20 |ction% ...U& | 00009810 20 20 20 20 20 20 20 20 53 65 6c 46 4e 61 6d 65 | SelFName| 00009820 24 3d 24 28 46 69 6c 65 4e 61 6d 65 25 29 0d 04 |$=$(FileName%)..| 00009830 56 0f 20 20 20 20 20 20 20 20 20 20 cc 0d 04 57 |V. ...W| 00009840 2b 20 20 20 20 20 20 20 20 20 20 20 20 f2 73 65 |+ .se| 00009850 74 6d 61 69 6e 66 6e 61 6d 65 28 24 28 46 69 6c |tmainfname($(Fil| 00009860 65 4e 61 6d 65 25 29 29 0d 04 58 0f 20 20 20 20 |eName%))..X. | 00009870 20 20 20 20 20 20 cd 0d 04 59 1c 20 20 20 20 20 | ...Y. | 00009880 20 20 20 20 20 f2 73 74 61 72 74 73 61 76 65 64 | .startsaved| 00009890 72 61 67 0d 04 5a 0d 20 20 20 20 20 20 20 20 cd |rag..Z. .| 000098a0 0d 04 5b 09 20 20 20 20 cb 0d 04 5c 0f 20 20 c9 |..[. ...\. .| 000098b0 20 41 6c 69 67 6e 57 25 0d 04 5d 12 20 20 20 20 | AlignW%..]. | 000098c0 c8 8e 20 69 63 6f 6e 25 20 ca 0d 04 5e 0e 20 20 |.. icon% ...^. | 000098d0 20 20 20 20 c9 20 31 30 0d 04 5f 26 20 20 20 20 | . 10.._& | 000098e0 20 20 20 20 f2 61 6c 69 67 6e 69 63 6f 6e 73 28 | .alignicons(| 000098f0 4c 61 73 74 4d 65 6e 75 5f 57 69 6e 25 29 0d 04 |LastMenu_Win%)..| 00009900 60 34 20 20 20 20 20 20 20 20 e7 20 28 ac 20 61 |`4 . (. a| 00009910 64 6a 75 73 74 25 29 20 8c 20 c8 99 20 22 57 69 |djust%) . .. "Wi| 00009920 6d 70 5f 43 72 65 61 74 65 4d 65 6e 75 22 2c 2c |mp_CreateMenu",,| 00009930 2d 31 0d 04 61 0b 20 20 20 20 20 20 7f 0d 04 62 |-1..a. ...b| 00009940 1d 20 20 20 20 20 20 20 20 f2 61 6c 69 67 6e 5f |. .align_| 00009950 73 68 61 64 65 69 63 6f 6e 73 0d 04 63 09 20 20 |shadeicons..c. | 00009960 20 20 cb 0d 04 64 0f 20 20 c9 20 53 70 61 63 65 | ...d. . Space| 00009970 57 25 0d 04 65 12 20 20 20 20 c8 8e 20 69 63 6f |W%..e. .. ico| 00009980 6e 25 20 ca 0d 04 66 0f 20 20 20 20 20 20 c9 20 |n% ...f. . | 00009990 35 2c 37 0d 04 67 2f 20 20 20 20 20 20 20 20 53 |5,7..g/ S| 000099a0 70 61 63 65 4f 75 74 5f 53 70 61 63 65 25 3d bb |paceOut_Space%=.| 000099b0 28 24 28 49 63 6f 6e 54 65 78 74 25 28 31 38 29 |($(IconText%(18)| 000099c0 29 29 0d 04 68 25 20 20 20 20 20 20 20 20 75 70 |))..h% up| 000099d0 25 3d 28 61 64 6a 75 73 74 25 20 82 20 28 69 63 |%=(adjust% . (ic| 000099e0 6f 6e 25 3d 37 29 29 0d 04 69 3a 20 20 20 20 20 |on%=7))..i: | 000099f0 20 20 20 e7 20 a4 63 68 61 6e 67 65 76 61 72 28 | . .changevar(| 00009a00 53 70 61 63 65 4f 75 74 5f 53 70 61 63 65 25 2c |SpaceOut_Space%,| 00009a10 34 2c 75 70 25 2c 2d 35 31 32 2c 35 31 32 29 20 |4,up%,-512,512) | 00009a20 8c 0d 04 6a 31 20 20 20 20 20 20 20 20 20 20 f2 |...j1 .| 00009a30 73 65 74 69 63 6f 6e 74 65 78 74 28 31 38 2c c3 |seticontext(18,.| 00009a40 28 53 70 61 63 65 4f 75 74 5f 53 70 61 63 65 25 |(SpaceOut_Space%| 00009a50 29 29 0d 04 6b 22 20 20 20 20 20 20 20 20 20 20 |))..k" | 00009a60 f2 73 65 74 63 61 72 65 74 28 53 70 61 63 65 57 |.setcaret(SpaceW| 00009a70 25 2c 36 29 0d 04 6c 0d 20 20 20 20 20 20 20 20 |%,6)..l. | 00009a80 cd 0d 04 6d 0e 20 20 20 20 20 c9 20 34 2c 38 0d |...m. . 4,8.| 00009a90 04 6e 1d 20 20 20 20 20 20 20 20 f2 73 70 61 63 |.n. .spac| 00009aa0 65 5f 73 68 61 64 65 69 63 6f 6e 73 0d 04 6f 28 |e_shadeicons..o(| 00009ab0 20 20 20 20 20 20 20 20 e7 20 69 63 6f 6e 25 3d | . icon%=| 00009ac0 38 20 8c 20 f2 73 65 74 63 61 72 65 74 28 2d 31 |8 . .setcaret(-1| 00009ad0 2c 2d 31 29 0d 04 70 0d 20 20 20 20 20 20 c9 20 |,-1)..p. . | 00009ae0 39 0d 04 71 26 20 20 20 20 20 20 20 20 f2 73 70 |9..q& .sp| 00009af0 61 63 65 69 63 6f 6e 73 28 4c 61 73 74 4d 65 6e |aceicons(LastMen| 00009b00 75 5f 57 69 6e 25 29 0d 04 72 34 20 20 20 20 20 |u_Win%)..r4 | 00009b10 20 20 20 e7 20 28 ac 20 61 64 6a 75 73 74 25 29 | . (. adjust%)| 00009b20 20 8c 20 c8 99 20 22 57 69 6d 70 5f 43 72 65 61 | . .. "Wimp_Crea| 00009b30 74 65 4d 65 6e 75 22 2c 2c 2d 31 0d 04 73 09 20 |teMenu",,-1..s. | 00009b40 20 20 20 cb 0d 04 74 0e 20 20 c9 20 57 6f 72 6b | ...t. . Work| 00009b50 57 25 0d 04 75 15 20 20 20 20 e7 20 69 63 6f 6e |W%..u. . icon| 00009b60 25 3c 3d 32 36 20 8c 0d 04 76 2b 20 20 20 20 20 |%<=26 ...v+ | 00009b70 20 e7 20 28 69 63 6f 6e 25 3e 3d 39 29 20 80 20 | . (icon%>=9) . | 00009b80 28 28 69 63 6f 6e 25 20 83 20 33 29 3c 3e 31 29 |((icon% . 3)<>1)| 00009b90 20 8c 0d 04 77 22 20 20 20 20 20 20 20 20 f4 20 | ...w" . | 00009ba0 63 6c 69 63 6b 20 6f 6e 20 61 72 72 6f 77 20 69 |click on arrow i| 00009bb0 63 6f 6e 73 0d 04 78 29 20 20 20 20 20 20 20 20 |cons..x) | 00009bc0 75 70 25 3d 28 28 69 63 6f 6e 25 20 83 20 33 29 |up%=((icon% . 3)| 00009bd0 3d 32 29 20 82 20 61 64 6a 75 73 74 25 0d 04 79 |=2) . adjust%..y| 00009be0 1c 20 20 20 20 20 20 20 20 69 25 3d 28 69 63 6f |. i%=(ico| 00009bf0 6e 25 2d 39 29 20 81 20 33 0d 04 7a 25 20 20 20 |n%-9) . 3..z% | 00009c00 20 20 20 20 20 6a 25 3d bb 28 24 28 49 63 6f 6e | j%=.($(Icon| 00009c10 54 65 78 74 25 28 31 32 2b 69 25 29 29 29 0d 04 |Text%(12+i%)))..| 00009c20 7b 14 20 20 20 20 20 20 20 20 e7 20 69 25 3c 32 |{. . i%<2| 00009c30 20 8c 0d 04 7c 18 20 20 20 20 20 20 20 20 20 20 | ...|. | 00009c40 6c 6f 25 3d 2d 31 30 30 30 30 0d 04 7d 0d 20 20 |lo%=-10000..}. | 00009c50 20 20 20 20 20 20 cc 0d 04 7e 37 20 20 20 20 20 | ...~7 | 00009c60 20 20 20 20 20 6c 6f 25 3d 30 20 3a 20 f4 20 22 | lo%=0 : . "| 00009c70 73 69 7a 65 22 20 66 69 65 6c 64 2c 20 63 61 6e |size" field, can| 00009c80 27 74 20 62 65 20 6e 65 67 61 74 69 76 65 0d 04 |'t be negative..| 00009c90 7f 0d 20 20 20 20 20 20 20 20 cd 0d 04 80 2e 20 |.. ..... | 00009ca0 20 20 20 20 20 20 20 e7 20 a4 63 68 61 6e 67 65 | . .change| 00009cb0 76 61 72 28 6a 25 2c 34 2c 75 70 25 2c 6c 6f 25 |var(j%,4,up%,lo%| 00009cc0 2c 31 30 30 30 30 29 20 8c 0d 04 81 27 20 20 20 |,10000) ....' | 00009cd0 20 20 20 20 20 20 20 f2 73 65 74 69 63 6f 6e 74 | .seticont| 00009ce0 65 78 74 28 31 32 2b 69 25 2c c3 28 6a 25 29 29 |ext(12+i%,.(j%))| 00009cf0 0d 04 82 27 20 20 20 20 20 20 20 20 20 20 f2 73 |...' .s| 00009d00 65 74 63 61 72 65 74 28 57 6f 72 6b 57 25 2c 33 |etcaret(WorkW%,3| 00009d10 2a 69 25 2b 31 30 29 0d 04 83 0d 20 20 20 20 20 |*i%+10).... | 00009d20 20 20 20 cd 0d 04 84 0b 20 20 20 20 20 20 cd 0d | ..... ..| 00009d30 04 85 1a 20 20 20 20 cc 20 20 20 20 20 20 20 20 |... . | 00009d40 20 20 20 20 20 20 20 20 20 0d 04 86 21 20 20 20 | ...! | 00009d50 20 20 20 57 69 6e 42 6c 6b 25 21 30 3d 4c 61 73 | WinBlk%!0=Las| 00009d60 74 4d 65 6e 75 5f 57 69 6e 25 0d 04 87 2b 20 20 |tMenu_Win%...+ | 00009d70 20 20 20 20 c8 99 20 22 57 69 6d 70 5f 47 65 74 | .. "Wimp_Get| 00009d80 57 69 6e 64 6f 77 53 74 61 74 65 22 2c 2c 57 69 |WindowState",,Wi| 00009d90 6e 42 6c 6b 25 0d 04 88 14 20 20 20 20 20 20 c8 |nBlk%.... .| 00009da0 8e 20 69 63 6f 6e 25 20 ca 0d 04 89 13 20 20 20 |. icon% ..... | 00009db0 20 20 20 20 20 c9 20 32 37 2c 32 38 0d 04 8a 3f | . 27,28...?| 00009dc0 20 20 20 20 20 20 20 20 20 20 78 73 69 7a 65 25 | xsize%| 00009dd0 3d 57 69 6e 42 6c 6b 25 21 31 32 2d 57 69 6e 42 |=WinBlk%!12-WinB| 00009de0 6c 6b 25 21 34 2b 57 69 6e 42 6c 6b 25 21 32 30 |lk%!4+WinBlk%!20| 00009df0 2d 57 69 6e 42 6c 6b 25 21 34 34 0d 04 8b 3f 20 |-WinBlk%!44...? | 00009e00 20 20 20 20 20 20 20 20 20 79 73 69 7a 65 25 3d | ysize%=| 00009e10 57 69 6e 42 6c 6b 25 21 31 36 2d 57 69 6e 42 6c |WinBlk%!16-WinBl| 00009e20 6b 25 21 38 2d 57 69 6e 42 6c 6b 25 21 32 34 2b |k%!8-WinBlk%!24+| 00009e30 57 69 6e 42 6c 6b 25 21 35 36 0d 04 8c 1a 20 20 |WinBlk%!56.... | 00009e40 20 20 20 20 20 20 20 20 e7 20 69 63 6f 6e 25 3d | . icon%=| 00009e50 32 37 20 8c 0d 04 8d 2e 20 20 20 20 20 20 20 20 |27 ..... | 00009e60 20 20 20 20 f2 73 65 74 69 63 6f 6e 74 65 78 74 | .seticontext| 00009e70 28 31 32 2c c3 28 57 69 6e 42 6c 6b 25 21 34 34 |(12,.(WinBlk%!44| 00009e80 29 29 0d 04 8e 2e 20 20 20 20 20 20 20 20 20 20 |)).... | 00009e90 20 20 f2 73 65 74 69 63 6f 6e 74 65 78 74 28 31 | .seticontext(1| 00009ea0 33 2c c3 28 57 69 6e 42 6c 6b 25 21 35 36 29 29 |3,.(WinBlk%!56))| 00009eb0 0d 04 8f 2a 20 20 20 20 20 20 20 20 20 20 20 20 |...* | 00009ec0 f2 73 65 74 69 63 6f 6e 74 65 78 74 28 31 34 2c |.seticontext(14,| 00009ed0 c3 28 78 73 69 7a 65 25 29 29 0d 04 90 2a 20 20 |.(xsize%))...* | 00009ee0 20 20 20 20 20 20 20 20 20 20 f2 73 65 74 69 63 | .setic| 00009ef0 6f 6e 74 65 78 74 28 31 35 2c c3 28 79 73 69 7a |ontext(15,.(ysiz| 00009f00 65 25 29 29 0d 04 91 24 20 20 20 20 20 20 20 20 |e%))...$ | 00009f10 20 20 20 20 f2 73 65 74 63 61 72 65 74 28 57 6f | .setcaret(Wo| 00009f20 72 6b 57 25 2c 31 36 29 0d 04 92 0f 20 20 20 20 |rkW%,16).... | 00009f30 20 20 20 20 20 20 cc 0d 04 93 2a 20 20 20 20 20 | ....* | 00009f40 20 20 20 20 20 20 20 f2 73 65 74 69 63 6f 6e 74 | .seticont| 00009f50 65 78 74 28 31 36 2c c3 28 78 73 69 7a 65 25 29 |ext(16,.(xsize%)| 00009f60 29 0d 04 94 2a 20 20 20 20 20 20 20 20 20 20 20 |)...* | 00009f70 20 f2 73 65 74 69 63 6f 6e 74 65 78 74 28 31 37 | .seticontext(17| 00009f80 2c c3 28 79 73 69 7a 65 25 29 29 0d 04 95 24 20 |,.(ysize%))...$ | 00009f90 20 20 20 20 20 20 20 20 20 20 20 f2 73 65 74 63 | .setc| 00009fa0 61 72 65 74 28 57 6f 72 6b 57 25 2c 32 32 29 0d |aret(WorkW%,22).| 00009fb0 04 96 0f 20 20 20 20 20 20 20 20 20 20 cd 0d 04 |... ...| 00009fc0 97 10 20 20 20 20 20 20 20 20 c9 20 32 39 0d 04 |.. . 29..| 00009fd0 98 22 20 20 20 20 20 20 20 20 20 20 f2 73 65 74 |." .set| 00009fe0 69 63 6f 6e 74 65 78 74 28 31 32 2c 22 30 22 29 |icontext(12,"0")| 00009ff0 0d 04 99 22 20 20 20 20 20 20 20 20 20 20 f2 73 |..." .s| 0000a000 65 74 69 63 6f 6e 74 65 78 74 28 31 33 2c 22 30 |eticontext(13,"0| 0000a010 22 29 0d 04 9a 25 20 20 20 20 20 20 20 20 20 20 |")...% | 0000a020 f2 73 65 74 69 63 6f 6e 74 65 78 74 28 31 34 2c |.seticontext(14,| 0000a030 22 31 32 33 36 22 29 0d 04 9b 24 20 20 20 20 20 |"1236")...$ | 0000a040 20 20 20 20 20 f2 73 65 74 69 63 6f 6e 74 65 78 | .seticontex| 0000a050 74 28 31 35 2c 22 39 33 36 22 29 0d 04 9c 22 20 |t(15,"936")..." | 0000a060 20 20 20 20 20 20 20 20 20 f2 73 65 74 69 63 6f | .setico| 0000a070 6e 74 65 78 74 28 31 36 2c 22 30 22 29 0d 04 9d |ntext(16,"0")...| 0000a080 22 20 20 20 20 20 20 20 20 20 20 f2 73 65 74 69 |" .seti| 0000a090 63 6f 6e 74 65 78 74 28 31 37 2c 22 30 22 29 0d |context(17,"0").| 0000a0a0 04 9e 22 20 20 20 20 20 20 20 20 20 20 f2 73 65 |.." .se| 0000a0b0 74 63 61 72 65 74 28 57 6f 72 6b 57 25 2c 31 36 |tcaret(WorkW%,16| 0000a0c0 29 0d 04 9f 10 20 20 20 20 20 20 20 20 c9 20 33 |).... . 3| 0000a0d0 30 0d 04 a0 1a 20 20 20 20 20 20 20 20 20 20 f2 |0.... .| 0000a0e0 73 65 74 77 6f 72 6b 61 72 65 61 0d 04 a1 36 20 |setworkarea...6 | 0000a0f0 20 20 20 20 20 20 20 20 20 e7 20 28 ac 20 61 64 | . (. ad| 0000a100 6a 75 73 74 25 29 20 8c 20 c8 99 20 22 57 69 6d |just%) . .. "Wim| 0000a110 70 5f 43 72 65 61 74 65 4d 65 6e 75 22 2c 2c 2d |p_CreateMenu",,-| 0000a120 31 0d 04 a2 0d 20 20 20 20 20 20 20 20 7f 0d 04 |1.... ...| 0000a130 a3 0b 20 20 20 20 20 20 cb 0d 04 a4 09 20 20 20 |.. ..... | 0000a140 20 cd 0d 04 a5 11 20 20 c9 20 4f 70 74 50 61 6e | ..... . OptPan| 0000a150 65 57 25 0d 04 a6 12 20 20 20 20 c8 8e 20 69 63 |eW%.... .. ic| 0000a160 6f 6e 25 20 ca 0d 04 a7 2a 20 20 20 20 20 20 c9 |on% ....* .| 0000a170 20 38 20 20 3a 20 54 72 61 70 44 63 6c 69 63 6b | 8 : TrapDclick| 0000a180 25 3d ac 20 54 72 61 70 44 63 6c 69 63 6b 25 0d |%=. TrapDclick%.| 0000a190 04 a8 37 20 20 20 20 20 20 c9 20 39 20 20 3a 20 |..7 . 9 : | 0000a1a0 f2 73 75 70 70 6f 72 74 69 6e 74 65 72 66 61 63 |.supportinterfac| 0000a1b0 65 28 ac 20 53 75 70 70 6f 72 74 49 6e 74 65 72 |e(. SupportInter| 0000a1c0 66 61 63 65 25 29 0d 04 a9 2b 20 20 20 20 20 20 |face%)...+ | 0000a1d0 c9 20 31 30 20 3a 20 f2 73 75 70 70 6f 72 74 61 |. 10 : .supporta| 0000a1e0 65 68 28 ac 20 53 75 70 70 6f 72 74 41 45 48 25 |eh(. SupportAEH%| 0000a1f0 29 0d 04 aa 28 20 20 20 20 20 20 c9 20 31 31 20 |)...( . 11 | 0000a200 3a 20 44 75 70 6c 4e 61 6d 65 73 25 3d ac 20 44 |: DuplNames%=. D| 0000a210 75 70 6c 4e 61 6d 65 73 25 0d 04 ab 0e 20 20 20 |uplNames%.... | 0000a220 20 20 20 c9 20 31 32 0d 04 ac 1b 20 20 20 20 20 | . 12.... | 0000a230 20 20 20 48 61 74 63 68 25 3d ac 20 48 61 74 63 | Hatch%=. Hatc| 0000a240 68 25 0d 04 ad 16 20 20 20 20 20 20 20 20 f2 72 |h%.... .r| 0000a250 65 64 72 61 77 61 6c 6c 0d 04 ae 0e 20 20 20 20 |edrawall.... | 0000a260 20 20 c9 20 31 33 0d 04 af 2b 20 20 20 20 20 20 | . 13...+ | 0000a270 20 20 49 63 49 6e 66 6f 5f 41 63 74 69 76 65 25 | IcInfo_Active%| 0000a280 3d ac 20 49 63 49 6e 66 6f 5f 41 63 74 69 76 65 |=. IcInfo_Active| 0000a290 25 0d 04 b0 1e 20 20 20 20 20 20 20 20 e7 20 49 |%.... . I| 0000a2a0 63 49 6e 66 6f 5f 41 63 74 69 76 65 25 20 8c 0d |cInfo_Active% ..| 0000a2b0 04 b1 25 20 20 20 20 20 20 20 20 20 20 f2 6f 70 |..% .op| 0000a2c0 65 6e 77 69 6e 64 6f 77 28 49 63 49 6e 66 6f 57 |enwindow(IcInfoW| 0000a2d0 25 2c 34 29 0d 04 b2 0d 20 20 20 20 20 20 20 20 |%,4).... | 0000a2e0 cc 0d 04 b3 24 20 20 20 20 20 20 20 20 20 20 f2 |....$ .| 0000a2f0 63 6c 6f 73 65 77 69 6e 64 6f 77 28 49 63 49 6e |closewindow(IcIn| 0000a300 66 6f 57 25 29 0d 04 b4 0d 20 20 20 20 20 20 20 |foW%).... | 0000a310 20 cd 0d 04 b5 34 20 20 20 20 20 20 c9 20 31 34 | ....4 . 14| 0000a320 20 3a 20 53 61 76 65 5f 55 6e 73 65 6c 65 63 74 | : Save_Unselect| 0000a330 65 64 25 3d ac 20 53 61 76 65 5f 55 6e 73 65 6c |ed%=. Save_Unsel| 0000a340 65 63 74 65 64 25 0d 04 b6 30 20 20 20 20 20 20 |ected%...0 | 0000a350 c9 20 31 35 20 3a 20 44 65 6c 65 74 65 4f 75 74 |. 15 : DeleteOut| 0000a360 73 69 64 65 25 3d ac 20 44 65 6c 65 74 65 4f 75 |side%=. DeleteOu| 0000a370 74 73 69 64 65 25 0d 04 b7 30 20 20 20 20 20 20 |tside%...0 | 0000a380 c9 20 31 36 20 3a 20 47 72 69 64 5f 53 69 7a 65 |. 16 : Grid_Size| 0000a390 4c 6f 63 6b 25 3d ac 20 47 72 69 64 5f 53 69 7a |Lock%=. Grid_Siz| 0000a3a0 65 4c 6f 63 6b 25 0d 04 b8 11 20 20 20 20 20 20 |eLock%.... | 0000a3b0 c9 20 31 38 2c 32 30 0d 04 b9 26 20 20 20 20 20 |. 18,20...& | 0000a3c0 20 20 20 75 70 25 3d 28 61 64 6a 75 73 74 25 20 | up%=(adjust% | 0000a3d0 82 20 28 69 63 6f 6e 25 3d 32 30 29 29 0d 04 ba |. (icon%=20))...| 0000a3e0 44 20 20 20 20 20 20 20 20 e7 20 a4 63 68 61 6e |D . .chan| 0000a3f0 67 65 76 61 72 28 47 72 69 64 5f 53 69 7a 65 58 |gevar(Grid_SizeX| 0000a400 25 2c 50 69 78 54 6f 4f 53 5f 58 25 2c 75 70 25 |%,PixToOS_X%,up%| 0000a410 2c 50 69 78 54 6f 4f 53 5f 58 25 2c 36 34 29 20 |,PixToOS_X%,64) | 0000a420 8c 0d 04 bb 2d 20 20 20 20 20 20 20 20 20 20 f2 |....- .| 0000a430 73 65 74 69 63 6f 6e 74 65 78 74 28 32 38 2c c3 |seticontext(28,.| 0000a440 28 47 72 69 64 5f 53 69 7a 65 58 25 29 29 0d 04 |(Grid_SizeX%))..| 0000a450 bc 0d 20 20 20 20 20 20 20 20 cd 0d 04 bd 11 20 |.. ..... | 0000a460 20 20 20 20 20 c9 20 32 32 2c 32 34 0d 04 be 26 | . 22,24...&| 0000a470 20 20 20 20 20 20 20 20 75 70 25 3d 28 61 64 6a | up%=(adj| 0000a480 75 73 74 25 20 82 20 28 69 63 6f 6e 25 3d 32 34 |ust% . (icon%=24| 0000a490 29 29 0d 04 bf 44 20 20 20 20 20 20 20 20 e7 20 |))...D . | 0000a4a0 a4 63 68 61 6e 67 65 76 61 72 28 47 72 69 64 5f |.changevar(Grid_| 0000a4b0 53 69 7a 65 59 25 2c 50 69 78 54 6f 4f 53 5f 59 |SizeY%,PixToOS_Y| 0000a4c0 25 2c 75 70 25 2c 50 69 78 54 6f 4f 53 5f 59 25 |%,up%,PixToOS_Y%| 0000a4d0 2c 36 34 29 20 8c 0d 04 c0 2d 20 20 20 20 20 20 |,64) ....- | 0000a4e0 20 20 20 20 f2 73 65 74 69 63 6f 6e 74 65 78 74 | .seticontext| 0000a4f0 28 32 39 2c c3 28 47 72 69 64 5f 53 69 7a 65 59 |(29,.(Grid_SizeY| 0000a500 25 29 29 0d 04 c1 0d 20 20 20 20 20 20 20 20 cd |%)).... .| 0000a510 0d 04 c2 2e 20 20 20 20 20 20 c9 20 32 35 20 3a |.... . 25 :| 0000a520 20 47 72 69 64 5f 50 6f 73 4c 6f 63 6b 25 3d ac | Grid_PosLock%=.| 0000a530 20 47 72 69 64 5f 50 6f 73 4c 6f 63 6b 25 0d 04 | Grid_PosLock%..| 0000a540 c3 11 20 20 20 20 20 20 c9 20 32 37 2c 32 39 0d |.. . 27,29.| 0000a550 04 c4 26 20 20 20 20 20 20 20 20 75 70 25 3d 28 |..& up%=(| 0000a560 61 64 6a 75 73 74 25 20 82 20 28 69 63 6f 6e 25 |adjust% . (icon%| 0000a570 3d 32 39 29 29 0d 04 c5 43 20 20 20 20 20 20 20 |=29))...C | 0000a580 20 e7 20 a4 63 68 61 6e 67 65 76 61 72 28 47 72 | . .changevar(Gr| 0000a590 69 64 5f 50 6f 73 58 25 2c 50 69 78 54 6f 4f 53 |id_PosX%,PixToOS| 0000a5a0 5f 58 25 2c 75 70 25 2c 50 69 78 54 6f 4f 53 5f |_X%,up%,PixToOS_| 0000a5b0 58 25 2c 36 34 29 20 8c 0d 04 c6 2c 20 20 20 20 |X%,64) ...., | 0000a5c0 20 20 20 20 20 20 f2 73 65 74 69 63 6f 6e 74 65 | .seticonte| 0000a5d0 78 74 28 33 30 2c c3 28 47 72 69 64 5f 50 6f 73 |xt(30,.(Grid_Pos| 0000a5e0 58 25 29 29 0d 04 c7 0d 20 20 20 20 20 20 20 20 |X%)).... | 0000a5f0 cd 0d 04 c8 11 20 20 20 20 20 20 c9 20 33 31 2c |..... . 31,| 0000a600 33 33 0d 04 c9 26 20 20 20 20 20 20 20 20 75 70 |33...& up| 0000a610 25 3d 28 61 64 6a 75 73 74 25 20 82 20 28 69 63 |%=(adjust% . (ic| 0000a620 6f 6e 25 3d 33 33 29 29 0d 04 ca 43 20 20 20 20 |on%=33))...C | 0000a630 20 20 20 20 e7 20 a4 63 68 61 6e 67 65 76 61 72 | . .changevar| 0000a640 28 47 72 69 64 5f 50 6f 73 59 25 2c 50 69 78 54 |(Grid_PosY%,PixT| 0000a650 6f 4f 53 5f 59 25 2c 75 70 25 2c 50 69 78 54 6f |oOS_Y%,up%,PixTo| 0000a660 4f 53 5f 59 25 2c 36 34 29 20 8c 0d 04 cb 2c 20 |OS_Y%,64) ...., | 0000a670 20 20 20 20 20 20 20 20 20 f2 73 65 74 69 63 6f | .setico| 0000a680 6e 74 65 78 74 28 33 31 2c c3 28 47 72 69 64 5f |ntext(31,.(Grid_| 0000a690 50 6f 73 59 25 29 29 0d 04 cc 0d 20 20 20 20 20 |PosY%)).... | 0000a6a0 20 20 20 cd 0d 04 cd 09 20 20 20 20 cb 0d 04 ce | ..... ....| 0000a6b0 11 20 20 c9 20 4f 70 74 69 6f 6e 73 57 25 0d 04 |. . OptionsW%..| 0000a6c0 cf 12 20 20 20 20 c8 8e 20 69 63 6f 6e 25 20 ca |.. .. icon% .| 0000a6d0 0d 04 d0 0d 20 20 20 20 20 20 c9 20 30 0d 04 d1 |.... . 0...| 0000a6e0 17 20 20 20 20 20 20 20 20 f2 73 65 74 75 70 5f |. .setup_| 0000a6f0 73 61 76 65 0d 04 d2 23 20 20 20 20 20 20 20 20 |save...# | 0000a700 f2 63 6c 6f 73 65 77 69 6e 64 6f 77 28 4f 70 74 |.closewindow(Opt| 0000a710 69 6f 6e 73 57 25 29 0d 04 d3 0d 20 20 20 20 20 |ionsW%).... | 0000a720 20 c9 20 31 0d 04 d4 23 20 20 20 20 20 20 20 20 | . 1...# | 0000a730 f2 63 6c 6f 73 65 77 69 6e 64 6f 77 28 4f 70 74 |.closewindow(Opt| 0000a740 69 6f 6e 73 57 25 29 0d 04 d5 09 20 20 20 20 cb |ionsW%).... .| 0000a750 0d 04 d6 0e 20 20 c9 20 44 69 61 6c 57 25 0d 04 |.... . DialW%..| 0000a760 d7 20 20 20 20 20 c8 99 20 22 57 69 6d 70 5f 43 |. .. "Wimp_C| 0000a770 72 65 61 74 65 4d 65 6e 75 22 2c 2c 2d 31 0d 04 |reateMenu",,-1..| 0000a780 d8 1a 20 20 20 20 c8 8e 20 4c 61 73 74 44 69 61 |.. .. LastDia| 0000a790 6c 6f 67 75 65 25 20 ca 0d 04 d9 0d 20 20 20 20 |logue% ..... | 0000a7a0 20 20 c9 20 30 0d 04 da 2c 20 20 20 20 20 20 20 | . 0..., | 0000a7b0 20 f4 20 70 72 6f 67 72 61 6d 20 71 75 69 74 20 | . program quit | 0000a7c0 77 69 74 68 20 63 68 61 6e 67 65 73 20 6d 61 64 |with changes mad| 0000a7d0 65 0d 04 db 16 20 20 20 20 20 20 20 20 c8 8e 20 |e.... .. | 0000a7e0 69 63 6f 6e 25 20 ca 0d 04 dc 11 20 20 20 20 20 |icon% ..... | 0000a7f0 20 20 20 20 20 c9 20 31 0d 04 dd 32 20 20 20 20 | . 1...2 | 0000a800 20 20 20 20 20 20 20 20 c8 99 20 22 57 69 6d 70 | .. "Wimp| 0000a810 5f 47 65 74 50 6f 69 6e 74 65 72 49 6e 66 6f 22 |_GetPointerInfo"| 0000a820 2c 2c 50 74 72 49 6e 66 6f 25 0d 04 de 27 20 20 |,,PtrInfo%...' | 0000a830 20 20 20 20 20 20 20 20 20 20 24 28 46 69 6c 65 | $(File| 0000a840 4e 61 6d 65 25 29 3d 4d 61 69 6e 46 4e 61 6d 65 |Name%)=MainFName| 0000a850 24 0d 04 df 22 20 20 20 20 20 20 20 20 20 20 20 |$..." | 0000a860 20 53 61 76 69 6e 67 53 65 6c 65 63 74 69 6f 6e | SavingSelection| 0000a870 25 3d a3 0d 04 e0 20 20 20 20 20 20 20 20 20 20 |%=.... | 0000a880 20 20 20 51 75 69 74 41 66 74 65 72 53 61 76 65 | QuitAfterSave| 0000a890 25 3d b9 0d 04 e1 49 20 20 20 20 20 20 20 20 20 |%=....I | 0000a8a0 20 20 20 c8 99 20 22 57 69 6d 70 5f 43 72 65 61 | .. "Wimp_Crea| 0000a8b0 74 65 4d 65 6e 75 22 2c 2c 53 61 76 65 57 25 2c |teMenu",,SaveW%,| 0000a8c0 50 74 72 49 6e 66 6f 25 21 30 2d 31 32 36 2c 50 |PtrInfo%!0-126,P| 0000a8d0 74 72 49 6e 66 6f 25 21 34 2b 35 36 0d 04 e2 11 |trInfo%!4+56....| 0000a8e0 20 20 20 20 20 20 20 20 20 20 c9 20 32 0d 04 e3 | . 2...| 0000a8f0 1b 20 20 20 20 20 20 20 20 20 20 20 20 f2 70 72 |. .pr| 0000a900 65 71 75 69 74 28 31 29 0d 04 e4 0d 20 20 20 20 |equit(1).... | 0000a910 20 20 20 20 cb 0d 04 e5 0d 20 20 20 20 20 20 c9 | ..... .| 0000a920 20 31 0d 04 e6 2a 20 20 20 20 20 20 20 20 f4 20 | 1...* . | 0000a930 64 65 6c 65 74 65 20 61 6c 6c 20 77 69 74 68 20 |delete all with | 0000a940 63 68 61 6e 67 65 73 20 6d 61 64 65 0d 04 e7 28 |changes made...(| 0000a950 20 20 20 20 20 20 20 20 e7 20 69 63 6f 6e 25 3d | . icon%=| 0000a960 31 20 8c 20 f2 74 65 6d 70 6c 5f 64 65 6c 65 74 |1 . .templ_delet| 0000a970 65 61 6c 6c 0d 04 e8 0d 20 20 20 20 20 20 c9 20 |eall.... . | 0000a980 32 0d 04 e9 2d 20 20 20 20 20 20 20 20 f4 20 6c |2...- . l| 0000a990 6f 61 64 20 6e 65 77 20 66 69 6c 65 20 77 69 74 |oad new file wit| 0000a9a0 68 20 63 68 61 6e 67 65 73 20 6d 61 64 65 0d 04 |h changes made..| 0000a9b0 ea 17 20 20 20 20 20 20 20 20 e7 20 69 63 6f 6e |.. . icon| 0000a9c0 25 3d 31 20 8c 0d 04 eb 1e 20 20 20 20 20 20 20 |%=1 ..... | 0000a9d0 20 20 20 f2 74 65 6d 70 6c 5f 64 65 6c 65 74 65 | .templ_delete| 0000a9e0 61 6c 6c 0d 04 ec 2a 20 20 20 20 20 20 20 20 20 |all...* | 0000a9f0 20 f2 74 65 6d 70 6c 5f 6c 6f 61 64 66 69 6c 65 | .templ_loadfile| 0000aa00 28 4e 65 77 46 4e 61 6d 65 24 2c 31 29 0d 04 ed |(NewFName$,1)...| 0000aa10 26 20 20 20 20 20 20 20 20 20 20 f2 73 65 74 6d |& .setm| 0000aa20 61 69 6e 66 6e 61 6d 65 28 4e 65 77 46 4e 61 6d |ainfname(NewFNam| 0000aa30 65 24 29 0d 04 ee 0d 20 20 20 20 20 20 20 20 cd |e$).... .| 0000aa40 0d 04 ef 0d 20 20 20 20 20 20 c9 20 38 0d 04 f0 |.... . 8...| 0000aa50 31 20 20 20 20 20 20 20 20 f4 20 65 78 69 74 20 |1 . exit | 0000aa60 66 72 6f 6d 20 64 65 73 6b 74 6f 70 20 77 69 74 |from desktop wit| 0000aa70 68 20 63 68 61 6e 67 65 73 20 6d 61 64 65 0d 04 |h changes made..| 0000aa80 f1 16 20 20 20 20 20 20 20 20 c8 8e 20 69 63 6f |.. .. ico| 0000aa90 6e 25 20 ca 0d 04 f2 11 20 20 20 20 20 20 20 20 |n% ..... | 0000aaa0 20 20 c9 20 31 0d 04 f3 20 20 20 20 20 20 20 20 | . 1... | 0000aab0 20 20 20 20 20 f2 74 65 6d 70 6c 5f 64 65 6c 65 | .templ_dele| 0000aac0 74 65 61 6c 6c 0d 04 f4 41 20 20 20 20 20 20 20 |teall...A | 0000aad0 20 20 20 20 20 f4 20 72 65 73 75 6d 65 20 70 72 | . resume pr| 0000aae0 65 71 75 69 74 20 70 72 6f 63 65 64 75 72 65 20 |equit procedure | 0000aaf0 28 63 6f 64 65 20 63 6f 70 69 65 64 20 66 72 6f |(code copied fro| 0000ab00 6d 20 50 52 4d 29 0d 04 f5 35 20 20 20 20 20 20 |m PRM)...5 | 0000ab10 20 20 20 20 20 20 c8 99 20 22 57 69 6d 70 5f 47 | .. "Wimp_G| 0000ab20 65 74 43 61 72 65 74 50 6f 73 69 74 69 6f 6e 22 |etCaretPosition"| 0000ab30 2c 2c 53 63 72 61 70 42 6c 6b 25 0d 04 f6 21 20 |,,ScrapBlk%...! | 0000ab40 20 20 20 20 20 20 20 20 20 20 20 53 63 72 61 70 | Scrap| 0000ab50 42 6c 6b 25 21 32 34 3d 26 31 46 43 0d 04 f7 40 |Blk%!24=&1FC...@| 0000ab60 20 20 20 20 20 20 20 20 20 20 20 20 c8 99 20 22 | .. "| 0000ab70 57 69 6d 70 5f 53 65 6e 64 4d 65 73 73 61 67 65 |Wimp_SendMessage| 0000ab80 22 2c 38 2c 53 63 72 61 70 42 6c 6b 25 2c 50 72 |",8,ScrapBlk%,Pr| 0000ab90 65 51 75 69 74 53 65 6e 64 65 72 25 0d 04 f8 0d |eQuitSender%....| 0000aba0 20 20 20 20 20 20 20 20 cb 0d 04 f9 09 20 20 20 | ..... | 0000abb0 20 cb 0d 04 fa 05 cb 0d 04 fb 05 e1 0d 04 fc 04 | ...............| 0000abc0 0d 04 fd 35 dd 20 f2 77 69 6e 65 64 5f 63 6c 69 |...5. .wined_cli| 0000abd0 63 6b 28 78 70 6f 73 25 2c 79 70 6f 73 25 2c 73 |ck(xpos%,ypos%,s| 0000abe0 65 6c 65 63 74 25 2c 61 64 6a 75 73 74 25 2c 69 |elect%,adjust%,i| 0000abf0 63 6f 6e 25 29 0d 04 fe 12 ea 20 75 70 25 2c 69 |con%)..... up%,i| 0000ac00 25 2c 67 63 6f 6c 25 0d 04 ff 0e c8 8e 20 69 63 |%,gcol%...... ic| 0000ac10 6f 6e 25 20 ca 0d 05 00 0a 20 20 c9 20 35 33 0d |on% ..... . 53.| 0000ac20 05 01 16 20 20 20 20 f2 77 69 6e 65 64 5f 72 65 |... .wined_re| 0000ac30 61 64 77 69 6e 0d 05 02 0a 20 20 c9 20 35 34 0d |adwin.... . 54.| 0000ac40 05 03 16 20 20 20 20 f2 77 69 6e 65 64 5f 72 65 |... .wined_re| 0000ac50 61 64 77 69 6e 0d 05 04 1d 20 20 20 20 f2 63 6c |adwin.... .cl| 0000ac60 6f 73 65 77 69 6e 64 6f 77 28 57 69 6e 45 64 57 |osewindow(WinEdW| 0000ac70 25 29 0d 05 05 20 20 20 20 20 f2 73 65 74 63 61 |%)... .setca| 0000ac80 72 65 74 28 57 69 6e 45 64 5f 57 69 6e 25 2c 2d |ret(WinEd_Win%,-| 0000ac90 31 29 0d 05 06 0a 20 20 c9 20 35 35 0d 05 07 1d |1).... . 55....| 0000aca0 20 20 20 20 f2 63 6c 6f 73 65 77 69 6e 64 6f 77 | .closewindow| 0000acb0 28 57 69 6e 45 64 57 25 29 0d 05 08 20 20 20 20 |(WinEdW%)... | 0000acc0 20 f2 73 65 74 63 61 72 65 74 28 57 69 6e 45 64 | .setcaret(WinEd| 0000acd0 5f 57 69 6e 25 2c 2d 31 29 0d 05 09 0a 20 20 c9 |_Win%,-1).... .| 0000ace0 20 31 33 0d 05 0a 27 20 20 20 20 e7 20 ac 20 a4 | 13...' . . .| 0000acf0 69 63 6f 6e 73 65 6c 65 63 74 65 64 28 57 69 6e |iconselected(Win| 0000ad00 45 64 57 25 2c 32 30 29 20 8c 0d 05 0b 3b 20 20 |EdW%,20) ....; | 0000ad10 20 20 20 20 f2 73 65 6c 65 63 74 69 63 6f 6e 28 | .selecticon(| 0000ad20 57 69 6e 45 64 57 25 2c 31 34 2c a4 69 63 6f 6e |WinEdW%,14,.icon| 0000ad30 73 65 6c 65 63 74 65 64 28 57 69 6e 45 64 57 25 |selected(WinEdW%| 0000ad40 2c 31 33 29 29 0d 05 0c 09 20 20 20 20 cd 0d 05 |,13)).... ...| 0000ad50 0d 0a 20 20 c9 20 31 34 0d 05 0e 27 20 20 20 20 |.. . 14...' | 0000ad60 e7 20 ac 20 a4 69 63 6f 6e 73 65 6c 65 63 74 65 |. . .iconselecte| 0000ad70 64 28 57 69 6e 45 64 57 25 2c 32 30 29 20 8c 0d |d(WinEdW%,20) ..| 0000ad80 05 0f 3b 20 20 20 20 20 20 f2 73 65 6c 65 63 74 |..; .select| 0000ad90 69 63 6f 6e 28 57 69 6e 45 64 57 25 2c 31 33 2c |icon(WinEdW%,13,| 0000ada0 a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 28 57 69 |.iconselected(Wi| 0000adb0 6e 45 64 57 25 2c 31 34 29 29 0d 05 10 09 20 20 |nEdW%,14)).... | 0000adc0 20 20 cd 0d 05 11 13 20 20 c9 20 31 35 2c 31 37 | ..... . 15,17| 0000add0 2c 31 39 2c 32 30 0d 05 12 20 20 20 20 20 f2 77 |,19,20... .w| 0000ade0 69 6e 65 64 5f 73 68 61 64 65 69 63 6f 6e 73 28 |ined_shadeicons(| 0000adf0 69 63 6f 6e 25 29 0d 05 13 1f 20 20 c9 20 32 33 |icon%).... . 23| 0000ae00 2c 32 37 2c 33 31 2c 33 35 2c 33 39 2c 34 33 2c |,27,31,35,39,43,| 0000ae10 34 37 2c 35 31 0d 05 14 2e 20 20 20 20 f2 63 72 |47,51.... .cr| 0000ae20 65 61 74 65 6d 65 6e 75 28 78 70 6f 73 25 2c 79 |eatemenu(xpos%,y| 0000ae30 70 6f 73 25 2c 57 69 6e 45 64 57 25 2c 69 63 6f |pos%,WinEdW%,ico| 0000ae40 6e 25 29 0d 05 15 0d 20 20 c9 20 32 32 2c 32 34 |n%).... . 22,24| 0000ae50 0d 05 16 22 20 20 20 20 75 70 25 3d 28 61 64 6a |..." up%=(adj| 0000ae60 75 73 74 25 20 82 20 28 69 63 6f 6e 25 3d 32 34 |ust% . (icon%=24| 0000ae70 29 29 0d 05 17 30 20 20 20 20 e7 20 a4 63 68 61 |))...0 . .cha| 0000ae80 6e 67 65 76 61 72 28 57 69 6e 45 64 5f 42 75 74 |ngevar(WinEd_But| 0000ae90 74 6f 6e 25 2c 31 2c 75 70 25 2c 30 2c 31 35 29 |ton%,1,up%,0,15)| 0000aea0 20 8c 0d 05 18 38 20 20 20 20 20 20 f2 73 65 74 | ....8 .set| 0000aeb0 69 63 6f 6e 74 65 78 74 28 36 2c 24 28 57 69 6e |icontext(6,$(Win| 0000aec0 42 75 74 74 6f 6e 25 2b 32 30 2a 57 69 6e 45 64 |Button%+20*WinEd| 0000aed0 5f 42 75 74 74 6f 6e 25 29 29 0d 05 19 09 20 20 |_Button%)).... | 0000aee0 20 20 cd 0d 05 1a 0a 20 20 c9 20 35 36 0d 05 1b | ..... . 56...| 0000aef0 17 20 20 20 20 57 69 6e 45 64 5f 43 6f 6c 25 28 |. WinEd_Col%(| 0000af00 30 29 3d 37 0d 05 1c 17 20 20 20 20 57 69 6e 45 |0)=7.... WinE| 0000af10 64 5f 43 6f 6c 25 28 31 29 3d 32 0d 05 1d 17 20 |d_Col%(1)=2.... | 0000af20 20 20 20 57 69 6e 45 64 5f 43 6f 6c 25 28 32 29 | WinEd_Col%(2)| 0000af30 3d 37 0d 05 1e 17 20 20 20 20 57 69 6e 45 64 5f |=7.... WinEd_| 0000af40 43 6f 6c 25 28 33 29 3d 31 0d 05 1f 17 20 20 20 |Col%(3)=1.... | 0000af50 20 57 69 6e 45 64 5f 43 6f 6c 25 28 34 29 3d 33 | WinEd_Col%(4)=3| 0000af60 0d 05 20 17 20 20 20 20 57 69 6e 45 64 5f 43 6f |.. . WinEd_Co| 0000af70 6c 25 28 35 29 3d 31 0d 05 21 18 20 20 20 20 57 |l%(5)=1..!. W| 0000af80 69 6e 45 64 5f 43 6f 6c 25 28 36 29 3d 31 32 0d |inEd_Col%(6)=12.| 0000af90 05 22 12 20 20 20 20 e3 20 69 25 3d 30 20 b8 20 |.". . i%=0 . | 0000afa0 36 0d 05 23 2c 20 20 20 20 20 20 f2 73 65 74 63 |6..#, .setc| 0000afb0 6f 6c 6f 75 72 62 6f 78 28 32 2b 69 25 2c 57 69 |olourbox(2+i%,Wi| 0000afc0 6e 45 64 5f 43 6f 6c 25 28 69 25 29 29 0d 05 24 |nEd_Col%(i%))..$| 0000afd0 0c 20 20 20 20 ed 20 69 25 0d 05 25 07 20 20 7f |. . i%..%. .| 0000afe0 0d 05 26 37 20 20 20 20 e7 20 28 69 63 6f 6e 25 |..&7 . (icon%| 0000aff0 3e 3d 32 36 29 20 80 20 28 69 63 6f 6e 25 3c 3d |>=26) . (icon%<=| 0000b000 35 32 29 20 80 20 28 28 69 63 6f 6e 25 20 83 20 |52) . ((icon% . | 0000b010 32 29 3d 30 29 20 8c 0d 05 27 27 20 20 20 20 20 |2)=0) ...'' | 0000b020 20 75 70 25 3d 28 28 69 63 6f 6e 25 20 83 20 34 | up%=((icon% . 4| 0000b030 29 3d 30 29 20 82 20 61 64 6a 75 73 74 25 0d 05 |)=0) . adjust%..| 0000b040 28 1b 20 20 20 20 20 20 69 25 3d 28 69 63 6f 6e |(. i%=(icon| 0000b050 25 2d 32 36 29 20 81 20 34 0d 05 29 28 20 20 20 |%-26) . 4..)( | 0000b060 20 20 20 67 63 6f 6c 25 3d a4 69 63 6f 6e 73 65 | gcol%=.iconse| 0000b070 6c 65 63 74 65 64 28 57 69 6e 45 64 57 25 2c 39 |lected(WinEdW%,9| 0000b080 29 0d 05 2a 3b 20 20 20 20 20 20 f2 63 68 61 6e |)..*; .chan| 0000b090 67 65 63 6f 6c 6f 75 72 62 6f 78 28 32 2b 69 25 |gecolourbox(2+i%| 0000b0a0 2c 57 69 6e 45 64 5f 43 6f 6c 25 28 69 25 29 2c |,WinEd_Col%(i%),| 0000b0b0 31 2c 75 70 25 2c 67 63 6f 6c 25 29 0d 05 2b 09 |1,up%,gcol%)..+.| 0000b0c0 20 20 20 20 cd 0d 05 2c 05 cb 0d 05 2d 05 e1 0d | ...,....-...| 0000b0d0 05 2e 04 0d 05 2f 34 dd 20 f2 69 63 65 64 5f 63 |...../4. .iced_c| 0000b0e0 6c 69 63 6b 28 78 70 6f 73 25 2c 79 70 6f 73 25 |lick(xpos%,ypos%| 0000b0f0 2c 73 65 6c 65 63 74 25 2c 61 64 6a 75 73 74 25 |,select%,adjust%| 0000b100 2c 69 63 6f 6e 25 29 0d 05 30 0c ea 20 75 70 25 |,icon%)..0.. up%| 0000b110 2c 6c 25 0d 05 31 0e c8 8e 20 69 63 6f 6e 25 20 |,l%..1... icon% | 0000b120 ca 0d 05 32 09 20 20 c9 20 34 0d 05 33 2e 20 20 |...2. . 4..3. | 0000b130 20 20 e7 20 61 64 6a 75 73 74 25 20 80 20 a4 69 | . adjust% . .i| 0000b140 63 6f 6e 73 65 6c 65 63 74 65 64 28 49 63 45 64 |conselected(IcEd| 0000b150 57 25 2c 31 34 29 20 8c 0d 05 34 2f 20 20 20 20 |W%,14) ...4/ | 0000b160 20 20 f4 20 6d 69 6e 69 6d 69 7a 65 20 6e 75 6d | . minimize num| 0000b170 62 65 72 20 69 6e 20 27 4d 61 78 20 73 69 7a 65 |ber in 'Max size| 0000b180 27 20 66 69 65 6c 64 0d 05 35 26 20 20 20 20 20 |' field..5& | 0000b190 20 e7 20 a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 | . .iconselected| 0000b1a0 28 49 63 45 64 57 25 2c 31 32 29 20 8c 0d 05 36 |(IcEdW%,12) ...6| 0000b1b0 23 20 20 20 20 20 20 20 20 20 20 6c 25 3d a9 28 |# l%=.(| 0000b1c0 24 28 49 63 6f 6e 54 65 78 74 25 28 30 29 29 29 |$(IconText%(0)))| 0000b1d0 0d 05 37 0b 20 20 20 20 20 20 cc 0d 05 38 28 20 |..7. ...8( | 0000b1e0 20 20 20 20 20 20 20 e7 20 a4 69 63 6f 6e 73 65 | . .iconse| 0000b1f0 6c 65 63 74 65 64 28 49 63 45 64 57 25 2c 31 33 |lected(IcEdW%,13| 0000b200 29 20 8c 0d 05 39 23 20 20 20 20 20 20 20 20 20 |) ...9# | 0000b210 20 6c 25 3d a9 28 24 28 49 63 6f 6e 54 65 78 74 | l%=.($(IconText| 0000b220 25 28 31 29 29 29 0d 05 3a 0d 20 20 20 20 20 20 |%(1)))..:. | 0000b230 20 20 cd 0d 05 3b 0b 20 20 20 20 20 20 cd 0d 05 | ...;. ...| 0000b240 3c 21 20 20 20 20 20 20 f2 73 65 74 69 63 6f 6e |<! .seticon| 0000b250 74 65 78 74 28 33 2c c3 28 6c 25 2b 31 29 29 0d |text(3,.(l%+1)).| 0000b260 05 3d 09 20 20 20 20 cd 0d 05 3e 09 20 20 c9 20 |.=. ...>. . | 0000b270 39 0d 05 3f 19 20 20 20 20 f2 69 63 65 64 5f 72 |9..?. .iced_r| 0000b280 65 61 64 77 69 6e 28 2d 31 29 0d 05 40 0a 20 20 |eadwin(-1)..@. | 0000b290 c9 20 31 30 0d 05 41 19 20 20 20 20 f2 69 63 65 |. 10..A. .ice| 0000b2a0 64 5f 72 65 61 64 77 69 6e 28 2d 31 29 0d 05 42 |d_readwin(-1)..B| 0000b2b0 1c 20 20 20 20 f2 63 6c 6f 73 65 77 69 6e 64 6f |. .closewindo| 0000b2c0 77 28 49 63 45 64 57 25 29 0d 05 43 1f 20 20 20 |w(IcEdW%)..C. | 0000b2d0 20 f2 73 65 74 63 61 72 65 74 28 49 63 45 64 5f | .setcaret(IcEd_| 0000b2e0 57 69 6e 25 2c 2d 31 29 0d 05 44 0a 20 20 c9 20 |Win%,-1)..D. . | 0000b2f0 31 31 0d 05 45 1c 20 20 20 20 f2 63 6c 6f 73 65 |11..E. .close| 0000b300 77 69 6e 64 6f 77 28 49 63 45 64 57 25 29 0d 05 |window(IcEdW%)..| 0000b310 46 1f 20 20 20 20 f2 73 65 74 63 61 72 65 74 28 |F. .setcaret(| 0000b320 49 63 45 64 5f 57 69 6e 25 2c 2d 31 29 0d 05 47 |IcEd_Win%,-1)..G| 0000b330 16 20 20 c9 20 31 32 2c 31 33 2c 31 34 2c 34 31 |. . 12,13,14,41| 0000b340 2c 35 33 0d 05 48 1f 20 20 20 20 f2 69 63 65 64 |,53..H. .iced| 0000b350 5f 73 68 61 64 65 69 63 6f 6e 73 28 69 63 6f 6e |_shadeicons(icon| 0000b360 25 29 0d 05 49 1f 20 20 c9 20 32 38 2c 33 31 2c |%)..I. . 28,31,| 0000b370 33 34 2c 33 37 2c 34 35 2c 34 36 2c 34 38 2c 35 |34,37,45,46,48,5| 0000b380 31 0d 05 4a 2d 20 20 20 20 f2 63 72 65 61 74 65 |1..J- .create| 0000b390 6d 65 6e 75 28 78 70 6f 73 25 2c 79 70 6f 73 25 |menu(xpos%,ypos%| 0000b3a0 2c 49 63 45 64 57 25 2c 69 63 6f 6e 25 29 0d 05 |,IcEdW%,icon%)..| 0000b3b0 4b 0d 20 20 c9 20 32 37 2c 32 39 0d 05 4c 22 20 |K. . 27,29..L" | 0000b3c0 20 20 20 75 70 25 3d 28 61 64 6a 75 73 74 25 20 | up%=(adjust% | 0000b3d0 82 20 28 69 63 6f 6e 25 3d 32 39 29 29 0d 05 4d |. (icon%=29))..M| 0000b3e0 2f 20 20 20 20 e7 20 a4 63 68 61 6e 67 65 76 61 |/ . .changeva| 0000b3f0 72 28 49 63 45 64 5f 42 75 74 74 6f 6e 25 2c 31 |r(IcEd_Button%,1| 0000b400 2c 75 70 25 2c 30 2c 31 35 29 20 8c 0d 05 4e 36 |,up%,0,15) ...N6| 0000b410 20 20 20 20 20 20 f2 73 65 74 69 63 6f 6e 74 65 | .seticonte| 0000b420 78 74 28 34 2c 24 28 49 63 42 75 74 74 6f 6e 25 |xt(4,$(IcButton%| 0000b430 2b 32 30 2a 49 63 45 64 5f 42 75 74 74 6f 6e 25 |+20*IcEd_Button%| 0000b440 29 29 0d 05 4f 09 20 20 20 20 cd 0d 05 50 0d 20 |))..O. ...P. | 0000b450 20 c9 20 33 30 2c 33 32 0d 05 51 22 20 20 20 20 | . 30,32..Q" | 0000b460 75 70 25 3d 28 61 64 6a 75 73 74 25 20 82 20 28 |up%=(adjust% . (| 0000b470 69 63 6f 6e 25 3d 33 32 29 29 0d 05 52 2c 20 20 |icon%=32))..R, | 0000b480 20 20 e7 20 a4 63 68 61 6e 67 65 76 61 72 28 49 | . .changevar(I| 0000b490 63 45 64 5f 45 73 67 25 2c 31 2c 75 70 25 2c 30 |cEd_Esg%,1,up%,0| 0000b4a0 2c 33 31 29 20 8c 0d 05 53 26 20 20 20 20 20 20 |,31) ...S& | 0000b4b0 f2 73 65 74 69 63 6f 6e 74 65 78 74 28 35 2c c3 |.seticontext(5,.| 0000b4c0 28 49 63 45 64 5f 45 73 67 25 29 29 0d 05 54 09 |(IcEd_Esg%))..T.| 0000b4d0 20 20 20 20 cd 0d 05 55 0d 20 20 c9 20 33 33 2c | ...U. . 33,| 0000b4e0 33 35 0d 05 56 22 20 20 20 20 75 70 25 3d 28 61 |35..V" up%=(a| 0000b4f0 64 6a 75 73 74 25 20 82 20 28 69 63 6f 6e 25 3d |djust% . (icon%=| 0000b500 33 35 29 29 0d 05 57 2f 20 20 20 20 f2 63 68 61 |35))..W/ .cha| 0000b510 6e 67 65 63 6f 6c 6f 75 72 62 6f 78 28 30 2c 49 |ngecolourbox(0,I| 0000b520 63 45 64 5f 46 67 63 6f 6c 25 2c 31 2c 75 70 25 |cEd_Fgcol%,1,up%| 0000b530 2c 30 29 0d 05 58 0d 20 20 c9 20 33 36 2c 33 38 |,0)..X. . 36,38| 0000b540 0d 05 59 22 20 20 20 20 75 70 25 3d 28 61 64 6a |..Y" up%=(adj| 0000b550 75 73 74 25 20 82 20 28 69 63 6f 6e 25 3d 33 38 |ust% . (icon%=38| 0000b560 29 29 0d 05 5a 2f 20 20 20 20 f2 63 68 61 6e 67 |))..Z/ .chang| 0000b570 65 63 6f 6c 6f 75 72 62 6f 78 28 31 2c 49 63 45 |ecolourbox(1,IcE| 0000b580 64 5f 42 67 63 6f 6c 25 2c 31 2c 75 70 25 2c 30 |d_Bgcol%,1,up%,0| 0000b590 29 0d 05 5b 0d 20 20 c9 20 34 37 2c 34 39 0d 05 |)..[. . 47,49..| 0000b5a0 5c 3b 20 20 20 20 e7 20 28 61 64 6a 75 73 74 25 |\; . (adjust%| 0000b5b0 20 80 20 28 69 63 6f 6e 25 3d 34 37 29 29 20 84 | . (icon%=47)) .| 0000b5c0 20 28 73 65 6c 65 63 74 25 20 80 20 28 69 63 6f | (select% . (ico| 0000b5d0 6e 25 3d 34 39 29 29 20 8c 0d 05 5d 1c 20 20 20 |n%=49)) ...]. | 0000b5e0 20 20 20 e7 20 49 63 45 64 5f 58 73 69 7a 65 3c | . IcEd_Xsize<| 0000b5f0 39 39 38 20 8c 0d 05 5e 19 20 20 20 20 20 20 20 |998 ...^. | 0000b600 20 49 63 45 64 5f 58 73 69 7a 65 2b 3d 32 0d 05 | IcEd_Xsize+=2..| 0000b610 5f 2e 20 20 20 20 20 20 20 20 f2 73 65 74 69 63 |_. .setic| 0000b620 6f 6e 74 65 78 74 28 32 30 2c c0 c3 28 49 63 45 |ontext(20,..(IcE| 0000b630 64 5f 58 73 69 7a 65 29 2c 34 29 29 0d 05 60 28 |d_Xsize),4))..`(| 0000b640 20 20 20 20 20 20 20 20 e7 20 a4 69 63 6f 6e 73 | . .icons| 0000b650 65 6c 65 63 74 65 64 28 49 63 45 64 57 25 2c 35 |elected(IcEdW%,5| 0000b660 33 29 20 8c 0d 05 61 23 20 20 20 20 20 20 20 20 |3) ...a# | 0000b670 20 20 49 63 45 64 5f 59 73 69 7a 65 3d 49 63 45 | IcEd_Ysize=IcE| 0000b680 64 5f 58 73 69 7a 65 0d 05 62 30 20 20 20 20 20 |d_Xsize..b0 | 0000b690 20 20 20 20 20 f2 73 65 74 69 63 6f 6e 74 65 78 | .seticontex| 0000b6a0 74 28 32 31 2c c0 c3 28 49 63 45 64 5f 59 73 69 |t(21,..(IcEd_Ysi| 0000b6b0 7a 65 29 2c 34 29 29 0d 05 63 0d 20 20 20 20 20 |ze),4))..c. | 0000b6c0 20 20 20 cd 0d 05 64 0b 20 20 20 20 20 20 cd 0d | ...d. ..| 0000b6d0 05 65 09 20 20 20 20 cc 0d 05 66 1a 20 20 20 20 |.e. ...f. | 0000b6e0 20 20 e7 20 49 63 45 64 5f 58 73 69 7a 65 3e 32 | . IcEd_Xsize>2| 0000b6f0 20 8c 0d 05 67 19 20 20 20 20 20 20 20 20 49 63 | ...g. Ic| 0000b700 45 64 5f 58 73 69 7a 65 2d 3d 32 0d 05 68 2e 20 |Ed_Xsize-=2..h. | 0000b710 20 20 20 20 20 20 20 f2 73 65 74 69 63 6f 6e 74 | .seticont| 0000b720 65 78 74 28 32 30 2c c0 c3 28 49 63 45 64 5f 58 |ext(20,..(IcEd_X| 0000b730 73 69 7a 65 29 2c 34 29 29 0d 05 69 28 20 20 20 |size),4))..i( | 0000b740 20 20 20 20 20 e7 20 a4 69 63 6f 6e 73 65 6c 65 | . .iconsele| 0000b750 63 74 65 64 28 49 63 45 64 57 25 2c 35 33 29 20 |cted(IcEdW%,53) | 0000b760 8c 0d 05 6a 23 20 20 20 20 20 20 20 20 20 20 49 |...j# I| 0000b770 63 45 64 5f 59 73 69 7a 65 3d 49 63 45 64 5f 58 |cEd_Ysize=IcEd_X| 0000b780 73 69 7a 65 0d 05 6b 30 20 20 20 20 20 20 20 20 |size..k0 | 0000b790 20 20 f2 73 65 74 69 63 6f 6e 74 65 78 74 28 32 | .seticontext(2| 0000b7a0 31 2c c0 c3 28 49 63 45 64 5f 59 73 69 7a 65 29 |1,..(IcEd_Ysize)| 0000b7b0 2c 34 29 29 0d 05 6c 0d 20 20 20 20 20 20 20 20 |,4))..l. | 0000b7c0 cd 0d 05 6d 0b 20 20 20 20 20 20 cd 0d 05 6e 09 |...m. ...n.| 0000b7d0 20 20 20 20 cd 0d 05 6f 0d 20 20 c9 20 35 30 2c | ...o. . 50,| 0000b7e0 35 32 0d 05 70 3b 20 20 20 20 e7 20 28 61 64 6a |52..p; . (adj| 0000b7f0 75 73 74 25 20 80 20 28 69 63 6f 6e 25 3d 35 30 |ust% . (icon%=50| 0000b800 29 29 20 84 20 28 73 65 6c 65 63 74 25 20 80 20 |)) . (select% . | 0000b810 28 69 63 6f 6e 25 3d 35 32 29 29 20 8c 0d 05 71 |(icon%=52)) ...q| 0000b820 1c 20 20 20 20 20 20 e7 20 49 63 45 64 5f 59 73 |. . IcEd_Ys| 0000b830 69 7a 65 3c 39 39 38 20 8c 0d 05 72 19 20 20 20 |ize<998 ...r. | 0000b840 20 20 20 20 20 49 63 45 64 5f 59 73 69 7a 65 2b | IcEd_Ysize+| 0000b850 3d 32 0d 05 73 2e 20 20 20 20 20 20 20 20 f2 73 |=2..s. .s| 0000b860 65 74 69 63 6f 6e 74 65 78 74 28 32 31 2c c0 c3 |eticontext(21,..| 0000b870 28 49 63 45 64 5f 59 73 69 7a 65 29 2c 34 29 29 |(IcEd_Ysize),4))| 0000b880 0d 05 74 0b 20 20 20 20 20 20 cd 0d 05 75 09 20 |..t. ...u. | 0000b890 20 20 20 cc 0d 05 76 1a 20 20 20 20 20 20 e7 20 | ...v. . | 0000b8a0 49 63 45 64 5f 59 73 69 7a 65 3e 32 20 8c 0d 05 |IcEd_Ysize>2 ...| 0000b8b0 77 19 20 20 20 20 20 20 20 20 49 63 45 64 5f 59 |w. IcEd_Y| 0000b8c0 73 69 7a 65 2d 3d 32 0d 05 78 2e 20 20 20 20 20 |size-=2..x. | 0000b8d0 20 20 20 f2 73 65 74 69 63 6f 6e 74 65 78 74 28 | .seticontext(| 0000b8e0 32 31 2c c0 c3 28 49 63 45 64 5f 59 73 69 7a 65 |21,..(IcEd_Ysize| 0000b8f0 29 2c 34 29 29 0d 05 79 0b 20 20 20 20 20 20 cd |),4))..y. .| 0000b900 0d 05 7a 09 20 20 20 20 cd 0d 05 7b 05 cb 0d 05 |..z. ...{....| 0000b910 7c 05 e1 0d 05 7d 04 0d 05 7e 14 dd 20 f2 72 65 ||....}...~.. .re| 0000b920 63 65 69 76 65 28 62 75 66 25 29 0d 05 7f 48 ea |ceive(buf%)...H.| 0000b930 20 73 65 6e 64 65 72 25 2c 72 65 66 25 2c 63 6f | sender%,ref%,co| 0000b940 64 65 25 2c 61 63 6b 63 6f 64 65 25 2c 61 63 6b |de%,ackcode%,ack| 0000b950 74 79 70 65 25 2c 66 6e 61 6d 65 24 2c 66 74 79 |type%,fname$,fty| 0000b960 70 65 25 2c 69 63 6f 6e 25 2c 6e 6f 25 2c 62 6f |pe%,icon%,no%,bo| 0000b970 6f 74 24 0d 05 80 12 73 65 6e 64 65 72 25 3d 62 |ot$....sender%=b| 0000b980 75 66 25 21 34 0d 05 81 0f 72 65 66 25 3d 62 75 |uf%!4....ref%=bu| 0000b990 66 25 21 38 0d 05 82 11 63 6f 64 65 25 3d 62 75 |f%!8....code%=bu| 0000b9a0 66 25 21 31 36 0d 05 83 43 61 63 6b 63 6f 64 65 |f%!16...Cackcode| 0000b9b0 25 3d 30 20 3a 20 f4 20 73 6f 72 74 20 6f 66 20 |%=0 : . sort of | 0000b9c0 6d 65 73 73 61 67 65 20 74 6f 20 61 63 6b 6e 6f |message to ackno| 0000b9d0 77 6c 65 64 67 65 20 74 68 69 73 20 6d 65 73 73 |wledge this mess| 0000b9e0 61 67 65 20 77 69 74 68 0d 05 84 2f 61 63 6b 74 |age with.../ackt| 0000b9f0 79 70 65 25 3d 31 37 20 3a 20 f4 20 6d 65 73 73 |ype%=17 : . mess| 0000ba00 61 67 65 20 74 79 70 65 20 6f 66 20 61 63 6b 6e |age type of ackn| 0000ba10 6f 77 6c 65 64 67 65 0d 05 85 1c e7 20 73 65 6e |owledge..... sen| 0000ba20 64 65 72 25 20 3c 3e 20 54 68 69 73 54 61 73 6b |der% <> ThisTask| 0000ba30 25 20 8c 0d 05 86 10 20 20 c8 8e 20 63 6f 64 65 |% ..... .. code| 0000ba40 25 20 ca 0d 05 87 0b 20 20 20 20 c9 20 30 0d 05 |% ..... . 0..| 0000ba50 88 1a 20 20 20 20 20 20 f4 20 27 71 75 69 74 27 |.. . 'quit'| 0000ba60 20 6d 65 73 73 61 67 65 0d 05 89 15 20 20 20 20 | message.... | 0000ba70 20 20 f2 70 72 65 71 75 69 74 28 30 29 0d 05 8a | .prequit(0)...| 0000ba80 0b 20 20 20 20 c9 20 31 0d 05 8b 15 20 20 20 20 |. . 1.... | 0000ba90 20 20 f4 20 64 61 74 61 20 73 61 76 65 0d 05 8c | . data save...| 0000baa0 1a 20 20 20 20 20 20 e7 20 62 75 66 25 21 34 30 |. . buf%!40| 0000bab0 3d 26 46 45 43 20 8c 0d 05 8d 3e 20 20 20 20 20 |=&FEC ....> | 0000bac0 20 20 20 f4 20 6f 74 68 65 72 20 61 70 70 20 73 | . other app s| 0000bad0 61 76 65 73 20 66 69 6c 65 20 74 6f 20 54 65 6d |aves file to Tem| 0000bae0 70 6c 45 64 20 28 76 69 61 20 57 69 6d 70 24 53 |plEd (via Wimp$S| 0000baf0 63 72 61 70 29 0d 05 8e 26 20 20 20 20 20 20 20 |crap)...& | 0000bb00 20 4e 65 77 4c 65 61 66 4e 61 6d 65 24 3d a4 73 | NewLeafName$=.s| 0000bb10 74 72 28 62 75 66 25 2b 34 34 29 0d 05 8f 25 20 |tr(buf%+44)...% | 0000bb20 20 20 20 20 20 20 20 24 28 62 75 66 25 2b 34 34 | $(buf%+44| 0000bb30 29 3d 22 3c 57 69 6d 70 24 53 63 72 61 70 3e 22 |)="<Wimp$Scrap>"| 0000bb40 0d 05 90 31 20 20 20 20 20 20 20 20 62 75 66 25 |...1 buf%| 0000bb50 21 33 36 3d 2d 31 20 3a 20 f4 20 73 61 76 65 64 |!36=-1 : . saved| 0000bb60 20 66 69 6c 65 20 69 73 20 22 75 6e 73 61 66 65 | file is "unsafe| 0000bb70 22 0d 05 91 16 20 20 20 20 20 20 20 20 61 63 6b |".... ack| 0000bb80 63 6f 64 65 25 3d 32 0d 05 92 0b 20 20 20 20 20 |code%=2.... | 0000bb90 20 cd 0d 05 93 0b 20 20 20 20 c9 20 32 0d 05 94 | ..... . 2...| 0000bba0 19 20 20 20 20 20 20 f4 20 64 61 74 61 20 73 61 |. . data sa| 0000bbb0 76 65 20 61 63 6b 0d 05 95 1e 20 20 20 20 20 20 |ve ack.... | 0000bbc0 66 6e 61 6d 65 24 3d a4 73 74 72 28 62 75 66 25 |fname$=.str(buf%| 0000bbd0 2b 34 34 29 0d 05 96 1e 20 20 20 20 20 20 e7 20 |+44).... . | 0000bbe0 53 61 76 69 6e 67 53 65 6c 65 63 74 69 6f 6e 25 |SavingSelection%| 0000bbf0 20 8c 0d 05 97 1c 20 20 20 20 20 20 20 20 53 65 | ..... Se| 0000bc00 6c 46 4e 61 6d 65 24 3d 66 6e 61 6d 65 24 0d 05 |lFName$=fname$..| 0000bc10 98 25 20 20 20 20 20 20 20 20 f2 73 61 76 65 74 |.% .savet| 0000bc20 65 6d 70 6c 61 74 65 73 28 53 65 6c 46 4e 61 6d |emplates(SelFNam| 0000bc30 65 24 29 0d 05 99 0b 20 20 20 20 20 20 cc 0d 05 |e$).... ...| 0000bc40 9a 38 20 20 20 20 20 20 20 20 e7 20 28 62 75 66 |.8 . (buf| 0000bc50 25 21 33 36 3c 3e 2d 31 29 20 80 20 28 66 6e 61 |%!36<>-1) . (fna| 0000bc60 6d 65 24 3c 3e 22 3c 57 69 6d 70 24 53 63 72 61 |me$<>"<Wimp$Scra| 0000bc70 70 3e 22 29 20 8c 0d 05 9b 23 20 20 20 20 20 20 |p>") ....# | 0000bc80 20 20 20 20 f2 73 65 74 6d 61 69 6e 66 6e 61 6d | .setmainfnam| 0000bc90 65 28 66 6e 61 6d 65 24 29 0d 05 9c 0d 20 20 20 |e(fname$).... | 0000bca0 20 20 20 20 20 cd 0d 05 9d 22 20 20 20 20 20 20 | ...." | 0000bcb0 20 20 f2 73 61 76 65 74 65 6d 70 6c 61 74 65 73 | .savetemplates| 0000bcc0 28 66 6e 61 6d 65 24 29 0d 05 9e 0b 20 20 20 20 |(fname$).... | 0000bcd0 20 20 cd 0d 05 9f 33 20 20 20 20 20 20 c8 99 20 | ....3 .. | 0000bce0 22 4f 53 5f 46 69 6c 65 22 2c 31 37 2c 66 6e 61 |"OS_File",17,fna| 0000bcf0 6d 65 24 20 b8 20 66 74 79 70 65 25 2c 2c 2c 2c |me$ . ftype%,,,,| 0000bd00 66 73 69 7a 65 25 0d 05 a0 16 20 20 20 20 20 20 |fsize%.... | 0000bd10 e7 20 66 74 79 70 65 25 3d 31 20 8c 0d 05 a1 16 |. ftype%=1 .....| 0000bd20 20 20 20 20 20 20 20 20 61 63 6b 63 6f 64 65 25 | ackcode%| 0000bd30 3d 33 0d 05 a2 1a 20 20 20 20 20 20 20 20 62 75 |=3.... bu| 0000bd40 66 25 21 33 36 3d 66 73 69 7a 65 25 0d 05 a3 0b |f%!36=fsize%....| 0000bd50 20 20 20 20 20 20 cd 0d 05 a4 0b 20 20 20 20 c9 | ..... .| 0000bd60 20 33 0d 05 a5 15 20 20 20 20 20 20 f4 20 64 61 | 3.... . da| 0000bd70 74 61 20 6c 6f 61 64 0d 05 a6 21 20 20 20 20 20 |ta load...! | 0000bd80 20 4e 65 77 46 4e 61 6d 65 24 3d a4 73 74 72 28 | NewFName$=.str(| 0000bd90 62 75 66 25 2b 34 34 29 0d 05 a7 16 20 20 20 20 |buf%+44).... | 0000bda0 20 20 c8 8e 20 62 75 66 25 21 34 30 20 ca 0d 05 | .. buf%!40 ...| 0000bdb0 a8 12 20 20 20 20 20 20 20 20 c9 20 26 46 45 43 |.. . &FEC| 0000bdc0 0d 05 a9 1a 20 20 20 20 20 20 20 20 20 20 c8 8e |.... ..| 0000bdd0 20 62 75 66 25 21 32 30 20 ca 0d 05 aa 19 20 20 | buf%!20 ..... | 0000bde0 20 20 20 20 20 20 20 20 20 20 c9 20 54 65 6d 70 | . Temp| 0000bdf0 6c 57 25 0d 05 ab 2d 20 20 20 20 20 20 20 20 20 |lW%...- | 0000be00 20 20 20 20 20 f2 73 65 74 63 68 61 6e 67 65 64 | .setchanged| 0000be10 28 4e 72 54 65 6d 70 6c 61 74 65 73 25 3e 30 29 |(NrTemplates%>0)| 0000be20 0d 05 ac 2e 20 20 20 20 20 20 20 20 20 20 20 20 |.... | 0000be30 20 20 f2 74 65 6d 70 6c 5f 6c 6f 61 64 66 69 6c | .templ_loadfil| 0000be40 65 28 4e 65 77 46 4e 61 6d 65 24 2c 30 29 0d 05 |e(NewFName$,0)..| 0000be50 ad 1c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.. | 0000be60 61 63 6b 63 6f 64 65 25 3d 34 0d 05 ae 14 20 20 |ackcode%=4.... | 0000be70 20 20 20 20 20 20 20 20 20 20 c9 20 2d 32 0d 05 | . -2..| 0000be80 af 26 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.& | 0000be90 e7 20 62 75 66 25 21 32 34 3d 42 61 72 49 63 6f |. buf%!24=BarIco| 0000bea0 6e 25 20 8c 0d 05 b0 24 20 20 20 20 20 20 20 20 |n% ....$ | 0000beb0 20 20 20 20 20 20 20 20 e7 20 43 68 61 6e 67 65 | . Change| 0000bec0 73 4d 61 64 65 25 20 8c 0d 05 b1 28 20 20 20 20 |sMade% ....( | 0000bed0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f2 64 | .d| 0000bee0 69 61 6c 6f 67 75 65 28 32 2c 22 22 2c 22 22 29 |ialogue(2,"","")| 0000bef0 0d 05 b2 15 20 20 20 20 20 20 20 20 20 20 20 20 |.... | 0000bf00 20 20 20 20 cc 0d 05 b3 26 20 20 20 20 20 20 20 | ....& | 0000bf10 20 20 20 20 20 20 20 20 20 20 20 f2 74 65 6d 70 | .temp| 0000bf20 6c 5f 64 65 6c 65 74 65 61 6c 6c 0d 05 b4 32 20 |l_deleteall...2 | 0000bf30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 0000bf40 20 f2 74 65 6d 70 6c 5f 6c 6f 61 64 66 69 6c 65 | .templ_loadfile| 0000bf50 28 4e 65 77 46 4e 61 6d 65 24 2c 31 29 0d 05 b5 |(NewFName$,1)...| 0000bf60 15 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 0000bf70 20 cd 0d 05 b6 13 20 20 20 20 20 20 20 20 20 20 | ..... | 0000bf80 20 20 20 20 cd 0d 05 b7 1c 20 20 20 20 20 20 20 | ..... | 0000bf90 20 20 20 20 20 20 20 61 63 6b 63 6f 64 65 25 3d | ackcode%=| 0000bfa0 34 0d 05 b8 0f 20 20 20 20 20 20 20 20 20 20 cb |4.... .| 0000bfb0 0d 05 b9 12 20 20 20 20 20 20 20 20 c9 20 26 46 |.... . &F| 0000bfc0 46 39 0d 05 ba 33 20 20 20 20 20 20 20 20 20 20 |F9...3 | 0000bfd0 e7 20 28 62 75 66 25 21 32 30 3d 2d 32 29 20 80 |. (buf%!20=-2) .| 0000bfe0 20 28 62 75 66 25 21 32 34 3d 42 61 72 49 63 6f | (buf%!24=BarIco| 0000bff0 6e 25 29 20 8c 0d 05 bb 2b 20 20 20 20 20 20 20 |n%) ....+ | 0000c000 20 20 20 20 20 f2 6c 6f 61 64 75 73 65 72 73 70 | .loadusersp| 0000c010 72 69 74 65 73 28 4e 65 77 46 4e 61 6d 65 24 29 |rites(NewFName$)| 0000c020 0d 05 bc 1a 20 20 20 20 20 20 20 20 20 20 20 20 |.... | 0000c030 61 63 6b 63 6f 64 65 25 3d 34 0d 05 bd 0f 20 20 |ackcode%=4.... | 0000c040 20 20 20 20 20 20 20 20 cd 0d 05 be 13 20 20 20 | ..... | 0000c050 20 20 20 20 20 c9 20 26 32 30 30 30 0d 05 bf 32 | . &2000...2| 0000c060 20 20 20 20 20 20 20 20 20 20 4e 65 77 46 4e 61 | NewFNa| 0000c070 6d 65 24 3d a4 73 74 72 28 62 75 66 25 2b 34 34 |me$=.str(buf%+44| 0000c080 29 2b 22 2e 54 65 6d 70 6c 61 74 65 73 22 0d 05 |)+".Templates"..| 0000c090 c0 48 20 20 20 20 20 20 20 20 20 20 e7 20 a4 66 |.H . .f| 0000c0a0 69 6c 65 65 78 69 73 74 73 28 4e 65 77 46 4e 61 |ileexists(NewFNa| 0000c0b0 6d 65 24 29 80 28 62 75 66 25 21 32 30 3d 2d 32 |me$).(buf%!20=-2| 0000c0c0 29 80 28 62 75 66 25 21 32 34 3d 42 61 72 49 63 |).(buf%!24=BarIc| 0000c0d0 6f 6e 25 29 20 8c 0d 05 c1 20 20 20 20 20 20 20 |on%) .... | 0000c0e0 20 20 20 20 20 20 e7 20 43 68 61 6e 67 65 73 4d | . ChangesM| 0000c0f0 61 64 65 25 20 8c 0d 05 c2 24 20 20 20 20 20 20 |ade% ....$ | 0000c100 20 20 20 20 20 20 20 20 f2 64 69 61 6c 6f 67 75 | .dialogu| 0000c110 65 28 32 2c 22 22 2c 22 22 29 0d 05 c3 11 20 20 |e(2,"","").... | 0000c120 20 20 20 20 20 20 20 20 20 20 cc 0d 05 c4 22 20 | ...." | 0000c130 20 20 20 20 20 20 20 20 20 20 20 20 20 f2 74 65 | .te| 0000c140 6d 70 6c 5f 64 65 6c 65 74 65 61 6c 6c 0d 05 c5 |mpl_deleteall...| 0000c150 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f2 |. .| 0000c160 74 65 6d 70 6c 5f 6c 6f 61 64 66 69 6c 65 28 4e |templ_loadfile(N| 0000c170 65 77 46 4e 61 6d 65 24 2c 31 29 0d 05 c6 11 20 |ewFName$,1).... | 0000c180 20 20 20 20 20 20 20 20 20 20 20 cd 0d 05 c7 1a | .....| 0000c190 20 20 20 20 20 20 20 20 20 20 20 20 61 63 6b 63 | ackc| 0000c1a0 6f 64 65 25 3d 34 0d 05 c8 0f 20 20 20 20 20 20 |ode%=4.... | 0000c1b0 20 20 20 20 cd 0d 05 c9 0b 20 20 20 20 20 20 cb | ..... .| 0000c1c0 0d 05 ca 0b 20 20 20 20 c9 20 35 0d 05 cb 22 20 |.... . 5..." | 0000c1d0 20 20 20 20 20 f4 20 64 6f 75 62 6c 65 2d 63 6c | . double-cl| 0000c1e0 69 63 6b 20 6f 6e 20 61 20 66 69 6c 65 0d 05 cc |ick on a file...| 0000c1f0 21 20 20 20 20 20 20 4e 65 77 46 4e 61 6d 65 24 |! NewFName$| 0000c200 3d a4 73 74 72 28 62 75 66 25 2b 34 34 29 0d 05 |=.str(buf%+44)..| 0000c210 cd 16 20 20 20 20 20 20 c8 8e 20 62 75 66 25 21 |.. .. buf%!| 0000c220 34 30 20 ca 0d 05 ce 12 20 20 20 20 20 20 20 20 |40 ..... | 0000c230 c9 20 26 46 45 43 0d 05 cf 20 20 20 20 20 20 20 |. &FEC... | 0000c240 20 20 20 20 e7 20 4e 72 54 65 6d 70 6c 61 74 65 | . NrTemplate| 0000c250 73 25 3d 30 20 8c 0d 05 d0 2c 20 20 20 20 20 20 |s%=0 ...., | 0000c260 20 20 20 20 20 20 f2 74 65 6d 70 6c 5f 6c 6f 61 | .templ_loa| 0000c270 64 66 69 6c 65 28 4e 65 77 46 4e 61 6d 65 24 2c |dfile(NewFName$,| 0000c280 31 29 0d 05 d1 1a 20 20 20 20 20 20 20 20 20 20 |1).... | 0000c290 20 20 61 63 6b 63 6f 64 65 25 3d 34 0d 05 d2 0f | ackcode%=4....| 0000c2a0 20 20 20 20 20 20 20 20 20 20 cd 0d 05 d3 0b 20 | ..... | 0000c2b0 20 20 20 20 20 cb 0d 05 d4 0b 20 20 20 20 c9 20 | ..... . | 0000c2c0 38 0d 05 d5 18 20 20 20 20 20 20 f4 20 64 65 73 |8.... . des| 0000c2d0 6b 74 6f 70 20 65 78 69 74 0d 05 d6 1a 20 20 20 |ktop exit.... | 0000c2e0 20 20 20 e7 20 43 68 61 6e 67 65 73 4d 61 64 65 | . ChangesMade| 0000c2f0 25 20 8c 0d 05 d7 16 20 20 20 20 20 20 20 20 61 |% ..... a| 0000c300 63 6b 63 6f 64 65 25 3d 38 0d 05 d8 17 20 20 20 |ckcode%=8.... | 0000c310 20 20 20 20 20 61 63 6b 74 79 70 65 25 3d 31 39 | acktype%=19| 0000c320 0d 05 d9 22 20 20 20 20 20 20 20 20 50 72 65 51 |..." PreQ| 0000c330 75 69 74 53 65 6e 64 65 72 25 3d 73 65 6e 64 65 |uitSender%=sende| 0000c340 72 25 0d 05 da 1e 20 20 20 20 20 20 20 20 f2 64 |r%.... .d| 0000c350 69 61 6c 6f 67 75 65 28 38 2c 22 22 2c 22 22 29 |ialogue(8,"","")| 0000c360 0d 05 db 0b 20 20 20 20 20 20 cd 0d 05 dc 0c 20 |.... ..... | 0000c370 20 20 20 c9 20 31 30 0d 05 dd 23 20 20 20 20 20 | . 10...# | 0000c380 20 f4 20 64 65 73 6b 74 6f 70 20 73 61 76 65 20 | . desktop save | 0000c390 28 52 69 73 63 4f 53 20 33 29 0d 05 de 35 20 20 |(RiscOS 3)...5 | 0000c3a0 20 20 20 20 62 6f 6f 74 24 3d 22 52 75 6e 20 22 | boot$="Run "| 0000c3b0 2b a4 72 65 61 64 76 61 72 76 61 6c 28 22 54 65 |+.readvarval("Te| 0000c3c0 6d 70 6c 45 64 24 44 69 72 22 29 2b bd 31 30 0d |mplEd$Dir")+.10.| 0000c3d0 05 df 2f 20 20 20 20 20 20 c8 99 20 22 4f 53 5f |../ .. "OS_| 0000c3e0 47 42 50 42 22 2c 32 2c 62 75 66 25 21 32 30 2c |GBPB",2,buf%!20,| 0000c3f0 62 6f 6f 74 24 2c a9 28 62 6f 6f 74 24 29 0d 05 |boot$,.(boot$)..| 0000c400 e0 0e 20 20 20 20 c9 20 26 35 30 32 0d 05 e1 2a |.. . &502...*| 0000c410 20 20 20 20 20 20 f4 20 72 65 71 75 65 73 74 20 | . request | 0000c420 66 72 6f 6d 20 21 48 65 6c 70 20 61 70 70 6c 69 |from !Help appli| 0000c430 63 61 74 69 6f 6e 0d 05 e2 25 20 20 20 20 20 20 |cation...% | 0000c440 6e 6f 25 3d a4 77 68 69 63 68 74 65 6d 70 6c 61 |no%=.whichtempla| 0000c450 74 65 28 62 75 66 25 21 33 32 29 0d 05 e3 17 20 |te(buf%!32).... | 0000c460 20 20 20 20 20 69 63 6f 6e 25 3d 62 75 66 25 21 | icon%=buf%!| 0000c470 33 36 0d 05 e4 24 20 20 20 20 20 20 e7 20 28 6e |36...$ . (n| 0000c480 6f 25 3e 3d 30 29 20 80 20 28 69 63 6f 6e 25 3e |o%>=0) . (icon%>| 0000c490 3d 2d 31 29 20 8c 0d 05 e5 2b 20 20 20 20 20 20 |=-1) ....+ | 0000c4a0 20 20 24 28 62 75 66 25 2b 32 30 29 3d a4 69 63 | $(buf%+20)=.ic| 0000c4b0 6f 6e 68 65 6c 70 28 6e 6f 25 2c 69 63 6f 6e 25 |onhelp(no%,icon%| 0000c4c0 29 0d 05 e6 19 20 20 20 20 20 20 20 20 61 63 6b |).... ack| 0000c4d0 63 6f 64 65 25 3d 26 35 30 33 0d 05 e7 0b 20 20 |code%=&503.... | 0000c4e0 20 20 20 20 cd 0d 05 e8 10 20 20 20 20 c9 20 26 | ..... . &| 0000c4f0 34 30 30 43 30 0d 05 e9 21 20 20 20 20 20 20 f4 |400C0...! .| 0000c500 20 61 62 6f 75 74 20 74 6f 20 6f 70 65 6e 20 73 | about to open s| 0000c510 75 62 6d 65 6e 75 0d 05 ea 18 20 20 20 20 20 20 |ubmenu.... | 0000c520 c8 8e 20 4c 61 73 74 4d 65 6e 75 25 20 ca 0d 05 |.. LastMenu% ...| 0000c530 eb 18 20 20 20 20 20 20 20 20 c9 20 54 65 6d 70 |.. . Temp| 0000c540 6c 4d 65 6e 75 25 0d 05 ec 2b 20 20 20 20 20 20 |lMenu%...+ | 0000c550 20 20 20 20 f4 20 73 65 74 20 66 69 6c 65 6e 61 | . set filena| 0000c560 6d 65 20 69 6e 20 73 61 76 65 20 77 69 6e 64 6f |me in save windo| 0000c570 77 0d 05 ed 1c 20 20 20 20 20 20 20 20 20 20 e7 |w.... .| 0000c580 20 62 75 66 25 21 33 36 3d 2d 31 20 8c 0d 05 ee | buf%!36=-1 ....| 0000c590 27 20 20 20 20 20 20 20 20 20 20 20 20 24 28 46 |' $(F| 0000c5a0 69 6c 65 4e 61 6d 65 25 29 3d 4d 61 69 6e 46 4e |ileName%)=MainFN| 0000c5b0 61 6d 65 24 0d 05 ef 22 20 20 20 20 20 20 20 20 |ame$..." | 0000c5c0 20 20 20 20 53 61 76 69 6e 67 53 65 6c 65 63 74 | SavingSelect| 0000c5d0 69 6f 6e 25 3d a3 0d 05 f0 0f 20 20 20 20 20 20 |ion%=..... | 0000c5e0 20 20 20 20 cc 0d 05 f1 26 20 20 20 20 20 20 20 | ....& | 0000c5f0 20 20 20 20 20 24 28 46 69 6c 65 4e 61 6d 65 25 | $(FileName%| 0000c600 29 3d 53 65 6c 46 4e 61 6d 65 24 0d 05 f2 22 20 |)=SelFName$..." | 0000c610 20 20 20 20 20 20 20 20 20 20 20 53 61 76 69 6e | Savin| 0000c620 67 53 65 6c 65 63 74 69 6f 6e 25 3d b9 0d 05 f3 |gSelection%=....| 0000c630 0f 20 20 20 20 20 20 20 20 20 20 cd 0d 05 f4 1f |. .....| 0000c640 20 20 20 20 20 20 20 20 20 20 f2 73 65 6c 5f 67 | .sel_g| 0000c650 65 74 28 54 65 6d 70 6c 57 25 29 0d 05 f5 30 20 |et(TemplW%)...0 | 0000c660 20 20 20 20 20 20 20 20 20 e7 20 28 62 75 66 25 | . (buf%| 0000c670 21 33 36 3d 2d 31 29 20 84 20 28 4e 72 53 65 6c |!36=-1) . (NrSel| 0000c680 65 63 74 65 64 25 3d 30 29 20 8c 0d 05 f6 29 20 |ected%=0) ....) | 0000c690 20 20 20 20 20 20 20 20 20 20 20 f4 20 74 65 6d | . tem| 0000c6a0 70 6c 61 74 65 20 6e 61 6d 65 20 74 6f 20 63 72 |plate name to cr| 0000c6b0 65 61 74 65 0d 05 f7 35 20 20 20 20 20 20 20 20 |eate...5 | 0000c6c0 20 20 20 20 c8 99 20 22 4d 65 6e 75 55 74 69 6c | .. "MenuUtil| 0000c6d0 5f 54 65 78 74 22 2c 69 74 65 6d 5f 74 65 6d 70 |_Text",item_temp| 0000c6e0 6c 6e 61 6d 65 25 2c 22 22 0d 05 f8 0f 20 20 20 |lname%,"".... | 0000c6f0 20 20 20 20 20 20 20 cc 0d 05 f9 31 20 20 20 20 | ....1 | 0000c700 20 20 20 20 20 20 20 20 f4 20 74 65 6d 70 6c 61 | . templa| 0000c710 74 65 20 6e 61 6d 65 20 74 6f 20 63 6f 70 79 20 |te name to copy | 0000c720 6f 72 20 72 65 6e 61 6d 65 0d 05 fa 50 20 20 20 |or rename...P | 0000c730 20 20 20 20 20 20 20 20 20 c8 99 20 22 4d 65 6e | .. "Men| 0000c740 75 55 74 69 6c 5f 54 65 78 74 22 2c 69 74 65 6d |uUtil_Text",item| 0000c750 5f 74 65 6d 70 6c 6e 61 6d 65 25 2c 24 28 54 65 |_templname%,$(Te| 0000c760 6d 70 6c 4e 61 6d 65 73 25 2b 32 38 2a 28 53 65 |mplNames%+28*(Se| 0000c770 6c 42 6c 6b 25 21 30 29 29 0d 05 fb 0f 20 20 20 |lBlk%!0)).... | 0000c780 20 20 20 20 20 20 20 cd 0d 05 fc 17 20 20 20 20 | ..... | 0000c790 20 20 20 20 c9 20 55 73 65 72 4d 65 6e 75 25 0d | . UserMenu%.| 0000c7a0 05 fd 2d 20 20 20 20 20 20 20 20 20 20 f4 20 66 |..- . f| 0000c7b0 69 6c 6c 20 69 63 6f 6e 73 20 69 6e 20 77 6f 72 |ill icons in wor| 0000c7c0 6b 61 72 65 61 20 77 69 6e 64 6f 77 0d 05 fe 25 |karea window...%| 0000c7d0 20 20 20 20 20 20 20 20 20 20 57 69 6e 42 6c 6b | WinBlk| 0000c7e0 25 21 30 3d 4c 61 73 74 4d 65 6e 75 5f 57 69 6e |%!0=LastMenu_Win| 0000c7f0 25 0d 05 ff 2e 20 20 20 20 20 20 20 20 20 20 c8 |%.... .| 0000c800 99 20 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f |. "Wimp_GetWindo| 0000c810 77 49 6e 66 6f 22 2c 2c 57 69 6e 42 6c 6b 25 0d |wInfo",,WinBlk%.| 0000c820 06 00 2c 20 20 20 20 20 20 20 20 20 20 24 28 49 |.., $(I| 0000c830 63 6f 6e 54 65 78 74 25 28 31 32 29 29 3d c3 28 |conText%(12))=.(| 0000c840 57 69 6e 42 6c 6b 25 21 34 34 29 0d 06 01 2c 20 |WinBlk%!44)..., | 0000c850 20 20 20 20 20 20 20 20 20 24 28 49 63 6f 6e 54 | $(IconT| 0000c860 65 78 74 25 28 31 33 29 29 3d c3 28 57 69 6e 42 |ext%(13))=.(WinB| 0000c870 6c 6b 25 21 35 36 29 0d 06 02 37 20 20 20 20 20 |lk%!56)...7 | 0000c880 20 20 20 20 20 24 28 49 63 6f 6e 54 65 78 74 25 | $(IconText%| 0000c890 28 31 34 29 29 3d c3 28 57 69 6e 42 6c 6b 25 21 |(14))=.(WinBlk%!| 0000c8a0 35 32 2d 57 69 6e 42 6c 6b 25 21 34 34 29 0d 06 |52-WinBlk%!44)..| 0000c8b0 03 37 20 20 20 20 20 20 20 20 20 20 24 28 49 63 |.7 $(Ic| 0000c8c0 6f 6e 54 65 78 74 25 28 31 35 29 29 3d c3 28 57 |onText%(15))=.(W| 0000c8d0 69 6e 42 6c 6b 25 21 35 36 2d 57 69 6e 42 6c 6b |inBlk%!56-WinBlk| 0000c8e0 25 21 34 38 29 0d 06 04 36 20 20 20 20 20 20 20 |%!48)...6 | 0000c8f0 20 20 20 24 28 49 63 6f 6e 54 65 78 74 25 28 31 | $(IconText%(1| 0000c900 36 29 29 3d c3 28 28 57 69 6e 42 6c 6b 25 21 37 |6))=.((WinBlk%!7| 0000c910 32 29 20 80 20 26 46 46 46 46 29 0d 06 05 32 20 |2) . &FFFF)...2 | 0000c920 20 20 20 20 20 20 20 20 20 24 28 49 63 6f 6e 54 | $(IconT| 0000c930 65 78 74 25 28 31 37 29 29 3d c3 28 28 57 69 6e |ext%(17))=.((Win| 0000c940 42 6c 6b 25 21 37 32 29 3e 3e 31 36 29 0d 06 06 |Blk%!72)>>16)...| 0000c950 0b 20 20 20 20 20 20 cb 0d 06 07 3a 20 20 20 20 |. ....: | 0000c960 20 20 c8 99 20 22 57 69 6d 70 5f 43 72 65 61 74 | .. "Wimp_Creat| 0000c970 65 53 75 62 4d 65 6e 75 22 2c 2c 62 75 66 25 21 |eSubMenu",,buf%!| 0000c980 32 30 2c 62 75 66 25 21 32 34 2c 62 75 66 25 21 |20,buf%!24,buf%!| 0000c990 32 38 0d 06 08 10 20 20 20 20 c9 20 26 34 30 30 |28.... . &400| 0000c9a0 43 31 0d 06 09 17 20 20 20 20 20 20 f4 20 6d 6f |C1.... . mo| 0000c9b0 64 65 20 63 68 61 6e 67 65 0d 06 0a 19 20 20 20 |de change.... | 0000c9c0 20 20 20 f2 72 65 61 64 73 63 72 65 65 6e 76 61 | .readscreenva| 0000c9d0 72 73 0d 06 0b 3d 20 20 20 20 20 20 e7 20 54 65 |rs...= . Te| 0000c9e0 6d 70 6c 57 5f 4d 61 78 43 6f 6c 25 3c 54 65 6d |mplW_MaxCol%<Tem| 0000c9f0 70 6c 57 5f 43 6f 6c 73 25 20 8c 20 f2 72 65 64 |plW_Cols% . .red| 0000ca00 65 66 69 6e 65 62 72 6f 77 73 65 72 28 b9 29 0d |efinebrowser(.).| 0000ca10 06 0c 10 20 20 20 20 c9 20 26 34 30 30 43 39 0d |... . &400C9.| 0000ca20 06 0d 31 20 20 20 20 20 20 f4 20 6d 65 6e 75 20 |..1 . menu | 0000ca30 72 65 6d 6f 76 65 64 20 77 69 74 68 20 6e 6f 20 |removed with no | 0000ca40 6d 65 6e 75 20 69 74 65 6d 20 63 68 6f 73 65 6e |menu item chosen| 0000ca50 0d 06 0e 22 20 20 20 20 20 20 e7 20 4c 61 73 74 |..." . Last| 0000ca60 4d 65 6e 75 25 3d 54 65 6d 70 6c 4d 65 6e 75 25 |Menu%=TemplMenu%| 0000ca70 20 8c 0d 06 0f 3a 20 20 20 20 20 20 20 20 e7 20 | ....: . | 0000ca80 54 65 6d 70 6c 4d 65 6e 75 5f 44 65 73 65 6c 65 |TemplMenu_Desele| 0000ca90 63 74 25 20 8c 20 f2 73 65 6c 5f 63 6c 65 61 72 |ct% . .sel_clear| 0000caa0 28 54 65 6d 70 6c 57 25 2c 2d 31 29 0d 06 10 0b |(TemplW%,-1)....| 0000cab0 20 20 20 20 20 20 cd 0d 06 11 07 20 20 cb 0d 06 | ..... ...| 0000cac0 12 15 20 20 e7 20 61 63 6b 63 6f 64 65 25 3c 3e |.. . ackcode%<>| 0000cad0 30 20 8c 0d 06 13 12 20 20 20 20 62 75 66 25 21 |0 ..... buf%!| 0000cae0 30 3d 32 35 36 0d 06 14 14 20 20 20 20 62 75 66 |0=256.... buf| 0000caf0 25 21 31 32 3d 72 65 66 25 0d 06 15 18 20 20 20 |%!12=ref%.... | 0000cb00 20 62 75 66 25 21 31 36 3d 61 63 6b 63 6f 64 65 | buf%!16=ackcode| 0000cb10 25 0d 06 16 2d 20 20 20 20 c8 99 20 22 57 69 6d |%...- .. "Wim| 0000cb20 70 5f 53 65 6e 64 4d 65 73 73 61 67 65 22 2c 31 |p_SendMessage",1| 0000cb30 37 2c 62 75 66 25 2c 73 65 6e 64 65 72 25 0d 06 |7,buf%,sender%..| 0000cb40 17 07 20 20 cd 0d 06 18 05 cd 0d 06 19 05 e1 0d |.. ............| 0000cb50 06 1a 04 0d 06 1b 16 dd 20 f2 72 65 64 72 61 77 |........ .redraw| 0000cb60 28 68 61 6e 64 6c 65 25 29 0d 06 1c 1d ea 20 6d |(handle%)..... m| 0000cb70 6f 72 65 25 2c 77 69 6e 30 78 25 2c 77 69 6e 30 |ore%,win0x%,win0| 0000cb80 79 25 2c 64 78 25 0d 06 1d 29 ea 20 78 73 74 61 |y%,dx%...). xsta| 0000cb90 72 74 25 2c 68 65 69 67 68 74 25 2c 78 63 6f 72 |rt%,height%,xcor| 0000cba0 72 25 2c 79 63 6f 72 72 25 2c 78 25 2c 79 25 0d |r%,ycorr%,x%,y%.| 0000cbb0 06 1e 0a 64 78 25 3d 34 38 0d 06 1f 12 42 6c 6b |...dx%=48....Blk| 0000cbc0 25 21 30 3d 68 61 6e 64 6c 65 25 0d 06 20 28 c8 |%!0=handle%.. (.| 0000cbd0 99 20 22 57 69 6d 70 5f 52 65 64 72 61 77 57 69 |. "Wimp_RedrawWi| 0000cbe0 6e 64 6f 77 22 2c 2c 42 6c 6b 25 20 b8 20 6d 6f |ndow",,Blk% . mo| 0000cbf0 72 65 25 0d 06 21 19 77 69 6e 30 78 25 3d 42 6c |re%..!.win0x%=Bl| 0000cc00 6b 25 21 34 2d 42 6c 6b 25 21 32 30 0d 06 22 1a |k%!4-Blk%!20..".| 0000cc10 77 69 6e 30 79 25 3d 42 6c 6b 25 21 31 36 2d 42 |win0y%=Blk%!16-B| 0000cc20 6c 6b 25 21 32 34 0d 06 23 0c c8 95 20 6d 6f 72 |lk%!24..#... mor| 0000cc30 65 25 0d 06 24 10 20 20 e7 20 48 61 74 63 68 25 |e%..$. . Hatch%| 0000cc40 20 8c 0d 06 25 1f 20 20 20 20 68 65 69 67 68 74 | ...%. height| 0000cc50 25 3d 42 6c 6b 25 21 34 30 2d 42 6c 6b 25 21 33 |%=Blk%!40-Blk%!3| 0000cc60 32 0d 06 26 1f 20 20 20 20 78 73 74 61 72 74 25 |2..&. xstart%| 0000cc70 3d 42 6c 6b 25 21 32 38 2d 68 65 69 67 68 74 25 |=Blk%!28-height%| 0000cc80 0d 06 27 25 20 20 20 20 78 63 6f 72 72 25 3d 28 |..'% xcorr%=(| 0000cc90 78 73 74 61 72 74 25 2d 77 69 6e 30 78 25 29 20 |xstart%-win0x%) | 0000cca0 83 20 64 78 25 0d 06 28 25 20 20 20 20 79 63 6f |. dx%..(% yco| 0000ccb0 72 72 25 3d 28 77 69 6e 30 79 25 2d 42 6c 6b 25 |rr%=(win0y%-Blk%| 0000ccc0 21 33 32 29 20 83 20 64 78 25 0d 06 29 34 20 20 |!32) . dx%..)4 | 0000ccd0 20 20 e3 20 78 25 3d 78 73 74 61 72 74 25 2d 28 | . x%=xstart%-(| 0000cce0 78 63 6f 72 72 25 2b 79 63 6f 72 72 25 29 20 b8 |xcorr%+ycorr%) .| 0000ccf0 20 42 6c 6b 25 21 33 36 20 88 20 64 78 25 0d 06 | Blk%!36 . dx%..| 0000cd00 2a 16 20 20 20 20 20 20 ec 20 78 25 2c 42 6c 6b |*. . x%,Blk| 0000cd10 25 21 33 32 0d 06 2b 1d 20 20 20 20 20 20 f0 20 |%!32..+. . | 0000cd20 31 2c 68 65 69 67 68 74 25 2c 68 65 69 67 68 74 |1,height%,height| 0000cd30 25 0d 06 2c 0c 20 20 20 20 ed 20 78 25 0d 06 2d |%..,. . x%..-| 0000cd40 25 20 20 20 20 79 63 6f 72 72 25 3d 28 77 69 6e |% ycorr%=(win| 0000cd50 30 79 25 2d 42 6c 6b 25 21 34 30 29 20 83 20 64 |0y%-Blk%!40) . d| 0000cd60 78 25 0d 06 2e 34 20 20 20 20 e3 20 78 25 3d 78 |x%...4 . x%=x| 0000cd70 73 74 61 72 74 25 2d 28 78 63 6f 72 72 25 2d 79 |start%-(xcorr%-y| 0000cd80 63 6f 72 72 25 29 20 b8 20 42 6c 6b 25 21 33 36 |corr%) . Blk%!36| 0000cd90 20 88 20 64 78 25 0d 06 2f 16 20 20 20 20 20 20 | . dx%../. | 0000cda0 ec 20 78 25 2c 42 6c 6b 25 21 34 30 0d 06 30 1e |. x%,Blk%!40..0.| 0000cdb0 20 20 20 20 20 20 f0 20 31 2c 68 65 69 67 68 74 | . 1,height| 0000cdc0 25 2c 2d 68 65 69 67 68 74 25 0d 06 31 0c 20 20 |%,-height%..1. | 0000cdd0 20 20 ed 20 78 25 0d 06 32 07 20 20 cd 0d 06 33 | . x%..2. ...3| 0000cde0 1b 20 20 e7 20 53 75 70 70 6f 72 74 49 6e 74 65 |. . SupportInte| 0000cdf0 72 66 61 63 65 25 20 8c 0d 06 34 24 20 20 20 20 |rface% ...4$ | 0000ce00 c8 99 20 22 57 69 6d 70 5f 42 6f 72 64 65 72 57 |.. "Wimp_BorderW| 0000ce10 69 6e 64 6f 77 22 2c 2c 42 6c 6b 25 0d 06 35 07 |indow",,Blk%..5.| 0000ce20 20 20 cd 0d 06 36 15 20 20 e7 20 53 75 70 70 6f | ...6. . Suppo| 0000ce30 72 74 41 45 48 25 20 8c 0d 06 37 23 20 20 20 20 |rtAEH% ...7# | 0000ce40 c8 99 20 22 41 45 48 5f 52 65 64 72 61 77 57 69 |.. "AEH_RedrawWi| 0000ce50 6e 64 6f 77 22 2c 2c 42 6c 6b 25 0d 06 38 07 20 |ndow",,Blk%..8. | 0000ce60 20 cd 0d 06 39 2a 20 20 c8 99 20 22 57 69 6d 70 | ...9* .. "Wimp| 0000ce70 5f 47 65 74 52 65 63 74 61 6e 67 6c 65 22 2c 2c |_GetRectangle",,| 0000ce80 42 6c 6b 25 20 b8 20 6d 6f 72 65 25 0d 06 3a 05 |Blk% . more%..:.| 0000ce90 ce 0d 06 3b 05 e1 0d 06 3c 04 0d 06 3d 2e f4 20 |...;....<...=.. | 0000cea0 2a 2a 2a 20 70 72 6f 63 73 20 66 6f 72 20 74 68 |*** procs for th| 0000ceb0 65 20 77 69 6e 64 6f 77 2d 65 64 69 74 20 77 69 |e window-edit wi| 0000cec0 6e 64 6f 77 20 2a 2a 2a 0d 06 3e 04 0d 06 3f 1d |ndow ***..>...?.| 0000ced0 dd 20 f2 77 69 6e 65 64 5f 66 69 6c 6c 77 69 6e |. .wined_fillwin| 0000cee0 28 77 69 6e 64 6f 77 25 29 0d 06 40 13 ea 20 6e |(window%)..@.. n| 0000cef0 6f 25 2c 66 6c 61 67 73 25 2c 69 25 0d 06 41 16 |o%,flags%,i%..A.| 0000cf00 57 69 6e 45 64 5f 57 69 6e 25 3d 77 69 6e 64 6f |WinEd_Win%=windo| 0000cf10 77 25 0d 06 42 18 57 69 6e 42 6c 6b 25 21 30 3d |w%..B.WinBlk%!0=| 0000cf20 57 69 6e 45 64 5f 57 69 6e 25 0d 06 43 1f 6e 6f |WinEd_Win%..C.no| 0000cf30 25 3d a4 77 68 69 63 68 74 65 6d 70 6c 61 74 65 |%=.whichtemplate| 0000cf40 28 77 69 6e 64 6f 77 25 29 0d 06 44 24 c8 99 20 |(window%)..D$.. | 0000cf50 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 49 |"Wimp_GetWindowI| 0000cf60 6e 66 6f 22 2c 2c 57 69 6e 42 6c 6b 25 0d 06 45 |nfo",,WinBlk%..E| 0000cf70 15 66 6c 61 67 73 25 3d 57 69 6e 42 6c 6b 25 21 |.flags%=WinBlk%!| 0000cf80 33 32 0d 06 46 22 57 69 6e 45 64 5f 42 75 74 74 |32..F"WinEd_Butt| 0000cf90 6f 6e 25 3d 28 57 69 6e 42 6c 6b 25 21 36 34 29 |on%=(WinBlk%!64)| 0000cfa0 3e 3e 31 32 0d 06 47 0e e3 20 69 25 3d 30 20 b8 |>>12..G.. i%=0 .| 0000cfb0 20 36 0d 06 48 26 20 20 57 69 6e 45 64 5f 43 6f | 6..H& WinEd_Co| 0000cfc0 6c 25 28 69 25 29 3d 28 57 69 6e 42 6c 6b 25 3f |l%(i%)=(WinBlk%?| 0000cfd0 28 33 36 2b 69 25 29 29 0d 06 49 08 ed 20 69 25 |(36+i%))..I.. i%| 0000cfe0 0d 06 4a 2a f2 73 65 6c 65 63 74 69 63 6f 6e 28 |..J*.selecticon(| 0000cff0 57 69 6e 45 64 57 25 2c 34 2c 66 6c 61 67 73 25 |WinEdW%,4,flags%| 0000d000 20 80 20 28 31 3c 3c 31 29 29 0d 06 4b 2a f2 73 | . (1<<1))..K*.s| 0000d010 65 6c 65 63 74 69 63 6f 6e 28 57 69 6e 45 64 57 |electicon(WinEdW| 0000d020 25 2c 35 2c 66 6c 61 67 73 25 20 80 20 28 31 3c |%,5,flags% . (1<| 0000d030 3c 34 29 29 0d 06 4c 2b f2 73 65 6c 65 63 74 69 |<4))..L+.selecti| 0000d040 63 6f 6e 28 57 69 6e 45 64 57 25 2c 36 2c 66 6c |con(WinEdW%,6,fl| 0000d050 61 67 73 25 20 80 20 28 31 3c 3c 31 32 29 29 0d |ags% . (1<<12)).| 0000d060 06 4d 28 f2 73 65 6c 65 63 74 69 63 6f 6e 28 57 |.M(.selecticon(W| 0000d070 69 6e 45 64 57 25 2c 37 2c 50 61 6e 65 46 6c 61 |inEdW%,7,PaneFla| 0000d080 67 25 3f 6e 6f 25 29 0d 06 4e 2a f2 73 65 6c 65 |g%?no%)..N*.sele| 0000d090 63 74 69 63 6f 6e 28 57 69 6e 45 64 57 25 2c 38 |cticon(WinEdW%,8| 0000d0a0 2c 66 6c 61 67 73 25 20 80 20 28 31 3c 3c 36 29 |,flags% . (1<<6)| 0000d0b0 29 0d 06 4f 2b f2 73 65 6c 65 63 74 69 63 6f 6e |)..O+.selecticon| 0000d0c0 28 57 69 6e 45 64 57 25 2c 39 2c 66 6c 61 67 73 |(WinEdW%,9,flags| 0000d0d0 25 20 80 20 28 31 3c 3c 31 30 29 29 0d 06 50 2c |% . (1<<10))..P,| 0000d0e0 f2 73 65 6c 65 63 74 69 63 6f 6e 28 57 69 6e 45 |.selecticon(WinE| 0000d0f0 64 57 25 2c 31 30 2c 66 6c 61 67 73 25 20 80 20 |dW%,10,flags% . | 0000d100 28 31 3c 3c 31 31 29 29 0d 06 51 2b f2 73 65 6c |(1<<11))..Q+.sel| 0000d110 65 63 74 69 63 6f 6e 28 57 69 6e 45 64 57 25 2c |ecticon(WinEdW%,| 0000d120 31 31 2c 66 6c 61 67 73 25 20 80 20 28 31 3c 3c |11,flags% . (1<<| 0000d130 38 29 29 0d 06 52 2b f2 73 65 6c 65 63 74 69 63 |8))..R+.selectic| 0000d140 6f 6e 28 57 69 6e 45 64 57 25 2c 31 32 2c 66 6c |on(WinEdW%,12,fl| 0000d150 61 67 73 25 20 80 20 28 31 3c 3c 39 29 29 0d 06 |ags% . (1<<9))..| 0000d160 53 2c f2 73 65 6c 65 63 74 69 63 6f 6e 28 57 69 |S,.selecticon(Wi| 0000d170 6e 45 64 57 25 2c 32 30 2c 66 6c 61 67 73 25 20 |nEdW%,20,flags% | 0000d180 80 20 28 31 3c 3c 33 31 29 29 0d 06 54 0e e3 20 |. (1<<31))..T.. | 0000d190 69 25 3d 30 20 b8 20 36 0d 06 55 36 20 20 f2 73 |i%=0 . 6..U6 .s| 0000d1a0 65 6c 65 63 74 69 63 6f 6e 28 57 69 6e 45 64 57 |electicon(WinEdW| 0000d1b0 25 2c 31 33 2b 69 25 2c 66 6c 61 67 73 25 20 80 |%,13+i%,flags% .| 0000d1c0 20 28 31 3c 3c 28 32 34 2b 69 25 29 29 29 0d 06 | (1<<(24+i%)))..| 0000d1d0 56 08 ed 20 69 25 0d 06 57 1c e7 20 28 66 6c 61 |V.. i%..W.. (fla| 0000d1e0 67 73 25 20 80 20 28 31 3c 3c 33 31 29 29 3d 30 |gs% . (1<<31))=0| 0000d1f0 20 8c 0d 06 58 31 20 20 f2 73 65 6c 65 63 74 69 | ...X1 .selecti| 0000d200 63 6f 6e 28 57 69 6e 45 64 57 25 2c 31 34 2c 28 |con(WinEdW%,14,(| 0000d210 66 6c 61 67 73 25 20 80 20 28 31 3c 3c 37 29 29 |flags% . (1<<7))| 0000d220 3d 30 29 0d 06 59 31 20 20 f2 73 65 6c 65 63 74 |=0)..Y1 .select| 0000d230 69 63 6f 6e 28 57 69 6e 45 64 57 25 2c 31 33 2c |icon(WinEdW%,13,| 0000d240 28 66 6c 61 67 73 25 20 80 20 28 31 3c 3c 37 29 |(flags% . (1<<7)| 0000d250 29 3d 30 29 0d 06 5a 2d 20 20 f2 73 65 6c 65 63 |)=0)..Z- .selec| 0000d260 74 69 63 6f 6e 28 57 69 6e 45 64 57 25 2c 31 35 |ticon(WinEdW%,15| 0000d270 2c 66 6c 61 67 73 25 20 80 20 28 31 3c 3c 30 29 |,flags% . (1<<0)| 0000d280 29 0d 06 5b 2d 20 20 f2 73 65 6c 65 63 74 69 63 |)..[- .selectic| 0000d290 6f 6e 28 57 69 6e 45 64 57 25 2c 31 37 2c 66 6c |on(WinEdW%,17,fl| 0000d2a0 61 67 73 25 20 80 20 28 31 3c 3c 32 29 29 0d 06 |ags% . (1<<2))..| 0000d2b0 5c 2d 20 20 f2 73 65 6c 65 63 74 69 63 6f 6e 28 |\- .selecticon(| 0000d2c0 57 69 6e 45 64 57 25 2c 31 39 2c 66 6c 61 67 73 |WinEdW%,19,flags| 0000d2d0 25 20 80 20 28 31 3c 3c 33 29 29 0d 06 5d 05 cd |% . (1<<3))..]..| 0000d2e0 0d 06 5e 4f f2 73 65 74 74 69 74 6c 65 62 61 72 |..^O.settitlebar| 0000d2f0 28 57 69 6e 45 64 57 25 2c 57 69 6e 45 64 54 62 |(WinEdW%,WinEdTb| 0000d300 61 72 25 2c a4 6d 73 67 5f 6c 6f 6f 6b 75 70 31 |ar%,.msg_lookup1| 0000d310 28 22 45 44 54 50 22 2c 24 28 54 65 6d 70 6c 4e |("EDTP",$(TemplN| 0000d320 61 6d 65 73 25 2b 32 38 2a 6e 6f 25 29 29 29 0d |ames%+28*no%))).| 0000d330 06 5f 32 f2 73 65 74 69 63 6f 6e 74 65 78 74 28 |._2.seticontext(| 0000d340 36 2c 24 28 57 69 6e 42 75 74 74 6f 6e 25 2b 32 |6,$(WinButton%+2| 0000d350 30 2a 57 69 6e 45 64 5f 42 75 74 74 6f 6e 25 29 |0*WinEd_Button%)| 0000d360 29 0d 06 60 0e e3 20 69 25 3d 30 20 b8 20 36 0d |)..`.. i%=0 . 6.| 0000d370 06 61 28 20 20 f2 73 65 74 63 6f 6c 6f 75 72 62 |.a( .setcolourb| 0000d380 6f 78 28 32 2b 69 25 2c 57 69 6e 45 64 5f 43 6f |ox(2+i%,WinEd_Co| 0000d390 6c 25 28 69 25 29 29 0d 06 62 08 ed 20 69 25 0d |l%(i%))..b.. i%.| 0000d3a0 06 63 19 f2 77 69 6e 65 64 5f 73 68 61 64 65 69 |.c..wined_shadei| 0000d3b0 63 6f 6e 73 28 2d 31 29 0d 06 64 1a f2 6f 70 65 |cons(-1)..d..ope| 0000d3c0 6e 77 69 6e 64 6f 77 28 57 69 6e 45 64 57 25 2c |nwindow(WinEdW%,| 0000d3d0 30 29 0d 06 65 19 f2 73 65 74 63 61 72 65 74 28 |0)..e..setcaret(| 0000d3e0 57 69 6e 45 64 57 25 2c 2d 31 29 0d 06 66 05 e1 |WinEdW%,-1)..f..| 0000d3f0 0d 06 67 04 0d 06 68 23 dd 20 f2 77 69 6e 65 64 |..g...h#. .wined| 0000d400 5f 73 68 61 64 65 69 63 6f 6e 73 28 63 6c 69 63 |_shadeicons(clic| 0000d410 6b 65 64 6f 6e 25 29 0d 06 69 22 ea 20 6e 65 77 |kedon%)..i". new| 0000d420 66 6f 72 6d 61 74 25 2c 74 69 74 6c 65 62 61 72 |format%,titlebar| 0000d430 25 2c 73 63 72 6f 6c 6c 25 0d 06 6a 28 6e 65 77 |%,scroll%..j(new| 0000d440 66 6f 72 6d 61 74 25 3d a4 69 63 6f 6e 73 65 6c |format%=.iconsel| 0000d450 65 63 74 65 64 28 57 69 6e 45 64 57 25 2c 32 30 |ected(WinEdW%,20| 0000d460 29 0d 06 6b 27 74 69 74 6c 65 62 61 72 25 3d a4 |)..k'titlebar%=.| 0000d470 69 63 6f 6e 73 65 6c 65 63 74 65 64 28 57 69 6e |iconselected(Win| 0000d480 45 64 57 25 2c 31 35 29 0d 06 6c 41 73 63 72 6f |EdW%,15)..lAscro| 0000d490 6c 6c 25 3d a4 69 63 6f 6e 73 65 6c 65 63 74 65 |ll%=.iconselecte| 0000d4a0 64 28 57 69 6e 45 64 57 25 2c 31 37 29 20 84 20 |d(WinEdW%,17) . | 0000d4b0 a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 28 57 69 |.iconselected(Wi| 0000d4c0 6e 45 64 57 25 2c 31 39 29 0d 06 6d 29 e7 20 28 |nEdW%,19)..m). (| 0000d4d0 63 6c 69 63 6b 65 64 6f 6e 25 3d 2d 31 29 20 84 |clickedon%=-1) .| 0000d4e0 20 28 63 6c 69 63 6b 65 64 6f 6e 25 3d 32 30 29 | (clickedon%=20)| 0000d4f0 20 8c 0d 06 6e 29 20 20 f2 73 68 61 64 65 69 63 | ...n) .shadeic| 0000d500 6f 6e 28 57 69 6e 45 64 57 25 2c 31 36 2c ac 20 |on(WinEdW%,16,. | 0000d510 6e 65 77 66 6f 72 6d 61 74 25 29 0d 06 6f 05 cd |newformat%)..o..| 0000d520 0d 06 70 29 e7 20 28 63 6c 69 63 6b 65 64 6f 6e |..p). (clickedon| 0000d530 25 3d 2d 31 29 20 84 20 28 63 6c 69 63 6b 65 64 |%=-1) . (clicked| 0000d540 6f 6e 25 3d 31 35 29 20 8c 0d 06 71 28 20 20 f2 |on%=15) ...q( .| 0000d550 73 68 61 64 65 69 63 6f 6e 28 57 69 6e 45 64 57 |shadeicon(WinEdW| 0000d560 25 2c 31 33 2c ac 20 74 69 74 6c 65 62 61 72 25 |%,13,. titlebar%| 0000d570 29 0d 06 72 28 20 20 f2 73 68 61 64 65 69 63 6f |)..r( .shadeico| 0000d580 6e 28 57 69 6e 45 64 57 25 2c 31 34 2c ac 20 74 |n(WinEdW%,14,. t| 0000d590 69 74 6c 65 62 61 72 25 29 0d 06 73 28 20 20 f2 |itlebar%)..s( .| 0000d5a0 73 68 61 64 65 69 63 6f 6e 28 57 69 6e 45 64 57 |shadeicon(WinEdW| 0000d5b0 25 2c 31 36 2c ac 20 74 69 74 6c 65 62 61 72 25 |%,16,. titlebar%| 0000d5c0 29 0d 06 74 05 cd 0d 06 75 18 e7 20 28 63 6c 69 |)..t....u.. (cli| 0000d5d0 63 6b 65 64 6f 6e 25 3c 3e 31 35 29 20 8c 0d 06 |ckedon%<>15) ...| 0000d5e0 76 35 20 20 f2 73 68 61 64 65 69 63 6f 6e 28 57 |v5 .shadeicon(W| 0000d5f0 69 6e 45 64 57 25 2c 31 38 2c 6e 65 77 66 6f 72 |inEdW%,18,newfor| 0000d600 6d 61 74 25 20 80 20 28 ac 20 73 63 72 6f 6c 6c |mat% . (. scroll| 0000d610 25 29 29 0d 06 77 05 cd 0d 06 78 05 e1 0d 06 79 |%))..w....x....y| 0000d620 04 0d 06 7a 14 dd 20 f2 77 69 6e 65 64 5f 72 65 |...z.. .wined_re| 0000d630 61 64 77 69 6e 0d 06 7b 13 ea 20 66 6c 61 67 73 |adwin..{.. flags| 0000d640 25 2c 6e 6f 25 2c 69 25 0d 06 7c 18 57 69 6e 42 |%,no%,i%..|.WinB| 0000d650 6c 6b 25 21 30 3d 57 69 6e 45 64 5f 57 69 6e 25 |lk%!0=WinEd_Win%| 0000d660 0d 06 7d 24 c8 99 20 22 57 69 6d 70 5f 47 65 74 |..}$.. "Wimp_Get| 0000d670 57 69 6e 64 6f 77 49 6e 66 6f 22 2c 2c 57 69 6e |WindowInfo",,Win| 0000d680 42 6c 6b 25 0d 06 7e 21 66 6c 61 67 73 25 3d 28 |Blk%..~!flags%=(| 0000d690 57 69 6e 42 6c 6b 25 21 33 32 29 80 28 26 31 46 |WinBlk%!32).(&1F| 0000d6a0 3c 3c 31 36 29 0d 06 7f 30 e7 20 a4 69 63 6f 6e |<<16)...0. .icon| 0000d6b0 73 65 6c 65 63 74 65 64 28 57 69 6e 45 64 57 25 |selected(WinEdW%| 0000d6c0 2c 31 35 29 20 8c 20 66 6c 61 67 73 25 2b 3d 28 |,15) . flags%+=(| 0000d6d0 31 3c 3c 30 29 0d 06 80 2f e7 20 a4 69 63 6f 6e |1<<0).../. .icon| 0000d6e0 73 65 6c 65 63 74 65 64 28 57 69 6e 45 64 57 25 |selected(WinEdW%| 0000d6f0 2c 34 29 20 8c 20 66 6c 61 67 73 25 2b 3d 28 31 |,4) . flags%+=(1| 0000d700 3c 3c 31 29 0d 06 81 30 e7 20 a4 69 63 6f 6e 73 |<<1)...0. .icons| 0000d710 65 6c 65 63 74 65 64 28 57 69 6e 45 64 57 25 2c |elected(WinEdW%,| 0000d720 31 37 29 20 8c 20 66 6c 61 67 73 25 2b 3d 28 31 |17) . flags%+=(1| 0000d730 3c 3c 32 29 0d 06 82 30 e7 20 a4 69 63 6f 6e 73 |<<2)...0. .icons| 0000d740 65 6c 65 63 74 65 64 28 57 69 6e 45 64 57 25 2c |elected(WinEdW%,| 0000d750 31 39 29 20 8c 20 66 6c 61 67 73 25 2b 3d 28 31 |19) . flags%+=(1| 0000d760 3c 3c 33 29 0d 06 83 2f e7 20 a4 69 63 6f 6e 73 |<<3).../. .icons| 0000d770 65 6c 65 63 74 65 64 28 57 69 6e 45 64 57 25 2c |elected(WinEdW%,| 0000d780 35 29 20 8c 20 66 6c 61 67 73 25 2b 3d 28 31 3c |5) . flags%+=(1<| 0000d790 3c 34 29 0d 06 84 22 6e 6f 25 3d a4 77 68 69 63 |<4)..."no%=.whic| 0000d7a0 68 74 65 6d 70 6c 61 74 65 28 57 69 6e 45 64 5f |htemplate(WinEd_| 0000d7b0 57 69 6e 25 29 0d 06 85 20 e7 20 a4 69 63 6f 6e |Win%)... . .icon| 0000d7c0 73 65 6c 65 63 74 65 64 28 57 69 6e 45 64 57 25 |selected(WinEdW%| 0000d7d0 2c 37 29 20 8c 0d 06 86 18 20 20 50 61 6e 65 46 |,7) ..... PaneF| 0000d7e0 6c 61 67 25 3f 6e 6f 25 3d 31 3c 3c 35 0d 06 87 |lag%?no%=1<<5...| 0000d7f0 05 cc 0d 06 88 15 20 20 50 61 6e 65 46 6c 61 67 |...... PaneFlag| 0000d800 25 3f 6e 6f 25 3d 30 0d 06 89 05 cd 0d 06 8a 2f |%?no%=0......../| 0000d810 e7 20 a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 28 |. .iconselected(| 0000d820 57 69 6e 45 64 57 25 2c 38 29 20 8c 20 66 6c 61 |WinEdW%,8) . fla| 0000d830 67 73 25 2b 3d 28 31 3c 3c 36 29 0d 06 8b 32 e7 |gs%+=(1<<6)...2.| 0000d840 20 ac 20 a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 | . .iconselected| 0000d850 28 57 69 6e 45 64 57 25 2c 31 34 29 20 8c 20 66 |(WinEdW%,14) . f| 0000d860 6c 61 67 73 25 2b 3d 28 31 3c 3c 37 29 0d 06 8c |lags%+=(1<<7)...| 0000d870 30 e7 20 a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 |0. .iconselected| 0000d880 28 57 69 6e 45 64 57 25 2c 31 31 29 20 8c 20 66 |(WinEdW%,11) . f| 0000d890 6c 61 67 73 25 2b 3d 28 31 3c 3c 38 29 0d 06 8d |lags%+=(1<<8)...| 0000d8a0 30 e7 20 a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 |0. .iconselected| 0000d8b0 28 57 69 6e 45 64 57 25 2c 31 32 29 20 8c 20 66 |(WinEdW%,12) . f| 0000d8c0 6c 61 67 73 25 2b 3d 28 31 3c 3c 39 29 0d 06 8e |lags%+=(1<<9)...| 0000d8d0 30 e7 20 a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 |0. .iconselected| 0000d8e0 28 57 69 6e 45 64 57 25 2c 39 29 20 8c 20 66 6c |(WinEdW%,9) . fl| 0000d8f0 61 67 73 25 2b 3d 28 31 3c 3c 31 30 29 0d 06 8f |ags%+=(1<<10)...| 0000d900 31 e7 20 a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 |1. .iconselected| 0000d910 28 57 69 6e 45 64 57 25 2c 31 30 29 20 8c 20 66 |(WinEdW%,10) . f| 0000d920 6c 61 67 73 25 2b 3d 28 31 3c 3c 31 31 29 0d 06 |lags%+=(1<<11)..| 0000d930 90 30 e7 20 a4 69 63 6f 6e 73 65 6c 65 63 74 65 |.0. .iconselecte| 0000d940 64 28 57 69 6e 45 64 57 25 2c 36 29 20 8c 20 66 |d(WinEdW%,6) . f| 0000d950 6c 61 67 73 25 2b 3d 28 31 3c 3c 31 32 29 0d 06 |lags%+=(1<<12)..| 0000d960 91 0e e3 20 69 25 3d 30 20 b8 20 37 0d 06 92 3b |... i%=0 . 7...;| 0000d970 20 20 e7 20 a4 69 63 6f 6e 73 65 6c 65 63 74 65 | . .iconselecte| 0000d980 64 28 57 69 6e 45 64 57 25 2c 31 33 2b 69 25 29 |d(WinEdW%,13+i%)| 0000d990 20 8c 20 66 6c 61 67 73 25 2b 3d 28 31 3c 3c 28 | . flags%+=(1<<(| 0000d9a0 32 34 2b 69 25 29 29 0d 06 93 08 ed 20 69 25 0d |24+i%))..... i%.| 0000d9b0 06 94 15 57 69 6e 42 6c 6b 25 21 33 32 3d 66 6c |...WinBlk%!32=fl| 0000d9c0 61 67 73 25 0d 06 95 20 57 69 6e 42 6c 6b 25 21 |ags%... WinBlk%!| 0000d9d0 36 34 3d 57 69 6e 45 64 5f 42 75 74 74 6f 6e 25 |64=WinEd_Button%| 0000d9e0 3c 3c 31 32 0d 06 96 0e e3 20 69 25 3d 30 20 b8 |<<12..... i%=0 .| 0000d9f0 20 36 0d 06 97 24 20 20 57 69 6e 42 6c 6b 25 3f | 6...$ WinBlk%?| 0000da00 28 33 36 2b 69 25 29 3d 57 69 6e 45 64 5f 43 6f |(36+i%)=WinEd_Co| 0000da10 6c 25 28 69 25 29 0d 06 98 08 ed 20 69 25 0d 06 |l%(i%)..... i%..| 0000da20 99 29 57 69 6e 45 64 5f 57 69 6e 25 3d a4 72 65 |.)WinEd_Win%=.re| 0000da30 64 65 66 69 6e 65 77 69 6e 64 6f 77 28 57 69 6e |definewindow(Win| 0000da40 42 6c 6b 25 2c 31 29 0d 06 9a 05 e1 0d 06 9b 04 |Blk%,1).........| 0000da50 0d 06 9c 2c f4 20 2a 2a 2a 20 70 72 6f 63 73 20 |...,. *** procs | 0000da60 66 6f 72 20 74 68 65 20 69 63 6f 6e 2d 65 64 69 |for the icon-edi| 0000da70 74 20 77 69 6e 64 6f 77 20 2a 2a 2a 0d 06 9d 04 |t window ***....| 0000da80 0d 06 9e 20 dd 20 f2 69 63 65 64 5f 73 74 61 72 |... . .iced_star| 0000da90 74 28 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 29 |t(window%,icon%)| 0000daa0 0d 06 9f 10 e7 20 69 63 6f 6e 25 3d 2d 34 20 8c |..... icon%=-4 .| 0000dab0 0d 06 a0 1f 20 20 f2 69 63 65 64 5f 66 69 6c 6c |.... .iced_fill| 0000dac0 77 69 6e 28 77 69 6e 64 6f 77 25 2c 2d 34 29 0d |win(window%,-4).| 0000dad0 06 a1 05 cc 0d 06 a2 17 20 20 f2 73 65 6c 5f 67 |........ .sel_g| 0000dae0 65 74 28 77 69 6e 64 6f 77 25 29 0d 06 a3 17 20 |et(window%).... | 0000daf0 20 e7 20 4e 72 53 65 6c 65 63 74 65 64 25 3e 30 | . NrSelected%>0| 0000db00 20 8c 0d 06 a4 1a 20 20 20 20 20 e7 20 4e 72 53 | ..... . NrS| 0000db10 65 6c 65 63 74 65 64 25 3d 31 20 8c 0d 06 a5 2a |elected%=1 ....*| 0000db20 20 20 20 20 20 20 f2 69 63 65 64 5f 66 69 6c 6c | .iced_fill| 0000db30 77 69 6e 28 77 69 6e 64 6f 77 25 2c 53 65 6c 42 |win(window%,SelB| 0000db40 6c 6b 25 21 30 29 0d 06 a6 0a 20 20 20 20 20 cc |lk%!0).... .| 0000db50 0d 06 a7 24 20 20 20 20 20 20 20 f2 69 63 65 64 |...$ .iced| 0000db60 5f 66 69 6c 6c 77 69 6e 28 77 69 6e 64 6f 77 25 |_fillwin(window%| 0000db70 2c 2d 31 29 0d 06 a8 0a 20 20 20 20 20 cd 0d 06 |,-1).... ...| 0000db80 a9 07 20 20 cc 0d 06 aa 16 20 20 20 20 e7 20 28 |.. ..... . (| 0000db90 69 63 6f 6e 25 3e 3d 30 29 20 8c 0d 06 ab 26 20 |icon%>=0) ....& | 0000dba0 20 20 20 20 20 f2 69 63 65 64 5f 66 69 6c 6c 77 | .iced_fillw| 0000dbb0 69 6e 28 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 |in(window%,icon%| 0000dbc0 29 0d 06 ac 09 20 20 20 20 cd 0d 06 ad 07 20 20 |).... ..... | 0000dbd0 cd 0d 06 ae 05 cd 0d 06 af 05 e1 0d 06 b0 04 0d |................| 0000dbe0 06 b1 22 dd 20 f2 69 63 65 64 5f 66 69 6c 6c 77 |..". .iced_fillw| 0000dbf0 69 6e 28 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 |in(window%,icon%| 0000dc00 29 0d 06 b2 40 ea 20 6e 6f 25 2c 66 6c 61 67 73 |)...@. no%,flags| 0000dc10 25 2c 64 61 74 61 25 2c 61 72 67 24 2c 74 69 74 |%,data%,arg$,tit| 0000dc20 6c 65 24 2c 74 65 78 74 25 2c 73 70 72 69 74 65 |le$,text%,sprite| 0000dc30 25 2c 69 6e 64 69 72 25 2c 63 61 72 65 74 74 6f |%,indir%,caretto| 0000dc40 25 0d 06 b3 11 ea 20 74 24 2c 76 24 2c 6d 24 2c |%..... t$,v$,m$,| 0000dc50 73 24 0d 06 b4 15 49 63 45 64 5f 57 69 6e 25 3d |s$....IcEd_Win%=| 0000dc60 77 69 6e 64 6f 77 25 0d 06 b5 14 49 63 45 64 5f |window%....IcEd_| 0000dc70 49 63 6f 6e 25 3d 69 63 6f 6e 25 0d 06 b6 1f 6e |Icon%=icon%....n| 0000dc80 6f 25 3d a4 77 68 69 63 68 74 65 6d 70 6c 61 74 |o%=.whichtemplat| 0000dc90 65 28 77 69 6e 64 6f 77 25 29 0d 06 b7 17 57 69 |e(window%)....Wi| 0000dca0 6e 42 6c 6b 25 21 30 3d 49 63 45 64 5f 57 69 6e |nBlk%!0=IcEd_Win| 0000dcb0 25 0d 06 b8 24 c8 99 20 22 57 69 6d 70 5f 47 65 |%...$.. "Wimp_Ge| 0000dcc0 74 57 69 6e 64 6f 77 49 6e 66 6f 22 2c 2c 57 69 |tWindowInfo",,Wi| 0000dcd0 6e 42 6c 6b 25 0d 06 b9 0e c8 8e 20 69 63 6f 6e |nBlk%...... icon| 0000dce0 25 20 ca 0d 06 ba 26 20 20 c9 20 2d 34 20 20 3a |% ....& . -4 :| 0000dcf0 20 f4 20 65 64 69 74 69 6e 67 20 74 69 74 6c 65 | . editing title| 0000dd00 20 62 61 72 20 69 63 6f 6e 0d 06 bb 3f 20 20 20 | bar icon...? | 0000dd10 20 66 6c 61 67 73 25 3d 28 57 69 6e 42 6c 6b 25 | flags%=(WinBlk%| 0000dd20 21 36 30 29 20 80 20 26 46 46 46 20 3a 20 f4 20 |!60) . &FFF : . | 0000dd30 6d 61 73 6b 20 6f 75 74 20 69 72 72 65 6c 65 76 |mask out irrelev| 0000dd40 61 6e 74 20 62 69 74 73 0d 06 bc 1b 20 20 20 20 |ant bits.... | 0000dd50 66 6c 61 67 73 25 3d 66 6c 61 67 73 25 20 84 20 |flags%=flags% . | 0000dd60 26 31 34 0d 06 bd 1f 20 20 20 20 e7 20 28 66 6c |&14.... . (fl| 0000dd70 61 67 73 25 20 80 20 28 31 3c 3c 36 29 29 3d 30 |ags% . (1<<6))=0| 0000dd80 20 8c 0d 06 be 3b 20 20 20 20 20 20 f4 20 63 6f | ....; . co| 0000dd90 70 79 20 66 67 20 61 6e 64 20 62 67 20 63 6f 6c |py fg and bg col| 0000dda0 6f 75 72 20 66 6c 61 67 73 20 66 72 6f 6d 20 77 |our flags from w| 0000ddb0 69 6e 64 6f 77 20 63 6f 6c 6f 75 72 73 0d 06 bf |indow colours...| 0000ddc0 4a 20 20 20 20 20 20 66 6c 61 67 73 25 3d 28 66 |J flags%=(f| 0000ddd0 6c 61 67 73 25 20 80 20 26 46 46 46 29 20 84 20 |lags% . &FFF) . | 0000dde0 28 28 57 69 6e 42 6c 6b 25 3f 33 36 29 3c 3c 32 |((WinBlk%?36)<<2| 0000ddf0 34 29 20 84 20 28 28 57 69 6e 42 6c 6b 25 3f 33 |4) . ((WinBlk%?3| 0000de00 37 29 3c 3c 32 38 29 0d 06 c0 09 20 20 20 20 cd |7)<<28).... .| 0000de10 0d 06 c1 18 20 20 20 20 64 61 74 61 25 3d 57 69 |.... data%=Wi| 0000de20 6e 42 6c 6b 25 2b 37 36 0d 06 c2 22 20 20 20 20 |nBlk%+76..." | 0000de30 61 72 67 24 2b 3d a4 6d 73 67 5f 6c 6f 6f 6b 75 |arg$+=.msg_looku| 0000de40 70 30 28 22 54 42 41 52 22 29 0d 06 c3 3e 20 20 |p0("TBAR")...> | 0000de50 c9 20 2d 31 20 20 3a 20 f4 20 65 64 69 74 69 6e |. -1 : . editin| 0000de60 67 20 73 65 6c 65 63 74 69 6f 6e 20 28 72 65 61 |g selection (rea| 0000de70 64 20 66 6c 61 67 73 20 66 72 6f 6d 20 66 69 72 |d flags from fir| 0000de80 73 74 20 69 63 6f 6e 29 0d 06 c4 1b 20 20 20 20 |st icon).... | 0000de90 f2 73 65 6c 5f 67 65 74 28 49 63 45 64 5f 57 69 |.sel_get(IcEd_Wi| 0000dea0 6e 25 29 0d 06 c5 2d 20 20 20 20 66 6c 61 67 73 |n%)...- flags| 0000deb0 25 3d 57 69 6e 42 6c 6b 25 21 28 39 32 2b 33 32 |%=WinBlk%!(92+32| 0000dec0 2a 28 53 65 6c 42 6c 6b 25 21 30 29 2b 31 36 29 |*(SelBlk%!0)+16)| 0000ded0 0d 06 c6 2a 20 20 20 20 64 61 74 61 25 3d 57 69 |...* data%=Wi| 0000dee0 6e 42 6c 6b 25 2b 39 32 2b 33 32 2a 28 53 65 6c |nBlk%+92+32*(Sel| 0000def0 42 6c 6b 25 21 30 29 2b 32 30 0d 06 c7 21 20 20 |Blk%!0)+20...! | 0000df00 20 20 61 72 67 24 2b 3d a4 6d 73 67 5f 6c 6f 6f | arg$+=.msg_loo| 0000df10 6b 75 70 30 28 22 53 45 4c 22 29 0d 06 c8 1f 20 |kup0("SEL").... | 0000df20 20 7f 20 3a 20 f4 20 65 64 69 74 69 6e 67 20 73 | . : . editing s| 0000df30 69 6e 67 6c 65 20 69 63 6f 6e 0d 06 c9 2c 20 20 |ingle icon..., | 0000df40 20 20 66 6c 61 67 73 25 3d 57 69 6e 42 6c 6b 25 | flags%=WinBlk%| 0000df50 21 28 39 32 2b 33 32 2a 49 63 45 64 5f 49 63 6f |!(92+32*IcEd_Ico| 0000df60 6e 25 2b 31 36 29 0d 06 ca 29 20 20 20 20 64 61 |n%+16)...) da| 0000df70 74 61 25 3d 57 69 6e 42 6c 6b 25 2b 39 32 2b 33 |ta%=WinBlk%+92+3| 0000df80 32 2a 49 63 45 64 5f 49 63 6f 6e 25 2b 32 30 0d |2*IcEd_Icon%+20.| 0000df90 06 cb 2b 20 20 20 20 61 72 67 24 2b 3d a4 6d 73 |..+ arg$+=.ms| 0000dfa0 67 5f 6c 6f 6f 6b 75 70 31 28 22 49 43 4e 52 22 |g_lookup1("ICNR"| 0000dfb0 2c c3 28 69 63 6f 6e 25 29 29 0d 06 cc 05 cb 0d |,.(icon%))......| 0000dfc0 06 cd 3a 74 69 74 6c 65 24 3d a4 6d 73 67 5f 6c |..:title$=.msg_l| 0000dfd0 6f 6f 6b 75 70 32 28 22 45 44 49 43 22 2c 24 28 |ookup2("EDIC",$(| 0000dfe0 54 65 6d 70 6c 4e 61 6d 65 73 25 2b 32 38 2a 6e |TemplNames%+28*n| 0000dff0 6f 25 29 2c 61 72 67 24 29 0d 06 ce 18 74 65 78 |o%),arg$)....tex| 0000e000 74 25 3d 28 66 6c 61 67 73 25 20 80 20 31 29 3e |t%=(flags% . 1)>| 0000e010 30 0d 06 cf 1a 73 70 72 69 74 65 25 3d 28 66 6c |0....sprite%=(fl| 0000e020 61 67 73 25 20 80 20 32 29 3e 30 0d 06 d0 1c 69 |ags% . 2)>0....i| 0000e030 6e 64 69 72 25 3d 28 66 6c 61 67 73 25 20 80 20 |ndir%=(flags% . | 0000e040 26 31 30 30 29 3e 30 0d 06 d1 0d e7 20 74 65 78 |&100)>0..... tex| 0000e050 74 25 20 8c 0d 06 d2 10 20 20 e7 20 69 6e 64 69 |t% ..... . indi| 0000e060 72 25 20 8c 0d 06 d3 15 20 20 20 20 74 24 3d 24 |r% ..... t$=$| 0000e070 28 64 61 74 61 25 21 30 29 0d 06 d4 15 20 20 20 |(data%!0).... | 0000e080 20 6d 24 3d c3 28 64 61 74 61 25 21 38 29 0d 06 | m$=.(data%!8)..| 0000e090 d5 25 20 20 20 20 e7 20 64 61 74 61 25 21 34 3c |.% . data%!4<| 0000e0a0 3e 2d 31 20 8c 20 76 24 3d 24 28 64 61 74 61 25 |>-1 . v$=$(data%| 0000e0b0 21 34 29 0d 06 d6 07 20 20 cc 0d 06 d7 13 20 20 |!4).... ..... | 0000e0c0 20 20 74 24 3d 24 28 64 61 74 61 25 29 0d 06 d8 | t$=$(data%)...| 0000e0d0 07 20 20 cd 0d 06 d9 05 cd 0d 06 da 1b e7 20 73 |. ........... s| 0000e0e0 70 72 69 74 65 25 20 80 20 28 ac 20 74 65 78 74 |prite% . (. text| 0000e0f0 25 29 20 8c 0d 06 db 10 20 20 e7 20 69 6e 64 69 |%) ..... . indi| 0000e100 72 25 20 8c 0d 06 dc 15 20 20 20 20 73 24 3d 24 |r% ..... s$=$| 0000e110 28 64 61 74 61 25 21 30 29 0d 06 dd 15 20 20 20 |(data%!0).... | 0000e120 20 6d 24 3d c3 28 64 61 74 61 25 21 38 29 0d 06 | m$=.(data%!8)..| 0000e130 de 07 20 20 cc 0d 06 df 13 20 20 20 20 73 24 3d |.. ..... s$=| 0000e140 24 28 64 61 74 61 25 29 0d 06 e0 07 20 20 cd 0d |$(data%).... ..| 0000e150 06 e1 05 cd 0d 06 e2 22 49 63 45 64 5f 42 75 74 |......."IcEd_But| 0000e160 74 6f 6e 25 3d 28 66 6c 61 67 73 25 3e 3e 31 32 |ton%=(flags%>>12| 0000e170 29 20 80 20 31 35 0d 06 e3 1f 49 63 45 64 5f 45 |) . 15....IcEd_E| 0000e180 73 67 25 3d 28 66 6c 61 67 73 25 3e 3e 31 36 29 |sg%=(flags%>>16)| 0000e190 20 80 20 33 31 0d 06 e4 19 e7 20 28 66 6c 61 67 | . 31..... (flag| 0000e1a0 73 25 20 80 20 28 31 3c 3c 36 29 29 20 8c 0d 06 |s% . (1<<6)) ...| 0000e1b0 e5 13 20 20 49 63 45 64 5f 46 67 63 6f 6c 25 3d |.. IcEd_Fgcol%=| 0000e1c0 37 0d 06 e6 13 20 20 49 63 45 64 5f 42 67 63 6f |7.... IcEd_Bgco| 0000e1d0 6c 25 3d 30 0d 06 e7 48 20 20 f2 66 6f 6e 74 5f |l%=0...H .font_| 0000e1e0 67 65 74 69 6e 66 6f 28 28 66 6c 61 67 73 25 3e |getinfo((flags%>| 0000e1f0 3e 32 34 29 20 80 20 32 35 35 2c 49 63 45 64 5f |>24) . 255,IcEd_| 0000e200 46 6f 6e 74 24 2c 49 63 45 64 5f 58 73 69 7a 65 |Font$,IcEd_Xsize| 0000e210 2c 49 63 45 64 5f 59 73 69 7a 65 29 0d 06 e8 05 |,IcEd_Ysize)....| 0000e220 cc 0d 06 e9 23 20 20 49 63 45 64 5f 46 67 63 6f |....# IcEd_Fgco| 0000e230 6c 25 3d 28 66 6c 61 67 73 25 3e 3e 32 34 29 20 |l%=(flags%>>24) | 0000e240 80 20 31 35 0d 06 ea 23 20 20 49 63 45 64 5f 42 |. 15...# IcEd_B| 0000e250 67 63 6f 6c 25 3d 28 66 6c 61 67 73 25 3e 3e 32 |gcol%=(flags%>>2| 0000e260 38 29 20 80 20 31 35 0d 06 eb 22 20 20 49 63 45 |8) . 15..." IcE| 0000e270 64 5f 46 6f 6e 74 24 3d 22 48 6f 6d 65 72 74 6f |d_Font$="Homerto| 0000e280 6e 2e 4d 65 64 69 75 6d 22 0d 06 ec 13 20 20 49 |n.Medium".... I| 0000e290 63 45 64 5f 58 73 69 7a 65 3d 31 32 0d 06 ed 13 |cEd_Xsize=12....| 0000e2a0 20 20 49 63 45 64 5f 59 73 69 7a 65 3d 31 32 0d | IcEd_Ysize=12.| 0000e2b0 06 ee 05 cd 0d 06 ef 29 f2 73 65 74 74 69 74 6c |.......).settitl| 0000e2c0 65 62 61 72 28 49 63 45 64 57 25 2c 49 63 45 64 |ebar(IcEdW%,IcEd| 0000e2d0 54 62 61 72 25 2c 74 69 74 6c 65 24 29 0d 06 f0 |Tbar%,title$)...| 0000e2e0 20 f2 73 65 6c 65 63 74 69 63 6f 6e 28 49 63 45 | .selecticon(IcE| 0000e2f0 64 57 25 2c 31 32 2c 74 65 78 74 25 29 0d 06 f1 |dW%,12,text%)...| 0000e300 22 f2 73 65 6c 65 63 74 69 63 6f 6e 28 49 63 45 |".selecticon(IcE| 0000e310 64 57 25 2c 31 33 2c 73 70 72 69 74 65 25 29 0d |dW%,13,sprite%).| 0000e320 06 f2 21 f2 73 65 6c 65 63 74 69 63 6f 6e 28 49 |..!.selecticon(I| 0000e330 63 45 64 57 25 2c 31 34 2c 69 6e 64 69 72 25 29 |cEdW%,14,indir%)| 0000e340 0d 06 f3 16 f2 73 65 74 69 63 6f 6e 74 65 78 74 |.....seticontext| 0000e350 28 30 2c 74 24 29 0d 06 f4 16 f2 73 65 74 69 63 |(0,t$).....setic| 0000e360 6f 6e 74 65 78 74 28 31 2c 73 24 29 0d 06 f5 16 |ontext(1,s$)....| 0000e370 f2 73 65 74 69 63 6f 6e 74 65 78 74 28 32 2c 76 |.seticontext(2,v| 0000e380 24 29 0d 06 f6 16 f2 73 65 74 69 63 6f 6e 74 65 |$).....seticonte| 0000e390 78 74 28 33 2c 6d 24 29 0d 06 f7 2a f2 73 65 6c |xt(3,m$)...*.sel| 0000e3a0 65 63 74 69 63 6f 6e 28 49 63 45 64 57 25 2c 31 |ecticon(IcEdW%,1| 0000e3b0 35 2c 66 6c 61 67 73 25 20 80 20 28 31 3c 3c 32 |5,flags% . (1<<2| 0000e3c0 29 29 0d 06 f8 2a f2 73 65 6c 65 63 74 69 63 6f |))...*.selectico| 0000e3d0 6e 28 49 63 45 64 57 25 2c 31 37 2c 66 6c 61 67 |n(IcEdW%,17,flag| 0000e3e0 73 25 20 80 20 28 31 3c 3c 33 29 29 0d 06 f9 2a |s% . (1<<3))...*| 0000e3f0 f2 73 65 6c 65 63 74 69 63 6f 6e 28 49 63 45 64 |.selecticon(IcEd| 0000e400 57 25 2c 31 38 2c 66 6c 61 67 73 25 20 80 20 28 |W%,18,flags% . (| 0000e410 31 3c 3c 34 29 29 0d 06 fa 2a f2 73 65 6c 65 63 |1<<4))...*.selec| 0000e420 74 69 63 6f 6e 28 49 63 45 64 57 25 2c 31 36 2c |ticon(IcEdW%,16,| 0000e430 66 6c 61 67 73 25 20 80 20 28 31 3c 3c 35 29 29 |flags% . (1<<5))| 0000e440 0d 06 fb 2a f2 73 65 6c 65 63 74 69 63 6f 6e 28 |...*.selecticon(| 0000e450 49 63 45 64 57 25 2c 34 31 2c 66 6c 61 67 73 25 |IcEdW%,41,flags%| 0000e460 20 80 20 28 31 3c 3c 36 29 29 0d 06 fc 2a f2 73 | . (1<<6))...*.s| 0000e470 65 6c 65 63 74 69 63 6f 6e 28 49 63 45 64 57 25 |electicon(IcEdW%| 0000e480 2c 32 30 2c 66 6c 61 67 73 25 20 80 20 28 31 3c |,20,flags% . (1<| 0000e490 3c 37 29 29 0d 06 fd 2a f2 73 65 6c 65 63 74 69 |<7))...*.selecti| 0000e4a0 63 6f 6e 28 49 63 45 64 57 25 2c 31 39 2c 66 6c |con(IcEdW%,19,fl| 0000e4b0 61 67 73 25 20 80 20 28 31 3c 3c 39 29 29 0d 06 |ags% . (1<<9))..| 0000e4c0 fe 2b f2 73 65 6c 65 63 74 69 63 6f 6e 28 49 63 |.+.selecticon(Ic| 0000e4d0 45 64 57 25 2c 32 31 2c 66 6c 61 67 73 25 20 80 |EdW%,21,flags% .| 0000e4e0 20 28 31 3c 3c 31 30 29 29 0d 06 ff 2b f2 73 65 | (1<<10))...+.se| 0000e4f0 6c 65 63 74 69 63 6f 6e 28 49 63 45 64 57 25 2c |lecticon(IcEdW%,| 0000e500 32 32 2c 66 6c 61 67 73 25 20 80 20 28 31 3c 3c |22,flags% . (1<<| 0000e510 31 31 29 29 0d 07 00 2b f2 73 65 6c 65 63 74 69 |11))...+.selecti| 0000e520 63 6f 6e 28 49 63 45 64 57 25 2c 33 39 2c 66 6c |con(IcEdW%,39,fl| 0000e530 61 67 73 25 20 80 20 28 31 3c 3c 32 32 29 29 0d |ags% . (1<<22)).| 0000e540 07 01 30 f2 73 65 74 69 63 6f 6e 74 65 78 74 28 |..0.seticontext(| 0000e550 34 2c 24 28 49 63 42 75 74 74 6f 6e 25 2b 32 30 |4,$(IcButton%+20| 0000e560 2a 49 63 45 64 5f 42 75 74 74 6f 6e 25 29 29 0d |*IcEd_Button%)).| 0000e570 07 02 20 f2 73 65 74 69 63 6f 6e 74 65 78 74 28 |.. .seticontext(| 0000e580 35 2c c3 28 49 63 45 64 5f 45 73 67 25 29 29 0d |5,.(IcEd_Esg%)).| 0000e590 07 03 20 f2 73 65 74 63 6f 6c 6f 75 72 62 6f 78 |.. .setcolourbox| 0000e5a0 28 30 2c 49 63 45 64 5f 46 67 63 6f 6c 25 29 0d |(0,IcEd_Fgcol%).| 0000e5b0 07 04 20 f2 73 65 74 63 6f 6c 6f 75 72 62 6f 78 |.. .setcolourbox| 0000e5c0 28 31 2c 49 63 45 64 5f 42 67 63 6f 6c 25 29 0d |(1,IcEd_Bgcol%).| 0000e5d0 07 05 1f f2 73 65 74 69 63 6f 6e 74 65 78 74 28 |....seticontext(| 0000e5e0 31 39 2c 49 63 45 64 5f 46 6f 6e 74 24 29 0d 07 |19,IcEd_Font$)..| 0000e5f0 06 26 f2 73 65 74 69 63 6f 6e 74 65 78 74 28 32 |.&.seticontext(2| 0000e600 30 2c c0 c3 28 49 63 45 64 5f 58 73 69 7a 65 29 |0,..(IcEd_Xsize)| 0000e610 2c 34 29 29 0d 07 07 26 f2 73 65 74 69 63 6f 6e |,4))...&.seticon| 0000e620 74 65 78 74 28 32 31 2c c0 c3 28 49 63 45 64 5f |text(21,..(IcEd_| 0000e630 59 73 69 7a 65 29 2c 34 29 29 0d 07 08 30 f2 73 |Ysize),4))...0.s| 0000e640 65 6c 65 63 74 69 63 6f 6e 28 49 63 45 64 57 25 |electicon(IcEdW%| 0000e650 2c 35 33 2c 49 63 45 64 5f 58 73 69 7a 65 3d 49 |,53,IcEd_Xsize=I| 0000e660 63 45 64 5f 59 73 69 7a 65 29 0d 07 09 10 e3 20 |cEd_Ysize)..... | 0000e670 69 25 3d 31 32 20 b8 20 31 34 0d 07 0a 29 20 20 |i%=12 . 14...) | 0000e680 f2 73 68 61 64 65 69 63 6f 6e 28 49 63 45 64 57 |.shadeicon(IcEdW| 0000e690 25 2c 69 25 2c 49 63 45 64 5f 49 63 6f 6e 25 3d |%,i%,IcEd_Icon%=| 0000e6a0 2d 31 29 0d 07 0b 08 ed 20 69 25 0d 07 0c 15 e7 |-1)..... i%.....| 0000e6b0 20 49 63 45 64 5f 49 63 6f 6e 25 3d 2d 31 20 8c | IcEd_Icon%=-1 .| 0000e6c0 0d 07 0d 12 20 20 e3 20 69 25 3d 32 33 20 b8 20 |.... . i%=23 . | 0000e6d0 32 36 0d 07 0e 1f 20 20 20 20 f2 73 68 61 64 65 |26.... .shade| 0000e6e0 69 63 6f 6e 28 49 63 45 64 57 25 2c 69 25 2c 31 |icon(IcEdW%,i%,1| 0000e6f0 29 0d 07 0f 0a 20 20 ed 20 69 25 0d 07 10 05 cd |).... . i%.....| 0000e700 0d 07 11 27 f2 73 68 61 64 65 69 63 6f 6e 28 49 |...'.shadeicon(I| 0000e710 63 45 64 57 25 2c 31 35 2c 49 63 45 64 5f 49 63 |cEdW%,15,IcEd_Ic| 0000e720 6f 6e 25 3d 2d 34 29 0d 07 12 27 f2 73 68 61 64 |on%=-4)...'.shad| 0000e730 65 69 63 6f 6e 28 49 63 45 64 57 25 2c 31 36 2c |eicon(IcEdW%,16,| 0000e740 49 63 45 64 5f 49 63 6f 6e 25 3d 2d 34 29 0d 07 |IcEd_Icon%=-4)..| 0000e750 13 27 f2 73 68 61 64 65 69 63 6f 6e 28 49 63 45 |.'.shadeicon(IcE| 0000e760 64 57 25 2c 32 30 2c 49 63 45 64 5f 49 63 6f 6e |dW%,20,IcEd_Icon| 0000e770 25 3d 2d 34 29 0d 07 14 27 f2 73 68 61 64 65 69 |%=-4)...'.shadei| 0000e780 63 6f 6e 28 49 63 45 64 57 25 2c 32 31 2c 49 63 |con(IcEdW%,21,Ic| 0000e790 45 64 5f 49 63 6f 6e 25 3d 2d 34 29 0d 07 15 10 |Ed_Icon%=-4)....| 0000e7a0 e3 20 69 25 3d 32 37 20 b8 20 33 32 0d 07 16 29 |. i%=27 . 32...)| 0000e7b0 20 20 f2 73 68 61 64 65 69 63 6f 6e 28 49 63 45 | .shadeicon(IcE| 0000e7c0 64 57 25 2c 69 25 2c 49 63 45 64 5f 49 63 6f 6e |dW%,i%,IcEd_Icon| 0000e7d0 25 3d 2d 34 29 0d 07 17 08 ed 20 69 25 0d 07 18 |%=-4)..... i%...| 0000e7e0 27 f2 73 68 61 64 65 69 63 6f 6e 28 49 63 45 64 |'.shadeicon(IcEd| 0000e7f0 57 25 2c 33 39 2c 49 63 45 64 5f 49 63 6f 6e 25 |W%,39,IcEd_Icon%| 0000e800 3d 2d 34 29 0d 07 19 18 f2 69 63 65 64 5f 73 68 |=-4).....iced_sh| 0000e810 61 64 65 69 63 6f 6e 73 28 2d 31 29 0d 07 1a 19 |adeicons(-1)....| 0000e820 f2 6f 70 65 6e 77 69 6e 64 6f 77 28 49 63 45 64 |.openwindow(IcEd| 0000e830 57 25 2c 30 29 0d 07 1b 0f 63 61 72 65 74 74 6f |W%,0)....caretto| 0000e840 25 3d 2d 31 0d 07 1c 16 e7 20 49 63 45 64 5f 49 |%=-1..... IcEd_I| 0000e850 63 6f 6e 25 3c 3e 2d 31 20 8c 0d 07 1d 1c 20 20 |con%<>-1 ..... | 0000e860 e7 20 69 6e 64 69 72 25 20 8c 20 63 61 72 65 74 |. indir% . caret| 0000e870 74 6f 25 3d 32 35 0d 07 1e 1d 20 20 e7 20 73 70 |to%=25.... . sp| 0000e880 72 69 74 65 25 20 8c 20 63 61 72 65 74 74 6f 25 |rite% . caretto%| 0000e890 3d 32 34 0d 07 1f 1b 20 20 e7 20 74 65 78 74 25 |=24.... . text%| 0000e8a0 20 8c 20 63 61 72 65 74 74 6f 25 3d 32 33 0d 07 | . caretto%=23..| 0000e8b0 20 05 cd 0d 07 21 1e f2 73 65 74 63 61 72 65 74 | ....!..setcaret| 0000e8c0 28 49 63 45 64 57 25 2c 63 61 72 65 74 74 6f 25 |(IcEdW%,caretto%| 0000e8d0 29 0d 07 22 05 e1 0d 07 23 04 0d 07 24 22 dd 20 |).."....#...$". | 0000e8e0 f2 69 63 65 64 5f 73 68 61 64 65 69 63 6f 6e 73 |.iced_shadeicons| 0000e8f0 28 63 6c 69 63 6b 65 64 6f 6e 25 29 0d 07 25 1d |(clickedon%)..%.| 0000e900 ea 20 74 25 2c 73 25 2c 69 25 2c 66 25 2c 6c 6f |. t%,s%,i%,f%,lo| 0000e910 63 6b 61 73 70 65 63 74 25 0d 07 26 16 e7 20 49 |ckaspect%..&.. I| 0000e920 63 45 64 5f 49 63 6f 6e 25 3c 3e 2d 31 20 8c 0d |cEd_Icon%<>-1 ..| 0000e930 07 27 2c 20 20 e7 20 28 63 6c 69 63 6b 65 64 6f |.', . (clickedo| 0000e940 6e 25 3d 2d 31 29 20 84 20 28 63 6c 69 63 6b 65 |n%=-1) . (clicke| 0000e950 64 6f 6e 25 3c 3d 31 34 29 20 8c 0d 07 28 23 20 |don%<=14) ...(# | 0000e960 20 20 20 74 25 3d a4 69 63 6f 6e 73 65 6c 65 63 | t%=.iconselec| 0000e970 74 65 64 28 49 63 45 64 57 25 2c 31 32 29 0d 07 |ted(IcEdW%,12)..| 0000e980 29 23 20 20 20 20 73 25 3d a4 69 63 6f 6e 73 65 |)# s%=.iconse| 0000e990 6c 65 63 74 65 64 28 49 63 45 64 57 25 2c 31 33 |lected(IcEdW%,13| 0000e9a0 29 0d 07 2a 23 20 20 20 20 69 25 3d a4 69 63 6f |)..*# i%=.ico| 0000e9b0 6e 73 65 6c 65 63 74 65 64 28 49 63 45 64 57 25 |nselected(IcEdW%| 0000e9c0 2c 31 34 29 0d 07 2b 22 20 20 20 20 f2 73 68 61 |,14)..+" .sha| 0000e9d0 64 65 69 63 6f 6e 28 49 63 45 64 57 25 2c 32 33 |deicon(IcEdW%,23| 0000e9e0 2c ac 20 74 25 29 0d 07 2c 30 20 20 20 20 f2 73 |,. t%)..,0 .s| 0000e9f0 68 61 64 65 69 63 6f 6e 28 49 63 45 64 57 25 2c |hadeicon(IcEdW%,| 0000ea00 32 34 2c 28 ac 20 73 25 29 20 84 20 28 74 25 20 |24,(. s%) . (t% | 0000ea10 80 20 69 25 29 29 0d 07 2d 28 20 20 20 20 f2 73 |. i%))..-( .s| 0000ea20 68 61 64 65 69 63 6f 6e 28 49 63 45 64 57 25 2c |hadeicon(IcEdW%,| 0000ea30 32 35 2c ac 28 74 25 20 80 20 69 25 29 29 0d 07 |25,.(t% . i%))..| 0000ea40 2e 22 20 20 20 20 f2 73 68 61 64 65 69 63 6f 6e |." .shadeicon| 0000ea50 28 49 63 45 64 57 25 2c 32 36 2c ac 20 69 25 29 |(IcEdW%,26,. i%)| 0000ea60 0d 07 2f 07 20 20 cd 0d 07 30 05 cd 0d 07 31 1f |../. ...0....1.| 0000ea70 66 25 3d a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 |f%=.iconselected| 0000ea80 28 49 63 45 64 57 25 2c 34 31 29 0d 07 32 28 6c |(IcEdW%,41)..2(l| 0000ea90 6f 63 6b 61 73 70 65 63 74 25 3d a4 69 63 6f 6e |ockaspect%=.icon| 0000eaa0 73 65 6c 65 63 74 65 64 28 49 63 45 64 57 25 2c |selected(IcEdW%,| 0000eab0 35 33 29 0d 07 33 29 e7 20 28 63 6c 69 63 6b 65 |53)..3). (clicke| 0000eac0 64 6f 6e 25 3d 2d 31 29 20 84 20 28 63 6c 69 63 |don%=-1) . (clic| 0000ead0 6b 65 64 6f 6e 25 3d 34 31 29 20 8c 0d 07 34 12 |kedon%=41) ...4.| 0000eae0 20 20 e3 20 69 25 3d 33 33 20 b8 20 33 38 0d 07 | . i%=33 . 38..| 0000eaf0 35 20 20 20 20 20 f2 73 68 61 64 65 69 63 6f 6e |5 .shadeicon| 0000eb00 28 49 63 45 64 57 25 2c 69 25 2c 66 25 29 0d 07 |(IcEdW%,i%,f%)..| 0000eb10 36 0a 20 20 ed 20 69 25 0d 07 37 12 20 20 e3 20 |6. . i%..7. . | 0000eb20 69 25 3d 34 35 20 b8 20 34 39 0d 07 38 22 20 20 |i%=45 . 49..8" | 0000eb30 20 20 f2 73 68 61 64 65 69 63 6f 6e 28 49 63 45 | .shadeicon(IcE| 0000eb40 64 57 25 2c 69 25 2c ac 20 66 25 29 0d 07 39 0a |dW%,i%,. f%)..9.| 0000eb50 20 20 ed 20 69 25 0d 07 3a 20 20 20 f2 73 68 61 | . i%..: .sha| 0000eb60 64 65 69 63 6f 6e 28 49 63 45 64 57 25 2c 35 33 |deicon(IcEdW%,53| 0000eb70 2c ac 20 66 25 29 0d 07 3b 05 cd 0d 07 3c 3b e7 |,. f%)..;....<;.| 0000eb80 20 28 63 6c 69 63 6b 65 64 6f 6e 25 3d 2d 31 29 | (clickedon%=-1)| 0000eb90 20 84 20 28 63 6c 69 63 6b 65 64 6f 6e 25 3d 34 | . (clickedon%=4| 0000eba0 31 29 20 84 20 28 63 6c 69 63 6b 65 64 6f 6e 25 |1) . (clickedon%| 0000ebb0 3d 35 33 29 20 8c 0d 07 3d 12 20 20 e3 20 69 25 |=53) ...=. . i%| 0000ebc0 3d 35 30 20 b8 20 35 32 0d 07 3e 32 20 20 20 20 |=50 . 52..>2 | 0000ebd0 f2 73 68 61 64 65 69 63 6f 6e 28 49 63 45 64 57 |.shadeicon(IcEdW| 0000ebe0 25 2c 69 25 2c 28 ac 20 66 25 29 20 84 20 6c 6f |%,i%,(. f%) . lo| 0000ebf0 63 6b 61 73 70 65 63 74 25 29 0d 07 3f 0a 20 20 |ckaspect%)..?. | 0000ec00 ed 20 69 25 0d 07 40 05 cd 0d 07 41 29 c8 99 20 |. i%..@....A).. | 0000ec10 22 57 69 6d 70 5f 47 65 74 43 61 72 65 74 50 6f |"Wimp_GetCaretPo| 0000ec20 73 69 74 69 6f 6e 22 2c 2c 53 63 72 61 70 42 6c |sition",,ScrapBl| 0000ec30 6b 25 0d 07 42 2c e7 20 a4 69 63 6f 6e 73 68 61 |k%..B,. .iconsha| 0000ec40 64 65 64 28 53 63 72 61 70 42 6c 6b 25 21 30 2c |ded(ScrapBlk%!0,| 0000ec50 53 63 72 61 70 42 6c 6b 25 21 34 29 20 8c 0d 07 |ScrapBlk%!4) ...| 0000ec60 43 3a 20 20 f2 73 65 74 63 61 72 65 74 28 49 63 |C: .setcaret(Ic| 0000ec70 45 64 57 25 2c 2d 31 29 20 3a 20 f4 20 6d 6f 76 |EdW%,-1) : . mov| 0000ec80 65 20 63 61 72 65 74 20 66 72 6f 6d 20 73 68 61 |e caret from sha| 0000ec90 64 65 64 20 69 63 6f 6e 0d 07 44 05 cd 0d 07 45 |ded icon..D....E| 0000eca0 05 e1 0d 07 46 04 0d 07 47 1a dd 20 f2 69 63 65 |....F...G.. .ice| 0000ecb0 64 5f 72 65 61 64 77 69 6e 28 6d 61 73 6b 25 29 |d_readwin(mask%)| 0000ecc0 0d 07 48 30 ea 20 66 6c 61 67 73 25 2c 66 6c 61 |..H0. flags%,fla| 0000ecd0 67 70 74 72 25 2c 64 61 74 61 25 2c 69 62 25 2c |gptr%,data%,ib%,| 0000ece0 63 62 70 25 2c 78 73 69 7a 65 2c 79 73 69 7a 65 |cbp%,xsize,ysize| 0000ecf0 0d 07 49 20 ea 20 78 73 69 7a 65 31 36 25 2c 79 |..I . xsize16%,y| 0000ed00 73 69 7a 65 31 36 25 2c 66 68 61 6e 64 6c 65 25 |size16%,fhandle%| 0000ed10 0d 07 4a 21 ea 20 69 25 2c 74 25 2c 73 25 2c 64 |..J!. i%,t%,s%,d| 0000ed20 65 66 6c 65 6e 25 2c 6d 61 78 6c 65 6e 25 2c 70 |eflen%,maxlen%,p| 0000ed30 25 0d 07 4b 17 57 69 6e 42 6c 6b 25 21 30 3d 49 |%..K.WinBlk%!0=I| 0000ed40 63 45 64 5f 57 69 6e 25 0d 07 4c 24 c8 99 20 22 |cEd_Win%..L$.. "| 0000ed50 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 49 6e |Wimp_GetWindowIn| 0000ed60 66 6f 22 2c 2c 57 69 6e 42 6c 6b 25 0d 07 4d 13 |fo",,WinBlk%..M.| 0000ed70 c8 8e 20 49 63 45 64 5f 49 63 6f 6e 25 20 ca 0d |.. IcEd_Icon% ..| 0000ed80 07 4e 26 20 20 c9 20 2d 34 20 20 3a 20 f4 20 65 |.N& . -4 : . e| 0000ed90 64 69 74 69 6e 67 20 74 69 74 6c 65 20 62 61 72 |diting title bar| 0000eda0 20 69 63 6f 6e 0d 07 4f 1b 20 20 20 20 66 6c 61 | icon..O. fla| 0000edb0 67 70 74 72 25 3d 57 69 6e 42 6c 6b 25 2b 36 30 |gptr%=WinBlk%+60| 0000edc0 0d 07 50 18 20 20 20 20 64 61 74 61 25 3d 57 69 |..P. data%=Wi| 0000edd0 6e 42 6c 6b 25 2b 37 36 0d 07 51 3e 20 20 c9 20 |nBlk%+76..Q> . | 0000ede0 2d 31 20 20 3a 20 f4 20 65 64 69 74 69 6e 67 20 |-1 : . editing | 0000edf0 73 65 6c 65 63 74 69 6f 6e 20 28 72 65 61 64 20 |selection (read | 0000ee00 66 6c 61 67 73 20 66 72 6f 6d 20 66 69 72 73 74 |flags from first| 0000ee10 20 69 63 6f 6e 29 0d 07 52 1b 20 20 20 20 f2 73 | icon)..R. .s| 0000ee20 65 6c 5f 67 65 74 28 49 63 45 64 5f 57 69 6e 25 |el_get(IcEd_Win%| 0000ee30 29 0d 07 53 2d 20 20 20 20 66 6c 61 67 70 74 72 |)..S- flagptr| 0000ee40 25 3d 57 69 6e 42 6c 6b 25 2b 39 32 2b 33 32 2a |%=WinBlk%+92+32*| 0000ee50 28 53 65 6c 42 6c 6b 25 21 30 29 2b 31 36 0d 07 |(SelBlk%!0)+16..| 0000ee60 54 2a 20 20 20 20 64 61 74 61 25 3d 57 69 6e 42 |T* data%=WinB| 0000ee70 6c 6b 25 2b 39 32 2b 33 32 2a 28 53 65 6c 42 6c |lk%+92+32*(SelBl| 0000ee80 6b 25 21 30 29 2b 32 30 0d 07 55 1f 20 20 7f 20 |k%!0)+20..U. . | 0000ee90 3a 20 f4 20 65 64 69 74 69 6e 67 20 73 69 6e 67 |: . editing sing| 0000eea0 6c 65 20 69 63 6f 6e 0d 07 56 19 20 20 20 20 e7 |le icon..V. .| 0000eeb0 20 49 63 45 64 5f 49 63 6f 6e 25 3e 3d 30 20 8c | IcEd_Icon%>=0 .| 0000eec0 0d 07 57 2e 20 20 20 20 20 20 66 6c 61 67 70 74 |..W. flagpt| 0000eed0 72 25 3d 57 69 6e 42 6c 6b 25 2b 39 32 2b 33 32 |r%=WinBlk%+92+32| 0000eee0 2a 49 63 45 64 5f 49 63 6f 6e 25 2b 31 36 0d 07 |*IcEd_Icon%+16..| 0000eef0 58 2b 20 20 20 20 20 20 64 61 74 61 25 3d 57 69 |X+ data%=Wi| 0000ef00 6e 42 6c 6b 25 2b 39 32 2b 33 32 2a 49 63 45 64 |nBlk%+92+32*IcEd| 0000ef10 5f 49 63 6f 6e 25 2b 32 30 0d 07 59 26 20 20 20 |_Icon%+20..Y& | 0000ef20 20 20 20 69 62 25 3d 57 69 6e 42 6c 6b 25 2b 39 | ib%=WinBlk%+9| 0000ef30 32 2b 33 32 2a 49 63 45 64 5f 49 63 6f 6e 25 0d |2+32*IcEd_Icon%.| 0000ef40 07 5a 09 20 20 20 20 cd 0d 07 5b 05 cb 0d 07 5c |.Z. ...[....\| 0000ef50 13 63 62 70 25 3d 57 69 6e 42 6c 6b 25 21 36 38 |.cbp%=WinBlk%!68| 0000ef60 0d 07 5d 3d f4 20 63 6f 6e 73 74 72 75 63 74 20 |..]=. construct | 0000ef70 6e 65 77 20 66 6c 61 67 73 2c 20 62 75 74 20 64 |new flags, but d| 0000ef80 6f 20 6e 6f 74 20 63 68 61 6e 67 65 20 22 73 65 |o not change "se| 0000ef90 6c 65 63 74 65 64 22 20 73 74 61 74 65 0d 07 5e |lected" state..^| 0000efa0 21 66 6c 61 67 73 25 3d 28 66 6c 61 67 70 74 72 |!flags%=(flagptr| 0000efb0 25 21 30 29 20 80 20 28 31 3c 3c 32 31 29 0d 07 |%!0) . (1<<21)..| 0000efc0 5f 2f e7 20 a4 69 63 6f 6e 73 65 6c 65 63 74 65 |_/. .iconselecte| 0000efd0 64 28 49 63 45 64 57 25 2c 31 35 29 20 8c 20 66 |d(IcEdW%,15) . f| 0000efe0 6c 61 67 73 25 2b 3d 28 31 3c 3c 32 29 0d 07 60 |lags%+=(1<<2)..`| 0000eff0 2f e7 20 a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 |/. .iconselected| 0000f000 28 49 63 45 64 57 25 2c 31 36 29 20 8c 20 66 6c |(IcEdW%,16) . fl| 0000f010 61 67 73 25 2b 3d 28 31 3c 3c 35 29 0d 07 61 2f |ags%+=(1<<5)..a/| 0000f020 e7 20 a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 28 |. .iconselected(| 0000f030 49 63 45 64 57 25 2c 31 37 29 20 8c 20 66 6c 61 |IcEdW%,17) . fla| 0000f040 67 73 25 2b 3d 28 31 3c 3c 33 29 0d 07 62 2f e7 |gs%+=(1<<3)..b/.| 0000f050 20 a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 28 49 | .iconselected(I| 0000f060 63 45 64 57 25 2c 31 38 29 20 8c 20 66 6c 61 67 |cEdW%,18) . flag| 0000f070 73 25 2b 3d 28 31 3c 3c 34 29 0d 07 63 2f e7 20 |s%+=(1<<4)..c/. | 0000f080 a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 28 49 63 |.iconselected(Ic| 0000f090 45 64 57 25 2c 31 39 29 20 8c 20 66 6c 61 67 73 |EdW%,19) . flags| 0000f0a0 25 2b 3d 28 31 3c 3c 39 29 0d 07 64 2f e7 20 a4 |%+=(1<<9)..d/. .| 0000f0b0 69 63 6f 6e 73 65 6c 65 63 74 65 64 28 49 63 45 |iconselected(IcE| 0000f0c0 64 57 25 2c 32 30 29 20 8c 20 66 6c 61 67 73 25 |dW%,20) . flags%| 0000f0d0 2b 3d 28 31 3c 3c 37 29 0d 07 65 30 e7 20 a4 69 |+=(1<<7)..e0. .i| 0000f0e0 63 6f 6e 73 65 6c 65 63 74 65 64 28 49 63 45 64 |conselected(IcEd| 0000f0f0 57 25 2c 32 31 29 20 8c 20 66 6c 61 67 73 25 2b |W%,21) . flags%+| 0000f100 3d 28 31 3c 3c 31 30 29 0d 07 66 30 e7 20 a4 69 |=(1<<10)..f0. .i| 0000f110 63 6f 6e 73 65 6c 65 63 74 65 64 28 49 63 45 64 |conselected(IcEd| 0000f120 57 25 2c 32 32 29 20 8c 20 66 6c 61 67 73 25 2b |W%,22) . flags%+| 0000f130 3d 28 31 3c 3c 31 31 29 0d 07 67 30 e7 20 a4 69 |=(1<<11)..g0. .i| 0000f140 63 6f 6e 73 65 6c 65 63 74 65 64 28 49 63 45 64 |conselected(IcEd| 0000f150 57 25 2c 33 39 29 20 8c 20 66 6c 61 67 73 25 2b |W%,39) . flags%+| 0000f160 3d 28 31 3c 3c 32 32 29 0d 07 68 1e 66 6c 61 67 |=(1<<22)..h.flag| 0000f170 73 25 2b 3d 28 49 63 45 64 5f 42 75 74 74 6f 6e |s%+=(IcEd_Button| 0000f180 25 3c 3c 31 32 29 0d 07 69 1b 66 6c 61 67 73 25 |%<<12)..i.flags%| 0000f190 2b 3d 28 49 63 45 64 5f 45 73 67 25 3c 3c 31 36 |+=(IcEd_Esg%<<16| 0000f1a0 29 0d 07 6a 20 e7 20 a4 69 63 6f 6e 73 65 6c 65 |)..j . .iconsele| 0000f1b0 63 74 65 64 28 49 63 45 64 57 25 2c 34 31 29 20 |cted(IcEdW%,41) | 0000f1c0 8c 0d 07 6b 14 20 20 66 6c 61 67 73 25 2b 3d 28 |...k. flags%+=(| 0000f1d0 31 3c 3c 36 29 0d 07 6c 1f 20 20 78 73 69 7a 65 |1<<6)..l. xsize| 0000f1e0 31 36 25 3d a8 28 49 63 45 64 5f 58 73 69 7a 65 |16%=.(IcEd_Xsize| 0000f1f0 2a 31 36 29 0d 07 6d 1f 20 20 79 73 69 7a 65 31 |*16)..m. ysize1| 0000f200 36 25 3d a8 28 49 63 45 64 5f 59 73 69 7a 65 2a |6%=.(IcEd_Ysize*| 0000f210 31 36 29 0d 07 6e 24 20 20 e7 20 78 73 69 7a 65 |16)..n$ . xsize| 0000f220 31 36 25 3c 3d 30 20 8c 20 78 73 69 7a 65 31 36 |16%<=0 . xsize16| 0000f230 25 3d 31 32 2a 31 36 0d 07 6f 24 20 20 e7 20 79 |%=12*16..o$ . y| 0000f240 73 69 7a 65 31 36 25 3c 3d 30 20 8c 20 79 73 69 |size16%<=0 . ysi| 0000f250 7a 65 31 36 25 3d 31 32 2a 31 36 0d 07 70 48 20 |ze16%=12*16..pH | 0000f260 20 c8 99 20 22 46 6f 6e 74 5f 46 69 6e 64 46 6f | .. "Font_FindFo| 0000f270 6e 74 22 2c 2c 49 63 6f 6e 54 65 78 74 25 28 31 |nt",,IconText%(1| 0000f280 39 29 2c 78 73 69 7a 65 31 36 25 2c 79 73 69 7a |9),xsize16%,ysiz| 0000f290 65 31 36 25 2c 30 2c 30 20 b8 20 66 68 61 6e 64 |e16%,0,0 . fhand| 0000f2a0 6c 65 25 0d 07 71 20 20 20 e7 20 46 6f 6e 74 55 |le%..q . FontU| 0000f2b0 73 61 67 65 25 28 66 68 61 6e 64 6c 65 25 29 3e |sage%(fhandle%)>| 0000f2c0 30 20 8c 0d 07 72 3f 20 20 20 20 c8 99 20 22 46 |0 ...r? .. "F| 0000f2d0 6f 6e 74 5f 4c 6f 73 65 46 6f 6e 74 22 2c 66 68 |ont_LoseFont",fh| 0000f2e0 61 6e 64 6c 65 25 20 3a 20 f4 20 66 6f 6e 74 20 |andle% : . font | 0000f2f0 77 61 73 20 61 6c 72 65 61 64 79 20 69 6e 20 75 |was already in u| 0000f300 73 65 0d 07 73 07 20 20 cd 0d 07 74 1d 20 20 46 |se..s. ...t. F| 0000f310 6f 6e 74 55 73 61 67 65 25 28 66 68 61 6e 64 6c |ontUsage%(fhandl| 0000f320 65 25 29 2b 3d 31 0d 07 75 1c 20 20 66 6c 61 67 |e%)+=1..u. flag| 0000f330 73 25 2b 3d 28 66 68 61 6e 64 6c 65 25 3c 3c 32 |s%+=(fhandle%<<2| 0000f340 34 29 0d 07 76 05 cc 0d 07 77 1f 20 20 66 6c 61 |4)..v....w. fla| 0000f350 67 73 25 2b 3d 28 49 63 45 64 5f 46 67 63 6f 6c |gs%+=(IcEd_Fgcol| 0000f360 25 3c 3c 32 34 29 0d 07 78 1f 20 20 66 6c 61 67 |%<<24)..x. flag| 0000f370 73 25 2b 3d 28 49 63 45 64 5f 42 67 63 6f 6c 25 |s%+=(IcEd_Bgcol%| 0000f380 3c 3c 32 38 29 0d 07 79 05 cd 0d 07 7a 27 e7 20 |<<28)..y....z'. | 0000f390 28 49 63 45 64 5f 49 63 6f 6e 25 3e 3d 30 29 84 |(IcEd_Icon%>=0).| 0000f3a0 28 49 63 45 64 5f 49 63 6f 6e 25 3d 2d 34 29 20 |(IcEd_Icon%=-4) | 0000f3b0 8c 0d 07 7b 24 20 20 f2 69 63 6f 6e 72 65 6c 65 |...{$ .iconrele| 0000f3c0 61 73 65 28 66 6c 61 67 70 74 72 25 21 30 2c 64 |ase(flagptr%!0,d| 0000f3d0 61 74 61 25 29 0d 07 7c 21 20 20 74 25 3d a4 69 |ata%)..|! t%=.i| 0000f3e0 63 6f 6e 73 65 6c 65 63 74 65 64 28 49 63 45 64 |conselected(IcEd| 0000f3f0 57 25 2c 31 32 29 0d 07 7d 21 20 20 73 25 3d a4 |W%,12)..}! s%=.| 0000f400 69 63 6f 6e 73 65 6c 65 63 74 65 64 28 49 63 45 |iconselected(IcE| 0000f410 64 57 25 2c 31 33 29 0d 07 7e 21 20 20 69 25 3d |dW%,13)..~! i%=| 0000f420 a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 28 49 63 |.iconselected(Ic| 0000f430 45 64 57 25 2c 31 34 29 0d 07 7f 15 20 20 e7 20 |EdW%,14).... . | 0000f440 73 25 20 80 20 28 ac 20 74 25 29 20 8c 0d 07 80 |s% . (. t%) ....| 0000f450 3d 20 20 20 20 64 65 66 6c 65 6e 25 3d a9 28 24 |= deflen%=.($| 0000f460 28 49 63 6f 6e 54 65 78 74 25 28 31 29 29 29 2b |(IconText%(1)))+| 0000f470 31 20 3a 20 f4 20 64 65 66 61 75 6c 74 20 6d 61 |1 : . default ma| 0000f480 78 69 6d 75 6d 20 73 69 7a 65 0d 07 81 07 20 20 |ximum size.... | 0000f490 cc 0d 07 82 24 20 20 20 20 64 65 66 6c 65 6e 25 |....$ deflen%| 0000f4a0 3d a9 28 24 28 49 63 6f 6e 54 65 78 74 25 28 30 |=.($(IconText%(0| 0000f4b0 29 29 29 2b 31 0d 07 83 07 20 20 cd 0d 07 84 0c |)))+1.... .....| 0000f4c0 20 20 e7 20 69 25 20 8c 0d 07 85 22 20 20 20 20 | . i% ...." | 0000f4d0 6d 61 78 6c 65 6e 25 3d bb 28 24 28 49 63 6f 6e |maxlen%=.($(Icon| 0000f4e0 54 65 78 74 25 28 33 29 29 29 0d 07 86 07 20 20 |Text%(3))).... | 0000f4f0 cc 0d 07 87 12 20 20 20 20 6d 61 78 6c 65 6e 25 |..... maxlen%| 0000f500 3d 31 32 0d 07 88 07 20 20 cd 0d 07 89 19 20 20 |=12.... ..... | 0000f510 e7 20 6d 61 78 6c 65 6e 25 3c 64 65 66 6c 65 6e |. maxlen%<deflen| 0000f520 25 20 8c 0d 07 8a 4e 20 20 20 20 6d 61 78 6c 65 |% ....N maxle| 0000f530 6e 25 3d 64 65 66 6c 65 6e 25 20 20 20 20 20 20 |n%=deflen% | 0000f540 20 20 20 20 20 20 20 20 20 20 3a 20 f4 20 69 6e | : . in| 0000f550 63 72 65 61 73 65 20 6d 61 78 20 73 69 7a 65 20 |crease max size | 0000f560 69 66 20 74 65 78 74 20 69 73 20 6c 6f 6e 67 65 |if text is longe| 0000f570 72 0d 07 8b 22 20 20 20 20 f2 73 65 74 69 63 6f |r..." .setico| 0000f580 6e 74 65 78 74 28 33 2c c3 28 6d 61 78 6c 65 6e |ntext(3,.(maxlen| 0000f590 25 29 29 0d 07 8c 07 20 20 cd 0d 07 8d 1f 20 20 |%)).... ..... | 0000f5a0 e7 20 28 ac 20 69 25 29 20 80 20 28 64 65 66 6c |. (. i%) . (defl| 0000f5b0 65 6e 25 3e 31 32 29 20 8c 0d 07 8e 45 20 20 20 |en%>12) ....E | 0000f5c0 20 f2 73 65 6c 65 63 74 69 63 6f 6e 28 49 63 45 | .selecticon(IcE| 0000f5d0 64 57 25 2c 31 34 2c 31 29 20 20 20 20 3a 20 f4 |dW%,14,1) : .| 0000f5e0 20 6d 61 6b 65 20 69 6e 64 69 72 65 63 74 65 64 | make indirected| 0000f5f0 20 69 66 20 3e 20 31 32 20 63 68 61 72 73 0d 07 | if > 12 chars..| 0000f600 8f 41 20 20 20 20 f2 73 65 74 69 63 6f 6e 74 65 |.A .seticonte| 0000f610 78 74 28 32 2c 22 22 29 20 20 20 20 20 20 20 20 |xt(2,"") | 0000f620 20 20 3a 20 f4 20 64 65 66 61 75 6c 74 20 76 61 | : . default va| 0000f630 6c 69 64 61 74 69 6f 6e 20 73 74 72 69 6e 67 0d |lidation string.| 0000f640 07 90 1c 20 20 20 20 f2 69 63 65 64 5f 73 68 61 |... .iced_sha| 0000f650 64 65 69 63 6f 6e 73 28 31 34 29 0d 07 91 0c 20 |deicons(14).... | 0000f660 20 20 20 69 25 3d b9 0d 07 92 07 20 20 cd 0d 07 | i%=..... ...| 0000f670 93 1b 20 20 e7 20 74 25 20 8c 20 66 6c 61 67 73 |.. . t% . flags| 0000f680 25 2b 3d 28 31 3c 3c 30 29 0d 07 94 1b 20 20 e7 |%+=(1<<0).... .| 0000f690 20 73 25 20 8c 20 66 6c 61 67 73 25 2b 3d 28 31 | s% . flags%+=(1| 0000f6a0 3c 3c 31 29 0d 07 95 1b 20 20 e7 20 69 25 20 8c |<<1).... . i% .| 0000f6b0 20 66 6c 61 67 73 25 2b 3d 28 31 3c 3c 38 29 0d | flags%+=(1<<8).| 0000f6c0 07 96 0c 20 20 e7 20 69 25 20 8c 0d 07 97 17 20 |... . i% ..... | 0000f6d0 20 20 20 e7 20 73 25 20 80 20 28 ac 20 74 25 29 | . s% . (. t%)| 0000f6e0 20 8c 0d 07 98 1e 20 20 20 20 20 20 64 61 74 61 | ..... data| 0000f6f0 25 21 30 3d 49 63 6f 6e 54 65 78 74 25 28 31 29 |%!0=IconText%(1)| 0000f700 0d 07 99 44 20 20 20 20 20 20 64 61 74 61 25 21 |...D data%!| 0000f710 34 3d 63 62 70 25 20 3a 20 f4 20 77 69 6e 64 6f |4=cbp% : . windo| 0000f720 77 20 43 42 50 20 61 73 20 64 65 66 61 75 6c 74 |w CBP as default| 0000f730 20 73 70 72 69 74 65 20 61 72 65 61 20 70 6f 69 | sprite area poi| 0000f740 6e 74 65 72 0d 07 9a 09 20 20 20 20 cd 0d 07 9b |nter.... ....| 0000f750 0e 20 20 20 20 e7 20 74 25 20 8c 0d 07 9c 1e 20 |. . t% ..... | 0000f760 20 20 20 20 20 64 61 74 61 25 21 30 3d 49 63 6f | data%!0=Ico| 0000f770 6e 54 65 78 74 25 28 30 29 0d 07 9d 22 20 20 20 |nText%(0)..." | 0000f780 20 20 20 e7 20 a9 28 24 28 49 63 6f 6e 54 65 78 | . .($(IconTex| 0000f790 74 25 28 32 29 29 29 3e 30 20 8c 0d 07 9e 20 20 |t%(2)))>0 .... | 0000f7a0 20 20 20 20 20 20 20 64 61 74 61 25 21 34 3d 49 | data%!4=I| 0000f7b0 63 6f 6e 54 65 78 74 25 28 32 29 0d 07 9f 0b 20 |conText%(2).... | 0000f7c0 20 20 20 20 20 cc 0d 07 a0 32 20 20 20 20 20 20 | ....2 | 0000f7d0 20 20 64 61 74 61 25 21 34 3d 2d 31 20 3a 20 f4 | data%!4=-1 : .| 0000f7e0 20 65 6d 70 74 79 20 76 61 6c 69 64 61 74 69 6f | empty validatio| 0000f7f0 6e 20 73 74 72 69 6e 67 0d 07 a1 0b 20 20 20 20 |n string.... | 0000f800 20 20 cd 0d 07 a2 09 20 20 20 20 cd 0d 07 a3 17 | ..... .....| 0000f810 20 20 20 20 64 61 74 61 25 21 38 3d 6d 61 78 6c | data%!8=maxl| 0000f820 65 6e 25 0d 07 a4 07 20 20 cc 0d 07 a5 0e 20 20 |en%.... ..... | 0000f830 20 20 e7 20 74 25 20 8c 0d 07 a6 22 20 20 20 20 | . t% ...." | 0000f840 20 20 24 28 64 61 74 61 25 29 3d 24 28 49 63 6f | $(data%)=$(Ico| 0000f850 6e 54 65 78 74 25 28 30 29 29 0d 07 a7 09 20 20 |nText%(0)).... | 0000f860 20 20 cc 0d 07 a8 10 20 20 20 20 20 20 e7 20 73 | ..... . s| 0000f870 25 20 8c 0d 07 a9 24 20 20 20 20 20 20 20 20 24 |% ....$ $| 0000f880 28 64 61 74 61 25 29 3d 24 28 49 63 6f 6e 54 65 |(data%)=$(IconTe| 0000f890 78 74 25 28 31 29 29 0d 07 aa 0b 20 20 20 20 20 |xt%(1)).... | 0000f8a0 20 cd 0d 07 ab 09 20 20 20 20 cd 0d 07 ac 07 20 | ..... ..... | 0000f8b0 20 cd 0d 07 ad 17 20 20 66 6c 61 67 70 74 72 25 | ..... flagptr%| 0000f8c0 21 30 3d 66 6c 61 67 73 25 0d 07 ae 22 20 20 f2 |!0=flags%..." .| 0000f8d0 69 63 6f 6e 72 65 61 6c 6c 6f 63 28 66 6c 61 67 |iconrealloc(flag| 0000f8e0 70 74 72 25 2c 64 61 74 61 25 29 0d 07 af 05 cd |ptr%,data%).....| 0000f8f0 0d 07 b0 13 c8 8e 20 49 63 45 64 5f 49 63 6f 6e |...... IcEd_Icon| 0000f900 25 20 ca 0d 07 b1 0a 20 20 c9 20 2d 34 0d 07 b2 |% ..... . -4...| 0000f910 1e 20 20 20 20 57 69 6e 42 6c 6b 25 3f 33 36 3d |. WinBlk%?36=| 0000f920 49 63 45 64 5f 46 67 63 6f 6c 25 0d 07 b3 1e 20 |IcEd_Fgcol%.... | 0000f930 20 20 20 57 69 6e 42 6c 6b 25 3f 33 37 3d 49 63 | WinBlk%?37=Ic| 0000f940 45 64 5f 42 67 63 6f 6c 25 0d 07 b4 2c 20 20 20 |Ed_Bgcol%..., | 0000f950 20 49 63 45 64 5f 57 69 6e 25 3d a4 72 65 64 65 | IcEd_Win%=.rede| 0000f960 66 69 6e 65 77 69 6e 64 6f 77 28 57 69 6e 42 6c |finewindow(WinBl| 0000f970 6b 25 2c 31 29 0d 07 b5 0a 20 20 c9 20 2d 31 0d |k%,1).... . -1.| 0000f980 07 b6 41 20 20 20 20 f4 20 64 6f 20 6e 6f 74 20 |..A . do not | 0000f990 63 68 61 6e 67 65 20 74 65 78 74 2c 20 73 70 72 |change text, spr| 0000f9a0 69 74 65 20 61 6e 64 20 69 6e 64 69 72 20 66 6c |ite and indir fl| 0000f9b0 61 67 73 20 6f 66 20 73 65 6c 65 63 74 69 6f 6e |ags of selection| 0000f9c0 0d 07 b7 1e 20 20 20 20 6d 61 73 6b 25 3d 6d 61 |.... mask%=ma| 0000f9d0 73 6b 25 20 80 20 28 ac 20 26 31 30 33 29 0d 07 |sk% . (. &103)..| 0000f9e0 b8 19 20 20 20 20 e7 20 4e 72 53 65 6c 65 63 74 |.. . NrSelect| 0000f9f0 65 64 25 3e 30 20 8c 0d 07 b9 20 20 20 20 20 20 |ed%>0 .... | 0000fa00 20 e3 20 69 25 3d 30 20 b8 20 4e 72 53 65 6c 65 | . i%=0 . NrSele| 0000fa10 63 74 65 64 25 2d 31 0d 07 ba 48 20 20 20 20 20 |cted%-1...H | 0000fa20 20 20 20 f2 73 65 74 69 63 6f 6e 73 74 61 74 65 | .seticonstate| 0000fa30 28 49 63 45 64 5f 57 69 6e 25 2c 53 65 6c 42 6c |(IcEd_Win%,SelBl| 0000fa40 6b 25 21 28 34 2a 69 25 29 2c 66 6c 61 67 73 25 |k%!(4*i%),flags%| 0000fa50 20 80 20 6d 61 73 6b 25 2c 6d 61 73 6b 25 29 0d | . mask%,mask%).| 0000fa60 07 bb 0e 20 20 20 20 20 20 ed 20 69 25 0d 07 bc |... . i%...| 0000fa70 09 20 20 20 20 cc 0d 07 bd 1c 20 20 20 20 20 20 |. ..... | 0000fa80 f2 64 69 61 6c 6f 67 75 65 28 39 2c 22 22 2c 22 |.dialogue(9,"","| 0000fa90 22 29 0d 07 be 09 20 20 20 20 cd 0d 07 bf 07 20 |").... ..... | 0000faa0 20 7f 0d 07 c0 19 20 20 20 20 e7 20 49 63 45 64 | ..... . IcEd| 0000fab0 5f 49 63 6f 6e 25 3e 3d 30 20 8c 0d 07 c1 3e 20 |_Icon%>=0 ....> | 0000fac0 20 20 20 20 20 49 63 45 64 5f 49 63 6f 6e 25 3d | IcEd_Icon%=| 0000fad0 a4 72 65 64 65 66 69 6e 65 69 63 6f 6e 28 49 63 |.redefineicon(Ic| 0000fae0 45 64 5f 57 69 6e 25 2c 49 63 45 64 5f 49 63 6f |Ed_Win%,IcEd_Ico| 0000faf0 6e 25 2c 69 62 25 2d 38 29 0d 07 c2 09 20 20 20 |n%,ib%-8).... | 0000fb00 20 cc 0d 07 c3 1c 20 20 20 20 20 20 f2 64 69 61 | ..... .dia| 0000fb10 6c 6f 67 75 65 28 34 2c 22 22 2c 22 22 29 0d 07 |logue(4,"","")..| 0000fb20 c4 09 20 20 20 20 cd 0d 07 c5 05 cb 0d 07 c6 20 |.. ......... | 0000fb30 e7 20 a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 28 |. .iconselected(| 0000fb40 49 63 45 64 57 25 2c 34 31 29 20 8c 0d 07 c7 41 |IcEdW%,41) ....A| 0000fb50 20 20 f4 20 66 6f 6e 74 20 63 6f 75 6e 74 20 77 | . font count w| 0000fb60 61 73 20 69 6e 63 72 65 61 73 65 64 20 65 61 72 |as increased ear| 0000fb70 6c 69 65 72 20 77 68 65 6e 20 66 69 6e 64 69 6e |lier when findin| 0000fb80 67 20 66 6f 6e 74 20 68 61 6e 64 6c 65 0d 07 c8 |g font handle...| 0000fb90 1a 20 20 f2 66 6f 6e 74 5f 6c 6f 73 65 28 66 68 |. .font_lose(fh| 0000fba0 61 6e 64 6c 65 25 29 0d 07 c9 05 cd 0d 07 ca 12 |andle%).........| 0000fbb0 f2 73 65 74 63 68 61 6e 67 65 64 28 b9 29 0d 07 |.setchanged(.)..| 0000fbc0 cb 05 e1 0d 07 cc 04 0d 07 cd 18 f4 20 2a 2a 2a |............ ***| 0000fbd0 20 6d 65 6e 75 20 70 72 6f 63 73 20 2a 2a 2a 0d | menu procs ***.| 0000fbe0 07 ce 04 0d 07 cf 27 dd 20 a4 6d 65 6e 75 5f 61 |......'. .menu_a| 0000fbf0 64 64 28 74 65 78 74 24 2c 73 75 62 6d 65 6e 75 |dd(text$,submenu| 0000fc00 25 2c 67 65 6e 6d 73 67 25 29 0d 07 d0 0d ea 20 |%,genmsg%)..... | 0000fc10 68 61 6e 64 6c 65 25 0d 07 d1 26 c8 99 20 22 4d |handle%...&.. "M| 0000fc20 65 6e 75 55 74 69 6c 5f 41 64 64 22 2c 2c 74 65 |enuUtil_Add",,te| 0000fc30 78 74 24 20 b8 20 68 61 6e 64 6c 65 25 0d 07 d2 |xt$ . handle%...| 0000fc40 3b e7 20 73 75 62 6d 65 6e 75 25 3c 3e 2d 31 20 |;. submenu%<>-1 | 0000fc50 8c 20 c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f 53 |. .. "MenuUtil_S| 0000fc60 75 62 4d 65 6e 75 22 2c 68 61 6e 64 6c 65 25 2c |ubMenu",handle%,| 0000fc70 73 75 62 6d 65 6e 75 25 0d 07 d3 2f e7 20 67 65 |submenu%.../. ge| 0000fc80 6e 6d 73 67 25 20 8c 20 c8 99 20 22 4d 65 6e 75 |nmsg% . .. "Menu| 0000fc90 55 74 69 6c 5f 57 61 72 6e 69 6e 67 22 2c 68 61 |Util_Warning",ha| 0000fca0 6e 64 6c 65 25 2c 31 0d 07 d4 0c 3d 68 61 6e 64 |ndle%,1....=hand| 0000fcb0 6c 65 25 0d 07 d5 04 0d 07 d6 2a dd 20 a4 6d 65 |le%.......*. .me| 0000fcc0 6e 75 5f 61 64 64 77 72 69 74 61 62 6c 65 28 6d |nu_addwritable(m| 0000fcd0 61 78 6c 65 6e 25 2c 76 61 6c 69 64 73 74 72 25 |axlen%,validstr%| 0000fce0 29 0d 07 d7 0d ea 20 68 61 6e 64 6c 65 25 0d 07 |)..... handle%..| 0000fcf0 d8 23 c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f 41 |.#.. "MenuUtil_A| 0000fd00 64 64 22 2c 2c 22 22 20 b8 20 68 61 6e 64 6c 65 |dd",,"" . handle| 0000fd10 25 0d 07 d9 2f c8 99 20 22 4d 65 6e 75 55 74 69 |%.../.. "MenuUti| 0000fd20 6c 5f 57 72 69 74 61 62 6c 65 22 2c 2c 31 2c 6d |l_Writable",,1,m| 0000fd30 61 78 6c 65 6e 25 2c 76 61 6c 69 64 73 74 72 25 |axlen%,validstr%| 0000fd40 0d 07 da 0c 3d 68 61 6e 64 6c 65 25 0d 07 db 04 |....=handle%....| 0000fd50 0d 07 dc 13 dd 20 f2 70 72 65 70 61 72 65 6d 65 |..... .prepareme| 0000fd60 6e 75 73 0d 07 dd 08 ea 20 69 25 0d 07 de 22 c8 |nus..... i%...".| 0000fd70 99 20 22 4d 65 6e 75 55 74 69 6c 5f 49 6e 69 74 |. "MenuUtil_Init| 0000fd80 69 61 6c 69 73 65 22 2c 30 31 30 2c 30 0d 07 df |ialise",010,0...| 0000fd90 2f c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f 4e 65 |/.. "MenuUtil_Ne| 0000fda0 77 22 2c 2c 22 53 70 72 69 74 65 73 22 20 b8 20 |w",,"Sprites" . | 0000fdb0 53 70 72 69 74 65 73 4d 65 6e 75 25 0d 07 e0 2d |SpritesMenu%...-| 0000fdc0 69 74 65 6d 5f 73 70 72 76 69 65 77 25 3d a4 6d |item_sprview%=.m| 0000fdd0 65 6e 75 5f 61 64 64 28 22 56 69 65 77 2f 45 64 |enu_add("View/Ed| 0000fde0 69 74 22 2c 2d 31 2c 30 29 0d 07 e1 2d 69 74 65 |it",-1,0)...-ite| 0000fdf0 6d 5f 73 70 72 72 65 6c 6f 61 64 25 3d a4 6d 65 |m_sprreload%=.me| 0000fe00 6e 75 5f 61 64 64 28 22 52 65 2d 6c 6f 61 64 22 |nu_add("Re-load"| 0000fe10 2c 2d 31 2c 30 29 0d 07 e2 2a 69 74 65 6d 5f 73 |,-1,0)...*item_s| 0000fe20 70 72 72 65 73 65 74 25 3d a4 6d 65 6e 75 5f 61 |prreset%=.menu_a| 0000fe30 64 64 28 22 52 65 73 65 74 22 2c 2d 31 2c 30 29 |dd("Reset",-1,0)| 0000fe40 0d 07 e3 16 f4 20 2d 2d 2d 20 69 63 6f 6e 62 61 |..... --- iconba| 0000fe50 72 20 6d 65 6e 75 0d 07 e4 28 c8 99 20 22 4d 65 |r menu...(.. "Me| 0000fe60 6e 75 55 74 69 6c 5f 4e 65 77 22 2c 2c 41 70 70 |nuUtil_New",,App| 0000fe70 6c 24 20 b8 20 4d 61 69 6e 4d 65 6e 75 25 0d 07 |l$ . MainMenu%..| 0000fe80 e5 29 69 74 65 6d 5f 69 6e 66 6f 25 3d a4 6d 65 |.)item_info%=.me| 0000fe90 6e 75 5f 61 64 64 28 22 49 6e 66 6f 22 2c 49 6e |nu_add("Info",In| 0000fea0 66 6f 57 25 2c 30 29 0d 07 e6 2e 69 74 65 6d 5f |foW%,0)....item_| 0000feb0 6f 70 74 69 6f 6e 73 25 3d a4 6d 65 6e 75 5f 61 |options%=.menu_a| 0000fec0 64 64 28 22 4f 70 74 69 6f 6e 73 2e 2e 2e 22 2c |dd("Options...",| 0000fed0 2d 31 2c 30 29 0d 07 e7 2f 69 74 65 6d 5f 73 74 |-1,0).../item_st| 0000fee0 61 74 73 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 |ats%=.menu_add("| 0000fef0 53 74 61 74 69 73 74 69 63 73 2e 2e 2e 22 2c 2d |Statistics...",-| 0000ff00 31 2c 30 29 0d 07 e8 42 69 74 65 6d 5f 63 75 73 |1,0)...Bitem_cus| 0000ff10 74 6f 6d 73 70 72 69 74 65 73 25 3d a4 6d 65 6e |tomsprites%=.men| 0000ff20 75 5f 61 64 64 28 22 43 75 73 74 6f 6d 20 73 70 |u_add("Custom sp| 0000ff30 72 69 74 65 73 22 2c 53 70 72 69 74 65 73 4d 65 |rites",SpritesMe| 0000ff40 6e 75 25 2c 30 29 0d 07 e9 25 69 74 65 6d 5f 71 |nu%,0)...%item_q| 0000ff50 75 69 74 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 |uit%=.menu_add("| 0000ff60 51 75 69 74 22 2c 2d 31 2c 30 29 0d 07 ea 1c f4 |Quit",-1,0).....| 0000ff70 20 2d 2d 2d 20 74 65 6d 70 6c 61 74 65 2d 6e 61 | --- template-na| 0000ff80 6d 65 20 6d 65 6e 75 0d 07 eb 35 c8 99 20 22 4d |me menu...5.. "M| 0000ff90 65 6e 75 55 74 69 6c 5f 4e 65 77 22 2c 2c 22 20 |enuUtil_New",," | 0000ffa0 20 20 4e 61 6d 65 3a 20 20 20 22 20 b8 20 54 65 | Name: " . Te| 0000ffb0 6d 70 6c 4e 61 6d 65 6d 65 6e 75 25 0d 07 ec 2b |mplNamemenu%...+| 0000ffc0 69 74 65 6d 5f 74 65 6d 70 6c 6e 61 6d 65 25 3d |item_templname%=| 0000ffd0 a4 6d 65 6e 75 5f 61 64 64 77 72 69 74 61 62 6c |.menu_addwritabl| 0000ffe0 65 28 31 32 2c 30 29 0d 07 ed 1a f4 20 2d 2d 2d |e(12,0)..... ---| 0000fff0 20 74 65 6d 70 6c 61 74 65 20 73 75 62 6d 65 6e | template submen| 00010000 75 0d 07 ee 29 c8 99 20 22 4d 65 6e 75 55 74 69 |u...).. "MenuUti| 00010010 6c 5f 4e 65 77 22 2c 2c 22 22 20 b8 20 54 65 6d |l_New",,"" . Tem| 00010020 70 6c 53 75 62 6d 65 6e 75 25 0d 07 ef 36 69 74 |plSubmenu%...6it| 00010030 65 6d 5f 63 6f 70 79 74 65 6d 70 6c 25 3d a4 6d |em_copytempl%=.m| 00010040 65 6e 75 5f 61 64 64 28 22 43 6f 70 79 22 2c 54 |enu_add("Copy",T| 00010050 65 6d 70 6c 4e 61 6d 65 6d 65 6e 75 25 2c 31 29 |emplNamemenu%,1)| 00010060 0d 07 f0 3a 69 74 65 6d 5f 72 65 6e 61 6d 65 74 |...:item_renamet| 00010070 65 6d 70 6c 25 3d a4 6d 65 6e 75 5f 61 64 64 28 |empl%=.menu_add(| 00010080 22 52 65 6e 61 6d 65 22 2c 54 65 6d 70 6c 4e 61 |"Rename",TemplNa| 00010090 6d 65 6d 65 6e 75 25 2c 31 29 0d 07 f1 2e 69 74 |memenu%,1)....it| 000100a0 65 6d 5f 64 65 6c 65 74 65 74 65 6d 70 6c 25 3d |em_deletetempl%=| 000100b0 a4 6d 65 6e 75 5f 61 64 64 28 22 44 65 6c 65 74 |.menu_add("Delet| 000100c0 65 22 2c 2d 31 2c 30 29 0d 07 f2 2e 69 74 65 6d |e",-1,0)....item| 000100d0 5f 73 61 76 65 74 65 6d 70 6c 25 3d a4 6d 65 6e |_savetempl%=.men| 000100e0 75 5f 61 64 64 28 22 53 61 76 65 22 2c 53 61 76 |u_add("Save",Sav| 000100f0 65 57 25 2c 31 29 0d 07 f3 2a 69 74 65 6d 5f 6f |eW%,1)...*item_o| 00010100 70 65 6e 74 65 6d 70 6c 25 3d a4 6d 65 6e 75 5f |pentempl%=.menu_| 00010110 61 64 64 28 22 4f 70 65 6e 22 2c 2d 31 2c 30 29 |add("Open",-1,0)| 00010120 0d 07 f4 2c 69 74 65 6d 5f 63 6c 6f 73 65 74 65 |...,item_closete| 00010130 6d 70 6c 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 |mpl%=.menu_add("| 00010140 43 6c 6f 73 65 22 2c 2d 31 2c 30 29 0d 07 f5 17 |Close",-1,0)....| 00010150 f4 20 2d 2d 2d 20 74 65 6d 70 6c 61 74 65 20 6d |. --- template m| 00010160 65 6e 75 0d 07 f6 29 c8 99 20 22 4d 65 6e 75 55 |enu...).. "MenuU| 00010170 74 69 6c 5f 4e 65 77 22 2c 2c 41 70 70 6c 24 20 |til_New",,Appl$ | 00010180 b8 20 54 65 6d 70 6c 4d 65 6e 75 25 0d 07 f7 3a |. TemplMenu%...:| 00010190 69 74 65 6d 5f 63 72 65 61 74 65 74 65 6d 70 6c |item_createtempl| 000101a0 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 43 72 65 |%=.menu_add("Cre| 000101b0 61 74 65 22 2c 54 65 6d 70 6c 4e 61 6d 65 6d 65 |ate",TemplNameme| 000101c0 6e 75 25 2c 31 29 0d 07 f8 30 69 74 65 6d 5f 74 |nu%,1)...0item_t| 000101d0 65 6d 70 6c 61 74 65 25 3d a4 6d 65 6e 75 5f 61 |emplate%=.menu_a| 000101e0 64 64 28 22 22 2c 54 65 6d 70 6c 53 75 62 6d 65 |dd("",TemplSubme| 000101f0 6e 75 25 2c 30 29 0d 07 f9 32 69 74 65 6d 5f 73 |nu%,0)...2item_s| 00010200 65 6c 61 6c 6c 74 65 6d 70 6c 25 3d a4 6d 65 6e |elalltempl%=.men| 00010210 75 5f 61 64 64 28 22 53 65 6c 65 63 74 20 61 6c |u_add("Select al| 00010220 6c 22 2c 2d 31 2c 30 29 0d 07 fa 39 69 74 65 6d |l",-1,0)...9item| 00010230 5f 63 6c 65 61 72 73 65 6c 74 65 6d 70 6c 25 3d |_clearseltempl%=| 00010240 a4 6d 65 6e 75 5f 61 64 64 28 22 43 6c 65 61 72 |.menu_add("Clear| 00010250 20 73 65 6c 65 63 74 69 6f 6e 22 2c 2d 31 2c 30 | selection",-1,0| 00010260 29 0d 07 fb 30 69 74 65 6d 5f 64 65 6c 65 74 65 |)...0item_delete| 00010270 61 6c 6c 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 |all%=.menu_add("| 00010280 44 65 6c 65 74 65 20 61 6c 6c 22 2c 2d 31 2c 30 |Delete all",-1,0| 00010290 29 0d 07 fc 34 69 74 65 6d 5f 73 6f 72 74 74 65 |)...4item_sortte| 000102a0 6d 70 6c 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 |mpl%=.menu_add("| 000102b0 53 6f 72 74 20 74 65 6d 70 6c 61 74 65 73 22 2c |Sort templates",| 000102c0 2d 31 2c 30 29 0d 07 fd 29 69 74 65 6d 5f 73 61 |-1,0)...)item_sa| 000102d0 76 65 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 53 |ve%=.menu_add("S| 000102e0 61 76 65 22 2c 53 61 76 65 57 25 2c 31 29 0d 07 |ave",SaveW%,1)..| 000102f0 fe 29 f4 20 2d 2d 2d 20 64 69 72 65 63 74 69 6f |.). --- directio| 00010300 6e 20 6d 65 6e 75 20 66 6f 72 20 69 63 6f 6e 20 |n menu for icon | 00010310 63 6f 70 79 69 6e 67 0d 07 ff 28 c8 99 20 22 4d |copying...(.. "M| 00010320 65 6e 75 55 74 69 6c 5f 4e 65 77 22 2c 2c 22 43 |enuUtil_New",,"C| 00010330 6f 70 79 22 20 b8 20 44 69 72 4d 65 6e 75 25 0d |opy" . DirMenu%.| 00010340 08 00 27 69 74 65 6d 5f 75 70 25 3d a4 6d 65 6e |..'item_up%=.men| 00010350 75 5f 61 64 64 28 22 55 70 20 20 20 20 5e 55 22 |u_add("Up ^U"| 00010360 2c 2d 31 2c 30 29 0d 08 01 29 69 74 65 6d 5f 64 |,-1,0)...)item_d| 00010370 6f 77 6e 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 |own%=.menu_add("| 00010380 44 6f 77 6e 20 20 5e 44 22 2c 2d 31 2c 30 29 0d |Down ^D",-1,0).| 00010390 08 02 29 69 74 65 6d 5f 6c 65 66 74 25 3d a4 6d |..)item_left%=.m| 000103a0 65 6e 75 5f 61 64 64 28 22 4c 65 66 74 20 20 5e |enu_add("Left ^| 000103b0 4c 22 2c 2d 31 2c 30 29 0d 08 03 2a 69 74 65 6d |L",-1,0)...*item| 000103c0 5f 72 69 67 68 74 25 3d a4 6d 65 6e 75 5f 61 64 |_right%=.menu_ad| 000103d0 64 28 22 52 69 67 68 74 20 5e 52 22 2c 2d 31 2c |d("Right ^R",-1,| 000103e0 30 29 0d 08 04 23 f4 20 2d 2d 2d 20 6d 65 6e 75 |0)...#. --- menu| 000103f0 20 66 6f 72 20 69 63 6f 6e 20 72 65 6e 75 6d 62 | for icon renumb| 00010400 65 72 69 6e 67 0d 08 05 2b c8 99 20 22 4d 65 6e |ering...+.. "Men| 00010410 75 55 74 69 6c 5f 4e 65 77 22 2c 2c 22 4e 6f 2e |uUtil_New",,"No.| 00010420 3a 22 20 b8 20 49 63 6f 6e 4e 72 6d 65 6e 75 25 |:" . IconNrmenu%| 00010430 0d 08 06 32 69 74 65 6d 5f 69 63 6f 6e 6e 72 25 |...2item_iconnr%| 00010440 3d a4 6d 65 6e 75 5f 61 64 64 77 72 69 74 61 62 |=.menu_addwritab| 00010450 6c 65 28 34 2c 4e 75 6d 56 61 6c 69 64 53 74 72 |le(4,NumValidStr| 00010460 25 29 0d 08 07 1a f4 20 2d 2d 2d 20 22 64 69 6d |%)..... --- "dim| 00010470 65 6e 73 69 6f 6e 22 20 6d 65 6e 75 0d 08 08 2e |ension" menu....| 00010480 c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f 4e 65 77 |.. "MenuUtil_New| 00010490 22 2c 2c 22 44 69 6d 2e 22 20 b8 20 44 69 6d 65 |",,"Dim." . Dime| 000104a0 6e 73 69 6f 6e 4d 65 6e 75 25 0d 08 09 25 69 74 |nsionMenu%...%it| 000104b0 65 6d 5f 62 6f 74 68 25 3d a4 6d 65 6e 75 5f 61 |em_both%=.menu_a| 000104c0 64 64 28 22 42 6f 74 68 22 2c 2d 31 2c 30 29 0d |dd("Both",-1,0).| 000104d0 08 0a 22 69 74 65 6d 5f 78 64 69 6d 25 3d a4 6d |.."item_xdim%=.m| 000104e0 65 6e 75 5f 61 64 64 28 22 58 22 2c 2d 31 2c 30 |enu_add("X",-1,0| 000104f0 29 0d 08 0b 22 69 74 65 6d 5f 79 64 69 6d 25 3d |)..."item_ydim%=| 00010500 a4 6d 65 6e 75 5f 61 64 64 28 22 59 22 2c 2d 31 |.menu_add("Y",-1| 00010510 2c 30 29 0d 08 0c 1f f4 20 2d 2d 2d 20 75 73 65 |,0)..... --- use| 00010520 72 2d 74 65 6d 70 6c 61 74 65 20 73 75 62 6d 65 |r-template subme| 00010530 6e 75 0d 08 0d 28 c8 99 20 22 4d 65 6e 75 55 74 |nu...(.. "MenuUt| 00010540 69 6c 5f 4e 65 77 22 2c 2c 22 22 20 b8 20 55 73 |il_New",,"" . Us| 00010550 65 72 53 75 62 6d 65 6e 75 25 0d 08 0e 37 69 74 |erSubmenu%...7it| 00010560 65 6d 5f 63 6f 70 79 69 63 6f 6e 25 3d a4 6d 65 |em_copyicon%=.me| 00010570 6e 75 5f 61 64 64 28 22 43 6f 70 79 20 20 20 20 |nu_add("Copy | 00010580 20 20 5e 43 22 2c 44 69 72 4d 65 6e 75 25 2c 30 | ^C",DirMenu%,0| 00010590 29 0d 08 0f 3a 69 74 65 6d 5f 72 65 6e 75 6d 62 |)...:item_renumb| 000105a0 65 72 69 63 6f 6e 25 3d a4 6d 65 6e 75 5f 61 64 |ericon%=.menu_ad| 000105b0 64 28 22 52 65 6e 75 6d 62 65 72 22 2c 49 63 6f |d("Renumber",Ico| 000105c0 6e 4e 72 6d 65 6e 75 25 2c 30 29 0d 08 10 33 69 |nNrmenu%,0)...3i| 000105d0 74 65 6d 5f 64 65 6c 65 74 65 69 63 6f 6e 25 3d |tem_deleteicon%=| 000105e0 a4 6d 65 6e 75 5f 61 64 64 28 22 44 65 6c 65 74 |.menu_add("Delet| 000105f0 65 20 20 20 20 5e 58 22 2c 2d 31 2c 30 29 0d 08 |e ^X",-1,0)..| 00010600 11 31 69 74 65 6d 5f 65 64 69 74 69 63 6f 6e 25 |.1item_editicon%| 00010610 3d a4 6d 65 6e 75 5f 61 64 64 28 22 45 64 69 74 |=.menu_add("Edit| 00010620 2e 2e 2e 20 20 20 5e 45 22 2c 2d 31 2c 30 29 0d |... ^E",-1,0).| 00010630 08 12 19 c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f |..... "MenuUtil_| 00010640 44 6f 74 73 22 2c 2c 31 0d 08 13 33 69 74 65 6d |Dots",,1...3item| 00010650 5f 61 6c 69 67 6e 25 3d a4 6d 65 6e 75 5f 61 64 |_align%=.menu_ad| 00010660 64 28 22 41 6c 69 67 6e 20 20 20 20 20 5e 4a 22 |d("Align ^J"| 00010670 2c 41 6c 69 67 6e 57 25 2c 30 29 0d 08 14 36 69 |,AlignW%,0)...6i| 00010680 74 65 6d 5f 73 70 61 63 65 6f 75 74 25 3d a4 6d |tem_spaceout%=.m| 00010690 65 6e 75 5f 61 64 64 28 22 53 70 61 63 65 20 6f |enu_add("Space o| 000106a0 75 74 20 5e 4b 22 2c 53 70 61 63 65 57 25 2c 30 |ut ^K",SpaceW%,0| 000106b0 29 0d 08 15 39 69 74 65 6d 5f 6d 69 6e 73 69 7a |)...9item_minsiz| 000106c0 65 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 4d 69 |e%=.menu_add("Mi| 000106d0 6e 2e 20 73 69 7a 65 22 2c 44 69 6d 65 6e 73 69 |n. size",Dimensi| 000106e0 6f 6e 4d 65 6e 75 25 2c 30 29 0d 08 16 39 69 74 |onMenu%,0)...9it| 000106f0 65 6d 5f 63 65 6e 74 65 72 69 63 6f 6e 25 3d a4 |em_centericon%=.| 00010700 6d 65 6e 75 5f 61 64 64 28 22 43 65 6e 74 65 72 |menu_add("Center| 00010710 22 2c 44 69 6d 65 6e 73 69 6f 6e 4d 65 6e 75 25 |",DimensionMenu%| 00010720 2c 30 29 0d 08 17 3a 69 74 65 6d 5f 73 61 6d 65 |,0)...:item_same| 00010730 73 69 7a 65 25 3d a4 6d 65 6e 75 5f 61 64 64 28 |size%=.menu_add(| 00010740 22 53 61 6d 65 20 73 69 7a 65 22 2c 44 69 6d 65 |"Same size",Dime| 00010750 6e 73 69 6f 6e 4d 65 6e 75 25 2c 30 29 0d 08 18 |nsionMenu%,0)...| 00010760 1a f4 20 2d 2d 2d 20 73 70 72 69 74 65 20 61 72 |.. --- sprite ar| 00010770 65 61 20 6d 65 6e 75 0d 08 19 38 c8 99 20 22 4d |ea menu...8.. "M| 00010780 65 6e 75 55 74 69 6c 5f 4e 65 77 22 2c 2c 22 53 |enuUtil_New",,"S| 00010790 70 72 69 74 65 73 20 66 72 6f 6d 22 20 b8 20 53 |prites from" . S| 000107a0 70 72 69 74 65 41 72 65 61 4d 65 6e 75 25 20 0d |priteAreaMenu% .| 000107b0 08 1a 2e 69 74 65 6d 5f 77 69 6d 70 61 72 65 61 |...item_wimparea| 000107c0 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 57 69 6d |%=.menu_add("Wim| 000107d0 70 20 61 72 65 61 22 2c 2d 31 2c 30 29 0d 08 1b |p area",-1,0)...| 000107e0 32 69 74 65 6d 5f 63 75 73 74 6f 6d 61 72 65 61 |2item_customarea| 000107f0 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 43 75 73 |%=.menu_add("Cus| 00010800 74 6f 6d 20 61 72 65 61 22 2c 2d 31 2c 30 29 0d |tom area",-1,0).| 00010810 08 1c 18 f4 20 2d 2d 2d 20 22 4d 69 73 63 22 20 |.... --- "Misc" | 00010820 73 75 62 6d 65 6e 75 0d 08 1d 29 c8 99 20 22 4d |submenu...).. "M| 00010830 65 6e 75 55 74 69 6c 5f 4e 65 77 22 2c 2c 22 4d |enuUtil_New",,"M| 00010840 69 73 63 22 20 b8 20 4d 69 73 63 4d 65 6e 75 25 |isc" . MiscMenu%| 00010850 0d 08 1e 36 69 74 65 6d 5f 63 65 6e 74 65 72 77 |...6item_centerw| 00010860 69 6e 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 43 |in%=.menu_add("C| 00010870 65 6e 74 65 72 20 74 6f 20 73 63 72 65 65 6e 22 |enter to screen"| 00010880 2c 2d 31 2c 30 29 0d 08 1f 3f 69 74 65 6d 5f 73 |,-1,0)...?item_s| 00010890 70 72 69 74 65 61 72 65 61 25 3d a4 6d 65 6e 75 |pritearea%=.menu| 000108a0 5f 61 64 64 28 22 53 70 72 69 74 65 20 61 72 65 |_add("Sprite are| 000108b0 61 22 2c 53 70 72 69 74 65 41 72 65 61 4d 65 6e |a",SpriteAreaMen| 000108c0 75 25 2c 30 29 0d 08 20 30 69 74 65 6d 5f 74 69 |u%,0).. 0item_ti| 000108d0 64 79 69 63 6f 6e 73 25 3d a4 6d 65 6e 75 5f 61 |dyicons%=.menu_a| 000108e0 64 64 28 22 54 69 64 79 20 69 63 6f 6e 73 22 2c |dd("Tidy icons",| 000108f0 2d 31 2c 30 29 0d 08 21 1c f4 20 2d 2d 2d 20 75 |-1,0)..!.. --- u| 00010900 73 65 72 2d 74 65 6d 70 6c 61 74 65 20 6d 65 6e |ser-template men| 00010910 75 0d 08 22 15 f2 73 74 61 6e 64 61 72 64 69 63 |u.."..standardic| 00010920 6f 6e 6d 65 6e 75 0d 08 23 2b c8 99 20 22 4d 65 |onmenu..#+.. "Me| 00010930 6e 75 55 74 69 6c 5f 4e 65 77 22 2c 2c 22 57 69 |nuUtil_New",,"Wi| 00010940 6e 64 6f 77 22 20 b8 20 55 73 65 72 4d 65 6e 75 |ndow" . UserMenu| 00010950 25 0d 08 24 15 e7 20 4e 72 53 74 64 49 63 6f 6e |%..$.. NrStdIcon| 00010960 73 25 3d 30 20 8c 0d 08 25 34 20 20 69 74 65 6d |s%=0 ...%4 item| 00010970 5f 63 72 65 61 74 65 69 63 6f 6e 25 3d a4 6d 65 |_createicon%=.me| 00010980 6e 75 5f 61 64 64 28 22 43 72 65 61 74 65 20 69 |nu_add("Create i| 00010990 63 6f 6e 22 2c 2d 31 2c 30 29 0d 08 26 05 cc 0d |con",-1,0)..&...| 000109a0 08 27 3e 20 20 69 74 65 6d 5f 63 72 65 61 74 65 |.'> item_create| 000109b0 69 63 6f 6e 25 3d a4 6d 65 6e 75 5f 61 64 64 28 |icon%=.menu_add(| 000109c0 22 43 72 65 61 74 65 20 69 63 6f 6e 22 2c 53 74 |"Create icon",St| 000109d0 64 49 63 6f 6e 4d 65 6e 75 25 2c 30 29 0d 08 28 |dIconMenu%,0)..(| 000109e0 05 cd 0d 08 29 2b 69 74 65 6d 5f 69 63 6f 6e 25 |....)+item_icon%| 000109f0 3d a4 6d 65 6e 75 5f 61 64 64 28 22 22 2c 55 73 |=.menu_add("",Us| 00010a00 65 72 53 75 62 6d 65 6e 75 25 2c 30 29 0d 08 2a |erSubmenu%,0)..*| 00010a10 3b 69 74 65 6d 5f 73 65 6c 61 6c 6c 69 63 6f 6e |;item_selallicon| 00010a20 73 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 53 65 |s%=.menu_add("Se| 00010a30 6c 65 63 74 20 61 6c 6c 20 20 20 20 20 20 20 5e |lect all ^| 00010a40 41 22 2c 2d 31 2c 30 29 0d 08 2b 3d 69 74 65 6d |A",-1,0)..+=item| 00010a50 5f 63 6c 65 61 72 73 65 6c 69 63 6f 6e 73 25 3d |_clearselicons%=| 00010a60 a4 6d 65 6e 75 5f 61 64 64 28 22 43 6c 65 61 72 |.menu_add("Clear| 00010a70 20 73 65 6c 65 63 74 69 6f 6e 20 20 5e 5a 22 2c | selection ^Z",| 00010a80 2d 31 2c 30 29 0d 08 2c 2c c8 99 20 22 4d 65 6e |-1,0)..,,.. "Men| 00010a90 75 55 74 69 6c 5f 44 6f 74 73 22 2c 69 74 65 6d |uUtil_Dots",item| 00010aa0 5f 63 6c 65 61 72 73 65 6c 69 63 6f 6e 73 25 2c |_clearselicons%,| 00010ab0 31 0d 08 2d 32 69 74 65 6d 5f 77 6f 72 6b 61 72 |1..-2item_workar| 00010ac0 65 61 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 57 |ea%=.menu_add("W| 00010ad0 6f 72 6b 20 61 72 65 61 22 2c 57 6f 72 6b 57 25 |ork area",WorkW%| 00010ae0 2c 31 29 0d 08 2e 3a 69 74 65 6d 5f 65 64 69 74 |,1)...:item_edit| 00010af0 77 69 6e 64 6f 77 25 3d a4 6d 65 6e 75 5f 61 64 |window%=.menu_ad| 00010b00 64 28 22 45 64 69 74 20 77 69 6e 64 6f 77 2e 2e |d("Edit window..| 00010b10 2e 20 20 20 5e 57 22 2c 2d 31 2c 30 29 0d 08 2f |. ^W",-1,0)../| 00010b20 39 69 74 65 6d 5f 65 64 69 74 74 69 74 6c 65 25 |9item_edittitle%| 00010b30 3d a4 6d 65 6e 75 5f 61 64 64 28 22 45 64 69 74 |=.menu_add("Edit| 00010b40 20 74 69 74 6c 65 2e 2e 2e 20 20 20 20 5e 54 22 | title... ^T"| 00010b50 2c 2d 31 2c 30 29 0d 08 30 2c 69 74 65 6d 5f 6d |,-1,0)..0,item_m| 00010b60 69 73 63 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 |isc%=.menu_add("| 00010b70 4d 69 73 63 22 2c 4d 69 73 63 4d 65 6e 75 25 2c |Misc",MiscMenu%,| 00010b80 30 29 0d 08 31 38 69 74 65 6d 5f 63 6c 6f 73 65 |0)..18item_close| 00010b90 77 69 6e 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 |win%=.menu_add("| 00010ba0 43 6c 6f 73 65 20 77 69 6e 64 6f 77 20 20 20 20 |Close window | 00010bb0 20 5e 51 22 2c 2d 31 2c 30 29 0d 08 32 25 f4 20 | ^Q",-1,0)..2%. | 00010bc0 2d 2d 2d 20 6d 65 6e 75 20 77 69 74 68 20 69 63 |--- menu with ic| 00010bd0 6f 6e 20 62 75 74 74 6f 6e 2d 74 79 70 65 73 0d |on button-types.| 00010be0 08 33 34 c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f |.34.. "MenuUtil_| 00010bf0 4e 65 77 22 2c 2c 22 42 75 74 74 6f 6e 20 74 79 |New",,"Button ty| 00010c00 70 65 22 20 b8 20 49 63 42 75 74 74 6f 6e 4d 65 |pe" . IcButtonMe| 00010c10 6e 75 25 0d 08 34 0f e3 20 69 25 3d 30 20 b8 20 |nu%..4.. i%=0 . | 00010c20 31 35 0d 08 35 2f 20 20 64 75 6d 6d 79 25 3d a4 |15..5/ dummy%=.| 00010c30 6d 65 6e 75 5f 61 64 64 28 24 28 49 63 42 75 74 |menu_add($(IcBut| 00010c40 74 6f 6e 25 2b 32 30 2a 69 25 29 2c 2d 31 2c 30 |ton%+20*i%),-1,0| 00010c50 29 0d 08 36 08 ed 20 69 25 0d 08 37 27 f4 20 2d |)..6.. i%..7'. -| 00010c60 2d 2d 20 6d 65 6e 75 20 77 69 74 68 20 77 69 6e |-- menu with win| 00010c70 64 6f 77 20 62 75 74 74 6f 6e 2d 74 79 70 65 73 |dow button-types| 00010c80 0d 08 38 35 c8 99 20 22 4d 65 6e 75 55 74 69 6c |..85.. "MenuUtil| 00010c90 5f 4e 65 77 22 2c 2c 22 42 75 74 74 6f 6e 20 74 |_New",,"Button t| 00010ca0 79 70 65 22 20 b8 20 57 69 6e 42 75 74 74 6f 6e |ype" . WinButton| 00010cb0 4d 65 6e 75 25 0d 08 39 0f e3 20 69 25 3d 30 20 |Menu%..9.. i%=0 | 00010cc0 b8 20 31 35 0d 08 3a 30 20 20 64 75 6d 6d 79 25 |. 15..:0 dummy%| 00010cd0 3d a4 6d 65 6e 75 5f 61 64 64 28 24 28 57 69 6e |=.menu_add($(Win| 00010ce0 42 75 74 74 6f 6e 25 2b 32 30 2a 69 25 29 2c 2d |Button%+20*i%),-| 00010cf0 31 2c 30 29 0d 08 3b 08 ed 20 69 25 0d 08 3c 37 |1,0)..;.. i%..<7| 00010d00 f4 20 2d 2d 2d 20 61 63 74 75 61 6c 20 45 53 47 |. --- actual ESG| 00010d10 20 6d 65 6e 75 20 69 73 20 62 75 69 6c 74 20 77 | menu is built w| 00010d20 68 65 6e 20 4d 65 6e 75 20 69 73 20 63 6c 69 63 |hen Menu is clic| 00010d30 6b 65 64 0d 08 3d 0e 45 73 67 4d 65 6e 75 25 3d |ked..=.EsgMenu%=| 00010d40 30 0d 08 3e 3a f4 20 2d 2d 2d 20 61 63 74 75 61 |0..>:. --- actua| 00010d50 6c 20 63 6f 6c 6f 75 72 20 6d 65 6e 75 20 69 73 |l colour menu is| 00010d60 20 62 75 69 6c 74 20 77 68 65 6e 20 4d 65 6e 75 | built when Menu| 00010d70 20 69 73 20 63 6c 69 63 6b 65 64 0d 08 3f 11 43 | is clicked..?.C| 00010d80 6f 6c 6f 75 72 4d 65 6e 75 25 3d 30 0d 08 40 13 |olourMenu%=0..@.| 00010d90 f4 20 2d 2d 2d 20 66 6f 6e 74 20 6d 65 6e 75 0d |. --- font menu.| 00010da0 08 41 0d f2 66 6f 6e 74 6d 65 6e 75 0d 08 42 18 |.A..fontmenu..B.| 00010db0 f4 20 2d 2d 2d 20 66 6f 6e 74 20 73 69 7a 65 20 |. --- font size | 00010dc0 6d 65 6e 75 0d 08 43 2d c8 99 20 22 4d 65 6e 75 |menu..C-.. "Menu| 00010dd0 55 74 69 6c 5f 4e 65 77 22 2c 2c 22 53 69 7a 65 |Util_New",,"Size| 00010de0 22 20 b8 20 46 6f 6e 74 53 69 7a 65 6d 65 6e 75 |" . FontSizemenu| 00010df0 25 0d 08 44 1d c8 99 20 22 4d 65 6e 75 55 74 69 |%..D... "MenuUti| 00010e00 6c 5f 41 64 64 22 2c 2c 22 31 30 70 74 22 0d 08 |l_Add",,"10pt"..| 00010e10 45 1d c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f 41 |E... "MenuUtil_A| 00010e20 64 64 22 2c 2c 22 31 32 70 74 22 0d 08 46 1d c8 |dd",,"12pt"..F..| 00010e30 99 20 22 4d 65 6e 75 55 74 69 6c 5f 41 64 64 22 |. "MenuUtil_Add"| 00010e40 2c 2c 22 31 36 70 74 22 0d 08 47 1d c8 99 20 22 |,,"16pt"..G... "| 00010e50 4d 65 6e 75 55 74 69 6c 5f 41 64 64 22 2c 2c 22 |MenuUtil_Add",,"| 00010e60 32 30 70 74 22 0d 08 48 1d c8 99 20 22 4d 65 6e |20pt"..H... "Men| 00010e70 75 55 74 69 6c 5f 41 64 64 22 2c 2c 22 32 34 70 |uUtil_Add",,"24p| 00010e80 74 22 0d 08 49 1d c8 99 20 22 4d 65 6e 75 55 74 |t"..I... "MenuUt| 00010e90 69 6c 5f 41 64 64 22 2c 2c 22 33 36 70 74 22 0d |il_Add",,"36pt".| 00010ea0 08 4a 36 69 74 65 6d 5f 66 6f 6e 74 73 69 7a 65 |.J6item_fontsize| 00010eb0 25 3d a4 6d 65 6e 75 5f 61 64 64 77 72 69 74 61 |%=.menu_addwrita| 00010ec0 62 6c 65 28 35 2c 46 70 4e 75 6d 56 61 6c 69 64 |ble(5,FpNumValid| 00010ed0 53 74 72 25 29 0d 08 4b 22 f4 20 2d 2d 2d 20 22 |Str%)..K". --- "| 00010ee0 70 61 72 74 69 61 6c 20 75 70 64 61 74 65 22 20 |partial update" | 00010ef0 73 75 62 6d 65 6e 75 0d 08 4c 2f c8 99 20 22 4d |submenu..L/.. "M| 00010f00 65 6e 75 55 74 69 6c 5f 4e 65 77 22 2c 2c 22 4f |enuUtil_New",,"O| 00010f10 74 68 65 72 22 20 b8 20 55 70 64 61 74 65 53 75 |ther" . UpdateSu| 00010f20 62 6d 65 6e 75 25 0d 08 4d 28 69 74 65 6d 5f 75 |bmenu%..M(item_u| 00010f30 70 64 62 6f 25 3d a4 6d 65 6e 75 5f 61 64 64 28 |pdbo%=.menu_add(| 00010f40 22 42 6f 72 64 65 72 22 2c 2d 31 2c 30 29 0d 08 |"Border",-1,0)..| 00010f50 4e 28 69 74 65 6d 5f 75 70 64 66 69 25 3d a4 6d |N(item_updfi%=.m| 00010f60 65 6e 75 5f 61 64 64 28 22 46 69 6c 6c 65 64 22 |enu_add("Filled"| 00010f70 2c 2d 31 2c 30 29 0d 08 4f 2a 69 74 65 6d 5f 75 |,-1,0)..O*item_u| 00010f80 70 64 68 63 25 3d a4 6d 65 6e 75 5f 61 64 64 28 |pdhc%=.menu_add(| 00010f90 22 48 20 63 65 6e 74 72 65 22 2c 2d 31 2c 30 29 |"H centre",-1,0)| 00010fa0 0d 08 50 2a 69 74 65 6d 5f 75 70 64 76 63 25 3d |..P*item_updvc%=| 00010fb0 a4 6d 65 6e 75 5f 61 64 64 28 22 56 20 63 65 6e |.menu_add("V cen| 00010fc0 74 72 65 22 2c 2d 31 2c 30 29 0d 08 51 2d 69 74 |tre",-1,0)..Q-it| 00010fd0 65 6d 5f 75 70 64 72 6a 25 3d a4 6d 65 6e 75 5f |em_updrj%=.menu_| 00010fe0 61 64 64 28 22 52 20 6a 75 73 74 69 66 69 65 64 |add("R justified| 00010ff0 22 2c 2d 31 2c 30 29 0d 08 52 2c 69 74 65 6d 5f |",-1,0)..R,item_| 00011000 75 70 64 6e 68 25 3d a4 6d 65 6e 75 5f 61 64 64 |updnh%=.menu_add| 00011010 28 22 4e 65 65 64 73 20 68 65 6c 70 22 2c 2d 31 |("Needs help",-1| 00011020 2c 30 29 0d 08 53 2e 69 74 65 6d 5f 75 70 64 61 |,0)..S.item_upda| 00011030 61 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 41 6c |a%=.menu_add("Al| 00011040 6c 6f 77 20 61 64 6a 75 73 74 22 2c 2d 31 2c 30 |low adjust",-1,0| 00011050 29 0d 08 54 2b 69 74 65 6d 5f 75 70 64 68 73 25 |)..T+item_updhs%| 00011060 3d a4 6d 65 6e 75 5f 61 64 64 28 22 48 61 6c 66 |=.menu_add("Half| 00011070 20 73 69 7a 65 22 2c 2d 31 2c 30 29 0d 08 55 28 | size",-1,0)..U(| 00011080 69 74 65 6d 5f 75 70 64 73 68 25 3d a4 6d 65 6e |item_updsh%=.men| 00011090 75 5f 61 64 64 28 22 53 68 61 64 65 64 22 2c 2d |u_add("Shaded",-| 000110a0 31 2c 30 29 0d 08 56 1f f4 20 2d 2d 2d 20 22 70 |1,0)..V.. --- "p| 000110b0 61 72 74 69 61 6c 20 75 70 64 61 74 65 22 20 6d |artial update" m| 000110c0 65 6e 75 0d 08 57 2d c8 99 20 22 4d 65 6e 75 55 |enu..W-.. "MenuU| 000110d0 74 69 6c 5f 4e 65 77 22 2c 2c 22 55 70 64 61 74 |til_New",,"Updat| 000110e0 65 22 20 b8 20 55 70 64 61 74 65 6d 65 6e 75 25 |e" . Updatemenu%| 000110f0 0d 08 58 2d 69 74 65 6d 5f 75 70 64 62 74 25 3d |..X-item_updbt%=| 00011100 a4 6d 65 6e 75 5f 61 64 64 28 22 42 75 74 74 6f |.menu_add("Butto| 00011110 6e 20 74 79 70 65 22 2c 2d 31 2c 30 29 0d 08 59 |n type",-1,0)..Y| 00011120 26 69 74 65 6d 5f 75 70 64 65 73 67 25 3d a4 6d |&item_updesg%=.m| 00011130 65 6e 75 5f 61 64 64 28 22 45 53 47 22 2c 2d 31 |enu_add("ESG",-1| 00011140 2c 30 29 0d 08 5a 28 69 74 65 6d 5f 75 70 64 66 |,0)..Z(item_updf| 00011150 67 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 46 67 |g%=.menu_add("Fg| 00011160 20 63 6f 6c 22 2c 2d 31 2c 30 29 0d 08 5b 28 69 | col",-1,0)..[(i| 00011170 74 65 6d 5f 75 70 64 62 67 25 3d a4 6d 65 6e 75 |tem_updbg%=.menu| 00011180 5f 61 64 64 28 22 42 67 20 63 6f 6c 22 2c 2d 31 |_add("Bg col",-1| 00011190 2c 30 29 0d 08 5c 28 69 74 65 6d 5f 75 70 64 66 |,0)..\(item_updf| 000111a0 6f 6e 74 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 |ont%=.menu_add("| 000111b0 46 6f 6e 74 22 2c 2d 31 2c 30 29 0d 08 5d 3b 69 |Font",-1,0)..];i| 000111c0 74 65 6d 5f 75 70 64 72 65 73 74 25 3d a4 6d 65 |tem_updrest%=.me| 000111d0 6e 75 5f 61 64 64 28 22 4f 74 68 65 72 20 66 6c |nu_add("Other fl| 000111e0 61 67 73 22 2c 55 70 64 61 74 65 53 75 62 6d 65 |ags",UpdateSubme| 000111f0 6e 75 25 2c 30 29 0d 08 5e 05 e1 0d 08 5f 04 0d |nu%,0)..^...._..| 00011200 08 60 0f dd 20 f2 6d 61 69 6e 6d 65 6e 75 0d 08 |.`.. .mainmenu..| 00011210 61 31 c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f 46 |a1.. "MenuUtil_F| 00011220 61 64 65 22 2c 69 74 65 6d 5f 73 74 61 74 73 25 |ade",item_stats%| 00011230 2c 4e 72 54 65 6d 70 6c 61 74 65 73 25 3d 30 0d |,NrTemplates%=0.| 00011240 08 62 39 c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f |.b9.. "MenuUtil_| 00011250 46 61 64 65 22 2c 69 74 65 6d 5f 63 75 73 74 6f |Fade",item_custo| 00011260 6d 73 70 72 69 74 65 73 25 2c 55 73 65 72 53 70 |msprites%,UserSp| 00011270 72 69 74 65 73 25 3d 31 0d 08 63 05 e1 0d 08 64 |rites%=1..c....d| 00011280 04 0d 08 65 2a dd 20 f2 74 65 6d 70 6c 61 74 65 |...e*. .template| 00011290 6d 65 6e 75 28 f8 20 78 70 6f 73 25 2c f8 20 79 |menu(. xpos%,. y| 000112a0 70 6f 73 25 2c 69 63 6f 6e 25 29 0d 08 66 08 ea |pos%,icon%)..f..| 000112b0 20 74 24 0d 08 67 15 f2 73 65 6c 5f 67 65 74 28 | t$..g..sel_get(| 000112c0 54 65 6d 70 6c 57 25 29 0d 08 68 24 e7 20 28 4e |TemplW%)..h$. (N| 000112d0 72 53 65 6c 65 63 74 65 64 25 3d 30 29 20 80 20 |rSelected%=0) . | 000112e0 28 69 63 6f 6e 25 3e 3d 30 29 20 8c 0d 08 69 22 |(icon%>=0) ...i"| 000112f0 20 20 f2 73 65 6c 65 63 74 69 63 6f 6e 28 54 65 | .selecticon(Te| 00011300 6d 70 6c 57 25 2c 69 63 6f 6e 25 2c 31 29 0d 08 |mplW%,icon%,1)..| 00011310 6a 15 20 20 53 65 6c 42 6c 6b 25 21 30 3d 69 63 |j. SelBlk%!0=ic| 00011320 6f 6e 25 0d 08 6b 13 20 20 4e 72 53 65 6c 65 63 |on%..k. NrSelec| 00011330 74 65 64 25 3d 31 0d 08 6c 44 20 20 54 65 6d 70 |ted%=1..lD Temp| 00011340 6c 4d 65 6e 75 5f 44 65 73 65 6c 65 63 74 25 3d |lMenu_Deselect%=| 00011350 b9 20 20 3a 20 f4 20 64 65 73 65 6c 65 63 74 20 |. : . deselect | 00011360 69 63 6f 6e 20 77 68 65 6e 20 6d 65 6e 75 20 69 |icon when menu i| 00011370 73 20 72 65 6d 6f 76 65 64 3f 0d 08 6d 05 cc 0d |s removed?..m...| 00011380 08 6e 1b 20 20 54 65 6d 70 6c 4d 65 6e 75 5f 44 |.n. TemplMenu_D| 00011390 65 73 65 6c 65 63 74 25 3d a3 0d 08 6f 05 cd 0d |eselect%=...o...| 000113a0 08 70 09 74 24 3d 22 22 0d 08 71 15 e7 20 4e 72 |.p.t$=""..q.. Nr| 000113b0 53 65 6c 65 63 74 65 64 25 3e 31 20 8c 0d 08 72 |Selected%>1 ...r| 000113c0 14 20 20 74 24 3d 22 53 65 6c 65 63 74 69 6f 6e |. t$="Selection| 000113d0 22 0d 08 73 05 cc 0d 08 74 17 20 20 e7 20 4e 72 |"..s....t. . Nr| 000113e0 53 65 6c 65 63 74 65 64 25 3d 31 20 8c 0d 08 75 |Selected%=1 ...u| 000113f0 28 20 20 20 20 74 24 3d 24 28 54 65 6d 70 6c 4e |( t$=$(TemplN| 00011400 61 6d 65 73 25 2b 32 38 2a 28 53 65 6c 42 6c 6b |ames%+28*(SelBlk| 00011410 25 21 30 29 29 0d 08 76 07 20 20 cd 0d 08 77 05 |%!0))..v. ...w.| 00011420 cd 0d 08 78 27 c8 99 20 22 4d 65 6e 75 55 74 69 |...x'.. "MenuUti| 00011430 6c 5f 54 65 78 74 22 2c 54 65 6d 70 6c 53 75 62 |l_Text",TemplSub| 00011440 6d 65 6e 75 25 2c 74 24 0d 08 79 35 c8 99 20 22 |menu%,t$..y5.. "| 00011450 4d 65 6e 75 55 74 69 6c 5f 46 61 64 65 22 2c 69 |MenuUtil_Fade",i| 00011460 74 65 6d 5f 63 6f 70 79 74 65 6d 70 6c 25 2c 4e |tem_copytempl%,N| 00011470 72 53 65 6c 65 63 74 65 64 25 3c 3e 31 0d 08 7a |rSelected%<>1..z| 00011480 37 c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f 46 61 |7.. "MenuUtil_Fa| 00011490 64 65 22 2c 69 74 65 6d 5f 72 65 6e 61 6d 65 74 |de",item_renamet| 000114a0 65 6d 70 6c 25 2c 4e 72 53 65 6c 65 63 74 65 64 |empl%,NrSelected| 000114b0 25 3c 3e 31 0d 08 7b 10 53 65 6c 46 4e 61 6d 65 |%<>1..{.SelFName| 000114c0 24 3d 74 24 0d 08 7c 15 e7 20 4e 72 53 65 6c 65 |$=t$..|.. NrSele| 000114d0 63 74 65 64 25 3e 31 20 8c 0d 08 7d 33 20 20 c8 |cted%>1 ...}3 .| 000114e0 99 20 22 4d 65 6e 75 55 74 69 6c 5f 54 65 78 74 |. "MenuUtil_Text| 000114f0 22 2c 69 74 65 6d 5f 74 65 6d 70 6c 61 74 65 25 |",item_template%| 00011500 2c 22 53 65 6c 65 63 74 69 6f 6e 22 0d 08 7e 05 |,"Selection"..~.| 00011510 cc 0d 08 7f 3b 20 20 c8 99 20 22 4d 65 6e 75 55 |....; .. "MenuU| 00011520 74 69 6c 5f 54 65 78 74 22 2c 69 74 65 6d 5f 74 |til_Text",item_t| 00011530 65 6d 70 6c 61 74 65 25 2c 22 54 65 6d 70 6c 61 |emplate%,"Templa| 00011540 74 65 20 27 22 2b 74 24 2b 22 27 22 0d 08 80 05 |te '"+t$+"'"....| 00011550 cd 0d 08 81 2d c8 99 20 22 4d 65 6e 75 55 74 69 |....-.. "MenuUti| 00011560 6c 5f 46 61 64 65 22 2c 69 74 65 6d 5f 74 65 6d |l_Fade",item_tem| 00011570 70 6c 61 74 65 25 2c a9 28 74 24 29 3d 30 0d 08 |plate%,.(t$)=0..| 00011580 82 37 c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f 46 |.7.. "MenuUtil_F| 00011590 61 64 65 22 2c 69 74 65 6d 5f 73 65 6c 61 6c 6c |ade",item_selall| 000115a0 74 65 6d 70 6c 25 2c 4e 72 54 65 6d 70 6c 61 74 |templ%,NrTemplat| 000115b0 65 73 25 3d 30 0d 08 83 38 c8 99 20 22 4d 65 6e |es%=0...8.. "Men| 000115c0 75 55 74 69 6c 5f 46 61 64 65 22 2c 69 74 65 6d |uUtil_Fade",item| 000115d0 5f 63 6c 65 61 72 73 65 6c 74 65 6d 70 6c 25 2c |_clearseltempl%,| 000115e0 4e 72 53 65 6c 65 63 74 65 64 25 3d 30 0d 08 84 |NrSelected%=0...| 000115f0 35 c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f 46 61 |5.. "MenuUtil_Fa| 00011600 64 65 22 2c 69 74 65 6d 5f 64 65 6c 65 74 65 61 |de",item_deletea| 00011610 6c 6c 25 2c 4e 72 54 65 6d 70 6c 61 74 65 73 25 |ll%,NrTemplates%| 00011620 3d 30 0d 08 85 35 c8 99 20 22 4d 65 6e 75 55 74 |=0...5.. "MenuUt| 00011630 69 6c 5f 46 61 64 65 22 2c 69 74 65 6d 5f 73 6f |il_Fade",item_so| 00011640 72 74 74 65 6d 70 6c 25 2c 4e 72 54 65 6d 70 6c |rttempl%,NrTempl| 00011650 61 74 65 73 25 3d 30 0d 08 86 30 c8 99 20 22 4d |ates%=0...0.. "M| 00011660 65 6e 75 55 74 69 6c 5f 46 61 64 65 22 2c 69 74 |enuUtil_Fade",it| 00011670 65 6d 5f 73 61 76 65 25 2c 4e 72 54 65 6d 70 6c |em_save%,NrTempl| 00011680 61 74 65 73 25 3d 30 0d 08 87 14 51 75 69 74 41 |ates%=0....QuitA| 00011690 66 74 65 72 53 61 76 65 25 3d a3 0d 08 88 0d 78 |fterSave%=.....x| 000116a0 70 6f 73 25 2d 3d 36 34 0d 08 89 15 e7 20 4e 72 |pos%-=64..... Nr| 000116b0 53 65 6c 65 63 74 65 64 25 3d 30 20 8c 0d 08 8a |Selected%=0 ....| 000116c0 0f 20 20 79 70 6f 73 25 2b 3d 32 32 0d 08 8b 05 |. ypos%+=22....| 000116d0 cc 0d 08 8c 0f 20 20 79 70 6f 73 25 2b 3d 36 36 |..... ypos%+=66| 000116e0 0d 08 8d 05 cd 0d 08 8e 05 e1 0d 08 8f 04 0d 08 |................| 000116f0 90 2e dd 20 f2 75 73 65 72 6d 65 6e 75 28 f8 20 |... .usermenu(. | 00011700 78 70 6f 73 25 2c f8 20 79 70 6f 73 25 2c 77 69 |xpos%,. ypos%,wi| 00011710 6e 64 6f 77 25 2c 69 63 6f 6e 25 29 0d 08 91 0c |ndow%,icon%)....| 00011720 ea 20 74 24 2c 73 74 24 0d 08 92 15 f2 73 65 6c |. t$,st$.....sel| 00011730 5f 67 65 74 28 77 69 6e 64 6f 77 25 29 0d 08 93 |_get(window%)...| 00011740 24 e7 20 28 4e 72 53 65 6c 65 63 74 65 64 25 3d |$. (NrSelected%=| 00011750 30 29 20 80 20 28 69 63 6f 6e 25 3e 3d 30 29 20 |0) . (icon%>=0) | 00011760 8c 0d 08 94 15 20 20 53 65 6c 42 6c 6b 25 21 30 |..... SelBlk%!0| 00011770 3d 69 63 6f 6e 25 0d 08 95 13 20 20 4e 72 53 65 |=icon%.... NrSe| 00011780 6c 65 63 74 65 64 25 3d 31 0d 08 96 05 cd 0d 08 |lected%=1.......| 00011790 97 14 c8 8e 20 4e 72 53 65 6c 65 63 74 65 64 25 |.... NrSelected%| 000117a0 20 ca 0d 08 98 09 20 20 c9 20 30 0d 08 99 14 20 | ..... . 0.... | 000117b0 20 20 20 74 24 3d 22 4e 6f 20 69 63 6f 6e 22 0d | t$="No icon".| 000117c0 08 9a 0e 20 20 20 20 73 74 24 3d 74 24 0d 08 9b |... st$=t$...| 000117d0 09 20 20 c9 20 31 0d 08 9c 20 20 20 20 20 74 24 |. . 1... t$| 000117e0 3d 22 49 63 6f 6e 20 23 22 2b c3 28 53 65 6c 42 |="Icon #"+.(SelB| 000117f0 6c 6b 25 21 30 29 0d 08 9d 0e 20 20 20 20 73 74 |lk%!0).... st| 00011800 24 3d 74 24 0d 08 9e 07 20 20 7f 0d 08 9f 16 20 |$=t$.... ..... | 00011810 20 20 20 74 24 3d 22 53 65 6c 65 63 74 69 6f 6e | t$="Selection| 00011820 22 0d 08 a0 23 20 20 20 20 73 74 24 3d c3 28 4e |"...# st$=.(N| 00011830 72 53 65 6c 65 63 74 65 64 25 29 2b 22 20 69 63 |rSelected%)+" ic| 00011840 6f 6e 73 22 0d 08 a1 05 cb 0d 08 a2 27 c8 99 20 |ons"........'.. | 00011850 22 4d 65 6e 75 55 74 69 6c 5f 54 65 78 74 22 2c |"MenuUtil_Text",| 00011860 55 73 65 72 53 75 62 6d 65 6e 75 25 2c 73 74 24 |UserSubmenu%,st$| 00011870 0d 08 a3 37 c8 99 20 22 4d 65 6e 75 55 74 69 6c |...7.. "MenuUtil| 00011880 5f 46 61 64 65 22 2c 69 74 65 6d 5f 72 65 6e 75 |_Fade",item_renu| 00011890 6d 62 65 72 69 63 6f 6e 25 2c 4e 72 53 65 6c 65 |mbericon%,NrSele| 000118a0 63 74 65 64 25 3d 30 0d 08 a4 30 c8 99 20 22 4d |cted%=0...0.. "M| 000118b0 65 6e 75 55 74 69 6c 5f 46 61 64 65 22 2c 69 74 |enuUtil_Fade",it| 000118c0 65 6d 5f 61 6c 69 67 6e 25 2c 4e 72 53 65 6c 65 |em_align%,NrSele| 000118d0 63 74 65 64 25 3c 32 0d 08 a5 33 c8 99 20 22 4d |cted%<2...3.. "M| 000118e0 65 6e 75 55 74 69 6c 5f 46 61 64 65 22 2c 69 74 |enuUtil_Fade",it| 000118f0 65 6d 5f 73 70 61 63 65 6f 75 74 25 2c 4e 72 53 |em_spaceout%,NrS| 00011900 65 6c 65 63 74 65 64 25 3c 32 0d 08 a6 32 c8 99 |elected%<2...2..| 00011910 20 22 4d 65 6e 75 55 74 69 6c 5f 54 65 78 74 22 | "MenuUtil_Text"| 00011920 2c 69 74 65 6d 5f 69 63 6f 6e 6e 72 25 2c c3 28 |,item_iconnr%,.(| 00011930 4e 65 78 74 49 63 6f 6e 4e 72 25 29 0d 08 a7 33 |NextIconNr%)...3| 00011940 c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f 46 61 64 |.. "MenuUtil_Fad| 00011950 65 22 2c 69 74 65 6d 5f 73 61 6d 65 73 69 7a 65 |e",item_samesize| 00011960 25 2c 4e 72 53 65 6c 65 63 74 65 64 25 3c 32 0d |%,NrSelected%<2.| 00011970 08 a8 15 57 69 6e 42 6c 6b 25 21 30 3d 77 69 6e |...WinBlk%!0=win| 00011980 64 6f 77 25 0d 08 a9 24 c8 99 20 22 57 69 6d 70 |dow%...$.. "Wimp| 00011990 5f 47 65 74 57 69 6e 64 6f 77 49 6e 66 6f 22 2c |_GetWindowInfo",| 000119a0 2c 57 69 6e 42 6c 6b 25 0d 08 aa 14 e7 20 57 69 |,WinBlk%..... Wi| 000119b0 6e 42 6c 6b 25 21 36 38 3d 31 20 8c 0d 08 ab 2e |nBlk%!68=1 .....| 000119c0 20 20 c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f 54 | .. "MenuUtil_T| 000119d0 69 63 6b 4f 6e 6c 79 22 2c 53 70 72 69 74 65 41 |ickOnly",SpriteA| 000119e0 72 65 61 4d 65 6e 75 25 2c 30 0d 08 ac 05 cc 0d |reaMenu%,0......| 000119f0 08 ad 2e 20 20 c8 99 20 22 4d 65 6e 75 55 74 69 |... .. "MenuUti| 00011a00 6c 5f 54 69 63 6b 4f 6e 6c 79 22 2c 53 70 72 69 |l_TickOnly",Spri| 00011a10 74 65 41 72 65 61 4d 65 6e 75 25 2c 31 0d 08 ae |teAreaMenu%,1...| 00011a20 05 cd 0d 08 af 24 c8 99 20 22 4d 65 6e 75 55 74 |.....$.. "MenuUt| 00011a30 69 6c 5f 54 65 78 74 22 2c 69 74 65 6d 5f 69 63 |il_Text",item_ic| 00011a40 6f 6e 25 2c 74 24 0d 08 b0 2f c8 99 20 22 4d 65 |on%,t$.../.. "Me| 00011a50 6e 75 55 74 69 6c 5f 46 61 64 65 22 2c 69 74 65 |nuUtil_Fade",ite| 00011a60 6d 5f 69 63 6f 6e 25 2c 4e 72 53 65 6c 65 63 74 |m_icon%,NrSelect| 00011a70 65 64 25 3d 30 0d 08 b1 35 c8 99 20 22 4d 65 6e |ed%=0...5.. "Men| 00011a80 75 55 74 69 6c 5f 46 61 64 65 22 2c 69 74 65 6d |uUtil_Fade",item| 00011a90 5f 73 65 6c 61 6c 6c 69 63 6f 6e 73 25 2c 57 69 |_selallicons%,Wi| 00011aa0 6e 42 6c 6b 25 21 38 38 3d 30 0d 08 b2 38 c8 99 |nBlk%!88=0...8..| 00011ab0 20 22 4d 65 6e 75 55 74 69 6c 5f 46 61 64 65 22 | "MenuUtil_Fade"| 00011ac0 2c 69 74 65 6d 5f 63 6c 65 61 72 73 65 6c 69 63 |,item_clearselic| 00011ad0 6f 6e 73 25 2c 4e 72 53 65 6c 65 63 74 65 64 25 |ons%,NrSelected%| 00011ae0 3d 30 0d 08 b3 33 c8 99 20 22 4d 65 6e 75 55 74 |=0...3.. "MenuUt| 00011af0 69 6c 5f 46 61 64 65 22 2c 69 74 65 6d 5f 74 69 |il_Fade",item_ti| 00011b00 64 79 69 63 6f 6e 73 25 2c 57 69 6e 42 6c 6b 25 |dyicons%,WinBlk%| 00011b10 21 38 38 3d 30 0d 08 b4 36 c8 99 20 22 4d 65 6e |!88=0...6.. "Men| 00011b20 75 55 74 69 6c 5f 46 61 64 65 22 2c 69 74 65 6d |uUtil_Fade",item| 00011b30 5f 73 70 72 69 74 65 61 72 65 61 25 2c 55 73 65 |_spritearea%,Use| 00011b40 72 53 70 72 69 74 65 73 25 3d 31 0d 08 b5 0d 78 |rSprites%=1....x| 00011b50 70 6f 73 25 2d 3d 36 34 0d 08 b6 15 e7 20 4e 72 |pos%-=64..... Nr| 00011b60 53 65 6c 65 63 74 65 64 25 3d 30 20 8c 0d 08 b7 |Selected%=0 ....| 00011b70 0f 20 20 79 70 6f 73 25 2b 3d 32 32 0d 08 b8 05 |. ypos%+=22....| 00011b80 cc 0d 08 b9 0f 20 20 79 70 6f 73 25 2b 3d 36 36 |..... ypos%+=66| 00011b90 0d 08 ba 05 cd 0d 08 bb 05 e1 0d 08 bc 04 0d 08 |................| 00011ba0 bd 24 dd 20 f2 69 63 62 75 74 74 6f 6e 6d 65 6e |.$. .icbuttonmen| 00011bb0 75 28 f8 20 78 70 6f 73 25 2c f8 20 79 70 6f 73 |u(. xpos%,. ypos| 00011bc0 25 29 0d 08 be 35 c8 99 20 22 4d 65 6e 75 55 74 |%)...5.. "MenuUt| 00011bd0 69 6c 5f 54 69 63 6b 4f 6e 6c 79 22 2c 49 63 42 |il_TickOnly",IcB| 00011be0 75 74 74 6f 6e 4d 65 6e 75 25 2c 49 63 45 64 5f |uttonMenu%,IcEd_| 00011bf0 42 75 74 74 6f 6e 25 0d 08 bf 0d 78 70 6f 73 25 |Button%....xpos%| 00011c00 2b 3d 31 36 0d 08 c0 1d 79 70 6f 73 25 2b 3d 32 |+=16....ypos%+=2| 00011c10 32 2b 49 63 45 64 5f 42 75 74 74 6f 6e 25 2a 34 |2+IcEd_Button%*4| 00011c20 34 0d 08 c1 05 e1 0d 08 c2 04 0d 08 c3 25 dd 20 |4............%. | 00011c30 f2 77 69 6e 62 75 74 74 6f 6e 6d 65 6e 75 28 f8 |.winbuttonmenu(.| 00011c40 20 78 70 6f 73 25 2c f8 20 79 70 6f 73 25 29 0d | xpos%,. ypos%).| 00011c50 08 c4 37 c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f |..7.. "MenuUtil_| 00011c60 54 69 63 6b 4f 6e 6c 79 22 2c 57 69 6e 42 75 74 |TickOnly",WinBut| 00011c70 74 6f 6e 4d 65 6e 75 25 2c 57 69 6e 45 64 5f 42 |tonMenu%,WinEd_B| 00011c80 75 74 74 6f 6e 25 0d 08 c5 0d 78 70 6f 73 25 2b |utton%....xpos%+| 00011c90 3d 31 36 0d 08 c6 1e 79 70 6f 73 25 2b 3d 32 32 |=16....ypos%+=22| 00011ca0 2b 57 69 6e 45 64 5f 42 75 74 74 6f 6e 25 2a 34 |+WinEd_Button%*4| 00011cb0 34 0d 08 c7 05 e1 0d 08 c8 04 0d 08 c9 1f dd 20 |4.............. | 00011cc0 f2 65 73 67 6d 65 6e 75 28 f8 20 78 70 6f 73 25 |.esgmenu(. xpos%| 00011cd0 2c f8 20 79 70 6f 73 25 29 0d 08 ca 33 e7 20 45 |,. ypos%)...3. E| 00011ce0 73 67 4d 65 6e 75 25 3c 3e 30 20 8c 20 c8 99 20 |sgMenu%<>0 . .. | 00011cf0 22 4d 65 6e 75 55 74 69 6c 5f 44 65 6c 65 74 65 |"MenuUtil_Delete| 00011d00 22 2c 45 73 67 4d 65 6e 75 25 2c a3 0d 08 cb 13 |",EsgMenu%,.....| 00011d10 e7 20 53 75 70 70 6f 72 74 41 45 48 25 20 8c 0d |. SupportAEH% ..| 00011d20 08 cc 29 20 20 c8 99 20 22 4d 65 6e 75 55 74 69 |..) .. "MenuUti| 00011d30 6c 5f 4e 65 77 22 2c 2c 22 45 53 47 22 20 b8 20 |l_New",,"ESG" . | 00011d40 45 73 67 4d 65 6e 75 25 0d 08 cd 2e 20 20 64 75 |EsgMenu%.... du| 00011d50 6d 6d 79 25 3d a4 6d 65 6e 75 5f 61 64 64 77 72 |mmy%=.menu_addwr| 00011d60 69 74 61 62 6c 65 28 33 2c 4e 75 6d 56 61 6c 69 |itable(3,NumVali| 00011d70 64 53 74 72 25 29 0d 08 ce 26 20 20 c8 99 20 22 |dStr%)...& .. "| 00011d80 4d 65 6e 75 55 74 69 6c 5f 54 65 78 74 22 2c 2c |MenuUtil_Text",,| 00011d90 c3 28 49 63 45 64 5f 45 73 67 25 29 0d 08 cf 2a |.(IcEd_Esg%)...*| 00011da0 20 20 64 75 6d 6d 79 25 3d a4 6d 65 6e 75 5f 61 | dummy%=.menu_a| 00011db0 64 64 28 22 31 36 20 28 41 63 74 69 6f 6e 29 22 |dd("16 (Action)"| 00011dc0 2c 2d 31 2c 30 29 0d 08 d0 32 20 20 64 75 6d 6d |,-1,0)...2 dumm| 00011dd0 79 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 31 38 |y%=.menu_add("18| 00011de0 20 28 44 65 66 61 75 6c 74 20 61 63 74 69 6f 6e | (Default action| 00011df0 29 22 2c 2d 31 2c 30 29 0d 08 d1 2c 20 20 64 75 |)",-1,0)..., du| 00011e00 6d 6d 79 25 3d a4 6d 65 6e 75 5f 61 64 64 28 22 |mmy%=.menu_add("| 00011e10 31 39 20 28 57 72 69 74 61 62 6c 65 29 22 2c 2d |19 (Writable)",-| 00011e20 31 2c 30 29 0d 08 d2 2b 20 20 64 75 6d 6d 79 25 |1,0)...+ dummy%| 00011e30 3d a4 6d 65 6e 75 5f 61 64 64 28 22 32 30 20 28 |=.menu_add("20 (| 00011e40 44 69 73 70 6c 61 79 29 22 2c 2d 31 2c 30 29 0d |Display)",-1,0).| 00011e50 08 d3 2d 20 20 64 75 6d 6d 79 25 3d a4 6d 65 6e |..- dummy%=.men| 00011e60 75 5f 61 64 64 28 22 32 31 20 28 47 72 6f 75 70 |u_add("21 (Group| 00011e70 20 62 6f 78 29 22 2c 2d 31 2c 30 29 0d 08 d4 30 | box)",-1,0)...0| 00011e80 20 20 64 75 6d 6d 79 25 3d a4 6d 65 6e 75 5f 61 | dummy%=.menu_a| 00011e90 64 64 28 22 32 34 20 28 32 34 62 69 74 20 63 6f |dd("24 (24bit co| 00011ea0 6c 6f 75 72 29 22 2c 2d 31 2c 30 29 0d 08 d5 2a |lour)",-1,0)...*| 00011eb0 20 20 64 75 6d 6d 79 25 3d a4 6d 65 6e 75 5f 61 | dummy%=.menu_a| 00011ec0 64 64 28 22 32 35 20 28 53 6c 69 64 65 72 29 22 |dd("25 (Slider)"| 00011ed0 2c 2d 31 2c 30 29 0d 08 d6 0f 20 20 79 70 6f 73 |,-1,0).... ypos| 00011ee0 25 2b 3d 32 32 0d 08 d7 05 cc 0d 08 d8 29 20 20 |%+=22........) | 00011ef0 c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f 4e 65 77 |.. "MenuUtil_New| 00011f00 22 2c 2c 22 45 53 47 22 20 b8 20 45 73 67 4d 65 |",,"ESG" . EsgMe| 00011f10 6e 75 25 0d 08 d9 11 20 20 e3 20 69 25 3d 30 20 |nu%.... . i%=0 | 00011f20 b8 20 31 35 0d 08 da 24 20 20 20 20 64 75 6d 6d |. 15...$ dumm| 00011f30 79 25 3d a4 6d 65 6e 75 5f 61 64 64 28 c3 28 69 |y%=.menu_add(.(i| 00011f40 25 29 2c 2d 31 2c 30 29 0d 08 db 0a 20 20 ed 20 |%),-1,0).... . | 00011f50 69 25 0d 08 dc 0f 20 20 79 70 6f 73 25 2b 3d 32 |i%.... ypos%+=2| 00011f60 32 0d 08 dd 17 20 20 e7 20 49 63 45 64 5f 45 73 |2.... . IcEd_Es| 00011f70 67 25 3c 3d 31 35 20 8c 0d 08 de 31 20 20 20 20 |g%<=15 ....1 | 00011f80 c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f 54 69 63 |.. "MenuUtil_Tic| 00011f90 6b 4f 6e 6c 79 22 2c 45 73 67 4d 65 6e 75 25 2c |kOnly",EsgMenu%,| 00011fa0 49 63 45 64 5f 45 73 67 25 0d 08 df 1b 20 20 20 |IcEd_Esg%.... | 00011fb0 20 79 70 6f 73 25 2b 3d 49 63 45 64 5f 45 73 67 | ypos%+=IcEd_Esg| 00011fc0 25 2a 34 34 0d 08 e0 07 20 20 cd 0d 08 e1 05 cd |%*44.... ......| 00011fd0 0d 08 e2 0d 78 70 6f 73 25 2b 3d 31 36 0d 08 e3 |....xpos%+=16...| 00011fe0 05 e1 0d 08 e4 04 0d 08 e5 30 dd 20 f2 63 6f 6c |.........0. .col| 00011ff0 6f 75 72 6d 65 6e 75 28 f8 20 78 70 6f 73 25 2c |ourmenu(. xpos%,| 00012000 f8 20 79 70 6f 73 25 2c 77 69 6e 64 6f 77 25 2c |. ypos%,window%,| 00012010 69 63 6f 6e 25 29 0d 08 e6 2a ea 20 69 25 2c 66 |icon%)...*. i%,f| 00012020 6c 61 67 73 25 2c 63 75 72 72 65 6e 74 25 2c 62 |lags%,current%,b| 00012030 69 67 72 61 6e 67 65 25 2c 74 72 61 6e 73 70 25 |igrange%,transp%| 00012040 0d 08 e7 39 e7 20 43 6f 6c 6f 75 72 4d 65 6e 75 |...9. ColourMenu| 00012050 25 3c 3e 30 20 8c 20 c8 99 20 22 4d 65 6e 75 55 |%<>0 . .. "MenuU| 00012060 74 69 6c 5f 44 65 6c 65 74 65 22 2c 43 6f 6c 6f |til_Delete",Colo| 00012070 75 72 4d 65 6e 75 25 2c a3 0d 08 e8 10 c8 8e 20 |urMenu%,....... | 00012080 77 69 6e 64 6f 77 25 20 ca 0d 08 e9 0e 20 20 c9 |window% ..... .| 00012090 20 49 63 45 64 57 25 0d 08 ea 12 20 20 20 20 c8 | IcEdW%.... .| 000120a0 8e 20 69 63 6f 6e 25 20 ca 0d 08 eb 25 20 20 20 |. icon% ....% | 000120b0 20 20 20 c9 20 33 34 20 3a 20 63 75 72 72 65 6e | . 34 : curren| 000120c0 74 25 3d 49 63 45 64 5f 46 67 63 6f 6c 25 0d 08 |t%=IcEd_Fgcol%..| 000120d0 ec 25 20 20 20 20 20 20 c9 20 33 37 20 3a 20 63 |.% . 37 : c| 000120e0 75 72 72 65 6e 74 25 3d 49 63 45 64 5f 42 67 63 |urrent%=IcEd_Bgc| 000120f0 6f 6c 25 0d 08 ed 09 20 20 20 20 cb 0d 08 ee 13 |ol%.... .....| 00012100 20 20 20 20 62 69 67 72 61 6e 67 65 25 3d a3 0d | bigrange%=..| 00012110 08 ef 11 20 20 20 20 74 72 61 6e 73 70 25 3d a3 |... transp%=.| 00012120 0d 08 f0 0f 20 20 c9 20 57 69 6e 45 64 57 25 0d |.... . WinEdW%.| 00012130 08 f1 2a 20 20 20 20 62 69 67 72 61 6e 67 65 25 |..* bigrange%| 00012140 3d a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 28 57 |=.iconselected(W| 00012150 69 6e 45 64 57 25 2c 39 29 0d 08 f2 25 20 20 20 |inEdW%,9)...% | 00012160 20 74 72 61 6e 73 70 25 3d 28 69 63 6f 6e 25 3d | transp%=(icon%=| 00012170 32 37 29 84 28 69 63 6f 6e 25 3d 33 39 29 0d 08 |27).(icon%=39)..| 00012180 f3 29 20 20 20 20 63 75 72 72 65 6e 74 25 3d 57 |.) current%=W| 00012190 69 6e 45 64 5f 43 6f 6c 25 28 28 69 63 6f 6e 25 |inEd_Col%((icon%| 000121a0 2d 32 37 29 81 34 29 0d 08 f4 05 cb 0d 08 f5 11 |-27).4).........| 000121b0 e7 20 62 69 67 72 61 6e 67 65 25 20 8c 0d 08 f6 |. bigrange% ....| 000121c0 3b 20 20 f4 20 63 6f 6c 6f 75 72 20 6d 65 6e 75 |; . colour menu| 000121d0 20 66 6f 72 20 63 6f 6c 6f 75 72 20 6e 75 6d 62 | for colour numb| 000121e0 65 72 73 20 30 2d 32 35 35 20 28 47 43 4f 4c 20 |ers 0-255 (GCOL | 000121f0 63 6f 6c 6f 75 72 73 29 0d 08 f7 2c 20 20 c8 99 |colours)..., ..| 00012200 20 22 4d 65 6e 75 55 74 69 6c 5f 4e 65 77 22 2c | "MenuUtil_New",| 00012210 2c 22 43 6f 6c 22 20 b8 20 43 6f 6c 6f 75 72 4d |,"Col" . ColourM| 00012220 65 6e 75 25 0d 08 f8 2e 20 20 64 75 6d 6d 79 25 |enu%.... dummy%| 00012230 3d a4 6d 65 6e 75 5f 61 64 64 77 72 69 74 61 62 |=.menu_addwritab| 00012240 6c 65 28 34 2c 4e 75 6d 56 61 6c 69 64 53 74 72 |le(4,NumValidStr| 00012250 25 29 0d 08 f9 25 20 20 c8 99 20 22 4d 65 6e 75 |%)...% .. "Menu| 00012260 55 74 69 6c 5f 54 65 78 74 22 2c 2c c3 28 63 75 |Util_Text",,.(cu| 00012270 72 72 65 6e 74 25 29 0d 08 fa 11 20 20 e7 20 74 |rrent%).... . t| 00012280 72 61 6e 73 70 25 20 8c 0d 08 fb 21 20 20 20 20 |ransp% ....! | 00012290 c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f 41 64 64 |.. "MenuUtil_Add| 000122a0 22 2c 2c 22 4e 6f 6e 65 22 0d 08 fc 28 20 20 20 |",,"None"...( | 000122b0 20 c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f 54 69 | .. "MenuUtil_Ti| 000122c0 63 6b 22 2c 2c 63 75 72 72 65 6e 74 25 3d 32 35 |ck",,current%=25| 000122d0 35 0d 08 fd 07 20 20 cd 0d 08 fe 05 cc 0d 08 ff |5.... .........| 000122e0 2b 20 20 f4 20 63 6f 6c 6f 75 72 20 6d 65 6e 75 |+ . colour menu| 000122f0 20 66 6f 72 20 63 6f 6c 6f 75 72 20 6e 75 6d 62 | for colour numb| 00012300 65 72 73 20 30 2d 31 35 0d 09 00 2c 20 20 c8 99 |ers 0-15..., ..| 00012310 20 22 4d 65 6e 75 55 74 69 6c 5f 4e 65 77 22 2c | "MenuUtil_New",| 00012320 2c 22 43 6f 6c 22 20 b8 20 43 6f 6c 6f 75 72 4d |,"Col" . ColourM| 00012330 65 6e 75 25 0d 09 01 11 20 20 e3 20 69 25 3d 30 |enu%.... . i%=0| 00012340 20 b8 20 31 35 0d 09 02 20 20 20 20 20 c8 99 20 | . 15... .. | 00012350 22 4d 65 6e 75 55 74 69 6c 5f 41 64 64 22 2c 2c |"MenuUtil_Add",,| 00012360 c3 28 69 25 29 0d 09 03 34 20 20 20 20 c8 99 20 |.(i%)...4 .. | 00012370 22 4d 65 6e 75 55 74 69 6c 5f 43 6f 6c 6f 75 72 |"MenuUtil_Colour| 00012380 73 22 2c 2c 49 6e 76 65 72 73 65 43 6f 6c 6f 75 |s",,InverseColou| 00012390 72 25 28 69 25 29 2c 69 25 0d 09 04 0a 20 20 ed |r%(i%),i%.... .| 000123a0 20 69 25 0d 09 05 11 20 20 e7 20 74 72 61 6e 73 | i%.... . trans| 000123b0 70 25 20 8c 0d 09 06 1d 20 20 20 20 c8 99 20 22 |p% ..... .. "| 000123c0 4d 65 6e 75 55 74 69 6c 5f 44 6f 74 73 22 2c 2c |MenuUtil_Dots",,| 000123d0 31 0d 09 07 21 20 20 20 20 c8 99 20 22 4d 65 6e |1...! .. "Men| 000123e0 75 55 74 69 6c 5f 41 64 64 22 2c 2c 22 4e 6f 6e |uUtil_Add",,"Non| 000123f0 65 22 0d 09 08 07 20 20 cd 0d 09 09 16 20 20 e7 |e".... ..... .| 00012400 20 63 75 72 72 65 6e 74 25 3d 32 35 35 20 8c 0d | current%=255 ..| 00012410 09 0a 2d 20 20 20 20 c8 99 20 22 4d 65 6e 75 55 |..- .. "MenuU| 00012420 74 69 6c 5f 54 69 63 6b 4f 6e 6c 79 22 2c 43 6f |til_TickOnly",Co| 00012430 6c 6f 75 72 4d 65 6e 75 25 2c 31 36 0d 09 0b 07 |lourMenu%,16....| 00012440 20 20 cc 0d 09 0c 33 20 20 20 20 c8 99 20 22 4d | ....3 .. "M| 00012450 65 6e 75 55 74 69 6c 5f 54 69 63 6b 4f 6e 6c 79 |enuUtil_TickOnly| 00012460 22 2c 43 6f 6c 6f 75 72 4d 65 6e 75 25 2c 63 75 |",ColourMenu%,cu| 00012470 72 72 65 6e 74 25 0d 09 0d 07 20 20 cd 0d 09 0e |rrent%.... ....| 00012480 05 cd 0d 09 0f 0d 78 70 6f 73 25 2b 3d 31 36 0d |......xpos%+=16.| 00012490 09 10 0d 79 70 6f 73 25 2b 3d 32 32 0d 09 11 15 |...ypos%+=22....| 000124a0 e7 20 28 ac 20 62 69 67 72 61 6e 67 65 25 29 20 |. (. bigrange%) | 000124b0 8c 0d 09 12 16 20 20 e7 20 63 75 72 72 65 6e 74 |..... . current| 000124c0 25 3d 32 35 35 20 8c 0d 09 13 17 20 20 20 20 79 |%=255 ..... y| 000124d0 70 6f 73 25 2b 3d 31 36 2a 34 34 2b 32 32 0d 09 |pos%+=16*44+22..| 000124e0 14 07 20 20 cc 0d 09 15 1a 20 20 20 20 79 70 6f |.. ..... ypo| 000124f0 73 25 2b 3d 63 75 72 72 65 6e 74 25 2a 34 34 0d |s%+=current%*44.| 00012500 09 16 07 20 20 cd 0d 09 17 05 cd 0d 09 18 05 e1 |... ...........| 00012510 0d 09 19 04 0d 09 1a 0f dd 20 f2 66 6f 6e 74 6d |......... .fontm| 00012520 65 6e 75 0d 09 1b 2f ea 20 6e 65 78 74 25 2c 66 |enu.../. next%,f| 00012530 6f 6e 74 24 2c 66 61 6d 24 2c 73 74 79 6c 65 24 |ont$,fam$,style$| 00012540 2c 70 25 2c 73 75 62 6d 65 6e 75 25 2c 69 74 65 |,p%,submenu%,ite| 00012550 6d 25 0d 09 1c 29 c8 99 20 22 4d 65 6e 75 55 74 |m%...).. "MenuUt| 00012560 69 6c 5f 4e 65 77 22 2c 2c 22 46 6f 6e 74 22 20 |il_New",,"Font" | 00012570 b8 20 46 6f 6e 74 4d 65 6e 75 25 0d 09 1d 0b 66 |. FontMenu%....f| 00012580 61 6d 24 3d 22 22 0d 09 1e 0b 6e 65 78 74 25 3d |am$=""....next%=| 00012590 30 0d 09 1f 05 f5 0d 09 20 11 20 20 66 24 3d c4 |0....... . f$=.| 000125a0 34 30 2c 22 20 22 29 0d 09 21 37 20 20 c8 99 20 |40," ")..!7 .. | 000125b0 22 46 6f 6e 74 5f 4c 69 73 74 46 6f 6e 74 73 22 |"Font_ListFonts"| 000125c0 2c 2c 46 6f 6e 74 44 61 74 61 25 2c 6e 65 78 74 |,,FontData%,next| 000125d0 25 2c 2d 31 20 b8 20 2c 2c 6e 65 78 74 25 0d 09 |%,-1 . ,,next%..| 000125e0 22 13 20 20 e7 20 6e 65 78 74 25 3c 3e 2d 31 20 |". . next%<>-1 | 000125f0 8c 0d 09 23 17 20 20 20 20 66 24 3d 24 28 46 6f |...#. f$=$(Fo| 00012600 6e 74 44 61 74 61 25 29 0d 09 24 13 20 20 20 20 |ntData%)..$. | 00012610 70 25 3d a7 66 24 2c 22 2e 22 29 0d 09 25 10 20 |p%=.f$,".")..%. | 00012620 20 20 20 e7 20 70 25 3e 30 20 8c 0d 09 26 1a 20 | . p%>0 ...&. | 00012630 20 20 20 20 20 73 74 79 6c 65 24 3d c1 66 24 2c | style$=.f$,| 00012640 70 25 2b 31 29 0d 09 27 16 20 20 20 20 20 20 66 |p%+1)..'. f| 00012650 24 3d c0 66 24 2c 70 25 2d 31 29 0d 09 28 09 20 |$=.f$,p%-1)..(. | 00012660 20 20 20 cc 0d 09 29 1c 20 20 20 20 20 20 73 74 | ...). st| 00012670 79 6c 65 24 3d 22 28 52 65 67 75 6c 61 72 29 22 |yle$="(Regular)"| 00012680 0d 09 2a 09 20 20 20 20 cd 0d 09 2b 24 20 20 20 |..*. ...+$ | 00012690 20 e7 20 28 66 24 3c 3e 66 61 6d 24 29 20 80 20 | . (f$<>fam$) . | 000126a0 28 6e 65 78 74 25 3c 3e 2d 31 29 20 8c 0d 09 2c |(next%<>-1) ...,| 000126b0 1b 20 20 20 20 20 20 f4 20 6e 65 77 20 66 6f 6e |. . new fon| 000126c0 74 20 66 61 6d 69 6c 79 0d 09 2d 11 20 20 20 20 |t family..-. | 000126d0 20 20 66 61 6d 24 3d 66 24 0d 09 2e 32 20 20 20 | fam$=f$...2 | 000126e0 20 20 20 c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f | .. "MenuUtil_| 000126f0 41 64 64 22 2c 46 6f 6e 74 4d 65 6e 75 25 2c 66 |Add",FontMenu%,f| 00012700 61 6d 24 20 b8 20 69 74 65 6d 25 0d 09 2f 2c 20 |am$ . item%../, | 00012710 20 20 20 20 20 c8 99 20 22 4d 65 6e 75 55 74 69 | .. "MenuUti| 00012720 6c 5f 4e 65 77 22 2c 2c 66 61 6d 24 20 b8 20 73 |l_New",,fam$ . s| 00012730 75 62 6d 65 6e 75 25 0d 09 30 2e 20 20 20 20 20 |ubmenu%..0. | 00012740 20 c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f 53 75 | .. "MenuUtil_Su| 00012750 62 4d 65 6e 75 22 2c 69 74 65 6d 25 2c 73 75 62 |bMenu",item%,sub| 00012760 6d 65 6e 75 25 0d 09 31 09 20 20 20 20 cd 0d 09 |menu%..1. ...| 00012770 32 29 20 20 20 20 c8 99 20 22 4d 65 6e 75 55 74 |2) .. "MenuUt| 00012780 69 6c 5f 41 64 64 22 2c 73 75 62 6d 65 6e 75 25 |il_Add",submenu%| 00012790 2c 73 74 79 6c 65 24 0d 09 33 07 20 20 cd 0d 09 |,style$..3. ...| 000127a0 34 0e fd 20 6e 65 78 74 25 3d 2d 31 0d 09 35 05 |4.. next%=-1..5.| 000127b0 e1 0d 09 36 04 0d 09 37 32 dd 20 f2 66 6f 6e 74 |...6...72. .font| 000127c0 73 69 7a 65 6d 65 6e 75 28 f8 20 78 70 6f 73 25 |sizemenu(. xpos%| 000127d0 2c f8 20 79 70 6f 73 25 2c 77 69 6e 64 6f 77 25 |,. ypos%,window%| 000127e0 2c 69 63 6f 6e 25 29 0d 09 38 10 e7 20 69 63 6f |,icon%)..8.. ico| 000127f0 6e 25 3d 34 38 20 8c 0d 09 39 39 20 20 c8 99 20 |n%=48 ...99 .. | 00012800 22 4d 65 6e 75 55 74 69 6c 5f 54 65 78 74 22 2c |"MenuUtil_Text",| 00012810 69 74 65 6d 5f 66 6f 6e 74 73 69 7a 65 25 2c c0 |item_fontsize%,.| 00012820 c3 28 49 63 45 64 5f 58 73 69 7a 65 29 2c 35 29 |.(IcEd_Xsize),5)| 00012830 0d 09 3a 05 cc 0d 09 3b 39 20 20 c8 99 20 22 4d |..:....;9 .. "M| 00012840 65 6e 75 55 74 69 6c 5f 54 65 78 74 22 2c 69 74 |enuUtil_Text",it| 00012850 65 6d 5f 66 6f 6e 74 73 69 7a 65 25 2c c0 c3 28 |em_fontsize%,..(| 00012860 49 63 45 64 5f 59 73 69 7a 65 29 2c 35 29 0d 09 |IcEd_Ysize),5)..| 00012870 3c 05 cd 0d 09 3d 0f 79 70 6f 73 25 2b 3d 37 2a |<....=.ypos%+=7*| 00012880 34 34 0d 09 3e 05 e1 0d 09 3f 04 0d 09 40 30 dd |44..>....?...@0.| 00012890 20 f2 75 70 64 61 74 65 6d 65 6e 75 28 f8 20 78 | .updatemenu(. x| 000128a0 70 6f 73 25 2c f8 20 79 70 6f 73 25 2c 77 69 6e |pos%,. ypos%,win| 000128b0 64 6f 77 25 2c 69 63 6f 6e 25 29 0d 09 41 0b ea |dow%,icon%)..A..| 000128c0 20 66 6f 6e 74 25 0d 09 42 22 66 6f 6e 74 25 3d | font%..B"font%=| 000128d0 a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 28 49 63 |.iconselected(Ic| 000128e0 45 64 57 25 2c 34 31 29 0d 09 43 28 c8 99 20 22 |EdW%,41)..C(.. "| 000128f0 4d 65 6e 75 55 74 69 6c 5f 46 61 64 65 22 2c 69 |MenuUtil_Fade",i| 00012900 74 65 6d 5f 75 70 64 66 67 25 2c 66 6f 6e 74 25 |tem_updfg%,font%| 00012910 0d 09 44 28 c8 99 20 22 4d 65 6e 75 55 74 69 6c |..D(.. "MenuUtil| 00012920 5f 46 61 64 65 22 2c 69 74 65 6d 5f 75 70 64 62 |_Fade",item_updb| 00012930 67 25 2c 66 6f 6e 74 25 0d 09 45 2c c8 99 20 22 |g%,font%..E,.. "| 00012940 4d 65 6e 75 55 74 69 6c 5f 46 61 64 65 22 2c 69 |MenuUtil_Fade",i| 00012950 74 65 6d 5f 75 70 64 66 6f 6e 74 25 2c ac 20 66 |tem_updfont%,. f| 00012960 6f 6e 74 25 0d 09 46 0d 79 70 6f 73 25 2b 3d 32 |ont%..F.ypos%+=2| 00012970 32 0d 09 47 05 e1 0d 09 48 04 0d 09 49 2c dd 20 |2..G....H...I,. | 00012980 f2 63 72 65 61 74 65 6d 65 6e 75 28 78 70 6f 73 |.createmenu(xpos| 00012990 25 2c 79 70 6f 73 25 2c 77 69 6e 64 6f 77 25 2c |%,ypos%,window%,| 000129a0 69 63 6f 6e 25 29 0d 09 4a 15 4c 61 73 74 4d 65 |icon%)..J.LastMe| 000129b0 6e 75 5f 58 25 3d 78 70 6f 73 25 0d 09 4b 15 4c |nu_X%=xpos%..K.L| 000129c0 61 73 74 4d 65 6e 75 5f 59 25 3d 79 70 6f 73 25 |astMenu_Y%=ypos%| 000129d0 0d 09 4c 19 4c 61 73 74 4d 65 6e 75 5f 57 69 6e |..L.LastMenu_Win| 000129e0 25 3d 77 69 6e 64 6f 77 25 0d 09 4d 18 4c 61 73 |%=window%..M.Las| 000129f0 74 4d 65 6e 75 5f 49 63 6f 6e 25 3d 69 63 6f 6e |tMenu_Icon%=icon| 00012a00 25 0d 09 4e 10 4c 61 73 74 4d 65 6e 75 25 3d 2d |%..N.LastMenu%=-| 00012a10 31 0d 09 4f 10 c8 8e 20 77 69 6e 64 6f 77 25 20 |1..O... window% | 00012a20 ca 0d 09 50 0a 20 20 c9 20 2d 32 0d 09 51 11 20 |...P. . -2..Q. | 00012a30 20 20 20 f2 6d 61 69 6e 6d 65 6e 75 0d 09 52 1b | .mainmenu..R.| 00012a40 20 20 20 20 4c 61 73 74 4d 65 6e 75 25 3d 4d 61 | LastMenu%=Ma| 00012a50 69 6e 4d 65 6e 75 25 0d 09 53 0f 20 20 c9 20 54 |inMenu%..S. . T| 00012a60 65 6d 70 6c 57 25 0d 09 54 28 20 20 20 20 f2 74 |emplW%..T( .t| 00012a70 65 6d 70 6c 61 74 65 6d 65 6e 75 28 78 70 6f 73 |emplatemenu(xpos| 00012a80 25 2c 79 70 6f 73 25 2c 69 63 6f 6e 25 29 0d 09 |%,ypos%,icon%)..| 00012a90 55 1c 20 20 20 20 4c 61 73 74 4d 65 6e 75 25 3d |U. LastMenu%=| 00012aa0 54 65 6d 70 6c 4d 65 6e 75 25 0d 09 56 0e 20 20 |TemplMenu%..V. | 00012ab0 c9 20 49 63 45 64 57 25 0d 09 57 12 20 20 20 20 |. IcEdW%..W. | 00012ac0 c8 8e 20 69 63 6f 6e 25 20 ca 0d 09 58 10 20 20 |.. icon% ...X. | 00012ad0 20 20 20 20 c9 20 39 2c 31 30 0d 09 59 1d 20 20 | . 9,10..Y. | 00012ae0 20 20 20 20 20 20 e7 20 49 63 45 64 5f 49 63 6f | . IcEd_Ico| 00012af0 6e 25 3d 2d 31 20 8c 0d 09 5a 34 20 20 20 20 20 |n%=-1 ...Z4 | 00012b00 20 20 20 20 20 f2 75 70 64 61 74 65 6d 65 6e 75 | .updatemenu| 00012b10 28 78 70 6f 73 25 2c 79 70 6f 73 25 2c 77 69 6e |(xpos%,ypos%,win| 00012b20 64 6f 77 25 2c 69 63 6f 6e 25 29 0d 09 5b 23 20 |dow%,icon%)..[# | 00012b30 20 20 20 20 20 20 20 20 20 4c 61 73 74 4d 65 6e | LastMen| 00012b40 75 25 3d 55 70 64 61 74 65 6d 65 6e 75 25 0d 09 |u%=Updatemenu%..| 00012b50 5c 0d 20 20 20 20 20 20 20 20 cd 0d 09 5d 0e 20 |\. ...]. | 00012b60 20 20 20 20 20 c9 20 32 38 0d 09 5e 26 20 20 20 | . 28..^& | 00012b70 20 20 20 20 20 f2 69 63 62 75 74 74 6f 6e 6d 65 | .icbuttonme| 00012b80 6e 75 28 78 70 6f 73 25 2c 79 70 6f 73 25 29 0d |nu(xpos%,ypos%).| 00012b90 09 5f 23 20 20 20 20 20 20 20 20 4c 61 73 74 4d |._# LastM| 00012ba0 65 6e 75 25 3d 49 63 42 75 74 74 6f 6e 4d 65 6e |enu%=IcButtonMen| 00012bb0 75 25 0d 09 60 0e 20 20 20 20 20 20 c9 20 33 31 |u%..`. . 31| 00012bc0 0d 09 61 21 20 20 20 20 20 20 20 20 f2 65 73 67 |..a! .esg| 00012bd0 6d 65 6e 75 28 78 70 6f 73 25 2c 79 70 6f 73 25 |menu(xpos%,ypos%| 00012be0 29 0d 09 62 1e 20 20 20 20 20 20 20 20 4c 61 73 |)..b. Las| 00012bf0 74 4d 65 6e 75 25 3d 45 73 67 4d 65 6e 75 25 0d |tMenu%=EsgMenu%.| 00012c00 09 63 11 20 20 20 20 20 20 c9 20 33 34 2c 33 37 |.c. . 34,37| 00012c10 0d 09 64 32 20 20 20 20 20 20 20 20 f2 63 6f 6c |..d2 .col| 00012c20 6f 75 72 6d 65 6e 75 28 78 70 6f 73 25 2c 79 70 |ourmenu(xpos%,yp| 00012c30 6f 73 25 2c 77 69 6e 64 6f 77 25 2c 69 63 6f 6e |os%,window%,icon| 00012c40 25 29 0d 09 65 21 20 20 20 20 20 20 20 20 4c 61 |%)..e! La| 00012c50 73 74 4d 65 6e 75 25 3d 43 6f 6c 6f 75 72 4d 65 |stMenu%=ColourMe| 00012c60 6e 75 25 0d 09 66 11 20 20 20 20 20 20 c9 20 34 |nu%..f. . 4| 00012c70 35 2c 34 36 0d 09 67 15 20 20 20 20 20 20 20 20 |5,46..g. | 00012c80 78 70 6f 73 25 2b 3d 31 36 0d 09 68 15 20 20 20 |xpos%+=16..h. | 00012c90 20 20 20 20 20 79 70 6f 73 25 2b 3d 32 32 0d 09 | ypos%+=22..| 00012ca0 69 1f 20 20 20 20 20 20 20 20 4c 61 73 74 4d 65 |i. LastMe| 00012cb0 6e 75 25 3d 46 6f 6e 74 4d 65 6e 75 25 0d 09 6a |nu%=FontMenu%..j| 00012cc0 11 20 20 20 20 20 20 c9 20 34 38 2c 35 31 0d 09 |. . 48,51..| 00012cd0 6b 34 20 20 20 20 20 20 20 20 f2 66 6f 6e 74 73 |k4 .fonts| 00012ce0 69 7a 65 6d 65 6e 75 28 78 70 6f 73 25 2c 79 70 |izemenu(xpos%,yp| 00012cf0 6f 73 25 2c 77 69 6e 64 6f 77 25 2c 69 63 6f 6e |os%,window%,icon| 00012d00 25 29 0d 09 6c 23 20 20 20 20 20 20 20 20 4c 61 |%)..l# La| 00012d10 73 74 4d 65 6e 75 25 3d 46 6f 6e 74 53 69 7a 65 |stMenu%=FontSize| 00012d20 6d 65 6e 75 25 0d 09 6d 09 20 20 20 20 cb 0d 09 |menu%..m. ...| 00012d30 6e 0f 20 20 c9 20 57 69 6e 45 64 57 25 0d 09 6f |n. . WinEdW%..o| 00012d40 12 20 20 20 20 c8 8e 20 69 63 6f 6e 25 20 ca 0d |. .. icon% ..| 00012d50 09 70 0e 20 20 20 20 20 20 c9 20 32 33 0d 09 71 |.p. . 23..q| 00012d60 27 20 20 20 20 20 20 20 20 f2 77 69 6e 62 75 74 |' .winbut| 00012d70 74 6f 6e 6d 65 6e 75 28 78 70 6f 73 25 2c 79 70 |tonmenu(xpos%,yp| 00012d80 6f 73 25 29 0d 09 72 24 20 20 20 20 20 20 20 20 |os%)..r$ | 00012d90 4c 61 73 74 4d 65 6e 75 25 3d 57 69 6e 42 75 74 |LastMenu%=WinBut| 00012da0 74 6f 6e 4d 65 6e 75 25 0d 09 73 20 20 20 20 20 |tonMenu%..s | 00012db0 20 20 c9 20 32 37 2c 33 31 2c 33 35 2c 33 39 2c | . 27,31,35,39,| 00012dc0 34 33 2c 34 37 2c 35 31 0d 09 74 32 20 20 20 20 |43,47,51..t2 | 00012dd0 20 20 20 20 f2 63 6f 6c 6f 75 72 6d 65 6e 75 28 | .colourmenu(| 00012de0 78 70 6f 73 25 2c 79 70 6f 73 25 2c 77 69 6e 64 |xpos%,ypos%,wind| 00012df0 6f 77 25 2c 69 63 6f 6e 25 29 0d 09 75 21 20 20 |ow%,icon%)..u! | 00012e00 20 20 20 20 20 20 4c 61 73 74 4d 65 6e 75 25 3d | LastMenu%=| 00012e10 43 6f 6c 6f 75 72 4d 65 6e 75 25 0d 09 76 09 20 |ColourMenu%..v. | 00012e20 20 20 20 cb 0d 09 77 07 20 20 7f 0d 09 78 26 20 | ...w. ...x& | 00012e30 20 20 20 e7 20 a4 77 68 69 63 68 74 65 6d 70 6c | . .whichtempl| 00012e40 61 74 65 28 77 69 6e 64 6f 77 25 29 3e 3d 30 20 |ate(window%)>=0 | 00012e50 8c 0d 09 79 2e 20 20 20 20 20 20 f2 75 73 65 72 |...y. .user| 00012e60 6d 65 6e 75 28 78 70 6f 73 25 2c 79 70 6f 73 25 |menu(xpos%,ypos%| 00012e70 2c 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 29 0d |,window%,icon%).| 00012e80 09 7a 1d 20 20 20 20 20 20 4c 61 73 74 4d 65 6e |.z. LastMen| 00012e90 75 25 3d 55 73 65 72 4d 65 6e 75 25 0d 09 7b 09 |u%=UserMenu%..{.| 00012ea0 20 20 20 20 cd 0d 09 7c 05 cb 0d 09 7d 15 e7 20 | ...|....}.. | 00012eb0 4c 61 73 74 4d 65 6e 75 25 3c 3e 2d 31 20 8c 0d |LastMenu%<>-1 ..| 00012ec0 09 7e 17 20 20 53 63 72 61 70 42 6c 6b 25 21 30 |.~. ScrapBlk%!0| 00012ed0 3d 78 70 6f 73 25 0d 09 7f 17 20 20 53 63 72 61 |=xpos%.... Scra| 00012ee0 70 42 6c 6b 25 21 34 3d 79 70 6f 73 25 0d 09 80 |pBlk%!4=ypos%...| 00012ef0 1a 20 20 53 63 72 61 70 42 6c 6b 25 21 31 32 3d |. ScrapBlk%!12=| 00012f00 77 69 6e 64 6f 77 25 0d 09 81 2c 20 20 c8 99 20 |window%..., .. | 00012f10 22 4d 65 6e 75 55 74 69 6c 5f 53 68 6f 77 22 2c |"MenuUtil_Show",| 00012f20 4c 61 73 74 4d 65 6e 75 25 2c 53 63 72 61 70 42 |LastMenu%,ScrapB| 00012f30 6c 6b 25 0d 09 82 05 cd 0d 09 83 05 e1 0d 09 84 |lk%.............| 00012f40 04 0d 09 85 37 f4 20 2a 2a 2a 20 64 72 61 67 20 |....7. *** drag | 00012f50 70 72 6f 63 73 3b 20 66 6f 72 20 6d 6f 76 69 6e |procs; for movin| 00012f60 67 20 61 6e 64 20 72 65 73 69 7a 69 6e 67 20 69 |g and resizing i| 00012f70 63 6f 6e 73 20 2a 2a 2a 0d 09 86 04 0d 09 87 2a |cons ***.......*| 00012f80 dd 20 f2 66 69 6e 69 73 68 64 72 61 67 28 78 6d |. .finishdrag(xm| 00012f90 69 6e 25 2c 79 6d 69 6e 25 2c 78 6d 61 78 25 2c |in%,ymin%,xmax%,| 00012fa0 79 6d 61 78 25 29 0d 09 88 26 ea 20 77 69 6e 30 |ymax%)...&. win0| 00012fb0 78 25 2c 77 69 6e 30 79 25 2c 69 25 2c 69 63 6f |x%,win0y%,i%,ico| 00012fc0 6e 62 6c 6b 25 2c 69 6e 62 6f 78 25 0d 09 89 48 |nblk%,inbox%...H| 00012fd0 f2 73 65 74 6d 6f 75 73 65 73 68 61 70 65 28 30 |.setmouseshape(0| 00012fe0 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |) | 00012ff0 20 20 20 3a 20 f4 20 72 65 73 74 6f 72 65 20 64 | : . restore d| 00013000 65 66 61 75 6c 74 20 70 6f 69 6e 74 65 72 20 73 |efault pointer s| 00013010 68 61 70 65 0d 09 8a 22 e7 20 78 6d 69 6e 25 3e |hape...". xmin%>| 00013020 78 6d 61 78 25 20 8c 20 c8 94 20 78 6d 69 6e 25 |xmax% . .. xmin%| 00013030 2c 78 6d 61 78 25 0d 09 8b 22 e7 20 79 6d 69 6e |,xmax%...". ymin| 00013040 25 3e 79 6d 61 78 25 20 8c 20 c8 94 20 79 6d 69 |%>ymax% . .. ymi| 00013050 6e 25 2c 79 6d 61 78 25 0d 09 8c 26 c8 99 20 22 |n%,ymax%...&.. "| 00013060 57 69 6d 70 5f 47 65 74 50 6f 69 6e 74 65 72 49 |Wimp_GetPointerI| 00013070 6e 66 6f 22 2c 2c 50 74 72 49 6e 66 6f 25 0d 09 |nfo",,PtrInfo%..| 00013080 8d 13 c8 8e 20 44 72 61 67 5f 54 79 70 65 25 20 |.... Drag_Type% | 00013090 ca 0d 09 8e 25 20 20 c9 20 30 2c 31 20 3a 20 f4 |....% . 0,1 : .| 000130a0 20 6d 6f 76 65 20 2f 20 72 65 73 69 7a 65 20 69 | move / resize i| 000130b0 63 6f 6e 28 73 29 0d 09 8f 2a 20 20 20 20 e7 20 |con(s)...* . | 000130c0 a4 77 68 69 63 68 74 65 6d 70 6c 61 74 65 28 50 |.whichtemplate(P| 000130d0 74 72 49 6e 66 6f 25 21 31 32 29 3e 3d 30 20 8c |trInfo%!12)>=0 .| 000130e0 0d 09 90 1f 20 20 20 20 20 20 57 69 6e 42 6c 6b |.... WinBlk| 000130f0 25 21 30 3d 50 74 72 49 6e 66 6f 25 21 31 32 0d |%!0=PtrInfo%!12.| 00013100 09 91 2a 20 20 20 20 20 20 c8 99 20 22 57 69 6d |..* .. "Wim| 00013110 70 5f 47 65 74 57 69 6e 64 6f 77 49 6e 66 6f 22 |p_GetWindowInfo"| 00013120 2c 2c 57 69 6e 42 6c 6b 25 0d 09 92 25 20 20 20 |,,WinBlk%...% | 00013130 20 20 20 77 69 6e 30 78 25 3d 57 69 6e 42 6c 6b | win0x%=WinBlk| 00013140 25 21 34 2d 57 69 6e 42 6c 6b 25 21 32 30 0d 09 |%!4-WinBlk%!20..| 00013150 93 26 20 20 20 20 20 20 77 69 6e 30 79 25 3d 57 |.& win0y%=W| 00013160 69 6e 42 6c 6b 25 21 31 36 2d 57 69 6e 42 6c 6b |inBlk%!16-WinBlk| 00013170 25 21 32 34 0d 09 94 49 20 20 20 20 20 20 78 6d |%!24...I xm| 00013180 69 6e 25 2d 3d 77 69 6e 30 78 25 20 3a 20 f4 20 |in%-=win0x% : . | 00013190 74 72 61 6e 73 6c 61 74 65 20 66 72 6f 6d 20 73 |translate from s| 000131a0 63 72 65 65 6e 20 63 6f 6f 72 64 73 20 74 6f 20 |creen coords to | 000131b0 77 69 6e 64 6f 77 20 63 6f 6f 72 64 73 0d 09 95 |window coords...| 000131c0 17 20 20 20 20 20 20 79 6d 69 6e 25 2d 3d 77 69 |. ymin%-=wi| 000131d0 6e 30 79 25 0d 09 96 17 20 20 20 20 20 20 78 6d |n0y%.... xm| 000131e0 61 78 25 2d 3d 77 69 6e 30 78 25 0d 09 97 17 20 |ax%-=win0x%.... | 000131f0 20 20 20 20 20 79 6d 61 78 25 2d 3d 77 69 6e 30 | ymax%-=win0| 00013200 79 25 0d 09 98 4f 20 20 20 20 20 20 f2 6d 6f 76 |y%...O .mov| 00013210 65 72 65 73 69 7a 65 28 44 72 61 67 5f 57 69 6e |eresize(Drag_Win| 00013220 25 2c 44 72 61 67 5f 49 63 6f 6e 25 2c 50 74 72 |%,Drag_Icon%,Ptr| 00013230 49 6e 66 6f 25 21 31 32 2c 78 6d 69 6e 25 2c 79 |Info%!12,xmin%,y| 00013240 6d 69 6e 25 2c 78 6d 61 78 25 2c 79 6d 61 78 25 |min%,xmax%,ymax%| 00013250 29 0d 09 99 09 20 20 20 20 cc 0d 09 9a 2d 20 20 |).... ....- | 00013260 20 20 20 20 e7 20 44 65 6c 65 74 65 4f 75 74 73 | . DeleteOuts| 00013270 69 64 65 25 20 80 20 28 44 72 61 67 5f 54 79 70 |ide% . (Drag_Typ| 00013280 65 25 3d 30 29 20 8c 0d 09 9b 44 20 20 20 20 20 |e%=0) ....D | 00013290 20 20 20 f4 20 6d 6f 76 65 64 20 69 63 6f 6e 73 | . moved icons| 000132a0 20 6f 75 74 73 69 64 65 20 77 69 6e 64 6f 77 20 | outside window | 000132b0 2d 20 64 65 6c 65 74 65 20 74 68 65 6d 20 69 66 |- delete them if| 000132c0 20 6f 70 74 69 6f 6e 20 73 65 74 0d 09 9c 22 20 | option set..." | 000132d0 20 20 20 20 20 20 20 e3 20 69 25 3d 30 20 b8 20 | . i%=0 . | 000132e0 4e 72 53 65 6c 65 63 74 65 64 25 2d 31 0d 09 9d |NrSelected%-1...| 000132f0 35 20 20 20 20 20 20 20 20 20 20 f2 64 65 6c 65 |5 .dele| 00013300 74 65 69 63 6f 6e 28 6f 6c 64 77 69 6e 25 2c 53 |teicon(oldwin%,S| 00013310 65 6c 42 6c 6b 25 21 28 34 2a 69 25 29 2c 31 2c |elBlk%!(4*i%),1,| 00013320 31 29 0d 09 9e 10 20 20 20 20 20 20 20 20 ed 20 |1).... . | 00013330 69 25 0d 09 9f 0b 20 20 20 20 20 20 cd 0d 09 a0 |i%.... ....| 00013340 09 20 20 20 20 cd 0d 09 a1 36 20 20 c9 20 32 2c |. ....6 . 2,| 00013350 33 20 3a 20 f4 20 64 72 61 67 2d 73 65 6c 65 63 |3 : . drag-selec| 00013360 74 20 69 63 6f 6e 73 20 28 77 69 74 68 20 53 65 |t icons (with Se| 00013370 6c 65 63 74 2f 41 64 6a 75 73 74 29 0d 09 a2 1b |lect/Adjust)....| 00013380 20 20 20 20 57 69 6e 42 6c 6b 25 21 30 3d 44 72 | WinBlk%!0=Dr| 00013390 61 67 5f 57 69 6e 25 0d 09 a3 28 20 20 20 20 c8 |ag_Win%...( .| 000133a0 99 20 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f |. "Wimp_GetWindo| 000133b0 77 49 6e 66 6f 22 2c 2c 57 69 6e 42 6c 6b 25 0d |wInfo",,WinBlk%.| 000133c0 09 a4 23 20 20 20 20 77 69 6e 30 78 25 3d 57 69 |..# win0x%=Wi| 000133d0 6e 42 6c 6b 25 21 34 2d 57 69 6e 42 6c 6b 25 21 |nBlk%!4-WinBlk%!| 000133e0 32 30 0d 09 a5 24 20 20 20 20 77 69 6e 30 79 25 |20...$ win0y%| 000133f0 3d 57 69 6e 42 6c 6b 25 21 31 36 2d 57 69 6e 42 |=WinBlk%!16-WinB| 00013400 6c 6b 25 21 32 34 0d 09 a6 15 20 20 20 20 78 6d |lk%!24.... xm| 00013410 69 6e 25 2d 3d 77 69 6e 30 78 25 0d 09 a7 15 20 |in%-=win0x%.... | 00013420 20 20 20 78 6d 61 78 25 2d 3d 77 69 6e 30 78 25 | xmax%-=win0x%| 00013430 0d 09 a8 15 20 20 20 20 79 6d 69 6e 25 2d 3d 77 |.... ymin%-=w| 00013440 69 6e 30 79 25 0d 09 a9 15 20 20 20 20 79 6d 61 |in0y%.... yma| 00013450 78 25 2d 3d 77 69 6e 30 79 25 0d 09 aa 3e 20 20 |x%-=win0y%...> | 00013460 20 20 e7 20 28 57 69 6e 42 6c 6b 25 21 38 38 3e | . (WinBlk%!88>| 00013470 30 29 20 80 20 28 28 78 6d 61 78 25 2d 78 6d 69 |0) . ((xmax%-xmi| 00013480 6e 25 29 2b 28 79 6d 61 78 25 2d 79 6d 69 6e 25 |n%)+(ymax%-ymin%| 00013490 29 3e 3d 33 32 29 20 8c 0d 09 ab 1f 20 20 20 20 |)>=32) ..... | 000134a0 20 20 e3 20 69 25 3d 30 20 b8 20 57 69 6e 42 6c | . i%=0 . WinBl| 000134b0 6b 25 21 38 38 2d 31 0d 09 ac 25 20 20 20 20 20 |k%!88-1...% | 000134c0 20 20 20 69 63 6f 6e 62 6c 6b 25 3d 57 69 6e 42 | iconblk%=WinB| 000134d0 6c 6b 25 2b 39 32 2b 69 25 2a 33 32 0d 09 ad 3b |lk%+92+i%*32...;| 000134e0 20 20 20 20 20 20 20 20 69 6e 62 6f 78 25 3d 28 | inbox%=(| 000134f0 69 63 6f 6e 62 6c 6b 25 21 30 3c 78 6d 61 78 25 |iconblk%!0<xmax%| 00013500 29 20 80 20 28 69 63 6f 6e 62 6c 6b 25 21 38 3e |) . (iconblk%!8>| 00013510 3d 78 6d 69 6e 25 29 0d 09 ae 45 20 20 20 20 20 |=xmin%)...E | 00013520 20 20 20 69 6e 62 6f 78 25 3d 69 6e 62 6f 78 25 | inbox%=inbox%| 00013530 20 80 20 28 69 63 6f 6e 62 6c 6b 25 21 34 3c 79 | . (iconblk%!4<y| 00013540 6d 61 78 25 29 20 80 20 28 69 63 6f 6e 62 6c 6b |max%) . (iconblk| 00013550 25 21 31 32 3e 3d 79 6d 69 6e 25 29 0d 09 af 29 |%!12>=ymin%)...)| 00013560 20 20 20 20 20 20 20 20 e7 20 69 6e 62 6f 78 25 | . inbox%| 00013570 20 80 20 28 69 25 3c 3e 44 72 61 67 5f 49 63 6f | . (i%<>Drag_Ico| 00013580 6e 25 29 20 8c 0d 09 b0 1e 20 20 20 20 20 20 20 |n%) ..... | 00013590 20 20 20 e7 20 44 72 61 67 5f 54 79 70 65 25 3d | . Drag_Type%=| 000135a0 32 20 8c 0d 09 b1 2b 20 20 20 20 20 20 20 20 20 |2 ....+ | 000135b0 20 20 20 f2 73 65 6c 65 63 74 69 63 6f 6e 28 44 | .selecticon(D| 000135c0 72 61 67 5f 57 69 6e 25 2c 69 25 2c 31 29 0d 09 |rag_Win%,i%,1)..| 000135d0 b2 0f 20 20 20 20 20 20 20 20 20 20 cc 0d 09 b3 |.. ....| 000135e0 33 20 20 20 20 20 20 20 20 20 20 20 20 f2 73 65 |3 .se| 000135f0 74 69 63 6f 6e 73 74 61 74 65 28 44 72 61 67 5f |ticonstate(Drag_| 00013600 57 69 6e 25 2c 69 25 2c 31 3c 3c 32 31 2c 30 29 |Win%,i%,1<<21,0)| 00013610 0d 09 b4 0f 20 20 20 20 20 20 20 20 20 20 cd 0d |.... ..| 00013620 09 b5 0d 20 20 20 20 20 20 20 20 cd 0d 09 b6 0e |... .....| 00013630 20 20 20 20 20 20 ed 20 69 25 0d 09 b7 09 20 20 | . i%.... | 00013640 20 20 cd 0d 09 b8 20 20 20 c9 20 34 20 3a 20 f4 | .... . 4 : .| 00013650 20 64 72 61 67 20 66 72 6f 6d 20 73 61 76 65 2d | drag from save-| 00013660 62 6f 78 0d 09 b9 2e 20 20 20 20 e7 20 44 72 61 |box.... . Dra| 00013670 67 41 53 70 72 69 74 65 25 20 8c 20 c8 99 20 22 |gASprite% . .. "| 00013680 44 72 61 67 41 53 70 72 69 74 65 5f 53 74 6f 70 |DragASprite_Stop| 00013690 22 0d 09 ba 11 20 20 20 20 42 6c 6b 25 21 30 3d |".... Blk%!0=| 000136a0 36 30 0d 09 bb 11 20 20 20 20 42 6c 6b 25 21 31 |60.... Blk%!1| 000136b0 32 3d 30 0d 09 bc 11 20 20 20 20 42 6c 6b 25 21 |2=0.... Blk%!| 000136c0 31 36 3d 31 0d 09 bd 1b 20 20 20 20 42 6c 6b 25 |16=1.... Blk%| 000136d0 21 32 30 3d 50 74 72 49 6e 66 6f 25 21 31 32 0d |!20=PtrInfo%!12.| 000136e0 09 be 1b 20 20 20 20 42 6c 6b 25 21 32 34 3d 50 |... Blk%!24=P| 000136f0 74 72 49 6e 66 6f 25 21 31 36 0d 09 bf 1a 20 20 |trInfo%!16.... | 00013700 20 20 42 6c 6b 25 21 32 38 3d 50 74 72 49 6e 66 | Blk%!28=PtrInf| 00013710 6f 25 21 30 0d 09 c0 1a 20 20 20 20 42 6c 6b 25 |o%!0.... Blk%| 00013720 21 33 32 3d 50 74 72 49 6e 66 6f 25 21 34 0d 09 |!32=PtrInfo%!4..| 00013730 c1 4b 20 20 20 20 42 6c 6b 25 21 33 36 3d 32 30 |.K Blk%!36=20| 00013740 2b 31 31 32 2a 4e 72 54 65 6d 70 6c 61 74 65 73 |+112*NrTemplates| 00013750 25 20 3a 20 f4 20 74 68 69 73 20 69 73 20 61 20 |% : . this is a | 00013760 6c 6f 77 20 65 73 74 69 6d 61 74 65 20 6f 66 20 |low estimate of | 00013770 66 69 6c 65 20 73 69 7a 65 0d 09 c2 14 20 20 20 |file size.... | 00013780 20 42 6c 6b 25 21 34 30 3d 26 46 45 43 0d 09 c3 | Blk%!40=&FEC...| 00013790 1c 20 20 20 20 e7 20 53 61 76 69 6e 67 53 65 6c |. . SavingSel| 000137a0 65 63 74 69 6f 6e 25 20 8c 0d 09 c4 29 20 20 20 |ection% ....) | 000137b0 20 20 20 24 28 42 6c 6b 25 2b 34 34 29 3d a4 6c | $(Blk%+44)=.l| 000137c0 65 61 66 6e 61 6d 65 28 53 65 6c 46 4e 61 6d 65 |eafname(SelFName| 000137d0 24 29 0d 09 c5 09 20 20 20 20 cc 0d 09 c6 2a 20 |$).... ....* | 000137e0 20 20 20 20 20 24 28 42 6c 6b 25 2b 34 34 29 3d | $(Blk%+44)=| 000137f0 a4 6c 65 61 66 6e 61 6d 65 28 4d 61 69 6e 46 4e |.leafname(MainFN| 00013800 61 6d 65 24 29 0d 09 c7 09 20 20 20 20 cd 0d 09 |ame$).... ...| 00013810 c8 3d 20 20 20 20 c8 99 20 22 57 69 6d 70 5f 53 |.= .. "Wimp_S| 00013820 65 6e 64 4d 65 73 73 61 67 65 22 2c 31 37 2c 42 |endMessage",17,B| 00013830 6c 6b 25 2c 50 74 72 49 6e 66 6f 25 21 31 32 2c |lk%,PtrInfo%!12,| 00013840 50 74 72 49 6e 66 6f 25 21 31 36 0d 09 c9 0b 20 |PtrInfo%!16.... | 00013850 20 c9 20 35 2c 36 0d 09 ca 38 20 20 20 20 f4 20 | . 5,6...8 . | 00013860 77 69 6e 64 6f 77 20 6d 6f 76 65 2f 72 65 73 69 |window move/resi| 00013870 7a 65 20 2d 20 64 6f 20 6e 6f 74 68 69 6e 67 2c |ze - do nothing,| 00013880 20 6e 6f 20 64 72 61 67 20 65 76 65 6e 74 0d 09 | no drag event..| 00013890 cb 05 cb 0d 09 cc 11 44 72 61 67 5f 54 79 70 65 |.......Drag_Type| 000138a0 25 3d 2d 31 0d 09 cd 05 e1 0d 09 ce 04 0d 09 cf |%=-1............| 000138b0 32 dd 20 f2 69 6e 69 74 64 72 61 67 28 74 79 70 |2. .initdrag(typ| 000138c0 65 25 2c 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 |e%,window%,icon%| 000138d0 2c 62 6f 78 30 78 25 2c 62 6f 78 30 79 25 29 0d |,box0x%,box0y%).| 000138e0 09 d0 08 ea 20 62 25 0d 09 d1 4c c8 99 20 22 4f |.... b%...L.. "O| 000138f0 53 5f 42 79 74 65 22 2c 31 36 31 2c 26 31 43 20 |S_Byte",161,&1C | 00013900 b8 20 2c 2c 62 25 20 3a 20 f4 20 72 65 61 64 20 |. ,,b% : . read | 00013910 22 64 72 61 67 61 73 70 72 69 74 65 22 20 62 69 |"dragasprite" bi| 00013920 74 20 69 6e 20 43 4d 4f 53 20 52 41 4d 20 28 52 |t in CMOS RAM (R| 00013930 4f 33 29 0d 09 d2 1c 44 72 61 67 41 53 70 72 69 |O3)....DragASpri| 00013940 74 65 25 3d 28 62 25 20 80 20 32 29 3c 3e 30 0d |te%=(b% . 2)<>0.| 00013950 09 d3 20 e7 20 44 72 61 67 41 53 70 72 69 74 65 |.. . DragASprite| 00013960 25 20 80 20 28 74 79 70 65 25 3d 34 29 20 8c 0d |% . (type%=4) ..| 00013970 09 d4 44 20 20 c8 99 20 22 44 72 61 67 41 53 70 |..D .. "DragASp| 00013980 72 69 74 65 5f 53 74 61 72 74 22 2c 26 41 31 2c |rite_Start",&A1,| 00013990 31 2c 22 66 69 6c 65 5f 66 65 63 22 2c 44 72 61 |1,"file_fec",Dra| 000139a0 67 42 6c 6b 25 2b 38 2c 44 72 61 67 42 6c 6b 25 |gBlk%+8,DragBlk%| 000139b0 2b 32 34 0d 09 d5 05 cc 0d 09 d6 22 20 20 c8 99 |+24........" ..| 000139c0 20 22 57 69 6d 70 5f 44 72 61 67 42 6f 78 22 2c | "Wimp_DragBox",| 000139d0 31 2c 44 72 61 67 42 6c 6b 25 0d 09 d7 05 cd 0d |1,DragBlk%......| 000139e0 09 d8 3d 44 72 61 67 5f 54 79 70 65 25 3d 74 79 |..=Drag_Type%=ty| 000139f0 70 65 25 20 20 20 3a 20 f4 20 69 73 20 6e 6f 74 |pe% : . is not| 00013a00 20 74 68 65 20 73 61 6d 65 20 61 73 20 57 69 6d | the same as Wim| 00013a10 70 20 64 72 61 67 20 74 79 70 65 21 0d 09 d9 15 |p drag type!....| 00013a20 44 72 61 67 5f 57 69 6e 25 3d 77 69 6e 64 6f 77 |Drag_Win%=window| 00013a30 25 0d 09 da 14 44 72 61 67 5f 49 63 6f 6e 25 3d |%....Drag_Icon%=| 00013a40 69 63 6f 6e 25 0d 09 db 44 44 72 61 67 5f 42 6f |icon%...DDrag_Bo| 00013a50 78 30 78 25 3d 62 6f 78 30 78 25 20 3a 20 f4 20 |x0x%=box0x% : . | 00013a60 77 69 6e 64 6f 77 20 63 6f 6f 72 64 73 20 6f 66 |window coords of| 00013a70 20 62 6f 74 74 6f 6d 6c 65 66 74 20 63 6f 72 6e | bottomleft corn| 00013a80 65 72 20 6f 66 20 62 6f 78 0d 09 dc 16 44 72 61 |er of box....Dra| 00013a90 67 5f 42 6f 78 30 79 25 3d 62 6f 78 30 79 25 0d |g_Box0y%=box0y%.| 00013aa0 09 dd 2c 44 72 61 67 5f 42 6f 78 53 69 7a 65 78 |..,Drag_BoxSizex| 00013ab0 25 3d 94 28 44 72 61 67 42 6c 6b 25 21 31 36 2d |%=.(DragBlk%!16-| 00013ac0 44 72 61 67 42 6c 6b 25 21 38 29 0d 09 de 2d 44 |DragBlk%!8)...-D| 00013ad0 72 61 67 5f 42 6f 78 53 69 7a 65 79 25 3d 94 28 |rag_BoxSizey%=.(| 00013ae0 44 72 61 67 42 6c 6b 25 21 32 30 2d 44 72 61 67 |DragBlk%!20-Drag| 00013af0 42 6c 6b 25 21 31 32 29 0d 09 df 26 c8 99 20 22 |Blk%!12)...&.. "| 00013b00 57 69 6d 70 5f 47 65 74 50 6f 69 6e 74 65 72 49 |Wimp_GetPointerI| 00013b10 6e 66 6f 22 2c 2c 50 74 72 49 6e 66 6f 25 0d 09 |nfo",,PtrInfo%..| 00013b20 e0 19 44 72 61 67 5f 50 74 72 78 25 3d 50 74 72 |..Drag_Ptrx%=Ptr| 00013b30 49 6e 66 6f 25 21 30 0d 09 e1 19 44 72 61 67 5f |Info%!0....Drag_| 00013b40 50 74 72 79 25 3d 50 74 72 49 6e 66 6f 25 21 34 |Ptry%=PtrInfo%!4| 00013b50 0d 09 e2 05 e1 0d 09 e3 04 0d 09 e4 10 dd 20 f2 |.............. .| 00013b60 61 62 6f 72 74 64 72 61 67 0d 09 e5 20 e7 20 44 |abortdrag... . D| 00013b70 72 61 67 41 53 70 72 69 74 65 25 20 80 20 28 74 |ragASprite% . (t| 00013b80 79 70 65 25 3d 34 29 20 8c 0d 09 e6 1b 20 20 c8 |ype%=4) ..... .| 00013b90 99 20 22 44 72 61 67 41 53 70 72 69 74 65 5f 53 |. "DragASprite_S| 00013ba0 74 6f 70 22 0d 09 e7 05 cc 0d 09 e8 1b 20 20 c8 |top"......... .| 00013bb0 99 20 22 57 69 6d 70 5f 44 72 61 67 42 6f 78 22 |. "Wimp_DragBox"| 00013bc0 2c 2c 2d 31 0d 09 e9 05 cd 0d 09 ea 40 f2 73 65 |,,-1........@.se| 00013bd0 74 6d 6f 75 73 65 73 68 61 70 65 28 30 29 20 20 |tmouseshape(0) | 00013be0 20 20 20 20 20 20 20 20 3a 20 f4 20 72 65 73 74 | : . rest| 00013bf0 6f 72 65 20 64 65 66 61 75 6c 74 20 70 6f 69 6e |ore default poin| 00013c00 74 65 72 20 73 68 61 70 65 0d 09 eb 11 44 72 61 |ter shape....Dra| 00013c10 67 5f 54 79 70 65 25 3d 2d 31 0d 09 ec 05 e1 0d |g_Type%=-1......| 00013c20 09 ed 04 0d 09 ee 1f dd 20 f2 73 74 61 72 74 77 |........ .startw| 00013c30 69 6e 64 6f 77 6d 6f 76 65 28 77 69 6e 64 6f 77 |indowmove(window| 00013c40 25 29 0d 09 ef 16 44 72 61 67 42 6c 6b 25 21 30 |%)....DragBlk%!0| 00013c50 3d 77 69 6e 64 6f 77 25 0d 09 f0 10 44 72 61 67 |=window%....Drag| 00013c60 42 6c 6b 25 21 34 3d 31 0d 09 f1 1a f2 69 6e 69 |Blk%!4=1.....ini| 00013c70 74 64 72 61 67 28 35 2c 2d 31 2c 2d 31 2c 30 2c |tdrag(5,-1,-1,0,| 00013c80 30 29 0d 09 f2 05 e1 0d 09 f3 04 0d 09 f4 21 dd |0)............!.| 00013c90 20 f2 73 74 61 72 74 77 69 6e 64 6f 77 72 65 73 | .startwindowres| 00013ca0 69 7a 65 28 77 69 6e 64 6f 77 25 29 0d 09 f5 16 |ize(window%)....| 00013cb0 44 72 61 67 42 6c 6b 25 21 30 3d 77 69 6e 64 6f |DragBlk%!0=windo| 00013cc0 77 25 0d 09 f6 10 44 72 61 67 42 6c 6b 25 21 34 |w%....DragBlk%!4| 00013cd0 3d 32 0d 09 f7 1a f2 69 6e 69 74 64 72 61 67 28 |=2.....initdrag(| 00013ce0 36 2c 2d 31 2c 2d 31 2c 30 2c 30 29 0d 09 f8 05 |6,-1,-1,0,0)....| 00013cf0 e1 0d 09 f9 04 0d 09 fa 2b dd 20 f2 73 74 61 72 |........+. .star| 00013d00 74 69 63 6f 6e 64 72 61 67 28 62 75 74 74 6f 6e |ticondrag(button| 00013d10 25 2c 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 29 |%,window%,icon%)| 00013d20 0d 09 fb 10 c8 8e 20 62 75 74 74 6f 6e 25 20 ca |...... button% .| 00013d30 0d 09 fc 0d 20 20 c9 20 31 2c 32 35 36 0d 09 fd |.... . 1,256...| 00013d40 19 20 20 20 20 f2 73 65 6c 5f 67 65 74 28 77 69 |. .sel_get(wi| 00013d50 6e 64 6f 77 25 29 0d 09 fe 19 20 20 20 20 e7 20 |ndow%).... . | 00013d60 4e 72 53 65 6c 65 63 74 65 64 25 3e 30 20 8c 0d |NrSelected%>0 ..| 00013d70 09 ff 26 20 20 20 20 20 20 f2 73 74 61 72 74 69 |..& .starti| 00013d80 63 6f 6e 72 65 73 69 7a 65 28 77 69 6e 64 6f 77 |conresize(window| 00013d90 25 2c 2d 31 29 0d 0a 00 09 20 20 20 20 cc 0d 0a |%,-1).... ...| 00013da0 01 36 20 20 20 20 20 20 e7 20 69 63 6f 6e 25 3e |.6 . icon%>| 00013db0 3d 30 20 8c 20 f2 73 74 61 72 74 69 63 6f 6e 72 |=0 . .starticonr| 00013dc0 65 73 69 7a 65 28 77 69 6e 64 6f 77 25 2c 69 63 |esize(window%,ic| 00013dd0 6f 6e 25 29 0d 0a 02 09 20 20 20 20 cd 0d 0a 03 |on%).... ....| 00013de0 0e 20 20 c9 20 34 2c 31 30 32 34 0d 0a 04 19 20 |. . 4,1024.... | 00013df0 20 20 20 f2 73 65 6c 5f 67 65 74 28 77 69 6e 64 | .sel_get(wind| 00013e00 6f 77 25 29 0d 0a 05 19 20 20 20 20 e7 20 4e 72 |ow%).... . Nr| 00013e10 53 65 6c 65 63 74 65 64 25 3e 30 20 8c 0d 0a 06 |Selected%>0 ....| 00013e20 24 20 20 20 20 20 20 f2 73 74 61 72 74 69 63 6f |$ .startico| 00013e30 6e 6d 6f 76 65 28 77 69 6e 64 6f 77 25 2c 2d 31 |nmove(window%,-1| 00013e40 29 0d 0a 07 09 20 20 20 20 cc 0d 0a 08 34 20 20 |).... ....4 | 00013e50 20 20 20 20 e7 20 69 63 6f 6e 25 3e 3d 30 20 8c | . icon%>=0 .| 00013e60 20 f2 73 74 61 72 74 69 63 6f 6e 6d 6f 76 65 28 | .starticonmove(| 00013e70 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 29 0d 0a |window%,icon%)..| 00013e80 09 09 20 20 20 20 cd 0d 0a 0a 05 cb 0d 0a 0b 05 |.. ..........| 00013e90 e1 0d 0a 0c 04 0d 0a 0d 23 dd 20 f2 73 74 61 72 |........#. .star| 00013ea0 74 69 63 6f 6e 6d 6f 76 65 28 77 69 6e 64 6f 77 |ticonmove(window| 00013eb0 25 2c 69 63 6f 6e 25 29 0d 0a 0e 2b ea 20 77 69 |%,icon%)...+. wi| 00013ec0 6e 30 78 25 2c 77 69 6e 30 79 25 2c 78 6d 69 6e |n0x%,win0y%,xmin| 00013ed0 25 2c 78 6d 61 78 25 2c 79 6d 69 6e 25 2c 79 6d |%,xmax%,ymin%,ym| 00013ee0 61 78 25 0d 0a 0f 15 57 69 6e 42 6c 6b 25 21 30 |ax%....WinBlk%!0| 00013ef0 3d 77 69 6e 64 6f 77 25 0d 0a 10 25 c8 99 20 22 |=window%...%.. "| 00013f00 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 53 74 |Wimp_GetWindowSt| 00013f10 61 74 65 22 2c 2c 57 69 6e 42 6c 6b 25 0d 0a 11 |ate",,WinBlk%...| 00013f20 1f 77 69 6e 30 78 25 3d 57 69 6e 42 6c 6b 25 21 |.win0x%=WinBlk%!| 00013f30 34 2d 57 69 6e 42 6c 6b 25 21 32 30 0d 0a 12 20 |4-WinBlk%!20... | 00013f40 77 69 6e 30 79 25 3d 57 69 6e 42 6c 6b 25 21 31 |win0y%=WinBlk%!1| 00013f50 36 2d 57 69 6e 42 6c 6b 25 21 32 34 0d 0a 13 10 |6-WinBlk%!24....| 00013f60 e7 20 69 63 6f 6e 25 3e 3d 30 20 8c 0d 0a 14 36 |. icon%>=0 ....6| 00013f70 20 20 53 65 6c 42 6c 6b 25 21 30 3d 69 63 6f 6e | SelBlk%!0=icon| 00013f80 25 20 3a 20 f4 20 73 69 6d 75 6c 61 74 65 20 73 |% : . simulate s| 00013f90 65 6c 65 63 74 69 6f 6e 20 6f 66 20 31 20 69 63 |election of 1 ic| 00013fa0 6f 6e 0d 0a 15 13 20 20 4e 72 53 65 6c 65 63 74 |on.... NrSelect| 00013fb0 65 64 25 3d 31 0d 0a 16 05 cc 0d 0a 17 17 20 20 |ed%=1......... | 00013fc0 f2 73 65 6c 5f 67 65 74 28 77 69 6e 64 6f 77 25 |.sel_get(window%| 00013fd0 29 0d 0a 18 05 cd 0d 0a 19 2d f2 73 65 6c 5f 62 |)........-.sel_b| 00013fe0 6f 78 28 77 69 6e 64 6f 77 25 2c 78 6d 69 6e 25 |ox(window%,xmin%| 00013ff0 2c 79 6d 69 6e 25 2c 78 6d 61 78 25 2c 79 6d 61 |,ymin%,xmax%,yma| 00014000 78 25 29 0d 0a 1a 26 c8 99 20 22 57 69 6d 70 5f |x%)...&.. "Wimp_| 00014010 47 65 74 50 6f 69 6e 74 65 72 49 6e 66 6f 22 2c |GetPointerInfo",| 00014020 2c 50 74 72 49 6e 66 6f 25 0d 0a 1b 10 44 72 61 |,PtrInfo%....Dra| 00014030 67 42 6c 6b 25 21 34 3d 35 0d 0a 1c 1b 44 72 61 |gBlk%!4=5....Dra| 00014040 67 42 6c 6b 25 21 38 3d 78 6d 69 6e 25 2b 77 69 |gBlk%!8=xmin%+wi| 00014050 6e 30 78 25 0d 0a 1d 1c 44 72 61 67 42 6c 6b 25 |n0x%....DragBlk%| 00014060 21 31 32 3d 79 6d 69 6e 25 2b 77 69 6e 30 79 25 |!12=ymin%+win0y%| 00014070 0d 0a 1e 1c 44 72 61 67 42 6c 6b 25 21 31 36 3d |....DragBlk%!16=| 00014080 78 6d 61 78 25 2b 77 69 6e 30 78 25 0d 0a 1f 1c |xmax%+win0x%....| 00014090 44 72 61 67 42 6c 6b 25 21 32 30 3d 79 6d 61 78 |DragBlk%!20=ymax| 000140a0 25 2b 77 69 6e 30 79 25 0d 0a 20 25 44 72 61 67 |%+win0y%.. %Drag| 000140b0 42 6c 6b 25 21 32 34 3d 44 72 61 67 42 6c 6b 25 |Blk%!24=DragBlk%| 000140c0 21 38 2d 50 74 72 49 6e 66 6f 25 21 30 0d 0a 21 |!8-PtrInfo%!0..!| 000140d0 26 44 72 61 67 42 6c 6b 25 21 32 38 3d 44 72 61 |&DragBlk%!28=Dra| 000140e0 67 42 6c 6b 25 21 31 32 2d 50 74 72 49 6e 66 6f |gBlk%!12-PtrInfo| 000140f0 25 21 34 0d 0a 22 34 44 72 61 67 42 6c 6b 25 21 |%!4.."4DragBlk%!| 00014100 33 32 3d 53 63 72 65 65 6e 53 69 7a 65 5f 58 25 |32=ScreenSize_X%| 00014110 2b 44 72 61 67 42 6c 6b 25 21 31 36 2d 50 74 72 |+DragBlk%!16-Ptr| 00014120 49 6e 66 6f 25 21 30 0d 0a 23 34 44 72 61 67 42 |Info%!0..#4DragB| 00014130 6c 6b 25 21 33 36 3d 53 63 72 65 65 6e 53 69 7a |lk%!36=ScreenSiz| 00014140 65 5f 59 25 2b 44 72 61 67 42 6c 6b 25 21 32 30 |e_Y%+DragBlk%!20| 00014150 2d 50 74 72 49 6e 66 6f 25 21 34 0d 0a 24 2a f2 |-PtrInfo%!4..$*.| 00014160 69 6e 69 74 64 72 61 67 28 30 2c 77 69 6e 64 6f |initdrag(0,windo| 00014170 77 25 2c 69 63 6f 6e 25 2c 78 6d 69 6e 25 2c 79 |w%,icon%,xmin%,y| 00014180 6d 69 6e 25 29 0d 0a 25 15 f2 73 65 74 6d 6f 75 |min%)..%..setmou| 00014190 73 65 73 68 61 70 65 28 31 29 0d 0a 26 05 e1 0d |seshape(1)..&...| 000141a0 0a 27 04 0d 0a 28 25 dd 20 f2 73 74 61 72 74 69 |.'...(%. .starti| 000141b0 63 6f 6e 72 65 73 69 7a 65 28 77 69 6e 64 6f 77 |conresize(window| 000141c0 25 2c 69 63 6f 6e 25 29 0d 0a 29 25 ea 20 69 62 |%,icon%)..)%. ib| 000141d0 78 6d 69 6e 25 2c 69 62 78 6d 61 78 25 2c 69 62 |xmin%,ibxmax%,ib| 000141e0 79 6d 69 6e 25 2c 69 62 79 6d 61 78 25 0d 0a 2a |ymin%,ibymax%..*| 000141f0 25 ea 20 70 62 78 6d 69 6e 25 2c 70 62 78 6d 61 |%. pbxmin%,pbxma| 00014200 78 25 2c 70 62 79 6d 69 6e 25 2c 70 62 79 6d 61 |x%,pbymin%,pbyma| 00014210 78 25 0d 0a 2b 0b ea 20 61 2c 62 2c 63 0d 0a 2c |x%..+.. a,b,c..,| 00014220 2b ea 20 69 62 73 69 7a 65 78 25 2c 69 62 73 69 |+. ibsizex%,ibsi| 00014230 7a 65 79 25 2c 6d 69 6e 73 69 7a 65 78 25 2c 6d |zey%,minsizex%,m| 00014240 69 6e 73 69 7a 65 79 25 0d 0a 2d 0c ea 20 73 68 |insizey%..-.. sh| 00014250 61 70 65 25 0d 0a 2e 2b ea 20 77 69 6e 30 78 25 |ape%...+. win0x%| 00014260 2c 77 69 6e 30 79 25 2c 78 6d 69 6e 25 2c 78 6d |,win0y%,xmin%,xm| 00014270 61 78 25 2c 79 6d 69 6e 25 2c 79 6d 61 78 25 0d |ax%,ymin%,ymax%.| 00014280 0a 2f 15 57 69 6e 42 6c 6b 25 21 30 3d 77 69 6e |./.WinBlk%!0=win| 00014290 64 6f 77 25 0d 0a 30 25 c8 99 20 22 57 69 6d 70 |dow%..0%.. "Wimp| 000142a0 5f 47 65 74 57 69 6e 64 6f 77 53 74 61 74 65 22 |_GetWindowState"| 000142b0 2c 2c 57 69 6e 42 6c 6b 25 0d 0a 31 1f 77 69 6e |,,WinBlk%..1.win| 000142c0 30 78 25 3d 57 69 6e 42 6c 6b 25 21 34 2d 57 69 |0x%=WinBlk%!4-Wi| 000142d0 6e 42 6c 6b 25 21 32 30 0d 0a 32 20 77 69 6e 30 |nBlk%!20..2 win0| 000142e0 79 25 3d 57 69 6e 42 6c 6b 25 21 31 36 2d 57 69 |y%=WinBlk%!16-Wi| 000142f0 6e 42 6c 6b 25 21 32 34 0d 0a 33 10 e7 20 69 63 |nBlk%!24..3.. ic| 00014300 6f 6e 25 3e 3d 30 20 8c 0d 0a 34 36 20 20 53 65 |on%>=0 ...46 Se| 00014310 6c 42 6c 6b 25 21 30 3d 69 63 6f 6e 25 20 3a 20 |lBlk%!0=icon% : | 00014320 f4 20 73 69 6d 75 6c 61 74 65 20 73 65 6c 65 63 |. simulate selec| 00014330 74 69 6f 6e 20 6f 66 20 31 20 69 63 6f 6e 0d 0a |tion of 1 icon..| 00014340 35 13 20 20 4e 72 53 65 6c 65 63 74 65 64 25 3d |5. NrSelected%=| 00014350 31 0d 0a 36 05 cc 0d 0a 37 17 20 20 f2 73 65 6c |1..6....7. .sel| 00014360 5f 67 65 74 28 77 69 6e 64 6f 77 25 29 0d 0a 38 |_get(window%)..8| 00014370 05 cd 0d 0a 39 2d f2 73 65 6c 5f 62 6f 78 28 77 |....9-.sel_box(w| 00014380 69 6e 64 6f 77 25 2c 78 6d 69 6e 25 2c 79 6d 69 |indow%,xmin%,ymi| 00014390 6e 25 2c 78 6d 61 78 25 2c 79 6d 61 78 25 29 0d |n%,xmax%,ymax%).| 000143a0 0a 3a 46 69 62 78 6d 69 6e 25 3d 77 69 6e 30 78 |.:Fibxmin%=win0x| 000143b0 25 2b 78 6d 69 6e 25 20 3a 20 f4 20 66 6f 72 20 |%+xmin% : . for | 000143c0 69 6e 69 74 69 61 6c 20 62 6f 78 2c 20 63 6f 6e |initial box, con| 000143d0 76 65 72 74 20 74 6f 20 73 63 72 65 65 6e 20 63 |vert to screen c| 000143e0 6f 6f 72 64 73 0d 0a 3b 18 69 62 79 6d 69 6e 25 |oords..;.ibymin%| 000143f0 3d 77 69 6e 30 79 25 2b 79 6d 69 6e 25 0d 0a 3c |=win0y%+ymin%..<| 00014400 18 69 62 78 6d 61 78 25 3d 77 69 6e 30 78 25 2b |.ibxmax%=win0x%+| 00014410 78 6d 61 78 25 0d 0a 3d 18 69 62 79 6d 61 78 25 |xmax%..=.ibymax%| 00014420 3d 77 69 6e 30 79 25 2b 79 6d 61 78 25 0d 0a 3e |=win0y%+ymax%..>| 00014430 18 69 62 73 69 7a 65 78 25 3d 78 6d 61 78 25 2d |.ibsizex%=xmax%-| 00014440 78 6d 69 6e 25 0d 0a 3f 18 69 62 73 69 7a 65 79 |xmin%..?.ibsizey| 00014450 25 3d 79 6d 61 78 25 2d 79 6d 69 6e 25 0d 0a 40 |%=ymax%-ymin%..@| 00014460 33 f4 20 61 74 20 66 69 72 73 74 2c 20 73 65 74 |3. at first, set| 00014470 20 70 61 72 65 6e 74 20 62 6f 78 20 65 71 75 61 | parent box equa| 00014480 6c 20 74 6f 20 69 6e 69 74 69 61 6c 20 62 6f 78 |l to initial box| 00014490 0d 0a 41 13 70 62 78 6d 69 6e 25 3d 69 62 78 6d |..A.pbxmin%=ibxm| 000144a0 69 6e 25 0d 0a 42 13 70 62 79 6d 69 6e 25 3d 69 |in%..B.pbymin%=i| 000144b0 62 79 6d 69 6e 25 0d 0a 43 13 70 62 78 6d 61 78 |bymin%..C.pbxmax| 000144c0 25 3d 69 62 78 6d 61 78 25 0d 0a 44 13 70 62 79 |%=ibxmax%..D.pby| 000144d0 6d 61 78 25 3d 69 62 79 6d 61 78 25 0d 0a 45 43 |max%=ibymax%..EC| 000144e0 f4 20 66 69 78 65 64 20 6d 69 6e 69 6d 75 6d 20 |. fixed minimum | 000144f0 73 69 7a 65 20 6f 66 20 64 72 61 67 20 62 6f 78 |size of drag box| 00014500 20 28 76 65 72 79 20 64 69 66 66 69 63 75 6c 74 | (very difficult| 00014510 20 74 6f 20 63 61 6c 63 75 6c 61 74 65 21 29 0d | to calculate!).| 00014520 0a 46 10 6d 69 6e 73 69 7a 65 78 25 3d 33 32 0d |.F.minsizex%=32.| 00014530 0a 47 10 6d 69 6e 73 69 7a 65 79 25 3d 33 32 0d |.G.minsizey%=32.| 00014540 0a 48 2d e7 20 6d 69 6e 73 69 7a 65 78 25 3e 69 |.H-. minsizex%>i| 00014550 62 73 69 7a 65 78 25 20 8c 20 6d 69 6e 73 69 7a |bsizex% . minsiz| 00014560 65 78 25 3d 69 62 73 69 7a 65 78 25 0d 0a 49 2d |ex%=ibsizex%..I-| 00014570 e7 20 6d 69 6e 73 69 7a 65 79 25 3e 69 62 73 69 |. minsizey%>ibsi| 00014580 7a 65 79 25 20 8c 20 6d 69 6e 73 69 7a 65 79 25 |zey% . minsizey%| 00014590 3d 69 62 73 69 7a 65 79 25 0d 0a 4a 26 f4 20 67 |=ibsizey%..J&. g| 000145a0 65 74 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 77 |et position of w| 000145b0 69 6e 64 6f 77 20 6f 6e 20 73 63 72 65 65 6e 0d |indow on screen.| 000145c0 0a 4b 15 57 69 6e 42 6c 6b 25 21 30 3d 77 69 6e |.K.WinBlk%!0=win| 000145d0 64 6f 77 25 0d 0a 4c 25 c8 99 20 22 57 69 6d 70 |dow%..L%.. "Wimp| 000145e0 5f 47 65 74 57 69 6e 64 6f 77 53 74 61 74 65 22 |_GetWindowState"| 000145f0 2c 2c 57 69 6e 42 6c 6b 25 0d 0a 4d 44 f4 20 64 |,,WinBlk%..MD. d| 00014600 65 74 65 72 6d 69 6e 65 20 77 68 69 63 68 20 73 |etermine which s| 00014610 69 64 65 20 74 6f 20 64 72 61 67 20 2d 20 74 65 |ide to drag - te| 00014620 73 74 20 6d 6f 75 73 65 20 70 6f 73 69 74 69 6f |st mouse positio| 00014630 6e 20 72 65 6c 61 74 69 76 65 20 74 6f 0d 0a 4e |n relative to..N| 00014640 16 f4 20 64 69 61 67 6f 6e 61 6c 73 20 6f 66 20 |.. diagonals of | 00014650 62 6f 78 0d 0a 4f 32 f4 20 64 69 61 67 6f 6e 61 |box..O2. diagona| 00014660 6c 20 31 20 28 62 6f 74 74 6f 6d 6c 65 66 74 2d |l 1 (bottomleft-| 00014670 74 6f 70 72 69 67 68 74 29 20 79 20 3d 20 61 2a |topright) y = a*| 00014680 78 20 2b 20 62 0d 0a 50 33 f4 20 64 69 61 67 6f |x + b..P3. diago| 00014690 6e 61 6c 20 32 20 28 74 6f 70 6c 65 66 74 2d 62 |nal 2 (topleft-b| 000146a0 6f 74 74 6f 6d 72 69 67 68 74 29 20 79 20 3d 20 |ottomright) y = | 000146b0 2d 61 2a 78 20 2b 20 63 0d 0a 51 17 61 3d 69 62 |-a*x + c..Q.a=ib| 000146c0 73 69 7a 65 79 25 2f 69 62 73 69 7a 65 78 25 0d |sizey%/ibsizex%.| 000146d0 0a 52 17 62 3d 69 62 79 6d 69 6e 25 2d 61 2a 69 |.R.b=ibymin%-a*i| 000146e0 62 78 6d 69 6e 25 0d 0a 53 17 63 3d 69 62 79 6d |bxmin%..S.c=ibym| 000146f0 61 78 25 2b 61 2a 69 62 78 6d 69 6e 25 0d 0a 54 |ax%+a*ibxmin%..T| 00014700 26 c8 99 20 22 57 69 6d 70 5f 47 65 74 50 6f 69 |&.. "Wimp_GetPoi| 00014710 6e 74 65 72 49 6e 66 6f 22 2c 2c 50 74 72 49 6e |nterInfo",,PtrIn| 00014720 66 6f 25 0d 0a 55 25 e7 20 50 74 72 49 6e 66 6f |fo%..U%. PtrInfo| 00014730 25 21 34 3e 28 61 2a 28 50 74 72 49 6e 66 6f 25 |%!4>(a*(PtrInfo%| 00014740 21 30 29 2b 62 29 20 8c 0d 0a 56 18 20 20 f4 20 |!0)+b) ...V. . | 00014750 61 62 6f 76 65 20 64 69 61 67 6f 6e 61 6c 20 31 |above diagonal 1| 00014760 0d 0a 57 28 20 20 e7 20 50 74 72 49 6e 66 6f 25 |..W( . PtrInfo%| 00014770 21 34 3e 28 2d 61 2a 28 50 74 72 49 6e 66 6f 25 |!4>(-a*(PtrInfo%| 00014780 21 30 29 2b 63 29 20 8c 0d 0a 58 2a 20 20 20 20 |!0)+c) ...X* | 00014790 f4 20 61 62 6f 76 65 20 64 69 61 67 6f 6e 61 6c |. above diagonal| 000147a0 20 32 20 2d 20 64 72 61 67 20 74 6f 70 20 73 69 | 2 - drag top si| 000147b0 64 65 0d 0a 59 3a 20 20 20 20 e7 20 57 69 6e 42 |de..Y: . WinB| 000147c0 6c 6b 25 21 31 36 3e 69 62 79 6d 61 78 25 20 8c |lk%!16>ibymax% .| 000147d0 20 70 62 79 6d 61 78 25 3d 57 69 6e 42 6c 6b 25 | pbymax%=WinBlk%| 000147e0 21 31 36 2d 69 62 73 69 7a 65 79 25 0d 0a 5a 1a |!16-ibsizey%..Z.| 000147f0 20 20 20 20 70 62 79 6d 69 6e 25 2b 3d 6d 69 6e | pbymin%+=min| 00014800 73 69 7a 65 79 25 0d 0a 5b 10 20 20 20 20 73 68 |sizey%..[. sh| 00014810 61 70 65 25 3d 32 0d 0a 5c 3f 20 20 20 20 c8 94 |ape%=2..\? ..| 00014820 20 69 62 79 6d 69 6e 25 2c 69 62 79 6d 61 78 25 | ibymin%,ibymax%| 00014830 20 3a 20 f4 20 74 6f 70 20 73 69 64 65 20 6f 66 | : . top side of| 00014840 20 62 6f 78 20 6d 75 73 74 20 62 65 20 22 72 75 | box must be "ru| 00014850 62 62 65 72 22 0d 0a 5d 07 20 20 cc 0d 0a 5e 2b |bber"..]. ...^+| 00014860 20 20 20 20 f4 20 62 65 6c 6f 77 20 64 69 61 67 | . below diag| 00014870 6f 6e 61 6c 20 32 20 2d 20 64 72 61 67 20 6c 65 |onal 2 - drag le| 00014880 66 74 20 73 69 64 65 0d 0a 5f 38 20 20 20 20 e7 |ft side.._8 .| 00014890 20 57 69 6e 42 6c 6b 25 21 34 3c 69 62 78 6d 69 | WinBlk%!4<ibxmi| 000148a0 6e 25 20 8c 20 70 62 78 6d 69 6e 25 3d 57 69 6e |n% . pbxmin%=Win| 000148b0 42 6c 6b 25 21 34 2b 69 62 73 69 7a 65 78 25 0d |Blk%!4+ibsizex%.| 000148c0 0a 60 1a 20 20 20 20 70 62 78 6d 61 78 25 2d 3d |.`. pbxmax%-=| 000148d0 6d 69 6e 73 69 7a 65 78 25 0d 0a 61 10 20 20 20 |minsizex%..a. | 000148e0 20 73 68 61 70 65 25 3d 35 0d 0a 62 40 20 20 20 | shape%=5..b@ | 000148f0 20 c8 94 20 69 62 78 6d 69 6e 25 2c 69 62 78 6d | .. ibxmin%,ibxm| 00014900 61 78 25 20 3a 20 f4 20 6c 65 66 74 20 73 69 64 |ax% : . left sid| 00014910 65 20 6f 66 20 62 6f 78 20 6d 75 73 74 20 62 65 |e of box must be| 00014920 20 22 72 75 62 62 65 72 22 0d 0a 63 07 20 20 cd | "rubber"..c. .| 00014930 0d 0a 64 05 cc 0d 0a 65 18 20 20 f4 20 62 65 6c |..d....e. . bel| 00014940 6f 77 20 64 69 61 67 6f 6e 61 6c 20 31 0d 0a 66 |ow diagonal 1..f| 00014950 28 20 20 e7 20 50 74 72 49 6e 66 6f 25 21 34 3e |( . PtrInfo%!4>| 00014960 28 2d 61 2a 28 50 74 72 49 6e 66 6f 25 21 30 29 |(-a*(PtrInfo%!0)| 00014970 2b 63 29 20 8c 0d 0a 67 2c 20 20 20 20 f4 20 61 |+c) ...g, . a| 00014980 62 6f 76 65 20 64 69 61 67 6f 6e 61 6c 20 32 20 |bove diagonal 2 | 00014990 2d 20 64 72 61 67 20 72 69 67 68 74 20 73 69 64 |- drag right sid| 000149a0 65 0d 0a 68 31 20 20 20 20 e7 20 70 62 78 6d 61 |e..h1 . pbxma| 000149b0 78 25 3c 57 69 6e 42 6c 6b 25 21 31 32 20 8c 20 |x%<WinBlk%!12 . | 000149c0 70 62 78 6d 61 78 25 3d 57 69 6e 42 6c 6b 25 21 |pbxmax%=WinBlk%!| 000149d0 31 32 0d 0a 69 23 20 20 20 20 70 62 78 6d 69 6e |12..i# pbxmin| 000149e0 25 2d 3d 69 62 73 69 7a 65 78 25 2d 6d 69 6e 73 |%-=ibsizex%-mins| 000149f0 69 7a 65 78 25 0d 0a 6a 10 20 20 20 20 73 68 61 |izex%..j. sha| 00014a00 70 65 25 3d 33 0d 0a 6b 07 20 20 cc 0d 0a 6c 2d |pe%=3..k. ...l-| 00014a10 20 20 20 20 f4 20 62 65 6c 6f 77 20 64 69 61 67 | . below diag| 00014a20 6f 6e 61 6c 20 32 20 2d 20 64 72 61 67 20 62 6f |onal 2 - drag bo| 00014a30 74 74 6f 6d 20 73 69 64 65 0d 0a 6d 2f 20 20 20 |ttom side..m/ | 00014a40 20 e7 20 70 62 79 6d 69 6e 25 3e 57 69 6e 42 6c | . pbymin%>WinBl| 00014a50 6b 25 21 38 20 8c 20 70 62 79 6d 69 6e 25 3d 57 |k%!8 . pbymin%=W| 00014a60 69 6e 42 6c 6b 25 21 38 0d 0a 6e 23 20 20 20 20 |inBlk%!8..n# | 00014a70 70 62 79 6d 61 78 25 2b 3d 69 62 73 69 7a 65 79 |pbymax%+=ibsizey| 00014a80 25 2d 6d 69 6e 73 69 7a 65 79 25 0d 0a 6f 10 20 |%-minsizey%..o. | 00014a90 20 20 20 73 68 61 70 65 25 3d 34 0d 0a 70 07 20 | shape%=4..p. | 00014aa0 20 cd 0d 0a 71 05 cd 0d 0a 72 10 44 72 61 67 42 | ...q....r.DragB| 00014ab0 6c 6b 25 21 34 3d 36 0d 0a 73 16 44 72 61 67 42 |lk%!4=6..s.DragB| 00014ac0 6c 6b 25 21 38 3d 69 62 78 6d 69 6e 25 0d 0a 74 |lk%!8=ibxmin%..t| 00014ad0 17 44 72 61 67 42 6c 6b 25 21 31 32 3d 69 62 79 |.DragBlk%!12=iby| 00014ae0 6d 69 6e 25 0d 0a 75 17 44 72 61 67 42 6c 6b 25 |min%..u.DragBlk%| 00014af0 21 31 36 3d 69 62 78 6d 61 78 25 0d 0a 76 17 44 |!16=ibxmax%..v.D| 00014b00 72 61 67 42 6c 6b 25 21 32 30 3d 69 62 79 6d 61 |ragBlk%!20=ibyma| 00014b10 78 25 0d 0a 77 17 44 72 61 67 42 6c 6b 25 21 32 |x%..w.DragBlk%!2| 00014b20 34 3d 70 62 78 6d 69 6e 25 0d 0a 78 17 44 72 61 |4=pbxmin%..x.Dra| 00014b30 67 42 6c 6b 25 21 32 38 3d 70 62 79 6d 69 6e 25 |gBlk%!28=pbymin%| 00014b40 0d 0a 79 17 44 72 61 67 42 6c 6b 25 21 33 32 3d |..y.DragBlk%!32=| 00014b50 70 62 78 6d 61 78 25 0d 0a 7a 17 44 72 61 67 42 |pbxmax%..z.DragB| 00014b60 6c 6b 25 21 33 36 3d 70 62 79 6d 61 78 25 0d 0a |lk%!36=pbymax%..| 00014b70 7b 2a f2 69 6e 69 74 64 72 61 67 28 31 2c 77 69 |{*.initdrag(1,wi| 00014b80 6e 64 6f 77 25 2c 69 63 6f 6e 25 2c 78 6d 69 6e |ndow%,icon%,xmin| 00014b90 25 2c 79 6d 69 6e 25 29 0d 0a 7c 1a f2 73 65 74 |%,ymin%)..|..set| 00014ba0 6d 6f 75 73 65 73 68 61 70 65 28 73 68 61 70 65 |mouseshape(shape| 00014bb0 25 29 0d 0a 7d 05 e1 0d 0a 7e 04 0d 0a 7f 1a dd |%)..}....~......| 00014bc0 20 f2 64 72 61 67 73 65 6c 65 63 74 28 62 75 74 | .dragselect(but| 00014bd0 74 6f 6e 25 29 0d 0a 80 14 e7 20 44 72 61 67 5f |ton%)..... Drag_| 00014be0 54 79 70 65 25 3c 30 20 8c 0d 0a 81 28 20 20 c8 |Type%<0 ....( .| 00014bf0 99 20 22 57 69 6d 70 5f 47 65 74 50 6f 69 6e 74 |. "Wimp_GetPoint| 00014c00 65 72 49 6e 66 6f 22 2c 2c 50 74 72 49 6e 66 6f |erInfo",,PtrInfo| 00014c10 25 0d 0a 82 12 20 20 44 72 61 67 42 6c 6b 25 21 |%.... DragBlk%!| 00014c20 34 3d 36 0d 0a 83 1b 20 20 44 72 61 67 42 6c 6b |4=6.... DragBlk| 00014c30 25 21 38 3d 50 74 72 49 6e 66 6f 25 21 30 0d 0a |%!8=PtrInfo%!0..| 00014c40 84 1c 20 20 44 72 61 67 42 6c 6b 25 21 31 32 3d |.. DragBlk%!12=| 00014c50 50 74 72 49 6e 66 6f 25 21 34 0d 0a 85 1c 20 20 |PtrInfo%!4.... | 00014c60 44 72 61 67 42 6c 6b 25 21 31 36 3d 50 74 72 49 |DragBlk%!16=PtrI| 00014c70 6e 66 6f 25 21 30 0d 0a 86 1c 20 20 44 72 61 67 |nfo%!0.... Drag| 00014c80 42 6c 6b 25 21 32 30 3d 50 74 72 49 6e 66 6f 25 |Blk%!20=PtrInfo%| 00014c90 21 34 0d 0a 87 1b 20 20 57 69 6e 42 6c 6b 25 21 |!4.... WinBlk%!| 00014ca0 30 3d 50 74 72 49 6e 66 6f 25 21 31 32 0d 0a 88 |0=PtrInfo%!12...| 00014cb0 27 20 20 c8 99 20 22 57 69 6d 70 5f 47 65 74 57 |' .. "Wimp_GetW| 00014cc0 69 6e 64 6f 77 53 74 61 74 65 22 2c 2c 57 69 6e |indowState",,Win| 00014cd0 42 6c 6b 25 0d 0a 89 1b 20 20 44 72 61 67 42 6c |Blk%.... DragBl| 00014ce0 6b 25 21 32 34 3d 57 69 6e 42 6c 6b 25 21 34 0d |k%!24=WinBlk%!4.| 00014cf0 0a 8a 1b 20 20 44 72 61 67 42 6c 6b 25 21 32 38 |... DragBlk%!28| 00014d00 3d 57 69 6e 42 6c 6b 25 21 38 0d 0a 8b 1c 20 20 |=WinBlk%!8.... | 00014d10 44 72 61 67 42 6c 6b 25 21 33 32 3d 57 69 6e 42 |DragBlk%!32=WinB| 00014d20 6c 6b 25 21 31 32 0d 0a 8c 1c 20 20 44 72 61 67 |lk%!12.... Drag| 00014d30 42 6c 6b 25 21 33 36 3d 57 69 6e 42 6c 6b 25 21 |Blk%!36=WinBlk%!| 00014d40 31 36 0d 0a 8d 13 20 20 e7 20 62 75 74 74 6f 6e |16.... . button| 00014d50 25 3d 31 20 8c 0d 0a 8e 45 20 20 20 20 f2 69 6e |%=1 ....E .in| 00014d60 69 74 64 72 61 67 28 33 2c 50 74 72 49 6e 66 6f |itdrag(3,PtrInfo| 00014d70 25 21 31 32 2c 50 74 72 49 6e 66 6f 25 21 31 36 |%!12,PtrInfo%!16| 00014d80 2c 30 2c 30 29 20 3a 20 f4 20 64 72 61 67 20 77 |,0,0) : . drag w| 00014d90 69 74 68 20 41 64 6a 75 73 74 0d 0a 8f 07 20 20 |ith Adjust.... | 00014da0 cc 0d 0a 90 45 20 20 20 20 f2 69 6e 69 74 64 72 |....E .initdr| 00014db0 61 67 28 32 2c 50 74 72 49 6e 66 6f 25 21 31 32 |ag(2,PtrInfo%!12| 00014dc0 2c 50 74 72 49 6e 66 6f 25 21 31 36 2c 30 2c 30 |,PtrInfo%!16,0,0| 00014dd0 29 20 3a 20 f4 20 64 72 61 67 20 77 69 74 68 20 |) : . drag with | 00014de0 53 65 6c 65 63 74 0d 0a 91 07 20 20 cd 0d 0a 92 |Select.... ....| 00014df0 05 cd 0d 0a 93 05 e1 0d 0a 94 04 0d 0a 95 14 dd |................| 00014e00 20 f2 73 74 61 72 74 73 61 76 65 64 72 61 67 0d | .startsavedrag.| 00014e10 0a 96 13 ea 20 77 69 6e 30 78 25 2c 77 69 6e 30 |.... win0x%,win0| 00014e20 79 25 0d 0a 97 14 57 69 6e 42 6c 6b 25 21 30 3d |y%....WinBlk%!0=| 00014e30 53 61 76 65 57 25 0d 0a 98 25 c8 99 20 22 57 69 |SaveW%...%.. "Wi| 00014e40 6d 70 5f 47 65 74 57 69 6e 64 6f 77 53 74 61 74 |mp_GetWindowStat| 00014e50 65 22 2c 2c 57 69 6e 42 6c 6b 25 0d 0a 99 1f 77 |e",,WinBlk%....w| 00014e60 69 6e 30 78 25 3d 57 69 6e 42 6c 6b 25 21 34 2d |in0x%=WinBlk%!4-| 00014e70 57 69 6e 42 6c 6b 25 21 32 30 0d 0a 9a 20 77 69 |WinBlk%!20... wi| 00014e80 6e 30 79 25 3d 57 69 6e 42 6c 6b 25 21 31 36 2d |n0y%=WinBlk%!16-| 00014e90 57 69 6e 42 6c 6b 25 21 32 34 0d 0a 9b 16 53 63 |WinBlk%!24....Sc| 00014ea0 72 61 70 42 6c 6b 25 21 30 3d 53 61 76 65 57 25 |rapBlk%!0=SaveW%| 00014eb0 0d 0a 9c 11 53 63 72 61 70 42 6c 6b 25 21 34 3d |....ScrapBlk%!4=| 00014ec0 32 0d 0a 9d 25 c8 99 20 22 57 69 6d 70 5f 47 65 |2...%.. "Wimp_Ge| 00014ed0 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c 53 63 72 |tIconState",,Scr| 00014ee0 61 70 42 6c 6b 25 0d 0a 9e 10 44 72 61 67 42 6c |apBlk%....DragBl| 00014ef0 6b 25 21 34 3d 35 0d 0a 9f 21 44 72 61 67 42 6c |k%!4=5...!DragBl| 00014f00 6b 25 21 38 3d 53 63 72 61 70 42 6c 6b 25 21 38 |k%!8=ScrapBlk%!8| 00014f10 2b 77 69 6e 30 78 25 0d 0a a0 23 44 72 61 67 42 |+win0x%...#DragB| 00014f20 6c 6b 25 21 31 32 3d 53 63 72 61 70 42 6c 6b 25 |lk%!12=ScrapBlk%| 00014f30 21 31 32 2b 77 69 6e 30 79 25 0d 0a a1 23 44 72 |!12+win0y%...#Dr| 00014f40 61 67 42 6c 6b 25 21 31 36 3d 53 63 72 61 70 42 |agBlk%!16=ScrapB| 00014f50 6c 6b 25 21 31 36 2b 77 69 6e 30 78 25 0d 0a a2 |lk%!16+win0x%...| 00014f60 23 44 72 61 67 42 6c 6b 25 21 32 30 3d 53 63 72 |#DragBlk%!20=Scr| 00014f70 61 70 42 6c 6b 25 21 32 30 2b 77 69 6e 30 79 25 |apBlk%!20+win0y%| 00014f80 0d 0a a3 26 c8 99 20 22 57 69 6d 70 5f 47 65 74 |...&.. "Wimp_Get| 00014f90 50 6f 69 6e 74 65 72 49 6e 66 6f 22 2c 2c 50 74 |PointerInfo",,Pt| 00014fa0 72 49 6e 66 6f 25 0d 0a a4 25 44 72 61 67 42 6c |rInfo%...%DragBl| 00014fb0 6b 25 21 32 34 3d 44 72 61 67 42 6c 6b 25 21 38 |k%!24=DragBlk%!8| 00014fc0 2d 50 74 72 49 6e 66 6f 25 21 30 0d 0a a5 26 44 |-PtrInfo%!0...&D| 00014fd0 72 61 67 42 6c 6b 25 21 32 38 3d 44 72 61 67 42 |ragBlk%!28=DragB| 00014fe0 6c 6b 25 21 31 32 2d 50 74 72 49 6e 66 6f 25 21 |lk%!12-PtrInfo%!| 00014ff0 34 0d 0a a6 34 44 72 61 67 42 6c 6b 25 21 33 32 |4...4DragBlk%!32| 00015000 3d 53 63 72 65 65 6e 53 69 7a 65 5f 58 25 2b 44 |=ScreenSize_X%+D| 00015010 72 61 67 42 6c 6b 25 21 31 36 2d 50 74 72 49 6e |ragBlk%!16-PtrIn| 00015020 66 6f 25 21 30 0d 0a a7 34 44 72 61 67 42 6c 6b |fo%!0...4DragBlk| 00015030 25 21 33 36 3d 53 63 72 65 65 6e 53 69 7a 65 5f |%!36=ScreenSize_| 00015040 59 25 2b 44 72 61 67 42 6c 6b 25 21 32 30 2d 50 |Y%+DragBlk%!20-P| 00015050 74 72 49 6e 66 6f 25 21 34 0d 0a a8 1e f2 69 6e |trInfo%!4.....in| 00015060 69 74 64 72 61 67 28 34 2c 53 61 76 65 57 25 2c |itdrag(4,SaveW%,| 00015070 2d 31 2c 30 2c 30 29 0d 0a a9 05 e1 0d 0a aa 04 |-1,0,0).........| 00015080 0d 0a ab 3e f4 20 2d 2d 2d 20 6d 6f 76 65 20 6f |...>. --- move o| 00015090 72 20 72 65 73 69 7a 65 20 69 63 6f 6e 73 2c 20 |r resize icons, | 000150a0 62 61 73 65 64 20 6f 6e 20 6e 65 77 20 63 6f 6f |based on new coo| 000150b0 72 64 73 20 6f 66 20 62 6f 78 20 2d 2d 2d 0d 0a |rds of box ---..| 000150c0 ac 40 dd 20 f2 6d 6f 76 65 72 65 73 69 7a 65 28 |.@. .moveresize(| 000150d0 6f 6c 64 77 69 6e 25 2c 69 63 6f 6e 25 2c 6e 65 |oldwin%,icon%,ne| 000150e0 77 77 69 6e 25 2c 78 6d 69 6e 25 2c 79 6d 69 6e |wwin%,xmin%,ymin| 000150f0 25 2c 78 6d 61 78 25 2c 79 6d 61 78 25 29 0d 0a |%,xmax%,ymax%)..| 00015100 ad 29 ea 20 6f 6c 64 78 6d 69 6e 25 2c 6f 6c 64 |.). oldxmin%,old| 00015110 79 6d 69 6e 25 2c 6f 6c 64 78 6d 61 78 25 2c 6f |ymin%,oldxmax%,o| 00015120 6c 64 79 6d 61 78 25 0d 0a ae 1b ea 20 78 73 63 |ldymax%..... xsc| 00015130 61 6c 65 2c 79 73 63 61 6c 65 2c 6e 65 77 25 2c |ale,yscale,new%,| 00015140 69 25 0d 0a af 10 e7 20 69 63 6f 6e 25 3e 3d 30 |i%..... icon%>=0| 00015150 20 8c 0d 0a b0 36 20 20 53 65 6c 42 6c 6b 25 21 | ....6 SelBlk%!| 00015160 30 3d 69 63 6f 6e 25 20 3a 20 f4 20 73 69 6d 75 |0=icon% : . simu| 00015170 6c 61 74 65 20 73 65 6c 65 63 74 69 6f 6e 20 6f |late selection o| 00015180 66 20 31 20 69 63 6f 6e 0d 0a b1 13 20 20 4e 72 |f 1 icon.... Nr| 00015190 53 65 6c 65 63 74 65 64 25 3d 31 0d 0a b2 05 cc |Selected%=1.....| 000151a0 0d 0a b3 17 20 20 f2 73 65 6c 5f 67 65 74 28 6f |.... .sel_get(o| 000151b0 6c 64 77 69 6e 25 29 0d 0a b4 05 cd 0d 0a b5 39 |ldwin%)........9| 000151c0 f2 73 65 6c 5f 62 6f 78 28 6f 6c 64 77 69 6e 25 |.sel_box(oldwin%| 000151d0 2c 6f 6c 64 78 6d 69 6e 25 2c 6f 6c 64 79 6d 69 |,oldxmin%,oldymi| 000151e0 6e 25 2c 6f 6c 64 78 6d 61 78 25 2c 6f 6c 64 79 |n%,oldxmax%,oldy| 000151f0 6d 61 78 25 29 0d 0a b6 34 f4 20 63 61 6c 63 75 |max%)...4. calcu| 00015200 6c 61 74 65 20 73 63 61 6c 69 6e 67 20 66 61 63 |late scaling fac| 00015210 74 6f 72 73 20 28 77 69 6c 6c 20 62 65 20 31 20 |tors (will be 1 | 00015220 66 6f 72 20 6d 6f 76 65 29 0d 0a b7 2c 78 73 63 |for move)...,xsc| 00015230 61 6c 65 3d 28 78 6d 61 78 25 2d 78 6d 69 6e 25 |ale=(xmax%-xmin%| 00015240 29 2f 28 6f 6c 64 78 6d 61 78 25 2d 6f 6c 64 78 |)/(oldxmax%-oldx| 00015250 6d 69 6e 25 29 0d 0a b8 2c 79 73 63 61 6c 65 3d |min%)...,yscale=| 00015260 28 79 6d 61 78 25 2d 79 6d 69 6e 25 29 2f 28 6f |(ymax%-ymin%)/(o| 00015270 6c 64 79 6d 61 78 25 2d 6f 6c 64 79 6d 69 6e 25 |ldymax%-oldymin%| 00015280 29 0d 0a b9 1a e3 20 69 25 3d 30 20 b8 20 4e 72 |)..... i%=0 . Nr| 00015290 53 65 6c 65 63 74 65 64 25 2d 31 0d 0a ba 1a 20 |Selected%-1.... | 000152a0 20 49 63 6f 6e 42 6c 6b 25 21 30 3d 44 72 61 67 | IconBlk%!0=Drag| 000152b0 5f 57 69 6e 25 0d 0a bb 1f 20 20 49 63 6f 6e 42 |_Win%.... IconB| 000152c0 6c 6b 25 21 34 3d 53 65 6c 42 6c 6b 25 21 28 34 |lk%!4=SelBlk%!(4| 000152d0 2a 69 25 29 0d 0a bc 26 20 20 c8 99 20 22 57 69 |*i%)...& .. "Wi| 000152e0 6d 70 5f 47 65 74 49 63 6f 6e 53 74 61 74 65 22 |mp_GetIconState"| 000152f0 2c 2c 49 63 6f 6e 42 6c 6b 25 0d 0a bd 3a 20 20 |,,IconBlk%...: | 00015300 49 63 6f 6e 42 6c 6b 25 21 38 3d 78 6d 69 6e 25 |IconBlk%!8=xmin%| 00015310 2b a8 28 28 49 63 6f 6e 42 6c 6b 25 21 38 2d 6f |+.((IconBlk%!8-o| 00015320 6c 64 78 6d 69 6e 25 29 2a 78 73 63 61 6c 65 2b |ldxmin%)*xscale+| 00015330 30 2e 35 29 0d 0a be 3c 20 20 49 63 6f 6e 42 6c |0.5)...< IconBl| 00015340 6b 25 21 31 32 3d 79 6d 69 6e 25 2b a8 28 28 49 |k%!12=ymin%+.((I| 00015350 63 6f 6e 42 6c 6b 25 21 31 32 2d 6f 6c 64 79 6d |conBlk%!12-oldym| 00015360 69 6e 25 29 2a 79 73 63 61 6c 65 2b 30 2e 35 29 |in%)*yscale+0.5)| 00015370 0d 0a bf 3c 20 20 49 63 6f 6e 42 6c 6b 25 21 31 |...< IconBlk%!1| 00015380 36 3d 78 6d 69 6e 25 2b a8 28 28 49 63 6f 6e 42 |6=xmin%+.((IconB| 00015390 6c 6b 25 21 31 36 2d 6f 6c 64 78 6d 69 6e 25 29 |lk%!16-oldxmin%)| 000153a0 2a 78 73 63 61 6c 65 2b 30 2e 35 29 0d 0a c0 3c |*xscale+0.5)...<| 000153b0 20 20 49 63 6f 6e 42 6c 6b 25 21 32 30 3d 79 6d | IconBlk%!20=ym| 000153c0 69 6e 25 2b a8 28 28 49 63 6f 6e 42 6c 6b 25 21 |in%+.((IconBlk%!| 000153d0 32 30 2d 6f 6c 64 79 6d 69 6e 25 29 2a 79 73 63 |20-oldymin%)*ysc| 000153e0 61 6c 65 2b 30 2e 35 29 0d 0a c1 19 20 20 e7 20 |ale+0.5).... . | 000153f0 6f 6c 64 77 69 6e 25 3d 6e 65 77 77 69 6e 25 20 |oldwin%=newwin% | 00015400 8c 0d 0a c2 26 20 20 20 20 f4 20 6d 6f 76 65 20 |....& . move | 00015410 2f 20 72 65 73 69 7a 65 20 69 6e 20 73 61 6d 65 |/ resize in same| 00015420 20 77 69 6e 64 6f 77 0d 0a c3 3b 20 20 20 20 6e | window...; n| 00015430 65 77 25 3d a4 72 65 64 65 66 69 6e 65 69 63 6f |ew%=.redefineico| 00015440 6e 28 6f 6c 64 77 69 6e 25 2c 53 65 6c 42 6c 6b |n(oldwin%,SelBlk| 00015450 25 21 28 34 2a 69 25 29 2c 49 63 6f 6e 42 6c 6b |%!(4*i%),IconBlk| 00015460 25 29 0d 0a c4 07 20 20 cc 0d 0a c5 31 20 20 20 |%).... ....1 | 00015470 20 f4 20 6d 6f 76 65 20 74 6f 20 6f 74 68 65 72 | . move to other| 00015480 20 6f 74 68 65 72 20 77 69 6e 64 6f 77 20 3d 20 | other window = | 00015490 63 6f 70 79 20 69 63 6f 6e 73 0d 0a c6 1a 20 20 |copy icons.... | 000154a0 20 20 49 63 6f 6e 42 6c 6b 25 21 34 3d 6e 65 77 | IconBlk%!4=new| 000154b0 77 69 6e 25 0d 0a c7 46 20 20 20 20 f2 69 63 6f |win%...F .ico| 000154c0 6e 72 65 61 6c 6c 6f 63 28 49 63 6f 6e 42 6c 6b |nrealloc(IconBlk| 000154d0 25 2b 32 34 2c 49 63 6f 6e 42 6c 6b 25 2b 32 38 |%+24,IconBlk%+28| 000154e0 29 20 3a 20 f4 20 63 6f 70 79 20 69 6e 64 69 72 |) : . copy indir| 000154f0 65 63 74 65 64 20 64 61 74 61 0d 0a c8 24 20 20 |ected data...$ | 00015500 20 20 6e 65 77 25 3d a4 63 72 65 61 74 65 69 63 | new%=.createic| 00015510 6f 6e 28 49 63 6f 6e 42 6c 6b 25 2b 34 29 0d 0a |on(IconBlk%+4)..| 00015520 c9 07 20 20 cd 0d 0a ca 08 ed 20 69 25 0d 0a cb |.. ...... i%...| 00015530 05 e1 0d 0a cc 04 0d 0a cd 35 f4 20 2a 2a 2a 20 |.........5. *** | 00015540 70 72 6f 63 73 20 66 6f 72 20 64 69 61 6c 6f 67 |procs for dialog| 00015550 75 65 20 61 6e 64 20 72 65 70 6f 72 74 69 6e 67 |ue and reporting| 00015560 20 65 72 72 6f 72 73 20 2a 2a 2a 0d 0a ce 04 0d | errors ***.....| 00015570 0a cf 1a dd 20 a4 65 72 72 62 6f 78 28 65 72 72 |.... .errbox(err| 00015580 24 2c 62 6f 78 65 73 25 29 0d 0a d0 0f 45 72 72 |$,boxes%)....Err| 00015590 42 6c 6b 25 21 30 3d 30 0d 0a d1 18 24 28 45 72 |Blk%!0=0....$(Er| 000155a0 72 42 6c 6b 25 2b 34 29 3d 65 72 72 24 2b bd 30 |rBlk%+4)=err$+.0| 000155b0 0d 0a d2 38 c8 99 20 22 57 69 6d 70 5f 52 65 70 |...8.. "Wimp_Rep| 000155c0 6f 72 74 45 72 72 6f 72 22 2c 45 72 72 42 6c 6b |ortError",ErrBlk| 000155d0 25 2c 62 6f 78 65 73 25 2c 41 70 70 6c 24 20 b8 |%,boxes%,Appl$ .| 000155e0 20 2c 63 6c 69 63 6b 25 0d 0a d3 0f 3d 28 63 6c | ,click%....=(cl| 000155f0 69 63 6b 25 3d 31 29 0d 0a d4 04 0d 0a d5 18 dd |ick%=1).........| 00015600 20 f2 65 72 72 6f 72 28 66 6f 72 63 65 71 75 69 | .error(forcequi| 00015610 74 25 29 0d 0a d6 0d ea 20 62 75 74 74 6f 6e 25 |t%)..... button%| 00015620 0d 0a d7 07 ea 20 85 0d 0a d8 21 ee 20 85 20 ea |..... ....!. . .| 00015630 20 c8 99 20 22 57 69 6d 70 5f 43 6c 6f 73 65 44 | .. "Wimp_CloseD| 00015640 6f 77 6e 22 20 3a 20 e0 0d 0a d9 18 c8 99 20 22 |own" : ....... "| 00015650 48 6f 75 72 67 6c 61 73 73 5f 53 6d 61 73 68 22 |Hourglass_Smash"| 00015660 0d 0a da 12 e7 20 66 6f 72 63 65 71 75 69 74 25 |..... forcequit%| 00015670 20 8c 0d 0a db 0f 20 20 62 75 74 74 6f 6e 25 3d | ..... button%=| 00015680 32 0d 0a dc 05 cc 0d 0a dd 0f 20 20 62 75 74 74 |2......... butt| 00015690 6f 6e 25 3d 33 0d 0a de 05 cd 0d 0a df 32 e7 20 |on%=3........2. | 000156a0 28 ac 20 a4 65 72 72 62 6f 78 28 f6 24 2b 22 20 |(. .errbox(.$+" | 000156b0 28 6c 69 6e 65 20 22 2b c3 28 9e 29 2b 22 29 22 |(line "+.(.)+")"| 000156c0 2c 62 75 74 74 6f 6e 25 29 29 20 8c 0d 0a e0 19 |,button%)) .....| 000156d0 20 20 c8 99 20 22 57 69 6d 70 5f 43 6c 6f 73 65 | .. "Wimp_Close| 000156e0 44 6f 77 6e 22 0d 0a e1 07 20 20 e0 0d 0a e2 05 |Down".... .....| 000156f0 cd 0d 0a e3 05 e1 0d 0a e4 04 0d 0a e5 15 dd 20 |............... | 00015700 f2 63 6f 6d 70 6c 61 69 6e 28 6d 73 67 24 29 0d |.complain(msg$).| 00015710 0a e6 0c ea 20 64 75 6d 6d 79 25 0d 0a e7 1b 64 |.... dummy%....d| 00015720 75 6d 6d 79 25 3d a4 65 72 72 62 6f 78 28 6d 73 |ummy%=.errbox(ms| 00015730 67 24 2c 31 37 29 0d 0a e8 05 e1 0d 0a e9 04 0d |g$,17)..........| 00015740 0a ea 20 dd 20 f2 64 69 61 6c 6f 67 75 65 28 6e |.. . .dialogue(n| 00015750 6f 25 2c 61 72 67 31 24 2c 61 72 67 32 24 29 0d |o%,arg1$,arg2$).| 00015760 0a eb 17 ea 20 62 31 24 2c 62 32 24 2c 62 33 24 |.... b1$,b2$,b3$| 00015770 2c 6d 61 73 6b 25 0d 0a ec 0a 62 31 24 3d 22 22 |,mask%....b1$=""| 00015780 0d 0a ed 0a 62 32 24 3d 22 22 0d 0a ee 0a 62 33 |....b2$=""....b3| 00015790 24 3d 22 22 0d 0a ef 0c c8 8e 20 6e 6f 25 20 ca |$=""...... no% .| 000157a0 0d 0a f0 09 20 20 c9 20 30 0d 0a f1 27 20 20 20 |.... . 0...' | 000157b0 20 24 44 69 61 6c 5f 4d 73 67 25 3d a4 6d 73 67 | $Dial_Msg%=.msg| 000157c0 5f 6c 6f 6f 6b 75 70 30 28 22 4d 4f 44 30 22 29 |_lookup0("MOD0")| 000157d0 0d 0a f2 20 20 20 20 20 62 31 24 3d a4 6d 73 67 |... b1$=.msg| 000157e0 5f 6c 6f 6f 6b 75 70 30 28 22 53 41 56 45 22 29 |_lookup0("SAVE")| 000157f0 0d 0a f3 20 20 20 20 20 62 32 24 3d a4 6d 73 67 |... b2$=.msg| 00015800 5f 6c 6f 6f 6b 75 70 30 28 22 44 43 52 44 22 29 |_lookup0("DCRD")| 00015810 0d 0a f4 20 20 20 20 20 62 33 24 3d a4 6d 73 67 |... b3$=.msg| 00015820 5f 6c 6f 6f 6b 75 70 30 28 22 43 41 4e 43 22 29 |_lookup0("CANC")| 00015830 0d 0a f5 09 20 20 c9 20 31 0d 0a f6 27 20 20 20 |.... . 1...' | 00015840 20 24 44 69 61 6c 5f 4d 73 67 25 3d a4 6d 73 67 | $Dial_Msg%=.msg| 00015850 5f 6c 6f 6f 6b 75 70 30 28 22 4d 4f 44 30 22 29 |_lookup0("MOD0")| 00015860 0d 0a f7 20 20 20 20 20 62 31 24 3d a4 6d 73 67 |... b1$=.msg| 00015870 5f 6c 6f 6f 6b 75 70 30 28 22 44 41 4c 4c 22 29 |_lookup0("DALL")| 00015880 0d 0a f8 20 20 20 20 20 62 33 24 3d a4 6d 73 67 |... b3$=.msg| 00015890 5f 6c 6f 6f 6b 75 70 30 28 22 43 41 4e 43 22 29 |_lookup0("CANC")| 000158a0 0d 0a f9 09 20 20 c9 20 32 0d 0a fa 27 20 20 20 |.... . 2...' | 000158b0 20 24 44 69 61 6c 5f 4d 73 67 25 3d a4 6d 73 67 | $Dial_Msg%=.msg| 000158c0 5f 6c 6f 6f 6b 75 70 30 28 22 4d 4f 44 30 22 29 |_lookup0("MOD0")| 000158d0 0d 0a fb 20 20 20 20 20 62 31 24 3d a4 6d 73 67 |... b1$=.msg| 000158e0 5f 6c 6f 6f 6b 75 70 30 28 22 4c 4e 45 57 22 29 |_lookup0("LNEW")| 000158f0 0d 0a fc 20 20 20 20 20 62 33 24 3d a4 6d 73 67 |... b3$=.msg| 00015900 5f 6c 6f 6f 6b 75 70 30 28 22 43 41 4e 43 22 29 |_lookup0("CANC")| 00015910 0d 0a fd 09 20 20 c9 20 33 0d 0a fe 2d 20 20 20 |.... . 3...- | 00015920 20 24 44 69 61 6c 5f 4d 73 67 25 3d a4 6d 73 67 | $Dial_Msg%=.msg| 00015930 5f 6c 6f 6f 6b 75 70 31 28 22 4e 4f 52 4d 22 2c |_lookup1("NORM",| 00015940 61 72 67 31 24 29 0d 0a ff 1e 20 20 20 20 62 32 |arg1$).... b2| 00015950 24 3d a4 6d 73 67 5f 6c 6f 6f 6b 75 70 30 28 22 |$=.msg_lookup0("| 00015960 4f 4b 22 29 0d 0b 00 09 20 20 c9 20 34 0d 0b 01 |OK").... . 4...| 00015970 27 20 20 20 20 24 44 69 61 6c 5f 4d 73 67 25 3d |' $Dial_Msg%=| 00015980 a4 6d 73 67 5f 6c 6f 6f 6b 75 70 30 28 22 4e 55 |.msg_lookup0("NU| 00015990 50 44 22 29 0d 0b 02 1e 20 20 20 20 62 32 24 3d |PD").... b2$=| 000159a0 a4 6d 73 67 5f 6c 6f 6f 6b 75 70 30 28 22 4f 4b |.msg_lookup0("OK| 000159b0 22 29 0d 0b 03 09 20 20 c9 20 35 0d 0b 04 27 20 |").... . 5...' | 000159c0 20 20 20 24 44 69 61 6c 5f 4d 73 67 25 3d a4 6d | $Dial_Msg%=.m| 000159d0 73 67 5f 6c 6f 6f 6b 75 70 30 28 22 4e 53 54 46 |sg_lookup0("NSTF| 000159e0 22 29 0d 0b 05 1e 20 20 20 20 62 32 24 3d a4 6d |").... b2$=.m| 000159f0 73 67 5f 6c 6f 6f 6b 75 70 30 28 22 4f 4b 22 29 |sg_lookup0("OK")| 00015a00 0d 0b 06 09 20 20 c9 20 36 0d 0b 07 27 20 20 20 |.... . 6...' | 00015a10 20 24 44 69 61 6c 5f 4d 73 67 25 3d a4 6d 73 67 | $Dial_Msg%=.msg| 00015a20 5f 6c 6f 6f 6b 75 70 30 28 22 4e 4f 43 48 22 29 |_lookup0("NOCH")| 00015a30 0d 0b 08 1e 20 20 20 20 62 32 24 3d a4 6d 73 67 |.... b2$=.msg| 00015a40 5f 6c 6f 6f 6b 75 70 30 28 22 4f 4b 22 29 0d 0b |_lookup0("OK")..| 00015a50 09 09 20 20 c9 20 37 0d 0b 0a 33 20 20 20 20 24 |.. . 7...3 $| 00015a60 44 69 61 6c 5f 4d 73 67 25 3d a4 6d 73 67 5f 6c |Dial_Msg%=.msg_l| 00015a70 6f 6f 6b 75 70 32 28 22 54 49 44 59 22 2c 61 72 |ookup2("TIDY",ar| 00015a80 67 31 24 2c 61 72 67 32 24 29 0d 0b 0b 1e 20 20 |g1$,arg2$).... | 00015a90 20 20 62 32 24 3d a4 6d 73 67 5f 6c 6f 6f 6b 75 | b2$=.msg_looku| 00015aa0 70 30 28 22 4f 4b 22 29 0d 0b 0c 09 20 20 c9 20 |p0("OK").... . | 00015ab0 38 0d 0b 0d 27 20 20 20 20 24 44 69 61 6c 5f 4d |8...' $Dial_M| 00015ac0 73 67 25 3d a4 6d 73 67 5f 6c 6f 6f 6b 75 70 30 |sg%=.msg_lookup0| 00015ad0 28 22 4d 4f 44 30 22 29 0d 0b 0e 20 20 20 20 20 |("MOD0")... | 00015ae0 62 31 24 3d a4 6d 73 67 5f 6c 6f 6f 6b 75 70 30 |b1$=.msg_lookup0| 00015af0 28 22 44 43 52 44 22 29 0d 0b 0f 20 20 20 20 20 |("DCRD")... | 00015b00 62 33 24 3d a4 6d 73 67 5f 6c 6f 6f 6b 75 70 30 |b3$=.msg_lookup0| 00015b10 28 22 43 41 4e 43 22 29 0d 0b 10 09 20 20 c9 20 |("CANC").... . | 00015b20 39 0d 0b 11 27 20 20 20 20 24 44 69 61 6c 5f 4d |9...' $Dial_M| 00015b30 73 67 25 3d a4 6d 73 67 5f 6c 6f 6f 6b 75 70 30 |sg%=.msg_lookup0| 00015b40 28 22 4e 53 45 4c 22 29 0d 0b 12 1e 20 20 20 20 |("NSEL").... | 00015b50 62 32 24 3d a4 6d 73 67 5f 6c 6f 6f 6b 75 70 30 |b2$=.msg_lookup0| 00015b60 28 22 4f 4b 22 29 0d 0b 13 05 cb 0d 0b 14 16 24 |("OK").........$| 00015b70 44 69 61 6c 5f 42 75 74 74 6f 6e 31 25 3d 62 31 |Dial_Button1%=b1| 00015b80 24 0d 0b 15 16 24 44 69 61 6c 5f 42 75 74 74 6f |$....$Dial_Butto| 00015b90 6e 32 25 3d 62 32 24 0d 0b 16 16 24 44 69 61 6c |n2%=b2$....$Dial| 00015ba0 5f 42 75 74 74 6f 6e 33 25 3d 62 33 24 0d 0b 17 |_Button3%=b3$...| 00015bb0 1a 6d 61 73 6b 25 3d 28 31 3c 3c 32 29 2b 28 26 |.mask%=(1<<2)+(&| 00015bc0 46 46 3c 3c 32 34 29 0d 0b 18 10 e7 20 a9 28 62 |FF<<24)..... .(b| 00015bd0 31 24 29 3d 30 20 8c 0d 0b 19 21 20 20 f4 20 67 |1$)=0 ....! . g| 00015be0 72 65 79 20 63 6f 6c 6f 75 72 20 2d 3e 20 69 6e |rey colour -> in| 00015bf0 76 69 73 69 62 6c 65 25 0d 0b 1a 2c 20 20 f2 73 |visible%..., .s| 00015c00 65 74 69 63 6f 6e 73 74 61 74 65 30 28 44 69 61 |eticonstate0(Dia| 00015c10 6c 57 25 2c 31 2c 26 31 31 3c 3c 32 34 2c 6d 61 |lW%,1,&11<<24,ma| 00015c20 73 6b 25 29 0d 0b 1b 05 cc 0d 0b 1c 35 20 20 f2 |sk%)........5 .| 00015c30 73 65 74 69 63 6f 6e 73 74 61 74 65 30 28 44 69 |seticonstate0(Di| 00015c40 61 6c 57 25 2c 31 2c 44 69 61 6c 5f 42 75 74 74 |alW%,1,Dial_Butt| 00015c50 6f 6e 43 6f 6c 31 25 2c 6d 61 73 6b 25 29 0d 0b |onCol1%,mask%)..| 00015c60 1d 05 cd 0d 0b 1e 10 e7 20 a9 28 62 32 24 29 3d |........ .(b2$)=| 00015c70 30 20 8c 0d 0b 1f 2c 20 20 f2 73 65 74 69 63 6f |0 ...., .setico| 00015c80 6e 73 74 61 74 65 30 28 44 69 61 6c 57 25 2c 32 |nstate0(DialW%,2| 00015c90 2c 26 31 31 3c 3c 32 34 2c 6d 61 73 6b 25 29 0d |,&11<<24,mask%).| 00015ca0 0b 20 05 cc 0d 0b 21 35 20 20 f2 73 65 74 69 63 |. ....!5 .setic| 00015cb0 6f 6e 73 74 61 74 65 30 28 44 69 61 6c 57 25 2c |onstate0(DialW%,| 00015cc0 32 2c 44 69 61 6c 5f 42 75 74 74 6f 6e 43 6f 6c |2,Dial_ButtonCol| 00015cd0 32 25 2c 6d 61 73 6b 25 29 0d 0b 22 05 cd 0d 0b |2%,mask%).."....| 00015ce0 23 10 e7 20 a9 28 62 33 24 29 3d 30 20 8c 0d 0b |#.. .(b3$)=0 ...| 00015cf0 24 2c 20 20 f2 73 65 74 69 63 6f 6e 73 74 61 74 |$, .seticonstat| 00015d00 65 30 28 44 69 61 6c 57 25 2c 33 2c 26 31 31 3c |e0(DialW%,3,&11<| 00015d10 3c 32 34 2c 6d 61 73 6b 25 29 0d 0b 25 05 cc 0d |<24,mask%)..%...| 00015d20 0b 26 35 20 20 f2 73 65 74 69 63 6f 6e 73 74 61 |.&5 .seticonsta| 00015d30 74 65 30 28 44 69 61 6c 57 25 2c 33 2c 44 69 61 |te0(DialW%,3,Dia| 00015d40 6c 5f 42 75 74 74 6f 6e 43 6f 6c 33 25 2c 6d 61 |l_ButtonCol3%,ma| 00015d50 73 6b 25 29 0d 0b 27 05 cd 0d 0b 28 16 53 63 72 |sk%)..'....(.Scr| 00015d60 61 70 42 6c 6b 25 21 30 3d 44 69 61 6c 57 25 0d |apBlk%!0=DialW%.| 00015d70 0b 29 27 c8 99 20 22 57 69 6d 70 5f 47 65 74 57 |.)'.. "Wimp_GetW| 00015d80 69 6e 64 6f 77 53 74 61 74 65 22 2c 2c 53 63 72 |indowState",,Scr| 00015d90 61 70 42 6c 6b 25 0d 0b 2a 39 c8 99 20 22 57 69 |apBlk%..*9.. "Wi| 00015da0 6d 70 5f 43 72 65 61 74 65 4d 65 6e 75 22 2c 2c |mp_CreateMenu",,| 00015db0 44 69 61 6c 57 25 2c 53 63 72 61 70 42 6c 6b 25 |DialW%,ScrapBlk%| 00015dc0 21 34 2c 53 63 72 61 70 42 6c 6b 25 21 31 36 0d |!4,ScrapBlk%!16.| 00015dd0 0b 2b 15 4c 61 73 74 44 69 61 6c 6f 67 75 65 25 |.+.LastDialogue%| 00015de0 3d 6e 6f 25 0d 0b 2c 05 e1 0d 0b 2d 04 0d 0b 2e |=no%..,....-....| 00015df0 18 f4 20 2a 2a 2a 20 68 65 61 70 20 70 72 6f 63 |.. *** heap proc| 00015e00 73 20 2a 2a 2a 0d 0b 2f 04 0d 0b 30 10 dd 20 f2 |s ***../...0.. .| 00015e10 68 65 61 70 5f 69 6e 69 74 0d 0b 31 3e 48 65 61 |heap_init..1>Hea| 00015e20 70 25 3d 93 20 3a 20 f4 20 68 65 61 70 20 73 74 |p%=. : . heap st| 00015e30 61 72 74 73 20 6a 75 73 74 20 61 66 74 65 72 20 |arts just after | 00015e40 65 6e 64 20 6f 66 20 61 6c 6c 6f 63 61 74 65 64 |end of allocated| 00015e50 20 6d 65 6d 6f 72 79 0d 0b 32 26 c8 99 20 22 4f | memory..2&.. "O| 00015e60 53 5f 52 65 61 64 4d 65 6d 4d 61 70 49 6e 66 6f |S_ReadMemMapInfo| 00015e70 22 20 b8 20 50 61 67 65 53 69 7a 65 25 0d 0b 33 |" . PageSize%..3| 00015e80 45 f4 20 65 6e 6c 61 72 67 65 20 77 69 6d 70 73 |E. enlarge wimps| 00015e90 6c 6f 74 20 28 31 20 70 61 67 65 29 20 61 6e 64 |lot (1 page) and| 00015ea0 20 63 72 65 61 74 65 20 70 72 69 76 61 74 65 20 | create private | 00015eb0 68 65 61 70 20 69 6e 20 6e 65 77 20 6d 65 6d 6f |heap in new memo| 00015ec0 72 79 0d 0b 34 19 53 6c 6f 74 53 69 7a 65 25 3d |ry..4.SlotSize%=| 00015ed0 48 65 61 70 25 2d 26 38 30 30 30 0d 0b 35 39 c8 |Heap%-&8000..59.| 00015ee0 99 20 22 57 69 6d 70 5f 53 6c 6f 74 53 69 7a 65 |. "Wimp_SlotSize| 00015ef0 22 2c 53 6c 6f 74 53 69 7a 65 25 2b 50 61 67 65 |",SlotSize%+Page| 00015f00 53 69 7a 65 25 2c 2d 31 20 b8 20 53 6c 6f 74 53 |Size%,-1 . SlotS| 00015f10 69 7a 65 25 0d 0b 36 1c 48 65 61 70 45 6e 64 25 |ize%..6.HeapEnd%| 00015f20 3d 53 6c 6f 74 53 69 7a 65 25 2b 26 38 30 30 30 |=SlotSize%+&8000| 00015f30 0d 0b 37 38 e7 20 48 65 61 70 45 6e 64 25 3c 3d |..78. HeapEnd%<=| 00015f40 48 65 61 70 25 20 8c 20 85 20 30 2c 22 43 61 6e |Heap% . . 0,"Can| 00015f50 27 74 20 63 6c 61 69 6d 20 73 70 61 63 65 20 66 |'t claim space f| 00015f60 6f 72 20 68 65 61 70 22 0d 0b 38 28 c8 99 20 22 |or heap"..8(.. "| 00015f70 4f 53 5f 48 65 61 70 22 2c 30 2c 48 65 61 70 25 |OS_Heap",0,Heap%| 00015f80 2c 2c 48 65 61 70 45 6e 64 25 2d 48 65 61 70 25 |,,HeapEnd%-Heap%| 00015f90 0d 0b 39 05 e1 0d 0b 3a 04 0d 0b 3b 16 dd 20 a4 |..9....:...;.. .| 00015fa0 68 65 61 70 5f 67 65 74 28 73 69 7a 65 25 29 0d |heap_get(size%).| 00015fb0 0b 3c 28 ea 20 6d 61 78 66 72 65 65 25 2c 6e 72 |.<(. maxfree%,nr| 00015fc0 70 61 67 65 73 25 2c 6f 6c 64 68 65 61 70 65 6e |pages%,oldheapen| 00015fd0 64 25 2c 70 74 72 25 0d 0b 3d 25 c8 99 20 22 4f |d%,ptr%..=%.. "O| 00015fe0 53 5f 48 65 61 70 22 2c 31 2c 48 65 61 70 25 20 |S_Heap",1,Heap% | 00015ff0 b8 20 2c 2c 6d 61 78 66 72 65 65 25 0d 0b 3e 16 |. ,,maxfree%..>.| 00016000 e7 20 73 69 7a 65 25 3e 6d 61 78 66 72 65 65 25 |. size%>maxfree%| 00016010 20 8c 0d 0b 3f 4a 20 20 f4 20 6c 61 72 67 65 73 | ...?J . larges| 00016020 74 20 66 72 65 65 20 62 6c 6f 63 6b 20 69 73 20 |t free block is | 00016030 74 6f 6f 20 73 6d 61 6c 6c 20 2d 20 74 72 79 20 |too small - try | 00016040 74 6f 20 65 6e 6c 61 72 67 65 20 77 69 6d 70 73 |to enlarge wimps| 00016050 6c 6f 74 20 61 6e 64 20 68 65 61 70 0d 0b 40 43 |lot and heap..@C| 00016060 20 20 6e 72 70 61 67 65 73 25 3d 31 2b 28 73 69 | nrpages%=1+(si| 00016070 7a 65 25 20 81 20 50 61 67 65 53 69 7a 65 25 29 |ze% . PageSize%)| 00016080 20 3a 20 f4 20 72 65 71 75 69 72 65 64 20 23 20 | : . required # | 00016090 70 61 67 65 73 20 6f 66 20 6d 65 6d 6f 72 79 0d |pages of memory.| 000160a0 0b 41 44 20 20 c8 99 20 22 57 69 6d 70 5f 53 6c |.AD .. "Wimp_Sl| 000160b0 6f 74 53 69 7a 65 22 2c 53 6c 6f 74 53 69 7a 65 |otSize",SlotSize| 000160c0 25 2b 6e 72 70 61 67 65 73 25 2a 50 61 67 65 53 |%+nrpages%*PageS| 000160d0 69 7a 65 25 2c 2d 31 20 b8 20 53 6c 6f 74 53 69 |ize%,-1 . SlotSi| 000160e0 7a 65 25 0d 0b 42 1a 20 20 6f 6c 64 68 65 61 70 |ze%..B. oldheap| 000160f0 65 6e 64 25 3d 48 65 61 70 45 6e 64 25 0d 0b 43 |end%=HeapEnd%..C| 00016100 1e 20 20 48 65 61 70 45 6e 64 25 3d 53 6c 6f 74 |. HeapEnd%=Slot| 00016110 53 69 7a 65 25 2b 26 38 30 30 30 0d 0b 44 30 20 |Size%+&8000..D0 | 00016120 20 c8 99 20 22 4f 53 5f 48 65 61 70 22 2c 35 2c | .. "OS_Heap",5,| 00016130 48 65 61 70 25 2c 2c 48 65 61 70 45 6e 64 25 2d |Heap%,,HeapEnd%-| 00016140 6f 6c 64 68 65 61 70 65 6e 64 25 0d 0b 45 42 20 |oldheapend%..EB | 00016150 20 c8 99 20 22 4f 53 5f 48 65 61 70 22 2c 31 2c | .. "OS_Heap",1,| 00016160 48 65 61 70 25 20 b8 20 2c 2c 6d 61 78 66 72 65 |Heap% . ,,maxfre| 00016170 65 25 20 3a 20 f4 20 64 6f 20 77 65 20 68 61 76 |e% : . do we hav| 00016180 65 20 65 6e 6f 75 67 68 20 6e 6f 77 3f 0d 0b 46 |e enough now?..F| 00016190 05 cd 0d 0b 47 16 e7 20 73 69 7a 65 25 3e 6d 61 |....G.. size%>ma| 000161a0 78 66 72 65 65 25 20 8c 0d 0b 48 25 20 20 f2 63 |xfree% ...H% .c| 000161b0 6f 6d 70 6c 61 69 6e 28 a4 6d 73 67 5f 6c 6f 6f |omplain(.msg_loo| 000161c0 6b 75 70 30 28 22 4e 4f 48 50 22 29 29 0d 0b 49 |kup0("NOHP"))..I| 000161d0 0d 20 20 70 74 72 25 3d 2d 31 0d 0b 4a 05 cc 0d |. ptr%=-1..J...| 000161e0 0b 4b 2a 20 20 c8 99 20 22 4f 53 5f 48 65 61 70 |.K* .. "OS_Heap| 000161f0 22 2c 32 2c 48 65 61 70 25 2c 2c 73 69 7a 65 25 |",2,Heap%,,size%| 00016200 20 b8 20 2c 2c 70 74 72 25 0d 0b 4c 05 cd 0d 0b | . ,,ptr%..L....| 00016210 4d 09 3d 70 74 72 25 0d 0b 4e 04 0d 0b 4f 19 dd |M.=ptr%..N...O..| 00016220 20 f2 68 65 61 70 5f 72 65 6c 65 61 73 65 28 70 | .heap_release(p| 00016230 74 72 25 29 0d 0b 50 1c ea 20 6d 61 78 66 72 65 |tr%)..P.. maxfre| 00016240 65 25 2c 6e 72 70 61 67 65 73 25 2c 66 6c 67 25 |e%,nrpages%,flg%| 00016250 0d 0b 51 1d c8 99 20 22 4f 53 5f 48 65 61 70 22 |..Q... "OS_Heap"| 00016260 2c 33 2c 48 65 61 70 25 2c 70 74 72 25 0d 0b 52 |,3,Heap%,ptr%..R| 00016270 25 c8 99 20 22 4f 53 5f 48 65 61 70 22 2c 31 2c |%.. "OS_Heap",1,| 00016280 48 65 61 70 25 20 b8 20 2c 2c 6d 61 78 66 72 65 |Heap% . ,,maxfre| 00016290 65 25 0d 0b 53 1a e7 20 6d 61 78 66 72 65 65 25 |e%..S.. maxfree%| 000162a0 3e 50 61 67 65 53 69 7a 65 25 20 8c 0d 0b 54 41 |>PageSize% ...TA| 000162b0 20 20 f4 20 6d 6f 72 65 20 74 68 61 6e 20 31 20 | . more than 1 | 000162c0 70 61 67 65 20 66 72 65 65 20 2d 20 74 72 79 20 |page free - try | 000162d0 74 6f 20 73 68 72 69 6e 6b 20 68 65 61 70 20 28 |to shrink heap (| 000162e0 70 61 67 65 20 62 79 20 70 61 67 65 29 0d 0b 55 |page by page)..U| 000162f0 2c 20 20 6e 72 70 61 67 65 73 25 3d 30 20 3a 20 |, nrpages%=0 : | 00016300 f4 20 23 20 70 61 67 65 73 20 6f 66 20 6d 65 6d |. # pages of mem| 00016310 6f 72 79 20 66 72 65 65 64 0d 0b 56 07 20 20 f5 |ory freed..V. .| 00016320 0d 0b 57 31 20 20 20 20 c8 99 20 22 58 4f 53 5f |..W1 .. "XOS_| 00016330 48 65 61 70 22 2c 35 2c 48 65 61 70 25 2c 2c 2d |Heap",5,Heap%,,-| 00016340 50 61 67 65 53 69 7a 65 25 20 b8 20 3b 66 6c 67 |PageSize% . ;flg| 00016350 25 0d 0b 58 18 20 20 20 20 e7 20 28 66 6c 67 25 |%..X. . (flg%| 00016360 20 80 20 31 29 3d 30 20 8c 0d 0b 59 15 20 20 20 | . 1)=0 ...Y. | 00016370 20 20 20 6e 72 70 61 67 65 73 25 2b 3d 31 0d 0b | nrpages%+=1..| 00016380 5a 09 20 20 20 20 cd 0d 0b 5b 15 20 20 fd 20 28 |Z. ...[. . (| 00016390 66 6c 67 25 20 80 20 31 29 3c 3e 30 0d 0b 5c 14 |flg% . 1)<>0..\.| 000163a0 20 20 e7 20 6e 72 70 61 67 65 73 25 3e 30 20 8c | . nrpages%>0 .| 000163b0 0d 0b 5d 34 20 20 20 20 f4 20 73 75 63 63 65 73 |..]4 . succes| 000163c0 73 66 75 6c 6c 79 20 73 68 72 75 6e 6b 20 68 65 |sfully shrunk he| 000163d0 61 70 20 2d 20 73 68 72 69 6e 6b 20 57 69 6d 70 |ap - shrink Wimp| 000163e0 53 6c 6f 74 0d 0b 5e 46 20 20 20 20 c8 99 20 22 |Slot..^F .. "| 000163f0 57 69 6d 70 5f 53 6c 6f 74 53 69 7a 65 22 2c 53 |Wimp_SlotSize",S| 00016400 6c 6f 74 53 69 7a 65 25 2d 6e 72 70 61 67 65 73 |lotSize%-nrpages| 00016410 25 2a 50 61 67 65 53 69 7a 65 25 2c 2d 31 20 b8 |%*PageSize%,-1 .| 00016420 20 53 6c 6f 74 53 69 7a 65 25 0d 0b 5f 20 20 20 | SlotSize%.._ | 00016430 20 20 48 65 61 70 45 6e 64 25 3d 53 6c 6f 74 53 | HeapEnd%=SlotS| 00016440 69 7a 65 25 2b 26 38 30 30 30 0d 0b 60 07 20 20 |ize%+&8000..`. | 00016450 cd 0d 0b 61 35 20 20 c8 99 20 22 4f 53 5f 48 65 |...a5 .. "OS_He| 00016460 61 70 22 2c 35 2c 48 65 61 70 25 2c 2c 28 48 65 |ap",5,Heap%,,(He| 00016470 61 70 45 6e 64 25 2d 48 65 61 70 25 29 2d 48 65 |apEnd%-Heap%)-He| 00016480 61 70 25 21 31 32 0d 0b 62 05 cd 0d 0b 63 05 e1 |ap%!12..b....c..| 00016490 0d 0b 64 04 0d 0b 65 36 f4 20 2a 2a 2a 20 73 65 |..d...e6. *** se| 000164a0 72 76 69 63 65 20 70 72 6f 63 73 3b 20 69 6e 74 |rvice procs; int| 000164b0 65 72 66 61 63 65 20 77 69 74 68 20 53 57 49 73 |erface with SWIs| 000164c0 2c 20 65 74 63 2e 20 2a 2a 2a 0d 0b 66 04 0d 0b |, etc. ***..f...| 000164d0 67 4d f4 20 2d 2d 2d 20 63 68 61 6e 67 65 20 61 |gM. --- change a| 000164e0 20 76 61 72 69 61 62 6c 65 20 77 69 74 68 20 67 | variable with g| 000164f0 69 76 65 6e 20 64 69 66 66 65 72 65 6e 63 65 2c |iven difference,| 00016500 20 62 75 74 20 6b 65 65 70 20 69 6e 73 69 64 65 | but keep inside| 00016510 20 62 6f 75 6e 64 73 20 2d 2d 2d 0d 0b 68 2d dd | bounds ---..h-.| 00016520 20 a4 63 68 61 6e 67 65 76 61 72 28 f8 20 76 61 | .changevar(. va| 00016530 72 25 2c 64 69 66 66 25 2c 75 70 25 2c 6c 6f 77 |r%,diff%,up%,low| 00016540 25 2c 68 69 67 68 25 29 0d 0b 69 0d ea 20 6f 6c |%,high%)..i.. ol| 00016550 64 76 61 6c 25 0d 0b 6a 10 6f 6c 64 76 61 6c 25 |dval%..j.oldval%| 00016560 3d 76 61 72 25 0d 0b 6b 0b e7 20 75 70 25 20 8c |=var%..k.. up% .| 00016570 0d 0b 6c 11 20 20 76 61 72 25 2b 3d 64 69 66 66 |..l. var%+=diff| 00016580 25 0d 0b 6d 05 cc 0d 0b 6e 11 20 20 76 61 72 25 |%..m....n. var%| 00016590 2d 3d 64 69 66 66 25 0d 0b 6f 05 cd 0d 0b 70 1d |-=diff%..o....p.| 000165a0 e7 20 76 61 72 25 3e 68 69 67 68 25 20 8c 20 76 |. var%>high% . v| 000165b0 61 72 25 3d 68 69 67 68 25 0d 0b 71 1b e7 20 76 |ar%=high%..q.. v| 000165c0 61 72 25 3c 6c 6f 77 25 20 8c 20 76 61 72 25 3d |ar%<low% . var%=| 000165d0 6c 6f 77 25 0d 0b 72 1c f4 20 72 65 74 75 72 6e |low%..r.. return| 000165e0 20 54 52 55 45 20 69 66 20 63 68 61 6e 67 65 64 | TRUE if changed| 000165f0 0d 0b 73 15 3d 28 6f 6c 64 76 61 6c 25 3c 3e 76 |..s.=(oldval%<>v| 00016600 61 72 25 29 20 0d 0b 74 04 0d 0b 75 17 dd 20 a4 |ar%) ..t...u.. .| 00016610 72 65 61 64 76 61 72 76 61 6c 28 76 61 72 24 29 |readvarval(var$)| 00016620 0d 0b 76 0a ea 20 6c 65 6e 25 0d 0b 77 32 c8 99 |..v.. len%..w2..| 00016630 20 22 4f 53 5f 52 65 61 64 56 61 72 56 61 6c 22 | "OS_ReadVarVal"| 00016640 2c 76 61 72 24 2c 56 61 72 42 75 66 25 2c 32 35 |,var$,VarBuf%,25| 00016650 36 2c 30 20 b8 20 2c 2c 6c 65 6e 25 0d 0b 78 13 |6,0 . ,,len%..x.| 00016660 56 61 72 42 75 66 25 3f 6c 65 6e 25 3d 31 33 0d |VarBuf%?len%=13.| 00016670 0b 79 0f 3d 24 28 56 61 72 42 75 66 25 29 0d 0b |.y.=$(VarBuf%)..| 00016680 7a 04 0d 0b 7b 3e f4 20 2d 2d 2d 20 72 65 74 75 |z...{>. --- retu| 00016690 72 6e 20 6e 61 6d 65 20 6f 66 20 69 63 6f 6e 20 |rn name of icon | 000166a0 74 6f 20 64 69 73 70 6c 61 79 20 69 6e 20 62 72 |to display in br| 000166b0 6f 77 73 65 72 20 77 69 6e 64 6f 77 20 2d 2d 2d |owser window ---| 000166c0 0d 0b 7c 20 dd 20 a4 77 69 6e 64 6f 77 69 63 6f |..| . .windowico| 000166d0 6e 28 77 66 6c 61 67 73 25 2c 6f 70 65 6e 25 29 |n(wflags%,open%)| 000166e0 0d 0b 7d 24 ea 20 73 6e 61 6d 65 24 2c 74 62 61 |..}$. sname$,tba| 000166f0 72 25 2c 68 73 63 72 6f 6c 6c 25 2c 76 73 63 72 |r%,hscroll%,vscr| 00016700 6f 6c 6c 25 0d 0b 7e 19 e7 20 77 66 6c 61 67 73 |oll%..~.. wflags| 00016710 25 20 80 20 28 31 3c 3c 33 31 29 20 8c 0d 0b 7f |% . (1<<31) ....| 00016720 21 20 20 74 62 61 72 25 3d 28 77 66 6c 61 67 73 |! tbar%=(wflags| 00016730 25 20 80 20 28 31 3c 3c 32 36 29 29 3e 30 0d 0b |% . (1<<26))>0..| 00016740 80 24 20 20 68 73 63 72 6f 6c 6c 25 3d 28 77 66 |.$ hscroll%=(wf| 00016750 6c 61 67 73 25 20 80 20 28 31 3c 3c 33 30 29 29 |lags% . (1<<30))| 00016760 3e 30 0d 0b 81 24 20 20 76 73 63 72 6f 6c 6c 25 |>0...$ vscroll%| 00016770 3d 28 77 66 6c 61 67 73 25 20 80 20 28 31 3c 3c |=(wflags% . (1<<| 00016780 32 38 29 29 3e 30 0d 0b 82 05 cc 0d 0b 83 20 20 |28))>0........ | 00016790 20 74 62 61 72 25 3d 28 77 66 6c 61 67 73 25 20 | tbar%=(wflags% | 000167a0 80 20 28 31 3c 3c 30 29 29 3e 30 0d 0b 84 23 20 |. (1<<0))>0...# | 000167b0 20 68 73 63 72 6f 6c 6c 25 3d 28 77 66 6c 61 67 | hscroll%=(wflag| 000167c0 73 25 20 80 20 28 31 3c 3c 33 29 29 3e 30 0d 0b |s% . (1<<3))>0..| 000167d0 85 23 20 20 76 73 63 72 6f 6c 6c 25 3d 28 77 66 |.# vscroll%=(wf| 000167e0 6c 61 67 73 25 20 80 20 28 31 3c 3c 32 29 29 3e |lags% . (1<<2))>| 000167f0 30 0d 0b 86 05 cd 0d 0b 87 12 73 6e 61 6d 65 24 |0.........sname$| 00016800 3d 22 53 77 69 6e 5f 22 0d 0b 88 19 e7 20 74 62 |="Swin_"..... tb| 00016810 61 72 25 20 8c 20 73 6e 61 6d 65 24 2b 3d 22 74 |ar% . sname$+="t| 00016820 22 0d 0b 89 1c e7 20 68 73 63 72 6f 6c 6c 25 20 |"..... hscroll% | 00016830 8c 20 73 6e 61 6d 65 24 2b 3d 22 68 22 0d 0b 8a |. sname$+="h"...| 00016840 1c e7 20 76 73 63 72 6f 6c 6c 25 20 8c 20 73 6e |.. vscroll% . sn| 00016850 61 6d 65 24 2b 3d 22 76 22 0d 0b 8b 19 e7 20 6f |ame$+="v"..... o| 00016860 70 65 6e 25 20 8c 20 73 6e 61 6d 65 24 2b 3d 22 |pen% . sname$+="| 00016870 6f 22 0d 0b 8c 0b 3d 73 6e 61 6d 65 24 0d 0b 8d |o"....=sname$...| 00016880 04 0d 0b 8e 18 dd 20 a4 6d 6f 64 65 76 61 72 28 |...... .modevar(| 00016890 6d 6f 64 65 25 2c 76 25 29 0d 0b 8f 0a ea 20 76 |mode%,v%)..... v| 000168a0 61 6c 25 0d 0b 90 2e c8 99 20 22 4f 53 5f 52 65 |al%...... "OS_Re| 000168b0 61 64 4d 6f 64 65 56 61 72 69 61 62 6c 65 22 2c |adModeVariable",| 000168c0 6d 6f 64 65 25 2c 76 25 20 b8 20 2c 2c 76 61 6c |mode%,v% . ,,val| 000168d0 25 0d 0b 91 09 3d 76 61 6c 25 0d 0b 92 04 0d 0b |%....=val%......| 000168e0 93 15 dd 20 f2 72 65 61 64 73 63 72 65 65 6e 76 |... .readscreenv| 000168f0 61 72 73 0d 0b 94 23 ea 20 78 65 69 67 25 2c 79 |ars...#. xeig%,y| 00016900 65 69 67 25 2c 78 70 69 78 65 6c 73 25 2c 79 70 |eig%,xpixels%,yp| 00016910 69 78 65 6c 73 25 0d 0b 95 18 78 65 69 67 25 3d |ixels%....xeig%=| 00016920 a4 6d 6f 64 65 76 61 72 28 2d 31 2c 34 29 0d 0b |.modevar(-1,4)..| 00016930 96 18 79 65 69 67 25 3d a4 6d 6f 64 65 76 61 72 |..yeig%=.modevar| 00016940 28 2d 31 2c 35 29 0d 0b 97 1c 78 70 69 78 65 6c |(-1,5)....xpixel| 00016950 73 25 3d a4 6d 6f 64 65 76 61 72 28 2d 31 2c 31 |s%=.modevar(-1,1| 00016960 31 29 0d 0b 98 1c 79 70 69 78 65 6c 73 25 3d a4 |1)....ypixels%=.| 00016970 6d 6f 64 65 76 61 72 28 2d 31 2c 31 32 29 0d 0b |modevar(-1,12)..| 00016980 99 39 50 69 78 54 6f 4f 53 5f 58 25 3d 31 3c 3c |.9PixToOS_X%=1<<| 00016990 78 65 69 67 25 20 3a 20 f4 20 23 20 4f 53 20 75 |xeig% : . # OS u| 000169a0 6e 69 74 73 20 74 68 61 74 20 31 20 70 69 78 65 |nits that 1 pixe| 000169b0 6c 20 74 61 6b 65 73 0d 0b 9a 17 50 69 78 54 6f |l takes....PixTo| 000169c0 4f 53 5f 59 25 3d 31 3c 3c 79 65 69 67 25 0d 0b |OS_Y%=1<<yeig%..| 000169d0 9b 45 53 63 72 65 65 6e 53 69 7a 65 5f 58 25 3d |.EScreenSize_X%=| 000169e0 28 78 70 69 78 65 6c 73 25 2b 31 29 2a 50 69 78 |(xpixels%+1)*Pix| 000169f0 54 6f 4f 53 5f 58 25 20 3a 20 f4 20 73 63 72 65 |ToOS_X% : . scre| 00016a00 65 6e 20 73 69 7a 65 20 69 6e 20 4f 53 20 75 6e |en size in OS un| 00016a10 69 74 73 0d 0b 9c 29 53 63 72 65 65 6e 53 69 7a |its...)ScreenSiz| 00016a20 65 5f 59 25 3d 28 79 70 69 78 65 6c 73 25 2b 31 |e_Y%=(ypixels%+1| 00016a30 29 2a 50 69 78 54 6f 4f 53 5f 59 25 0d 0b 9d 38 |)*PixToOS_Y%...8| 00016a40 f4 20 67 72 69 64 20 73 69 7a 65 20 6d 75 73 74 |. grid size must| 00016a50 20 62 65 20 6d 75 6c 74 69 70 6c 65 20 6f 66 20 | be multiple of | 00016a60 23 20 4f 53 20 75 6e 69 74 73 20 70 65 72 20 70 |# OS units per p| 00016a70 69 78 65 6c 0d 0b 9e 1e e7 20 47 72 69 64 5f 53 |ixel..... Grid_S| 00016a80 69 7a 65 58 25 3c 50 69 78 54 6f 4f 53 5f 58 25 |izeX%<PixToOS_X%| 00016a90 20 8c 0d 0b 9f 1c 20 20 47 72 69 64 5f 53 69 7a | ..... Grid_Siz| 00016aa0 65 58 25 3d 50 69 78 54 6f 4f 53 5f 58 25 0d 0b |eX%=PixToOS_X%..| 00016ab0 a0 05 cc 0d 0b a1 2d 20 20 47 72 69 64 5f 53 69 |......- Grid_Si| 00016ac0 7a 65 58 25 2d 3d 28 47 72 69 64 5f 53 69 7a 65 |zeX%-=(Grid_Size| 00016ad0 58 25 20 83 20 50 69 78 54 6f 4f 53 5f 58 25 29 |X% . PixToOS_X%)| 00016ae0 0d 0b a2 05 cd 0d 0b a3 1e e7 20 47 72 69 64 5f |.......... Grid_| 00016af0 53 69 7a 65 59 25 3c 50 69 78 54 6f 4f 53 5f 59 |SizeY%<PixToOS_Y| 00016b00 25 20 8c 0d 0b a4 1c 20 20 47 72 69 64 5f 53 69 |% ..... Grid_Si| 00016b10 7a 65 59 25 3d 50 69 78 54 6f 4f 53 5f 59 25 0d |zeY%=PixToOS_Y%.| 00016b20 0b a5 05 cc 0d 0b a6 2d 20 20 47 72 69 64 5f 53 |.......- Grid_S| 00016b30 69 7a 65 59 25 2d 3d 28 47 72 69 64 5f 53 69 7a |izeY%-=(Grid_Siz| 00016b40 65 59 25 20 83 20 50 69 78 54 6f 4f 53 5f 59 25 |eY% . PixToOS_Y%| 00016b50 29 0d 0b a7 05 cd 0d 0b a8 23 f2 73 65 74 69 63 |)........#.setic| 00016b60 6f 6e 74 65 78 74 28 32 38 2c c3 28 47 72 69 64 |ontext(28,.(Grid| 00016b70 5f 53 69 7a 65 58 25 29 29 0d 0b a9 23 f2 73 65 |_SizeX%))...#.se| 00016b80 74 69 63 6f 6e 74 65 78 74 28 32 39 2c c3 28 47 |ticontext(29,.(G| 00016b90 72 69 64 5f 53 69 7a 65 59 25 29 29 0d 0b aa 1d |rid_SizeY%))....| 00016ba0 e7 20 47 72 69 64 5f 50 6f 73 58 25 3c 50 69 78 |. Grid_PosX%<Pix| 00016bb0 54 6f 4f 53 5f 58 25 20 8c 0d 0b ab 1b 20 20 47 |ToOS_X% ..... G| 00016bc0 72 69 64 5f 50 6f 73 58 25 3d 50 69 78 54 6f 4f |rid_PosX%=PixToO| 00016bd0 53 5f 58 25 0d 0b ac 05 cc 0d 0b ad 2b 20 20 47 |S_X%........+ G| 00016be0 72 69 64 5f 50 6f 73 58 25 2d 3d 28 47 72 69 64 |rid_PosX%-=(Grid| 00016bf0 5f 50 6f 73 58 25 20 83 20 50 69 78 54 6f 4f 53 |_PosX% . PixToOS| 00016c00 5f 58 25 29 0d 0b ae 05 cd 0d 0b af 1d e7 20 47 |_X%).......... G| 00016c10 72 69 64 5f 50 6f 73 59 25 3c 50 69 78 54 6f 4f |rid_PosY%<PixToO| 00016c20 53 5f 59 25 20 8c 0d 0b b0 1b 20 20 47 72 69 64 |S_Y% ..... Grid| 00016c30 5f 50 6f 73 59 25 3d 50 69 78 54 6f 4f 53 5f 59 |_PosY%=PixToOS_Y| 00016c40 25 0d 0b b1 05 cc 0d 0b b2 2b 20 20 47 72 69 64 |%........+ Grid| 00016c50 5f 50 6f 73 59 25 2d 3d 28 47 72 69 64 5f 50 6f |_PosY%-=(Grid_Po| 00016c60 73 59 25 20 83 20 50 69 78 54 6f 4f 53 5f 59 25 |sY% . PixToOS_Y%| 00016c70 29 0d 0b b3 05 cd 0d 0b b4 22 f2 73 65 74 69 63 |)........".setic| 00016c80 6f 6e 74 65 78 74 28 33 30 2c c3 28 47 72 69 64 |ontext(30,.(Grid| 00016c90 5f 50 6f 73 58 25 29 29 0d 0b b5 22 f2 73 65 74 |_PosX%))...".set| 00016ca0 69 63 6f 6e 74 65 78 74 28 33 31 2c c3 28 47 72 |icontext(31,.(Gr| 00016cb0 69 64 5f 50 6f 73 59 25 29 29 0d 0b b6 36 54 65 |id_PosY%))...6Te| 00016cc0 6d 70 6c 57 5f 4d 61 78 43 6f 6c 25 3d 28 53 63 |mplW_MaxCol%=(Sc| 00016cd0 72 65 65 6e 53 69 7a 65 5f 58 25 2d 31 30 30 29 |reenSize_X%-100)| 00016ce0 20 81 20 54 65 6d 70 6c 57 5f 49 63 6f 6e 58 25 | . TemplW_IconX%| 00016cf0 0d 0b b7 05 e1 0d 0b b8 04 0d 0b b9 1e dd 20 f2 |.............. .| 00016d00 73 65 74 63 61 72 65 74 28 77 69 6e 64 6f 77 25 |setcaret(window%| 00016d10 2c 69 63 6f 6e 25 29 0d 0b ba 08 ea 20 6c 25 0d |,icon%)..... l%.| 00016d20 0b bb 10 e7 20 69 63 6f 6e 25 3e 3d 30 20 8c 0d |.... icon%>=0 ..| 00016d30 0b bc 19 20 20 53 63 72 61 70 42 6c 6b 25 21 30 |... ScrapBlk%!0| 00016d40 3d 77 69 6e 64 6f 77 25 0d 0b bd 17 20 20 53 63 |=window%.... Sc| 00016d50 72 61 70 42 6c 6b 25 21 34 3d 69 63 6f 6e 25 0d |rapBlk%!4=icon%.| 00016d60 0b be 27 20 20 c8 99 20 22 57 69 6d 70 5f 47 65 |..' .. "Wimp_Ge| 00016d70 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c 53 63 72 |tIconState",,Scr| 00016d80 61 70 42 6c 6b 25 0d 0b bf 1b 20 20 6c 25 3d a9 |apBlk%.... l%=.| 00016d90 28 24 28 53 63 72 61 70 42 6c 6b 25 21 32 38 29 |($(ScrapBlk%!28)| 00016da0 29 0d 0b c0 36 20 20 c8 99 20 22 57 69 6d 70 5f |)...6 .. "Wimp_| 00016db0 53 65 74 43 61 72 65 74 50 6f 73 69 74 69 6f 6e |SetCaretPosition| 00016dc0 22 2c 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 2c |",window%,icon%,| 00016dd0 2c 2c 2d 31 2c 6c 25 0d 0b c1 05 cc 0d 0b c2 17 |,,-1,l%.........| 00016de0 20 20 f4 20 69 6e 76 69 73 69 62 6c 65 20 63 61 | . invisible ca| 00016df0 72 65 74 0d 0b c3 35 20 20 c8 99 20 22 57 69 6d |ret...5 .. "Wim| 00016e00 70 5f 53 65 74 43 61 72 65 74 50 6f 73 69 74 69 |p_SetCaretPositi| 00016e10 6f 6e 22 2c 77 69 6e 64 6f 77 25 2c 2d 31 2c 30 |on",window%,-1,0| 00016e20 2c 30 2c 31 3c 3c 32 35 0d 0b c4 05 cd 0d 0b c5 |,0,1<<25........| 00016e30 05 e1 0d 0b c6 04 0d 0b c7 18 dd 20 f2 73 65 74 |........... .set| 00016e40 6d 6f 75 73 65 73 68 61 70 65 28 69 25 29 0d 0b |mouseshape(i%)..| 00016e50 c8 14 ea 20 6e 24 2c 78 6f 66 66 25 2c 79 6f 66 |... n$,xoff%,yof| 00016e60 66 25 0d 0b c9 0b c8 8e 20 69 25 20 ca 0d 0b ca |f%...... i% ....| 00016e70 23 20 20 c9 20 30 20 3a 20 f4 20 64 65 66 61 75 |# . 0 : . defau| 00016e80 6c 74 20 70 6f 69 6e 74 65 72 20 73 68 61 70 65 |lt pointer shape| 00016e90 0d 0b cb 18 20 20 20 20 6e 24 3d 22 70 74 72 5f |.... n$="ptr_| 00016ea0 64 65 66 61 75 6c 74 22 0d 0b cc 0f 20 20 20 20 |default".... | 00016eb0 78 6f 66 66 25 3d 30 0d 0b cd 0f 20 20 20 20 79 |xoff%=0.... y| 00016ec0 6f 66 66 25 3d 30 0d 0b ce 2b 20 20 c9 20 31 20 |off%=0...+ . 1 | 00016ed0 3a 20 f4 20 68 61 6e 64 20 70 6f 69 6e 74 65 72 |: . hand pointer| 00016ee0 20 66 6f 72 20 6d 6f 76 69 6e 67 20 69 63 6f 6e | for moving icon| 00016ef0 73 0d 0b cf 15 20 20 20 20 6e 24 3d 22 70 74 72 |s.... n$="ptr| 00016f00 5f 68 61 6e 64 22 0d 0b d0 0f 20 20 20 20 78 6f |_hand".... xo| 00016f10 66 66 25 3d 37 0d 0b d1 0f 20 20 20 20 79 6f 66 |ff%=7.... yof| 00016f20 66 25 3d 36 0d 0b d2 3b 20 20 c9 20 32 20 3a 20 |f%=6...; . 2 : | 00016f30 f4 20 70 6f 69 6e 74 65 72 20 66 6f 72 20 72 65 |. pointer for re| 00016f40 73 69 7a 69 6e 67 20 69 63 6f 6e 73 2c 20 64 72 |sizing icons, dr| 00016f50 61 67 67 69 6e 67 20 74 6f 70 20 73 69 64 65 0d |agging top side.| 00016f60 0b d3 16 20 20 20 20 6e 24 3d 22 70 74 72 5f 73 |... n$="ptr_s| 00016f70 69 7a 65 74 22 0d 0b d4 0f 20 20 20 20 78 6f 66 |izet".... xof| 00016f80 66 25 3d 37 0d 0b d5 0f 20 20 20 20 79 6f 66 66 |f%=7.... yoff| 00016f90 25 3d 36 0d 0b d6 3d 20 20 c9 20 33 20 3a 20 f4 |%=6...= . 3 : .| 00016fa0 20 70 6f 69 6e 74 65 72 20 66 6f 72 20 72 65 73 | pointer for res| 00016fb0 69 7a 69 6e 67 20 69 63 6f 6e 73 2c 20 64 72 61 |izing icons, dra| 00016fc0 67 67 69 6e 67 20 72 69 67 68 74 20 73 69 64 65 |gging right side| 00016fd0 0d 0b d7 16 20 20 20 20 6e 24 3d 22 70 74 72 5f |.... n$="ptr_| 00016fe0 73 69 7a 65 72 22 0d 0b d8 0f 20 20 20 20 78 6f |sizer".... xo| 00016ff0 66 66 25 3d 35 0d 0b d9 0f 20 20 20 20 79 6f 66 |ff%=5.... yof| 00017000 66 25 3d 35 0d 0b da 3e 20 20 c9 20 34 20 3a 20 |f%=5...> . 4 : | 00017010 f4 20 70 6f 69 6e 74 65 72 20 66 6f 72 20 72 65 |. pointer for re| 00017020 73 69 7a 69 6e 67 20 69 63 6f 6e 73 2c 20 64 72 |sizing icons, dr| 00017030 61 67 67 69 6e 67 20 62 6f 74 74 6f 6d 20 73 69 |agging bottom si| 00017040 64 65 0d 0b db 16 20 20 20 20 6e 24 3d 22 70 74 |de.... n$="pt| 00017050 72 5f 73 69 7a 65 62 22 0d 0b dc 0f 20 20 20 20 |r_sizeb".... | 00017060 78 6f 66 66 25 3d 37 0d 0b dd 0f 20 20 20 20 79 |xoff%=7.... y| 00017070 6f 66 66 25 3d 34 0d 0b de 3c 20 20 c9 20 35 20 |off%=4...< . 5 | 00017080 3a 20 f4 20 70 6f 69 6e 74 65 72 20 66 6f 72 20 |: . pointer for | 00017090 72 65 73 69 7a 69 6e 67 20 69 63 6f 6e 73 2c 20 |resizing icons, | 000170a0 64 72 61 67 67 69 6e 67 20 6c 65 66 74 20 73 69 |dragging left si| 000170b0 64 65 0d 0b df 16 20 20 20 20 6e 24 3d 22 70 74 |de.... n$="pt| 000170c0 72 5f 73 69 7a 65 6c 22 0d 0b e0 10 20 20 20 20 |r_sizel".... | 000170d0 78 6f 66 66 25 3d 31 30 0d 0b e1 0f 20 20 20 20 |xoff%=10.... | 000170e0 79 6f 66 66 25 3d 35 0d 0b e2 05 cb 0d 0b e3 1a |yoff%=5.........| 000170f0 4d 6f 75 73 65 5f 50 74 74 25 21 30 3d 26 30 33 |Mouse_Ptt%!0=&03| 00017100 30 32 30 31 30 30 0d 0b e4 0c e7 20 69 25 3d 30 |020100..... i%=0| 00017110 20 8c 0d 0b e5 3b 20 20 c8 99 20 22 57 69 6d 70 | ....; .. "Wimp| 00017120 5f 53 70 72 69 74 65 4f 70 22 2c 33 36 2c 2c 6e |_SpriteOp",36,,n| 00017130 24 2c 26 32 2c 78 6f 66 66 25 2c 79 6f 66 66 25 |$,&2,xoff%,yoff%| 00017140 2c 30 2c 4d 6f 75 73 65 5f 50 74 74 25 0d 0b e6 |,0,Mouse_Ptt%...| 00017150 05 cc 0d 0b e7 49 20 20 c8 99 20 22 4f 53 5f 53 |.....I .. "OS_S| 00017160 70 72 69 74 65 4f 70 22 2c 26 31 30 30 2b 33 36 |priteOp",&100+36| 00017170 2c 53 79 73 53 70 72 69 74 65 73 25 2c 6e 24 2c |,SysSprites%,n$,| 00017180 26 32 2c 78 6f 66 66 25 2c 79 6f 66 66 25 2c 30 |&2,xoff%,yoff%,0| 00017190 2c 4d 6f 75 73 65 5f 50 74 74 25 0d 0b e8 05 cd |,Mouse_Ptt%.....| 000171a0 0d 0b e9 12 4d 6f 75 73 65 53 68 61 70 65 25 3d |....MouseShape%=| 000171b0 69 25 0d 0b ea 05 e1 0d 0b eb 04 0d 0b ec 46 f4 |i%............F.| 000171c0 20 2d 2d 2d 20 72 65 2d 61 6c 6c 6f 63 61 74 65 | --- re-allocate| 000171d0 20 69 6e 64 69 72 65 63 74 65 64 20 69 63 6f 6e | indirected icon| 000171e0 20 64 61 74 61 20 61 6e 64 20 69 6e 63 72 65 61 | data and increa| 000171f0 73 65 20 66 6f 6e 74 20 63 6f 75 6e 74 20 2d 2d |se font count --| 00017200 2d 0d 0b ed 22 dd 20 f2 69 63 6f 6e 72 65 61 6c |-...". .iconreal| 00017210 6c 6f 63 28 66 6c 61 67 70 74 72 25 2c 64 61 74 |loc(flagptr%,dat| 00017220 61 25 29 0d 0b ee 17 ea 20 66 6c 61 67 73 25 2c |a%)..... flags%,| 00017230 73 24 2c 73 25 2c 6c 65 6e 25 0d 0b ef 15 66 6c |s$,s%,len%....fl| 00017240 61 67 73 25 3d 66 6c 61 67 70 74 72 25 21 30 0d |ags%=flagptr%!0.| 00017250 0b f0 1f e7 20 28 66 6c 61 67 73 25 20 80 20 26 |.... (flags% . &| 00017260 38 30 30 31 30 30 29 3d 26 31 30 30 20 8c 0d 0b |800100)=&100 ...| 00017270 f1 16 20 20 73 24 3d a4 73 74 72 28 64 61 74 61 |.. s$=.str(data| 00017280 25 21 30 29 0d 0b f2 3f 20 20 6c 65 6e 25 3d 64 |%!0)...? len%=d| 00017290 61 74 61 25 21 38 20 20 20 20 20 20 20 20 20 20 |ata%!8 | 000172a0 20 20 20 20 3a 20 f4 20 64 6f 6e 27 74 20 61 6c | : . don't al| 000172b0 6c 6f 63 61 74 65 20 61 63 74 75 61 6c 20 73 69 |locate actual si| 000172c0 7a 65 21 0d 0b f3 41 20 20 e7 20 6c 65 6e 25 3e |ze!...A . len%>| 000172d0 32 35 36 20 8c 20 6c 65 6e 25 3d 32 35 36 20 3a |256 . len%=256 :| 000172e0 20 f4 20 42 61 73 69 63 20 63 61 6e 27 74 20 68 | . Basic can't h| 000172f0 61 6e 64 6c 65 20 6c 6f 6e 67 65 72 20 73 74 72 |andle longer str| 00017300 69 6e 67 73 0d 0b f4 18 20 20 73 25 3d a4 68 65 |ings.... s%=.he| 00017310 61 70 5f 67 65 74 28 6c 65 6e 25 29 0d 0b f5 0e |ap_get(len%)....| 00017320 20 20 e7 20 73 25 3e 30 20 8c 0d 0b f6 19 20 20 | . s%>0 ..... | 00017330 20 20 24 28 73 25 29 3d c0 73 24 2c 6c 65 6e 25 | $(s%)=.s$,len%| 00017340 2d 31 29 0d 0b f7 12 20 20 20 20 64 61 74 61 25 |-1).... data%| 00017350 21 30 3d 73 25 0d 0b f8 28 20 20 20 20 e7 20 28 |!0=s%...( . (| 00017360 66 6c 61 67 73 25 20 80 20 31 29 20 80 20 28 64 |flags% . 1) . (d| 00017370 61 74 61 25 21 34 3c 3e 2d 31 29 20 8c 0d 0b f9 |ata%!4<>-1) ....| 00017380 29 20 20 20 20 20 20 f4 20 72 65 2d 61 6c 6c 6f |) . re-allo| 00017390 63 61 74 65 20 76 61 6c 69 64 61 74 69 6f 6e 20 |cate validation | 000173a0 73 74 72 69 6e 67 0d 0b fa 1a 20 20 20 20 20 20 |string.... | 000173b0 73 24 3d a4 73 74 72 28 64 61 74 61 25 21 34 29 |s$=.str(data%!4)| 000173c0 0d 0b fb 1d 20 20 20 20 20 20 73 25 3d a4 68 65 |.... s%=.he| 000173d0 61 70 5f 67 65 74 28 a9 73 24 2b 31 29 0d 0b fc |ap_get(.s$+1)...| 000173e0 12 20 20 20 20 20 20 e7 20 73 25 3e 30 20 8c 0d |. . s%>0 ..| 000173f0 0b fd 14 20 20 20 20 20 20 20 20 24 28 73 25 29 |... $(s%)| 00017400 3d 73 24 0d 0b fe 16 20 20 20 20 20 20 20 20 64 |=s$.... d| 00017410 61 74 61 25 21 34 3d 73 25 0d 0b ff 0b 20 20 20 |ata%!4=s%.... | 00017420 20 20 20 cc 0d 0c 00 16 20 20 20 20 20 20 20 20 | ..... | 00017430 64 61 74 61 25 21 34 3d 2d 31 0d 0c 01 0b 20 20 |data%!4=-1.... | 00017440 20 20 20 20 cd 0d 0c 02 09 20 20 20 20 cd 0d 0c | ..... ...| 00017450 03 07 20 20 cc 0d 0c 04 47 20 20 20 20 f4 20 61 |.. ....G . a| 00017460 6c 6c 6f 63 61 74 69 6f 6e 20 66 61 69 6c 65 64 |llocation failed| 00017470 20 2d 20 6d 61 6b 65 20 6e 6f 6e 2d 69 6e 64 69 | - make non-indi| 00017480 72 65 63 74 65 64 20 61 6e 64 20 73 74 6f 72 65 |rected and store| 00017490 20 66 69 72 73 74 20 63 68 61 72 73 0d 0c 05 2a | first chars...*| 000174a0 20 20 20 20 66 6c 61 67 70 74 72 25 21 30 3d 66 | flagptr%!0=f| 000174b0 6c 61 67 70 74 72 25 21 30 20 80 20 28 ac 20 28 |lagptr%!0 . (. (| 000174c0 31 3c 3c 38 29 29 0d 0c 06 16 20 20 20 20 24 64 |1<<8)).... $d| 000174d0 61 74 61 25 3d c0 73 24 2c 31 31 29 0d 0c 07 07 |ata%=.s$,11)....| 000174e0 20 20 cd 0d 0c 08 05 cd 0d 0c 09 1e e7 20 28 66 | ........... (f| 000174f0 6c 61 67 73 25 20 80 20 26 38 30 30 30 34 30 29 |lags% . &800040)| 00017500 3d 26 34 30 20 8c 0d 0c 0a 21 20 20 46 6f 6e 74 |=&40 ....! Font| 00017510 55 73 61 67 65 25 28 28 66 6c 61 67 73 25 29 3e |Usage%((flags%)>| 00017520 3e 32 34 29 2b 3d 31 0d 0c 0b 05 cd 0d 0c 0c 05 |>24)+=1.........| 00017530 e1 0d 0c 0d 04 0d 0c 0e 42 f4 20 2d 2d 2d 20 72 |........B. --- r| 00017540 65 6c 65 61 73 65 20 69 6e 64 69 72 65 63 74 65 |elease indirecte| 00017550 64 20 69 63 6f 6e 20 64 61 74 61 20 61 6e 64 20 |d icon data and | 00017560 64 65 63 72 65 61 73 65 20 66 6f 6e 74 20 63 6f |decrease font co| 00017570 75 6e 74 20 2d 2d 2d 0d 0c 0f 20 dd 20 f2 69 63 |unt ---... . .ic| 00017580 6f 6e 72 65 6c 65 61 73 65 28 66 6c 61 67 73 25 |onrelease(flags%| 00017590 2c 64 61 74 61 25 29 0d 0c 10 1f e7 20 28 66 6c |,data%)..... (fl| 000175a0 61 67 73 25 20 80 20 26 38 30 30 31 30 30 29 3d |ags% . &800100)=| 000175b0 26 31 30 30 20 8c 0d 0c 11 1c 20 20 f2 68 65 61 |&100 ..... .hea| 000175c0 70 5f 72 65 6c 65 61 73 65 28 64 61 74 61 25 21 |p_release(data%!| 000175d0 30 29 0d 0c 12 28 20 20 e7 20 28 66 6c 61 67 73 |0)...( . (flags| 000175e0 25 20 80 20 31 29 20 80 20 28 64 61 74 61 25 21 |% . 1) . (data%!| 000175f0 28 34 29 3c 3e 2d 31 29 20 8c 0d 0c 13 23 20 20 |(4)<>-1) ....# | 00017600 20 20 f4 20 72 65 6c 65 61 73 65 20 76 61 6c 69 | . release vali| 00017610 64 61 74 69 6f 6e 20 73 74 72 69 6e 67 0d 0c 14 |dation string...| 00017620 1e 20 20 20 20 f2 68 65 61 70 5f 72 65 6c 65 61 |. .heap_relea| 00017630 73 65 28 64 61 74 61 25 21 34 29 0d 0c 15 07 20 |se(data%!4).... | 00017640 20 cd 0d 0c 16 05 cd 0d 0c 17 1e e7 20 28 66 6c | ........... (fl| 00017650 61 67 73 25 20 80 20 26 38 30 30 30 34 30 29 3d |ags% . &800040)=| 00017660 26 34 30 20 8c 0d 0c 18 1c 20 20 f2 66 6f 6e 74 |&40 ..... .font| 00017670 5f 6c 6f 73 65 28 66 6c 61 67 73 25 3e 3e 32 34 |_lose(flags%>>24| 00017680 29 0d 0c 19 05 cd 0d 0c 1a 05 e1 0d 0c 1b 04 0d |)...............| 00017690 0c 1c 1b f4 20 2d 2d 2d 20 6f 70 65 6e 20 61 20 |.... --- open a | 000176a0 77 69 6e 64 6f 77 20 2d 2d 2d 0d 0c 1d 2b f4 20 |window ---...+. | 000176b0 20 20 20 20 20 20 70 6f 73 25 20 3d 20 30 20 2d | pos% = 0 -| 000176c0 3e 20 61 74 20 63 75 72 72 65 6e 74 20 70 6f 73 |> at current pos| 000176d0 69 74 69 6f 6e 0d 0c 1e 2a f4 20 20 20 20 20 20 |ition...*. | 000176e0 20 20 20 20 20 20 20 20 31 20 2d 3e 20 63 65 6e | 1 -> cen| 000176f0 74 65 72 65 64 20 74 6f 20 73 63 72 65 65 6e 0d |tered to screen.| 00017700 0c 1f 34 f4 20 20 20 20 20 20 20 20 20 20 20 20 |..4. | 00017710 20 20 32 20 2d 3e 20 63 65 6e 74 65 72 65 64 20 | 2 -> centered | 00017720 75 6e 6c 65 73 73 20 61 6c 72 65 61 64 79 20 6f |unless already o| 00017730 70 65 6e 0d 0c 20 3d f4 20 20 20 20 20 20 20 20 |pen.. =. | 00017740 20 20 20 20 20 20 33 20 2d 3e 20 69 6e 20 74 6f | 3 -> in to| 00017750 70 6c 65 66 74 20 63 6f 72 6e 65 72 20 75 6e 6c |pleft corner unl| 00017760 65 73 73 20 61 6c 72 65 61 64 79 20 6f 70 65 6e |ess already open| 00017770 0d 0c 21 3e f4 20 20 20 20 20 20 20 20 20 20 20 |..!>. | 00017780 20 20 20 34 20 2d 3e 20 69 6e 20 74 6f 70 72 69 | 4 -> in topri| 00017790 67 68 74 20 63 6f 72 6e 65 72 20 75 6e 6c 65 73 |ght corner unles| 000177a0 73 20 61 6c 72 65 61 64 79 20 6f 70 65 6e 0d 0c |s already open..| 000177b0 22 1f dd 20 f2 6f 70 65 6e 77 69 6e 64 6f 77 28 |".. .openwindow(| 000177c0 68 61 6e 64 6c 65 25 2c 70 6f 73 25 29 0d 0c 23 |handle%,pos%)..#| 000177d0 1e ea 20 6e 6f 74 6f 70 65 6e 25 2c 63 78 25 2c |.. notopen%,cx%,| 000177e0 63 79 25 2c 64 78 25 2c 64 79 25 0d 0c 24 17 53 |cy%,dx%,dy%..$.S| 000177f0 63 72 61 70 42 6c 6b 25 21 30 3d 68 61 6e 64 6c |crapBlk%!0=handl| 00017800 65 25 0d 0c 25 27 c8 99 20 22 57 69 6d 70 5f 47 |e%..%'.. "Wimp_G| 00017810 65 74 57 69 6e 64 6f 77 53 74 61 74 65 22 2c 2c |etWindowState",,| 00017820 53 63 72 61 70 42 6c 6b 25 0d 0c 26 29 6e 6f 74 |ScrapBlk%..&)not| 00017830 6f 70 65 6e 25 3d 28 28 53 63 72 61 70 42 6c 6b |open%=((ScrapBlk| 00017840 25 21 33 32 20 80 20 28 31 3c 3c 31 36 29 29 3d |%!32 . (1<<16))=| 00017850 30 29 0d 0c 27 09 64 78 25 3d 30 0d 0c 28 09 64 |0)..'.dx%=0..(.d| 00017860 79 25 3d 30 0d 0c 29 0d c8 8e 20 70 6f 73 25 20 |y%=0..)... pos% | 00017870 ca 0d 0c 2a 0b 20 20 c9 20 31 2c 32 0d 0c 2b 1f |...*. . 1,2..+.| 00017880 20 20 20 20 e7 20 28 70 6f 73 25 3d 31 29 20 84 | . (pos%=1) .| 00017890 20 6e 6f 74 6f 70 65 6e 25 20 8c 0d 0c 2c 23 20 | notopen% ...,# | 000178a0 20 20 20 20 20 f4 20 63 65 6e 74 65 72 20 77 69 | . center wi| 000178b0 6e 64 6f 77 20 74 6f 20 73 63 72 65 65 6e 0d 0c |ndow to screen..| 000178c0 2d 1f 20 20 20 20 20 20 63 78 25 3d 53 63 72 65 |-. cx%=Scre| 000178d0 65 6e 53 69 7a 65 5f 58 25 20 81 20 32 0d 0c 2e |enSize_X% . 2...| 000178e0 1f 20 20 20 20 20 20 63 79 25 3d 53 63 72 65 65 |. cy%=Scree| 000178f0 6e 53 69 7a 65 5f 59 25 20 81 20 32 0d 0c 2f 30 |nSize_Y% . 2../0| 00017900 20 20 20 20 20 20 64 78 25 3d 63 78 25 2d 28 53 | dx%=cx%-(S| 00017910 63 72 61 70 42 6c 6b 25 21 31 32 2b 53 63 72 61 |crapBlk%!12+Scra| 00017920 70 42 6c 6b 25 21 34 29 20 81 20 32 0d 0c 30 30 |pBlk%!4) . 2..00| 00017930 20 20 20 20 20 20 64 79 25 3d 63 79 25 2d 28 53 | dy%=cy%-(S| 00017940 63 72 61 70 42 6c 6b 25 21 31 36 2b 53 63 72 61 |crapBlk%!16+Scra| 00017950 70 42 6c 6b 25 21 38 29 20 81 20 32 0d 0c 31 09 |pBlk%!8) . 2..1.| 00017960 20 20 20 20 cd 0d 0c 32 09 20 20 c9 20 33 0d 0c | ...2. . 3..| 00017970 33 14 20 20 20 20 e7 20 6e 6f 74 6f 70 65 6e 25 |3. . notopen%| 00017980 20 8c 0d 0c 34 1a 20 20 20 20 20 20 64 78 25 3d | ...4. dx%=| 00017990 2d 53 63 72 61 70 42 6c 6b 25 21 34 0d 0c 35 28 |-ScrapBlk%!4..5(| 000179a0 20 20 20 20 20 20 64 79 25 3d 53 63 72 65 65 6e | dy%=Screen| 000179b0 53 69 7a 65 5f 59 25 2d 53 63 72 61 70 42 6c 6b |Size_Y%-ScrapBlk| 000179c0 25 21 31 36 0d 0c 36 09 20 20 20 20 cd 0d 0c 37 |%!16..6. ...7| 000179d0 09 20 20 c9 20 34 0d 0c 38 14 20 20 20 20 e7 20 |. . 4..8. . | 000179e0 6e 6f 74 6f 70 65 6e 25 20 8c 0d 0c 39 28 20 20 |notopen% ...9( | 000179f0 20 20 20 20 64 78 25 3d 53 63 72 65 65 6e 53 69 | dx%=ScreenSi| 00017a00 7a 65 5f 58 25 2d 53 63 72 61 70 42 6c 6b 25 21 |ze_X%-ScrapBlk%!| 00017a10 31 32 0d 0c 3a 28 20 20 20 20 20 20 64 79 25 3d |12..:( dy%=| 00017a20 53 63 72 65 65 6e 53 69 7a 65 5f 59 25 2d 53 63 |ScreenSize_Y%-Sc| 00017a30 72 61 70 42 6c 6b 25 21 31 36 0d 0c 3b 09 20 20 |rapBlk%!16..;. | 00017a40 20 20 cd 0d 0c 3c 05 cb 0d 0c 3d 1f 53 63 72 61 | ...<....=.Scra| 00017a50 70 42 6c 6b 25 21 34 3d 53 63 72 61 70 42 6c 6b |pBlk%!4=ScrapBlk| 00017a60 25 21 34 2b 64 78 25 0d 0c 3e 1f 53 63 72 61 70 |%!4+dx%..>.Scrap| 00017a70 42 6c 6b 25 21 38 3d 53 63 72 61 70 42 6c 6b 25 |Blk%!8=ScrapBlk%| 00017a80 21 38 2b 64 79 25 0d 0c 3f 21 53 63 72 61 70 42 |!8+dy%..?!ScrapB| 00017a90 6c 6b 25 21 31 32 3d 53 63 72 61 70 42 6c 6b 25 |lk%!12=ScrapBlk%| 00017aa0 21 31 32 2b 64 78 25 0d 0c 40 21 53 63 72 61 70 |!12+dx%..@!Scrap| 00017ab0 42 6c 6b 25 21 31 36 3d 53 63 72 61 70 42 6c 6b |Blk%!16=ScrapBlk| 00017ac0 25 21 31 36 2b 64 79 25 0d 0c 41 13 53 63 72 61 |%!16+dy%..A.Scra| 00017ad0 70 42 6c 6b 25 21 32 38 3d 2d 31 0d 0c 42 23 c8 |pBlk%!28=-1..B#.| 00017ae0 99 20 22 57 69 6d 70 5f 4f 70 65 6e 57 69 6e 64 |. "Wimp_OpenWind| 00017af0 6f 77 22 2c 2c 53 63 72 61 70 42 6c 6b 25 0d 0c |ow",,ScrapBlk%..| 00017b00 43 2e e7 20 68 61 6e 64 6c 65 25 3d 4f 70 74 69 |C.. handle%=Opti| 00017b10 6f 6e 73 57 25 20 8c 20 f2 6f 70 65 6e 70 61 6e |onsW% . .openpan| 00017b20 65 28 4f 70 74 50 61 6e 65 57 25 29 0d 0c 44 05 |e(OptPaneW%)..D.| 00017b30 e1 0d 0c 45 04 0d 0c 46 1b dd 20 f2 63 6c 6f 73 |...E...F.. .clos| 00017b40 65 77 69 6e 64 6f 77 28 68 61 6e 64 6c 65 25 29 |ewindow(handle%)| 00017b50 0d 0c 47 08 ea 20 69 25 0d 0c 48 17 53 63 72 61 |..G.. i%..H.Scra| 00017b60 70 42 6c 6b 25 21 30 3d 68 61 6e 64 6c 65 25 0d |pBlk%!0=handle%.| 00017b70 0c 49 24 c8 99 20 22 57 69 6d 70 5f 43 6c 6f 73 |.I$.. "Wimp_Clos| 00017b80 65 57 69 6e 64 6f 77 22 2c 2c 53 63 72 61 70 42 |eWindow",,ScrapB| 00017b90 6c 6b 25 0d 0c 4a 10 c8 8e 20 68 61 6e 64 6c 65 |lk%..J... handle| 00017ba0 25 20 ca 0d 0c 4b 0f 20 20 c9 20 54 65 6d 70 6c |% ...K. . Templ| 00017bb0 57 25 0d 0c 4c 1c 20 20 20 20 53 63 72 61 70 42 |W%..L. ScrapB| 00017bc0 6c 6b 25 21 30 3d 49 63 49 6e 66 6f 57 25 0d 0c |lk%!0=IcInfoW%..| 00017bd0 4d 28 20 20 20 20 c8 99 20 22 57 69 6d 70 5f 43 |M( .. "Wimp_C| 00017be0 6c 6f 73 65 57 69 6e 64 6f 77 22 2c 2c 53 63 72 |loseWindow",,Scr| 00017bf0 61 70 42 6c 6b 25 0d 0c 4e 1a 20 20 20 20 e7 20 |apBlk%..N. . | 00017c00 4e 72 54 65 6d 70 6c 61 74 65 73 25 3e 30 20 8c |NrTemplates%>0 .| 00017c10 0d 0c 4f 21 20 20 20 20 20 20 e3 20 69 25 3d 30 |..O! . i%=0| 00017c20 20 b8 20 4e 72 54 65 6d 70 6c 61 74 65 73 25 2d | . NrTemplates%-| 00017c30 31 0d 0c 50 1e 20 20 20 20 20 20 20 20 f2 63 6c |1..P. .cl| 00017c40 6f 73 65 74 65 6d 70 6c 61 74 65 28 69 25 29 0d |osetemplate(i%).| 00017c50 0c 51 0e 20 20 20 20 20 20 ed 20 69 25 0d 0c 52 |.Q. . i%..R| 00017c60 09 20 20 20 20 cd 0d 0c 53 11 20 20 c9 20 4f 70 |. ...S. . Op| 00017c70 74 69 6f 6e 73 57 25 0d 0c 54 1d 20 20 20 20 53 |tionsW%..T. S| 00017c80 63 72 61 70 42 6c 6b 25 21 30 3d 4f 70 74 50 61 |crapBlk%!0=OptPa| 00017c90 6e 65 57 25 0d 0c 55 28 20 20 20 20 c8 99 20 22 |neW%..U( .. "| 00017ca0 57 69 6d 70 5f 43 6c 6f 73 65 57 69 6e 64 6f 77 |Wimp_CloseWindow| 00017cb0 22 2c 2c 53 63 72 61 70 42 6c 6b 25 0d 0c 56 05 |",,ScrapBlk%..V.| 00017cc0 cb 0d 0c 57 05 e1 0d 0c 58 04 0d 0c 59 18 dd 20 |...W....X...Y.. | 00017cd0 f2 6f 70 65 6e 70 61 6e 65 28 68 61 6e 64 6c 65 |.openpane(handle| 00017ce0 25 29 0d 0c 5a 13 ea 20 62 65 68 69 6e 64 25 2c |%)..Z.. behind%,| 00017cf0 78 25 2c 79 25 0d 0c 5b 10 c8 8e 20 68 61 6e 64 |x%,y%..[... hand| 00017d00 6c 65 25 20 ca 0d 0c 5c 11 20 20 c9 20 4f 70 74 |le% ...\. . Opt| 00017d10 50 61 6e 65 57 25 0d 0c 5d 1d 20 20 20 20 53 63 |PaneW%..]. Sc| 00017d20 72 61 70 42 6c 6b 25 21 30 3d 4f 70 74 69 6f 6e |rapBlk%!0=Option| 00017d30 73 57 25 0d 0c 5e 40 20 20 20 20 78 25 3d 31 36 |sW%..^@ x%=16| 00017d40 20 20 3a 20 f4 20 64 69 73 74 61 6e 63 65 20 66 | : . distance f| 00017d50 72 6f 6d 20 74 6f 70 6c 65 66 74 20 63 6f 72 6e |rom topleft corn| 00017d60 65 72 20 6f 66 20 70 61 72 65 6e 74 20 77 69 6e |er of parent win| 00017d70 64 6f 77 0d 0c 5f 0e 20 20 20 20 79 25 3d 2d 31 |dow.._. y%=-1| 00017d80 36 0d 0c 60 05 cb 0d 0c 61 27 c8 99 20 22 57 69 |6..`....a'.. "Wi| 00017d90 6d 70 5f 47 65 74 57 69 6e 64 6f 77 53 74 61 74 |mp_GetWindowStat| 00017da0 65 22 2c 2c 53 63 72 61 70 42 6c 6b 25 0d 0c 62 |e",,ScrapBlk%..b| 00017db0 13 78 25 2b 3d 53 63 72 61 70 42 6c 6b 25 21 34 |.x%+=ScrapBlk%!4| 00017dc0 0d 0c 63 14 79 25 2b 3d 53 63 72 61 70 42 6c 6b |..c.y%+=ScrapBlk| 00017dd0 25 21 31 36 0d 0c 64 18 62 65 68 69 6e 64 25 3d |%!16..d.behind%=| 00017de0 53 63 72 61 70 42 6c 6b 25 21 32 38 0d 0c 65 17 |ScrapBlk%!28..e.| 00017df0 53 63 72 61 70 42 6c 6b 25 21 30 3d 68 61 6e 64 |ScrapBlk%!0=hand| 00017e00 6c 65 25 0d 0c 66 27 c8 99 20 22 57 69 6d 70 5f |le%..f'.. "Wimp_| 00017e10 47 65 74 57 69 6e 64 6f 77 53 74 61 74 65 22 2c |GetWindowState",| 00017e20 2c 53 63 72 61 70 42 6c 6b 25 0d 0c 67 2e 53 63 |,ScrapBlk%..g.Sc| 00017e30 72 61 70 42 6c 6b 25 21 31 32 3d 78 25 2b 28 53 |rapBlk%!12=x%+(S| 00017e40 63 72 61 70 42 6c 6b 25 21 31 32 2d 53 63 72 61 |crapBlk%!12-Scra| 00017e50 70 42 6c 6b 25 21 34 29 0d 0c 68 2d 53 63 72 61 |pBlk%!4)..h-Scra| 00017e60 70 42 6c 6b 25 21 38 3d 79 25 2d 28 53 63 72 61 |pBlk%!8=y%-(Scra| 00017e70 70 42 6c 6b 25 21 31 36 2d 53 63 72 61 70 42 6c |pBlk%!16-ScrapBl| 00017e80 6b 25 21 38 29 0d 0c 69 12 53 63 72 61 70 42 6c |k%!8)..i.ScrapBl| 00017e90 6b 25 21 34 3d 78 25 0d 0c 6a 13 53 63 72 61 70 |k%!4=x%..j.Scrap| 00017ea0 42 6c 6b 25 21 31 36 3d 79 25 0d 0c 6b 18 53 63 |Blk%!16=y%..k.Sc| 00017eb0 72 61 70 42 6c 6b 25 21 32 38 3d 62 65 68 69 6e |rapBlk%!28=behin| 00017ec0 64 25 0d 0c 6c 23 c8 99 20 22 57 69 6d 70 5f 4f |d%..l#.. "Wimp_O| 00017ed0 70 65 6e 57 69 6e 64 6f 77 22 2c 2c 53 63 72 61 |penWindow",,Scra| 00017ee0 70 42 6c 6b 25 0d 0c 6d 05 e1 0d 0c 6e 04 0d 0c |pBlk%..m....n...| 00017ef0 6f 18 dd 20 f2 6f 70 65 6e 74 65 6d 70 6c 61 74 |o.. .opentemplat| 00017f00 65 28 6e 6f 25 29 0d 0c 70 0e e7 20 6e 6f 25 3e |e(no%)..p.. no%>| 00017f10 3d 30 20 8c 0d 0c 71 23 20 20 53 63 72 61 70 42 |=0 ...q# ScrapB| 00017f20 6c 6b 25 21 30 3d 54 65 6d 70 6c 48 61 6e 64 6c |lk%!0=TemplHandl| 00017f30 65 25 28 6e 6f 25 29 0d 0c 72 29 20 20 c8 99 20 |e%(no%)..r) .. | 00017f40 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 53 |"Wimp_GetWindowS| 00017f50 74 61 74 65 22 2c 2c 53 63 72 61 70 42 6c 6b 25 |tate",,ScrapBlk%| 00017f60 0d 0c 73 24 20 20 e7 20 28 53 63 72 61 70 42 6c |..s$ . (ScrapBl| 00017f70 6b 25 21 33 32 20 80 20 28 31 3c 3c 31 36 29 29 |k%!32 . (1<<16))| 00017f80 3d 30 20 8c 0d 0c 74 17 20 20 20 20 53 63 72 61 |=0 ...t. Scra| 00017f90 70 42 6c 6b 25 21 32 38 3d 2d 31 0d 0c 75 27 20 |pBlk%!28=-1..u' | 00017fa0 20 20 20 c8 99 20 22 57 69 6d 70 5f 4f 70 65 6e | .. "Wimp_Open| 00017fb0 57 69 6e 64 6f 77 22 2c 2c 53 63 72 61 70 42 6c |Window",,ScrapBl| 00017fc0 6b 25 0d 0c 76 3c 20 20 20 20 24 28 54 65 6d 70 |k%..v< $(Temp| 00017fd0 6c 4e 61 6d 65 73 25 2b 32 38 2a 6e 6f 25 2b 31 |lNames%+28*no%+1| 00017fe0 34 29 3d a4 77 69 6e 64 6f 77 69 63 6f 6e 28 53 |4)=.windowicon(S| 00017ff0 63 72 61 70 42 6c 6b 25 21 33 32 2c 31 29 0d 0c |crapBlk%!32,1)..| 00018000 77 27 20 20 20 20 f2 73 65 74 69 63 6f 6e 73 74 |w' .seticonst| 00018010 61 74 65 30 28 54 65 6d 70 6c 57 25 2c 6e 6f 25 |ate0(TemplW%,no%| 00018020 2c 30 2c 30 29 0d 0c 78 38 20 20 20 20 e7 20 54 |,0,0)..x8 . T| 00018030 65 6d 70 6c 61 74 65 73 4f 70 65 6e 25 3d 30 20 |emplatesOpen%=0 | 00018040 8c 20 50 6f 6c 6c 4d 61 73 6b 25 3d 50 6f 6c 6c |. PollMask%=Poll| 00018050 4d 61 73 6b 25 20 80 20 28 ac 20 31 29 0d 0c 79 |Mask% . (. 1)..y| 00018060 19 20 20 20 20 54 65 6d 70 6c 61 74 65 73 4f 70 |. TemplatesOp| 00018070 65 6e 25 2b 3d 31 0d 0c 7a 27 20 20 20 20 f2 73 |en%+=1..z' .s| 00018080 65 74 63 61 72 65 74 28 54 65 6d 70 6c 48 61 6e |etcaret(TemplHan| 00018090 64 6c 65 25 28 6e 6f 25 29 2c 2d 31 29 0d 0c 7b |dle%(no%),-1)..{| 000180a0 07 20 20 cd 0d 0c 7c 05 cd 0d 0c 7d 05 e1 0d 0c |. ...|....}....| 000180b0 7e 04 0d 0c 7f 19 dd 20 f2 63 6c 6f 73 65 74 65 |~...... .closete| 000180c0 6d 70 6c 61 74 65 28 6e 6f 25 29 0d 0c 80 0e e7 |mplate(no%).....| 000180d0 20 6e 6f 25 3e 3d 30 20 8c 0d 0c 81 23 20 20 53 | no%>=0 ....# S| 000180e0 63 72 61 70 42 6c 6b 25 21 30 3d 54 65 6d 70 6c |crapBlk%!0=Templ| 000180f0 48 61 6e 64 6c 65 25 28 6e 6f 25 29 0d 0c 82 29 |Handle%(no%)...)| 00018100 20 20 c8 99 20 22 57 69 6d 70 5f 47 65 74 57 69 | .. "Wimp_GetWi| 00018110 6e 64 6f 77 53 74 61 74 65 22 2c 2c 53 63 72 61 |ndowState",,Scra| 00018120 70 42 6c 6b 25 0d 0c 83 24 20 20 e7 20 28 53 63 |pBlk%...$ . (Sc| 00018130 72 61 70 42 6c 6b 25 21 33 32 20 80 20 28 31 3c |rapBlk%!32 . (1<| 00018140 3c 31 36 29 29 3e 30 20 8c 0d 0c 84 28 20 20 20 |<16))>0 ....( | 00018150 20 c8 99 20 22 57 69 6d 70 5f 43 6c 6f 73 65 57 | .. "Wimp_CloseW| 00018160 69 6e 64 6f 77 22 2c 2c 53 63 72 61 70 42 6c 6b |indow",,ScrapBlk| 00018170 25 0d 0c 85 2b 20 20 20 20 c8 99 20 22 57 69 6d |%...+ .. "Wim| 00018180 70 5f 47 65 74 57 69 6e 64 6f 77 53 74 61 74 65 |p_GetWindowState| 00018190 22 2c 2c 53 63 72 61 70 42 6c 6b 25 0d 0c 86 3c |",,ScrapBlk%...<| 000181a0 20 20 20 20 24 28 54 65 6d 70 6c 4e 61 6d 65 73 | $(TemplNames| 000181b0 25 2b 32 38 2a 6e 6f 25 2b 31 34 29 3d a4 77 69 |%+28*no%+14)=.wi| 000181c0 6e 64 6f 77 69 63 6f 6e 28 53 63 72 61 70 42 6c |ndowicon(ScrapBl| 000181d0 6b 25 21 33 32 2c 30 29 0d 0c 87 27 20 20 20 20 |k%!32,0)...' | 000181e0 f2 73 65 74 69 63 6f 6e 73 74 61 74 65 30 28 54 |.seticonstate0(T| 000181f0 65 6d 70 6c 57 25 2c 6e 6f 25 2c 30 2c 30 29 0d |emplW%,no%,0,0).| 00018200 0c 88 3c 20 20 20 20 e7 20 54 65 6d 70 6c 48 61 |..< . TemplHa| 00018210 6e 64 6c 65 25 28 6e 6f 25 29 3d 49 63 45 64 5f |ndle%(no%)=IcEd_| 00018220 57 69 6e 25 20 8c 20 f2 63 6c 6f 73 65 77 69 6e |Win% . .closewin| 00018230 64 6f 77 28 49 63 45 64 57 25 29 0d 0c 89 3e 20 |dow(IcEdW%)...> | 00018240 20 20 20 e7 20 54 65 6d 70 6c 48 61 6e 64 6c 65 | . TemplHandle| 00018250 25 28 6e 6f 25 29 3d 57 69 6e 45 64 5f 57 69 6e |%(no%)=WinEd_Win| 00018260 25 20 8c 20 f2 63 6c 6f 73 65 77 69 6e 64 6f 77 |% . .closewindow| 00018270 28 57 69 6e 45 64 57 25 29 0d 0c 8a 19 20 20 20 |(WinEdW%).... | 00018280 20 54 65 6d 70 6c 61 74 65 73 4f 70 65 6e 25 2d | TemplatesOpen%-| 00018290 3d 31 0d 0c 8b 34 20 20 20 20 e7 20 54 65 6d 70 |=1...4 . Temp| 000182a0 6c 61 74 65 73 4f 70 65 6e 25 3d 30 20 8c 20 50 |latesOpen%=0 . P| 000182b0 6f 6c 6c 4d 61 73 6b 25 3d 50 6f 6c 6c 4d 61 73 |ollMask%=PollMas| 000182c0 6b 25 20 84 20 31 0d 0c 8c 07 20 20 cd 0d 0c 8d |k% . 1.... ....| 000182d0 05 cd 0d 0c 8e 05 e1 0d 0c 8f 04 0d 0c 90 29 f4 |..............).| 000182e0 20 2d 2d 2d 20 63 6f 6e 76 65 72 74 20 73 74 72 | --- convert str| 000182f0 69 6e 67 20 74 6f 20 75 70 70 65 72 63 61 73 65 |ing to uppercase| 00018300 20 2d 2d 2d 0d 0c 91 11 dd 20 a4 75 70 63 61 73 | ---..... .upcas| 00018310 65 28 73 24 29 0d 0c 92 08 ea 20 69 25 0d 0c 93 |e(s$)..... i%...| 00018320 12 e3 20 69 25 3d 31 20 b8 20 a9 28 73 24 29 0d |.. i%=1 . .(s$).| 00018330 0c 94 15 20 20 61 25 3d 97 28 c1 73 24 2c 69 25 |... a%=.(.s$,i%| 00018340 2c 31 29 29 0d 0c 95 1c 20 20 e7 20 28 61 25 3e |,1)).... . (a%>| 00018350 3d 39 37 29 80 28 61 25 3c 3d 31 32 32 29 20 8c |=97).(a%<=122) .| 00018360 0d 0c 96 1a 20 20 20 20 c1 73 24 2c 69 25 2c 31 |.... .s$,i%,1| 00018370 29 3d bd 28 61 25 2d 33 32 29 0d 0c 97 07 20 20 |)=.(a%-32).... | 00018380 cd 0d 0c 98 08 ed 20 69 25 0d 0c 99 07 3d 73 24 |...... i%....=s$| 00018390 0d 0c 9a 04 0d 0c 9b 31 f4 20 2d 2d 2d 20 73 70 |.......1. --- sp| 000183a0 6c 69 74 20 6f 66 66 20 6c 65 61 66 20 6e 61 6d |lit off leaf nam| 000183b0 65 20 66 72 6f 6d 20 61 20 66 69 6c 65 6e 61 6d |e from a filenam| 000183c0 65 20 2d 2d 2d 0d 0c 9c 13 dd 20 a4 6c 65 61 66 |e ---..... .leaf| 000183d0 6e 61 6d 65 28 66 24 29 0d 0c 9d 0b ea 20 70 25 |name(f$)..... p%| 000183e0 2c 71 25 0d 0c 9e 08 71 25 3d 30 0d 0c 9f 05 f5 |,q%....q%=0.....| 000183f0 0d 0c a0 0d 20 20 70 25 3d 71 25 2b 31 0d 0c a1 |.... p%=q%+1...| 00018400 14 20 20 71 25 3d a7 66 24 2c 22 2e 22 2c 70 25 |. q%=.f$,".",p%| 00018410 29 0d 0c a2 0a fd 20 71 25 3d 30 0d 0c a3 0c 3d |)..... q%=0....=| 00018420 c1 66 24 2c 70 25 29 0d 0c a4 04 0d 0c a5 36 f4 |.f$,p%).......6.| 00018430 20 2d 2d 2d 20 73 70 6c 69 74 20 6f 66 66 20 64 | --- split off d| 00018440 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 20 66 72 |irectory name fr| 00018450 6f 6d 20 61 20 66 69 6c 65 6e 61 6d 65 20 2d 2d |om a filename --| 00018460 2d 0d 0c a6 12 dd 20 a4 64 69 72 6e 61 6d 65 28 |-..... .dirname(| 00018470 66 24 29 0d 0c a7 0b ea 20 70 25 2c 71 25 0d 0c |f$)..... p%,q%..| 00018480 a8 08 70 25 3d 31 0d 0c a9 05 f5 0d 0c aa 13 20 |..p%=1......... | 00018490 71 25 3d a7 66 24 2c 22 2e 22 2c 70 25 29 0d 0c |q%=.f$,".",p%)..| 000184a0 ab 17 20 e7 20 71 25 20 3e 20 30 20 8c 20 70 25 |.. . q% > 0 . p%| 000184b0 3d 71 25 2b 31 0d 0c ac 0a fd 20 71 25 3d 30 0d |=q%+1..... q%=0.| 000184c0 0c ad 0e 3d c0 66 24 2c 70 25 2d 32 29 0d 0c ae |...=.f$,p%-2)...| 000184d0 04 0d 0c af 44 f4 20 2d 2d 2d 20 67 65 74 20 74 |....D. --- get t| 000184e0 68 65 20 63 6f 6e 74 72 6f 6c 2d 74 65 72 6d 69 |he control-termi| 000184f0 6e 61 74 65 64 20 73 74 72 69 6e 67 20 61 74 20 |nated string at | 00018500 74 68 65 20 67 69 76 65 6e 20 61 64 64 72 65 73 |the given addres| 00018510 73 20 2d 2d 2d 0d 0c b0 0e dd 20 a4 73 74 72 28 |s ---..... .str(| 00018520 73 25 29 0d 0c b1 0b ea 20 69 25 2c 6e 24 0d 0c |s%)..... i%,n$..| 00018530 b2 08 69 25 3d 30 0d 0c b3 1d c8 95 20 28 73 25 |..i%=0...... (s%| 00018540 3f 69 25 3e 3d 33 32 29 20 80 20 28 69 25 3c 32 |?i%>=32) . (i%<2| 00018550 35 35 29 0d 0c b4 12 20 20 6e 24 2b 3d bd 28 73 |55).... n$+=.(s| 00018560 25 3f 69 25 29 0d 0c b5 0b 20 20 69 25 2b 3d 31 |%?i%).... i%+=1| 00018570 0d 0c b6 05 ce 0d 0c b7 07 3d 6e 24 0d 0c b8 04 |.........=n$....| 00018580 0d 0c b9 15 dd 20 a4 66 69 6c 65 65 78 69 73 74 |..... .fileexist| 00018590 73 28 66 24 29 0d 0c ba 0b ea 20 74 79 70 65 25 |s(f$)..... type%| 000185a0 0d 0c bb 0b 74 79 70 65 25 3d 30 0d 0c bc 0f e7 |....type%=0.....| 000185b0 20 a9 28 66 24 29 3e 30 20 8c 0d 0c bd 20 20 20 | .(f$)>0 .... | 000185c0 c8 99 20 22 4f 53 5f 46 69 6c 65 22 2c 31 37 2c |.. "OS_File",17,| 000185d0 66 24 20 b8 20 74 79 70 65 25 0d 0c be 05 cd 0d |f$ . type%......| 000185e0 0c bf 0e 3d 28 74 79 70 65 25 3d 31 29 0d 0c c0 |...=(type%=1)...| 000185f0 04 0d 0c c1 31 f4 20 2d 2d 2d 20 73 65 74 20 69 |....1. --- set i| 00018600 63 6f 6e 20 73 74 61 74 65 20 69 6e 20 61 20 74 |con state in a t| 00018610 65 6d 70 6c 61 74 65 20 77 69 6e 64 6f 77 20 2d |emplate window -| 00018620 2d 2d 0d 0c c2 2c dd 20 f2 73 65 74 69 63 6f 6e |--...,. .seticon| 00018630 73 74 61 74 65 28 77 69 6e 64 6f 77 25 2c 69 63 |state(window%,ic| 00018640 6f 6e 25 2c 65 6f 72 25 2c 63 6c 72 25 29 0d 0c |on%,eor%,clr%)..| 00018650 c3 19 ea 20 6f 6c 64 66 6c 61 67 73 25 2c 6e 65 |... oldflags%,ne| 00018660 77 66 6c 61 67 73 25 0d 0c c4 17 53 63 72 61 70 |wflags%....Scrap| 00018670 42 6c 6b 25 21 30 3d 77 69 6e 64 6f 77 25 0d 0c |Blk%!0=window%..| 00018680 c5 15 53 63 72 61 70 42 6c 6b 25 21 34 3d 69 63 |..ScrapBlk%!4=ic| 00018690 6f 6e 25 0d 0c c6 25 f4 20 63 68 65 63 6b 20 69 |on%...%. check i| 000186a0 66 20 66 6f 6e 74 20 75 73 61 67 65 20 69 73 20 |f font usage is | 000186b0 63 68 61 6e 67 69 6e 67 0d 0c c7 25 c8 99 20 22 |changing...%.. "| 000186c0 57 69 6d 70 5f 47 65 74 49 63 6f 6e 53 74 61 74 |Wimp_GetIconStat| 000186d0 65 22 2c 2c 53 63 72 61 70 42 6c 6b 25 0d 0c c8 |e",,ScrapBlk%...| 000186e0 1a 6f 6c 64 66 6c 61 67 73 25 3d 53 63 72 61 70 |.oldflags%=Scrap| 000186f0 42 6c 6b 25 21 32 34 0d 0c c9 29 6e 65 77 66 6c |Blk%!24...)newfl| 00018700 61 67 73 25 3d 28 6f 6c 64 66 6c 61 67 73 25 20 |ags%=(oldflags% | 00018710 80 20 ac 20 63 6c 72 25 29 20 82 20 65 6f 72 25 |. . clr%) . eor%| 00018720 0d 0c ca 21 e7 20 28 6e 65 77 66 6c 61 67 73 25 |...!. (newflags%| 00018730 20 80 20 26 38 30 30 30 34 30 29 3d 26 34 30 20 | . &800040)=&40 | 00018740 8c 0d 0c cb 22 20 20 46 6f 6e 74 55 73 61 67 65 |...." FontUsage| 00018750 25 28 6e 65 77 66 6c 61 67 73 25 3e 3e 32 34 29 |%(newflags%>>24)| 00018760 2b 3d 31 0d 0c cc 05 cd 0d 0c cd 21 e7 20 28 6f |+=1........!. (o| 00018770 6c 64 66 6c 61 67 73 25 20 80 20 26 38 30 30 30 |ldflags% . &8000| 00018780 34 30 29 3d 26 34 30 20 8c 0d 0c ce 1f 20 20 f2 |40)=&40 ..... .| 00018790 66 6f 6e 74 5f 6c 6f 73 65 28 6f 6c 64 66 6c 61 |font_lose(oldfla| 000187a0 67 73 25 3e 3e 32 34 29 0d 0c cf 05 cd 0d 0c d0 |gs%>>24)........| 000187b0 14 53 63 72 61 70 42 6c 6b 25 21 38 3d 65 6f 72 |.ScrapBlk%!8=eor| 000187c0 25 0d 0c d1 15 53 63 72 61 70 42 6c 6b 25 21 31 |%....ScrapBlk%!1| 000187d0 32 3d 63 6c 72 25 0d 0c d2 13 e7 20 53 75 70 70 |2=clr%..... Supp| 000187e0 6f 72 74 41 45 48 25 20 8c 0d 0c d3 25 20 c8 99 |ortAEH% ....% ..| 000187f0 20 22 41 45 48 5f 53 65 74 49 63 6f 6e 53 74 61 | "AEH_SetIconSta| 00018800 74 65 22 2c 2c 53 63 72 61 70 42 6c 6b 25 0d 0c |te",,ScrapBlk%..| 00018810 d4 05 cc 0d 0c d5 26 20 c8 99 20 22 57 69 6d 70 |......& .. "Wimp| 00018820 5f 53 65 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c |_SetIconState",,| 00018830 53 63 72 61 70 42 6c 6b 25 0d 0c d6 05 cd 0d 0c |ScrapBlk%.......| 00018840 d7 05 e1 0d 0c d8 04 0d 0c d9 3c f4 20 2d 2d 2d |..........<. ---| 00018850 20 73 65 74 20 69 63 6f 6e 20 73 74 61 74 65 20 | set icon state | 00018860 69 6e 20 6f 6e 65 20 6f 66 20 54 65 6d 70 6c 45 |in one of TemplE| 00018870 64 27 73 20 6f 77 6e 20 77 69 6e 64 6f 77 73 20 |d's own windows | 00018880 2d 2d 2d 0d 0c da 2d dd 20 f2 73 65 74 69 63 6f |---...-. .setico| 00018890 6e 73 74 61 74 65 30 28 77 69 6e 64 6f 77 25 2c |nstate0(window%,| 000188a0 69 63 6f 6e 25 2c 65 6f 72 25 2c 63 6c 72 25 29 |icon%,eor%,clr%)| 000188b0 0d 0c db 19 ea 20 6f 6c 64 66 6c 61 67 73 25 2c |..... oldflags%,| 000188c0 6e 65 77 66 6c 61 67 73 25 0d 0c dc 17 53 63 72 |newflags%....Scr| 000188d0 61 70 42 6c 6b 25 21 30 3d 77 69 6e 64 6f 77 25 |apBlk%!0=window%| 000188e0 0d 0c dd 15 53 63 72 61 70 42 6c 6b 25 21 34 3d |....ScrapBlk%!4=| 000188f0 69 63 6f 6e 25 0d 0c de 14 53 63 72 61 70 42 6c |icon%....ScrapBl| 00018900 6b 25 21 38 3d 65 6f 72 25 0d 0c df 15 53 63 72 |k%!8=eor%....Scr| 00018910 61 70 42 6c 6b 25 21 31 32 3d 63 6c 72 25 0d 0c |apBlk%!12=clr%..| 00018920 e0 25 c8 99 20 22 57 69 6d 70 5f 53 65 74 49 63 |.%.. "Wimp_SetIc| 00018930 6f 6e 53 74 61 74 65 22 2c 2c 53 63 72 61 70 42 |onState",,ScrapB| 00018940 6c 6b 25 0d 0c e1 05 e1 0d 0c e2 04 0d 0c e3 23 |lk%............#| 00018950 dd 20 f2 73 65 6c 65 63 74 69 63 6f 6e 28 77 69 |. .selecticon(wi| 00018960 6e 64 6f 77 25 2c 69 63 6f 6e 25 2c 66 25 29 0d |ndow%,icon%,f%).| 00018970 0c e4 0e ea 20 6f 6c 64 66 6c 61 67 25 0d 0c e5 |.... oldflag%...| 00018980 17 53 63 72 61 70 42 6c 6b 25 21 30 3d 77 69 6e |.ScrapBlk%!0=win| 00018990 64 6f 77 25 0d 0c e6 15 53 63 72 61 70 42 6c 6b |dow%....ScrapBlk| 000189a0 25 21 34 3d 69 63 6f 6e 25 0d 0c e7 25 c8 99 20 |%!4=icon%...%.. | 000189b0 22 57 69 6d 70 5f 47 65 74 49 63 6f 6e 53 74 61 |"Wimp_GetIconSta| 000189c0 74 65 22 2c 2c 53 63 72 61 70 42 6c 6b 25 0d 0c |te",,ScrapBlk%..| 000189d0 e8 25 6f 6c 64 66 6c 61 67 25 3d 28 53 63 72 61 |.%oldflag%=(Scra| 000189e0 70 42 6c 6b 25 21 32 34 29 20 80 20 28 31 3c 3c |pBlk%!24) . (1<<| 000189f0 32 31 29 0d 0c e9 0a e7 20 66 25 20 8c 0d 0c ea |21)..... f% ....| 00018a00 17 20 20 53 63 72 61 70 42 6c 6b 25 21 38 3d 31 |. ScrapBlk%!8=1| 00018a10 3c 3c 32 31 0d 0c eb 05 cc 0d 0c ec 13 20 20 53 |<<21......... S| 00018a20 63 72 61 70 42 6c 6b 25 21 38 3d 30 0d 0c ed 05 |crapBlk%!8=0....| 00018a30 cd 0d 0c ee 16 53 63 72 61 70 42 6c 6b 25 21 31 |.....ScrapBlk%!1| 00018a40 32 3d 31 3c 3c 32 31 0d 0c ef 1d e7 20 6f 6c 64 |2=1<<21..... old| 00018a50 66 6c 61 67 25 3c 3e 53 63 72 61 70 42 6c 6b 25 |flag%<>ScrapBlk%| 00018a60 21 38 20 8c 0d 0c f0 1e 20 20 f4 20 6f 6e 6c 79 |!8 ..... . only| 00018a70 20 73 65 74 20 77 68 65 6e 20 63 68 61 6e 67 69 | set when changi| 00018a80 6e 67 0d 0c f1 15 20 20 e7 20 53 75 70 70 6f 72 |ng.... . Suppor| 00018a90 74 41 45 48 25 20 8c 0d 0c f2 27 20 20 20 c8 99 |tAEH% ....' ..| 00018aa0 20 22 41 45 48 5f 53 65 74 49 63 6f 6e 53 74 61 | "AEH_SetIconSta| 00018ab0 74 65 22 2c 2c 53 63 72 61 70 42 6c 6b 25 0d 0c |te",,ScrapBlk%..| 00018ac0 f3 07 20 20 cc 0d 0c f4 28 20 20 20 c8 99 20 22 |.. ....( .. "| 00018ad0 57 69 6d 70 5f 53 65 74 49 63 6f 6e 53 74 61 74 |Wimp_SetIconStat| 00018ae0 65 22 2c 2c 53 63 72 61 70 42 6c 6b 25 0d 0c f5 |e",,ScrapBlk%...| 00018af0 07 20 20 cd 0d 0c f6 05 cd 0d 0c f7 05 e1 0d 0c |. .............| 00018b00 f8 04 0d 0c f9 22 dd 20 a4 69 63 6f 6e 73 65 6c |.....". .iconsel| 00018b10 65 63 74 65 64 28 77 69 6e 64 6f 77 25 2c 69 63 |ected(window%,ic| 00018b20 6f 6e 25 29 0d 0c fa 17 53 63 72 61 70 42 6c 6b |on%)....ScrapBlk| 00018b30 25 21 30 3d 77 69 6e 64 6f 77 25 0d 0c fb 15 53 |%!0=window%....S| 00018b40 63 72 61 70 42 6c 6b 25 21 34 3d 69 63 6f 6e 25 |crapBlk%!4=icon%| 00018b50 0d 0c fc 25 c8 99 20 22 57 69 6d 70 5f 47 65 74 |...%.. "Wimp_Get| 00018b60 49 63 6f 6e 53 74 61 74 65 22 2c 2c 53 63 72 61 |IconState",,Scra| 00018b70 70 42 6c 6b 25 0d 0c fd 23 3d 28 28 53 63 72 61 |pBlk%...#=((Scra| 00018b80 70 42 6c 6b 25 21 32 34 29 20 80 20 28 31 3c 3c |pBlk%!24) . (1<<| 00018b90 32 31 29 29 20 3e 20 30 0d 0c fe 04 0d 0c ff 22 |21)) > 0......."| 00018ba0 dd 20 f2 73 68 61 64 65 69 63 6f 6e 28 77 69 6e |. .shadeicon(win| 00018bb0 64 6f 77 25 2c 69 63 6f 6e 25 2c 66 25 29 0d 0d |dow%,icon%,f%)..| 00018bc0 00 0e ea 20 6f 6c 64 66 6c 61 67 25 0d 0d 01 17 |... oldflag%....| 00018bd0 53 63 72 61 70 42 6c 6b 25 21 30 3d 77 69 6e 64 |ScrapBlk%!0=wind| 00018be0 6f 77 25 0d 0d 02 15 53 63 72 61 70 42 6c 6b 25 |ow%....ScrapBlk%| 00018bf0 21 34 3d 69 63 6f 6e 25 0d 0d 03 25 c8 99 20 22 |!4=icon%...%.. "| 00018c00 57 69 6d 70 5f 47 65 74 49 63 6f 6e 53 74 61 74 |Wimp_GetIconStat| 00018c10 65 22 2c 2c 53 63 72 61 70 42 6c 6b 25 0d 0d 04 |e",,ScrapBlk%...| 00018c20 25 6f 6c 64 66 6c 61 67 25 3d 28 53 63 72 61 70 |%oldflag%=(Scrap| 00018c30 42 6c 6b 25 21 32 34 29 20 80 20 28 31 3c 3c 32 |Blk%!24) . (1<<2| 00018c40 32 29 0d 0d 05 0a e7 20 66 25 20 8c 0d 0d 06 19 |2)..... f% .....| 00018c50 20 20 53 63 72 61 70 42 6c 6b 25 21 38 3d 28 31 | ScrapBlk%!8=(1| 00018c60 3c 3c 32 32 29 0d 0d 07 05 cc 0d 0d 08 13 20 20 |<<22)......... | 00018c70 53 63 72 61 70 42 6c 6b 25 21 38 3d 30 0d 0d 09 |ScrapBlk%!8=0...| 00018c80 05 cd 0d 0d 0a 16 53 63 72 61 70 42 6c 6b 25 21 |......ScrapBlk%!| 00018c90 31 32 3d 31 3c 3c 32 32 0d 0d 0b 1d e7 20 6f 6c |12=1<<22..... ol| 00018ca0 64 66 6c 61 67 25 3c 3e 53 63 72 61 70 42 6c 6b |dflag%<>ScrapBlk| 00018cb0 25 21 38 20 8c 0d 0d 0c 1e 20 20 f4 20 6f 6e 6c |%!8 ..... . onl| 00018cc0 79 20 73 65 74 20 77 68 65 6e 20 63 68 61 6e 67 |y set when chang| 00018cd0 69 6e 67 0d 0d 0d 15 20 20 e7 20 53 75 70 70 6f |ing.... . Suppo| 00018ce0 72 74 41 45 48 25 20 8c 0d 0d 0e 27 20 20 20 c8 |rtAEH% ....' .| 00018cf0 99 20 22 41 45 48 5f 53 65 74 49 63 6f 6e 53 74 |. "AEH_SetIconSt| 00018d00 61 74 65 22 2c 2c 53 63 72 61 70 42 6c 6b 25 0d |ate",,ScrapBlk%.| 00018d10 0d 0f 07 20 20 cc 0d 0d 10 28 20 20 20 c8 99 20 |... ....( .. | 00018d20 22 57 69 6d 70 5f 53 65 74 49 63 6f 6e 53 74 61 |"Wimp_SetIconSta| 00018d30 74 65 22 2c 2c 53 63 72 61 70 42 6c 6b 25 0d 0d |te",,ScrapBlk%..| 00018d40 11 07 20 20 cd 0d 0d 12 05 cd 0d 0d 13 05 e1 0d |.. ............| 00018d50 0d 14 04 0d 0d 15 20 dd 20 a4 69 63 6f 6e 73 68 |...... . .iconsh| 00018d60 61 64 65 64 28 77 69 6e 64 6f 77 25 2c 69 63 6f |aded(window%,ico| 00018d70 6e 25 29 0d 0d 16 17 53 63 72 61 70 42 6c 6b 25 |n%)....ScrapBlk%| 00018d80 21 30 3d 77 69 6e 64 6f 77 25 0d 0d 17 15 53 63 |!0=window%....Sc| 00018d90 72 61 70 42 6c 6b 25 21 34 3d 69 63 6f 6e 25 0d |rapBlk%!4=icon%.| 00018da0 0d 18 25 c8 99 20 22 57 69 6d 70 5f 47 65 74 49 |..%.. "Wimp_GetI| 00018db0 63 6f 6e 53 74 61 74 65 22 2c 2c 53 63 72 61 70 |conState",,Scrap| 00018dc0 42 6c 6b 25 0d 0d 19 23 3d 28 28 53 63 72 61 70 |Blk%...#=((Scrap| 00018dd0 42 6c 6b 25 21 32 34 29 20 80 20 28 31 3c 3c 32 |Blk%!24) . (1<<2| 00018de0 32 29 29 20 3e 20 30 0d 0d 1a 04 0d 0d 1b 50 f4 |2)) > 0.......P.| 00018df0 20 2d 2d 2d 20 73 74 6f 72 65 20 70 6f 69 6e 74 | --- store point| 00018e00 65 72 20 74 6f 20 69 6e 64 69 72 65 63 74 65 64 |er to indirected| 00018e10 20 74 65 78 74 20 69 63 6f 6e 20 28 66 6f 72 20 | text icon (for | 00018e20 75 73 65 20 69 6e 20 50 52 4f 43 73 65 74 69 63 |use in PROCsetic| 00018e30 6f 6e 74 65 78 74 29 20 2d 2d 2d 0d 0d 1c 27 dd |ontext) ---...'.| 00018e40 20 f2 6c 69 6e 6b 69 63 6f 6e 74 65 78 74 28 69 | .linkicontext(i| 00018e50 6e 64 65 78 25 2c 77 62 75 66 25 2c 69 63 6f 6e |ndex%,wbuf%,icon| 00018e60 25 29 0d 0d 1d 2c 49 63 6f 6e 54 65 78 74 25 28 |%)...,IconText%(| 00018e70 69 6e 64 65 78 25 29 3d 77 62 75 66 25 21 28 39 |index%)=wbuf%!(9| 00018e80 32 2b 69 63 6f 6e 25 2a 33 32 2b 32 30 29 0d 0d |2+icon%*32+20)..| 00018e90 1e 21 49 63 6f 6e 54 65 78 74 57 68 64 6c 25 28 |.!IconTextWhdl%(| 00018ea0 69 6e 64 65 78 25 29 3d 77 62 75 66 25 21 30 0d |index%)=wbuf%!0.| 00018eb0 0d 1f 1f 49 63 6f 6e 54 65 78 74 49 68 64 6c 25 |...IconTextIhdl%| 00018ec0 28 69 6e 64 65 78 25 29 3d 69 63 6f 6e 25 0d 0d |(index%)=icon%..| 00018ed0 20 05 e1 0d 0d 21 04 0d 0d 22 20 dd 20 f2 73 65 | ....!..." . .se| 00018ee0 74 69 63 6f 6e 74 65 78 74 28 69 6e 64 65 78 25 |ticontext(index%| 00018ef0 2c 74 65 78 74 24 29 0d 0d 23 1e 24 28 49 63 6f |,text$)..#.$(Ico| 00018f00 6e 54 65 78 74 25 28 69 6e 64 65 78 25 29 29 3d |nText%(index%))=| 00018f10 74 65 78 74 24 0d 0d 24 43 f2 73 65 74 69 63 6f |text$..$C.setico| 00018f20 6e 73 74 61 74 65 30 28 49 63 6f 6e 54 65 78 74 |nstate0(IconText| 00018f30 57 68 64 6c 25 28 69 6e 64 65 78 25 29 2c 49 63 |Whdl%(index%),Ic| 00018f40 6f 6e 54 65 78 74 49 68 64 6c 25 28 69 6e 64 65 |onTextIhdl%(inde| 00018f50 78 25 29 2c 30 2c 30 29 0d 0d 25 05 e1 0d 0d 26 |x%),0,0)..%....&| 00018f60 04 0d 0d 27 38 f4 20 2d 2d 2d 20 73 74 6f 72 65 |...'8. --- store| 00018f70 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 65 78 74 | pointer to text| 00018f80 20 6f 66 20 63 6f 6c 6f 75 72 2d 73 65 6c 65 63 | of colour-selec| 00018f90 74 2d 62 6f 78 20 2d 2d 2d 0d 0d 28 27 dd 20 f2 |t-box ---..('. .| 00018fa0 6c 69 6e 6b 63 73 65 6c 74 65 78 74 28 69 6e 64 |linkcseltext(ind| 00018fb0 65 78 25 2c 77 62 75 66 25 2c 69 63 6f 6e 25 29 |ex%,wbuf%,icon%)| 00018fc0 0d 0d 29 2c 43 73 65 6c 54 65 78 74 25 28 69 6e |..),CselText%(in| 00018fd0 64 65 78 25 29 3d 77 62 75 66 25 21 28 39 32 2b |dex%)=wbuf%!(92+| 00018fe0 69 63 6f 6e 25 2a 33 32 2b 32 30 29 0d 0d 2a 21 |icon%*32+20)..*!| 00018ff0 43 73 65 6c 54 65 78 74 57 68 64 6c 25 28 69 6e |CselTextWhdl%(in| 00019000 64 65 78 25 29 3d 77 62 75 66 25 21 30 0d 0d 2b |dex%)=wbuf%!0..+| 00019010 1f 43 73 65 6c 54 65 78 74 49 68 64 6c 25 28 69 |.CselTextIhdl%(i| 00019020 6e 64 65 78 25 29 3d 69 63 6f 6e 25 0d 0d 2c 05 |ndex%)=icon%..,.| 00019030 e1 0d 0d 2d 04 0d 0d 2e 34 f4 20 2d 2d 2d 20 73 |...-....4. --- s| 00019040 65 74 20 63 6f 6c 6f 75 72 20 6e 75 6d 62 65 72 |et colour number| 00019050 20 69 6e 20 63 6f 6c 6f 75 72 2d 73 65 6c 65 63 | in colour-selec| 00019060 74 2d 62 6f 78 20 2d 2d 2d 0d 0d 2f 23 dd 20 f2 |t-box ---../#. .| 00019070 73 65 74 63 6f 6c 6f 75 72 62 6f 78 28 69 6e 64 |setcolourbox(ind| 00019080 65 78 25 2c 63 6f 6c 6f 75 72 25 29 0d 0d 30 10 |ex%,colour%)..0.| 00019090 ea 20 63 24 2c 62 6f 78 63 6f 6c 25 0d 0d 31 11 |. c$,boxcol%..1.| 000190a0 63 24 3d c3 28 63 6f 6c 6f 75 72 25 29 0d 0d 32 |c$=.(colour%)..2| 000190b0 1b e7 20 63 6f 6c 6f 75 72 25 3d 26 46 46 20 8c |.. colour%=&FF .| 000190c0 20 63 24 3d 22 2d 2d 22 0d 0d 33 1b 24 28 43 73 | c$="--"..3.$(Cs| 000190d0 65 6c 54 65 78 74 25 28 69 6e 64 65 78 25 29 29 |elText%(index%))| 000190e0 3d 63 24 0d 0d 34 0f 62 6f 78 63 6f 6c 25 3d 26 |=c$..4.boxcol%=&| 000190f0 30 37 0d 0d 35 12 e7 20 63 6f 6c 6f 75 72 25 3c |07..5.. colour%<| 00019100 31 36 20 8c 0d 0d 36 32 20 20 62 6f 78 63 6f 6c |16 ...62 boxcol| 00019110 25 3d 28 63 6f 6c 6f 75 72 25 3c 3c 34 29 2b 49 |%=(colour%<<4)+I| 00019120 6e 76 65 72 73 65 43 6f 6c 6f 75 72 25 28 63 6f |nverseColour%(co| 00019130 6c 6f 75 72 25 29 0d 0d 37 05 cd 0d 0d 38 17 62 |lour%)..7....8.b| 00019140 6f 78 63 6f 6c 25 3d 62 6f 78 63 6f 6c 25 3c 3c |oxcol%=boxcol%<<| 00019150 32 34 0d 0d 39 4f f2 73 65 74 69 63 6f 6e 73 74 |24..9O.seticonst| 00019160 61 74 65 30 28 43 73 65 6c 54 65 78 74 57 68 64 |ate0(CselTextWhd| 00019170 6c 25 28 69 6e 64 65 78 25 29 2c 43 73 65 6c 54 |l%(index%),CselT| 00019180 65 78 74 49 68 64 6c 25 28 69 6e 64 65 78 25 29 |extIhdl%(index%)| 00019190 2c 62 6f 78 63 6f 6c 25 2c 26 46 46 3c 3c 32 34 |,boxcol%,&FF<<24| 000191a0 29 0d 0d 3a 05 e1 0d 0d 3b 04 0d 0d 3c 22 f4 20 |)..:....;...<". | 000191b0 2d 2d 2d 20 63 68 61 6e 67 65 20 63 6f 6c 6f 75 |--- change colou| 000191c0 72 20 6e 75 6d 62 65 72 20 2d 2d 2d 0d 0d 3d 3c |r number ---..=<| 000191d0 dd 20 f2 63 68 61 6e 67 65 63 6f 6c 6f 75 72 62 |. .changecolourb| 000191e0 6f 78 28 69 6e 64 65 78 25 2c f8 20 63 6f 6c 6f |ox(index%,. colo| 000191f0 75 72 25 2c 64 69 66 66 25 2c 75 70 25 2c 62 69 |ur%,diff%,up%,bi| 00019200 67 72 61 6e 67 65 25 29 0d 0d 3e 10 ea 20 6e 65 |grange%)..>.. ne| 00019210 77 63 6f 6c 6f 75 72 25 0d 0d 3f 0b e7 20 75 70 |wcolour%..?.. up| 00019220 25 20 8c 0d 0d 40 1e 20 20 6e 65 77 63 6f 6c 6f |% ...@. newcolo| 00019230 75 72 25 3d 63 6f 6c 6f 75 72 25 2b 64 69 66 66 |ur%=colour%+diff| 00019240 25 0d 0d 41 05 cc 0d 0d 42 1e 20 20 6e 65 77 63 |%..A....B. newc| 00019250 6f 6c 6f 75 72 25 3d 63 6f 6c 6f 75 72 25 2d 64 |olour%=colour%-d| 00019260 69 66 66 25 0d 0d 43 05 cd 0d 0d 44 3a e7 20 28 |iff%..C....D:. (| 00019270 6e 65 77 63 6f 6c 6f 75 72 25 20 80 20 26 46 46 |newcolour% . &FF| 00019280 29 3d 32 35 35 20 8c 20 6e 65 77 63 6f 6c 6f 75 |)=255 . newcolou| 00019290 72 25 3d 6e 65 77 63 6f 6c 6f 75 72 25 2b 64 69 |r%=newcolour%+di| 000192a0 66 66 25 0d 0d 45 11 e7 20 62 69 67 72 61 6e 67 |ff%..E.. bigrang| 000192b0 65 25 20 8c 0d 0d 46 45 20 20 6e 65 77 63 6f 6c |e% ...FE newcol| 000192c0 6f 75 72 25 3d 6e 65 77 63 6f 6c 6f 75 72 25 20 |our%=newcolour% | 000192d0 80 20 26 46 46 20 20 20 20 20 20 20 20 3a 20 f4 |. &FF : .| 000192e0 20 63 6f 6c 6f 75 72 73 20 72 61 6e 67 65 20 66 | colours range f| 000192f0 72 6f 6d 20 30 2d 32 35 35 0d 0d 47 05 cc 0d 0d |rom 0-255..G....| 00019300 48 42 20 20 e7 20 6e 65 77 63 6f 6c 6f 75 72 25 |HB . newcolour%| 00019310 3c 30 20 8c 20 6e 65 77 63 6f 6c 6f 75 72 25 3d |<0 . newcolour%=| 00019320 30 20 20 20 20 3a 20 f4 20 63 6f 6c 6f 75 72 73 |0 : . colours| 00019330 20 72 61 6e 67 65 20 66 72 6f 6d 20 30 2d 31 35 | range from 0-15| 00019340 0d 0d 49 25 20 20 e7 20 6e 65 77 63 6f 6c 6f 75 |..I% . newcolou| 00019350 72 25 3e 26 46 20 8c 20 6e 65 77 63 6f 6c 6f 75 |r%>&F . newcolou| 00019360 72 25 3d 26 46 0d 0d 4a 05 cd 0d 0d 4b 1b e7 20 |r%=&F..J....K.. | 00019370 6e 65 77 63 6f 6c 6f 75 72 25 3c 3e 63 6f 6c 6f |newcolour%<>colo| 00019380 75 72 25 20 8c 0d 0d 4c 18 20 20 63 6f 6c 6f 75 |ur% ...L. colou| 00019390 72 25 3d 6e 65 77 63 6f 6c 6f 75 72 25 0d 0d 4d |r%=newcolour%..M| 000193a0 23 20 20 f2 73 65 74 63 6f 6c 6f 75 72 62 6f 78 |# .setcolourbox| 000193b0 28 69 6e 64 65 78 25 2c 63 6f 6c 6f 75 72 25 29 |(index%,colour%)| 000193c0 0d 0d 4e 05 cd 0d 0d 4f 05 e1 0d 0d 50 04 0d 0d |..N....O....P...| 000193d0 51 48 f4 20 2d 2d 2d 20 66 69 6e 64 20 6e 75 6d |QH. --- find num| 000193e0 62 65 72 20 6f 66 20 74 65 6d 70 6c 61 74 65 20 |ber of template | 000193f0 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 77 69 |corresponding wi| 00019400 74 68 20 61 20 77 69 6e 64 6f 77 20 68 61 6e 64 |th a window hand| 00019410 6c 65 20 2d 2d 2d 0d 0d 52 1d dd 20 a4 77 68 69 |le ---..R.. .whi| 00019420 63 68 74 65 6d 70 6c 61 74 65 28 68 61 6e 64 6c |chtemplate(handl| 00019430 65 25 29 0d 0d 53 08 ea 20 69 25 0d 0d 54 08 69 |e%)..S.. i%..T.i| 00019440 25 3d 30 0d 0d 55 36 c8 95 20 28 54 65 6d 70 6c |%=0..U6.. (Templ| 00019450 48 61 6e 64 6c 65 25 28 69 25 29 3c 3e 68 61 6e |Handle%(i%)<>han| 00019460 64 6c 65 25 29 20 80 20 28 69 25 3c 4e 72 54 65 |dle%) . (i%<NrTe| 00019470 6d 70 6c 61 74 65 73 25 29 0d 0d 56 0b 20 20 69 |mplates%)..V. i| 00019480 25 2b 3d 31 0d 0d 57 05 ce 0d 0d 58 4b e7 20 69 |%+=1..W....XK. i| 00019490 25 3d 4e 72 54 65 6d 70 6c 61 74 65 73 25 20 8c |%=NrTemplates% .| 000194a0 20 69 25 3d 2d 31 20 3a 20 f4 20 68 61 6e 64 6c | i%=-1 : . handl| 000194b0 65 20 64 6f 65 73 20 6e 6f 74 20 62 65 6c 6f 6e |e does not belon| 000194c0 67 20 74 6f 20 74 65 6d 70 6c 61 74 65 20 77 69 |g to template wi| 000194d0 6e 64 6f 77 0d 0d 59 07 3d 69 25 0d 0d 5a 04 0d |ndow..Y.=i%..Z..| 000194e0 0d 5b 2b dd 20 f2 73 65 74 74 69 74 6c 65 62 61 |.[+. .settitleba| 000194f0 72 28 68 61 6e 64 6c 65 25 2c 74 65 78 74 70 74 |r(handle%,textpt| 00019500 72 25 2c 74 69 74 6c 65 24 29 0d 0d 5c 11 ea 20 |r%,title$)..\.. | 00019510 78 6d 61 78 25 2c 79 6d 61 78 25 0d 0d 5d 16 24 |xmax%,ymax%..].$| 00019520 28 74 65 78 74 70 74 72 25 29 3d 74 69 74 6c 65 |(textptr%)=title| 00019530 24 0d 0d 5e 17 53 63 72 61 70 42 6c 6b 25 21 30 |$..^.ScrapBlk%!0| 00019540 3d 68 61 6e 64 6c 65 25 0d 0d 5f 29 c8 99 20 22 |=handle%.._).. "| 00019550 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 4f 75 |Wimp_GetWindowOu| 00019560 74 6c 69 6e 65 22 2c 2c 53 63 72 61 70 42 6c 6b |tline",,ScrapBlk| 00019570 25 0d 0d 60 16 78 6d 61 78 25 3d 53 63 72 61 70 |%..`.xmax%=Scrap| 00019580 42 6c 6b 25 21 31 32 0d 0d 61 16 79 6d 61 78 25 |Blk%!12..a.ymax%| 00019590 3d 53 63 72 61 70 42 6c 6b 25 21 31 36 0d 0d 62 |=ScrapBlk%!16..b| 000195a0 27 c8 99 20 22 57 69 6d 70 5f 47 65 74 57 69 6e |'.. "Wimp_GetWin| 000195b0 64 6f 77 53 74 61 74 65 22 2c 2c 53 63 72 61 70 |dowState",,Scrap| 000195c0 42 6c 6b 25 0d 0d 63 20 e7 20 28 53 63 72 61 70 |Blk%..c . (Scrap| 000195d0 42 6c 6b 25 21 33 32 20 80 20 28 31 3c 3c 31 36 |Blk%!32 . (1<<16| 000195e0 29 29 20 8c 0d 0d 64 43 20 20 c8 99 20 22 57 69 |)) ...dC .. "Wi| 000195f0 6d 70 5f 46 6f 72 63 65 52 65 64 72 61 77 22 2c |mp_ForceRedraw",| 00019600 2d 31 2c 53 63 72 61 70 42 6c 6b 25 21 34 2c 53 |-1,ScrapBlk%!4,S| 00019610 63 72 61 70 42 6c 6b 25 21 31 36 2c 78 6d 61 78 |crapBlk%!16,xmax| 00019620 25 2c 79 6d 61 78 25 0d 0d 65 05 cd 0d 0d 66 05 |%,ymax%..e....f.| 00019630 e1 0d 0d 67 04 0d 0d 68 33 f4 20 2d 2d 2d 20 64 |...g...h3. --- d| 00019640 65 6c 65 74 65 20 61 6c 6c 20 73 65 6c 65 63 74 |elete all select| 00019650 65 64 20 69 63 6f 6e 73 20 69 6e 20 61 20 77 69 |ed icons in a wi| 00019660 6e 64 6f 77 20 2d 2d 2d 0d 0d 69 26 dd 20 f2 64 |ndow ---..i&. .d| 00019670 65 6c 65 74 65 69 63 6f 6e 73 65 6c 28 77 69 6e |eleteiconsel(win| 00019680 64 6f 77 25 2c 64 65 66 61 75 6c 74 25 29 0d 0d |dow%,default%)..| 00019690 6a 08 ea 20 69 25 0d 0d 6b 15 f2 73 65 6c 5f 67 |j.. i%..k..sel_g| 000196a0 65 74 28 77 69 6e 64 6f 77 25 29 0d 0d 6c 15 e7 |et(window%)..l..| 000196b0 20 4e 72 53 65 6c 65 63 74 65 64 25 3e 30 20 8c | NrSelected%>0 .| 000196c0 0d 0d 6d 1c 20 20 e3 20 69 25 3d 30 20 b8 20 4e |..m. . i%=0 . N| 000196d0 72 53 65 6c 65 63 74 65 64 25 2d 31 0d 0d 6e 2f |rSelected%-1..n/| 000196e0 20 20 20 20 f2 64 65 6c 65 74 65 69 63 6f 6e 28 | .deleteicon(| 000196f0 77 69 6e 64 6f 77 25 2c 53 65 6c 42 6c 6b 25 21 |window%,SelBlk%!| 00019700 28 34 2a 69 25 29 2c 31 2c 31 29 0d 0d 6f 0a 20 |(4*i%),1,1)..o. | 00019710 20 ed 20 69 25 0d 0d 70 05 cc 0d 0d 71 35 20 20 | . i%..p....q5 | 00019720 f4 20 6e 6f 74 68 69 6e 67 20 73 65 6c 65 63 74 |. nothing select| 00019730 65 64 20 2d 20 64 65 6c 65 74 65 20 69 63 6f 6e |ed - delete icon| 00019740 20 6e 6f 2e 20 3c 64 65 66 61 75 6c 74 25 3e 0d | no. <default%>.| 00019750 0d 72 37 20 20 e7 20 64 65 66 61 75 6c 74 25 3e |.r7 . default%>| 00019760 3d 30 20 8c 20 f2 64 65 6c 65 74 65 69 63 6f 6e |=0 . .deleteicon| 00019770 28 77 69 6e 64 6f 77 25 2c 64 65 66 61 75 6c 74 |(window%,default| 00019780 25 2c 31 2c 31 29 0d 0d 73 05 cd 0d 0d 74 11 4e |%,1,1)..s....t.N| 00019790 72 53 65 6c 65 63 74 65 64 25 3d 30 0d 0d 75 05 |rSelected%=0..u.| 000197a0 e1 0d 0d 76 04 0d 0d 77 32 dd 20 f2 64 65 6c 65 |...v...w2. .dele| 000197b0 74 65 69 63 6f 6e 28 77 69 6e 25 2c 69 63 6f 6e |teicon(win%,icon| 000197c0 25 2c 72 65 6c 65 61 73 65 25 2c 61 64 6a 75 73 |%,release%,adjus| 000197d0 74 76 61 72 73 25 29 0d 0d 78 14 53 63 72 61 70 |tvars%)..x.Scrap| 000197e0 42 6c 6b 25 21 30 3d 77 69 6e 25 0d 0d 79 15 53 |Blk%!0=win%..y.S| 000197f0 63 72 61 70 42 6c 6b 25 21 34 3d 69 63 6f 6e 25 |crapBlk%!4=icon%| 00019800 0d 0d 7a 25 c8 99 20 22 57 69 6d 70 5f 47 65 74 |..z%.. "Wimp_Get| 00019810 49 63 6f 6e 53 74 61 74 65 22 2c 2c 53 63 72 61 |IconState",,Scra| 00019820 70 42 6c 6b 25 0d 0d 7b 10 e7 20 72 65 6c 65 61 |pBlk%..{.. relea| 00019830 73 65 25 20 8c 0d 0d 7c 2d 20 20 f2 69 63 6f 6e |se% ...|- .icon| 00019840 72 65 6c 65 61 73 65 28 53 63 72 61 70 42 6c 6b |release(ScrapBlk| 00019850 25 21 32 34 2c 53 63 72 61 70 42 6c 6b 25 2b 32 |%!24,ScrapBlk%+2| 00019860 38 29 0d 0d 7d 05 cd 0d 0d 7e 23 c8 99 20 22 57 |8)..}....~#.. "W| 00019870 69 6d 70 5f 44 65 6c 65 74 65 49 63 6f 6e 22 2c |imp_DeleteIcon",| 00019880 2c 53 63 72 61 70 42 6c 6b 25 0d 0d 7f 5d c8 99 |,ScrapBlk%...]..| 00019890 20 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 72 | "Wimp_ForceRedr| 000198a0 61 77 22 2c 77 69 6e 25 2c 53 63 72 61 70 42 6c |aw",win%,ScrapBl| 000198b0 6b 25 21 38 2d 32 30 2c 53 63 72 61 70 42 6c 6b |k%!8-20,ScrapBlk| 000198c0 25 21 31 32 2d 32 30 2c 53 63 72 61 70 42 6c 6b |%!12-20,ScrapBlk| 000198d0 25 21 31 36 2b 32 30 2c 53 63 72 61 70 42 6c 6b |%!16+20,ScrapBlk| 000198e0 25 21 32 30 2b 32 30 0d 0d 80 13 e7 20 61 64 6a |%!20+20..... adj| 000198f0 75 73 74 76 61 72 73 25 20 8c 0d 0d 81 2f 20 20 |ustvars% ..../ | 00019900 e7 20 28 77 69 6e 25 3d 49 63 45 64 5f 57 69 6e |. (win%=IcEd_Win| 00019910 25 29 20 80 20 28 69 63 6f 6e 25 3d 49 63 45 64 |%) . (icon%=IcEd| 00019920 5f 49 63 6f 6e 25 29 20 8c 0d 0d 82 18 20 20 20 |_Icon%) ..... | 00019930 20 49 63 45 64 5f 49 63 6f 6e 25 3d 2d 31 30 30 | IcEd_Icon%=-100| 00019940 30 0d 0d 83 07 20 20 cd 0d 0d 84 37 20 20 e7 20 |0.... ....7 . | 00019950 28 77 69 6e 25 3d 4c 61 73 74 4d 65 6e 75 5f 57 |(win%=LastMenu_W| 00019960 69 6e 25 29 20 80 20 28 69 63 6f 6e 25 3d 4c 61 |in%) . (icon%=La| 00019970 73 74 4d 65 6e 75 5f 49 63 6f 6e 25 29 20 8c 0d |stMenu_Icon%) ..| 00019980 0d 85 19 20 20 20 20 4c 61 73 74 4d 65 6e 75 5f |... LastMenu_| 00019990 49 63 6f 6e 25 3d 2d 31 0d 0d 86 07 20 20 cd 0d |Icon%=-1.... ..| 000199a0 0d 87 05 cd 0d 0d 88 12 f2 73 65 74 63 68 61 6e |.........setchan| 000199b0 67 65 64 28 b9 29 0d 0d 89 05 e1 0d 0d 8a 04 0d |ged(.)..........| 000199c0 0d 8b 17 dd 20 a4 63 72 65 61 74 65 69 63 6f 6e |.... .createicon| 000199d0 28 62 6c 6b 25 29 0d 0d 8c 29 ea 20 64 78 6d 69 |(blk%)...). dxmi| 000199e0 6e 25 2c 64 79 6d 69 6e 25 2c 64 78 6d 61 78 25 |n%,dymin%,dxmax%| 000199f0 2c 64 79 6d 61 78 25 2c 68 61 6e 64 6c 65 25 0d |,dymax%,handle%.| 00019a00 0d 8d 15 e7 20 47 72 69 64 5f 50 6f 73 4c 6f 63 |.... Grid_PosLoc| 00019a10 6b 25 20 8c 0d 0d 8e 29 20 20 64 78 6d 69 6e 25 |k% ....) dxmin%| 00019a20 3d a4 67 72 69 64 64 69 66 66 28 62 6c 6b 25 21 |=.griddiff(blk%!| 00019a30 34 2c 47 72 69 64 5f 50 6f 73 58 25 29 0d 0d 8f |4,Grid_PosX%)...| 00019a40 29 20 20 64 79 6d 69 6e 25 3d a4 67 72 69 64 64 |) dymin%=.gridd| 00019a50 69 66 66 28 62 6c 6b 25 21 38 2c 47 72 69 64 5f |iff(blk%!8,Grid_| 00019a60 50 6f 73 59 25 29 0d 0d 90 1a 20 20 62 6c 6b 25 |PosY%).... blk%| 00019a70 21 34 3d 62 6c 6b 25 21 34 2d 64 78 6d 69 6e 25 |!4=blk%!4-dxmin%| 00019a80 0d 0d 91 1a 20 20 62 6c 6b 25 21 38 3d 62 6c 6b |.... blk%!8=blk| 00019a90 25 21 38 2d 64 79 6d 69 6e 25 0d 0d 92 1c 20 20 |%!8-dymin%.... | 00019aa0 62 6c 6b 25 21 31 32 3d 62 6c 6b 25 21 31 32 2d |blk%!12=blk%!12-| 00019ab0 64 78 6d 69 6e 25 0d 0d 93 1c 20 20 62 6c 6b 25 |dxmin%.... blk%| 00019ac0 21 31 36 3d 62 6c 6b 25 21 31 36 2d 64 79 6d 69 |!16=blk%!16-dymi| 00019ad0 6e 25 0d 0d 94 05 cd 0d 0d 95 16 e7 20 47 72 69 |n%.......... Gri| 00019ae0 64 5f 53 69 7a 65 4c 6f 63 6b 25 20 8c 0d 0d 96 |d_SizeLock% ....| 00019af0 2a 20 20 64 78 6d 69 6e 25 3d a4 67 72 69 64 64 |* dxmin%=.gridd| 00019b00 69 66 66 28 62 6c 6b 25 21 34 2c 47 72 69 64 5f |iff(blk%!4,Grid_| 00019b10 53 69 7a 65 58 25 29 0d 0d 97 2a 20 20 64 79 6d |SizeX%)...* dym| 00019b20 69 6e 25 3d a4 67 72 69 64 64 69 66 66 28 62 6c |in%=.griddiff(bl| 00019b30 6b 25 21 38 2c 47 72 69 64 5f 53 69 7a 65 59 25 |k%!8,Grid_SizeY%| 00019b40 29 0d 0d 98 2b 20 20 64 78 6d 61 78 25 3d a4 67 |)...+ dxmax%=.g| 00019b50 72 69 64 64 69 66 66 28 62 6c 6b 25 21 31 32 2c |riddiff(blk%!12,| 00019b60 47 72 69 64 5f 53 69 7a 65 58 25 29 0d 0d 99 2b |Grid_SizeX%)...+| 00019b70 20 20 64 79 6d 61 78 25 3d a4 67 72 69 64 64 69 | dymax%=.griddi| 00019b80 66 66 28 62 6c 6b 25 21 31 36 2c 47 72 69 64 5f |ff(blk%!16,Grid_| 00019b90 53 69 7a 65 59 25 29 0d 0d 9a 05 cc 0d 0d 9b 4a |SizeY%)........J| 00019ba0 20 20 64 78 6d 69 6e 25 3d a4 67 72 69 64 64 69 | dxmin%=.griddi| 00019bb0 66 66 28 62 6c 6b 25 21 34 2c 50 69 78 54 6f 4f |ff(blk%!4,PixToO| 00019bc0 53 5f 58 25 29 3a 20 f4 20 72 6f 75 6e 64 20 63 |S_X%): . round c| 00019bd0 6f 6f 72 64 73 20 74 6f 20 73 63 72 65 65 6e 20 |oords to screen | 00019be0 70 69 78 65 6c 73 0d 0d 9c 29 20 20 64 79 6d 69 |pixels...) dymi| 00019bf0 6e 25 3d a4 67 72 69 64 64 69 66 66 28 62 6c 6b |n%=.griddiff(blk| 00019c00 25 21 38 2c 50 69 78 54 6f 4f 53 5f 59 25 29 0d |%!8,PixToOS_Y%).| 00019c10 0d 9d 2a 20 20 64 78 6d 61 78 25 3d a4 67 72 69 |..* dxmax%=.gri| 00019c20 64 64 69 66 66 28 62 6c 6b 25 21 31 32 2c 50 69 |ddiff(blk%!12,Pi| 00019c30 78 54 6f 4f 53 5f 58 25 29 0d 0d 9e 2a 20 20 64 |xToOS_X%)...* d| 00019c40 79 6d 61 78 25 3d a4 67 72 69 64 64 69 66 66 28 |ymax%=.griddiff(| 00019c50 62 6c 6b 25 21 31 36 2c 50 69 78 54 6f 4f 53 5f |blk%!16,PixToOS_| 00019c60 59 25 29 0d 0d 9f 05 cd 0d 0d a0 18 62 6c 6b 25 |Y%).........blk%| 00019c70 21 34 3d 62 6c 6b 25 21 34 2d 64 78 6d 69 6e 25 |!4=blk%!4-dxmin%| 00019c80 0d 0d a1 18 62 6c 6b 25 21 38 3d 62 6c 6b 25 21 |....blk%!8=blk%!| 00019c90 38 2d 64 79 6d 69 6e 25 0d 0d a2 1a 62 6c 6b 25 |8-dymin%....blk%| 00019ca0 21 31 32 3d 62 6c 6b 25 21 31 32 2d 64 78 6d 61 |!12=blk%!12-dxma| 00019cb0 78 25 0d 0d a3 1a 62 6c 6b 25 21 31 36 3d 62 6c |x%....blk%!16=bl| 00019cc0 6b 25 21 31 36 2d 64 79 6d 61 78 25 0d 0d a4 28 |k%!16-dymax%...(| 00019cd0 c8 99 20 22 57 69 6d 70 5f 43 72 65 61 74 65 49 |.. "Wimp_CreateI| 00019ce0 63 6f 6e 22 2c 2c 62 6c 6b 25 20 b8 20 68 61 6e |con",,blk% . han| 00019cf0 64 6c 65 25 0d 0d a5 4a c8 99 20 22 57 69 6d 70 |dle%...J.. "Wimp| 00019d00 5f 46 6f 72 63 65 52 65 64 72 61 77 22 2c 62 6c |_ForceRedraw",bl| 00019d10 6b 25 21 30 2c 62 6c 6b 25 21 34 2d 31 32 2c 62 |k%!0,blk%!4-12,b| 00019d20 6c 6b 25 21 38 2d 31 32 2c 62 6c 6b 25 21 31 32 |lk%!8-12,blk%!12| 00019d30 2b 31 32 2c 62 6c 6b 25 21 31 36 2b 31 32 0d 0d |+12,blk%!16+12..| 00019d40 a6 39 e7 20 68 61 6e 64 6c 65 25 3e 4d 61 78 49 |.9. handle%>MaxI| 00019d50 63 6f 6e 73 25 20 8c 20 f2 63 6f 6d 70 6c 61 69 |cons% . .complai| 00019d60 6e 28 a4 6d 73 67 5f 6c 6f 6f 6b 75 70 30 28 22 |n(.msg_lookup0("| 00019d70 4d 49 43 58 22 29 29 0d 0d a7 12 f2 73 65 74 63 |MICX")).....setc| 00019d80 68 61 6e 67 65 64 28 b9 29 0d 0d a8 0c 3d 68 61 |hanged(.)....=ha| 00019d90 6e 64 6c 65 25 0d 0d a9 04 0d 0d aa 37 f4 20 2d |ndle%.......7. -| 00019da0 2d 2d 20 63 61 6c 63 75 6c 61 74 65 20 64 69 73 |-- calculate dis| 00019db0 74 61 6e 63 65 20 66 72 6f 6d 20 6e 65 61 72 65 |tance from neare| 00019dc0 73 74 20 67 72 69 64 70 6f 69 6e 74 20 2d 2d 2d |st gridpoint ---| 00019dd0 0d 0d ab 1d dd 20 a4 67 72 69 64 64 69 66 66 28 |..... .griddiff(| 00019de0 63 25 2c 67 72 69 64 73 69 7a 65 25 29 0d 0d ac |c%,gridsize%)...| 00019df0 0b ea 20 64 69 66 66 25 0d 0d ad 18 64 69 66 66 |.. diff%....diff| 00019e00 25 3d 63 25 20 83 20 67 72 69 64 73 69 7a 65 25 |%=c% . gridsize%| 00019e10 0d 0d ae 0c e7 20 63 25 3c 30 20 8c 0d 0d af 32 |..... c%<0 ....2| 00019e20 20 20 e7 20 28 2d 64 69 66 66 25 29 3e 28 67 72 | . (-diff%)>(gr| 00019e30 69 64 73 69 7a 65 25 3e 3e 31 29 20 8c 20 64 69 |idsize%>>1) . di| 00019e40 66 66 25 2b 3d 67 72 69 64 73 69 7a 65 25 0d 0d |ff%+=gridsize%..| 00019e50 b0 05 cc 0d 0d b1 2f 20 20 e7 20 64 69 66 66 25 |....../ . diff%| 00019e60 3e 28 67 72 69 64 73 69 7a 65 25 3e 3e 31 29 20 |>(gridsize%>>1) | 00019e70 8c 20 64 69 66 66 25 2d 3d 67 72 69 64 73 69 7a |. diff%-=gridsiz| 00019e80 65 25 0d 0d b2 05 cd 0d 0d b3 0a 3d 64 69 66 66 |e%.........=diff| 00019e90 25 0d 0d b4 04 0d 0d b5 31 f4 20 2d 2d 2d 20 63 |%.......1. --- c| 00019ea0 6f 70 79 20 61 6c 6c 20 73 65 6c 65 63 74 65 64 |opy all selected| 00019eb0 20 69 63 6f 6e 73 20 69 6e 20 61 20 77 69 6e 64 | icons in a wind| 00019ec0 6f 77 20 2d 2d 2d 0d 0d b6 28 dd 20 f2 63 6f 70 |ow ---...(. .cop| 00019ed0 79 69 63 6f 6e 73 65 6c 28 77 69 6e 64 6f 77 25 |yiconsel(window%| 00019ee0 2c f8 20 69 63 6f 6e 25 2c 64 69 72 25 29 0d 0d |,. icon%,dir%)..| 00019ef0 b7 30 ea 20 69 25 2c 78 6d 69 6e 25 2c 79 6d 69 |.0. i%,xmin%,ymi| 00019f00 6e 25 2c 78 6d 61 78 25 2c 79 6d 61 78 25 2c 64 |n%,xmax%,ymax%,d| 00019f10 78 25 2c 64 79 25 2c 68 61 6e 64 6c 65 25 0d 0d |x%,dy%,handle%..| 00019f20 b8 15 f2 73 65 6c 5f 67 65 74 28 77 69 6e 64 6f |...sel_get(windo| 00019f30 77 25 29 0d 0d b9 24 e7 20 28 4e 72 53 65 6c 65 |w%)...$. (NrSele| 00019f40 63 74 65 64 25 3d 30 29 20 80 20 28 69 63 6f 6e |cted%=0) . (icon| 00019f50 25 3e 3d 30 29 20 8c 0d 0d ba 15 20 20 53 65 6c |%>=0) ..... Sel| 00019f60 42 6c 6b 25 21 30 3d 69 63 6f 6e 25 0d 0d bb 13 |Blk%!0=icon%....| 00019f70 20 20 4e 72 53 65 6c 65 63 74 65 64 25 3d 31 0d | NrSelected%=1.| 00019f80 0d bc 05 cd 0d 0d bd 2d f2 73 65 6c 5f 62 6f 78 |.......-.sel_box| 00019f90 28 77 69 6e 64 6f 77 25 2c 78 6d 69 6e 25 2c 79 |(window%,xmin%,y| 00019fa0 6d 69 6e 25 2c 78 6d 61 78 25 2c 79 6d 61 78 25 |min%,xmax%,ymax%| 00019fb0 29 0d 0d be 0d c8 8e 20 64 69 72 25 20 ca 0d 0d |)...... dir% ...| 00019fc0 bf 4a 20 20 c9 20 30 20 3a 20 64 78 25 3d 31 36 |.J . 0 : dx%=16| 00019fd0 20 3a 20 64 79 25 3d 2d 31 36 20 20 20 20 20 20 | : dy%=-16 | 00019fe0 20 20 3a 20 f4 20 66 69 78 65 64 20 64 69 73 74 | : . fixed dist| 00019ff0 61 6e 63 65 20 28 61 20 62 69 74 20 6c 6f 77 65 |ance (a bit lowe| 0001a000 72 2b 72 69 67 68 74 29 0d 0d c0 2f 20 20 c9 20 |r+right).../ . | 0001a010 31 20 3a 20 64 78 25 3d 30 20 3a 20 64 79 25 3d |1 : dx%=0 : dy%=| 0001a020 79 6d 61 78 25 2d 79 6d 69 6e 25 20 3a 20 f4 20 |ymax%-ymin% : . | 0001a030 63 6f 70 79 20 75 70 0d 0d c1 31 20 20 c9 20 32 |copy up...1 . 2| 0001a040 20 3a 20 64 78 25 3d 30 20 3a 20 64 79 25 3d 79 | : dx%=0 : dy%=y| 0001a050 6d 69 6e 25 2d 79 6d 61 78 25 20 3a 20 f4 20 63 |min%-ymax% : . c| 0001a060 6f 70 79 20 64 6f 77 6e 0d 0d c2 31 20 20 c9 20 |opy down...1 . | 0001a070 33 20 3a 20 64 78 25 3d 78 6d 69 6e 25 2d 78 6d |3 : dx%=xmin%-xm| 0001a080 61 78 25 20 3a 20 64 79 25 3d 30 20 3a 20 f4 20 |ax% : dy%=0 : . | 0001a090 63 6f 70 79 20 6c 65 66 74 0d 0d c3 32 20 20 c9 |copy left...2 .| 0001a0a0 20 34 20 3a 20 64 78 25 3d 78 6d 61 78 25 2d 78 | 4 : dx%=xmax%-x| 0001a0b0 6d 69 6e 25 20 3a 20 64 79 25 3d 30 20 3a 20 f4 |min% : dy%=0 : .| 0001a0c0 20 63 6f 70 79 20 72 69 67 68 74 0d 0d c4 05 cb | copy right.....| 0001a0d0 0d 0d c5 15 e7 20 4e 72 53 65 6c 65 63 74 65 64 |..... NrSelected| 0001a0e0 25 3e 30 20 8c 0d 0d c6 1c 20 20 e3 20 69 25 3d |%>0 ..... . i%=| 0001a0f0 30 20 b8 20 4e 72 53 65 6c 65 63 74 65 64 25 2d |0 . NrSelected%-| 0001a100 31 0d 0d c7 13 20 20 20 20 f4 20 63 6f 70 79 20 |1.... . copy | 0001a110 69 63 6f 6e 0d 0d c8 1b 20 20 20 20 53 63 72 61 |icon.... Scra| 0001a120 70 42 6c 6b 25 21 30 3d 77 69 6e 64 6f 77 25 0d |pBlk%!0=window%.| 0001a130 0d c9 22 20 20 20 20 53 63 72 61 70 42 6c 6b 25 |.." ScrapBlk%| 0001a140 21 34 3d 53 65 6c 42 6c 6b 25 21 28 34 2a 69 25 |!4=SelBlk%!(4*i%| 0001a150 29 0d 0d ca 29 20 20 20 20 c8 99 20 22 57 69 6d |)...) .. "Wim| 0001a160 70 5f 47 65 74 49 63 6f 6e 53 74 61 74 65 22 2c |p_GetIconState",| 0001a170 2c 53 63 72 61 70 42 6c 6b 25 0d 0d cb 1b 20 20 |,ScrapBlk%.... | 0001a180 20 20 53 63 72 61 70 42 6c 6b 25 21 34 3d 77 69 | ScrapBlk%!4=wi| 0001a190 6e 64 6f 77 25 0d 0d cc 23 20 20 20 20 53 63 72 |ndow%...# Scr| 0001a1a0 61 70 42 6c 6b 25 21 38 3d 53 63 72 61 70 42 6c |apBlk%!8=ScrapBl| 0001a1b0 6b 25 21 38 2b 64 78 25 0d 0d cd 25 20 20 20 20 |k%!8+dx%...% | 0001a1c0 53 63 72 61 70 42 6c 6b 25 21 31 32 3d 53 63 72 |ScrapBlk%!12=Scr| 0001a1d0 61 70 42 6c 6b 25 21 31 32 2b 64 79 25 0d 0d ce |apBlk%!12+dy%...| 0001a1e0 25 20 20 20 20 53 63 72 61 70 42 6c 6b 25 21 31 |% ScrapBlk%!1| 0001a1f0 36 3d 53 63 72 61 70 42 6c 6b 25 21 31 36 2b 64 |6=ScrapBlk%!16+d| 0001a200 78 25 0d 0d cf 25 20 20 20 20 53 63 72 61 70 42 |x%...% ScrapB| 0001a210 6c 6b 25 21 32 30 3d 53 63 72 61 70 42 6c 6b 25 |lk%!20=ScrapBlk%| 0001a220 21 32 30 2b 64 79 25 0d 0d d0 48 20 20 20 20 f2 |!20+dy%...H .| 0001a230 69 63 6f 6e 72 65 61 6c 6c 6f 63 28 53 63 72 61 |iconrealloc(Scra| 0001a240 70 42 6c 6b 25 2b 32 34 2c 53 63 72 61 70 42 6c |pBlk%+24,ScrapBl| 0001a250 6b 25 2b 32 38 29 20 3a 20 f4 20 63 6f 70 79 20 |k%+28) : . copy | 0001a260 69 6e 64 69 72 65 63 74 65 64 20 64 61 74 61 0d |indirected data.| 0001a270 0d d1 28 20 20 20 20 68 61 6e 64 6c 65 25 3d a4 |..( handle%=.| 0001a280 63 72 65 61 74 65 69 63 6f 6e 28 53 63 72 61 70 |createicon(Scrap| 0001a290 42 6c 6b 25 2b 34 29 0d 0d d2 35 20 20 20 20 f4 |Blk%+4)...5 .| 0001a2a0 20 64 65 73 65 6c 65 63 74 20 6f 72 69 67 69 6e | deselect origin| 0001a2b0 61 6c 73 20 2d 20 63 6f 70 69 65 73 20 72 65 6d |als - copies rem| 0001a2c0 61 69 6e 20 73 65 6c 65 63 74 65 64 0d 0d d3 2d |ain selected...-| 0001a2d0 20 20 20 20 f2 73 65 6c 65 63 74 69 63 6f 6e 28 | .selecticon(| 0001a2e0 77 69 6e 64 6f 77 25 2c 53 65 6c 42 6c 6b 25 21 |window%,SelBlk%!| 0001a2f0 28 34 2a 69 25 29 2c 30 29 0d 0d d4 0a 20 20 ed |(4*i%),0).... .| 0001a300 20 69 25 0d 0d d5 20 20 20 e7 20 69 63 6f 6e 25 | i%... . icon%| 0001a310 3e 3d 30 20 8c 20 69 63 6f 6e 25 3d 68 61 6e 64 |>=0 . icon%=hand| 0001a320 6c 65 25 0d 0d d6 17 20 20 f2 73 65 6c 5f 67 65 |le%.... .sel_ge| 0001a330 74 28 77 69 6e 64 6f 77 25 29 0d 0d d7 05 cd 0d |t(window%)......| 0001a340 0d d8 05 e1 0d 0d d9 04 0d 0d da 34 f4 20 2d 2d |...........4. --| 0001a350 2d 20 72 65 70 6c 61 63 65 20 77 69 6e 64 6f 77 |- replace window| 0001a360 20 64 65 66 69 6e 69 74 69 6f 6e 20 77 69 74 68 | definition with| 0001a370 20 6e 65 77 20 6f 6e 65 20 2d 2d 2d 0d 0d db 28 | new one ---...(| 0001a380 dd 20 a4 72 65 64 65 66 69 6e 65 77 69 6e 64 6f |. .redefinewindo| 0001a390 77 28 77 62 75 66 25 2c 73 65 74 63 68 61 6e 67 |w(wbuf%,setchang| 0001a3a0 65 64 25 29 0d 0d dc 28 ea 20 6f 6c 64 68 61 6e |ed%)...(. oldhan| 0001a3b0 64 6c 65 25 2c 6e 6f 25 2c 77 61 73 6f 70 65 6e |dle%,no%,wasopen| 0001a3c0 25 2c 6e 65 77 68 61 6e 64 6c 65 25 0d 0d dd 16 |%,newhandle%....| 0001a3d0 6f 6c 64 68 61 6e 64 6c 65 25 3d 77 62 75 66 25 |oldhandle%=wbuf%| 0001a3e0 21 30 0d 0d de 22 6e 6f 25 3d a4 77 68 69 63 68 |!0..."no%=.which| 0001a3f0 74 65 6d 70 6c 61 74 65 28 6f 6c 64 68 61 6e 64 |template(oldhand| 0001a400 6c 65 25 29 0d 0d df 1a 53 63 72 61 70 42 6c 6b |le%)....ScrapBlk| 0001a410 25 21 30 3d 6f 6c 64 68 61 6e 64 6c 65 25 0d 0d |%!0=oldhandle%..| 0001a420 e0 27 c8 99 20 22 57 69 6d 70 5f 47 65 74 57 69 |.'.. "Wimp_GetWi| 0001a430 6e 64 6f 77 53 74 61 74 65 22 2c 2c 53 63 72 61 |ndowState",,Scra| 0001a440 70 42 6c 6b 25 0d 0d e1 25 77 61 73 6f 70 65 6e |pBlk%...%wasopen| 0001a450 25 3d 28 53 63 72 61 70 42 6c 6b 25 21 33 32 29 |%=(ScrapBlk%!32)| 0001a460 20 80 20 28 31 3c 3c 31 36 29 0d 0d e2 21 c8 99 | . (1<<16)...!..| 0001a470 20 22 57 69 6d 70 5f 44 65 6c 65 74 65 57 69 6e | "Wimp_DeleteWin| 0001a480 64 6f 77 22 2c 2c 77 62 75 66 25 0d 0d e3 30 c8 |dow",,wbuf%...0.| 0001a490 99 20 22 57 69 6d 70 5f 43 72 65 61 74 65 57 69 |. "Wimp_CreateWi| 0001a4a0 6e 64 6f 77 22 2c 2c 77 62 75 66 25 2b 34 20 b8 |ndow",,wbuf%+4 .| 0001a4b0 20 6e 65 77 68 61 6e 64 6c 65 25 0d 0d e4 16 77 | newhandle%....w| 0001a4c0 62 75 66 25 21 30 3d 6e 65 77 68 61 6e 64 6c 65 |buf%!0=newhandle| 0001a4d0 25 0d 0d e5 0f e7 20 6e 6f 25 3c 3e 2d 31 20 8c |%..... no%<>-1 .| 0001a4e0 0d 0d e6 22 20 20 54 65 6d 70 6c 48 61 6e 64 6c |..." TemplHandl| 0001a4f0 65 25 28 6e 6f 25 29 3d 6e 65 77 68 61 6e 64 6c |e%(no%)=newhandl| 0001a500 65 25 0d 0d e7 05 cd 0d 0d e8 1c e7 20 6f 6c 64 |e%.......... old| 0001a510 68 61 6e 64 6c 65 25 3d 49 63 45 64 5f 57 69 6e |handle%=IcEd_Win| 0001a520 25 20 8c 0d 0d e9 1a 20 20 49 63 45 64 5f 57 69 |% ..... IcEd_Wi| 0001a530 6e 25 3d 6e 65 77 68 61 6e 64 6c 65 25 0d 0d ea |n%=newhandle%...| 0001a540 17 20 20 e7 20 49 63 45 64 5f 49 63 6f 6e 25 3e |. . IcEd_Icon%>| 0001a550 3d 30 20 8c 0d 0d eb 33 20 20 20 20 49 63 45 64 |=0 ....3 IcEd| 0001a560 5f 49 63 6f 6e 25 3d 2d 31 30 30 30 20 3a 20 f4 |_Icon%=-1000 : .| 0001a570 20 69 6e 76 61 6c 69 64 61 74 65 20 69 63 6f 6e | invalidate icon| 0001a580 20 68 61 6e 64 6c 65 0d 0d ec 07 20 20 cd 0d 0d | handle.... ...| 0001a590 ed 05 cd 0d 0d ee 33 e7 20 6f 6c 64 68 61 6e 64 |......3. oldhand| 0001a5a0 6c 65 25 3d 57 69 6e 45 64 5f 57 69 6e 25 20 8c |le%=WinEd_Win% .| 0001a5b0 20 57 69 6e 45 64 5f 57 69 6e 25 3d 6e 65 77 68 | WinEd_Win%=newh| 0001a5c0 61 6e 64 6c 65 25 0d 0d ef 20 e7 20 6f 6c 64 68 |andle%... . oldh| 0001a5d0 61 6e 64 6c 65 25 3d 4c 61 73 74 4d 65 6e 75 5f |andle%=LastMenu_| 0001a5e0 57 69 6e 25 20 8c 0d 0d f0 1e 20 20 4c 61 73 74 |Win% ..... Last| 0001a5f0 4d 65 6e 75 5f 57 69 6e 25 3d 6e 65 77 68 61 6e |Menu_Win%=newhan| 0001a600 64 6c 65 25 0d 0d f1 17 20 20 4c 61 73 74 4d 65 |dle%.... LastMe| 0001a610 6e 75 5f 49 63 6f 6e 25 3d 2d 31 0d 0d f2 05 cd |nu_Icon%=-1.....| 0001a620 0d 0d f3 10 e7 20 77 61 73 6f 70 65 6e 25 20 8c |..... wasopen% .| 0001a630 0d 0d f4 21 20 20 c8 99 20 22 57 69 6d 70 5f 4f |...! .. "Wimp_O| 0001a640 70 65 6e 57 69 6e 64 6f 77 22 2c 2c 77 62 75 66 |penWindow",,wbuf| 0001a650 25 0d 0d f5 05 cd 0d 0d f6 3b 24 28 54 65 6d 70 |%........;$(Temp| 0001a660 6c 4e 61 6d 65 73 25 2b 32 38 2a 6e 6f 25 2b 31 |lNames%+28*no%+1| 0001a670 34 29 3d a4 77 69 6e 64 6f 77 69 63 6f 6e 28 77 |4)=.windowicon(w| 0001a680 62 75 66 25 21 33 32 2c 77 61 73 6f 70 65 6e 25 |buf%!32,wasopen%| 0001a690 29 0d 0d f7 23 f2 73 65 74 69 63 6f 6e 73 74 61 |)...#.seticonsta| 0001a6a0 74 65 30 28 54 65 6d 70 6c 57 25 2c 6e 6f 25 2c |te0(TemplW%,no%,| 0001a6b0 30 2c 30 29 0d 0d f8 22 e7 20 73 65 74 63 68 61 |0,0)...". setcha| 0001a6c0 6e 67 65 64 25 20 8c 20 f2 73 65 74 63 68 61 6e |nged% . .setchan| 0001a6d0 67 65 64 28 b9 29 0d 0d f9 0f 3d 6e 65 77 68 61 |ged(.)....=newha| 0001a6e0 6e 64 6c 65 25 0d 0d fa 04 0d 0d fb 32 f4 20 2d |ndle%.......2. -| 0001a6f0 2d 2d 20 72 65 70 6c 61 63 65 20 69 63 6f 6e 20 |-- replace icon | 0001a700 64 65 66 69 6e 69 74 69 6f 6e 20 77 69 74 68 20 |definition with | 0001a710 6e 65 77 20 6f 6e 65 20 2d 2d 2d 0d 0d fc 27 dd |new one ---...'.| 0001a720 20 a4 72 65 64 65 66 69 6e 65 69 63 6f 6e 28 77 | .redefineicon(w| 0001a730 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 2c 62 6c 6b |indow%,icon%,blk| 0001a740 25 29 0d 0d fd 0e ea 20 6e 65 77 69 63 6f 6e 25 |%)..... newicon%| 0001a750 0d 0d fe 22 f2 64 65 6c 65 74 65 69 63 6f 6e 28 |...".deleteicon(| 0001a760 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 2c 30 2c |window%,icon%,0,| 0001a770 30 29 0d 0d ff 4b f4 20 6e 65 77 20 69 63 6f 6e |0)...K. new icon| 0001a780 20 64 61 74 61 20 6d 75 73 74 20 73 74 61 72 74 | data must start| 0001a790 20 61 74 20 62 6c 6b 25 2b 38 20 28 61 73 20 72 | at blk%+8 (as r| 0001a7a0 65 74 75 72 6e 65 64 20 62 79 20 57 69 6d 70 5f |eturned by Wimp_| 0001a7b0 47 65 74 49 63 6f 6e 53 74 61 74 65 29 0d 0e 00 |GetIconState)...| 0001a7c0 12 62 6c 6b 25 21 34 3d 77 69 6e 64 6f 77 25 0d |.blk%!4=window%.| 0001a7d0 0e 01 20 6e 65 77 69 63 6f 6e 25 3d a4 63 72 65 |.. newicon%=.cre| 0001a7e0 61 74 65 69 63 6f 6e 28 62 6c 6b 25 2b 34 29 0d |ateicon(blk%+4).| 0001a7f0 0e 02 30 e7 20 28 77 69 6e 64 6f 77 25 3d 49 63 |..0. (window%=Ic| 0001a800 45 64 5f 57 69 6e 25 29 20 80 20 28 69 63 6f 6e |Ed_Win%) . (icon| 0001a810 25 3d 49 63 45 64 5f 49 63 6f 6e 25 29 20 8c 0d |%=IcEd_Icon%) ..| 0001a820 0e 03 19 20 20 49 63 45 64 5f 49 63 6f 6e 25 3d |... IcEd_Icon%=| 0001a830 6e 65 77 69 63 6f 6e 25 0d 0e 04 05 cd 0d 0e 05 |newicon%........| 0001a840 38 e7 20 28 77 69 6e 64 6f 77 25 3d 4c 61 73 74 |8. (window%=Last| 0001a850 4d 65 6e 75 5f 57 69 6e 25 29 20 80 20 28 69 63 |Menu_Win%) . (ic| 0001a860 6f 6e 25 3d 4c 61 73 74 4d 65 6e 75 5f 49 63 6f |on%=LastMenu_Ico| 0001a870 6e 25 29 20 8c 0d 0e 06 1d 20 20 4c 61 73 74 4d |n%) ..... LastM| 0001a880 65 6e 75 5f 49 63 6f 6e 25 3d 6e 65 77 69 63 6f |enu_Icon%=newico| 0001a890 6e 25 0d 0e 07 05 cd 0d 0e 08 0d 3d 6e 65 77 69 |n%.........=newi| 0001a8a0 63 6f 6e 25 0d 0e 09 04 0d 0e 0a 42 f4 20 2d 2d |con%.......B. --| 0001a8b0 2d 20 72 65 6e 75 6d 62 65 72 20 61 6e 20 69 63 |- renumber an ic| 0001a8c0 6f 6e 3b 20 6e 65 77 20 6e 75 6d 62 65 72 20 69 |on; new number i| 0001a8d0 73 20 65 71 75 61 6c 20 74 6f 20 4e 65 78 74 49 |s equal to NextI| 0001a8e0 63 6f 6e 4e 72 25 20 2d 2d 2d 0d 0e 0b 24 dd 20 |conNr% ---...$. | 0001a8f0 f2 72 65 6e 75 6d 62 65 72 69 63 6f 6e 28 f8 20 |.renumbericon(. | 0001a900 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 29 0d 0e |window%,icon%)..| 0001a910 0c 18 ea 20 69 25 2c 69 70 31 25 2c 69 70 32 25 |... i%,ip1%,ip2%| 0001a920 2c 74 65 6d 70 25 0d 0e 0d 15 57 69 6e 42 6c 6b |,temp%....WinBlk| 0001a930 25 21 30 3d 77 69 6e 64 6f 77 25 0d 0e 0e 24 c8 |%!0=window%...$.| 0001a940 99 20 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f |. "Wimp_GetWindo| 0001a950 77 49 6e 66 6f 22 2c 2c 57 69 6e 42 6c 6b 25 0d |wInfo",,WinBlk%.| 0001a960 0e 0f 2c e7 20 69 63 6f 6e 25 3e 3d 57 69 6e 42 |..,. icon%>=WinB| 0001a970 6c 6b 25 21 38 38 20 8c 20 69 63 6f 6e 25 3d 57 |lk%!88 . icon%=W| 0001a980 69 6e 42 6c 6b 25 21 38 38 2d 31 0d 0e 10 38 e7 |inBlk%!88-1...8.| 0001a990 20 4e 65 78 74 49 63 6f 6e 4e 72 25 3e 3d 57 69 | NextIconNr%>=Wi| 0001a9a0 6e 42 6c 6b 25 21 38 38 20 8c 20 4e 65 78 74 49 |nBlk%!88 . NextI| 0001a9b0 63 6f 6e 4e 72 25 3d 57 69 6e 42 6c 6b 25 21 38 |conNr%=WinBlk%!8| 0001a9c0 38 2d 31 0d 0e 11 1c 69 70 31 25 3d 57 69 6e 42 |8-1....ip1%=WinB| 0001a9d0 6c 6b 25 2b 39 32 2b 69 63 6f 6e 25 2a 33 32 0d |lk%+92+icon%*32.| 0001a9e0 0e 12 22 69 70 32 25 3d 57 69 6e 42 6c 6b 25 2b |.."ip2%=WinBlk%+| 0001a9f0 39 32 2b 4e 65 78 74 49 63 6f 6e 4e 72 25 2a 33 |92+NextIconNr%*3| 0001aa00 32 0d 0e 13 30 f4 20 73 77 61 70 20 69 63 6f 6e |2...0. swap icon| 0001aa10 20 64 61 74 61 20 62 6c 6f 63 6b 73 20 69 6e 20 | data blocks in | 0001aa20 77 69 6e 64 6f 77 20 64 65 66 69 6e 69 74 69 6f |window definitio| 0001aa30 6e 0d 0e 14 13 e3 20 69 25 3d 30 20 b8 20 32 38 |n..... i%=0 . 28| 0001aa40 20 88 20 34 0d 0e 15 13 20 20 74 65 6d 70 25 3d | . 4.... temp%=| 0001aa50 69 70 31 25 21 69 25 0d 0e 16 15 20 20 69 70 31 |ip1%!i%.... ip1| 0001aa60 25 21 69 25 3d 69 70 32 25 21 69 25 0d 0e 17 13 |%!i%=ip2%!i%....| 0001aa70 20 20 69 70 32 25 21 69 25 3d 74 65 6d 70 25 0d | ip2%!i%=temp%.| 0001aa80 0e 18 08 ed 20 69 25 0d 0e 19 26 77 69 6e 64 6f |.... i%...&windo| 0001aa90 77 25 3d a4 72 65 64 65 66 69 6e 65 77 69 6e 64 |w%=.redefinewind| 0001aaa0 6f 77 28 57 69 6e 42 6c 6b 25 2c 31 29 0d 0e 1a |ow(WinBlk%,1)...| 0001aab0 05 e1 0d 0e 1b 04 0d 0e 1c 47 f4 20 2d 2d 2d 20 |.........G. --- | 0001aac0 72 65 6e 75 6d 62 65 72 20 73 65 6c 65 63 74 65 |renumber selecte| 0001aad0 64 20 69 63 6f 6e 73 2c 20 6f 72 64 65 72 69 6e |d icons, orderin| 0001aae0 67 20 62 61 73 65 64 20 6f 6e 20 74 6f 70 6c 65 |g based on tople| 0001aaf0 66 74 20 63 6f 6f 72 64 73 20 2d 2d 2d 0d 0e 1d |ft coords ---...| 0001ab00 21 dd 20 f2 72 65 6e 75 6d 62 65 72 69 63 6f 6e |!. .renumbericon| 0001ab10 73 65 6c 28 f8 20 77 69 6e 64 6f 77 25 29 0d 0e |sel(. window%)..| 0001ab20 1e 11 ea 20 69 25 2c 6a 25 2c 66 25 2c 6c 25 0d |... i%,j%,f%,l%.| 0001ab30 0e 1f 15 f2 73 65 6c 5f 67 65 74 28 77 69 6e 64 |....sel_get(wind| 0001ab40 6f 77 25 29 0d 0e 20 22 f2 73 65 6c 5f 73 6f 72 |ow%).. ".sel_sor| 0001ab50 74 28 77 69 6e 64 6f 77 25 2c 31 2c 31 2c 30 2c |t(window%,1,1,0,| 0001ab60 30 2c 30 2c 31 29 0d 0e 21 3e c8 99 20 22 57 69 |0,0,1)..!>.. "Wi| 0001ab70 6d 70 5f 57 68 69 63 68 49 63 6f 6e 22 2c 77 69 |mp_WhichIcon",wi| 0001ab80 6e 64 6f 77 25 2c 53 65 6c 42 6c 6b 32 25 2c 28 |ndow%,SelBlk2%,(| 0001ab90 31 3c 3c 32 31 29 2b 28 31 3c 3c 32 33 29 2c 31 |1<<21)+(1<<23),1| 0001aba0 3c 3c 32 31 0d 0e 22 15 57 69 6e 42 6c 6b 25 21 |<<21..".WinBlk%!| 0001abb0 30 3d 77 69 6e 64 6f 77 25 0d 0e 23 24 c8 99 20 |0=window%..#$.. | 0001abc0 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 49 |"Wimp_GetWindowI| 0001abd0 6e 66 6f 22 2c 2c 57 69 6e 42 6c 6b 25 0d 0e 24 |nfo",,WinBlk%..$| 0001abe0 42 66 25 3d 4e 65 78 74 49 63 6f 6e 4e 72 25 20 |Bf%=NextIconNr% | 0001abf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 | : | 0001ac00 f4 20 66 69 72 73 74 20 6e 75 6d 62 65 72 20 6f |. first number o| 0001ac10 66 20 6e 65 77 20 6e 75 6d 62 65 72 69 6e 67 0d |f new numbering.| 0001ac20 0e 25 30 6c 25 3d 4e 65 78 74 49 63 6f 6e 4e 72 |.%0l%=NextIconNr| 0001ac30 25 2b 4e 72 53 65 6c 65 63 74 65 64 25 2d 31 20 |%+NrSelected%-1 | 0001ac40 3a 20 f4 20 6c 61 73 74 20 6e 75 6d 62 65 72 0d |: . last number.| 0001ac50 0e 26 16 e7 20 6c 25 3e 3d 57 69 6e 42 6c 6b 25 |.&.. l%>=WinBlk%| 0001ac60 21 38 38 20 8c 0d 0e 27 4b 20 20 6c 25 3d 57 69 |!88 ...'K l%=Wi| 0001ac70 6e 42 6c 6b 25 21 38 38 2d 31 20 20 20 20 20 20 |nBlk%!88-1 | 0001ac80 20 20 20 20 20 20 3a 20 f4 20 6d 61 6b 65 20 73 | : . make s| 0001ac90 75 72 65 20 6e 65 77 20 6e 75 6d 62 65 72 73 20 |ure new numbers | 0001aca0 61 72 65 20 77 69 74 68 69 6e 20 72 61 6e 67 65 |are within range| 0001acb0 0d 0e 28 1b 20 20 66 25 3d 6c 25 2d 28 4e 72 53 |..(. f%=l%-(NrS| 0001acc0 65 6c 65 63 74 65 64 25 2d 31 29 0d 0e 29 05 cd |elected%-1)..)..| 0001acd0 0d 0e 2a 08 6a 25 3d 30 0d 0e 2b 1a e3 20 69 25 |..*.j%=0..+.. i%| 0001ace0 3d 30 20 b8 20 4e 72 53 65 6c 65 63 74 65 64 25 |=0 . NrSelected%| 0001acf0 2d 31 0d 0e 2c 3a 20 20 f4 20 72 65 70 6c 61 63 |-1..,: . replac| 0001ad00 65 20 69 63 6f 6e 20 77 69 74 68 20 69 25 2d 74 |e icon with i%-t| 0001ad10 68 20 69 63 6f 6e 20 66 72 6f 6d 20 73 6f 72 74 |h icon from sort| 0001ad20 65 64 20 73 65 6c 65 63 74 69 6f 6e 0d 0e 2d 38 |ed selection..-8| 0001ad30 20 20 f2 72 65 70 6c 61 63 65 69 63 6f 6e 28 57 | .replaceicon(W| 0001ad40 69 6e 42 6c 6b 25 2c 66 25 2b 69 25 2c 77 69 6e |inBlk%,f%+i%,win| 0001ad50 64 6f 77 25 2c 53 65 6c 42 6c 6b 25 21 28 34 2a |dow%,SelBlk%!(4*| 0001ad60 69 25 29 29 0d 0e 2e 28 20 20 e7 20 ac 20 a4 69 |i%))...( . . .i| 0001ad70 63 6f 6e 73 65 6c 65 63 74 65 64 28 77 69 6e 64 |conselected(wind| 0001ad80 6f 77 25 2c 66 25 2b 69 25 29 20 8c 0d 0e 2f 4d |ow%,f%+i%) .../M| 0001ad90 20 20 20 20 f4 20 64 61 74 61 20 6f 66 20 75 6e | . data of un| 0001ada0 73 65 6c 65 63 74 65 64 20 69 63 6f 6e 20 6f 76 |selected icon ov| 0001adb0 65 72 77 72 69 74 74 65 6e 20 2d 20 66 69 6e 64 |erwritten - find| 0001adc0 20 6e 65 77 20 6e 75 6d 62 65 72 20 66 6f 72 20 | new number for | 0001add0 74 68 69 73 20 69 63 6f 6e 0d 0e 30 38 20 20 20 |this icon..08 | 0001ade0 20 c8 95 20 28 53 65 6c 42 6c 6b 32 25 21 28 34 | .. (SelBlk2%!(4| 0001adf0 2a 6a 25 29 3e 3d 66 25 29 20 80 20 28 53 65 6c |*j%)>=f%) . (Sel| 0001ae00 42 6c 6b 32 25 21 28 34 2a 6a 25 29 3c 3d 6c 25 |Blk2%!(4*j%)<=l%| 0001ae10 29 0d 0e 31 0f 20 20 20 20 20 20 6a 25 2b 3d 31 |)..1. j%+=1| 0001ae20 0d 0e 32 09 20 20 20 20 ce 0d 0e 33 3b 20 20 20 |..2. ...3; | 0001ae30 20 f2 72 65 70 6c 61 63 65 69 63 6f 6e 28 57 69 | .replaceicon(Wi| 0001ae40 6e 42 6c 6b 25 2c 53 65 6c 42 6c 6b 32 25 21 28 |nBlk%,SelBlk2%!(| 0001ae50 34 2a 6a 25 29 2c 77 69 6e 64 6f 77 25 2c 66 25 |4*j%),window%,f%| 0001ae60 2b 69 25 29 0d 0e 34 0d 20 20 20 20 6a 25 2b 3d |+i%)..4. j%+=| 0001ae70 31 0d 0e 35 07 20 20 cd 0d 0e 36 08 ed 20 69 25 |1..5. ...6.. i%| 0001ae80 0d 0e 37 26 77 69 6e 64 6f 77 25 3d a4 72 65 64 |..7&window%=.red| 0001ae90 65 66 69 6e 65 77 69 6e 64 6f 77 28 57 69 6e 42 |efinewindow(WinB| 0001aea0 6c 6b 25 2c 31 29 0d 0e 38 14 4e 65 78 74 49 63 |lk%,1)..8.NextIc| 0001aeb0 6f 6e 4e 72 25 3d 6c 25 2b 31 0d 0e 39 05 e1 0d |onNr%=l%+1..9...| 0001aec0 0e 3a 04 0d 0e 3b 3d f4 20 2d 2d 2d 20 73 65 74 |.:...;=. --- set| 0001aed0 20 73 65 6c 65 63 74 65 64 20 69 63 6f 6e 73 20 | selected icons | 0001aee0 74 6f 20 73 61 6d 65 20 73 69 7a 65 20 61 73 20 |to same size as | 0001aef0 74 6f 70 6c 65 66 74 20 69 63 6f 6e 20 2d 2d 2d |topleft icon ---| 0001af00 0d 0e 3c 2d dd 20 f2 73 61 6d 65 73 69 7a 65 69 |..<-. .samesizei| 0001af10 63 6f 6e 73 65 6c 28 77 69 6e 64 6f 77 25 2c 64 |consel(window%,d| 0001af20 65 66 61 75 6c 74 25 2c 64 69 6d 25 29 0d 0e 3d |efault%,dim%)..=| 0001af30 1e ea 20 69 25 2c 78 73 69 7a 65 25 2c 79 73 69 |.. i%,xsize%,ysi| 0001af40 7a 65 25 2c 68 61 6e 64 6c 65 25 0d 0e 3e 15 f2 |ze%,handle%..>..| 0001af50 73 65 6c 5f 67 65 74 28 77 69 6e 64 6f 77 25 29 |sel_get(window%)| 0001af60 0d 0e 3f 27 e7 20 28 4e 72 53 65 6c 65 63 74 65 |..?'. (NrSelecte| 0001af70 64 25 3d 30 29 20 80 20 28 64 65 66 61 75 6c 74 |d%=0) . (default| 0001af80 25 3e 3d 30 29 20 8c 0d 0e 40 18 20 20 53 65 6c |%>=0) ...@. Sel| 0001af90 42 6c 6b 25 21 30 3d 64 65 66 61 75 6c 74 25 0d |Blk%!0=default%.| 0001afa0 0e 41 13 20 20 4e 72 53 65 6c 65 63 74 65 64 25 |.A. NrSelected%| 0001afb0 3d 31 0d 0e 42 05 cd 0d 0e 43 15 e7 20 4e 72 53 |=1..B....C.. NrS| 0001afc0 65 6c 65 63 74 65 64 25 3e 30 20 8c 0d 0e 44 24 |elected%>0 ...D$| 0001afd0 20 20 f2 73 65 6c 5f 73 6f 72 74 28 77 69 6e 64 | .sel_sort(wind| 0001afe0 6f 77 25 2c 31 2c 31 2c 30 2c 30 2c 30 2c 31 29 |ow%,1,1,0,0,0,1)| 0001aff0 0d 0e 45 18 20 20 49 63 6f 6e 42 6c 6b 25 21 30 |..E. IconBlk%!0| 0001b000 3d 77 69 6e 64 6f 77 25 0d 0e 46 1a 20 20 49 63 |=window%..F. Ic| 0001b010 6f 6e 42 6c 6b 25 21 34 3d 53 65 6c 42 6c 6b 25 |onBlk%!4=SelBlk%| 0001b020 21 30 0d 0e 47 26 20 20 c8 99 20 22 57 69 6d 70 |!0..G& .. "Wimp| 0001b030 5f 47 65 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c |_GetIconState",,| 0001b040 49 63 6f 6e 42 6c 6b 25 0d 0e 48 23 20 20 78 73 |IconBlk%..H# xs| 0001b050 69 7a 65 25 3d 49 63 6f 6e 42 6c 6b 25 21 31 36 |ize%=IconBlk%!16| 0001b060 2d 49 63 6f 6e 42 6c 6b 25 21 38 0d 0e 49 24 20 |-IconBlk%!8..I$ | 0001b070 20 79 73 69 7a 65 25 3d 49 63 6f 6e 42 6c 6b 25 | ysize%=IconBlk%| 0001b080 21 32 30 2d 49 63 6f 6e 42 6c 6b 25 21 31 32 0d |!20-IconBlk%!12.| 0001b090 0e 4a 1c 20 20 e3 20 69 25 3d 30 20 b8 20 4e 72 |.J. . i%=0 . Nr| 0001b0a0 53 65 6c 65 63 74 65 64 25 2d 31 0d 0e 4b 1a 20 |Selected%-1..K. | 0001b0b0 20 20 20 49 63 6f 6e 42 6c 6b 25 21 30 3d 77 69 | IconBlk%!0=wi| 0001b0c0 6e 64 6f 77 25 0d 0e 4c 21 20 20 20 20 49 63 6f |ndow%..L! Ico| 0001b0d0 6e 42 6c 6b 25 21 34 3d 53 65 6c 42 6c 6b 25 21 |nBlk%!4=SelBlk%!| 0001b0e0 28 34 2a 69 25 29 0d 0e 4d 28 20 20 20 20 c8 99 |(4*i%)..M( ..| 0001b0f0 20 22 57 69 6d 70 5f 47 65 74 49 63 6f 6e 53 74 | "Wimp_GetIconSt| 0001b100 61 74 65 22 2c 2c 49 63 6f 6e 42 6c 6b 25 0d 0e |ate",,IconBlk%..| 0001b110 4e 31 20 20 20 20 e7 20 64 69 6d 25 3c 3e 32 20 |N1 . dim%<>2 | 0001b120 8c 20 49 63 6f 6e 42 6c 6b 25 21 31 36 3d 49 63 |. IconBlk%!16=Ic| 0001b130 6f 6e 42 6c 6b 25 21 38 2b 78 73 69 7a 65 25 0d |onBlk%!8+xsize%.| 0001b140 0e 4f 32 20 20 20 20 e7 20 64 69 6d 25 3c 3e 31 |.O2 . dim%<>1| 0001b150 20 8c 20 49 63 6f 6e 42 6c 6b 25 21 32 30 3d 49 | . IconBlk%!20=I| 0001b160 63 6f 6e 42 6c 6b 25 21 31 32 2b 79 73 69 7a 65 |conBlk%!12+ysize| 0001b170 25 0d 0e 50 3e 20 20 20 20 68 61 6e 64 6c 65 25 |%..P> handle%| 0001b180 3d a4 72 65 64 65 66 69 6e 65 69 63 6f 6e 28 77 |=.redefineicon(w| 0001b190 69 6e 64 6f 77 25 2c 53 65 6c 42 6c 6b 25 21 28 |indow%,SelBlk%!(| 0001b1a0 34 2a 69 25 29 2c 49 63 6f 6e 42 6c 6b 25 29 0d |4*i%),IconBlk%).| 0001b1b0 0e 51 0a 20 20 ed 20 69 25 0d 0e 52 05 cd 0d 0e |.Q. . i%..R....| 0001b1c0 53 05 e1 0d 0e 54 04 0d 0e 55 49 f4 20 2d 2d 2d |S....T...UI. ---| 0001b1d0 20 69 6e 20 77 62 75 66 25 2c 20 72 65 70 6c 61 | in wbuf%, repla| 0001b1e0 63 65 20 64 61 74 61 20 66 6f 72 20 69 63 6f 6e |ce data for icon| 0001b1f0 20 69 63 31 25 20 77 69 74 68 20 64 61 74 61 20 | ic1% with data | 0001b200 6f 66 20 69 63 6f 6e 20 69 63 32 25 20 2d 2d 2d |of icon ic2% ---| 0001b210 0d 0e 56 2b dd 20 f2 72 65 70 6c 61 63 65 69 63 |..V+. .replaceic| 0001b220 6f 6e 28 77 62 75 66 25 2c 69 63 31 25 2c 77 69 |on(wbuf%,ic1%,wi| 0001b230 6e 64 6f 77 25 2c 69 63 32 25 29 0d 0e 57 17 ea |ndow%,ic2%)..W..| 0001b240 20 69 62 25 2c 74 65 6d 70 31 25 2c 74 65 6d 70 | ib%,temp1%,temp| 0001b250 32 25 0d 0e 58 18 69 62 25 3d 77 62 75 66 25 2b |2%..X.ib%=wbuf%+| 0001b260 39 32 2b 33 32 2a 69 63 31 25 0d 0e 59 3f 74 65 |92+32*ic1%..Y?te| 0001b270 6d 70 31 25 3d 69 62 25 21 28 2d 38 29 20 3a 20 |mp1%=ib%!(-8) : | 0001b280 f4 20 73 61 76 65 20 32 20 77 6f 72 64 73 20 6a |. save 2 words j| 0001b290 75 73 74 20 62 65 66 6f 72 65 20 74 68 65 20 69 |ust before the i| 0001b2a0 63 6f 6e 20 62 6c 6f 63 6b 0d 0e 5a 13 74 65 6d |con block..Z.tem| 0001b2b0 70 32 25 3d 69 62 25 21 28 2d 34 29 0d 0e 5b 14 |p2%=ib%!(-4)..[.| 0001b2c0 69 62 25 21 28 2d 38 29 3d 77 69 6e 64 6f 77 25 |ib%!(-8)=window%| 0001b2d0 0d 0e 5c 11 69 62 25 21 28 2d 34 29 3d 69 63 32 |..\.ib%!(-4)=ic2| 0001b2e0 25 0d 0e 5d 39 c8 99 20 22 57 69 6d 70 5f 47 65 |%..]9.. "Wimp_Ge| 0001b2f0 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c 69 62 25 |tIconState",,ib%| 0001b300 2d 38 20 3a 20 f4 20 67 65 74 20 69 63 6f 6e 20 |-8 : . get icon | 0001b310 64 61 74 61 20 62 6c 6f 63 6b 0d 0e 5e 2b 69 62 |data block..^+ib| 0001b320 25 21 28 2d 38 29 3d 74 65 6d 70 31 25 20 3a 20 |%!(-8)=temp1% : | 0001b330 f4 20 72 65 73 74 6f 72 65 20 74 68 65 20 32 20 |. restore the 2 | 0001b340 77 6f 72 64 73 0d 0e 5f 13 69 62 25 21 28 2d 34 |words.._.ib%!(-4| 0001b350 29 3d 74 65 6d 70 32 25 0d 0e 60 05 e1 0d 0e 61 |)=temp2%..`....a| 0001b360 04 0d 0e 62 31 f4 20 2d 2d 2d 20 75 70 64 61 74 |...b1. --- updat| 0001b370 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 69 63 |e contents of ic| 0001b380 6f 6e 20 69 6e 66 6f 20 77 69 6e 64 6f 77 20 2d |on info window -| 0001b390 2d 2d 0d 0e 63 13 dd 20 f2 69 63 69 6e 66 5f 75 |--..c.. .icinf_u| 0001b3a0 70 64 61 74 65 0d 0e 64 35 ea 20 6e 6f 25 2c 74 |pdate..d5. no%,t| 0001b3b0 24 2c 69 24 2c 78 6d 69 6e 24 2c 78 6d 61 78 24 |$,i$,xmin$,xmax$| 0001b3c0 2c 79 6d 69 6e 24 2c 79 6d 61 78 24 2c 73 24 2c |,ymin$,ymax$,s$,| 0001b3d0 6d 78 25 2c 6d 79 25 2c 6d 24 0d 0e 65 2b ea 20 |mx%,my%,m$..e+. | 0001b3e0 73 68 6f 77 69 63 6f 6e 64 61 74 61 25 2c 78 6d |showicondata%,xm| 0001b3f0 69 6e 25 2c 78 6d 61 78 25 2c 79 6d 69 6e 25 2c |in%,xmax%,ymin%,| 0001b400 79 6d 61 78 25 0d 0e 66 26 c8 99 20 22 57 69 6d |ymax%..f&.. "Wim| 0001b410 70 5f 47 65 74 50 6f 69 6e 74 65 72 49 6e 66 6f |p_GetPointerInfo| 0001b420 22 2c 2c 50 74 72 49 6e 66 6f 25 0d 0e 67 23 6e |",,PtrInfo%..g#n| 0001b430 6f 25 3d a4 77 68 69 63 68 74 65 6d 70 6c 61 74 |o%=.whichtemplat| 0001b440 65 28 50 74 72 49 6e 66 6f 25 21 31 32 29 0d 0e |e(PtrInfo%!12)..| 0001b450 68 09 74 24 3d 22 22 0d 0e 69 09 69 24 3d 22 22 |h.t$=""..i.i$=""| 0001b460 0d 0e 6a 0c 78 6d 69 6e 24 3d 22 22 0d 0e 6b 0c |..j.xmin$=""..k.| 0001b470 78 6d 61 78 24 3d 22 22 0d 0e 6c 0c 79 6d 69 6e |xmax$=""..l.ymin| 0001b480 24 3d 22 22 0d 0e 6d 0c 79 6d 61 78 24 3d 22 22 |$=""..m.ymax$=""| 0001b490 0d 0e 6e 09 73 24 3d 22 22 0d 0e 6f 09 6d 24 3d |..n.s$=""..o.m$=| 0001b4a0 22 22 0d 0e 70 13 73 68 6f 77 69 63 6f 6e 64 61 |""..p.showiconda| 0001b4b0 74 61 25 3d a3 0d 0e 71 10 e7 20 28 6e 6f 25 3e |ta%=...q.. (no%>| 0001b4c0 3d 30 29 20 8c 0d 0e 72 1e 20 20 74 24 3d 24 28 |=0) ...r. t$=$(| 0001b4d0 54 65 6d 70 6c 4e 61 6d 65 73 25 2b 32 38 2a 6e |TemplNames%+28*n| 0001b4e0 6f 25 29 0d 0e 73 19 20 20 e7 20 50 74 72 49 6e |o%)..s. . PtrIn| 0001b4f0 66 6f 25 21 31 36 3e 3d 2d 31 20 8c 0d 0e 74 1f |fo%!16>=-1 ...t.| 0001b500 20 20 20 20 53 63 72 61 70 42 6c 6b 25 21 30 3d | ScrapBlk%!0=| 0001b510 50 74 72 49 6e 66 6f 25 21 31 32 0d 0e 75 2b 20 |PtrInfo%!12..u+ | 0001b520 20 20 20 c8 99 20 22 57 69 6d 70 5f 47 65 74 57 | .. "Wimp_GetW| 0001b530 69 6e 64 6f 77 53 74 61 74 65 22 2c 2c 53 63 72 |indowState",,Scr| 0001b540 61 70 42 6c 6b 25 0d 0e 76 31 20 20 20 20 6d 78 |apBlk%..v1 mx| 0001b550 25 3d 50 74 72 49 6e 66 6f 25 21 30 2d 28 53 63 |%=PtrInfo%!0-(Sc| 0001b560 72 61 70 42 6c 6b 25 21 34 2d 53 63 72 61 70 42 |rapBlk%!4-ScrapB| 0001b570 6c 6b 25 21 32 30 29 0d 0e 77 32 20 20 20 20 6d |lk%!20)..w2 m| 0001b580 79 25 3d 50 74 72 49 6e 66 6f 25 21 34 2d 28 53 |y%=PtrInfo%!4-(S| 0001b590 63 72 61 70 42 6c 6b 25 21 31 36 2d 53 63 72 61 |crapBlk%!16-Scra| 0001b5a0 70 42 6c 6b 25 21 32 34 29 0d 0e 78 1c 20 20 20 |pBlk%!24)..x. | 0001b5b0 20 6d 24 3d c3 28 6d 78 25 29 2b 22 2c 22 2b c3 | m$=.(mx%)+","+.| 0001b5c0 28 6d 79 25 29 0d 0e 79 17 20 20 20 20 c8 8e 20 |(my%)..y. .. | 0001b5d0 44 72 61 67 5f 54 79 70 65 25 20 ca 0d 0e 7a 0d |Drag_Type% ...z.| 0001b5e0 20 20 20 20 20 20 c9 20 30 0d 0e 7b 4b 20 20 20 | . 0..{K | 0001b5f0 20 20 20 20 20 f4 20 6d 6f 76 69 6e 67 2f 72 65 | . moving/re| 0001b600 73 69 7a 69 6e 67 20 69 63 6f 6e 28 73 29 20 2d |sizing icon(s) -| 0001b610 20 73 68 6f 77 20 63 75 72 72 65 6e 74 20 63 6f | show current co| 0001b620 6f 72 64 69 6e 61 74 65 73 20 6f 66 20 64 72 61 |ordinates of dra| 0001b630 67 62 6f 78 0d 0e 7c 14 20 20 20 20 20 20 20 20 |gbox..|. | 0001b640 69 24 3d 22 2e 2e 2e 22 0d 0e 7d 2d 20 20 20 20 |i$="..."..}- | 0001b650 20 20 20 20 78 6d 69 6e 25 3d 6d 78 25 2d 28 44 | xmin%=mx%-(D| 0001b660 72 61 67 5f 50 74 72 78 25 2d 44 72 61 67 42 6c |rag_Ptrx%-DragBl| 0001b670 6b 25 21 38 29 0d 0e 7e 2e 20 20 20 20 20 20 20 |k%!8)..~. | 0001b680 20 79 6d 69 6e 25 3d 6d 79 25 2d 28 44 72 61 67 | ymin%=my%-(Drag| 0001b690 5f 50 74 72 79 25 2d 44 72 61 67 42 6c 6b 25 21 |_Ptry%-DragBlk%!| 0001b6a0 31 32 29 0d 0e 7f 26 20 20 20 20 20 20 20 20 78 |12)...& x| 0001b6b0 6d 61 78 25 3d 78 6d 69 6e 25 2b 44 72 61 67 5f |max%=xmin%+Drag_| 0001b6c0 42 6f 78 53 69 7a 65 78 25 0d 0e 80 26 20 20 20 |BoxSizex%...& | 0001b6d0 20 20 20 20 20 79 6d 61 78 25 3d 79 6d 69 6e 25 | ymax%=ymin%| 0001b6e0 2b 44 72 61 67 5f 42 6f 78 53 69 7a 65 79 25 0d |+Drag_BoxSizey%.| 0001b6f0 0e 81 1b 20 20 20 20 20 20 20 20 73 68 6f 77 69 |... showi| 0001b700 63 6f 6e 64 61 74 61 25 3d b9 0d 0e 82 0d 20 20 |condata%=..... | 0001b710 20 20 20 20 c9 20 31 0d 0e 83 44 20 20 20 20 20 | . 1...D | 0001b720 20 20 20 f4 20 72 65 73 69 7a 69 6e 67 20 69 63 | . resizing ic| 0001b730 6f 6e 28 73 29 20 2d 20 73 68 6f 77 20 63 75 72 |on(s) - show cur| 0001b740 72 65 6e 74 20 63 6f 6f 72 64 69 6e 61 74 65 73 |rent coordinates| 0001b750 20 6f 66 20 64 72 61 67 62 6f 78 0d 0e 84 14 20 | of dragbox.... | 0001b760 20 20 20 20 20 20 20 69 24 3d 22 2e 2e 2e 22 0d | i$="...".| 0001b770 0e 85 1d 20 20 20 20 20 20 20 20 78 6d 69 6e 25 |... xmin%| 0001b780 3d 44 72 61 67 5f 42 6f 78 30 78 25 0d 0e 86 1d |=Drag_Box0x%....| 0001b790 20 20 20 20 20 20 20 20 79 6d 69 6e 25 3d 44 72 | ymin%=Dr| 0001b7a0 61 67 5f 42 6f 78 30 79 25 0d 0e 87 26 20 20 20 |ag_Box0y%...& | 0001b7b0 20 20 20 20 20 78 6d 61 78 25 3d 78 6d 69 6e 25 | xmax%=xmin%| 0001b7c0 2b 44 72 61 67 5f 42 6f 78 53 69 7a 65 78 25 0d |+Drag_BoxSizex%.| 0001b7d0 0e 88 26 20 20 20 20 20 20 20 20 79 6d 61 78 25 |..& ymax%| 0001b7e0 3d 79 6d 69 6e 25 2b 44 72 61 67 5f 42 6f 78 53 |=ymin%+Drag_BoxS| 0001b7f0 69 7a 65 79 25 0d 0e 89 1c 20 20 20 20 20 20 20 |izey%.... | 0001b800 20 c8 8e 20 4d 6f 75 73 65 53 68 61 70 65 25 20 | .. MouseShape% | 0001b810 ca 0d 0e 8a 32 20 20 20 20 20 20 20 20 20 20 c9 |....2 .| 0001b820 20 32 20 3a 20 79 6d 61 78 25 2b 3d 28 50 74 72 | 2 : ymax%+=(Ptr| 0001b830 49 6e 66 6f 25 21 34 2d 44 72 61 67 5f 50 74 72 |Info%!4-Drag_Ptr| 0001b840 79 25 29 0d 0e 8b 32 20 20 20 20 20 20 20 20 20 |y%)...2 | 0001b850 20 c9 20 33 20 3a 20 78 6d 61 78 25 2b 3d 28 50 | . 3 : xmax%+=(P| 0001b860 74 72 49 6e 66 6f 25 21 30 2d 44 72 61 67 5f 50 |trInfo%!0-Drag_P| 0001b870 74 72 78 25 29 0d 0e 8c 32 20 20 20 20 20 20 20 |trx%)...2 | 0001b880 20 20 20 c9 20 34 20 3a 20 79 6d 69 6e 25 2b 3d | . 4 : ymin%+=| 0001b890 28 50 74 72 49 6e 66 6f 25 21 34 2d 44 72 61 67 |(PtrInfo%!4-Drag| 0001b8a0 5f 50 74 72 79 25 29 0d 0e 8d 32 20 20 20 20 20 |_Ptry%)...2 | 0001b8b0 20 20 20 20 20 c9 20 35 20 3a 20 78 6d 69 6e 25 | . 5 : xmin%| 0001b8c0 2b 3d 28 50 74 72 49 6e 66 6f 25 21 30 2d 44 72 |+=(PtrInfo%!0-Dr| 0001b8d0 61 67 5f 50 74 72 78 25 29 0d 0e 8e 0d 20 20 20 |ag_Ptrx%).... | 0001b8e0 20 20 20 20 20 cb 0d 0e 8f 1b 20 20 20 20 20 20 | ..... | 0001b8f0 20 20 73 68 6f 77 69 63 6f 6e 64 61 74 61 25 3d | showicondata%=| 0001b900 b9 0d 0e 90 0b 20 20 20 20 20 20 7f 0d 0e 91 2d |..... ....-| 0001b910 20 20 20 20 20 20 20 20 f4 20 73 68 6f 77 20 64 | . show d| 0001b920 61 74 61 20 6f 66 20 69 63 6f 6e 20 75 6e 64 65 |ata of icon unde| 0001b930 72 20 70 6f 69 6e 74 65 72 0d 0e 92 1e 20 20 20 |r pointer.... | 0001b940 20 20 20 20 20 e7 20 50 74 72 49 6e 66 6f 25 21 | . PtrInfo%!| 0001b950 31 36 3e 3d 30 20 8c 0d 0e 93 1f 20 20 20 20 20 |16>=0 ..... | 0001b960 20 20 20 20 20 69 24 3d c3 28 50 74 72 49 6e 66 | i$=.(PtrInf| 0001b970 6f 25 21 31 36 29 0d 0e 94 25 20 20 20 20 20 20 |o%!16)...% | 0001b980 20 20 20 20 53 63 72 61 70 42 6c 6b 25 21 30 3d | ScrapBlk%!0=| 0001b990 50 74 72 49 6e 66 6f 25 21 31 32 0d 0e 95 25 20 |PtrInfo%!12...% | 0001b9a0 20 20 20 20 20 20 20 20 20 53 63 72 61 70 42 6c | ScrapBl| 0001b9b0 6b 25 21 34 3d 50 74 72 49 6e 66 6f 25 21 31 36 |k%!4=PtrInfo%!16| 0001b9c0 0d 0e 96 2f 20 20 20 20 20 20 20 20 20 20 c8 99 |.../ ..| 0001b9d0 20 22 57 69 6d 70 5f 47 65 74 49 63 6f 6e 53 74 | "Wimp_GetIconSt| 0001b9e0 61 74 65 22 2c 2c 53 63 72 61 70 42 6c 6b 25 0d |ate",,ScrapBlk%.| 0001b9f0 0e 97 1f 20 20 20 20 20 20 20 20 20 20 78 6d 69 |... xmi| 0001ba00 6e 25 3d 53 63 72 61 70 42 6c 6b 25 21 38 0d 0e |n%=ScrapBlk%!8..| 0001ba10 98 20 20 20 20 20 20 20 20 20 20 20 78 6d 61 78 |. xmax| 0001ba20 25 3d 53 63 72 61 70 42 6c 6b 25 21 31 36 0d 0e |%=ScrapBlk%!16..| 0001ba30 99 20 20 20 20 20 20 20 20 20 20 20 79 6d 69 6e |. ymin| 0001ba40 25 3d 53 63 72 61 70 42 6c 6b 25 21 31 32 0d 0e |%=ScrapBlk%!12..| 0001ba50 9a 20 20 20 20 20 20 20 20 20 20 20 79 6d 61 78 |. ymax| 0001ba60 25 3d 53 63 72 61 70 42 6c 6b 25 21 32 30 0d 0e |%=ScrapBlk%!20..| 0001ba70 9b 1d 20 20 20 20 20 20 20 20 20 20 73 68 6f 77 |.. show| 0001ba80 69 63 6f 6e 64 61 74 61 25 3d b9 0d 0e 9c 0d 20 |icondata%=..... | 0001ba90 20 20 20 20 20 20 20 cd 0d 0e 9d 09 20 20 20 20 | ..... | 0001baa0 cb 0d 0e 9e 19 20 20 20 20 e7 20 73 68 6f 77 69 |..... . showi| 0001bab0 63 6f 6e 64 61 74 61 25 20 8c 0d 0e 9f 18 20 20 |condata% ..... | 0001bac0 20 20 20 20 78 6d 69 6e 24 3d c3 28 78 6d 69 6e | xmin$=.(xmin| 0001bad0 25 29 0d 0e a0 18 20 20 20 20 20 20 78 6d 61 78 |%).... xmax| 0001bae0 24 3d c3 28 78 6d 61 78 25 29 0d 0e a1 18 20 20 |$=.(xmax%).... | 0001baf0 20 20 20 20 79 6d 69 6e 24 3d c3 28 79 6d 69 6e | ymin$=.(ymin| 0001bb00 25 29 0d 0e a2 18 20 20 20 20 20 20 79 6d 61 78 |%).... ymax| 0001bb10 24 3d c3 28 79 6d 61 78 25 29 0d 0e a3 2e 20 20 |$=.(ymax%).... | 0001bb20 20 20 20 20 73 24 3d c3 28 78 6d 61 78 25 2d 78 | s$=.(xmax%-x| 0001bb30 6d 69 6e 25 29 2b 22 78 22 2b c3 28 79 6d 61 78 |min%)+"x"+.(ymax| 0001bb40 25 2d 79 6d 69 6e 25 29 0d 0e a4 09 20 20 20 20 |%-ymin%).... | 0001bb50 cd 0d 0e a5 07 20 20 cd 0d 0e a6 05 cd 0d 0e a7 |..... .........| 0001bb60 2e e7 20 74 24 3c 3e 24 28 49 63 6f 6e 54 65 78 |.. t$<>$(IconTex| 0001bb70 74 25 28 37 29 29 20 8c 20 f2 73 65 74 69 63 6f |t%(7)) . .setico| 0001bb80 6e 74 65 78 74 28 37 2c 74 24 29 0d 0e a8 2e e7 |ntext(7,t$).....| 0001bb90 20 69 24 3c 3e 24 28 49 63 6f 6e 54 65 78 74 25 | i$<>$(IconText%| 0001bba0 28 38 29 29 20 8c 20 f2 73 65 74 69 63 6f 6e 74 |(8)) . .seticont| 0001bbb0 65 78 74 28 38 2c 69 24 29 0d 0e a9 34 e7 20 78 |ext(8,i$)...4. x| 0001bbc0 6d 69 6e 24 3c 3e 24 28 49 63 6f 6e 54 65 78 74 |min$<>$(IconText| 0001bbd0 25 28 39 29 29 20 8c 20 f2 73 65 74 69 63 6f 6e |%(9)) . .seticon| 0001bbe0 74 65 78 74 28 39 2c 78 6d 69 6e 24 29 0d 0e aa |text(9,xmin$)...| 0001bbf0 36 e7 20 78 6d 61 78 24 3c 3e 24 28 49 63 6f 6e |6. xmax$<>$(Icon| 0001bc00 54 65 78 74 25 28 32 36 29 29 20 8c 20 f2 73 65 |Text%(26)) . .se| 0001bc10 74 69 63 6f 6e 74 65 78 74 28 32 36 2c 78 6d 61 |ticontext(26,xma| 0001bc20 78 24 29 0d 0e ab 36 e7 20 79 6d 69 6e 24 3c 3e |x$)...6. ymin$<>| 0001bc30 24 28 49 63 6f 6e 54 65 78 74 25 28 31 30 29 29 |$(IconText%(10))| 0001bc40 20 8c 20 f2 73 65 74 69 63 6f 6e 74 65 78 74 28 | . .seticontext(| 0001bc50 31 30 2c 79 6d 69 6e 24 29 0d 0e ac 36 e7 20 79 |10,ymin$)...6. y| 0001bc60 6d 61 78 24 3c 3e 24 28 49 63 6f 6e 54 65 78 74 |max$<>$(IconText| 0001bc70 25 28 32 37 29 29 20 8c 20 f2 73 65 74 69 63 6f |%(27)) . .setico| 0001bc80 6e 74 65 78 74 28 32 37 2c 79 6d 61 78 24 29 0d |ntext(27,ymax$).| 0001bc90 0e ad 30 e7 20 73 24 3c 3e 24 28 49 63 6f 6e 54 |..0. s$<>$(IconT| 0001bca0 65 78 74 25 28 31 31 29 29 20 8c 20 f2 73 65 74 |ext%(11)) . .set| 0001bcb0 69 63 6f 6e 74 65 78 74 28 31 31 2c 73 24 29 0d |icontext(11,s$).| 0001bcc0 0e ae 30 e7 20 6d 24 3c 3e 24 28 49 63 6f 6e 54 |..0. m$<>$(IconT| 0001bcd0 65 78 74 25 28 32 34 29 29 20 8c 20 f2 73 65 74 |ext%(24)) . .set| 0001bce0 69 63 6f 6e 74 65 78 74 28 32 34 2c 6d 24 29 0d |icontext(24,m$).| 0001bcf0 0e af 05 e1 0d 0e b0 04 0d 0e b1 1a dd 20 f2 61 |............. .a| 0001bd00 6c 69 67 6e 69 63 6f 6e 73 28 77 69 6e 64 6f 77 |lignicons(window| 0001bd10 25 29 0d 0e b2 2d ea 20 6d 6f 76 65 25 2c 69 6d |%)...-. move%,im| 0001bd20 61 73 6b 25 2c 74 79 70 65 25 2c 69 25 2c 61 6e |ask%,type%,i%,an| 0001bd30 63 68 6f 72 78 25 2c 61 6e 63 68 6f 72 79 25 0d |chorx%,anchory%.| 0001bd40 0e b3 21 ea 20 64 78 31 25 2c 64 78 32 25 2c 64 |..!. dx1%,dx2%,d| 0001bd50 79 31 25 2c 64 79 32 25 2c 68 61 6e 64 6c 65 25 |y1%,dy2%,handle%| 0001bd60 0d 0e b4 22 6d 6f 76 65 25 3d a4 69 63 6f 6e 73 |..."move%=.icons| 0001bd70 65 6c 65 63 74 65 64 28 41 6c 69 67 6e 57 25 2c |elected(AlignW%,| 0001bd80 38 29 0d 0e b5 1b 69 6d 61 73 6b 25 3d 28 33 31 |8)....imask%=(31| 0001bd90 3c 3c 31 36 29 2b 28 31 3c 3c 32 31 29 0d 0e b6 |<<16)+(1<<21)...| 0001bda0 3e c8 99 20 22 57 69 6d 70 5f 57 68 69 63 68 49 |>.. "Wimp_WhichI| 0001bdb0 63 6f 6e 22 2c 41 6c 69 67 6e 57 25 2c 53 65 6c |con",AlignW%,Sel| 0001bdc0 42 6c 6b 25 2c 69 6d 61 73 6b 25 2c 28 31 3c 3c |Blk%,imask%,(1<<| 0001bdd0 31 36 29 2b 28 31 3c 3c 32 31 29 0d 0e b7 13 74 |16)+(1<<21)....t| 0001bde0 79 70 65 25 3d 53 65 6c 42 6c 6b 25 21 30 0d 0e |ype%=SelBlk%!0..| 0001bdf0 b8 15 f2 73 65 6c 5f 67 65 74 28 77 69 6e 64 6f |...sel_get(windo| 0001be00 77 25 29 0d 0e b9 15 e7 20 4e 72 53 65 6c 65 63 |w%)..... NrSelec| 0001be10 74 65 64 25 3e 31 20 8c 0d 0e ba 10 20 20 c8 8e |ted%>1 ..... ..| 0001be20 20 74 79 70 65 25 20 ca 0d 0e bb 2e 20 20 20 20 | type% ..... | 0001be30 c9 20 32 2c 33 20 3a 20 f2 73 65 6c 5f 73 6f 72 |. 2,3 : .sel_sor| 0001be40 74 28 77 69 6e 64 6f 77 25 2c 30 2c 30 2c 31 2c |t(window%,0,0,1,| 0001be50 30 2c 31 2c 31 29 0d 0e bc 2e 20 20 20 20 c9 20 |0,1,1).... . | 0001be60 34 20 20 20 3a 20 f2 73 65 6c 5f 73 6f 72 74 28 |4 : .sel_sort(| 0001be70 77 69 6e 64 6f 77 25 2c 30 2c 31 2c 30 2c 30 2c |window%,0,1,0,0,| 0001be80 31 2c 31 29 0d 0e bd 2e 20 20 20 20 c9 20 35 2c |1,1).... . 5,| 0001be90 36 20 3a 20 f2 73 65 6c 5f 73 6f 72 74 28 77 69 |6 : .sel_sort(wi| 0001bea0 6e 64 6f 77 25 2c 31 2c 31 2c 30 2c 31 2c 30 2c |ndow%,1,1,0,1,0,| 0001beb0 30 29 0d 0e be 2e 20 20 20 20 c9 20 37 20 20 20 |0).... . 7 | 0001bec0 3a 20 f2 73 65 6c 5f 73 6f 72 74 28 77 69 6e 64 |: .sel_sort(wind| 0001bed0 6f 77 25 2c 31 2c 30 2c 31 2c 31 2c 31 2c 31 29 |ow%,1,0,1,1,1,1)| 0001bee0 0d 0e bf 07 20 20 cb 0d 0e c0 18 20 20 49 63 6f |.... ..... Ico| 0001bef0 6e 42 6c 6b 25 21 30 3d 77 69 6e 64 6f 77 25 0d |nBlk%!0=window%.| 0001bf00 0e c1 1a 20 20 49 63 6f 6e 42 6c 6b 25 21 34 3d |... IconBlk%!4=| 0001bf10 53 65 6c 42 6c 6b 25 21 30 0d 0e c2 26 20 20 c8 |SelBlk%!0...& .| 0001bf20 99 20 22 57 69 6d 70 5f 47 65 74 49 63 6f 6e 53 |. "Wimp_GetIconS| 0001bf30 74 61 74 65 22 2c 2c 49 63 6f 6e 42 6c 6b 25 0d |tate",,IconBlk%.| 0001bf40 0e c3 10 20 20 c8 8e 20 74 79 70 65 25 20 ca 0d |... .. type% ..| 0001bf50 0e c4 0b 20 20 20 20 c9 20 32 0d 0e c5 45 20 20 |... . 2...E | 0001bf60 20 20 20 20 61 6e 63 68 6f 72 78 25 3d 49 63 6f | anchorx%=Ico| 0001bf70 6e 42 6c 6b 25 21 38 20 20 20 20 20 20 20 20 20 |nBlk%!8 | 0001bf80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 0001bf90 20 20 20 20 20 20 20 3a 20 f4 20 6c 65 66 74 0d | : . left.| 0001bfa0 0e c6 0b 20 20 20 20 c9 20 33 0d 0e c7 47 20 20 |... . 3...G | 0001bfb0 20 20 20 20 61 6e 63 68 6f 72 78 25 3d 49 63 6f | anchorx%=Ico| 0001bfc0 6e 42 6c 6b 25 21 38 2b 28 49 63 6f 6e 42 6c 6b |nBlk%!8+(IconBlk| 0001bfd0 25 21 31 36 2d 49 63 6f 6e 42 6c 6b 25 21 38 29 |%!16-IconBlk%!8)| 0001bfe0 81 32 20 20 20 3a 20 f4 20 68 20 63 65 6e 74 72 |.2 : . h centr| 0001bff0 65 0d 0e c8 0b 20 20 20 20 c9 20 34 0d 0e c9 46 |e.... . 4...F| 0001c000 20 20 20 20 20 20 61 6e 63 68 6f 72 78 25 3d 49 | anchorx%=I| 0001c010 63 6f 6e 42 6c 6b 25 21 31 36 20 20 20 20 20 20 |conBlk%!16 | 0001c020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 0001c030 20 20 20 20 20 20 20 20 20 3a 20 f4 20 72 69 67 | : . rig| 0001c040 68 74 0d 0e ca 0b 20 20 20 20 c9 20 35 0d 0e cb |ht.... . 5...| 0001c050 44 20 20 20 20 20 20 61 6e 63 68 6f 72 79 25 3d |D anchory%=| 0001c060 49 63 6f 6e 42 6c 6b 25 21 32 30 20 20 20 20 20 |IconBlk%!20 | 0001c070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 0001c080 20 20 20 20 20 20 20 20 20 20 3a 20 f4 20 74 6f | : . to| 0001c090 70 0d 0e cc 0b 20 20 20 20 c9 20 36 0d 0e cd 47 |p.... . 6...G| 0001c0a0 20 20 20 20 20 20 61 6e 63 68 6f 72 79 25 3d 49 | anchory%=I| 0001c0b0 63 6f 6e 42 6c 6b 25 21 31 32 2b 28 49 63 6f 6e |conBlk%!12+(Icon| 0001c0c0 42 6c 6b 25 21 32 30 2d 49 63 6f 6e 42 6c 6b 25 |Blk%!20-IconBlk%| 0001c0d0 21 31 32 29 81 32 20 3a 20 f4 20 76 20 63 65 6e |!12).2 : . v cen| 0001c0e0 74 72 65 0d 0e ce 0b 20 20 20 20 c9 20 37 0d 0e |tre.... . 7..| 0001c0f0 cf 47 20 20 20 20 20 20 61 6e 63 68 6f 72 79 25 |.G anchory%| 0001c100 3d 49 63 6f 6e 42 6c 6b 25 21 31 32 20 20 20 20 |=IconBlk%!12 | 0001c110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 0001c120 20 20 20 20 20 20 20 20 20 20 20 3a 20 f4 20 62 | : . b| 0001c130 6f 74 74 6f 6d 0d 0e d0 07 20 20 cb 0d 0e d1 1c |ottom.... .....| 0001c140 20 20 e3 20 69 25 3d 31 20 b8 20 4e 72 53 65 6c | . i%=1 . NrSel| 0001c150 65 63 74 65 64 25 2d 31 0d 0e d2 1a 20 20 20 20 |ected%-1.... | 0001c160 49 63 6f 6e 42 6c 6b 25 21 30 3d 77 69 6e 64 6f |IconBlk%!0=windo| 0001c170 77 25 0d 0e d3 21 20 20 20 20 49 63 6f 6e 42 6c |w%...! IconBl| 0001c180 6b 25 21 34 3d 53 65 6c 42 6c 6b 25 21 28 34 2a |k%!4=SelBlk%!(4*| 0001c190 69 25 29 0d 0e d4 28 20 20 20 20 c8 99 20 22 57 |i%)...( .. "W| 0001c1a0 69 6d 70 5f 47 65 74 49 63 6f 6e 53 74 61 74 65 |imp_GetIconState| 0001c1b0 22 2c 2c 49 63 6f 6e 42 6c 6b 25 0d 0e d5 0e 20 |",,IconBlk%.... | 0001c1c0 20 20 20 64 78 31 25 3d 30 0d 0e d6 0e 20 20 20 | dx1%=0.... | 0001c1d0 20 64 78 32 25 3d 30 0d 0e d7 0e 20 20 20 20 64 | dx2%=0.... d| 0001c1e0 79 31 25 3d 30 0d 0e d8 0e 20 20 20 20 64 79 32 |y1%=0.... dy2| 0001c1f0 25 3d 30 0d 0e d9 12 20 20 20 20 c8 8e 20 74 79 |%=0.... .. ty| 0001c200 70 65 25 20 ca 0d 0e da 0d 20 20 20 20 20 20 c9 |pe% ..... .| 0001c210 20 32 0d 0e db 24 20 20 20 20 20 20 20 20 64 78 | 2...$ dx| 0001c220 31 25 3d 61 6e 63 68 6f 72 78 25 2d 49 63 6f 6e |1%=anchorx%-Icon| 0001c230 42 6c 6b 25 21 38 0d 0e dc 1f 20 20 20 20 20 20 |Blk%!8.... | 0001c240 20 20 e7 20 6d 6f 76 65 25 20 8c 20 64 78 32 25 | . move% . dx2%| 0001c250 3d 64 78 31 25 0d 0e dd 0d 20 20 20 20 20 20 c9 |=dx1%.... .| 0001c260 20 33 0d 0e de 41 20 20 20 20 20 20 20 20 64 78 | 3...A dx| 0001c270 31 25 3d 61 6e 63 68 6f 72 78 25 2d 28 49 63 6f |1%=anchorx%-(Ico| 0001c280 6e 42 6c 6b 25 21 38 2b 28 49 63 6f 6e 42 6c 6b |nBlk%!8+(IconBlk| 0001c290 25 21 31 36 2d 49 63 6f 6e 42 6c 6b 25 21 38 29 |%!16-IconBlk%!8)| 0001c2a0 81 32 29 0d 0e df 1f 20 20 20 20 20 20 20 20 e7 |.2).... .| 0001c2b0 20 6d 6f 76 65 25 20 8c 20 64 78 32 25 3d 64 78 | move% . dx2%=dx| 0001c2c0 31 25 0d 0e e0 0d 20 20 20 20 20 20 c9 20 34 0d |1%.... . 4.| 0001c2d0 0e e1 25 20 20 20 20 20 20 20 20 64 78 32 25 3d |..% dx2%=| 0001c2e0 61 6e 63 68 6f 72 78 25 2d 49 63 6f 6e 42 6c 6b |anchorx%-IconBlk| 0001c2f0 25 21 31 36 0d 0e e2 1f 20 20 20 20 20 20 20 20 |%!16.... | 0001c300 e7 20 6d 6f 76 65 25 20 8c 20 64 78 31 25 3d 64 |. move% . dx1%=d| 0001c310 78 32 25 0d 0e e3 0d 20 20 20 20 20 20 c9 20 35 |x2%.... . 5| 0001c320 0d 0e e4 25 20 20 20 20 20 20 20 20 64 79 32 25 |...% dy2%| 0001c330 3d 61 6e 63 68 6f 72 79 25 2d 49 63 6f 6e 42 6c |=anchory%-IconBl| 0001c340 6b 25 21 32 30 0d 0e e5 1f 20 20 20 20 20 20 20 |k%!20.... | 0001c350 20 e7 20 6d 6f 76 65 25 20 8c 20 64 79 31 25 3d | . move% . dy1%=| 0001c360 64 79 32 25 0d 0e e6 0d 20 20 20 20 20 20 c9 20 |dy2%.... . | 0001c370 36 0d 0e e7 43 20 20 20 20 20 20 20 20 64 79 31 |6...C dy1| 0001c380 25 3d 61 6e 63 68 6f 72 79 25 2d 28 49 63 6f 6e |%=anchory%-(Icon| 0001c390 42 6c 6b 25 21 31 32 2b 28 49 63 6f 6e 42 6c 6b |Blk%!12+(IconBlk| 0001c3a0 25 21 32 30 2d 49 63 6f 6e 42 6c 6b 25 21 31 32 |%!20-IconBlk%!12| 0001c3b0 29 81 32 29 0d 0e e8 1f 20 20 20 20 20 20 20 20 |).2).... | 0001c3c0 e7 20 6d 6f 76 65 25 20 8c 20 64 79 32 25 3d 64 |. move% . dy2%=d| 0001c3d0 79 31 25 0d 0e e9 0d 20 20 20 20 20 20 c9 20 37 |y1%.... . 7| 0001c3e0 0d 0e ea 25 20 20 20 20 20 20 20 20 64 79 31 25 |...% dy1%| 0001c3f0 3d 61 6e 63 68 6f 72 79 25 2d 49 63 6f 6e 42 6c |=anchory%-IconBl| 0001c400 6b 25 21 31 32 0d 0e eb 1f 20 20 20 20 20 20 20 |k%!12.... | 0001c410 20 e7 20 6d 6f 76 65 25 20 8c 20 64 79 32 25 3d | . move% . dy2%=| 0001c420 64 79 31 25 0d 0e ec 09 20 20 20 20 cb 0d 0e ed |dy1%.... ....| 0001c430 22 20 20 20 20 49 63 6f 6e 42 6c 6b 25 21 38 3d |" IconBlk%!8=| 0001c440 49 63 6f 6e 42 6c 6b 25 21 38 2b 64 78 31 25 0d |IconBlk%!8+dx1%.| 0001c450 0e ee 24 20 20 20 20 49 63 6f 6e 42 6c 6b 25 21 |..$ IconBlk%!| 0001c460 31 32 3d 49 63 6f 6e 42 6c 6b 25 21 31 32 2b 64 |12=IconBlk%!12+d| 0001c470 79 31 25 0d 0e ef 24 20 20 20 20 49 63 6f 6e 42 |y1%...$ IconB| 0001c480 6c 6b 25 21 31 36 3d 49 63 6f 6e 42 6c 6b 25 21 |lk%!16=IconBlk%!| 0001c490 31 36 2b 64 78 32 25 0d 0e f0 24 20 20 20 20 49 |16+dx2%...$ I| 0001c4a0 63 6f 6e 42 6c 6b 25 21 32 30 3d 49 63 6f 6e 42 |conBlk%!20=IconB| 0001c4b0 6c 6b 25 21 32 30 2b 64 79 32 25 0d 0e f1 3d 20 |lk%!20+dy2%...= | 0001c4c0 20 20 20 e7 20 49 63 6f 6e 42 6c 6b 25 21 31 36 | . IconBlk%!16| 0001c4d0 3c 3d 49 63 6f 6e 42 6c 6b 25 21 38 20 8c 20 49 |<=IconBlk%!8 . I| 0001c4e0 63 6f 6e 42 6c 6b 25 21 31 36 3d 49 63 6f 6e 42 |conBlk%!16=IconB| 0001c4f0 6c 6b 25 21 38 2b 33 32 0d 0e f2 3f 20 20 20 20 |lk%!8+32...? | 0001c500 e7 20 49 63 6f 6e 42 6c 6b 25 21 32 30 3c 3d 49 |. IconBlk%!20<=I| 0001c510 63 6f 6e 42 6c 6b 25 21 31 32 20 8c 20 49 63 6f |conBlk%!12 . Ico| 0001c520 6e 42 6c 6b 25 21 32 30 3d 49 63 6f 6e 42 6c 6b |nBlk%!20=IconBlk| 0001c530 25 21 31 32 2b 33 32 0d 0e f3 3e 20 20 20 20 68 |%!12+32...> h| 0001c540 61 6e 64 6c 65 25 3d a4 72 65 64 65 66 69 6e 65 |andle%=.redefine| 0001c550 69 63 6f 6e 28 77 69 6e 64 6f 77 25 2c 53 65 6c |icon(window%,Sel| 0001c560 42 6c 6b 25 21 28 34 2a 69 25 29 2c 49 63 6f 6e |Blk%!(4*i%),Icon| 0001c570 42 6c 6b 25 29 0d 0e f4 0a 20 20 ed 20 69 25 0d |Blk%).... . i%.| 0001c580 0e f5 05 cd 0d 0e f6 05 e1 0d 0e f7 04 0d 0e f8 |................| 0001c590 39 f4 20 2d 2d 2d 20 73 68 61 64 65 20 74 68 65 |9. --- shade the| 0001c5a0 20 61 70 70 72 6f 70 72 69 61 74 65 20 69 63 6f | appropriate ico| 0001c5b0 6e 73 20 69 6e 20 74 68 65 20 41 6c 69 67 6e 20 |ns in the Align | 0001c5c0 77 69 6e 64 6f 77 0d 0e f9 17 dd 20 f2 61 6c 69 |window..... .ali| 0001c5d0 67 6e 5f 73 68 61 64 65 69 63 6f 6e 73 0d 0e fa |gn_shadeicons...| 0001c5e0 3c e7 20 a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 |<. .iconselected| 0001c5f0 28 41 6c 69 67 6e 57 25 2c 33 29 20 84 20 20 a4 |(AlignW%,3) . .| 0001c600 69 63 6f 6e 73 65 6c 65 63 74 65 64 28 41 6c 69 |iconselected(Ali| 0001c610 67 6e 57 25 2c 36 29 20 8c 0d 0e fb 1d 20 20 f2 |gnW%,6) ..... .| 0001c620 73 68 61 64 65 69 63 6f 6e 28 41 6c 69 67 6e 57 |shadeicon(AlignW| 0001c630 25 2c 39 2c 31 29 0d 0e fc 05 cc 0d 0e fd 1d 20 |%,9,1)......... | 0001c640 20 f2 73 68 61 64 65 69 63 6f 6e 28 41 6c 69 67 | .shadeicon(Alig| 0001c650 6e 57 25 2c 39 2c 30 29 0d 0e fe 05 cd 0d 0e ff |nW%,9,0)........| 0001c660 32 f2 73 68 61 64 65 69 63 6f 6e 28 41 6c 69 67 |2.shadeicon(Alig| 0001c670 6e 57 25 2c 33 2c a4 69 63 6f 6e 73 65 6c 65 63 |nW%,3,.iconselec| 0001c680 74 65 64 28 41 6c 69 67 6e 57 25 2c 39 29 29 0d |ted(AlignW%,9)).| 0001c690 0f 00 32 f2 73 68 61 64 65 69 63 6f 6e 28 41 6c |..2.shadeicon(Al| 0001c6a0 69 67 6e 57 25 2c 36 2c a4 69 63 6f 6e 73 65 6c |ignW%,6,.iconsel| 0001c6b0 65 63 74 65 64 28 41 6c 69 67 6e 57 25 2c 39 29 |ected(AlignW%,9)| 0001c6c0 29 0d 0f 01 05 e1 0d 0f 02 04 0d 0f 03 1a dd 20 |).............. | 0001c6d0 f2 73 70 61 63 65 69 63 6f 6e 73 28 77 69 6e 64 |.spaceicons(wind| 0001c6e0 6f 77 25 29 0d 0f 04 42 ea 20 69 6d 61 73 6b 25 |ow%)...B. imask%| 0001c6f0 2c 74 79 70 65 25 2c 69 25 2c 64 69 73 74 61 6e |,type%,i%,distan| 0001c700 63 65 25 2c 73 70 61 63 65 25 2c 69 62 25 2c 61 |ce%,space%,ib%,a| 0001c710 6e 63 68 6f 72 25 2c 64 78 25 2c 64 79 25 2c 68 |nchor%,dx%,dy%,h| 0001c720 61 6e 64 6c 65 25 0d 0f 05 27 53 70 61 63 65 4f |andle%...'SpaceO| 0001c730 75 74 5f 53 70 61 63 65 25 3d bb 28 24 28 49 63 |ut_Space%=.($(Ic| 0001c740 6f 6e 54 65 78 74 25 28 31 38 29 29 29 0d 0f 06 |onText%(18)))...| 0001c750 4f 69 6d 61 73 6b 25 3d 28 33 31 3c 3c 31 36 29 |Oimask%=(31<<16)| 0001c760 2b 28 31 3c 3c 32 31 29 20 3a 20 f4 20 63 68 65 |+(1<<21) : . che| 0001c770 63 6b 20 69 66 20 73 70 61 63 69 6e 67 20 6d 75 |ck if spacing mu| 0001c780 73 74 20 62 65 20 68 6f 72 69 7a 6f 6e 74 61 6c |st be horizontal| 0001c790 20 6f 72 20 76 65 72 74 69 63 61 6c 0d 0f 07 3e | or vertical...>| 0001c7a0 c8 99 20 22 57 69 6d 70 5f 57 68 69 63 68 49 63 |.. "Wimp_WhichIc| 0001c7b0 6f 6e 22 2c 53 70 61 63 65 57 25 2c 53 65 6c 42 |on",SpaceW%,SelB| 0001c7c0 6c 6b 25 2c 69 6d 61 73 6b 25 2c 28 31 3c 3c 31 |lk%,imask%,(1<<1| 0001c7d0 36 29 2b 28 31 3c 3c 32 31 29 0d 0f 08 42 74 79 |6)+(1<<21)...Bty| 0001c7e0 70 65 25 3d 53 65 6c 42 6c 6b 25 21 30 20 3a 20 |pe%=SelBlk%!0 : | 0001c7f0 f4 20 74 79 70 65 25 3d 32 20 3d 3e 20 68 6f 72 |. type%=2 => hor| 0001c800 69 7a 6f 6e 74 61 6c 2c 20 74 79 70 65 25 3d 33 |izontal, type%=3| 0001c810 20 3d 3e 20 76 65 72 74 69 63 61 6c 0d 0f 09 15 | => vertical....| 0001c820 f2 73 65 6c 5f 67 65 74 28 77 69 6e 64 6f 77 25 |.sel_get(window%| 0001c830 29 0d 0f 0a 15 e7 20 4e 72 53 65 6c 65 63 74 65 |)..... NrSelecte| 0001c840 64 25 3e 31 20 8c 0d 0f 0b 11 20 20 e7 20 74 79 |d%>1 ..... . ty| 0001c850 70 65 25 3d 32 20 8c 0d 0f 0c 26 20 20 20 20 f2 |pe%=2 ....& .| 0001c860 73 65 6c 5f 73 6f 72 74 28 77 69 6e 64 6f 77 25 |sel_sort(window%| 0001c870 2c 30 2c 30 2c 31 2c 30 2c 31 2c 30 29 0d 0f 0d |,0,0,1,0,1,0)...| 0001c880 07 20 20 cc 0d 0f 0e 26 20 20 20 20 f2 73 65 6c |. ....& .sel| 0001c890 5f 73 6f 72 74 28 77 69 6e 64 6f 77 25 2c 31 2c |_sort(window%,1,| 0001c8a0 30 2c 31 2c 31 2c 31 2c 30 29 0d 0f 0f 07 20 20 |0,1,1,1,0).... | 0001c8b0 cd 0d 0f 10 22 20 20 e7 20 a4 69 63 6f 6e 73 65 |...." . .iconse| 0001c8c0 6c 65 63 74 65 64 28 53 70 61 63 65 57 25 2c 34 |lected(SpaceW%,4| 0001c8d0 29 20 8c 0d 0f 11 21 20 20 20 20 64 69 73 74 61 |) ....! dista| 0001c8e0 6e 63 65 25 3d 53 70 61 63 65 4f 75 74 5f 53 70 |nce%=SpaceOut_Sp| 0001c8f0 61 63 65 25 0d 0f 12 07 20 20 cc 0d 0f 13 2c 20 |ace%.... ...., | 0001c900 20 20 20 f4 20 63 61 6c 63 20 61 76 61 69 6c 61 | . calc availa| 0001c910 62 6c 65 20 73 70 61 63 65 20 62 65 74 77 65 65 |ble space betwee| 0001c920 6e 20 69 63 6f 6e 73 0d 0f 14 19 20 20 20 20 57 |n icons.... W| 0001c930 69 6e 42 6c 6b 25 21 30 3d 77 69 6e 64 6f 77 25 |inBlk%!0=window%| 0001c940 0d 0f 15 28 20 20 20 20 c8 99 20 22 57 69 6d 70 |...( .. "Wimp| 0001c950 5f 47 65 74 57 69 6e 64 6f 77 49 6e 66 6f 22 2c |_GetWindowInfo",| 0001c960 2c 57 69 6e 42 6c 6b 25 0d 0f 16 2e 20 20 20 20 |,WinBlk%.... | 0001c970 f4 20 73 74 61 72 74 20 77 69 74 68 20 73 70 61 |. start with spa| 0001c980 63 65 20 62 65 74 77 65 65 6e 20 6f 75 74 65 72 |ce between outer| 0001c990 20 69 63 6f 6e 73 0d 0f 17 13 20 20 20 20 e7 20 | icons.... . | 0001c9a0 74 79 70 65 25 3d 32 20 8c 0d 0f 18 3e 20 20 20 |type%=2 ....> | 0001c9b0 20 20 20 73 70 61 63 65 25 3d 57 69 6e 42 6c 6b | space%=WinBlk| 0001c9c0 25 21 28 39 32 2b 33 32 2a 28 53 65 6c 42 6c 6b |%!(92+32*(SelBlk| 0001c9d0 25 21 28 34 2a 28 4e 72 53 65 6c 65 63 74 65 64 |%!(4*(NrSelected| 0001c9e0 25 2d 31 29 29 29 29 0d 0f 19 2f 20 20 20 20 20 |%-1)))).../ | 0001c9f0 20 73 70 61 63 65 25 2d 3d 57 69 6e 42 6c 6b 25 | space%-=WinBlk%| 0001ca00 21 28 39 32 2b 33 32 2a 28 53 65 6c 42 6c 6b 25 |!(92+32*(SelBlk%| 0001ca10 21 30 29 2b 38 29 0d 0f 1a 09 20 20 20 20 cc 0d |!0)+8).... ..| 0001ca20 0f 1b 40 20 20 20 20 20 20 73 70 61 63 65 25 3d |..@ space%=| 0001ca30 57 69 6e 42 6c 6b 25 21 28 39 32 2b 33 32 2a 28 |WinBlk%!(92+32*(| 0001ca40 53 65 6c 42 6c 6b 25 21 28 34 2a 28 4e 72 53 65 |SelBlk%!(4*(NrSe| 0001ca50 6c 65 63 74 65 64 25 2d 31 29 29 29 2b 34 29 0d |lected%-1)))+4).| 0001ca60 0f 1c 30 20 20 20 20 20 20 73 70 61 63 65 25 2d |..0 space%-| 0001ca70 3d 57 69 6e 42 6c 6b 25 21 28 39 32 2b 33 32 2a |=WinBlk%!(92+32*| 0001ca80 28 53 65 6c 42 6c 6b 25 21 30 29 2b 31 32 29 0d |(SelBlk%!0)+12).| 0001ca90 0f 1d 09 20 20 20 20 cd 0d 0f 1e 2e 20 20 20 20 |... ..... | 0001caa0 f4 20 73 75 62 74 72 61 63 74 20 73 69 7a 65 73 |. subtract sizes| 0001cab0 20 6f 66 20 69 6e 74 65 72 6d 65 64 69 61 74 65 | of intermediate| 0001cac0 20 69 63 6f 6e 73 0d 0f 1f 19 20 20 20 20 e7 20 | icons.... . | 0001cad0 4e 72 53 65 6c 65 63 74 65 64 25 3e 32 20 8c 0d |NrSelected%>2 ..| 0001cae0 0f 20 22 20 20 20 20 20 20 e3 20 69 25 3d 31 20 |. " . i%=1 | 0001caf0 b8 20 28 4e 72 53 65 6c 65 63 74 65 64 25 2d 32 |. (NrSelected%-2| 0001cb00 29 0d 0f 21 2e 20 20 20 20 20 20 20 20 69 62 25 |)..!. ib%| 0001cb10 3d 57 69 6e 42 6c 6b 25 2b 39 32 2b 33 32 2a 28 |=WinBlk%+92+32*(| 0001cb20 53 65 6c 42 6c 6b 25 21 28 34 2a 69 25 29 29 0d |SelBlk%!(4*i%)).| 0001cb30 0f 22 17 20 20 20 20 20 20 20 20 e7 20 74 79 70 |.". . typ| 0001cb40 65 25 3d 32 20 8c 0d 0f 23 23 20 20 20 20 20 20 |e%=2 ...## | 0001cb50 20 20 20 20 73 70 61 63 65 25 2d 3d 28 69 62 25 | space%-=(ib%| 0001cb60 21 38 2d 69 62 25 21 30 29 0d 0f 24 0d 20 20 20 |!8-ib%!0)..$. | 0001cb70 20 20 20 20 20 cc 0d 0f 25 24 20 20 20 20 20 20 | ...%$ | 0001cb80 20 20 20 20 73 70 61 63 65 25 2d 3d 28 69 62 25 | space%-=(ib%| 0001cb90 21 31 32 2d 69 62 25 21 34 29 0d 0f 26 0d 20 20 |!12-ib%!4)..&. | 0001cba0 20 20 20 20 20 20 cd 0d 0f 27 0e 20 20 20 20 20 | ...'. | 0001cbb0 20 ed 20 69 25 0d 0f 28 09 20 20 20 20 cd 0d 0f | . i%..(. ...| 0001cbc0 29 2a 20 20 20 20 64 69 73 74 61 6e 63 65 25 3d |)* distance%=| 0001cbd0 73 70 61 63 65 25 20 81 20 28 4e 72 53 65 6c 65 |space% . (NrSele| 0001cbe0 63 74 65 64 25 2d 31 29 0d 0f 2a 07 20 20 cd 0d |cted%-1)..*. ..| 0001cbf0 0f 2b 18 20 20 49 63 6f 6e 42 6c 6b 25 21 30 3d |.+. IconBlk%!0=| 0001cc00 77 69 6e 64 6f 77 25 0d 0f 2c 1a 20 20 49 63 6f |window%..,. Ico| 0001cc10 6e 42 6c 6b 25 21 34 3d 53 65 6c 42 6c 6b 25 21 |nBlk%!4=SelBlk%!| 0001cc20 30 0d 0f 2d 26 20 20 c8 99 20 22 57 69 6d 70 5f |0..-& .. "Wimp_| 0001cc30 47 65 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c 49 |GetIconState",,I| 0001cc40 63 6f 6e 42 6c 6b 25 0d 0f 2e 10 20 20 c8 8e 20 |conBlk%.... .. | 0001cc50 74 79 70 65 25 20 ca 0d 0f 2f 21 20 20 20 20 c9 |type% .../! .| 0001cc60 20 32 20 3a 20 61 6e 63 68 6f 72 25 3d 49 63 6f | 2 : anchor%=Ico| 0001cc70 6e 42 6c 6b 25 21 31 36 0d 0f 30 21 20 20 20 20 |nBlk%!16..0! | 0001cc80 c9 20 33 20 3a 20 61 6e 63 68 6f 72 25 3d 49 63 |. 3 : anchor%=Ic| 0001cc90 6f 6e 42 6c 6b 25 21 32 30 0d 0f 31 07 20 20 cb |onBlk%!20..1. .| 0001cca0 0d 0f 32 1c 20 20 e3 20 69 25 3d 31 20 b8 20 4e |..2. . i%=1 . N| 0001ccb0 72 53 65 6c 65 63 74 65 64 25 2d 31 0d 0f 33 1a |rSelected%-1..3.| 0001ccc0 20 20 20 20 61 6e 63 68 6f 72 25 2b 3d 64 69 73 | anchor%+=dis| 0001ccd0 74 61 6e 63 65 25 0d 0f 34 1a 20 20 20 20 49 63 |tance%..4. Ic| 0001cce0 6f 6e 42 6c 6b 25 21 30 3d 77 69 6e 64 6f 77 25 |onBlk%!0=window%| 0001ccf0 0d 0f 35 21 20 20 20 20 49 63 6f 6e 42 6c 6b 25 |..5! IconBlk%| 0001cd00 21 34 3d 53 65 6c 42 6c 6b 25 21 28 34 2a 69 25 |!4=SelBlk%!(4*i%| 0001cd10 29 0d 0f 36 28 20 20 20 20 c8 99 20 22 57 69 6d |)..6( .. "Wim| 0001cd20 70 5f 47 65 74 49 63 6f 6e 53 74 61 74 65 22 2c |p_GetIconState",| 0001cd30 2c 49 63 6f 6e 42 6c 6b 25 0d 0f 37 0d 20 20 20 |,IconBlk%..7. | 0001cd40 20 64 78 25 3d 30 0d 0f 38 0d 20 20 20 20 64 79 | dx%=0..8. dy| 0001cd50 25 3d 30 0d 0f 39 12 20 20 20 20 c8 8e 20 74 79 |%=0..9. .. ty| 0001cd60 70 65 25 20 ca 0d 0f 3a 26 20 20 20 20 20 20 c9 |pe% ...:& .| 0001cd70 20 32 20 3a 20 64 78 25 3d 61 6e 63 68 6f 72 25 | 2 : dx%=anchor%| 0001cd80 2d 49 63 6f 6e 42 6c 6b 25 21 38 0d 0f 3b 27 20 |-IconBlk%!8..;' | 0001cd90 20 20 20 20 20 c9 20 33 20 3a 20 64 79 25 3d 61 | . 3 : dy%=a| 0001cda0 6e 63 68 6f 72 25 2d 49 63 6f 6e 42 6c 6b 25 21 |nchor%-IconBlk%!| 0001cdb0 31 32 0d 0f 3c 09 20 20 20 20 cb 0d 0f 3d 21 20 |12..<. ...=! | 0001cdc0 20 20 20 49 63 6f 6e 42 6c 6b 25 21 38 3d 49 63 | IconBlk%!8=Ic| 0001cdd0 6f 6e 42 6c 6b 25 21 38 2b 64 78 25 0d 0f 3e 23 |onBlk%!8+dx%..>#| 0001cde0 20 20 20 20 49 63 6f 6e 42 6c 6b 25 21 31 32 3d | IconBlk%!12=| 0001cdf0 49 63 6f 6e 42 6c 6b 25 21 31 32 2b 64 79 25 0d |IconBlk%!12+dy%.| 0001ce00 0f 3f 23 20 20 20 20 49 63 6f 6e 42 6c 6b 25 21 |.?# IconBlk%!| 0001ce10 31 36 3d 49 63 6f 6e 42 6c 6b 25 21 31 36 2b 64 |16=IconBlk%!16+d| 0001ce20 78 25 0d 0f 40 23 20 20 20 20 49 63 6f 6e 42 6c |x%..@# IconBl| 0001ce30 6b 25 21 32 30 3d 49 63 6f 6e 42 6c 6b 25 21 32 |k%!20=IconBlk%!2| 0001ce40 30 2b 64 79 25 0d 0f 41 12 20 20 20 20 c8 8e 20 |0+dy%..A. .. | 0001ce50 74 79 70 65 25 20 ca 0d 0f 42 23 20 20 20 20 20 |type% ...B# | 0001ce60 20 c9 20 32 20 3a 20 61 6e 63 68 6f 72 25 3d 49 | . 2 : anchor%=I| 0001ce70 63 6f 6e 42 6c 6b 25 21 31 36 0d 0f 43 23 20 20 |conBlk%!16..C# | 0001ce80 20 20 20 20 c9 20 33 20 3a 20 61 6e 63 68 6f 72 | . 3 : anchor| 0001ce90 25 3d 49 63 6f 6e 42 6c 6b 25 21 32 30 0d 0f 44 |%=IconBlk%!20..D| 0001cea0 09 20 20 20 20 cb 0d 0f 45 3e 20 20 20 20 68 61 |. ...E> ha| 0001ceb0 6e 64 6c 65 25 3d a4 72 65 64 65 66 69 6e 65 69 |ndle%=.redefinei| 0001cec0 63 6f 6e 28 77 69 6e 64 6f 77 25 2c 53 65 6c 42 |con(window%,SelB| 0001ced0 6c 6b 25 21 28 34 2a 69 25 29 2c 49 63 6f 6e 42 |lk%!(4*i%),IconB| 0001cee0 6c 6b 25 29 0d 0f 46 0a 20 20 ed 20 69 25 0d 0f |lk%)..F. . i%..| 0001cef0 47 05 cd 0d 0f 48 05 e1 0d 0f 49 04 0d 0f 4a 17 |G....H....I...J.| 0001cf00 dd 20 f2 73 70 61 63 65 5f 73 68 61 64 65 69 63 |. .space_shadeic| 0001cf10 6f 6e 73 0d 0f 4b 12 ea 20 75 73 65 61 76 61 69 |ons..K.. useavai| 0001cf20 6c 25 2c 69 25 0d 0f 4c 26 75 73 65 61 76 61 69 |l%,i%..L&useavai| 0001cf30 6c 25 3d a4 69 63 6f 6e 73 65 6c 65 63 74 65 64 |l%=.iconselected| 0001cf40 28 53 70 61 63 65 57 25 2c 38 29 0d 0f 4d 0e e3 |(SpaceW%,8)..M..| 0001cf50 20 69 25 3d 35 20 b8 20 37 0d 0f 4e 26 20 20 f2 | i%=5 . 7..N& .| 0001cf60 73 68 61 64 65 69 63 6f 6e 28 53 70 61 63 65 57 |shadeicon(SpaceW| 0001cf70 25 2c 69 25 2c 75 73 65 61 76 61 69 6c 25 29 0d |%,i%,useavail%).| 0001cf80 0f 4f 08 ed 20 69 25 0d 0f 50 05 e1 0d 0f 51 04 |.O.. i%..P....Q.| 0001cf90 0d 0f 52 19 dd 20 a4 74 69 64 79 69 63 6f 6e 73 |..R.. .tidyicons| 0001cfa0 28 77 69 6e 64 6f 77 25 29 0d 0f 53 44 ea 20 63 |(window%)..SD. c| 0001cfb0 68 61 6e 67 65 64 31 25 2c 63 68 61 6e 67 65 64 |hanged1%,changed| 0001cfc0 32 25 2c 69 62 31 25 2c 69 62 32 25 2c 65 6e 64 |2%,ib1%,ib2%,end| 0001cfd0 25 2c 6e 72 69 63 6f 6e 73 25 2c 64 78 25 2c 64 |%,nricons%,dx%,d| 0001cfe0 79 25 2c 69 25 2c 68 61 6e 64 6c 65 25 0d 0f 54 |y%,i%,handle%..T| 0001cff0 15 57 69 6e 42 6c 6b 25 21 30 3d 77 69 6e 64 6f |.WinBlk%!0=windo| 0001d000 77 25 0d 0f 55 24 c8 99 20 22 57 69 6d 70 5f 47 |w%..U$.. "Wimp_G| 0001d010 65 74 57 69 6e 64 6f 77 49 6e 66 6f 22 2c 2c 57 |etWindowInfo",,W| 0001d020 69 6e 42 6c 6b 25 0d 0f 56 0f 63 68 61 6e 67 65 |inBlk%..V.change| 0001d030 64 31 25 3d 30 0d 0f 57 0f 63 68 61 6e 67 65 64 |d1%=0..W.changed| 0001d040 32 25 3d 30 0d 0f 58 14 e7 20 57 69 6e 42 6c 6b |2%=0..X.. WinBlk| 0001d050 25 21 38 38 3e 30 20 8c 0d 0f 59 15 20 20 69 62 |%!88>0 ...Y. ib| 0001d060 31 25 3d 57 69 6e 42 6c 6b 25 2b 39 32 0d 0f 5a |1%=WinBlk%+92..Z| 0001d070 0f 20 20 69 62 32 25 3d 69 62 31 25 0d 0f 5b 1f |. ib2%=ib1%..[.| 0001d080 20 20 65 6e 64 25 3d 69 62 31 25 2b 33 32 2a 28 | end%=ib1%+32*(| 0001d090 57 69 6e 42 6c 6b 25 21 38 38 29 0d 0f 5c 10 20 |WinBlk%!88)..\. | 0001d0a0 20 6e 72 69 63 6f 6e 73 25 3d 30 0d 0f 5d 12 20 | nricons%=0..]. | 0001d0b0 20 c8 95 20 69 62 31 25 3c 65 6e 64 25 0d 0f 5e | .. ib1%<end%..^| 0001d0c0 21 20 20 20 20 e7 20 28 28 69 62 31 25 21 31 36 |! . ((ib1%!16| 0001d0d0 29 80 28 31 3c 3c 32 33 29 29 3d 30 20 8c 0d 0f |).(1<<23))=0 ...| 0001d0e0 5f 35 20 20 20 20 20 20 f4 20 74 65 73 74 20 69 |_5 . test i| 0001d0f0 66 20 69 63 6f 6e 20 70 6f 73 69 74 69 6f 6e 20 |f icon position | 0001d100 69 73 20 77 69 74 68 69 6e 20 77 6f 72 6b 20 61 |is within work a| 0001d110 72 65 61 0d 0f 60 0f 20 20 20 20 20 20 64 78 25 |rea..`. dx%| 0001d120 3d 30 0d 0f 61 0f 20 20 20 20 20 20 64 79 25 3d |=0..a. dy%=| 0001d130 30 0d 0f 62 35 20 20 20 20 20 20 e7 20 69 62 31 |0..b5 . ib1| 0001d140 25 21 30 3c 57 69 6e 42 6c 6b 25 21 34 34 20 8c |%!0<WinBlk%!44 .| 0001d150 20 64 78 25 3d 57 69 6e 42 6c 6b 25 21 34 34 2d | dx%=WinBlk%!44-| 0001d160 69 62 31 25 21 30 0d 0f 63 35 20 20 20 20 20 20 |ib1%!0..c5 | 0001d170 e7 20 69 62 31 25 21 34 3c 57 69 6e 42 6c 6b 25 |. ib1%!4<WinBlk%| 0001d180 21 34 38 20 8c 20 64 79 25 3d 57 69 6e 42 6c 6b |!48 . dy%=WinBlk| 0001d190 25 21 34 38 2d 69 62 31 25 21 34 0d 0f 64 35 20 |%!48-ib1%!4..d5 | 0001d1a0 20 20 20 20 20 e7 20 69 62 31 25 21 38 3e 57 69 | . ib1%!8>Wi| 0001d1b0 6e 42 6c 6b 25 21 35 32 20 8c 20 64 78 25 3d 57 |nBlk%!52 . dx%=W| 0001d1c0 69 6e 42 6c 6b 25 21 35 32 2d 69 62 31 25 21 38 |inBlk%!52-ib1%!8| 0001d1d0 0d 0f 65 37 20 20 20 20 20 20 e7 20 69 62 31 25 |..e7 . ib1%| 0001d1e0 21 31 32 3e 57 69 6e 42 6c 6b 25 21 35 36 20 8c |!12>WinBlk%!56 .| 0001d1f0 20 64 79 25 3d 57 69 6e 42 6c 6b 25 21 35 36 2d | dy%=WinBlk%!56-| 0001d200 69 62 31 25 21 31 32 0d 0f 66 1b 20 20 20 20 20 |ib1%!12..f. | 0001d210 20 69 62 31 25 21 30 3d 69 62 31 25 21 30 2b 64 | ib1%!0=ib1%!0+d| 0001d220 78 25 0d 0f 67 1b 20 20 20 20 20 20 69 62 31 25 |x%..g. ib1%| 0001d230 21 34 3d 69 62 31 25 21 34 2b 64 79 25 0d 0f 68 |!4=ib1%!4+dy%..h| 0001d240 1b 20 20 20 20 20 20 69 62 31 25 21 38 3d 69 62 |. ib1%!8=ib| 0001d250 31 25 21 38 2b 64 78 25 0d 0f 69 1d 20 20 20 20 |1%!8+dx%..i. | 0001d260 20 20 69 62 31 25 21 31 32 3d 69 62 31 25 21 31 | ib1%!12=ib1%!1| 0001d270 32 2b 64 79 25 0d 0f 6a 23 20 20 20 20 20 20 f4 |2+dy%..j# .| 0001d280 20 6d 6f 76 65 20 62 6c 6f 63 6b 20 6f 66 20 69 | move block of i| 0001d290 63 6f 6e 20 64 61 74 61 0d 0f 6b 19 20 20 20 20 |con data..k. | 0001d2a0 20 20 e3 20 69 25 3d 30 20 b8 20 32 38 20 88 20 | . i%=0 . 28 . | 0001d2b0 34 0d 0f 6c 1b 20 20 20 20 20 20 20 20 69 62 32 |4..l. ib2| 0001d2c0 25 21 69 25 3d 69 62 31 25 21 69 25 0d 0f 6d 0e |%!i%=ib1%!i%..m.| 0001d2d0 20 20 20 20 20 20 ed 20 69 25 0d 0f 6e 12 20 20 | . i%..n. | 0001d2e0 20 20 20 20 69 62 32 25 2b 3d 33 32 0d 0f 6f 15 | ib2%+=32..o.| 0001d2f0 20 20 20 20 20 20 6e 72 69 63 6f 6e 73 25 2b 3d | nricons%+=| 0001d300 31 0d 0f 70 2c 20 20 20 20 20 20 e7 20 28 64 78 |1..p, . (dx| 0001d310 25 3c 3e 30 29 84 28 64 79 25 3c 3e 30 29 20 8c |%<>0).(dy%<>0) .| 0001d320 20 63 68 61 6e 67 65 64 32 25 2b 3d 31 0d 0f 71 | changed2%+=1..q| 0001d330 09 20 20 20 20 cc 0d 0f 72 23 20 20 20 20 20 20 |. ...r# | 0001d340 f4 20 64 6f 6e 27 74 20 63 6f 70 79 20 64 65 6c |. don't copy del| 0001d350 65 74 65 64 20 69 63 6f 6e 0d 0f 73 16 20 20 20 |eted icon..s. | 0001d360 20 20 20 63 68 61 6e 67 65 64 31 25 2b 3d 31 0d | changed1%+=1.| 0001d370 0f 74 09 20 20 20 20 cd 0d 0f 75 10 20 20 20 20 |.t. ...u. | 0001d380 69 62 31 25 2b 3d 33 32 0d 0f 76 07 20 20 ce 0d |ib1%+=32..v. ..| 0001d390 0f 77 25 20 20 e7 20 28 63 68 61 6e 67 65 64 31 |.w% . (changed1| 0001d3a0 25 3d 30 29 80 28 63 68 61 6e 67 65 64 32 25 3d |%=0).(changed2%=| 0001d3b0 30 29 20 8c 0d 0f 78 1a 20 20 20 20 f2 64 69 61 |0) ...x. .dia| 0001d3c0 6c 6f 67 75 65 28 36 2c 22 22 2c 22 22 29 0d 0f |logue(6,"","")..| 0001d3d0 79 07 20 20 cc 0d 0f 7a 1b 20 20 20 20 57 69 6e |y. ...z. Win| 0001d3e0 42 6c 6b 25 21 38 38 3d 6e 72 69 63 6f 6e 73 25 |Blk%!88=nricons%| 0001d3f0 0d 0f 7b 2a 20 20 20 20 68 61 6e 64 6c 65 25 3d |..{* handle%=| 0001d400 a4 72 65 64 65 66 69 6e 65 77 69 6e 64 6f 77 28 |.redefinewindow(| 0001d410 57 69 6e 42 6c 6b 25 2c 31 29 0d 0f 7c 2e 20 20 |WinBlk%,1)..|. | 0001d420 20 20 f2 64 69 61 6c 6f 67 75 65 28 37 2c c3 28 | .dialogue(7,.(| 0001d430 63 68 61 6e 67 65 64 31 25 29 2c c3 28 63 68 61 |changed1%),.(cha| 0001d440 6e 67 65 64 32 25 29 29 0d 0f 7d 07 20 20 cd 0d |nged2%))..}. ..| 0001d450 0f 7e 05 cd 0d 0f 7f 0c 3d 68 61 6e 64 6c 65 25 |.~......=handle%| 0001d460 0d 0f 80 04 0d 0f 81 12 dd 20 f2 73 65 74 77 6f |......... .setwo| 0001d470 72 6b 61 72 65 61 0d 0f 82 33 ea 20 78 74 6f 70 |rkarea...3. xtop| 0001d480 6c 65 66 74 25 2c 79 74 6f 70 6c 65 66 74 25 2c |left%,ytopleft%,| 0001d490 78 73 69 7a 65 25 2c 79 73 69 7a 65 25 2c 78 6d |xsize%,ysize%,xm| 0001d4a0 69 6e 25 2c 79 6d 69 6e 25 0d 0f 83 1b 57 69 6e |in%,ymin%....Win| 0001d4b0 42 6c 6b 25 21 30 3d 4c 61 73 74 4d 65 6e 75 5f |Blk%!0=LastMenu_| 0001d4c0 57 69 6e 25 0d 0f 84 24 c8 99 20 22 57 69 6d 70 |Win%...$.. "Wimp| 0001d4d0 5f 47 65 74 57 69 6e 64 6f 77 49 6e 66 6f 22 2c |_GetWindowInfo",| 0001d4e0 2c 57 69 6e 42 6c 6b 25 0d 0f 85 21 78 74 6f 70 |,WinBlk%...!xtop| 0001d4f0 6c 65 66 74 25 3d bb 28 24 28 49 63 6f 6e 54 65 |left%=.($(IconTe| 0001d500 78 74 25 28 31 32 29 29 29 0d 0f 86 21 79 74 6f |xt%(12)))...!yto| 0001d510 70 6c 65 66 74 25 3d bb 28 24 28 49 63 6f 6e 54 |pleft%=.($(IconT| 0001d520 65 78 74 25 28 31 33 29 29 29 0d 0f 87 1e 78 73 |ext%(13)))....xs| 0001d530 69 7a 65 25 3d bb 28 24 28 49 63 6f 6e 54 65 78 |ize%=.($(IconTex| 0001d540 74 25 28 31 34 29 29 29 0d 0f 88 1e 79 73 69 7a |t%(14)))....ysiz| 0001d550 65 25 3d bb 28 24 28 49 63 6f 6e 54 65 78 74 25 |e%=.($(IconText%| 0001d560 28 31 35 29 29 29 0d 0f 89 25 78 6d 69 6e 25 3d |(15)))...%xmin%=| 0001d570 bb 28 24 28 49 63 6f 6e 54 65 78 74 25 28 31 36 |.($(IconText%(16| 0001d580 29 29 29 20 80 20 26 46 46 46 46 0d 0f 8a 25 79 |))) . &FFFF...%y| 0001d590 6d 69 6e 25 3d bb 28 24 28 49 63 6f 6e 54 65 78 |min%=.($(IconTex| 0001d5a0 74 25 28 31 37 29 29 29 20 80 20 26 46 46 46 46 |t%(17))) . &FFFF| 0001d5b0 0d 0f 8b 21 e7 20 28 78 73 69 7a 65 25 3c 33 32 |...!. (xsize%<32| 0001d5c0 29 20 84 20 28 79 73 69 7a 65 25 3c 33 32 29 20 |) . (ysize%<32) | 0001d5d0 8c 0d 0f 8c 25 20 20 f2 63 6f 6d 70 6c 61 69 6e |....% .complain| 0001d5e0 28 a4 6d 73 67 5f 6c 6f 6f 6b 75 70 30 28 22 49 |(.msg_lookup0("I| 0001d5f0 57 41 53 22 29 29 0d 0f 8d 05 cc 0d 0f 8e 16 20 |WAS"))......... | 0001d600 20 e7 20 78 6d 69 6e 25 3e 78 73 69 7a 65 25 20 | . xmin%>xsize% | 0001d610 8c 0d 0f 8f 14 20 20 20 20 78 6d 69 6e 25 3d 78 |..... xmin%=x| 0001d620 73 69 7a 65 25 0d 0f 90 21 20 20 20 20 f2 73 65 |size%...! .se| 0001d630 74 69 63 6f 6e 74 65 78 74 28 31 36 2c c3 28 78 |ticontext(16,.(x| 0001d640 6d 69 6e 25 29 29 0d 0f 91 07 20 20 cd 0d 0f 92 |min%)).... ....| 0001d650 16 20 20 e7 20 79 6d 69 6e 25 3e 79 73 69 7a 65 |. . ymin%>ysize| 0001d660 25 20 8c 0d 0f 93 14 20 20 20 20 79 6d 69 6e 25 |% ..... ymin%| 0001d670 3d 79 73 69 7a 65 25 0d 0f 94 21 20 20 20 20 f2 |=ysize%...! .| 0001d680 73 65 74 69 63 6f 6e 74 65 78 74 28 31 37 2c c3 |seticontext(17,.| 0001d690 28 79 6d 69 6e 25 29 29 0d 0f 95 07 20 20 cd 0d |(ymin%)).... ..| 0001d6a0 0f 96 1a 20 20 57 69 6e 42 6c 6b 25 21 34 34 3d |... WinBlk%!44=| 0001d6b0 78 74 6f 70 6c 65 66 74 25 0d 0f 97 21 20 20 57 |xtopleft%...! W| 0001d6c0 69 6e 42 6c 6b 25 21 34 38 3d 79 74 6f 70 6c 65 |inBlk%!48=ytople| 0001d6d0 66 74 25 2d 79 73 69 7a 65 25 0d 0f 98 21 20 20 |ft%-ysize%...! | 0001d6e0 57 69 6e 42 6c 6b 25 21 35 32 3d 78 74 6f 70 6c |WinBlk%!52=xtopl| 0001d6f0 65 66 74 25 2b 78 73 69 7a 65 25 0d 0f 99 1a 20 |eft%+xsize%.... | 0001d700 20 57 69 6e 42 6c 6b 25 21 35 36 3d 79 74 6f 70 | WinBlk%!56=ytop| 0001d710 6c 65 66 74 25 0d 0f 9a 22 20 20 57 69 6e 42 6c |left%..." WinBl| 0001d720 6b 25 21 37 32 3d 28 79 6d 69 6e 25 3c 3c 31 36 |k%!72=(ymin%<<16| 0001d730 29 2b 78 6d 69 6e 25 0d 0f 9b 2e 20 20 4c 61 73 |)+xmin%.... Las| 0001d740 74 4d 65 6e 75 5f 57 69 6e 25 3d a4 72 65 64 65 |tMenu_Win%=.rede| 0001d750 66 69 6e 65 77 69 6e 64 6f 77 28 57 69 6e 42 6c |finewindow(WinBl| 0001d760 6b 25 2c 31 29 0d 0f 9c 05 cd 0d 0f 9d 05 e1 0d |k%,1)...........| 0001d770 0f 9e 04 0d 0f 9f 2b dd 20 f2 63 65 6e 74 65 72 |......+. .center| 0001d780 69 63 6f 6e 73 65 6c 28 77 69 6e 64 6f 77 25 2c |iconsel(window%,| 0001d790 64 65 66 61 75 6c 74 25 2c 64 69 6d 25 29 0d 0f |default%,dim%)..| 0001d7a0 a0 3e ea 20 78 6d 69 6e 25 2c 79 6d 69 6e 25 2c |.>. xmin%,ymin%,| 0001d7b0 78 6d 61 78 25 2c 79 6d 61 78 25 2c 78 66 72 65 |xmax%,ymax%,xfre| 0001d7c0 65 25 2c 79 66 72 65 65 25 2c 64 78 25 2c 64 79 |e%,yfree%,dx%,dy| 0001d7d0 25 2c 69 25 2c 68 61 6e 64 6c 65 25 0d 0f a1 15 |%,i%,handle%....| 0001d7e0 f2 73 65 6c 5f 67 65 74 28 77 69 6e 64 6f 77 25 |.sel_get(window%| 0001d7f0 29 0d 0f a2 27 e7 20 28 4e 72 53 65 6c 65 63 74 |)...'. (NrSelect| 0001d800 65 64 25 3d 30 29 20 80 20 28 64 65 66 61 75 6c |ed%=0) . (defaul| 0001d810 74 25 3e 3d 30 29 20 8c 0d 0f a3 18 20 20 53 65 |t%>=0) ..... Se| 0001d820 6c 42 6c 6b 25 21 30 3d 64 65 66 61 75 6c 74 25 |lBlk%!0=default%| 0001d830 0d 0f a4 13 20 20 4e 72 53 65 6c 65 63 74 65 64 |.... NrSelected| 0001d840 25 3d 31 0d 0f a5 05 cd 0d 0f a6 15 e7 20 4e 72 |%=1.......... Nr| 0001d850 53 65 6c 65 63 74 65 64 25 3e 30 20 8c 0d 0f a7 |Selected%>0 ....| 0001d860 2f 20 20 f2 73 65 6c 5f 62 6f 78 28 77 69 6e 64 |/ .sel_box(wind| 0001d870 6f 77 25 2c 78 6d 69 6e 25 2c 79 6d 69 6e 25 2c |ow%,xmin%,ymin%,| 0001d880 78 6d 61 78 25 2c 79 6d 61 78 25 29 0d 0f a8 19 |xmax%,ymax%)....| 0001d890 20 20 53 63 72 61 70 42 6c 6b 25 21 30 3d 77 69 | ScrapBlk%!0=wi| 0001d8a0 6e 64 6f 77 25 0d 0f a9 29 20 20 c8 99 20 22 57 |ndow%...) .. "W| 0001d8b0 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 53 74 61 |imp_GetWindowSta| 0001d8c0 74 65 22 2c 2c 53 63 72 61 70 42 6c 6b 25 0d 0f |te",,ScrapBlk%..| 0001d8d0 aa 35 20 20 78 66 72 65 65 25 3d 28 53 63 72 61 |.5 xfree%=(Scra| 0001d8e0 70 42 6c 6b 25 21 31 32 2d 53 63 72 61 70 42 6c |pBlk%!12-ScrapBl| 0001d8f0 6b 25 21 34 29 2d 28 78 6d 61 78 25 2d 78 6d 69 |k%!4)-(xmax%-xmi| 0001d900 6e 25 29 0d 0f ab 29 20 20 64 78 25 3d 53 63 72 |n%)...) dx%=Scr| 0001d910 61 70 42 6c 6b 25 21 32 30 2b 28 78 66 72 65 65 |apBlk%!20+(xfree| 0001d920 25 20 81 20 32 29 2d 78 6d 69 6e 25 0d 0f ac 35 |% . 2)-xmin%...5| 0001d930 20 20 79 66 72 65 65 25 3d 28 53 63 72 61 70 42 | yfree%=(ScrapB| 0001d940 6c 6b 25 21 31 36 2d 53 63 72 61 70 42 6c 6b 25 |lk%!16-ScrapBlk%| 0001d950 21 38 29 2d 28 79 6d 61 78 25 2d 79 6d 69 6e 25 |!8)-(ymax%-ymin%| 0001d960 29 0d 0f ad 29 20 20 64 79 25 3d 53 63 72 61 70 |)...) dy%=Scrap| 0001d970 42 6c 6b 25 21 32 34 2d 28 79 66 72 65 65 25 20 |Blk%!24-(yfree% | 0001d980 81 20 32 29 2d 79 6d 61 78 25 0d 0f ae 16 20 20 |. 2)-ymax%.... | 0001d990 e7 20 64 69 6d 25 3d 32 20 8c 20 64 78 25 3d 30 |. dim%=2 . dx%=0| 0001d9a0 0d 0f af 16 20 20 e7 20 64 69 6d 25 3d 31 20 8c |.... . dim%=1 .| 0001d9b0 20 64 79 25 3d 30 0d 0f b0 1c 20 20 e3 20 69 25 | dy%=0.... . i%| 0001d9c0 3d 30 20 b8 20 4e 72 53 65 6c 65 63 74 65 64 25 |=0 . NrSelected%| 0001d9d0 2d 31 0d 0f b1 1a 20 20 20 20 49 63 6f 6e 42 6c |-1.... IconBl| 0001d9e0 6b 25 21 30 3d 77 69 6e 64 6f 77 25 0d 0f b2 21 |k%!0=window%...!| 0001d9f0 20 20 20 20 49 63 6f 6e 42 6c 6b 25 21 34 3d 53 | IconBlk%!4=S| 0001da00 65 6c 42 6c 6b 25 21 28 34 2a 69 25 29 0d 0f b3 |elBlk%!(4*i%)...| 0001da10 28 20 20 20 20 c8 99 20 22 57 69 6d 70 5f 47 65 |( .. "Wimp_Ge| 0001da20 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c 49 63 6f |tIconState",,Ico| 0001da30 6e 42 6c 6b 25 0d 0f b4 21 20 20 20 20 49 63 6f |nBlk%...! Ico| 0001da40 6e 42 6c 6b 25 21 38 3d 49 63 6f 6e 42 6c 6b 25 |nBlk%!8=IconBlk%| 0001da50 21 38 2b 64 78 25 0d 0f b5 23 20 20 20 20 49 63 |!8+dx%...# Ic| 0001da60 6f 6e 42 6c 6b 25 21 31 32 3d 49 63 6f 6e 42 6c |onBlk%!12=IconBl| 0001da70 6b 25 21 31 32 2b 64 79 25 0d 0f b6 23 20 20 20 |k%!12+dy%...# | 0001da80 20 49 63 6f 6e 42 6c 6b 25 21 31 36 3d 49 63 6f | IconBlk%!16=Ico| 0001da90 6e 42 6c 6b 25 21 31 36 2b 64 78 25 0d 0f b7 23 |nBlk%!16+dx%...#| 0001daa0 20 20 20 20 49 63 6f 6e 42 6c 6b 25 21 32 30 3d | IconBlk%!20=| 0001dab0 49 63 6f 6e 42 6c 6b 25 21 32 30 2b 64 79 25 0d |IconBlk%!20+dy%.| 0001dac0 0f b8 3e 20 20 20 20 68 61 6e 64 6c 65 25 3d a4 |..> handle%=.| 0001dad0 72 65 64 65 66 69 6e 65 69 63 6f 6e 28 77 69 6e |redefineicon(win| 0001dae0 64 6f 77 25 2c 53 65 6c 42 6c 6b 25 21 28 34 2a |dow%,SelBlk%!(4*| 0001daf0 69 25 29 2c 49 63 6f 6e 42 6c 6b 25 29 0d 0f b9 |i%),IconBlk%)...| 0001db00 0a 20 20 ed 20 69 25 0d 0f ba 05 cd 0d 0f bb 05 |. . i%.........| 0001db10 e1 0d 0f bc 04 0d 0f bd 20 dd 20 f2 73 75 70 70 |........ . .supp| 0001db20 6f 72 74 69 6e 74 65 72 66 61 63 65 28 73 77 69 |ortinterface(swi| 0001db30 74 63 68 25 29 0d 0f be 0a ea 20 66 6c 67 25 0d |tch%)..... flg%.| 0001db40 0f bf 1a 6f 6c 64 25 3d 53 75 70 70 6f 72 74 49 |...old%=SupportI| 0001db50 6e 74 65 72 66 61 63 65 25 0d 0f c0 1d 53 75 70 |nterface%....Sup| 0001db60 70 6f 72 74 49 6e 74 65 72 66 61 63 65 25 3d 73 |portInterface%=s| 0001db70 77 69 74 63 68 25 0d 0f c1 0f e7 20 73 77 69 74 |witch%..... swit| 0001db80 63 68 25 20 8c 0d 0f c2 33 20 20 c8 99 20 22 58 |ch% ....3 .. "X| 0001db90 4f 53 5f 4d 6f 64 75 6c 65 22 2c 31 38 2c 22 49 |OS_Module",18,"I| 0001dba0 6e 74 65 72 66 61 63 65 4d 61 6e 61 67 65 72 22 |nterfaceManager"| 0001dbb0 20 b8 20 3b 66 6c 67 25 0d 0f c3 14 20 20 e7 20 | . ;flg%.... . | 0001dbc0 28 66 6c 67 25 20 80 20 31 29 20 8c 0d 0f c4 1b |(flg% . 1) .....| 0001dbd0 20 20 20 20 53 75 70 70 6f 72 74 49 6e 74 65 72 | SupportInter| 0001dbe0 66 61 63 65 25 3d a3 0d 0f c5 23 20 20 20 20 f2 |face%=....# .| 0001dbf0 64 69 61 6c 6f 67 75 65 28 33 2c 22 49 6e 74 65 |dialogue(3,"Inte| 0001dc00 72 66 61 63 65 22 2c 22 22 29 0d 0f c6 07 20 20 |rface","").... | 0001dc10 cc 0d 0f c7 16 20 20 20 20 f2 73 75 70 70 6f 72 |..... .suppor| 0001dc20 74 61 65 68 28 a3 29 0d 0f c8 07 20 20 cd 0d 0f |taeh(.).... ...| 0001dc30 c9 05 cd 0d 0f ca 2e f2 73 65 6c 65 63 74 69 63 |........selectic| 0001dc40 6f 6e 28 4f 70 74 50 61 6e 65 57 25 2c 39 2c 53 |on(OptPaneW%,9,S| 0001dc50 75 70 70 6f 72 74 49 6e 74 65 72 66 61 63 65 25 |upportInterface%| 0001dc60 29 0d 0f cb 2a e7 20 53 75 70 70 6f 72 74 49 6e |)...*. SupportIn| 0001dc70 74 65 72 66 61 63 65 25 3c 3e 6f 6c 64 25 20 8c |terface%<>old% .| 0001dc80 20 f2 72 65 64 72 61 77 61 6c 6c 0d 0f cc 05 e1 | .redrawall.....| 0001dc90 0d 0f cd 04 0d 0f ce 1a dd 20 f2 73 75 70 70 6f |......... .suppo| 0001dca0 72 74 61 65 68 28 73 77 69 74 63 68 25 29 0d 0f |rtaeh(switch%)..| 0001dcb0 cf 0f ea 20 6f 6c 64 25 2c 66 6c 67 25 0d 0f d0 |... old%,flg%...| 0001dcc0 14 6f 6c 64 25 3d 53 75 70 70 6f 72 74 41 45 48 |.old%=SupportAEH| 0001dcd0 25 0d 0f d1 17 53 75 70 70 6f 72 74 41 45 48 25 |%....SupportAEH%| 0001dce0 3d 73 77 69 74 63 68 25 0d 0f d2 0f e7 20 73 77 |=switch%..... sw| 0001dcf0 69 74 63 68 25 20 8c 0d 0f d3 2c 20 20 c8 99 20 |itch% ...., .. | 0001dd00 22 58 4f 53 5f 4d 6f 64 75 6c 65 22 2c 31 38 2c |"XOS_Module",18,| 0001dd10 22 41 45 48 4d 6f 64 75 6c 65 22 20 b8 20 3b 66 |"AEHModule" . ;f| 0001dd20 6c 67 25 0d 0f d4 14 20 20 e7 20 28 66 6c 67 25 |lg%.... . (flg%| 0001dd30 20 80 20 31 29 20 8c 0d 0f d5 15 20 20 20 20 53 | . 1) ..... S| 0001dd40 75 70 70 6f 72 74 41 45 48 25 3d a3 0d 0f d6 1d |upportAEH%=.....| 0001dd50 20 20 20 20 f2 64 69 61 6c 6f 67 75 65 28 33 2c | .dialogue(3,| 0001dd60 22 41 45 48 22 2c 22 22 29 0d 0f d7 07 20 20 cc |"AEH","").... .| 0001dd70 0d 0f d8 1c 20 20 20 20 f2 73 75 70 70 6f 72 74 |.... .support| 0001dd80 69 6e 74 65 72 66 61 63 65 28 a3 29 0d 0f d9 07 |interface(.)....| 0001dd90 20 20 cd 0d 0f da 05 cd 0d 0f db 29 f2 73 65 6c | .........).sel| 0001dda0 65 63 74 69 63 6f 6e 28 4f 70 74 50 61 6e 65 57 |ecticon(OptPaneW| 0001ddb0 25 2c 31 30 2c 53 75 70 70 6f 72 74 41 45 48 25 |%,10,SupportAEH%| 0001ddc0 29 0d 0f dc 1d f2 72 65 67 69 73 74 65 72 61 65 |).....registerae| 0001ddd0 68 28 53 75 70 70 6f 72 74 41 45 48 25 29 0d 0f |h(SupportAEH%)..| 0001dde0 dd 24 e7 20 53 75 70 70 6f 72 74 41 45 48 25 3c |.$. SupportAEH%<| 0001ddf0 3e 6f 6c 64 25 20 8c 20 f2 72 65 64 72 61 77 61 |>old% . .redrawa| 0001de00 6c 6c 0d 0f de 05 e1 0d 0f df 04 0d 0f e0 1b dd |ll..............| 0001de10 20 f2 72 65 67 69 73 74 65 72 61 65 68 28 73 77 | .registeraeh(sw| 0001de20 69 74 63 68 25 29 0d 0f e1 0f ea 20 6f 6c 64 25 |itch%)..... old%| 0001de30 2c 66 6c 67 25 0d 0f e2 0f e7 20 73 77 69 74 63 |,flg%..... switc| 0001de40 68 25 20 8c 0d 0f e3 1a 20 20 e7 20 ac 20 41 45 |h% ..... . . AE| 0001de50 48 72 65 67 69 73 74 65 72 65 64 25 20 8c 0d 0f |Hregistered% ...| 0001de60 e4 24 20 20 20 20 c8 99 20 22 58 41 45 48 5f 52 |.$ .. "XAEH_R| 0001de70 65 67 69 73 74 65 72 22 2c 31 20 b8 20 3b 66 6c |egister",1 . ;fl| 0001de80 67 25 0d 0f e5 26 20 20 20 20 41 45 48 72 65 67 |g%...& AEHreg| 0001de90 69 73 74 65 72 65 64 25 3d 28 28 66 6c 67 25 20 |istered%=((flg% | 0001dea0 80 20 31 29 3c 3e 30 29 0d 0f e6 07 20 20 cd 0d |. 1)<>0).... ..| 0001deb0 0f e7 05 cc 0d 0f e8 18 20 20 e7 20 41 45 48 72 |........ . AEHr| 0001dec0 65 67 69 73 74 65 72 65 64 25 20 8c 0d 0f e9 1d |egistered% .....| 0001ded0 20 20 20 20 c8 99 20 22 58 41 45 48 5f 52 65 67 | .. "XAEH_Reg| 0001dee0 69 73 74 65 72 22 2c 2d 31 0d 0f ea 18 20 20 20 |ister",-1.... | 0001def0 20 41 45 48 72 65 67 69 73 74 65 72 65 64 25 3d | AEHregistered%=| 0001df00 a3 0d 0f eb 07 20 20 cd 0d 0f ec 05 cd 0d 0f ed |..... .........| 0001df10 05 e1 0d 0f ee 04 0d 0f ef 3b f4 20 2d 2d 2d 20 |.........;. --- | 0001df20 66 6f 72 63 65 20 74 68 65 20 72 65 64 72 61 77 |force the redraw| 0001df30 20 6f 66 20 61 6c 6c 20 6f 70 65 6e 20 74 65 6d | of all open tem| 0001df40 70 6c 61 74 65 20 77 69 6e 64 6f 77 73 20 2d 2d |plate windows --| 0001df50 2d 0d 0f f0 10 dd 20 f2 72 65 64 72 61 77 61 6c |-..... .redrawal| 0001df60 6c 0d 0f f1 08 ea 20 69 25 0d 0f f2 16 e7 20 4e |l..... i%..... N| 0001df70 72 54 65 6d 70 6c 61 74 65 73 25 3e 30 20 8c 0d |rTemplates%>0 ..| 0001df80 0f f3 1f 20 20 e3 20 69 25 3d 30 20 b8 20 28 4e |... . i%=0 . (N| 0001df90 72 54 65 6d 70 6c 61 74 65 73 25 2d 31 29 0d 0f |rTemplates%-1)..| 0001dfa0 f4 1f 20 20 20 20 42 6c 6b 25 21 30 3d 54 65 6d |.. Blk%!0=Tem| 0001dfb0 70 6c 48 61 6e 64 6c 65 25 28 69 25 29 0d 0f f5 |plHandle%(i%)...| 0001dfc0 26 20 20 20 20 c8 99 20 22 57 69 6d 70 5f 47 65 |& .. "Wimp_Ge| 0001dfd0 74 57 69 6e 64 6f 77 53 74 61 74 65 22 2c 2c 42 |tWindowState",,B| 0001dfe0 6c 6b 25 0d 0f f6 1f 20 20 20 20 e7 20 28 42 6c |lk%.... . (Bl| 0001dff0 6b 25 21 33 32 20 80 20 28 31 3c 3c 31 36 29 29 |k%!32 . (1<<16))| 0001e000 20 8c 0d 0f f7 40 20 20 20 20 20 20 c8 99 20 22 | ....@ .. "| 0001e010 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 72 61 77 |Wimp_ForceRedraw| 0001e020 22 2c 2d 31 2c 42 6c 6b 25 21 34 2c 42 6c 6b 25 |",-1,Blk%!4,Blk%| 0001e030 21 38 2c 42 6c 6b 25 21 31 32 2c 42 6c 6b 25 21 |!8,Blk%!12,Blk%!| 0001e040 31 36 0d 0f f8 09 20 20 20 20 cd 0d 0f f9 0a 20 |16.... ..... | 0001e050 20 ed 20 69 25 0d 0f fa 05 cd 0d 0f fb 05 e1 0d | . i%...........| 0001e060 0f fc 04 0d 0f fd 18 dd 20 f2 73 65 74 6d 61 69 |........ .setmai| 0001e070 6e 66 6e 61 6d 65 28 66 6e 24 29 0d 0f fe 12 4d |nfname(fn$)....M| 0001e080 61 69 6e 46 4e 61 6d 65 24 3d 66 6e 24 0d 0f ff |ainFName$=fn$...| 0001e090 1e e7 20 43 68 61 6e 67 65 73 4d 61 64 65 25 20 |.. ChangesMade% | 0001e0a0 8c 20 66 6e 24 2b 3d 22 20 2a 22 0d 10 00 28 f2 |. fn$+=" *"...(.| 0001e0b0 73 65 74 74 69 74 6c 65 62 61 72 28 54 65 6d 70 |settitlebar(Temp| 0001e0c0 6c 57 25 2c 54 65 6d 70 6c 54 62 61 72 25 2c 66 |lW%,TemplTbar%,f| 0001e0d0 6e 24 29 0d 10 01 05 e1 0d 10 02 04 0d 10 03 2b |n$)............+| 0001e0e0 f4 20 2d 2d 2d 20 73 65 74 20 74 68 65 20 27 63 |. --- set the 'c| 0001e0f0 68 61 6e 67 65 73 20 6d 61 64 65 27 20 73 74 61 |hanges made' sta| 0001e100 74 75 73 20 2d 2d 2d 0d 10 04 1a dd 20 f2 73 65 |tus ---..... .se| 0001e110 74 63 68 61 6e 67 65 64 28 73 77 69 74 63 68 25 |tchanged(switch%| 0001e120 29 0d 10 05 0c ea 20 74 69 74 6c 65 24 0d 10 06 |)..... title$...| 0001e130 1d e7 20 43 68 61 6e 67 65 73 4d 61 64 65 25 3c |.. ChangesMade%<| 0001e140 3e 73 77 69 74 63 68 25 20 8c 0d 10 07 11 20 20 |>switch% ..... | 0001e150 e7 20 73 77 69 74 63 68 25 20 8c 0d 10 08 21 20 |. switch% ....! | 0001e160 20 20 20 74 69 74 6c 65 24 3d 24 28 54 65 6d 70 | title$=$(Temp| 0001e170 6c 54 62 61 72 25 29 2b 22 20 2a 22 0d 10 09 07 |lTbar%)+" *"....| 0001e180 20 20 cc 0d 10 0a 31 20 20 20 20 74 69 74 6c 65 | ....1 title| 0001e190 24 3d c0 24 28 54 65 6d 70 6c 54 62 61 72 25 29 |$=.$(TemplTbar%)| 0001e1a0 2c a9 28 24 28 54 65 6d 70 6c 54 62 61 72 25 29 |,.($(TemplTbar%)| 0001e1b0 29 2d 32 29 0d 10 0b 07 20 20 cd 0d 10 0c 2d 20 |)-2).... ....- | 0001e1c0 20 f2 73 65 74 74 69 74 6c 65 62 61 72 28 54 65 | .settitlebar(Te| 0001e1d0 6d 70 6c 57 25 2c 54 65 6d 70 6c 54 62 61 72 25 |mplW%,TemplTbar%| 0001e1e0 2c 74 69 74 6c 65 24 29 0d 10 0d 1a 20 20 43 68 |,title$).... Ch| 0001e1f0 61 6e 67 65 73 4d 61 64 65 25 3d 73 77 69 74 63 |angesMade%=switc| 0001e200 68 25 0d 10 0e 05 cd 0d 10 0f 05 e1 0d 10 10 04 |h%..............| 0001e210 0d 10 11 35 f4 20 2d 2d 2d 20 62 75 69 6c 64 20 |...5. --- build | 0001e220 73 74 72 69 6e 67 20 77 69 74 68 20 69 6e 66 6f |string with info| 0001e230 20 74 6f 20 73 65 6e 64 20 74 6f 20 21 48 65 6c | to send to !Hel| 0001e240 70 20 2d 2d 2d 0d 10 12 1a dd 20 a4 69 63 6f 6e |p ---..... .icon| 0001e250 68 65 6c 70 28 6e 6f 25 2c 69 63 6f 6e 25 29 0d |help(no%,icon%).| 0001e260 10 13 0e ea 20 68 65 6c 70 24 2c 70 25 0d 10 14 |.... help$,p%...| 0001e270 2c 68 65 6c 70 24 3d 22 54 65 6d 70 6c 61 74 65 |,help$="Template| 0001e280 20 27 22 2b 24 28 54 65 6d 70 6c 4e 61 6d 65 73 | '"+$(TemplNames| 0001e290 25 2b 32 38 2a 6e 6f 25 29 0d 10 15 10 e7 20 69 |%+28*no%)..... i| 0001e2a0 63 6f 6e 25 3e 3d 30 20 8c 0d 10 16 26 20 20 68 |con%>=0 ....& h| 0001e2b0 65 6c 70 24 2b 3d 22 27 2c 20 49 63 6f 6e 20 23 |elp$+="', Icon #| 0001e2c0 22 2b c3 28 69 63 6f 6e 25 29 2b 22 7c 4d 22 0d |"+.(icon%)+"|M".| 0001e2d0 10 17 23 20 20 53 63 72 61 70 42 6c 6b 25 21 30 |..# ScrapBlk%!0| 0001e2e0 3d 54 65 6d 70 6c 48 61 6e 64 6c 65 25 28 6e 6f |=TemplHandle%(no| 0001e2f0 25 29 0d 10 18 17 20 20 53 63 72 61 70 42 6c 6b |%).... ScrapBlk| 0001e300 25 21 34 3d 69 63 6f 6e 25 0d 10 19 27 20 20 c8 |%!4=icon%...' .| 0001e310 99 20 22 57 69 6d 70 5f 47 65 74 49 63 6f 6e 53 |. "Wimp_GetIconS| 0001e320 74 61 74 65 22 2c 2c 53 63 72 61 70 42 6c 6b 25 |tate",,ScrapBlk%| 0001e330 0d 10 1a 19 20 20 66 6c 61 67 73 25 3d 53 63 72 |.... flags%=Scr| 0001e340 61 70 42 6c 6b 25 21 32 34 0d 10 1b 17 20 20 c8 |apBlk%!24.... .| 0001e350 8e 20 28 66 6c 61 67 73 25 20 80 20 33 29 20 ca |. (flags% . 3) .| 0001e360 0d 10 1c 2b 20 20 20 20 c9 20 30 20 3a 20 68 65 |...+ . 0 : he| 0001e370 6c 70 24 2b 3d 22 4e 6f 6e 2d 74 65 78 74 2c 20 |lp$+="Non-text, | 0001e380 6e 6f 6e 2d 73 70 72 69 74 65 22 0d 10 1d 1b 20 |non-sprite".... | 0001e390 20 20 20 c9 20 31 20 3a 20 68 65 6c 70 24 2b 3d | . 1 : help$+=| 0001e3a0 22 54 65 78 74 22 0d 10 1e 1d 20 20 20 20 c9 20 |"Text".... . | 0001e3b0 32 20 3a 20 68 65 6c 70 24 2b 3d 22 53 70 72 69 |2 : help$+="Spri| 0001e3c0 74 65 22 0d 10 1f 24 20 20 20 20 c9 20 33 20 3a |te"...$ . 3 :| 0001e3d0 20 68 65 6c 70 24 2b 3d 22 54 65 78 74 20 2b 20 | help$+="Text + | 0001e3e0 53 70 72 69 74 65 22 0d 10 20 07 20 20 cb 0d 10 |Sprite".. . ...| 0001e3f0 21 16 20 20 68 65 6c 70 24 2b 3d 22 20 69 63 6f |!. help$+=" ico| 0001e400 6e 2c 20 22 0d 10 22 19 20 20 e7 20 28 66 6c 61 |n, "..". . (fla| 0001e410 67 73 25 20 80 20 26 31 30 30 29 20 8c 0d 10 23 |gs% . &100) ...#| 0001e420 3d 20 20 20 20 68 65 6c 70 24 2b 3d 22 49 6e 64 |= help$+="Ind| 0001e430 69 72 65 63 74 65 64 20 28 6d 61 78 2e 20 73 69 |irected (max. si| 0001e440 7a 65 20 22 2b c3 28 53 63 72 61 70 42 6c 6b 25 |ze "+.(ScrapBlk%| 0001e450 21 33 36 29 2b 22 29 7c 4d 22 0d 10 24 18 20 20 |!36)+")|M"..$. | 0001e460 20 20 e7 20 28 66 6c 61 67 73 25 20 80 20 31 29 | . (flags% . 1)| 0001e470 20 8c 0d 10 25 1d 20 20 20 20 20 20 e7 20 53 63 | ...%. . Sc| 0001e480 72 61 70 42 6c 6b 25 21 33 32 3d 2d 31 20 8c 0d |rapBlk%!32=-1 ..| 0001e490 10 26 29 20 20 20 20 20 20 20 20 68 65 6c 70 24 |.&) help$| 0001e4a0 2b 3d 22 4e 6f 20 76 61 6c 69 64 61 74 69 6f 6e |+="No validation| 0001e4b0 20 73 74 72 69 6e 67 22 0d 10 27 0b 20 20 20 20 | string"..'. | 0001e4c0 20 20 cc 0d 10 28 3d 20 20 20 20 20 20 20 20 68 | ...(= h| 0001e4d0 65 6c 70 24 2b 3d 22 56 61 6c 69 64 61 74 69 6f |elp$+="Validatio| 0001e4e0 6e 20 73 74 72 69 6e 67 3a 20 27 22 2b 24 28 53 |n string: '"+$(S| 0001e4f0 63 72 61 70 42 6c 6b 25 21 33 32 29 2b 22 27 22 |crapBlk%!32)+"'"| 0001e500 0d 10 29 0b 20 20 20 20 20 20 cd 0d 10 2a 09 20 |..). ...*. | 0001e510 20 20 20 cd 0d 10 2b 07 20 20 cc 0d 10 2c 22 20 | ...+. ...," | 0001e520 20 20 20 68 65 6c 70 24 2b 3d 22 4e 6f 6e 2d 69 | help$+="Non-i| 0001e530 6e 64 69 72 65 63 74 65 64 7c 4d 20 22 0d 10 2d |ndirected|M "..-| 0001e540 07 20 20 cd 0d 10 2e 42 20 20 68 65 6c 70 24 2b |. ....B help$+| 0001e550 3d 22 7c 4d 42 75 74 74 6f 6e 20 74 79 70 65 3a |="|MButton type:| 0001e560 20 27 22 2b 24 28 49 63 42 75 74 74 6f 6e 25 2b | '"+$(IcButton%+| 0001e570 32 30 2a 28 28 66 6c 61 67 73 25 3e 3e 31 32 29 |20*((flags%>>12)| 0001e580 80 20 26 46 29 29 0d 10 2f 2c 20 20 68 65 6c 70 |. &F))../, help| 0001e590 24 2b 3d 22 27 2c 20 45 53 47 3a 20 22 2b c3 28 |$+="', ESG: "+.(| 0001e5a0 28 66 6c 61 67 73 25 3e 3e 31 36 29 80 20 26 31 |(flags%>>16). &1| 0001e5b0 46 29 0d 10 30 19 20 20 e7 20 4f 53 76 65 72 73 |F)..0. . OSvers| 0001e5c0 69 6f 6e 25 3e 3d 33 30 30 20 8c 0d 10 31 4a 20 |ion%>=300 ...1J | 0001e5d0 20 20 20 f4 20 72 65 70 6c 61 63 65 20 22 5c 22 | . replace "\"| 0001e5e0 20 77 69 74 68 20 22 5c 5c 22 2c 20 65 6c 73 65 | with "\\", else| 0001e5f0 20 21 48 65 6c 70 20 28 52 69 73 63 4f 53 20 33 | !Help (RiscOS 3| 0001e600 29 20 74 68 69 6e 6b 73 20 69 74 27 73 20 61 20 |) thinks it's a | 0001e610 74 6f 6b 65 6e 0d 10 32 16 20 20 20 20 70 25 3d |token..2. p%=| 0001e620 a7 68 65 6c 70 24 2c 22 5c 22 29 0d 10 33 10 20 |.help$,"\")..3. | 0001e630 20 20 20 c8 95 20 70 25 3c 3e 30 0d 10 34 2b 20 | .. p%<>0..4+ | 0001e640 20 20 20 20 20 68 65 6c 70 24 3d c0 68 65 6c 70 | help$=.help| 0001e650 24 2c 70 25 29 2b 22 5c 22 2b c1 68 65 6c 70 24 |$,p%)+"\"+.help$| 0001e660 2c 70 25 2b 31 29 0d 10 35 1d 20 20 20 20 20 20 |,p%+1)..5. | 0001e670 70 25 3d a7 68 65 6c 70 24 2c 22 5c 22 2c 70 25 |p%=.help$,"\",p%| 0001e680 2b 32 29 0d 10 36 09 20 20 20 20 ce 0d 10 37 07 |+2)..6. ...7.| 0001e690 20 20 cd 0d 10 38 05 cc 0d 10 39 21 20 20 57 69 | ...8....9! Wi| 0001e6a0 6e 42 6c 6b 25 21 30 3d 54 65 6d 70 6c 48 61 6e |nBlk%!0=TemplHan| 0001e6b0 64 6c 65 25 28 6e 6f 25 29 0d 10 3a 26 20 20 c8 |dle%(no%)..:& .| 0001e6c0 99 20 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f |. "Wimp_GetWindo| 0001e6d0 77 49 6e 66 6f 22 2c 2c 57 69 6e 42 6c 6b 25 0d |wInfo",,WinBlk%.| 0001e6e0 10 3b 33 20 20 68 65 6c 70 24 2b 3d 22 27 2c 20 |.;3 help$+="', | 0001e6f0 57 69 6e 64 6f 77 20 62 61 63 6b 67 72 6f 75 6e |Window backgroun| 0001e700 64 7c 4d 42 75 74 74 6f 6e 20 74 79 70 65 3a 20 |d|MButton type: | 0001e710 27 22 0d 10 3c 3a 20 20 68 65 6c 70 24 2b 3d 24 |'"..<: help$+=$| 0001e720 28 57 69 6e 42 75 74 74 6f 6e 25 2b 32 30 2a 28 |(WinButton%+20*(| 0001e730 28 28 57 69 6e 42 6c 6b 25 21 36 34 29 3e 3e 31 |((WinBlk%!64)>>1| 0001e740 32 29 80 20 26 46 29 29 2b 22 27 22 0d 10 3d 05 |2). &F))+"'"..=.| 0001e750 cd 0d 10 3e 0a 3d 68 65 6c 70 24 0d 10 3f 04 0d |...>.=help$..?..| 0001e760 10 40 2f f4 20 2d 2d 2d 20 73 63 68 65 64 75 6c |.@/. --- schedul| 0001e770 65 20 74 68 65 20 63 6c 6f 73 65 64 6f 77 6e 20 |e the closedown | 0001e780 6f 66 20 54 65 6d 70 6c 45 64 20 2d 2d 2d 0d 10 |of TemplEd ---..| 0001e790 41 18 dd 20 f2 70 72 65 71 75 69 74 28 64 65 6c |A.. .prequit(del| 0001e7a0 61 79 65 64 25 29 0d 10 42 1e 50 6f 6c 6c 4d 61 |ayed%)..B.PollMa| 0001e7b0 73 6b 25 3d 50 6f 6c 6c 4d 61 73 6b 25 20 80 28 |sk%=PollMask% .(| 0001e7c0 ac 20 31 29 0d 10 43 0b 51 75 69 74 25 3d b9 0d |. 1)..C.Quit%=..| 0001e7d0 10 44 10 e7 20 64 65 6c 61 79 65 64 25 20 8c 0d |.D.. delayed% ..| 0001e7e0 10 45 3a 20 20 f4 20 64 65 6c 61 79 65 64 20 71 |.E: . delayed q| 0001e7f0 75 69 74 20 69 73 20 61 20 77 6f 72 6b 61 72 6f |uit is a workaro| 0001e800 75 6e 64 20 66 6f 72 20 62 75 67 20 69 6e 20 52 |und for bug in R| 0001e810 69 73 63 4f 53 20 33 2e 31 0d 10 46 1a 20 20 51 |iscOS 3.1..F. Q| 0001e820 75 69 74 44 65 61 64 6c 69 6e 65 25 3d 91 2b 36 |uitDeadline%=.+6| 0001e830 30 20 20 0d 10 47 05 cc 0d 10 48 15 20 20 51 75 |0 ..G....H. Qu| 0001e840 69 74 44 65 61 64 6c 69 6e 65 25 3d 91 0d 10 49 |itDeadline%=...I| 0001e850 05 cd 0d 10 4a 05 e1 0d 10 4b 04 0d 10 4c 44 f4 |....J....K...LD.| 0001e860 20 2d 2d 2d 20 73 65 6e 64 20 68 65 6c 70 2d 72 | --- send help-r| 0001e870 65 71 75 65 73 74 20 74 6f 20 53 74 72 6f 6e 67 |equest to Strong| 0001e880 48 65 6c 70 2c 20 66 6f 72 20 68 65 6c 70 20 6f |Help, for help o| 0001e890 6e 20 61 20 73 75 62 6a 65 63 74 20 2d 2d 2d 0d |n a subject ---.| 0001e8a0 10 4d 17 dd 20 f2 61 73 6b 68 65 6c 70 28 73 74 |.M.. .askhelp(st| 0001e8b0 72 69 6e 67 24 29 0d 10 4e 0e 42 6c 6b 25 21 30 |ring$)..N.Blk%!0| 0001e8c0 3d 32 35 36 0d 10 4f 0d 42 6c 6b 25 21 31 32 3d |=256..O.Blk%!12=| 0001e8d0 30 0d 10 50 12 42 6c 6b 25 21 31 36 3d 26 34 33 |0..P.Blk%!16=&43| 0001e8e0 42 30 30 0d 10 51 26 24 28 42 6c 6b 25 2b 32 30 |B00..Q&$(Blk%+20| 0001e8f0 29 3d 22 48 65 6c 70 5f 57 6f 72 64 20 22 2b 73 |)="Help_Word "+s| 0001e900 74 72 69 6e 67 24 2b bd 30 0d 10 52 23 c8 99 20 |tring$+.0..R#.. | 0001e910 22 57 69 6d 70 5f 53 65 6e 64 4d 65 73 73 61 67 |"Wimp_SendMessag| 0001e920 65 22 2c 31 37 2c 42 6c 6b 25 2c 30 0d 10 53 05 |e",17,Blk%,0..S.| 0001e930 e1 0d 10 54 04 0d 10 55 28 f4 20 2a 2a 2a 20 70 |...T...U(. *** p| 0001e940 72 6f 63 73 20 66 6f 72 20 73 61 76 69 6e 67 20 |rocs for saving | 0001e950 74 65 6d 70 6c 61 74 65 73 20 2a 2a 2a 0d 10 56 |templates ***..V| 0001e960 04 0d 10 57 1c dd 20 f2 73 61 76 65 74 65 6d 70 |...W.. .savetemp| 0001e970 6c 61 74 65 73 28 66 6e 61 6d 65 24 29 0d 10 58 |lates(fname$)..X| 0001e980 19 ea 20 68 61 6e 64 6c 65 25 2c 6f 66 66 73 65 |.. handle%,offse| 0001e990 74 25 2c 6e 6f 25 0d 10 59 07 ea 20 85 0d 10 5a |t%,no%..Y.. ...Z| 0001e9a0 33 e7 20 28 a7 66 6e 61 6d 65 24 2c 22 2e 22 29 |3. (.fname$,".")| 0001e9b0 3d 30 29 20 80 20 28 66 6e 61 6d 65 24 3c 3e 22 |=0) . (fname$<>"| 0001e9c0 3c 57 69 6d 70 24 53 63 72 61 70 3e 22 29 20 8c |<Wimp$Scrap>") .| 0001e9d0 0d 10 5b 25 20 20 f2 63 6f 6d 70 6c 61 69 6e 28 |..[% .complain(| 0001e9e0 a4 6d 73 67 5f 6c 6f 6f 6b 75 70 30 28 22 49 53 |.msg_lookup0("IS| 0001e9f0 4c 46 22 29 29 0d 10 5c 05 cc 0d 10 5d 17 20 20 |LF"))..\....]. | 0001ea00 c8 99 20 22 48 6f 75 72 67 6c 61 73 73 5f 4f 6e |.. "Hourglass_On| 0001ea10 22 0d 10 5e 35 20 20 f2 73 61 76 65 5f 69 6e 69 |"..^5 .save_ini| 0001ea20 74 28 66 6e 61 6d 65 24 2c 4e 72 54 65 6d 70 6c |t(fname$,NrTempl| 0001ea30 61 74 65 73 25 2c 68 61 6e 64 6c 65 25 2c 6f 66 |ates%,handle%,of| 0001ea40 66 73 65 74 25 29 0d 10 5f 26 20 20 ee 20 85 20 |fset%).._& . . | 0001ea50 ea 20 d9 20 23 68 61 6e 64 6c 65 25 20 3a 20 f2 |. . #handle% : .| 0001ea60 65 72 72 6f 72 28 30 29 20 3a 20 e1 0d 10 60 1e |error(0) : ...`.| 0001ea70 20 20 e3 20 6e 6f 25 3d 30 20 b8 20 4e 72 54 65 | . no%=0 . NrTe| 0001ea80 6d 70 6c 61 74 65 73 25 2d 31 0d 10 61 3f 20 20 |mplates%-1..a? | 0001ea90 20 20 e7 20 28 ac 20 53 61 76 69 6e 67 53 65 6c | . (. SavingSel| 0001eaa0 65 63 74 69 6f 6e 25 29 20 84 20 28 a4 69 63 6f |ection%) . (.ico| 0001eab0 6e 73 65 6c 65 63 74 65 64 28 54 65 6d 70 6c 57 |nselected(TemplW| 0001eac0 25 2c 6e 6f 25 29 29 20 8c 0d 10 62 2d 20 20 20 |%,no%)) ...b- | 0001ead0 20 20 20 f2 73 61 76 65 5f 74 65 6d 70 6c 61 74 | .save_templat| 0001eae0 65 28 6e 6f 25 2c 68 61 6e 64 6c 65 25 2c 6f 66 |e(no%,handle%,of| 0001eaf0 66 73 65 74 25 29 0d 10 63 09 20 20 20 20 cd 0d |fset%)..c. ..| 0001eb00 10 64 0b 20 20 ed 20 6e 6f 25 0d 10 65 23 20 20 |.d. . no%..e# | 0001eb10 f2 73 61 76 65 5f 66 69 6e 69 73 68 28 68 61 6e |.save_finish(han| 0001eb20 64 6c 65 25 2c 6f 66 66 73 65 74 25 29 0d 10 66 |dle%,offset%)..f| 0001eb30 21 20 20 c8 99 20 22 4f 53 5f 46 69 6c 65 22 2c |! .. "OS_File",| 0001eb40 31 38 2c 66 6e 61 6d 65 24 2c 26 46 45 43 0d 10 |18,fname$,&FEC..| 0001eb50 67 18 20 20 c8 99 20 22 48 6f 75 72 67 6c 61 73 |g. .. "Hourglas| 0001eb60 73 5f 4f 66 66 22 0d 10 68 2a 20 20 e7 20 66 6e |s_Off"..h* . fn| 0001eb70 61 6d 65 24 3d 4d 61 69 6e 46 4e 61 6d 65 24 20 |ame$=MainFName$ | 0001eb80 8c 20 f2 73 65 74 63 68 61 6e 67 65 64 28 a3 29 |. .setchanged(.)| 0001eb90 0d 10 69 05 cd 0d 10 6a 1c c8 99 20 22 57 69 6d |..i....j... "Wim| 0001eba0 70 5f 43 72 65 61 74 65 4d 65 6e 75 22 2c 2c 2d |p_CreateMenu",,-| 0001ebb0 31 0d 10 6b 22 e7 20 51 75 69 74 41 66 74 65 72 |1..k". QuitAfter| 0001ebc0 53 61 76 65 25 20 8c 20 f2 70 72 65 71 75 69 74 |Save% . .prequit| 0001ebd0 28 31 29 0d 10 6c 05 e1 0d 10 6d 04 0d 10 6e 35 |(1)..l....m...n5| 0001ebe0 dd 20 f2 73 61 76 65 5f 69 6e 69 74 28 66 6e 61 |. .save_init(fna| 0001ebf0 6d 65 24 2c 6e 72 74 65 6d 70 6c 25 2c f8 20 68 |me$,nrtempl%,. h| 0001ec00 61 6e 64 6c 65 25 2c f8 20 6f 66 66 73 65 74 25 |andle%,. offset%| 0001ec10 29 0d 10 6f 08 ea 20 69 25 0d 10 70 15 53 61 76 |)..o.. i%..p.Sav| 0001ec20 65 5f 49 6e 64 65 78 4f 66 73 25 3d 31 36 0d 10 |e_IndexOfs%=16..| 0001ec30 71 1d e3 20 69 25 3d 30 20 b8 20 46 69 6c 65 49 |q.. i%=0 . FileI| 0001ec40 6e 64 65 78 53 69 7a 65 25 2d 31 0d 10 72 15 20 |ndexSize%-1..r. | 0001ec50 20 46 69 6c 65 49 6e 64 65 78 25 3f 69 25 3d 30 | FileIndex%?i%=0| 0001ec60 0d 10 73 08 ed 20 69 25 0d 10 74 48 f4 20 73 65 |..s.. i%..tH. se| 0001ec70 74 20 75 70 20 74 72 61 6e 73 6c 61 74 69 6f 6e |t up translation| 0001ec80 20 74 61 62 6c 65 20 66 6f 72 20 66 6f 6e 74 20 | table for font | 0001ec90 68 61 6e 64 6c 65 73 20 2d 3e 20 69 6e 74 65 72 |handles -> inter| 0001eca0 6e 61 6c 20 66 6f 6e 74 20 68 61 6e 64 6c 65 73 |nal font handles| 0001ecb0 0d 10 75 10 e3 20 69 25 3d 30 20 b8 20 32 35 35 |..u.. i%=0 . 255| 0001ecc0 0d 10 76 0f 20 20 46 72 61 25 3f 69 25 3d 30 0d |..v. Fra%?i%=0.| 0001ecd0 10 77 08 ed 20 69 25 0d 10 78 13 53 61 76 65 5f |.w.. i%..x.Save_| 0001ece0 4e 72 46 6f 6e 74 73 25 3d 30 0d 10 79 32 46 69 |NrFonts%=0..y2Fi| 0001ecf0 6c 65 49 6e 64 65 78 25 21 30 3d 2d 31 20 20 20 |leIndex%!0=-1 | 0001ed00 20 20 20 20 20 20 20 3a 20 f4 20 6e 6f 20 66 6f | : . no fo| 0001ed10 6e 74 73 20 28 73 6f 20 66 61 72 29 0d 10 7a 4c |nts (so far)..zL| 0001ed20 6f 66 66 73 65 74 25 3d 31 36 2b 6e 72 74 65 6d |offset%=16+nrtem| 0001ed30 70 6c 25 2a 32 34 2b 34 20 3a 20 f4 20 73 6b 69 |pl%*24+4 : . ski| 0001ed40 70 20 66 69 72 73 74 20 70 61 72 74 20 6f 66 20 |p first part of | 0001ed50 66 69 6c 65 20 28 69 6e 64 65 78 20 73 61 76 65 |file (index save| 0001ed60 64 20 6c 61 74 65 72 29 0d 10 7b 14 68 61 6e 64 |d later)..{.hand| 0001ed70 6c 65 25 3d ae 20 66 6e 61 6d 65 24 0d 10 7c 05 |le%=. fname$..|.| 0001ed80 e1 0d 10 7d 04 0d 10 7e 2b dd 20 f2 73 61 76 65 |...}...~+. .save| 0001ed90 5f 74 65 6d 70 6c 61 74 65 28 6e 6f 25 2c 68 61 |_template(no%,ha| 0001eda0 6e 64 6c 65 25 2c f8 20 6f 66 66 73 65 74 25 29 |ndle%,. offset%)| 0001edb0 0d 10 7f 1e ea 20 6e 72 69 63 6f 6e 73 25 2c 69 |..... nricons%,i| 0001edc0 25 2c 64 61 74 61 6f 66 73 25 2c 69 62 25 0d 10 |%,dataofs%,ib%..| 0001edd0 80 27 46 69 6c 65 49 6e 64 65 78 25 21 28 53 61 |.'FileIndex%!(Sa| 0001ede0 76 65 5f 49 6e 64 65 78 4f 66 73 25 29 3d 6f 66 |ve_IndexOfs%)=of| 0001edf0 66 73 65 74 25 0d 10 81 23 46 69 6c 65 49 6e 64 |fset%...#FileInd| 0001ee00 65 78 25 21 28 53 61 76 65 5f 49 6e 64 65 78 4f |ex%!(Save_IndexO| 0001ee10 66 73 25 2b 38 29 3d 31 0d 10 82 39 24 28 46 69 |fs%+8)=1...9$(Fi| 0001ee20 6c 65 49 6e 64 65 78 25 2b 53 61 76 65 5f 49 6e |leIndex%+Save_In| 0001ee30 64 65 78 4f 66 73 25 2b 31 32 29 3d 24 28 54 65 |dexOfs%+12)=$(Te| 0001ee40 6d 70 6c 4e 61 6d 65 73 25 2b 32 38 2a 6e 6f 25 |mplNames%+28*no%| 0001ee50 29 0d 10 83 1f 57 69 6e 42 6c 6b 25 21 30 3d 54 |)....WinBlk%!0=T| 0001ee60 65 6d 70 6c 48 61 6e 64 6c 65 25 28 6e 6f 25 29 |emplHandle%(no%)| 0001ee70 0d 10 84 24 c8 99 20 22 57 69 6d 70 5f 47 65 74 |...$.. "Wimp_Get| 0001ee80 57 69 6e 64 6f 77 49 6e 66 6f 22 2c 2c 57 69 6e |WindowInfo",,Win| 0001ee90 42 6c 6b 25 0d 10 85 15 e7 20 50 61 6e 65 46 6c |Blk%..... PaneFl| 0001eea0 61 67 25 3f 6e 6f 25 20 8c 0d 10 86 3c 20 20 57 |ag%?no% ....< W| 0001eeb0 69 6e 42 6c 6b 25 21 33 32 3d 57 69 6e 42 6c 6b |inBlk%!32=WinBlk| 0001eec0 25 21 33 32 20 84 20 28 31 3c 3c 35 29 20 3a 20 |%!32 . (1<<5) : | 0001eed0 f4 20 72 65 73 74 6f 72 65 20 27 50 61 6e 65 27 |. restore 'Pane'| 0001eee0 20 66 6c 61 67 0d 10 87 05 cd 0d 10 88 17 6e 72 | flag.........nr| 0001eef0 69 63 6f 6e 73 25 3d 57 69 6e 42 6c 6b 25 21 38 |icons%=WinBlk%!8| 0001ef00 38 0d 10 89 1b 64 61 74 61 6f 66 73 25 3d 38 38 |8....dataofs%=88| 0001ef10 2b 33 32 2a 6e 72 69 63 6f 6e 73 25 0d 10 8a 36 |+32*nricons%...6| 0001ef20 57 69 6e 42 6c 6b 25 21 36 38 3d 31 20 3a 20 f4 |WinBlk%!68=1 : .| 0001ef30 20 72 65 73 65 74 20 73 70 72 69 74 65 20 70 6f | reset sprite po| 0001ef40 69 6e 74 65 72 20 74 6f 20 57 69 6d 70 20 61 72 |inter to Wimp ar| 0001ef50 65 61 0d 10 8b 33 f2 73 61 76 65 5f 74 72 61 6e |ea...3.save_tran| 0001ef60 73 6c 61 74 65 28 57 69 6e 42 6c 6b 25 2b 36 30 |slate(WinBlk%+60| 0001ef70 2c 57 69 6e 42 6c 6b 25 2b 37 36 2c 64 61 74 61 |,WinBlk%+76,data| 0001ef80 6f 66 73 25 29 0d 10 8c 12 e7 20 6e 72 69 63 6f |ofs%)..... nrico| 0001ef90 6e 73 25 3e 30 20 8c 0d 10 8d 19 20 20 e3 20 69 |ns%>0 ..... . i| 0001efa0 25 3d 30 20 b8 20 6e 72 69 63 6f 6e 73 25 2d 31 |%=0 . nricons%-1| 0001efb0 0d 10 8e 1c 20 20 20 20 69 62 25 3d 57 69 6e 42 |.... ib%=WinB| 0001efc0 6c 6b 25 2b 39 32 2b 69 25 2a 33 32 0d 10 8f 2f |lk%+92+i%*32.../| 0001efd0 20 20 20 20 f2 73 61 76 65 5f 74 72 61 6e 73 6c | .save_transl| 0001efe0 61 74 65 28 69 62 25 2b 31 36 2c 69 62 25 2b 32 |ate(ib%+16,ib%+2| 0001eff0 30 2c 64 61 74 61 6f 66 73 25 29 0d 10 90 1c 20 |0,dataofs%).... | 0001f000 20 20 20 e7 20 53 61 76 65 5f 55 6e 73 65 6c 65 | . Save_Unsele| 0001f010 63 74 65 64 25 20 8c 0d 10 91 24 20 20 20 20 20 |cted% ....$ | 0001f020 20 69 62 25 21 31 36 3d 69 62 25 21 31 36 20 80 | ib%!16=ib%!16 .| 0001f030 20 28 ac 28 31 3c 3c 32 31 29 29 0d 10 92 09 20 | (.(1<<21)).... | 0001f040 20 20 20 cd 0d 10 93 0a 20 20 ed 20 69 25 0d 10 | ..... . i%..| 0001f050 94 05 cd 0d 10 95 49 c8 99 20 22 4f 53 5f 47 42 |......I.. "OS_GB| 0001f060 50 42 22 2c 31 2c 68 61 6e 64 6c 65 25 2c 57 69 |PB",1,handle%,Wi| 0001f070 6e 42 6c 6b 25 2b 34 2c 38 38 2b 33 32 2a 6e 72 |nBlk%+4,88+32*nr| 0001f080 69 63 6f 6e 73 25 2c 6f 66 66 73 65 74 25 20 b8 |icons%,offset% .| 0001f090 20 2c 2c 2c 2c 6f 66 66 73 65 74 25 0d 10 96 24 | ,,,,offset%...$| 0001f0a0 c8 99 20 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 |.. "Wimp_GetWind| 0001f0b0 6f 77 49 6e 66 6f 22 2c 2c 57 69 6e 42 6c 6b 25 |owInfo",,WinBlk%| 0001f0c0 0d 10 97 37 f2 73 61 76 65 5f 69 63 6f 6e 28 57 |...7.save_icon(W| 0001f0d0 69 6e 42 6c 6b 25 21 28 36 30 29 2c 57 69 6e 42 |inBlk%!(60),WinB| 0001f0e0 6c 6b 25 2b 37 36 2c 68 61 6e 64 6c 65 25 2c 6f |lk%+76,handle%,o| 0001f0f0 66 66 73 65 74 25 29 0d 10 98 12 e7 20 6e 72 69 |ffset%)..... nri| 0001f100 63 6f 6e 73 25 3e 30 20 8c 0d 10 99 19 20 20 e3 |cons%>0 ..... .| 0001f110 20 69 25 3d 30 20 b8 20 6e 72 69 63 6f 6e 73 25 | i%=0 . nricons%| 0001f120 2d 31 0d 10 9a 4d 20 20 20 20 f2 73 61 76 65 5f |-1...M .save_| 0001f130 69 63 6f 6e 28 57 69 6e 42 6c 6b 25 21 28 39 32 |icon(WinBlk%!(92| 0001f140 2b 69 25 2a 33 32 2b 31 36 29 2c 57 69 6e 42 6c |+i%*32+16),WinBl| 0001f150 6b 25 2b 39 32 2b 69 25 2a 33 32 2b 32 30 2c 68 |k%+92+i%*32+20,h| 0001f160 61 6e 64 6c 65 25 2c 6f 66 66 73 65 74 25 29 0d |andle%,offset%).| 0001f170 10 9b 0a 20 20 ed 20 69 25 0d 10 9c 05 cd 0d 10 |... . i%.......| 0001f180 9d 45 46 69 6c 65 49 6e 64 65 78 25 21 28 53 61 |.EFileIndex%!(Sa| 0001f190 76 65 5f 49 6e 64 65 78 4f 66 73 25 2b 34 29 3d |ve_IndexOfs%+4)=| 0001f1a0 6f 66 66 73 65 74 25 2d 46 69 6c 65 49 6e 64 65 |offset%-FileInde| 0001f1b0 78 25 21 28 53 61 76 65 5f 49 6e 64 65 78 4f 66 |x%!(Save_IndexOf| 0001f1c0 73 25 29 0d 10 9e 16 53 61 76 65 5f 49 6e 64 65 |s%)....Save_Inde| 0001f1d0 78 4f 66 73 25 2b 3d 32 34 0d 10 9f 05 e1 0d 10 |xOfs%+=24.......| 0001f1e0 a0 04 0d 10 a1 4f f4 20 2d 2d 2d 20 74 72 61 6e |.....O. --- tran| 0001f1f0 73 6c 61 74 65 20 64 61 74 61 20 69 6e 20 69 63 |slate data in ic| 0001f200 6f 6e 20 62 6c 6f 63 6b 20 28 69 6e 64 69 72 65 |on block (indire| 0001f210 63 74 65 64 20 70 6f 69 6e 74 65 72 73 20 2b 20 |cted pointers + | 0001f220 66 6f 6e 74 20 68 61 6e 64 6c 65 73 29 20 2d 2d |font handles) --| 0001f230 2d 0d 10 a2 30 dd 20 f2 73 61 76 65 5f 74 72 61 |-...0. .save_tra| 0001f240 6e 73 6c 61 74 65 28 66 6c 61 67 70 74 72 25 2c |nslate(flagptr%,| 0001f250 64 61 74 61 25 2c f8 20 64 61 74 61 6f 66 73 25 |data%,. dataofs%| 0001f260 29 0d 10 a3 24 ea 20 66 6c 61 67 73 25 2c 73 6c |)...$. flags%,sl| 0001f270 25 2c 66 68 61 6e 64 6c 65 25 2c 69 6e 74 68 61 |%,fhandle%,intha| 0001f280 6e 64 6c 65 25 0d 10 a4 15 66 6c 61 67 73 25 3d |ndle%....flags%=| 0001f290 66 6c 61 67 70 74 72 25 21 30 0d 10 a5 1c e7 20 |flagptr%!0..... | 0001f2a0 28 66 6c 61 67 73 25 20 80 20 28 31 3c 3c 32 33 |(flags% . (1<<23| 0001f2b0 29 29 3e 30 20 8c 0d 10 a6 36 20 20 f4 20 69 63 |))>0 ....6 . ic| 0001f2c0 6f 6e 20 68 61 73 20 62 65 65 6e 20 64 65 6c 65 |on has been dele| 0001f2d0 74 65 64 20 2d 20 66 69 6c 6c 20 77 69 74 68 20 |ted - fill with | 0001f2e0 64 65 66 61 75 6c 74 20 64 61 74 61 0d 10 a7 1a |default data....| 0001f2f0 20 20 66 6c 61 67 70 74 72 25 21 30 3d 26 30 37 | flagptr%!0=&07| 0001f300 38 30 30 30 30 31 0d 10 a8 1a 20 20 24 28 64 61 |800001.... $(da| 0001f310 74 61 25 29 3d 22 3c 44 65 6c 65 74 65 64 3e 22 |ta%)="<Deleted>"| 0001f320 0d 10 a9 05 cc 0d 10 aa 39 20 20 f4 20 31 2e 20 |........9 . 1. | 0001f330 63 61 6c 63 75 6c 61 74 65 20 66 69 6c 65 20 6f |calculate file o| 0001f340 66 66 73 65 74 20 66 6f 72 20 69 6e 64 69 72 65 |ffset for indire| 0001f350 63 74 65 64 20 69 63 6f 6e 20 64 61 74 61 0d 10 |cted icon data..| 0001f360 ab 1e 20 20 e7 20 28 66 6c 61 67 73 25 20 80 20 |.. . (flags% . | 0001f370 26 31 30 30 29 3d 26 31 30 30 20 8c 0d 10 ac 19 |&100)=&100 .....| 0001f380 20 20 20 20 c8 8e 20 28 66 6c 61 67 73 25 20 80 | .. (flags% .| 0001f390 20 33 29 20 ca 0d 10 ad 0d 20 20 20 20 20 20 c9 | 3) ..... .| 0001f3a0 20 30 0d 10 ae 4c 20 20 20 20 20 20 20 20 64 61 | 0...L da| 0001f3b0 74 61 25 21 30 3d 64 61 74 61 6f 66 73 25 20 20 |ta%!0=dataofs% | 0001f3c0 20 3a 20 f4 20 64 65 66 61 75 6c 74 20 64 61 74 | : . default dat| 0001f3d0 61 20 66 6f 72 20 6e 6f 6e 2d 74 65 78 74 2c 6e |a for non-text,n| 0001f3e0 6f 6e 2d 73 70 72 69 74 65 20 69 63 6f 6e 0d 10 |on-sprite icon..| 0001f3f0 af 45 20 20 20 20 20 20 20 20 64 61 74 61 6f 66 |.E dataof| 0001f400 73 25 2b 3d 31 20 20 20 20 20 20 20 20 3a 20 f4 |s%+=1 : .| 0001f410 20 65 6d 70 74 79 20 73 74 72 69 6e 67 2c 20 31 | empty string, 1| 0001f420 20 63 68 61 72 20 69 73 20 74 65 72 6d 69 6e 61 | char is termina| 0001f430 74 6f 72 0d 10 b0 16 20 20 20 20 20 20 20 20 64 |tor.... d| 0001f440 61 74 61 25 21 34 3d 2d 31 0d 10 b1 0d 20 20 20 |ata%!4=-1.... | 0001f450 20 20 20 c9 20 32 0d 10 b2 1d 20 20 20 20 20 20 | . 2.... | 0001f460 20 20 73 6c 25 3d a9 28 24 28 64 61 74 61 25 21 | sl%=.($(data%!| 0001f470 30 29 29 0d 10 b3 1c 20 20 20 20 20 20 20 20 64 |0)).... d| 0001f480 61 74 61 25 21 30 3d 64 61 74 61 6f 66 73 25 0d |ata%!0=dataofs%.| 0001f490 10 b4 1b 20 20 20 20 20 20 20 20 64 61 74 61 6f |... datao| 0001f4a0 66 73 25 2b 3d 73 6c 25 2b 31 0d 10 b5 44 20 20 |fs%+=sl%+1...D | 0001f4b0 20 20 20 20 20 20 64 61 74 61 25 21 34 3d 31 20 | data%!4=1 | 0001f4c0 20 20 20 20 20 20 20 20 20 3a 20 f4 20 72 65 73 | : . res| 0001f4d0 65 74 20 73 70 72 69 74 65 20 70 6f 69 6e 74 65 |et sprite pointe| 0001f4e0 72 20 74 6f 20 57 69 6d 70 20 61 72 65 61 0d 10 |r to Wimp area..| 0001f4f0 b6 0f 20 20 20 20 20 20 c9 20 31 2c 33 0d 10 b7 |.. . 1,3...| 0001f500 1d 20 20 20 20 20 20 20 20 73 6c 25 3d a9 28 24 |. sl%=.($| 0001f510 28 64 61 74 61 25 21 30 29 29 0d 10 b8 1c 20 20 |(data%!0)).... | 0001f520 20 20 20 20 20 20 64 61 74 61 25 21 30 3d 64 61 | data%!0=da| 0001f530 74 61 6f 66 73 25 0d 10 b9 1b 20 20 20 20 20 20 |taofs%.... | 0001f540 20 20 64 61 74 61 6f 66 73 25 2b 3d 73 6c 25 2b | dataofs%+=sl%+| 0001f550 31 0d 10 ba 1b 20 20 20 20 20 20 20 20 e7 20 64 |1.... . d| 0001f560 61 74 61 25 21 34 3c 3e 2d 31 20 8c 0d 10 bb 1f |ata%!4<>-1 .....| 0001f570 20 20 20 20 20 20 20 20 20 20 73 6c 25 3d a9 28 | sl%=.(| 0001f580 24 28 64 61 74 61 25 21 34 29 29 0d 10 bc 1e 20 |$(data%!4)).... | 0001f590 20 20 20 20 20 20 20 20 20 64 61 74 61 25 21 34 | data%!4| 0001f5a0 3d 64 61 74 61 6f 66 73 25 0d 10 bd 1d 20 20 20 |=dataofs%.... | 0001f5b0 20 20 20 20 20 20 20 64 61 74 61 6f 66 73 25 2b | dataofs%+| 0001f5c0 3d 73 6c 25 2b 31 0d 10 be 0d 20 20 20 20 20 20 |=sl%+1.... | 0001f5d0 20 20 cd 0d 10 bf 09 20 20 20 20 cb 0d 10 c0 07 | ..... .....| 0001f5e0 20 20 cd 0d 10 c1 33 20 20 f4 20 32 2e 20 74 72 | ....3 . 2. tr| 0001f5f0 61 6e 73 6c 61 74 65 20 66 6f 6e 74 20 68 61 6e |anslate font han| 0001f600 64 6c 65 20 74 6f 20 69 6e 74 65 72 6e 61 6c 20 |dle to internal | 0001f610 68 61 6e 64 6c 65 0d 10 c2 19 20 20 e7 20 66 6c |handle.... . fl| 0001f620 61 67 73 25 20 80 20 28 31 3c 3c 36 29 20 8c 0d |ags% . (1<<6) ..| 0001f630 10 c3 1b 20 20 20 20 66 68 61 6e 64 6c 65 25 3d |... fhandle%=| 0001f640 66 6c 61 67 73 25 3e 3e 32 34 0d 10 c4 20 20 20 |flags%>>24... | 0001f650 20 20 69 6e 74 68 61 6e 64 6c 65 25 3d 46 72 61 | inthandle%=Fra| 0001f660 25 3f 66 68 61 6e 64 6c 65 25 0d 10 c5 18 20 20 |%?fhandle%.... | 0001f670 20 20 e7 20 69 6e 74 68 61 6e 64 6c 65 25 3d 30 | . inthandle%=0| 0001f680 20 8c 0d 10 c6 1a 20 20 20 20 20 20 53 61 76 65 | ..... Save| 0001f690 5f 4e 72 46 6f 6e 74 73 25 2b 3d 31 0d 10 c7 22 |_NrFonts%+=1..."| 0001f6a0 20 20 20 20 20 20 69 6e 74 68 61 6e 64 6c 65 25 | inthandle%| 0001f6b0 3d 53 61 76 65 5f 4e 72 46 6f 6e 74 73 25 0d 10 |=Save_NrFonts%..| 0001f6c0 c8 22 20 20 20 20 20 20 46 72 61 25 3f 66 68 61 |." Fra%?fha| 0001f6d0 6e 64 6c 65 25 3d 69 6e 74 68 61 6e 64 6c 65 25 |ndle%=inthandle%| 0001f6e0 0d 10 c9 09 20 20 20 20 cd 0d 10 ca 38 20 20 20 |.... ....8 | 0001f6f0 20 66 6c 61 67 70 74 72 25 21 30 3d 28 66 6c 61 | flagptr%!0=(fla| 0001f700 67 73 25 20 80 20 26 46 46 46 46 46 46 29 20 84 |gs% . &FFFFFF) .| 0001f710 20 28 69 6e 74 68 61 6e 64 6c 65 25 3c 3c 32 34 | (inthandle%<<24| 0001f720 29 0d 10 cb 07 20 20 cd 0d 10 cc 05 cd 0d 10 cd |).... .........| 0001f730 05 e1 0d 10 ce 04 0d 10 cf 2f f4 20 2d 2d 2d 20 |........./. --- | 0001f740 73 61 76 65 20 69 6e 64 69 72 65 63 74 65 64 20 |save indirected | 0001f750 69 63 6f 6e 20 64 61 74 61 20 74 6f 20 66 69 6c |icon data to fil| 0001f760 65 20 2d 2d 2d 0d 10 d0 30 dd 20 f2 73 61 76 65 |e ---...0. .save| 0001f770 5f 69 63 6f 6e 28 66 6c 61 67 73 25 2c 64 61 74 |_icon(flags%,dat| 0001f780 61 25 2c 68 61 6e 64 6c 65 25 2c f8 20 6f 66 66 |a%,handle%,. off| 0001f790 73 65 74 25 29 0d 10 d1 09 ea 20 73 6c 25 0d 10 |set%)..... sl%..| 0001f7a0 d2 38 53 63 72 61 70 42 6c 6b 25 21 30 3d 31 33 |.8ScrapBlk%!0=13| 0001f7b0 20 3a 20 f4 20 74 65 6d 70 6f 72 61 72 79 20 62 | : . temporary b| 0001f7c0 75 66 66 65 72 20 66 6f 72 20 65 6d 70 74 79 20 |uffer for empty | 0001f7d0 73 74 72 69 6e 67 0d 10 d3 1f e7 20 28 66 6c 61 |string..... (fla| 0001f7e0 67 73 25 20 80 20 26 38 30 30 31 30 30 29 3d 26 |gs% . &800100)=&| 0001f7f0 31 30 30 20 8c 0d 10 d4 14 20 20 e7 20 66 6c 61 |100 ..... . fla| 0001f800 67 73 25 20 80 20 33 20 8c 0d 10 d5 19 20 20 20 |gs% . 3 ..... | 0001f810 20 73 6c 25 3d a9 28 24 28 64 61 74 61 25 21 30 | sl%=.($(data%!0| 0001f820 29 29 0d 10 d6 42 20 20 20 20 c8 99 20 22 4f 53 |))...B .. "OS| 0001f830 5f 47 42 50 42 22 2c 31 2c 68 61 6e 64 6c 65 25 |_GBPB",1,handle%| 0001f840 2c 64 61 74 61 25 21 30 2c 73 6c 25 2b 31 2c 6f |,data%!0,sl%+1,o| 0001f850 66 66 73 65 74 25 20 b8 20 2c 2c 2c 2c 6f 66 66 |ffset% . ,,,,off| 0001f860 73 65 74 25 0d 10 d7 16 20 20 20 20 e7 20 66 6c |set%.... . fl| 0001f870 61 67 73 25 20 80 20 31 20 8c 0d 10 d8 19 20 20 |ags% . 1 ..... | 0001f880 20 20 20 20 e7 20 64 61 74 61 25 21 34 3c 3e 2d | . data%!4<>-| 0001f890 31 20 8c 0d 10 d9 1d 20 20 20 20 20 20 20 20 73 |1 ..... s| 0001f8a0 6c 25 3d a9 28 24 28 64 61 74 61 25 21 34 29 29 |l%=.($(data%!4))| 0001f8b0 0d 10 da 46 20 20 20 20 20 20 20 20 c8 99 20 22 |...F .. "| 0001f8c0 4f 53 5f 47 42 50 42 22 2c 31 2c 68 61 6e 64 6c |OS_GBPB",1,handl| 0001f8d0 65 25 2c 64 61 74 61 25 21 34 2c 73 6c 25 2b 31 |e%,data%!4,sl%+1| 0001f8e0 2c 6f 66 66 73 65 74 25 20 b8 20 2c 2c 2c 2c 6f |,offset% . ,,,,o| 0001f8f0 66 66 73 65 74 25 0d 10 db 0b 20 20 20 20 20 20 |ffset%.... | 0001f900 cd 0d 10 dc 09 20 20 20 20 cd 0d 10 dd 07 20 20 |..... ..... | 0001f910 cc 0d 10 de 37 20 20 20 20 f4 20 6e 6f 6e 2d 74 |....7 . non-t| 0001f920 65 78 74 2c 6e 6f 6e 2d 73 70 72 69 74 65 20 69 |ext,non-sprite i| 0001f930 63 6f 6e 20 2d 20 77 72 69 74 65 20 65 6d 70 74 |con - write empt| 0001f940 79 20 73 74 72 69 6e 67 0d 10 df 40 20 20 20 20 |y string...@ | 0001f950 c8 99 20 22 4f 53 5f 47 42 50 42 22 2c 31 2c 68 |.. "OS_GBPB",1,h| 0001f960 61 6e 64 6c 65 25 2c 53 63 72 61 70 42 6c 6b 25 |andle%,ScrapBlk%| 0001f970 2c 31 2c 6f 66 66 73 65 74 25 20 b8 20 2c 2c 2c |,1,offset% . ,,,| 0001f980 2c 6f 66 66 73 65 74 25 0d 10 e0 07 20 20 cd 0d |,offset%.... ..| 0001f990 10 e1 05 cd 0d 10 e2 05 e1 0d 10 e3 04 0d 10 e4 |................| 0001f9a0 23 dd 20 f2 73 61 76 65 5f 66 69 6e 69 73 68 28 |#. .save_finish(| 0001f9b0 68 61 6e 64 6c 65 25 2c 6f 66 66 73 65 74 25 29 |handle%,offset%)| 0001f9c0 0d 10 e5 0b ea 20 69 25 2c 6a 25 0d 10 e6 14 f4 |..... i%,j%.....| 0001f9d0 20 73 61 76 65 20 66 6f 6e 74 20 64 61 74 61 0d | save font data.| 0001f9e0 10 e7 17 e7 20 53 61 76 65 5f 4e 72 46 6f 6e 74 |.... Save_NrFont| 0001f9f0 73 25 3e 30 20 8c 0d 10 e8 1a 20 20 46 69 6c 65 |s%>0 ..... File| 0001fa00 49 6e 64 65 78 25 21 30 3d 6f 66 66 73 65 74 25 |Index%!0=offset%| 0001fa10 0d 10 e9 1c 20 20 e3 20 69 25 3d 31 20 b8 20 53 |.... . i%=1 . S| 0001fa20 61 76 65 5f 4e 72 46 6f 6e 74 73 25 0d 10 ea 2f |ave_NrFonts%.../| 0001fa30 20 20 20 20 f4 20 66 69 6e 64 20 66 6f 6e 74 20 | . find font | 0001fa40 74 68 61 74 20 67 6f 74 20 69 6e 74 65 72 6e 61 |that got interna| 0001fa50 6c 20 68 61 6e 64 6c 65 20 69 25 0d 10 eb 0c 20 |l handle i%.... | 0001fa60 20 20 20 6a 25 3d 30 0d 10 ec 16 20 20 20 20 c8 | j%=0.... .| 0001fa70 95 20 46 72 61 25 3f 6a 25 3c 3e 69 25 0d 10 ed |. Fra%?j%<>i%...| 0001fa80 0f 20 20 20 20 20 20 6a 25 2b 3d 31 0d 10 ee 09 |. j%+=1....| 0001fa90 20 20 20 20 ce 0d 10 ef 45 20 20 20 20 c8 99 20 | ....E .. | 0001faa0 22 46 6f 6e 74 5f 52 65 61 64 44 65 66 6e 22 2c |"Font_ReadDefn",| 0001fab0 6a 25 2c 46 6f 6e 74 44 61 74 61 25 2b 38 20 b8 |j%,FontData%+8 .| 0001fac0 20 2c 2c 46 6f 6e 74 44 61 74 61 25 21 30 2c 46 | ,,FontData%!0,F| 0001fad0 6f 6e 74 44 61 74 61 25 21 34 0d 10 f0 41 20 20 |ontData%!4...A | 0001fae0 20 20 c8 99 20 22 4f 53 5f 47 42 50 42 22 2c 31 | .. "OS_GBPB",1| 0001faf0 2c 68 61 6e 64 6c 65 25 2c 46 6f 6e 74 44 61 74 |,handle%,FontDat| 0001fb00 61 25 2c 34 38 2c 6f 66 66 73 65 74 25 20 b8 20 |a%,48,offset% . | 0001fb10 2c 2c 2c 2c 6f 66 66 73 65 74 25 0d 10 f1 0a 20 |,,,,offset%.... | 0001fb20 20 ed 20 69 25 0d 10 f2 05 cd 0d 10 f3 21 f4 20 | . i%........!. | 0001fb30 73 61 76 65 20 68 65 61 64 65 72 20 2b 20 69 6e |save header + in| 0001fb40 64 65 78 20 65 6e 74 72 69 65 73 0d 10 f4 38 c8 |dex entries...8.| 0001fb50 99 20 22 4f 53 5f 47 42 50 42 22 2c 31 2c 68 61 |. "OS_GBPB",1,ha| 0001fb60 6e 64 6c 65 25 2c 46 69 6c 65 49 6e 64 65 78 25 |ndle%,FileIndex%| 0001fb70 2c 53 61 76 65 5f 49 6e 64 65 78 4f 66 73 25 2b |,Save_IndexOfs%+| 0001fb80 34 2c 30 0d 10 f5 0e d9 20 23 68 61 6e 64 6c 65 |4,0..... #handle| 0001fb90 25 0d 10 f6 05 e1 0d 10 f7 04 0d 10 f8 3b f4 20 |%............;. | 0001fba0 2a 2a 2a 20 70 72 6f 63 73 20 66 6f 72 20 6c 6f |*** procs for lo| 0001fbb0 61 64 69 6e 67 20 61 6e 64 20 64 65 6c 65 74 69 |ading and deleti| 0001fbc0 6e 67 20 75 73 65 72 20 74 65 6d 70 6c 61 74 65 |ng user template| 0001fbd0 73 20 2a 2a 2a 0d 10 f9 04 0d 10 fa 28 dd 20 f2 |s ***.......(. .| 0001fbe0 74 65 6d 70 6c 5f 61 64 64 28 6e 61 6d 65 24 2c |templ_add(name$,| 0001fbf0 77 62 6c 6b 25 2c 73 65 74 65 78 74 65 6e 74 25 |wblk%,setextent%| 0001fc00 29 0d 10 fb 1c ea 20 6e 6f 25 2c 6e 61 6d 65 70 |)..... no%,namep| 0001fc10 74 72 25 2c 73 70 70 74 72 25 2c 69 25 0d 10 fc |tr%,spptr%,i%...| 0001fc20 22 e7 20 4e 72 54 65 6d 70 6c 61 74 65 73 25 3d |". NrTemplates%=| 0001fc30 4d 61 78 54 65 6d 70 6c 61 74 65 73 25 20 8c 0d |MaxTemplates% ..| 0001fc40 10 fd 25 20 20 f2 63 6f 6d 70 6c 61 69 6e 28 a4 |..% .complain(.| 0001fc50 6d 73 67 5f 6c 6f 6f 6b 75 70 30 28 22 4d 54 50 |msg_lookup0("MTP| 0001fc60 58 22 29 29 0d 10 fe 05 cc 0d 10 ff 16 20 20 6e |X"))......... n| 0001fc70 6f 25 3d 4e 72 54 65 6d 70 6c 61 74 65 73 25 0d |o%=NrTemplates%.| 0001fc80 11 00 27 20 20 50 61 6e 65 46 6c 61 67 25 3f 6e |..' PaneFlag%?n| 0001fc90 6f 25 3d 28 77 62 6c 6b 25 21 33 32 29 20 80 20 |o%=(wblk%!32) . | 0001fca0 28 31 3c 3c 35 29 0d 11 01 23 20 20 77 62 6c 6b |(1<<5)...# wblk| 0001fcb0 25 21 33 32 3d 28 77 62 6c 6b 25 21 33 32 29 20 |%!32=(wblk%!32) | 0001fcc0 80 20 ac 28 31 3c 3c 35 29 0d 11 02 39 20 20 c8 |. .(1<<5)...9 .| 0001fcd0 99 20 22 57 69 6d 70 5f 43 72 65 61 74 65 57 69 |. "Wimp_CreateWi| 0001fce0 6e 64 6f 77 22 2c 2c 77 62 6c 6b 25 2b 34 20 b8 |ndow",,wblk%+4 .| 0001fcf0 20 54 65 6d 70 6c 48 61 6e 64 6c 65 25 28 6e 6f | TemplHandle%(no| 0001fd00 25 29 0d 11 03 15 20 20 4e 72 54 65 6d 70 6c 61 |%).... NrTempla| 0001fd10 74 65 73 25 2b 3d 31 0d 11 04 19 20 20 53 63 72 |tes%+=1.... Scr| 0001fd20 61 70 42 6c 6b 25 21 30 3d 54 65 6d 70 6c 57 25 |apBlk%!0=TemplW%| 0001fd30 0d 11 05 36 20 20 53 63 72 61 70 42 6c 6b 25 21 |...6 ScrapBlk%!| 0001fd40 34 3d 38 2b 54 65 6d 70 6c 57 5f 49 63 6f 6e 58 |4=8+TemplW_IconX| 0001fd50 25 2a 28 6e 6f 25 20 83 20 54 65 6d 70 6c 57 5f |%*(no% . TemplW_| 0001fd60 43 6f 6c 73 25 29 0d 11 06 43 20 20 53 63 72 61 |Cols%)...C Scra| 0001fd70 70 42 6c 6b 25 21 31 32 3d 28 53 63 72 61 70 42 |pBlk%!12=(ScrapB| 0001fd80 6c 6b 25 21 34 29 2b 28 54 65 6d 70 6c 57 5f 49 |lk%!4)+(TemplW_I| 0001fd90 63 6f 6e 58 25 2d 38 29 2d 31 36 2a 28 31 31 2d |conX%-8)-16*(11-| 0001fda0 a9 28 6e 61 6d 65 24 29 29 0d 11 07 38 20 20 53 |.(name$))...8 S| 0001fdb0 63 72 61 70 42 6c 6b 25 21 31 36 3d 2d 38 2d 54 |crapBlk%!16=-8-T| 0001fdc0 65 6d 70 6c 57 5f 49 63 6f 6e 59 25 2a 28 6e 6f |emplW_IconY%*(no| 0001fdd0 25 20 81 20 54 65 6d 70 6c 57 5f 43 6f 6c 73 25 |% . TemplW_Cols%| 0001fde0 29 0d 11 08 32 20 20 53 63 72 61 70 42 6c 6b 25 |)...2 ScrapBlk%| 0001fdf0 21 38 3d 28 53 63 72 61 70 42 6c 6b 25 21 31 36 |!8=(ScrapBlk%!16| 0001fe00 29 2d 28 54 65 6d 70 6c 57 5f 49 63 6f 6e 59 25 |)-(TemplW_IconY%| 0001fe10 2d 38 29 0d 11 09 24 20 20 53 63 72 61 70 42 6c |-8)...$ ScrapBl| 0001fe20 6b 25 21 32 30 3d 54 65 6d 70 6c 57 5f 49 63 6f |k%!20=TemplW_Ico| 0001fe30 6e 46 6c 61 67 73 25 0d 11 0a 21 20 20 6e 61 6d |nFlags%...! nam| 0001fe40 65 70 74 72 25 3d 54 65 6d 70 6c 4e 61 6d 65 73 |eptr%=TemplNames| 0001fe50 25 2b 32 38 2a 6e 6f 25 0d 11 0b 17 20 20 24 28 |%+28*no%.... $(| 0001fe60 6e 61 6d 65 70 74 72 25 29 3d 6e 61 6d 65 24 0d |nameptr%)=name$.| 0001fe70 11 0c 1b 20 20 53 63 72 61 70 42 6c 6b 25 21 32 |... ScrapBlk%!2| 0001fe80 34 3d 6e 61 6d 65 70 74 72 25 0d 11 0d 22 20 20 |4=nameptr%..." | 0001fe90 73 70 70 74 72 25 3d 54 65 6d 70 6c 4e 61 6d 65 |spptr%=TemplName| 0001fea0 73 25 2b 32 38 2a 6e 6f 25 2b 31 34 0d 11 0e 27 |s%+28*no%+14...'| 0001feb0 20 20 24 28 73 70 70 74 72 25 29 3d a4 77 69 6e | $(spptr%)=.win| 0001fec0 64 6f 77 69 63 6f 6e 28 77 62 6c 6b 25 21 33 32 |dowicon(wblk%!32| 0001fed0 2c 30 29 0d 11 0f 19 20 20 53 63 72 61 70 42 6c |,0).... ScrapBl| 0001fee0 6b 25 21 32 38 3d 73 70 70 74 72 25 0d 11 10 15 |k%!28=spptr%....| 0001fef0 20 20 53 63 72 61 70 42 6c 6b 25 21 33 32 3d 31 | ScrapBlk%!32=1| 0001ff00 36 0d 11 11 25 20 20 c8 99 20 22 57 69 6d 70 5f |6...% .. "Wimp_| 0001ff10 43 72 65 61 74 65 49 63 6f 6e 22 2c 2c 53 63 72 |CreateIcon",,Scr| 0001ff20 61 70 42 6c 6b 25 0d 11 12 16 20 20 e7 20 ac 20 |apBlk%.... . . | 0001ff30 44 75 70 6c 4e 61 6d 65 73 25 20 8c 0d 11 13 0c |DuplNames% .....| 0001ff40 20 20 20 20 69 25 3d 30 0d 11 14 26 20 20 20 20 | i%=0...& | 0001ff50 c8 95 20 24 28 54 65 6d 70 6c 4e 61 6d 65 73 25 |.. $(TemplNames%| 0001ff60 2b 32 38 2a 69 25 29 3c 3e 6e 61 6d 65 24 0d 11 |+28*i%)<>name$..| 0001ff70 15 0f 20 20 20 20 20 20 69 25 2b 3d 31 0d 11 16 |.. i%+=1...| 0001ff80 09 20 20 20 20 ce 0d 11 17 24 20 20 20 20 e7 20 |. ....$ . | 0001ff90 69 25 3c 6e 6f 25 20 8c 20 f2 74 65 6d 70 6c 5f |i%<no% . .templ_| 0001ffa0 64 65 6c 65 74 65 28 69 25 29 0d 11 18 07 20 20 |delete(i%).... | 0001ffb0 cd 0d 11 19 1f 20 20 e7 20 73 65 74 65 78 74 65 |..... . setexte| 0001ffc0 6e 74 25 20 8c 20 f2 73 65 74 65 78 74 65 6e 74 |nt% . .setextent| 0001ffd0 0d 11 1a 30 20 20 f2 73 65 74 69 63 6f 6e 73 74 |...0 .seticonst| 0001ffe0 61 74 65 30 28 54 65 6d 70 6c 57 25 2c 4e 72 54 |ate0(TemplW%,NrT| 0001fff0 65 6d 70 6c 61 74 65 73 25 2d 31 2c 30 2c 30 29 |emplates%-1,0,0)| 00020000 0d 11 1b 05 cd 0d 11 1c 05 e1 0d 11 1d 04 0d 11 |................| 00020010 1e 16 dd 20 f2 74 65 6d 70 6c 5f 64 65 6c 65 74 |... .templ_delet| 00020020 65 61 6c 6c 0d 11 1f 08 ea 20 69 25 0d 11 20 15 |eall..... i%.. .| 00020030 c8 99 20 22 48 6f 75 72 67 6c 61 73 73 5f 4f 6e |.. "Hourglass_On| 00020040 22 0d 11 21 16 e7 20 4e 72 54 65 6d 70 6c 61 74 |"..!.. NrTemplat| 00020050 65 73 25 3e 30 20 8c 0d 11 22 22 20 20 e3 20 69 |es%>0 ..."" . i| 00020060 25 3d 4e 72 54 65 6d 70 6c 61 74 65 73 25 2d 31 |%=NrTemplates%-1| 00020070 20 b8 20 30 20 88 20 2d 31 0d 11 23 19 20 20 20 | . 0 . -1..#. | 00020080 20 f2 74 65 6d 70 6c 5f 64 65 6c 65 74 65 28 69 | .templ_delete(i| 00020090 25 29 0d 11 24 0a 20 20 ed 20 69 25 0d 11 25 05 |%)..$. . i%..%.| 000200a0 cd 0d 11 26 1e f2 73 65 74 6d 61 69 6e 66 6e 61 |...&..setmainfna| 000200b0 6d 65 28 22 54 65 6d 70 6c 61 74 65 73 22 29 0d |me("Templates").| 000200c0 11 27 12 f2 73 65 74 63 68 61 6e 67 65 64 28 a3 |.'..setchanged(.| 000200d0 29 0d 11 28 16 c8 99 20 22 48 6f 75 72 67 6c 61 |)..(... "Hourgla| 000200e0 73 73 5f 4f 66 66 22 0d 11 29 05 e1 0d 11 2a 04 |ss_Off"..)....*.| 000200f0 0d 11 2b 18 dd 20 f2 74 65 6d 70 6c 5f 64 65 6c |..+.. .templ_del| 00020100 65 74 65 28 6e 6f 25 29 0d 11 2c 1f ea 20 69 25 |ete(no%)..,.. i%| 00020110 2c 6a 25 2c 77 61 73 6f 70 65 6e 25 2c 6f 6c 64 |,j%,wasopen%,old| 00020120 68 61 6e 64 6c 65 25 0d 11 2d 20 6f 6c 64 68 61 |handle%..- oldha| 00020130 6e 64 6c 65 25 3d 54 65 6d 70 6c 48 61 6e 64 6c |ndle%=TemplHandl| 00020140 65 25 28 6e 6f 25 29 0d 11 2e 18 57 69 6e 42 6c |e%(no%)....WinBl| 00020150 6b 25 21 30 3d 6f 6c 64 68 61 6e 64 6c 65 25 0d |k%!0=oldhandle%.| 00020160 11 2f 24 c8 99 20 22 57 69 6d 70 5f 47 65 74 57 |./$.. "Wimp_GetW| 00020170 69 6e 64 6f 77 49 6e 66 6f 22 2c 2c 57 69 6e 42 |indowInfo",,WinB| 00020180 6c 6b 25 0d 11 30 27 f2 69 63 6f 6e 72 65 6c 65 |lk%..0'.iconrele| 00020190 61 73 65 28 57 69 6e 42 6c 6b 25 21 36 30 2c 57 |ase(WinBlk%!60,W| 000201a0 69 6e 42 6c 6b 25 2b 37 36 29 0d 11 31 14 e7 20 |inBlk%+76)..1.. | 000201b0 57 69 6e 42 6c 6b 25 21 38 38 3e 30 20 8c 0d 11 |WinBlk%!88>0 ...| 000201c0 32 1d 20 20 e3 20 69 25 3d 30 20 b8 20 28 57 69 |2. . i%=0 . (Wi| 000201d0 6e 42 6c 6b 25 21 38 38 2d 31 29 0d 11 33 3f 20 |nBlk%!88-1)..3? | 000201e0 20 20 20 f2 69 63 6f 6e 72 65 6c 65 61 73 65 28 | .iconrelease(| 000201f0 57 69 6e 42 6c 6b 25 21 28 39 32 2b 69 25 2a 33 |WinBlk%!(92+i%*3| 00020200 32 2b 31 36 29 2c 57 69 6e 42 6c 6b 25 2b 39 32 |2+16),WinBlk%+92| 00020210 2b 69 25 2a 33 32 2b 32 30 29 0d 11 34 0a 20 20 |+i%*32+20)..4. | 00020220 ed 20 69 25 0d 11 35 05 cd 0d 11 36 23 c8 99 20 |. i%..5....6#.. | 00020230 22 57 69 6d 70 5f 44 65 6c 65 74 65 57 69 6e 64 |"Wimp_DeleteWind| 00020240 6f 77 22 2c 2c 57 69 6e 42 6c 6b 25 0d 11 37 1b |ow",,WinBlk%..7.| 00020250 f4 20 75 70 64 61 74 65 20 62 72 6f 77 73 65 72 |. update browser| 00020260 20 77 69 6e 64 6f 77 0d 11 38 15 57 69 6e 42 6c | window..8.WinBl| 00020270 6b 25 21 30 3d 54 65 6d 70 6c 57 25 0d 11 39 24 |k%!0=TemplW%..9$| 00020280 c8 99 20 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 |.. "Wimp_GetWind| 00020290 6f 77 49 6e 66 6f 22 2c 2c 57 69 6e 42 6c 6b 25 |owInfo",,WinBlk%| 000202a0 0d 11 3a 23 77 61 73 6f 70 65 6e 25 3d 28 57 69 |..:#wasopen%=(Wi| 000202b0 6e 42 6c 6b 25 21 33 32 29 20 80 20 28 31 3c 3c |nBlk%!32) . (1<<| 000202c0 31 36 29 0d 11 3b 1c e7 20 6e 6f 25 3c 28 4e 72 |16)..;.. no%<(Nr| 000202d0 54 65 6d 70 6c 61 74 65 73 25 2d 31 29 20 8c 0d |Templates%-1) ..| 000202e0 11 3c 39 20 20 f4 20 6d 6f 76 65 20 64 61 74 61 |.<9 . move data| 000202f0 20 66 6f 72 20 69 63 6f 6e 73 20 61 66 74 65 72 | for icons after| 00020300 20 74 68 65 20 6f 6e 65 20 74 68 61 74 20 69 73 | the one that is| 00020310 20 64 65 6c 65 74 65 64 0d 11 3d 1f 20 20 e3 20 | deleted..=. . | 00020320 69 25 3d 6e 6f 25 20 b8 20 4e 72 54 65 6d 70 6c |i%=no% . NrTempl| 00020330 61 74 65 73 25 2d 32 0d 11 3e 1c 20 20 20 20 69 |ates%-2..>. i| 00020340 62 25 3d 57 69 6e 42 6c 6b 25 2b 39 32 2b 33 32 |b%=WinBlk%+92+32| 00020350 2a 69 25 0d 11 3f 17 20 20 20 20 e3 20 6a 25 3d |*i%..?. . j%=| 00020360 30 20 b8 20 31 36 20 88 20 34 0d 11 40 1c 20 20 |0 . 16 . 4..@. | 00020370 20 20 20 20 69 62 25 21 6a 25 3d 69 62 25 21 28 | ib%!j%=ib%!(| 00020380 6a 25 2b 33 32 29 0d 11 41 0c 20 20 20 20 ed 20 |j%+32)..A. . | 00020390 6a 25 0d 11 42 2b 20 20 20 20 54 65 6d 70 6c 48 |j%..B+ TemplH| 000203a0 61 6e 64 6c 65 25 28 69 25 29 3d 54 65 6d 70 6c |andle%(i%)=Templ| 000203b0 48 61 6e 64 6c 65 25 28 69 25 2b 31 29 0d 11 43 |Handle%(i%+1)..C| 000203c0 35 20 20 20 20 24 28 54 65 6d 70 6c 4e 61 6d 65 |5 $(TemplName| 000203d0 73 25 2b 32 38 2a 69 25 29 3d 24 28 54 65 6d 70 |s%+28*i%)=$(Temp| 000203e0 6c 4e 61 6d 65 73 25 2b 32 38 2a 28 69 25 2b 31 |lNames%+28*(i%+1| 000203f0 29 29 0d 11 44 3b 20 20 20 20 24 28 54 65 6d 70 |))..D; $(Temp| 00020400 6c 4e 61 6d 65 73 25 2b 32 38 2a 69 25 2b 31 34 |lNames%+28*i%+14| 00020410 29 3d 24 28 54 65 6d 70 6c 4e 61 6d 65 73 25 2b |)=$(TemplNames%+| 00020420 32 38 2a 28 69 25 2b 31 29 2b 31 34 29 0d 11 45 |28*(i%+1)+14)..E| 00020430 0a 20 20 ed 20 69 25 0d 11 46 05 cd 0d 11 47 1b |. . i%..F....G.| 00020440 57 69 6e 42 6c 6b 25 21 38 38 3d 57 69 6e 42 6c |WinBlk%!88=WinBl| 00020450 6b 25 21 38 38 2d 31 0d 11 48 23 c8 99 20 22 57 |k%!88-1..H#.. "W| 00020460 69 6d 70 5f 44 65 6c 65 74 65 57 69 6e 64 6f 77 |imp_DeleteWindow| 00020470 22 2c 2c 57 69 6e 42 6c 6b 25 0d 11 49 2f c8 99 |",,WinBlk%..I/..| 00020480 20 22 57 69 6d 70 5f 43 72 65 61 74 65 57 69 6e | "Wimp_CreateWin| 00020490 64 6f 77 22 2c 2c 57 69 6e 42 6c 6b 25 2b 34 20 |dow",,WinBlk%+4 | 000204a0 b8 20 54 65 6d 70 6c 57 25 0d 11 4a 13 4e 72 54 |. TemplW%..J.NrT| 000204b0 65 6d 70 6c 61 74 65 73 25 2d 3d 31 0d 11 4b 1f |emplates%-=1..K.| 000204c0 f2 73 65 74 63 68 61 6e 67 65 64 28 4e 72 54 65 |.setchanged(NrTe| 000204d0 6d 70 6c 61 74 65 73 25 3e 30 29 0d 11 4c 17 f2 |mplates%>0)..L..| 000204e0 72 65 64 65 66 69 6e 65 62 72 6f 77 73 65 72 28 |redefinebrowser(| 000204f0 30 29 0d 11 4d 10 e7 20 77 61 73 6f 70 65 6e 25 |0)..M.. wasopen%| 00020500 20 8c 0d 11 4e 17 20 20 57 69 6e 42 6c 6b 25 21 | ...N. WinBlk%!| 00020510 30 3d 54 65 6d 70 6c 57 25 0d 11 4f 26 20 20 c8 |0=TemplW%..O& .| 00020520 99 20 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f |. "Wimp_GetWindo| 00020530 77 49 6e 66 6f 22 2c 2c 57 69 6e 42 6c 6b 25 0d |wInfo",,WinBlk%.| 00020540 11 50 23 20 20 c8 99 20 22 57 69 6d 70 5f 4f 70 |.P# .. "Wimp_Op| 00020550 65 6e 57 69 6e 64 6f 77 22 2c 2c 57 69 6e 42 6c |enWindow",,WinBl| 00020560 6b 25 0d 11 51 05 cd 0d 11 52 31 e7 20 6f 6c 64 |k%..Q....R1. old| 00020570 68 61 6e 64 6c 65 25 3d 49 63 45 64 5f 57 69 6e |handle%=IcEd_Win| 00020580 25 20 8c 20 f2 63 6c 6f 73 65 77 69 6e 64 6f 77 |% . .closewindow| 00020590 28 49 63 45 64 57 25 29 0d 11 53 33 e7 20 6f 6c |(IcEdW%)..S3. ol| 000205a0 64 68 61 6e 64 6c 65 25 3d 57 69 6e 45 64 5f 57 |dhandle%=WinEd_W| 000205b0 69 6e 25 20 8c 20 f2 63 6c 6f 73 65 77 69 6e 64 |in% . .closewind| 000205c0 6f 77 28 57 69 6e 45 64 57 25 29 0d 11 54 31 e7 |ow(WinEdW%)..T1.| 000205d0 20 6f 6c 64 68 61 6e 64 6c 65 25 3d 4c 61 73 74 | oldhandle%=Last| 000205e0 4d 65 6e 75 5f 57 69 6e 25 20 8c 20 4c 61 73 74 |Menu_Win% . Last| 000205f0 4d 65 6e 75 5f 57 69 6e 25 3d 2d 31 0d 11 55 2b |Menu_Win%=-1..U+| 00020600 e7 20 4e 72 54 65 6d 70 6c 61 74 65 73 25 3d 30 |. NrTemplates%=0| 00020610 20 8c 20 f2 63 6c 6f 73 65 77 69 6e 64 6f 77 28 | . .closewindow(| 00020620 53 74 61 74 57 25 29 0d 11 56 05 e1 0d 11 57 04 |StatW%)..V....W.| 00020630 0d 11 58 43 f4 20 2d 2d 2d 20 61 64 61 70 74 20 |..XC. --- adapt | 00020640 65 78 74 65 6e 74 20 6f 66 20 62 72 6f 77 73 65 |extent of browse| 00020650 72 20 77 69 6e 64 6f 77 20 74 6f 20 6e 75 6d 62 |r window to numb| 00020660 65 72 20 6f 66 20 74 65 6d 70 6c 61 74 65 73 20 |er of templates | 00020670 2d 2d 2d 0d 11 59 10 dd 20 f2 73 65 74 65 78 74 |---..Y.. .setext| 00020680 65 6e 74 0d 11 5a 1f ea 20 6e 72 72 6f 77 73 25 |ent..Z.. nrrows%| 00020690 2c 78 73 69 7a 65 25 2c 74 69 74 6c 65 73 69 7a |,xsize%,titlesiz| 000206a0 65 25 0d 11 5b 2f 6e 72 72 6f 77 73 25 3d 31 2b |e%..[/nrrows%=1+| 000206b0 28 28 4e 72 54 65 6d 70 6c 61 74 65 73 25 2d 31 |((NrTemplates%-1| 000206c0 29 20 81 20 54 65 6d 70 6c 57 5f 43 6f 6c 73 25 |) . TemplW_Cols%| 000206d0 29 0d 11 5c 1b e7 20 6e 72 72 6f 77 73 25 3c 32 |)..\.. nrrows%<2| 000206e0 20 8c 20 6e 72 72 6f 77 73 25 3d 32 0d 11 5d 16 | . nrrows%=2..].| 000206f0 e7 20 4e 72 54 65 6d 70 6c 61 74 65 73 25 3d 30 |. NrTemplates%=0| 00020700 20 8c 0d 11 5e 1c 20 20 78 73 69 7a 65 25 3d 38 | ...^. xsize%=8| 00020710 2b 54 65 6d 70 6c 57 5f 49 63 6f 6e 58 25 0d 11 |+TemplW_IconX%..| 00020720 5f 05 cc 0d 11 60 27 20 20 e7 20 4e 72 54 65 6d |_....`' . NrTem| 00020730 70 6c 61 74 65 73 25 20 3c 20 54 65 6d 70 6c 57 |plates% < TemplW| 00020740 5f 4d 61 78 43 6f 6c 25 20 8c 0d 11 61 2b 20 20 |_MaxCol% ...a+ | 00020750 20 20 78 73 69 7a 65 25 3d 38 2b 4e 72 54 65 6d | xsize%=8+NrTem| 00020760 70 6c 61 74 65 73 25 2a 54 65 6d 70 6c 57 5f 49 |plates%*TemplW_I| 00020770 63 6f 6e 58 25 0d 11 62 07 20 20 cc 0d 11 63 2d |conX%..b. ...c-| 00020780 20 20 20 20 78 73 69 7a 65 25 3d 38 2b 54 65 6d | xsize%=8+Tem| 00020790 70 6c 57 5f 4d 61 78 43 6f 6c 25 2a 54 65 6d 70 |plW_MaxCol%*Temp| 000207a0 6c 57 5f 49 63 6f 6e 58 25 0d 11 64 07 20 20 cd |lW_IconX%..d. .| 000207b0 0d 11 65 05 cd 0d 11 66 26 74 69 74 6c 65 73 69 |..e....f&titlesi| 000207c0 7a 65 25 3d 31 32 38 2b 31 36 2a a9 28 24 28 54 |ze%=128+16*.($(T| 000207d0 65 6d 70 6c 54 62 61 72 25 29 29 0d 11 67 2b e7 |emplTbar%))..g+.| 000207e0 20 78 73 69 7a 65 25 3c 74 69 74 6c 65 73 69 7a | xsize%<titlesiz| 000207f0 65 25 20 8c 20 78 73 69 7a 65 25 3d 74 69 74 6c |e% . xsize%=titl| 00020800 65 73 69 7a 65 25 0d 11 68 11 53 63 72 61 70 42 |esize%..h.ScrapB| 00020810 6c 6b 25 21 30 3d 30 0d 11 69 28 53 63 72 61 70 |lk%!0=0..i(Scrap| 00020820 42 6c 6b 25 21 34 3d 2d 38 2d 54 65 6d 70 6c 57 |Blk%!4=-8-TemplW| 00020830 5f 49 63 6f 6e 59 25 2a 6e 72 72 6f 77 73 25 0d |_IconY%*nrrows%.| 00020840 11 6a 16 53 63 72 61 70 42 6c 6b 25 21 38 3d 78 |.j.ScrapBlk%!8=x| 00020850 73 69 7a 65 25 0d 11 6b 12 53 63 72 61 70 42 6c |size%..k.ScrapBl| 00020860 6b 25 21 31 32 3d 30 0d 11 6c 29 c8 99 20 22 57 |k%!12=0..l).. "W| 00020870 69 6d 70 5f 53 65 74 45 78 74 65 6e 74 22 2c 54 |imp_SetExtent",T| 00020880 65 6d 70 6c 57 25 2c 53 63 72 61 70 42 6c 6b 25 |emplW%,ScrapBlk%| 00020890 0d 11 6d 05 e1 0d 11 6e 04 0d 11 6f 46 f4 20 2d |..m....n...oF. -| 000208a0 2d 2d 20 6d 6f 76 65 20 69 63 6f 6e 73 20 69 6e |-- move icons in| 000208b0 20 62 72 6f 77 73 65 72 20 77 69 6e 64 6f 77 20 | browser window | 000208c0 74 6f 20 61 64 61 70 74 20 74 6f 20 6e 65 77 20 |to adapt to new | 000208d0 77 69 6e 64 6f 77 20 73 69 7a 65 20 2d 2d 2d 0d |window size ---.| 000208e0 11 70 1f dd 20 f2 72 65 64 65 66 69 6e 65 62 72 |.p.. .redefinebr| 000208f0 6f 77 73 65 72 28 72 65 6f 70 65 6e 25 29 0d 11 |owser(reopen%)..| 00020900 71 23 ea 20 77 61 73 6f 70 65 6e 25 2c 69 25 2c |q#. wasopen%,i%,| 00020910 69 62 25 2c 78 73 69 7a 65 25 2c 79 73 69 7a 65 |ib%,xsize%,ysize| 00020920 25 0d 11 72 15 57 69 6e 42 6c 6b 25 21 30 3d 54 |%..r.WinBlk%!0=T| 00020930 65 6d 70 6c 57 25 0d 11 73 24 c8 99 20 22 57 69 |emplW%..s$.. "Wi| 00020940 6d 70 5f 47 65 74 57 69 6e 64 6f 77 49 6e 66 6f |mp_GetWindowInfo| 00020950 22 2c 2c 57 69 6e 42 6c 6b 25 0d 11 74 23 77 61 |",,WinBlk%..t#wa| 00020960 73 6f 70 65 6e 25 3d 28 57 69 6e 42 6c 6b 25 21 |sopen%=(WinBlk%!| 00020970 33 32 29 20 80 20 28 31 3c 3c 31 36 29 0d 11 75 |32) . (1<<16)..u| 00020980 14 e7 20 57 69 6e 42 6c 6b 25 21 38 38 3e 30 20 |.. WinBlk%!88>0 | 00020990 8c 0d 11 76 1d 20 20 e3 20 69 25 3d 30 20 b8 20 |...v. . i%=0 . | 000209a0 28 57 69 6e 42 6c 6b 25 21 38 38 2d 31 29 0d 11 |(WinBlk%!88-1)..| 000209b0 77 1c 20 20 20 20 69 62 25 3d 57 69 6e 42 6c 6b |w. ib%=WinBlk| 000209c0 25 2b 39 32 2b 33 32 2a 69 25 0d 11 78 40 20 20 |%+92+32*i%..x@ | 000209d0 20 20 78 73 69 7a 65 25 3d 28 54 65 6d 70 6c 57 | xsize%=(TemplW| 000209e0 5f 49 63 6f 6e 58 25 2d 38 29 2d 31 36 2a 28 31 |_IconX%-8)-16*(1| 000209f0 31 2d a9 28 24 28 54 65 6d 70 6c 4e 61 6d 65 73 |1-.($(TemplNames| 00020a00 25 2b 69 25 2a 32 38 29 29 29 0d 11 79 1b 20 20 |%+i%*28)))..y. | 00020a10 20 20 79 73 69 7a 65 25 3d 69 62 25 21 31 32 2d | ysize%=ib%!12-| 00020a20 69 62 25 21 34 0d 11 7a 31 20 20 20 20 69 62 25 |ib%!4..z1 ib%| 00020a30 21 30 3d 38 2b 54 65 6d 70 6c 57 5f 49 63 6f 6e |!0=8+TemplW_Icon| 00020a40 58 25 2a 28 69 25 20 83 20 54 65 6d 70 6c 57 5f |X%*(i% . TemplW_| 00020a50 43 6f 6c 73 25 29 0d 11 7b 1c 20 20 20 20 69 62 |Cols%)..{. ib| 00020a60 25 21 38 3d 28 69 62 25 21 30 29 2b 78 73 69 7a |%!8=(ib%!0)+xsiz| 00020a70 65 25 0d 11 7c 33 20 20 20 20 69 62 25 21 31 32 |e%..|3 ib%!12| 00020a80 3d 2d 38 2d 54 65 6d 70 6c 57 5f 49 63 6f 6e 59 |=-8-TemplW_IconY| 00020a90 25 2a 28 69 25 20 81 20 54 65 6d 70 6c 57 5f 43 |%*(i% . TemplW_C| 00020aa0 6f 6c 73 25 29 0d 11 7d 1d 20 20 20 20 69 62 25 |ols%)..}. ib%| 00020ab0 21 34 3d 28 69 62 25 21 31 32 29 2d 79 73 69 7a |!4=(ib%!12)-ysiz| 00020ac0 65 25 0d 11 7e 0a 20 20 ed 20 69 25 0d 11 7f 05 |e%..~. . i%....| 00020ad0 cd 0d 11 80 23 c8 99 20 22 57 69 6d 70 5f 44 65 |....#.. "Wimp_De| 00020ae0 6c 65 74 65 57 69 6e 64 6f 77 22 2c 2c 57 69 6e |leteWindow",,Win| 00020af0 42 6c 6b 25 0d 11 81 2f c8 99 20 22 57 69 6d 70 |Blk%.../.. "Wimp| 00020b00 5f 43 72 65 61 74 65 57 69 6e 64 6f 77 22 2c 2c |_CreateWindow",,| 00020b10 57 69 6e 42 6c 6b 25 2b 34 20 b8 20 54 65 6d 70 |WinBlk%+4 . Temp| 00020b20 6c 57 25 0d 11 82 0e f2 73 65 74 65 78 74 65 6e |lW%.....setexten| 00020b30 74 0d 11 83 1a e7 20 72 65 6f 70 65 6e 25 20 80 |t..... reopen% .| 00020b40 20 77 61 73 6f 70 65 6e 25 20 8c 0d 11 84 17 20 | wasopen% ..... | 00020b50 20 57 69 6e 42 6c 6b 25 21 30 3d 54 65 6d 70 6c | WinBlk%!0=Templ| 00020b60 57 25 0d 11 85 26 20 20 c8 99 20 22 57 69 6d 70 |W%...& .. "Wimp| 00020b70 5f 47 65 74 57 69 6e 64 6f 77 49 6e 66 6f 22 2c |_GetWindowInfo",| 00020b80 2c 57 69 6e 42 6c 6b 25 0d 11 86 3e 20 20 f4 20 |,WinBlk%...> . | 00020b90 61 64 61 70 74 20 73 63 72 6f 6c 6c 20 6f 66 66 |adapt scroll off| 00020ba0 73 65 74 73 20 69 66 20 76 69 73 69 62 6c 65 20 |sets if visible | 00020bb0 61 72 65 61 20 65 78 63 65 65 64 73 20 77 6f 72 |area exceeds wor| 00020bc0 6b 20 61 72 65 61 0d 11 87 38 20 20 e7 20 28 57 |k area...8 . (W| 00020bd0 69 6e 42 6c 6b 25 21 32 30 2b 28 57 69 6e 42 6c |inBlk%!20+(WinBl| 00020be0 6b 25 21 31 32 2d 57 69 6e 42 6c 6b 25 21 34 29 |k%!12-WinBlk%!4)| 00020bf0 29 3e 57 69 6e 42 6c 6b 25 21 35 32 20 8c 0d 11 |)>WinBlk%!52 ...| 00020c00 88 34 20 20 20 20 57 69 6e 42 6c 6b 25 21 32 30 |.4 WinBlk%!20| 00020c10 3d 57 69 6e 42 6c 6b 25 21 35 32 2d 28 57 69 6e |=WinBlk%!52-(Win| 00020c20 42 6c 6b 25 21 31 32 2d 57 69 6e 42 6c 6b 25 21 |Blk%!12-WinBlk%!| 00020c30 34 29 0d 11 89 18 20 20 20 20 e7 20 57 69 6e 42 |4).... . WinB| 00020c40 6c 6b 25 21 32 30 3c 30 20 8c 0d 11 8a 2a 20 20 |lk%!20<0 ....* | 00020c50 20 20 20 20 57 69 6e 42 6c 6b 25 21 31 32 3d 57 | WinBlk%!12=W| 00020c60 69 6e 42 6c 6b 25 21 31 32 2b 57 69 6e 42 6c 6b |inBlk%!12+WinBlk| 00020c70 25 21 32 30 0d 11 8b 16 20 20 20 20 20 20 57 69 |%!20.... Wi| 00020c80 6e 42 6c 6b 25 21 32 30 3d 30 0d 11 8c 09 20 20 |nBlk%!20=0.... | 00020c90 20 20 cd 0d 11 8d 07 20 20 cd 0d 11 8e 38 20 20 | ..... ....8 | 00020ca0 e7 20 28 57 69 6e 42 6c 6b 25 21 32 34 2d 28 57 |. (WinBlk%!24-(W| 00020cb0 69 6e 42 6c 6b 25 21 31 36 2d 57 69 6e 42 6c 6b |inBlk%!16-WinBlk| 00020cc0 25 21 38 29 29 3c 57 69 6e 42 6c 6b 25 21 34 38 |%!8))<WinBlk%!48| 00020cd0 20 8c 0d 11 8f 34 20 20 20 20 57 69 6e 42 6c 6b | ....4 WinBlk| 00020ce0 25 21 32 34 3d 57 69 6e 42 6c 6b 25 21 34 38 2b |%!24=WinBlk%!48+| 00020cf0 28 57 69 6e 42 6c 6b 25 21 31 36 2d 57 69 6e 42 |(WinBlk%!16-WinB| 00020d00 6c 6b 25 21 38 29 0d 11 90 18 20 20 20 20 e7 20 |lk%!8).... . | 00020d10 57 69 6e 42 6c 6b 25 21 32 34 3e 30 20 8c 0d 11 |WinBlk%!24>0 ...| 00020d20 91 28 20 20 20 20 20 20 57 69 6e 42 6c 6b 25 21 |.( WinBlk%!| 00020d30 38 3d 57 69 6e 42 6c 6b 25 21 38 2b 57 69 6e 42 |8=WinBlk%!8+WinB| 00020d40 6c 6b 25 21 32 34 0d 11 92 16 20 20 20 20 20 20 |lk%!24.... | 00020d50 57 69 6e 42 6c 6b 25 21 32 30 3d 30 0d 11 93 09 |WinBlk%!20=0....| 00020d60 20 20 20 20 cd 0d 11 94 07 20 20 cd 0d 11 95 23 | ..... ....#| 00020d70 20 20 c8 99 20 22 57 69 6d 70 5f 4f 70 65 6e 57 | .. "Wimp_OpenW| 00020d80 69 6e 64 6f 77 22 2c 2c 57 69 6e 42 6c 6b 25 0d |indow",,WinBlk%.| 00020d90 11 96 05 cd 0d 11 97 05 e1 0d 11 98 04 0d 11 99 |................| 00020da0 2a dd 20 f2 74 65 6d 70 6c 5f 6c 6f 61 64 66 69 |*. .templ_loadfi| 00020db0 6c 65 28 66 6e 61 6d 65 24 2c 6c 6f 61 64 73 70 |le(fname$,loadsp| 00020dc0 72 69 74 65 73 25 29 0d 11 9a 2f ea 20 69 25 2c |rites%).../. i%,| 00020dd0 6e 72 25 2c 6e 61 6d 65 24 2c 68 61 6e 64 6c 65 |nr%,name$,handle| 00020de0 25 2c 69 70 25 2c 69 6e 64 69 72 62 75 66 25 2c |%,ip%,indirbuf%,| 00020df0 73 6e 61 6d 65 24 0d 11 9b 15 c8 99 20 22 48 6f |sname$...... "Ho| 00020e00 75 72 67 6c 61 73 73 5f 4f 6e 22 0d 11 9c 10 e3 |urglass_On".....| 00020e10 20 69 25 3d 30 20 b8 20 32 35 35 0d 11 9d 1a 20 | i%=0 . 255.... | 00020e20 20 e7 20 46 6f 6e 74 55 73 61 67 65 25 28 69 25 | . FontUsage%(i%| 00020e30 29 3e 30 20 8c 0d 11 9e 4b 20 20 20 20 f4 20 66 |)>0 ....K . f| 00020e40 6f 6e 74 20 69 6e 20 75 73 65 20 2d 20 6d 61 6b |ont in use - mak| 00020e50 65 20 66 6f 72 20 65 78 74 72 61 20 63 61 6c 6c |e for extra call| 00020e60 20 74 6f 20 46 6f 6e 74 5f 4c 6f 73 65 46 6f 6e | to Font_LoseFon| 00020e70 74 20 61 74 20 65 6e 64 20 6f 66 20 70 72 6f 63 |t at end of proc| 00020e80 0d 11 9f 11 20 20 20 20 46 72 61 25 3f 69 25 3d |.... Fra%?i%=| 00020e90 31 0d 11 a0 07 20 20 cc 0d 11 a1 11 20 20 20 20 |1.... ..... | 00020ea0 46 72 61 25 3f 69 25 3d 30 0d 11 a2 07 20 20 cd |Fra%?i%=0.... .| 00020eb0 0d 11 a3 08 ed 20 69 25 0d 11 a4 16 e7 20 4e 72 |..... i%..... Nr| 00020ec0 54 65 6d 70 6c 61 74 65 73 25 3d 30 20 8c 0d 11 |Templates%=0 ...| 00020ed0 a5 1f 20 20 e7 20 66 6e 61 6d 65 24 3d 22 3c 57 |.. . fname$="<W| 00020ee0 69 6d 70 24 53 63 72 61 70 3e 22 20 8c 0d 11 a6 |imp$Scrap>" ....| 00020ef0 23 20 20 20 20 f2 73 65 74 6d 61 69 6e 66 6e 61 |# .setmainfna| 00020f00 6d 65 28 4e 65 77 4c 65 61 66 4e 61 6d 65 24 29 |me(NewLeafName$)| 00020f10 0d 11 a7 07 20 20 cc 0d 11 a8 1d 20 20 20 20 f2 |.... ..... .| 00020f20 73 65 74 6d 61 69 6e 66 6e 61 6d 65 28 66 6e 61 |setmainfname(fna| 00020f30 6d 65 24 29 0d 11 a9 07 20 20 cd 0d 11 aa 05 cd |me$).... ......| 00020f40 0d 11 ab 36 e7 20 6c 6f 61 64 73 70 72 69 74 65 |...6. loadsprite| 00020f50 73 25 20 80 20 28 a4 6c 65 61 66 6e 61 6d 65 28 |s% . (.leafname(| 00020f60 66 6e 61 6d 65 24 29 3d 22 54 65 6d 70 6c 61 74 |fname$)="Templat| 00020f70 65 73 22 29 20 8c 0d 11 ac 28 20 20 73 6e 61 6d |es") ....( snam| 00020f80 65 24 3d a4 64 69 72 6e 61 6d 65 28 66 6e 61 6d |e$=.dirname(fnam| 00020f90 65 24 29 2b 22 2e 53 70 72 69 74 65 73 22 0d 11 |e$)+".Sprites"..| 00020fa0 ad 1d 20 20 e7 20 a4 66 69 6c 65 65 78 69 73 74 |.. . .fileexist| 00020fb0 73 28 73 6e 61 6d 65 24 29 20 8c 0d 11 ae 20 20 |s(sname$) .... | 00020fc0 20 20 20 f2 6c 6f 61 64 75 73 65 72 73 70 72 69 | .loaduserspri| 00020fd0 74 65 73 28 73 6e 61 6d 65 24 29 0d 11 af 07 20 |tes(sname$).... | 00020fe0 20 cd 0d 11 b0 05 cd 0d 11 b1 26 69 6e 64 69 72 | .........&indir| 00020ff0 62 75 66 25 3d a4 68 65 61 70 5f 67 65 74 28 4d |buf%=.heap_get(M| 00021000 61 78 49 6e 64 69 72 53 69 7a 65 25 29 0d 11 b2 |axIndirSize%)...| 00021010 13 e7 20 69 6e 64 69 72 62 75 66 25 3e 30 20 8c |.. indirbuf%>0 .| 00021020 0d 11 b3 16 20 20 68 61 6e 64 6c 65 25 3d 8e 20 |.... handle%=. | 00021030 66 6e 61 6d 65 24 0d 11 b4 13 20 20 e7 20 68 61 |fname$.... . ha| 00021040 6e 64 6c 65 25 3e 30 20 8c 0d 11 b5 46 20 20 20 |ndle%>0 ....F | 00021050 20 f4 20 72 65 61 64 20 69 6e 64 65 78 20 6f 66 | . read index of| 00021060 20 74 65 6d 70 6c 61 74 65 20 66 69 6c 65 20 74 | template file t| 00021070 6f 20 63 68 65 63 6b 20 66 6f 72 20 6f 76 65 72 |o check for over| 00021080 73 69 7a 65 64 20 74 65 6d 70 6c 61 74 65 73 0d |sized templates.| 00021090 11 b6 3a 20 20 20 20 c8 99 20 22 4f 53 5f 47 42 |..: .. "OS_GB| 000210a0 50 42 22 2c 33 2c 68 61 6e 64 6c 65 25 2c 46 69 |PB",3,handle%,Fi| 000210b0 6c 65 49 6e 64 65 78 25 2c 46 69 6c 65 49 6e 64 |leIndex%,FileInd| 000210c0 65 78 53 69 7a 65 25 2c 30 0d 11 b7 12 20 20 20 |exSize%,0.... | 000210d0 20 d9 20 23 68 61 6e 64 6c 65 25 0d 11 b8 26 20 | . #handle%...& | 000210e0 20 20 20 c8 99 20 22 57 69 6d 70 5f 4f 70 65 6e | .. "Wimp_Open| 000210f0 54 65 6d 70 6c 61 74 65 22 2c 2c 66 6e 61 6d 65 |Template",,fname| 00021100 24 0d 11 b9 19 20 20 20 20 69 70 25 3d 46 69 6c |$.... ip%=Fil| 00021110 65 49 6e 64 65 78 25 2b 32 34 0d 11 ba 0d 20 20 |eIndex%+24.... | 00021120 20 20 6e 72 25 3d 30 0d 11 bb 09 20 20 20 20 f5 | nr%=0.... .| 00021130 0d 11 bc 24 20 20 20 20 20 20 e7 20 69 70 25 21 |...$ . ip%!| 00021140 30 3e 4d 61 78 54 65 6d 70 6c 61 74 65 53 69 7a |0>MaxTemplateSiz| 00021150 65 25 20 8c 0d 11 bd 35 20 20 20 20 20 20 20 20 |e% ....5 | 00021160 f2 63 6f 6d 70 6c 61 69 6e 28 a4 6d 73 67 5f 6c |.complain(.msg_l| 00021170 6f 6f 6b 75 70 31 28 22 54 54 4c 42 22 2c 24 28 |ookup1("TTLB",$(| 00021180 69 70 25 2b 31 32 29 29 29 0d 11 be 0b 20 20 20 |ip%+12))).... | 00021190 20 20 20 cc 0d 11 bf 3a 20 20 20 20 20 20 20 20 | ....: | 000211a0 f2 74 65 6d 70 6c 5f 6c 6f 61 64 28 6e 72 25 2c |.templ_load(nr%,| 000211b0 6e 61 6d 65 24 2c 69 6e 64 69 72 62 75 66 25 2c |name$,indirbuf%,| 000211c0 4d 61 78 49 6e 64 69 72 53 69 7a 65 25 29 0d 11 |MaxIndirSize%)..| 000211d0 c0 15 20 20 20 20 20 20 20 20 e7 20 6e 72 25 3e |.. . nr%>| 000211e0 30 20 8c 0d 11 c1 29 20 20 20 20 20 20 20 20 20 |0 ....) | 000211f0 20 f2 74 65 6d 70 6c 5f 61 64 64 28 6e 61 6d 65 | .templ_add(name| 00021200 24 2c 57 69 6e 42 6c 6b 25 2c 30 29 0d 11 c2 0d |$,WinBlk%,0)....| 00021210 20 20 20 20 20 20 20 20 cd 0d 11 c3 0b 20 20 20 | ..... | 00021220 20 20 20 cd 0d 11 c4 11 20 20 20 20 20 20 69 70 | ..... ip| 00021230 25 2b 3d 32 34 0d 11 c5 31 20 20 20 20 fd 20 28 |%+=24...1 . (| 00021240 6e 72 25 3c 3d 30 29 20 84 20 28 4e 72 54 65 6d |nr%<=0) . (NrTem| 00021250 70 6c 61 74 65 73 25 3d 4d 61 78 54 65 6d 70 6c |plates%=MaxTempl| 00021260 61 74 65 73 25 29 0d 11 c6 1f 20 20 20 20 c8 99 |ates%).... ..| 00021270 20 22 57 69 6d 70 5f 43 6c 6f 73 65 54 65 6d 70 | "Wimp_CloseTemp| 00021280 6c 61 74 65 22 0d 11 c7 21 20 20 20 20 e7 20 66 |late"...! . f| 00021290 6e 61 6d 65 24 3d 22 3c 57 69 6d 70 24 53 63 72 |name$="<Wimp$Scr| 000212a0 61 70 3e 22 20 8c 0d 11 c8 48 20 20 20 20 20 20 |ap>" ....H | 000212b0 c8 99 20 22 4f 53 5f 46 69 6c 65 22 2c 36 2c 66 |.. "OS_File",6,f| 000212c0 6e 61 6d 65 24 20 3a 20 f4 20 64 65 6c 65 74 65 |name$ : . delete| 000212d0 20 57 69 6d 70 24 53 63 72 61 70 20 66 69 6c 65 | Wimp$Scrap file| 000212e0 20 61 66 74 65 72 20 72 65 61 64 69 6e 67 0d 11 | after reading..| 000212f0 c9 09 20 20 20 20 cd 0d 11 ca 20 20 20 20 20 f2 |.. .... .| 00021300 68 65 61 70 5f 72 65 6c 65 61 73 65 28 69 6e 64 |heap_release(ind| 00021310 69 72 62 75 66 25 29 0d 11 cb 12 20 20 20 20 f2 |irbuf%).... .| 00021320 73 65 74 65 78 74 65 6e 74 0d 11 cc 07 20 20 cd |setextent.... .| 00021330 0d 11 cd 05 cd 0d 11 ce 10 e3 20 69 25 3d 30 20 |.......... i%=0 | 00021340 b8 20 32 35 35 0d 11 cf 43 20 20 f4 20 6e 65 75 |. 255...C . neu| 00021350 74 72 61 6c 69 73 65 20 63 61 6c 6c 73 20 6f 66 |tralise calls of| 00021360 20 46 6f 6e 74 5f 46 69 6e 64 46 6f 6e 74 20 64 | Font_FindFont d| 00021370 6f 6e 65 20 62 79 20 57 69 6d 70 5f 4c 6f 61 64 |one by Wimp_Load| 00021380 54 65 6d 70 6c 61 74 65 0d 11 d0 12 20 20 c8 95 |Template.... ..| 00021390 20 46 72 61 25 3f 69 25 3e 31 0d 11 d1 1d 20 20 | Fra%?i%>1.... | 000213a0 20 20 c8 99 20 22 46 6f 6e 74 5f 4c 6f 73 65 46 | .. "Font_LoseF| 000213b0 6f 6e 74 22 2c 69 25 0d 11 d2 12 20 20 20 20 46 |ont",i%.... F| 000213c0 72 61 25 3f 69 25 2d 3d 31 0d 11 d3 07 20 20 ce |ra%?i%-=1.... .| 000213d0 0d 11 d4 08 ed 20 69 25 0d 11 d5 16 c8 99 20 22 |..... i%...... "| 000213e0 48 6f 75 72 67 6c 61 73 73 5f 4f 66 66 22 0d 11 |Hourglass_Off"..| 000213f0 d6 1a f2 6f 70 65 6e 77 69 6e 64 6f 77 28 54 65 |...openwindow(Te| 00021400 6d 70 6c 57 25 2c 33 29 0d 11 d7 2e e7 20 49 63 |mplW%,3)..... Ic| 00021410 49 6e 66 6f 5f 41 63 74 69 76 65 25 20 8c 20 f2 |Info_Active% . .| 00021420 6f 70 65 6e 77 69 6e 64 6f 77 28 49 63 49 6e 66 |openwindow(IcInf| 00021430 6f 57 25 2c 34 29 0d 11 d8 05 e1 0d 11 d9 04 0d |oW%,4)..........| 00021440 11 da 27 dd 20 f2 74 65 6d 70 6c 5f 6c 6f 61 64 |..'. .templ_load| 00021450 28 f8 20 6e 72 25 2c f8 20 6e 24 2c 70 25 2c 70 |(. nr%,. n$,p%,p| 00021460 73 69 7a 65 25 29 0d 11 db 1b ea 20 64 78 25 2c |size%)..... dx%,| 00021470 64 79 25 2c 69 63 6f 6e 25 2c 74 62 25 2c 69 62 |dy%,icon%,tb%,ib| 00021480 25 0d 11 dc 07 ea 20 85 0d 11 dd 39 ee 20 85 20 |%..... ....9. . | 00021490 ea 20 c8 99 20 22 57 69 6d 70 5f 43 6c 6f 73 65 |. .. "Wimp_Close| 000214a0 54 65 6d 70 6c 61 74 65 22 20 3a 20 f2 65 72 72 |Template" : .err| 000214b0 6f 72 28 30 29 20 3a 20 6e 72 25 3d 30 20 3a 20 |or(0) : nr%=0 : | 000214c0 e1 0d 11 de 2d 6e 24 3d 22 2a 22 2b c4 31 31 2c |....-n$="*"+.11,| 000214d0 bd 30 29 20 3a 20 f4 20 6e 61 6d 65 20 6c 65 6e |.0) : . name len| 000214e0 67 74 68 20 6d 75 73 74 20 62 65 20 31 32 0d 11 |gth must be 12..| 000214f0 df 4c c8 99 20 22 57 69 6d 70 5f 4c 6f 61 64 54 |.L.. "Wimp_LoadT| 00021500 65 6d 70 6c 61 74 65 22 2c 2c 57 69 6e 42 6c 6b |emplate",,WinBlk| 00021510 25 2b 34 2c 70 25 2c 70 25 2b 70 73 69 7a 65 25 |%+4,p%,p%+psize%| 00021520 2c 46 72 61 25 2c 6e 24 2c 6e 72 25 20 b8 20 2c |,Fra%,n$,nr% . ,| 00021530 2c 2c 2c 2c 6e 24 2c 6e 72 25 0d 11 e0 0d e7 20 |,,,,n$,nr%..... | 00021540 6e 72 25 3e 30 20 8c 0d 11 e1 46 20 20 f4 20 6d |nr%>0 ....F . m| 00021550 61 6b 65 20 73 75 72 65 20 77 69 6e 64 6f 77 20 |ake sure window | 00021560 6f 72 69 67 69 6e 20 70 6f 73 69 74 69 6f 6e 20 |origin position | 00021570 69 73 20 77 69 74 68 69 6e 20 63 75 72 72 65 6e |is within curren| 00021580 74 20 73 63 72 65 65 6e 20 73 69 7a 65 0d 11 e2 |t screen size...| 00021590 0b 20 20 64 78 25 3d 30 0d 11 e3 0b 20 20 64 79 |. dx%=0.... dy| 000215a0 25 3d 30 0d 11 e4 24 20 20 e7 20 57 69 6e 42 6c |%=0...$ . WinBl| 000215b0 6b 25 21 34 3c 30 20 8c 20 64 78 25 3d 2d 57 69 |k%!4<0 . dx%=-Wi| 000215c0 6e 42 6c 6b 25 21 34 0d 11 e5 24 20 20 e7 20 57 |nBlk%!4...$ . W| 000215d0 69 6e 42 6c 6b 25 21 38 3c 30 20 8c 20 64 79 25 |inBlk%!8<0 . dy%| 000215e0 3d 2d 57 69 6e 42 6c 6b 25 21 38 0d 11 e6 3f 20 |=-WinBlk%!8...? | 000215f0 20 e7 20 57 69 6e 42 6c 6b 25 21 31 32 3e 53 63 | . WinBlk%!12>Sc| 00021600 72 65 65 6e 53 69 7a 65 5f 58 25 20 8c 20 64 78 |reenSize_X% . dx| 00021610 25 3d 53 63 72 65 65 6e 53 69 7a 65 5f 58 25 2d |%=ScreenSize_X%-| 00021620 57 69 6e 42 6c 6b 25 21 31 32 0d 11 e7 47 20 20 |WinBlk%!12...G | 00021630 e7 20 57 69 6e 42 6c 6b 25 21 31 36 3e 28 53 63 |. WinBlk%!16>(Sc| 00021640 72 65 65 6e 53 69 7a 65 5f 59 25 2d 34 34 29 20 |reenSize_Y%-44) | 00021650 8c 20 64 79 25 3d 53 63 72 65 65 6e 53 69 7a 65 |. dy%=ScreenSize| 00021660 5f 59 25 2d 34 34 2d 57 69 6e 42 6c 6b 25 21 31 |_Y%-44-WinBlk%!1| 00021670 36 0d 11 e8 1d 20 20 57 69 6e 42 6c 6b 25 21 34 |6.... WinBlk%!4| 00021680 3d 57 69 6e 42 6c 6b 25 21 34 2b 64 78 25 0d 11 |=WinBlk%!4+dx%..| 00021690 e9 1d 20 20 57 69 6e 42 6c 6b 25 21 38 3d 57 69 |.. WinBlk%!8=Wi| 000216a0 6e 42 6c 6b 25 21 38 2b 64 79 25 0d 11 ea 1f 20 |nBlk%!8+dy%.... | 000216b0 20 57 69 6e 42 6c 6b 25 21 31 32 3d 57 69 6e 42 | WinBlk%!12=WinB| 000216c0 6c 6b 25 21 31 32 2b 64 78 25 0d 11 eb 1f 20 20 |lk%!12+dx%.... | 000216d0 57 69 6e 42 6c 6b 25 21 31 36 3d 57 69 6e 42 6c |WinBlk%!16=WinBl| 000216e0 6b 25 21 31 36 2b 64 79 25 0d 11 ec 3f 20 20 57 |k%!16+dy%...? W| 000216f0 69 6e 42 6c 6b 25 21 36 38 3d 55 73 65 72 53 70 |inBlk%!68=UserSp| 00021700 72 69 74 65 73 25 20 3a 20 f4 20 73 65 74 20 73 |rites% : . set s| 00021710 70 72 69 74 65 20 61 72 65 61 20 28 43 42 50 20 |prite area (CBP | 00021720 70 6f 69 6e 74 65 72 29 0d 11 ed 48 20 20 f4 20 |pointer)...H . | 00021730 72 65 2d 61 6c 6c 6f 63 61 74 65 20 69 6e 64 69 |re-allocate indi| 00021740 72 65 63 74 65 64 20 64 61 74 61 2c 20 65 61 63 |rected data, eac| 00021750 68 20 66 69 65 6c 64 20 69 6e 20 61 20 73 65 70 |h field in a sep| 00021760 61 72 61 74 65 20 68 65 61 70 20 62 6c 6f 63 6b |arate heap block| 00021770 0d 11 ee 1e 20 20 e7 20 57 69 6e 42 6c 6b 25 21 |.... . WinBlk%!| 00021780 33 32 20 80 20 28 31 3c 3c 33 31 29 20 8c 0d 11 |32 . (1<<31) ...| 00021790 ef 20 20 20 20 20 74 62 25 3d 57 69 6e 42 6c 6b |. tb%=WinBlk| 000217a0 25 21 33 32 20 80 20 28 31 3c 3c 32 36 29 0d 11 |%!32 . (1<<26)..| 000217b0 f0 07 20 20 cc 0d 11 f1 1f 20 20 20 20 74 62 25 |.. ..... tb%| 000217c0 3d 57 69 6e 42 6c 6b 25 21 33 32 20 80 20 28 31 |=WinBlk%!32 . (1| 000217d0 3c 3c 30 29 0d 11 f2 07 20 20 cd 0d 11 f3 0d 20 |<<0).... ..... | 000217e0 20 e7 20 74 62 25 20 8c 0d 11 f4 46 20 20 20 20 | . tb% ....F | 000217f0 f2 69 63 6f 6e 72 65 61 6c 6c 6f 63 28 57 69 6e |.iconrealloc(Win| 00021800 42 6c 6b 25 2b 36 30 2c 57 69 6e 42 6c 6b 25 2b |Blk%+60,WinBlk%+| 00021810 37 36 29 20 3a 20 f4 20 72 65 61 6c 6c 6f 63 20 |76) : . realloc | 00021820 74 69 74 6c 65 20 62 61 72 20 69 63 6f 6e 0d 11 |title bar icon..| 00021830 f5 3f 20 20 20 20 f2 69 63 6f 6e 5f 73 65 74 73 |.? .icon_sets| 00021840 70 72 69 74 65 61 72 65 61 28 57 69 6e 42 6c 6b |pritearea(WinBlk| 00021850 25 21 36 30 2c 57 69 6e 42 6c 6b 25 2b 37 36 2c |%!60,WinBlk%+76,| 00021860 55 73 65 72 53 70 72 69 74 65 73 25 29 0d 11 f6 |UserSprites%)...| 00021870 07 20 20 cc 0d 11 f7 2e 20 20 20 20 f4 20 6e 6f |. ..... . no| 00021880 20 74 69 74 6c 65 20 62 61 72 3a 20 66 69 6c 6c | title bar: fill| 00021890 20 64 61 74 61 20 77 69 74 68 20 64 65 66 61 75 | data with defau| 000218a0 6c 74 0d 11 f8 16 20 20 20 20 57 69 6e 42 6c 6b |lt.... WinBlk| 000218b0 25 21 36 30 3d 26 33 44 0d 11 f9 22 20 20 20 20 |%!60=&3D..." | 000218c0 24 28 57 69 6e 42 6c 6b 25 2b 37 36 29 3d 22 3c |$(WinBlk%+76)="<| 000218d0 55 6e 74 69 74 6c 65 64 3e 22 0d 11 fa 07 20 20 |Untitled>".... | 000218e0 cd 0d 11 fb 18 20 20 e7 20 28 57 69 6e 42 6c 6b |..... . (WinBlk| 000218f0 25 21 38 38 29 3e 30 20 8c 0d 11 fc 22 20 20 20 |%!88)>0 ...." | 00021900 20 e3 20 69 63 6f 6e 25 3d 30 20 b8 20 28 57 69 | . icon%=0 . (Wi| 00021910 6e 42 6c 6b 25 21 38 38 29 2d 31 0d 11 fd 21 20 |nBlk%!88)-1...! | 00021920 20 20 20 20 20 69 62 25 3d 57 69 6e 42 6c 6b 25 | ib%=WinBlk%| 00021930 2b 39 32 2b 69 63 6f 6e 25 2a 33 32 0d 11 fe 25 |+92+icon%*32...%| 00021940 20 20 20 20 20 20 f2 69 63 6f 6e 72 65 61 6c 6c | .iconreall| 00021950 6f 63 28 69 62 25 2b 31 36 2c 69 62 25 2b 32 30 |oc(ib%+16,ib%+20| 00021960 29 0d 11 ff 3e 20 20 20 20 20 20 f4 20 73 65 74 |)...> . set| 00021970 20 73 70 72 69 74 65 20 70 6f 69 6e 74 65 72 73 | sprite pointers| 00021980 20 28 69 6e 64 69 72 65 63 74 65 64 20 73 70 72 | (indirected spr| 00021990 69 74 65 2d 6f 6e 6c 79 20 69 63 6f 6e 73 29 0d |ite-only icons).| 000219a0 12 00 39 20 20 20 20 20 20 f2 69 63 6f 6e 5f 73 |..9 .icon_s| 000219b0 65 74 73 70 72 69 74 65 61 72 65 61 28 69 62 25 |etspritearea(ib%| 000219c0 21 31 36 2c 69 62 25 2b 32 30 2c 55 73 65 72 53 |!16,ib%+20,UserS| 000219d0 70 72 69 74 65 73 25 29 0d 12 01 0f 20 20 20 20 |prites%).... | 000219e0 ed 20 69 63 6f 6e 25 0d 12 02 07 20 20 cd 0d 12 |. icon%.... ...| 000219f0 03 05 cd 0d 12 04 05 e1 0d 12 05 04 0d 12 06 38 |...............8| 00021a00 f4 20 2d 2d 2d 20 73 6f 72 74 20 74 65 6d 70 6c |. --- sort templ| 00021a10 61 74 65 73 20 6f 6e 20 6e 61 6d 65 73 20 28 63 |ates on names (c| 00021a20 61 73 65 2d 69 6e 73 65 6e 73 69 74 69 76 65 29 |ase-insensitive)| 00021a30 20 2d 2d 2d 0d 12 07 11 dd 20 f2 74 65 6d 70 6c | ---..... .templ| 00021a40 5f 73 6f 72 74 0d 12 08 2d ea 20 69 25 2c 6a 25 |_sort...-. i%,j%| 00021a50 2c 69 6e 64 65 78 25 2c 63 61 6e 64 69 64 61 74 |,index%,candidat| 00021a60 65 25 2c 63 61 6e 64 6e 61 6d 65 24 2c 6e 61 6d |e%,candname$,nam| 00021a70 65 24 0d 12 09 2c 69 25 3d 30 20 3a 20 f4 20 66 |e$...,i%=0 : . f| 00021a80 69 72 73 74 20 3c 69 25 3e 20 74 65 6d 70 6c 61 |irst <i%> templa| 00021a90 74 65 73 20 61 72 65 20 73 6f 72 74 65 64 0d 12 |tes are sorted..| 00021aa0 0a 1a c8 95 20 69 25 3c 28 4e 72 54 65 6d 70 6c |.... i%<(NrTempl| 00021ab0 61 74 65 73 25 2d 31 29 0d 12 0b 26 20 20 f4 20 |ates%-1)...& . | 00021ac0 66 69 6e 64 20 74 65 6d 70 6c 61 74 65 20 77 69 |find template wi| 00021ad0 74 68 20 6c 6f 77 65 73 74 20 6e 61 6d 65 0d 12 |th lowest name..| 00021ae0 0c 13 20 20 63 61 6e 64 69 64 61 74 65 25 3d 69 |.. candidate%=i| 00021af0 25 0d 12 0d 2d 20 20 63 61 6e 64 6e 61 6d 65 24 |%...- candname$| 00021b00 3d a4 75 70 63 61 73 65 28 24 28 54 65 6d 70 6c |=.upcase($(Templ| 00021b10 4e 61 6d 65 73 25 2b 69 25 2a 32 38 29 29 0d 12 |Names%+i%*28))..| 00021b20 0e 22 20 20 e3 20 6a 25 3d 69 25 2b 31 20 b8 20 |." . j%=i%+1 . | 00021b30 28 4e 72 54 65 6d 70 6c 61 74 65 73 25 2d 31 29 |(NrTemplates%-1)| 00021b40 0d 12 0f 2b 20 20 20 20 6e 61 6d 65 24 3d a4 75 |...+ name$=.u| 00021b50 70 63 61 73 65 28 24 28 54 65 6d 70 6c 4e 61 6d |pcase($(TemplNam| 00021b60 65 73 25 2b 6a 25 2a 32 38 29 29 0d 12 10 1b 20 |es%+j%*28)).... | 00021b70 20 20 20 e7 20 6e 61 6d 65 24 3c 63 61 6e 64 6e | . name$<candn| 00021b80 61 6d 65 24 20 8c 0d 12 11 17 20 20 20 20 20 20 |ame$ ..... | 00021b90 63 61 6e 64 69 64 61 74 65 25 3d 6a 25 0d 12 12 |candidate%=j%...| 00021ba0 19 20 20 20 20 20 20 63 61 6e 64 6e 61 6d 65 24 |. candname$| 00021bb0 3d 6e 61 6d 65 24 0d 12 13 09 20 20 20 20 cd 0d |=name$.... ..| 00021bc0 12 14 0a 20 20 ed 20 6a 25 0d 12 15 1a 20 20 f4 |... . j%.... .| 00021bd0 20 73 77 61 70 20 74 65 6d 70 6c 61 74 65 20 64 | swap template d| 00021be0 61 74 61 0d 12 16 19 20 20 e3 20 6a 25 3d 30 20 |ata.... . j%=0 | 00021bf0 b8 20 28 32 38 2d 34 29 20 88 20 34 0d 12 17 40 |. (28-4) . 4...@| 00021c00 20 20 20 20 c8 94 20 54 65 6d 70 6c 4e 61 6d 65 | .. TemplName| 00021c10 73 25 21 28 69 25 2a 32 38 2b 6a 25 29 2c 54 65 |s%!(i%*28+j%),Te| 00021c20 6d 70 6c 4e 61 6d 65 73 25 21 28 63 61 6e 64 69 |mplNames%!(candi| 00021c30 64 61 74 65 25 2a 32 38 2b 6a 25 29 0d 12 18 0a |date%*28+j%)....| 00021c40 20 20 ed 20 6a 25 0d 12 19 32 20 20 c8 94 20 54 | . j%...2 .. T| 00021c50 65 6d 70 6c 48 61 6e 64 6c 65 25 28 69 25 29 2c |emplHandle%(i%),| 00021c60 54 65 6d 70 6c 48 61 6e 64 6c 65 25 28 63 61 6e |TemplHandle%(can| 00021c70 64 69 64 61 74 65 25 29 0d 12 1a 2a 20 20 c8 94 |didate%)...* ..| 00021c80 20 50 61 6e 65 46 6c 61 67 25 3f 69 25 2c 50 61 | PaneFlag%?i%,Pa| 00021c90 6e 65 46 6c 61 67 25 3f 63 61 6e 64 69 64 61 74 |neFlag%?candidat| 00021ca0 65 25 0d 12 1b 0b 20 20 69 25 2b 3d 31 0d 12 1c |e%.... i%+=1...| 00021cb0 05 ce 0d 12 1d 05 e1 0d 12 1e 04 0d 12 1f 36 f4 |..............6.| 00021cc0 20 2a 2a 2a 20 70 72 6f 63 73 20 66 6f 72 20 72 | *** procs for r| 00021cd0 65 61 64 69 6e 67 20 61 6e 64 20 73 6f 72 74 69 |eading and sorti| 00021ce0 6e 67 20 73 65 6c 65 63 74 69 6f 6e 73 20 2a 2a |ng selections **| 00021cf0 2a 0d 12 20 04 0d 12 21 37 f4 20 2d 2d 2d 20 67 |*.. ...!7. --- g| 00021d00 65 74 20 6c 69 73 74 20 6f 66 20 73 65 6c 65 63 |et list of selec| 00021d10 74 65 64 20 69 63 6f 6e 73 20 61 6e 64 20 63 6f |ted icons and co| 00021d20 75 6e 74 20 74 68 65 6d 20 2d 2d 2d 0d 12 22 17 |unt them ---..".| 00021d30 dd 20 f2 73 65 6c 5f 67 65 74 28 77 69 6e 64 6f |. .sel_get(windo| 00021d40 77 25 29 0d 12 23 3d c8 99 20 22 57 69 6d 70 5f |w%)..#=.. "Wimp_| 00021d50 57 68 69 63 68 49 63 6f 6e 22 2c 77 69 6e 64 6f |WhichIcon",windo| 00021d60 77 25 2c 53 65 6c 42 6c 6b 25 2c 28 31 3c 3c 32 |w%,SelBlk%,(1<<2| 00021d70 31 29 2b 28 31 3c 3c 32 33 29 2c 31 3c 3c 32 31 |1)+(1<<23),1<<21| 00021d80 0d 12 24 11 4e 72 53 65 6c 65 63 74 65 64 25 3d |..$.NrSelected%=| 00021d90 30 0d 12 25 22 c8 95 20 53 65 6c 42 6c 6b 25 21 |0..%".. SelBlk%!| 00021da0 28 34 2a 4e 72 53 65 6c 65 63 74 65 64 25 29 3c |(4*NrSelected%)<| 00021db0 3e 2d 31 0d 12 26 14 20 20 4e 72 53 65 6c 65 63 |>-1..&. NrSelec| 00021dc0 74 65 64 25 2b 3d 31 0d 12 27 05 ce 0d 12 28 05 |ted%+=1..'....(.| 00021dd0 e1 0d 12 29 04 0d 12 2a 1e f4 20 2d 2d 2d 20 73 |...)...*.. --- s| 00021de0 65 6c 65 63 74 20 61 6c 6c 20 69 63 6f 6e 73 20 |elect all icons | 00021df0 2d 2d 2d 0d 12 2b 17 dd 20 f2 73 65 6c 5f 61 6c |---..+.. .sel_al| 00021e00 6c 28 77 69 6e 64 6f 77 25 29 0d 12 2c 08 ea 20 |l(window%)..,.. | 00021e10 69 25 0d 12 2d 35 f4 20 67 65 74 20 61 6c 6c 20 |i%..-5. get all | 00021e20 69 63 6f 6e 73 20 74 68 61 74 20 61 72 65 20 6e |icons that are n| 00021e30 6f 74 20 73 65 6c 65 63 74 65 64 20 6e 6f 72 20 |ot selected nor | 00021e40 64 65 6c 65 74 65 64 0d 12 2e 39 c8 99 20 22 57 |deleted...9.. "W| 00021e50 69 6d 70 5f 57 68 69 63 68 49 63 6f 6e 22 2c 77 |imp_WhichIcon",w| 00021e60 69 6e 64 6f 77 25 2c 53 65 6c 42 6c 6b 25 2c 28 |indow%,SelBlk%,(| 00021e70 31 3c 3c 32 31 29 2b 28 31 3c 3c 32 33 29 2c 30 |1<<21)+(1<<23),0| 00021e80 0d 12 2f 08 69 25 3d 30 0d 12 30 15 c8 95 20 53 |../.i%=0..0... S| 00021e90 65 6c 42 6c 6b 25 21 69 25 3c 3e 2d 31 0d 12 31 |elBlk%!i%<>-1..1| 00021ea0 27 20 20 f2 73 65 6c 65 63 74 69 63 6f 6e 28 77 |' .selecticon(w| 00021eb0 69 6e 64 6f 77 25 2c 53 65 6c 42 6c 6b 25 21 69 |indow%,SelBlk%!i| 00021ec0 25 2c 31 29 0d 12 32 0b 20 20 69 25 2b 3d 34 0d |%,1)..2. i%+=4.| 00021ed0 12 33 05 ce 0d 12 34 05 e1 0d 12 35 04 0d 12 36 |.3....4....5...6| 00021ee0 3e f4 20 2d 2d 2d 20 75 6e 73 65 6c 65 63 74 20 |>. --- unselect | 00021ef0 61 6c 6c 20 69 63 6f 6e 73 20 28 65 78 63 65 70 |all icons (excep| 00021f00 74 2c 20 6d 61 79 62 65 2c 20 66 6f 72 20 6f 6e |t, maybe, for on| 00021f10 65 20 69 63 6f 6e 29 20 2d 2d 2d 0d 12 37 21 dd |e icon) ---..7!.| 00021f20 20 f2 73 65 6c 5f 63 6c 65 61 72 28 77 69 6e 64 | .sel_clear(wind| 00021f30 6f 77 25 2c 65 78 63 65 70 74 25 29 0d 12 38 08 |ow%,except%)..8.| 00021f40 ea 20 69 25 0d 12 39 33 c8 99 20 22 57 69 6d 70 |. i%..93.. "Wimp| 00021f50 5f 57 68 69 63 68 49 63 6f 6e 22 2c 77 69 6e 64 |_WhichIcon",wind| 00021f60 6f 77 25 2c 53 65 6c 42 6c 6b 25 2c 31 3c 3c 32 |ow%,SelBlk%,1<<2| 00021f70 31 2c 31 3c 3c 32 31 0d 12 3a 08 69 25 3d 30 0d |1,1<<21..:.i%=0.| 00021f80 12 3b 15 c8 95 20 53 65 6c 42 6c 6b 25 21 69 25 |.;... SelBlk%!i%| 00021f90 3c 3e 2d 31 0d 12 3c 3f 20 20 e7 20 53 65 6c 42 |<>-1..<? . SelB| 00021fa0 6c 6b 25 21 69 25 3c 3e 65 78 63 65 70 74 25 20 |lk%!i%<>except% | 00021fb0 8c 20 f2 73 65 6c 65 63 74 69 63 6f 6e 28 77 69 |. .selecticon(wi| 00021fc0 6e 64 6f 77 25 2c 53 65 6c 42 6c 6b 25 21 69 25 |ndow%,SelBlk%!i%| 00021fd0 2c 30 29 0d 12 3d 0b 20 20 69 25 2b 3d 34 0d 12 |,0)..=. i%+=4..| 00021fe0 3e 05 ce 0d 12 3f 11 4e 72 53 65 6c 65 63 74 65 |>....?.NrSelecte| 00021ff0 64 25 3d 30 0d 12 40 05 e1 0d 12 41 04 0d 12 42 |d%=0..@....A...B| 00022000 48 f4 20 2d 2d 2d 20 73 6f 72 74 20 69 63 6f 6e |H. --- sort icon| 00022010 20 73 65 6c 65 63 74 69 6f 6e 20 28 61 73 73 75 | selection (assu| 00022020 6d 65 73 20 73 65 6c 65 63 74 69 6f 6e 20 70 72 |mes selection pr| 00022030 65 73 65 6e 74 20 69 6e 20 53 65 6c 42 6c 6b 25 |esent in SelBlk%| 00022040 29 20 2d 2d 2d 0d 12 43 3c dd 20 f2 73 65 6c 5f |) ---..C<. .sel_| 00022050 73 6f 72 74 28 77 69 6e 64 6f 77 25 2c 6b 65 79 |sort(window%,key| 00022060 31 25 2c 6d 61 78 31 25 2c 64 69 72 31 25 2c 6b |1%,max1%,dir1%,k| 00022070 65 79 32 25 2c 6d 61 78 32 25 2c 64 69 72 32 25 |ey2%,max2%,dir2%| 00022080 29 0d 12 44 41 f4 20 69 66 20 6b 65 79 3d 30 20 |)..DA. if key=0 | 00022090 74 68 65 6e 20 73 6f 72 74 20 6f 6e 20 68 6f 72 |then sort on hor| 000220a0 69 7a 6f 6e 74 61 6c 20 63 6f 6f 72 64 69 6e 61 |izontal coordina| 000220b0 74 65 73 2c 20 65 6c 73 65 20 76 65 72 74 69 63 |tes, else vertic| 000220c0 61 6c 0d 12 45 3d f4 20 69 66 20 6d 61 78 3d 30 |al..E=. if max=0| 000220d0 20 74 68 65 6e 20 73 6f 72 74 20 6f 6e 20 6d 69 | then sort on mi| 000220e0 6e 69 6d 75 6d 20 63 6f 6f 72 64 69 6e 61 74 65 |nimum coordinate| 000220f0 73 2c 20 65 6c 73 65 20 6d 61 78 69 6d 75 6d 0d |s, else maximum.| 00022100 12 46 3c f4 20 69 66 20 64 69 72 3d 30 20 74 68 |.F<. if dir=0 th| 00022110 65 6e 20 73 6f 72 74 20 69 6e 20 64 65 73 63 65 |en sort in desce| 00022120 6e 64 69 6e 67 20 6f 72 64 65 72 2c 20 65 6c 73 |nding order, els| 00022130 65 20 61 73 63 65 6e 64 69 6e 67 0d 12 47 1f ea |e ascending..G..| 00022140 20 69 25 2c 6a 25 2c 69 6e 64 65 78 31 25 2c 69 | i%,j%,index1%,i| 00022150 6e 64 65 78 32 25 2c 69 62 25 0d 12 48 40 ea 20 |ndex2%,ib%..H@. | 00022160 76 61 6c 75 65 31 25 2c 76 61 6c 75 65 32 25 2c |value1%,value2%,| 00022170 63 61 6e 64 69 64 61 74 65 25 2c 62 65 73 74 73 |candidate%,bests| 00022180 6f 66 61 72 31 25 2c 62 65 73 74 73 6f 66 61 72 |ofar1%,bestsofar| 00022190 32 25 2c 62 65 74 74 65 72 25 0d 12 49 35 69 25 |2%,better%..I5i%| 000221a0 3d 30 20 3a 20 f4 20 66 69 72 73 74 20 3c 69 25 |=0 : . first <i%| 000221b0 3e 20 69 63 6f 6e 73 20 69 6e 20 73 65 6c 65 63 |> icons in selec| 000221c0 74 69 6f 6e 20 61 72 65 20 73 6f 72 74 65 64 0d |tion are sorted.| 000221d0 12 4a 0f e7 20 6b 65 79 31 25 3d 30 20 8c 0d 12 |.J.. key1%=0 ...| 000221e0 4b 0f 20 20 69 6e 64 65 78 31 25 3d 30 0d 12 4c |K. index1%=0..L| 000221f0 05 cc 0d 12 4d 0f 20 20 69 6e 64 65 78 31 25 3d |....M. index1%=| 00022200 34 0d 12 4e 05 cd 0d 12 4f 18 e7 20 6d 61 78 31 |4..N....O.. max1| 00022210 25 20 8c 20 69 6e 64 65 78 31 25 2b 3d 38 0d 12 |% . index1%+=8..| 00022220 50 0f e7 20 6b 65 79 32 25 3d 30 20 8c 0d 12 51 |P.. key2%=0 ...Q| 00022230 0f 20 20 69 6e 64 65 78 32 25 3d 30 0d 12 52 05 |. index2%=0..R.| 00022240 cc 0d 12 53 0f 20 20 69 6e 64 65 78 32 25 3d 34 |...S. index2%=4| 00022250 0d 12 54 05 cd 0d 12 55 18 e7 20 6d 61 78 32 25 |..T....U.. max2%| 00022260 20 8c 20 69 6e 64 65 78 32 25 2b 3d 38 0d 12 56 | . index2%+=8..V| 00022270 15 57 69 6e 42 6c 6b 25 21 30 3d 77 69 6e 64 6f |.WinBlk%!0=windo| 00022280 77 25 0d 12 57 24 c8 99 20 22 57 69 6d 70 5f 47 |w%..W$.. "Wimp_G| 00022290 65 74 57 69 6e 64 6f 77 49 6e 66 6f 22 2c 2c 57 |etWindowInfo",,W| 000222a0 69 6e 42 6c 6b 25 0d 12 58 19 c8 95 20 69 25 3c |inBlk%..X... i%<| 000222b0 28 4e 72 53 65 6c 65 63 74 65 64 25 2d 31 29 0d |(NrSelected%-1).| 000222c0 12 59 3c 20 20 f4 20 66 69 6e 64 20 69 63 6f 6e |.Y< . find icon| 000222d0 20 77 69 74 68 20 73 6d 61 6c 6c 65 73 74 2f 68 | with smallest/h| 000222e0 69 67 68 65 73 74 20 76 61 6c 75 65 20 66 6f 72 |ighest value for| 000222f0 20 63 6f 6f 72 64 69 6e 61 74 65 0d 12 5a 13 20 | coordinate..Z. | 00022300 20 63 61 6e 64 69 64 61 74 65 25 3d 69 25 0d 12 | candidate%=i%..| 00022310 5b 28 20 20 69 62 25 3d 57 69 6e 42 6c 6b 25 2b |[( ib%=WinBlk%+| 00022320 39 32 2b 33 32 2a 28 53 65 6c 42 6c 6b 25 21 28 |92+32*(SelBlk%!(| 00022330 34 2a 69 25 29 29 0d 12 5c 1f 20 20 62 65 73 74 |4*i%))..\. best| 00022340 73 6f 66 61 72 31 25 3d 69 62 25 21 28 69 6e 64 |sofar1%=ib%!(ind| 00022350 65 78 31 25 29 0d 12 5d 1f 20 20 62 65 73 74 73 |ex1%)..]. bests| 00022360 6f 66 61 72 32 25 3d 69 62 25 21 28 69 6e 64 65 |ofar2%=ib%!(inde| 00022370 78 32 25 29 0d 12 5e 21 20 20 e3 20 6a 25 3d 69 |x2%)..^! . j%=i| 00022380 25 2b 31 20 b8 20 28 4e 72 53 65 6c 65 63 74 65 |%+1 . (NrSelecte| 00022390 64 25 2d 31 29 0d 12 5f 2a 20 20 20 20 69 62 25 |d%-1).._* ib%| 000223a0 3d 57 69 6e 42 6c 6b 25 2b 39 32 2b 33 32 2a 28 |=WinBlk%+92+32*(| 000223b0 53 65 6c 42 6c 6b 25 21 28 34 2a 6a 25 29 29 0d |SelBlk%!(4*j%)).| 000223c0 12 60 1d 20 20 20 20 76 61 6c 75 65 31 25 3d 69 |.`. value1%=i| 000223d0 62 25 21 28 69 6e 64 65 78 31 25 29 0d 12 61 1d |b%!(index1%)..a.| 000223e0 20 20 20 20 76 61 6c 75 65 32 25 3d 69 62 25 21 | value2%=ib%!| 000223f0 28 69 6e 64 65 78 32 25 29 0d 12 62 1f 20 20 20 |(index2%)..b. | 00022400 20 e7 20 62 65 73 74 73 6f 66 61 72 31 25 3d 76 | . bestsofar1%=v| 00022410 61 6c 75 65 31 25 20 8c 0d 12 63 23 20 20 20 20 |alue1% ...c# | 00022420 20 20 f4 20 6c 6f 6f 6b 20 61 74 20 73 65 63 6f | . look at seco| 00022430 6e 64 20 73 6f 72 74 20 6b 65 79 0d 12 64 13 20 |nd sort key..d. | 00022440 20 20 20 20 20 e7 20 64 69 72 32 25 20 8c 0d 12 | . dir2% ...| 00022450 65 29 20 20 20 20 20 20 20 20 62 65 74 74 65 72 |e) better| 00022460 25 3d 28 76 61 6c 75 65 32 25 3c 62 65 73 74 73 |%=(value2%<bests| 00022470 6f 66 61 72 32 25 29 0d 12 66 0b 20 20 20 20 20 |ofar2%)..f. | 00022480 20 cc 0d 12 67 29 20 20 20 20 20 20 20 20 62 65 | ...g) be| 00022490 74 74 65 72 25 3d 28 76 61 6c 75 65 32 25 3e 62 |tter%=(value2%>b| 000224a0 65 73 74 73 6f 66 61 72 32 25 29 0d 12 68 0b 20 |estsofar2%)..h. | 000224b0 20 20 20 20 20 cd 0d 12 69 09 20 20 20 20 cc 0d | ...i. ..| 000224c0 12 6a 13 20 20 20 20 20 20 e7 20 64 69 72 31 25 |.j. . dir1%| 000224d0 20 8c 0d 12 6b 46 20 20 20 20 20 20 20 20 62 65 | ...kF be| 000224e0 74 74 65 72 25 3d 28 76 61 6c 75 65 31 25 3c 62 |tter%=(value1%<b| 000224f0 65 73 74 73 6f 66 61 72 31 25 29 20 3a 20 f4 20 |estsofar1%) : . | 00022500 6c 6f 6f 6b 69 6e 67 20 66 6f 72 20 6c 6f 77 65 |looking for lowe| 00022510 73 74 20 76 61 6c 75 65 0d 12 6c 0b 20 20 20 20 |st value..l. | 00022520 20 20 cc 0d 12 6d 47 20 20 20 20 20 20 20 20 62 | ...mG b| 00022530 65 74 74 65 72 25 3d 28 76 61 6c 75 65 31 25 3e |etter%=(value1%>| 00022540 62 65 73 74 73 6f 66 61 72 31 25 29 20 3a 20 f4 |bestsofar1%) : .| 00022550 20 6c 6f 6f 6b 69 6e 67 20 66 6f 72 20 68 69 67 | looking for hig| 00022560 68 65 73 74 20 76 61 6c 75 65 0d 12 6e 0b 20 20 |hest value..n. | 00022570 20 20 20 20 cd 0d 12 6f 09 20 20 20 20 cd 0d 12 | ...o. ...| 00022580 70 13 20 20 20 20 e7 20 62 65 74 74 65 72 25 20 |p. . better% | 00022590 8c 0d 12 71 17 20 20 20 20 20 20 63 61 6e 64 69 |...q. candi| 000225a0 64 61 74 65 25 3d 6a 25 0d 12 72 1d 20 20 20 20 |date%=j%..r. | 000225b0 20 20 62 65 73 74 73 6f 66 61 72 31 25 3d 76 61 | bestsofar1%=va| 000225c0 6c 75 65 31 25 0d 12 73 1d 20 20 20 20 20 20 62 |lue1%..s. b| 000225d0 65 73 74 73 6f 66 61 72 32 25 3d 76 61 6c 75 65 |estsofar2%=value| 000225e0 32 25 0d 12 74 09 20 20 20 20 cd 0d 12 75 0a 20 |2%..t. ...u. | 000225f0 20 ed 20 6a 25 0d 12 76 28 20 20 f4 20 73 77 61 | . j%..v( . swa| 00022600 70 20 69 63 6f 6e 73 20 69 6e 20 73 65 6c 65 63 |p icons in selec| 00022610 74 69 6f 6e 20 73 65 71 75 65 6e 63 65 0d 12 77 |tion sequence..w| 00022620 2e 20 20 c8 94 20 53 65 6c 42 6c 6b 25 21 28 34 |. .. SelBlk%!(4| 00022630 2a 63 61 6e 64 69 64 61 74 65 25 29 2c 53 65 6c |*candidate%),Sel| 00022640 42 6c 6b 25 21 28 34 2a 69 25 29 0d 12 78 0b 20 |Blk%!(4*i%)..x. | 00022650 20 69 25 2b 3d 31 0d 12 79 05 ce 0d 12 7a 05 e1 | i%+=1..y....z..| 00022660 0d 12 7b 04 0d 12 7c 40 f4 20 2d 2d 2d 20 63 61 |..{...|@. --- ca| 00022670 6c 63 75 6c 61 74 65 20 63 6f 6f 72 64 73 20 6f |lculate coords o| 00022680 66 20 62 6f 78 20 73 75 72 72 6f 75 6e 64 69 6e |f box surroundin| 00022690 67 20 73 65 6c 65 63 74 65 64 20 69 63 6f 6e 73 |g selected icons| 000226a0 20 2d 2d 2d 0d 12 7d 37 dd 20 f2 73 65 6c 5f 62 | ---..}7. .sel_b| 000226b0 6f 78 28 77 69 6e 64 6f 77 25 2c f8 20 78 6d 69 |ox(window%,. xmi| 000226c0 6e 25 2c f8 20 79 6d 69 6e 25 2c f8 20 78 6d 61 |n%,. ymin%,. xma| 000226d0 78 25 2c f8 20 79 6d 61 78 25 29 0d 12 7e 29 f4 |x%,. ymax%)..~).| 000226e0 20 61 73 73 75 6d 65 20 73 65 6c 65 63 74 69 6f | assume selectio| 000226f0 6e 20 70 72 65 73 65 6e 74 20 69 6e 20 53 65 6c |n present in Sel| 00022700 42 6c 6b 25 0d 12 7f 08 ea 20 69 25 0d 12 80 17 |Blk%..... i%....| 00022710 53 63 72 61 70 42 6c 6b 25 21 30 3d 77 69 6e 64 |ScrapBlk%!0=wind| 00022720 6f 77 25 0d 12 81 19 53 63 72 61 70 42 6c 6b 25 |ow%....ScrapBlk%| 00022730 21 34 3d 53 65 6c 42 6c 6b 25 21 30 0d 12 82 25 |!4=SelBlk%!0...%| 00022740 c8 99 20 22 57 69 6d 70 5f 47 65 74 49 63 6f 6e |.. "Wimp_GetIcon| 00022750 53 74 61 74 65 22 2c 2c 53 63 72 61 70 42 6c 6b |State",,ScrapBlk| 00022760 25 0d 12 83 15 78 6d 69 6e 25 3d 53 63 72 61 70 |%....xmin%=Scrap| 00022770 42 6c 6b 25 21 38 0d 12 84 16 79 6d 69 6e 25 3d |Blk%!8....ymin%=| 00022780 53 63 72 61 70 42 6c 6b 25 21 31 32 0d 12 85 16 |ScrapBlk%!12....| 00022790 78 6d 61 78 25 3d 53 63 72 61 70 42 6c 6b 25 21 |xmax%=ScrapBlk%!| 000227a0 31 36 0d 12 86 16 79 6d 61 78 25 3d 53 63 72 61 |16....ymax%=Scra| 000227b0 70 42 6c 6b 25 21 32 30 0d 12 87 1a e3 20 69 25 |pBlk%!20..... i%| 000227c0 3d 30 20 b8 20 4e 72 53 65 6c 65 63 74 65 64 25 |=0 . NrSelected%| 000227d0 2d 31 0d 12 88 20 20 20 53 63 72 61 70 42 6c 6b |-1... ScrapBlk| 000227e0 25 21 34 3d 53 65 6c 42 6c 6b 25 21 28 34 2a 69 |%!4=SelBlk%!(4*i| 000227f0 25 29 0d 12 89 27 20 20 c8 99 20 22 57 69 6d 70 |%)...' .. "Wimp| 00022800 5f 47 65 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c |_GetIconState",,| 00022810 53 63 72 61 70 42 6c 6b 25 0d 12 8a 2d 20 20 e7 |ScrapBlk%...- .| 00022820 20 78 6d 69 6e 25 3e 53 63 72 61 70 42 6c 6b 25 | xmin%>ScrapBlk%| 00022830 21 38 20 8c 20 78 6d 69 6e 25 3d 53 63 72 61 70 |!8 . xmin%=Scrap| 00022840 42 6c 6b 25 21 38 0d 12 8b 2f 20 20 e7 20 79 6d |Blk%!8.../ . ym| 00022850 69 6e 25 3e 53 63 72 61 70 42 6c 6b 25 21 31 32 |in%>ScrapBlk%!12| 00022860 20 8c 20 79 6d 69 6e 25 3d 53 63 72 61 70 42 6c | . ymin%=ScrapBl| 00022870 6b 25 21 31 32 0d 12 8c 2f 20 20 e7 20 78 6d 61 |k%!12.../ . xma| 00022880 78 25 3c 53 63 72 61 70 42 6c 6b 25 21 31 36 20 |x%<ScrapBlk%!16 | 00022890 8c 20 78 6d 61 78 25 3d 53 63 72 61 70 42 6c 6b |. xmax%=ScrapBlk| 000228a0 25 21 31 36 0d 12 8d 2f 20 20 e7 20 79 6d 61 78 |%!16.../ . ymax| 000228b0 25 3c 53 63 72 61 70 42 6c 6b 25 21 32 30 20 8c |%<ScrapBlk%!20 .| 000228c0 20 79 6d 61 78 25 3d 53 63 72 61 70 42 6c 6b 25 | ymax%=ScrapBlk%| 000228d0 21 32 30 0d 12 8e 08 ed 20 69 25 0d 12 8f 05 e1 |!20..... i%.....| 000228e0 0d 12 90 04 0d 12 91 19 f4 20 2a 2a 2a 20 73 65 |......... *** se| 000228f0 74 75 70 20 70 72 6f 63 73 20 2a 2a 2a 0d 12 92 |tup procs ***...| 00022900 04 0d 12 93 14 dd 20 f2 73 65 74 75 70 5f 64 65 |...... .setup_de| 00022910 66 61 75 6c 74 0d 12 94 14 49 63 49 6e 66 6f 5f |fault....IcInfo_| 00022920 41 63 74 69 76 65 25 3d b9 0d 12 95 10 44 75 70 |Active%=.....Dup| 00022930 6c 4e 61 6d 65 73 25 3d b9 0d 12 96 0c 48 61 74 |lNames%=.....Hat| 00022940 63 68 25 3d b9 0d 12 97 17 53 75 70 70 6f 72 74 |ch%=.....Support| 00022950 49 6e 74 65 72 66 61 63 65 25 3d a3 0d 12 98 14 |Interface%=.....| 00022960 47 72 69 64 5f 53 69 7a 65 4c 6f 63 6b 25 3d b9 |Grid_SizeLock%=.| 00022970 0d 12 99 11 47 72 69 64 5f 53 69 7a 65 58 25 3d |....Grid_SizeX%=| 00022980 32 0d 12 9a 11 47 72 69 64 5f 53 69 7a 65 59 25 |2....Grid_SizeY%| 00022990 3d 34 0d 12 9b 13 47 72 69 64 5f 50 6f 73 4c 6f |=4....Grid_PosLo| 000229a0 63 6b 25 3d a3 0d 12 9c 10 47 72 69 64 5f 50 6f |ck%=.....Grid_Po| 000229b0 73 58 25 3d 32 0d 12 9d 10 47 72 69 64 5f 50 6f |sX%=2....Grid_Po| 000229c0 73 59 25 3d 34 0d 12 9e 16 53 61 76 65 5f 55 6e |sY%=4....Save_Un| 000229d0 73 65 6c 65 63 74 65 64 25 3d a3 0d 12 9f 14 44 |selected%=.....D| 000229e0 65 6c 65 74 65 4f 75 74 73 69 64 65 25 3d a3 0d |eleteOutside%=..| 000229f0 12 a0 11 54 72 61 70 44 63 6c 69 63 6b 25 3d b9 |...TrapDclick%=.| 00022a00 0d 12 a1 11 53 75 70 70 6f 72 74 41 45 48 25 3d |....SupportAEH%=| 00022a10 a3 0d 12 a2 05 e1 0d 12 a3 04 0d 12 a4 11 dd 20 |............... | 00022a20 f2 73 65 74 75 70 5f 6c 6f 61 64 0d 12 a5 08 ea |.setup_load.....| 00022a30 20 66 25 0d 12 a6 07 ea 20 85 0d 12 a7 1e 66 25 | f%..... .....f%| 00022a40 3d 8e 20 28 41 70 70 6c 44 69 72 24 2b 22 2e 4f |=. (ApplDir$+".O| 00022a50 70 74 69 6f 6e 73 22 29 0d 12 a8 0c e7 20 66 25 |ptions")..... f%| 00022a60 3d 30 20 8c 0d 12 a9 18 20 20 f2 64 69 61 6c 6f |=0 ..... .dialo| 00022a70 67 75 65 28 35 2c 22 22 2c 22 22 29 0d 12 aa 14 |gue(5,"","")....| 00022a80 20 20 f2 73 65 74 75 70 5f 64 65 66 61 75 6c 74 | .setup_default| 00022a90 0d 12 ab 05 cc 0d 12 ac 32 20 20 ee 20 85 20 ea |........2 . . .| 00022aa0 20 d9 20 23 66 25 20 3a 20 f2 65 72 72 6f 72 28 | . #f% : .error(| 00022ab0 30 29 20 3a 20 f2 73 65 74 75 70 5f 64 65 66 61 |0) : .setup_defa| 00022ac0 75 6c 74 20 3a 20 e1 0d 12 ad 3d 20 20 e8 23 66 |ult : ....= .#f| 00022ad0 25 2c 49 63 49 6e 66 6f 5f 41 63 74 69 76 65 25 |%,IcInfo_Active%| 00022ae0 2c 44 75 70 6c 4e 61 6d 65 73 25 2c 48 61 74 63 |,DuplNames%,Hatc| 00022af0 68 25 2c 53 75 70 70 6f 72 74 49 6e 74 65 72 66 |h%,SupportInterf| 00022b00 61 63 65 25 0d 12 ae 31 20 20 e8 23 66 25 2c 47 |ace%...1 .#f%,G| 00022b10 72 69 64 5f 53 69 7a 65 4c 6f 63 6b 25 2c 47 72 |rid_SizeLock%,Gr| 00022b20 69 64 5f 53 69 7a 65 58 25 2c 47 72 69 64 5f 53 |id_SizeX%,Grid_S| 00022b30 69 7a 65 59 25 0d 12 af 2e 20 20 e8 23 66 25 2c |izeY%.... .#f%,| 00022b40 47 72 69 64 5f 50 6f 73 4c 6f 63 6b 25 2c 47 72 |Grid_PosLock%,Gr| 00022b50 69 64 5f 50 6f 73 58 25 2c 47 72 69 64 5f 50 6f |id_PosX%,Grid_Po| 00022b60 73 59 25 0d 12 b0 42 20 20 e8 23 66 25 2c 53 61 |sY%...B .#f%,Sa| 00022b70 76 65 5f 55 6e 73 65 6c 65 63 74 65 64 25 2c 44 |ve_Unselected%,D| 00022b80 65 6c 65 74 65 4f 75 74 73 69 64 65 25 2c 54 72 |eleteOutside%,Tr| 00022b90 61 70 44 63 6c 69 63 6b 25 2c 53 75 70 70 6f 72 |apDclick%,Suppor| 00022ba0 74 41 45 48 25 0d 12 b1 0b 20 20 d9 20 23 66 25 |tAEH%.... . #f%| 00022bb0 0d 12 b2 05 cd 0d 12 b3 05 e1 0d 12 b4 04 0d 12 |................| 00022bc0 b5 11 dd 20 f2 73 65 74 75 70 5f 73 61 76 65 0d |... .setup_save.| 00022bd0 12 b6 08 ea 20 66 25 0d 12 b7 07 ea 20 85 0d 12 |.... f%..... ...| 00022be0 b8 1e 66 25 3d ae 20 28 41 70 70 6c 44 69 72 24 |..f%=. (ApplDir$| 00022bf0 2b 22 2e 4f 70 74 69 6f 6e 73 22 29 0d 12 b9 29 |+".Options")...)| 00022c00 ee 20 85 20 ea 20 e7 20 66 25 3c 3e 30 20 8c 20 |. . . . f%<>0 . | 00022c10 d9 20 23 66 25 20 3a 20 f2 65 72 72 6f 72 28 30 |. #f% : .error(0| 00022c20 29 20 3a 20 e1 0d 12 ba 3b f1 23 66 25 2c 49 63 |) : ....;.#f%,Ic| 00022c30 49 6e 66 6f 5f 41 63 74 69 76 65 25 2c 44 75 70 |Info_Active%,Dup| 00022c40 6c 4e 61 6d 65 73 25 2c 48 61 74 63 68 25 2c 53 |lNames%,Hatch%,S| 00022c50 75 70 70 6f 72 74 49 6e 74 65 72 66 61 63 65 25 |upportInterface%| 00022c60 0d 12 bb 2f f1 23 66 25 2c 47 72 69 64 5f 53 69 |.../.#f%,Grid_Si| 00022c70 7a 65 4c 6f 63 6b 25 2c 47 72 69 64 5f 53 69 7a |zeLock%,Grid_Siz| 00022c80 65 58 25 2c 47 72 69 64 5f 53 69 7a 65 59 25 0d |eX%,Grid_SizeY%.| 00022c90 12 bc 2c f1 23 66 25 2c 47 72 69 64 5f 50 6f 73 |..,.#f%,Grid_Pos| 00022ca0 4c 6f 63 6b 25 2c 47 72 69 64 5f 50 6f 73 58 25 |Lock%,Grid_PosX%| 00022cb0 2c 47 72 69 64 5f 50 6f 73 59 25 0d 12 bd 40 f1 |,Grid_PosY%...@.| 00022cc0 23 66 25 2c 53 61 76 65 5f 55 6e 73 65 6c 65 63 |#f%,Save_Unselec| 00022cd0 74 65 64 25 2c 44 65 6c 65 74 65 4f 75 74 73 69 |ted%,DeleteOutsi| 00022ce0 64 65 25 2c 54 72 61 70 44 63 6c 69 63 6b 25 2c |de%,TrapDclick%,| 00022cf0 53 75 70 70 6f 72 74 41 45 48 25 0d 12 be 09 d9 |SupportAEH%.....| 00022d00 20 23 66 25 0d 12 bf 05 e1 0d 12 c0 04 0d 12 c1 | #f%............| 00022d10 29 f4 20 2a 2a 2a 20 70 72 6f 63 73 20 66 6f 72 |). *** procs for| 00022d20 20 73 74 61 74 69 73 74 69 63 73 20 77 69 6e 64 | statistics wind| 00022d30 6f 77 20 2a 2a 2a 0d 12 c2 04 0d 12 c3 13 dd 20 |ow ***......... | 00022d40 f2 73 74 61 74 5f 66 69 6c 6c 77 69 6e 0d 12 c4 |.stat_fillwin...| 00022d50 49 ea 20 74 79 70 65 25 2c 77 61 73 6f 70 65 6e |I. type%,wasopen| 00022d60 25 2c 79 73 69 7a 65 25 2c 6d 61 78 77 64 65 66 |%,ysize%,maxwdef| 00022d70 25 2c 74 6f 74 69 6e 64 73 69 7a 65 25 2c 69 25 |%,totindsize%,i%| 00022d80 2c 77 64 65 66 25 2c 69 6e 64 73 69 7a 65 25 2c |,wdef%,indsize%,| 00022d90 6a 25 2c 69 62 25 0d 12 c5 15 c8 99 20 22 48 6f |j%,ib%...... "Ho| 00022da0 75 72 67 6c 61 73 73 5f 4f 6e 22 0d 12 c6 14 f2 |urglass_On".....| 00022db0 73 65 6c 5f 67 65 74 28 53 74 61 74 57 25 29 0d |sel_get(StatW%).| 00022dc0 12 c7 13 e7 20 53 65 6c 42 6c 6b 25 21 30 3d 32 |.... SelBlk%!0=2| 00022dd0 20 8c 0d 12 c8 28 20 20 74 79 70 65 25 3d 32 20 | ....( type%=2 | 00022de0 3a 20 f4 20 6e 75 6d 62 65 72 73 20 69 6e 20 68 |: . numbers in h| 00022df0 65 78 61 64 65 63 69 6d 61 6c 0d 12 c9 05 cc 0d |exadecimal......| 00022e00 12 ca 19 20 20 74 79 70 65 25 3d 31 20 3a 20 f4 |... type%=1 : .| 00022e10 20 64 65 63 69 6d 61 6c 0d 12 cb 05 cd 0d 12 cc | decimal........| 00022e20 14 57 69 6e 42 6c 6b 25 21 30 3d 53 74 61 74 57 |.WinBlk%!0=StatW| 00022e30 25 0d 12 cd 24 c8 99 20 22 57 69 6d 70 5f 47 65 |%...$.. "Wimp_Ge| 00022e40 74 57 69 6e 64 6f 77 49 6e 66 6f 22 2c 2c 57 69 |tWindowInfo",,Wi| 00022e50 6e 42 6c 6b 25 0d 12 ce 23 77 61 73 6f 70 65 6e |nBlk%...#wasopen| 00022e60 25 3d 28 57 69 6e 42 6c 6b 25 21 33 32 29 20 80 |%=(WinBlk%!32) .| 00022e70 20 28 31 3c 3c 31 36 29 0d 12 cf 23 c8 99 20 22 | (1<<16)...#.. "| 00022e80 57 69 6d 70 5f 44 65 6c 65 74 65 57 69 6e 64 6f |Wimp_DeleteWindo| 00022e90 77 22 2c 2c 57 69 6e 42 6c 6b 25 0d 12 d0 11 57 |w",,WinBlk%....W| 00022ea0 69 6e 42 6c 6b 25 21 38 38 3d 31 35 0d 12 d1 2d |inBlk%!88=15...-| 00022eb0 79 73 69 7a 65 25 3d 32 30 34 2b 4e 72 54 65 6d |ysize%=204+NrTem| 00022ec0 70 6c 61 74 65 73 25 2a 34 30 20 3a 20 f4 20 73 |plates%*40 : . s| 00022ed0 65 74 20 65 78 74 65 6e 74 0d 12 d2 2a 57 69 6e |et extent...*Win| 00022ee0 42 6c 6b 25 21 38 3d 57 69 6e 42 6c 6b 25 21 31 |Blk%!8=WinBlk%!1| 00022ef0 36 2d 57 69 6e 42 6c 6b 25 21 32 34 2d 79 73 69 |6-WinBlk%!24-ysi| 00022f00 7a 65 25 0d 12 d3 16 57 69 6e 42 6c 6b 25 21 34 |ze%....WinBlk%!4| 00022f10 38 3d 2d 79 73 69 7a 65 25 0d 12 d4 2e c8 99 20 |8=-ysize%...... | 00022f20 22 57 69 6d 70 5f 43 72 65 61 74 65 57 69 6e 64 |"Wimp_CreateWind| 00022f30 6f 77 22 2c 2c 57 69 6e 42 6c 6b 25 2b 34 20 b8 |ow",,WinBlk%+4 .| 00022f40 20 53 74 61 74 57 25 0d 12 d5 14 57 69 6e 42 6c | StatW%....WinBl| 00022f50 6b 25 21 30 3d 53 74 61 74 57 25 0d 12 d6 37 f2 |k%!0=StatW%...7.| 00022f60 6c 69 6e 6b 69 63 6f 6e 74 65 78 74 28 32 35 2c |linkicontext(25,| 00022f70 57 69 6e 42 6c 6b 25 2c 35 29 20 3a 20 f4 20 6e |WinBlk%,5) : . n| 00022f80 75 6d 62 65 72 20 6f 66 20 74 65 6d 70 6c 61 74 |umber of templat| 00022f90 65 73 0d 12 d7 3d f2 6c 69 6e 6b 69 63 6f 6e 74 |es...=.linkicont| 00022fa0 65 78 74 28 32 32 2c 57 69 6e 42 6c 6b 25 2c 37 |ext(22,WinBlk%,7| 00022fb0 29 20 3a 20 f4 20 6c 61 72 67 65 73 74 20 77 69 |) : . largest wi| 00022fc0 6e 64 6f 77 20 64 65 66 69 6e 69 74 69 6f 6e 0d |ndow definition.| 00022fd0 12 d8 41 f2 6c 69 6e 6b 69 63 6f 6e 74 65 78 74 |..A.linkicontext| 00022fe0 28 32 33 2c 57 69 6e 42 6c 6b 25 2c 39 29 20 3a |(23,WinBlk%,9) :| 00022ff0 20 f4 20 74 6f 74 61 6c 20 73 69 7a 65 20 6f 66 | . total size of| 00023000 20 69 6e 64 69 72 65 63 74 65 64 20 64 61 74 61 | indirected data| 00023010 0d 12 d9 0e 6d 61 78 77 64 65 66 25 3d 30 0d 12 |....maxwdef%=0..| 00023020 da 11 74 6f 74 69 6e 64 73 69 7a 65 25 3d 30 0d |..totindsize%=0.| 00023030 12 db 1b e3 20 69 25 3d 30 20 b8 20 4e 72 54 65 |.... i%=0 . NrTe| 00023040 6d 70 6c 61 74 65 73 25 2d 31 0d 12 dc 20 20 20 |mplates%-1... | 00023050 57 69 6e 42 6c 6b 25 21 30 3d 54 65 6d 70 6c 48 |WinBlk%!0=TemplH| 00023060 61 6e 64 6c 65 25 28 69 25 29 0d 12 dd 26 20 20 |andle%(i%)...& | 00023070 c8 99 20 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 |.. "Wimp_GetWind| 00023080 6f 77 49 6e 66 6f 22 2c 2c 57 69 6e 42 6c 6b 25 |owInfo",,WinBlk%| 00023090 0d 12 de 1c 20 20 77 64 65 66 25 3d 38 38 2b 33 |.... wdef%=88+3| 000230a0 32 2a 57 69 6e 42 6c 6b 25 21 38 38 0d 12 df 39 |2*WinBlk%!88...9| 000230b0 20 20 69 6e 64 73 69 7a 65 25 3d a4 73 74 61 74 | indsize%=.stat| 000230c0 5f 63 61 6c 63 69 6e 64 69 72 73 69 7a 65 28 57 |_calcindirsize(W| 000230d0 69 6e 42 6c 6b 25 21 36 30 2c 57 69 6e 42 6c 6b |inBlk%!60,WinBlk| 000230e0 25 2b 37 36 29 0d 12 e0 16 20 20 e7 20 57 69 6e |%+76).... . Win| 000230f0 42 6c 6b 25 21 38 38 3e 30 20 8c 0d 12 e1 1f 20 |Blk%!88>0 ..... | 00023100 20 20 20 e3 20 6a 25 3d 30 20 b8 20 28 57 69 6e | . j%=0 . (Win| 00023110 42 6c 6b 25 21 38 38 2d 31 29 0d 12 e2 1e 20 20 |Blk%!88-1).... | 00023120 20 20 20 20 69 62 25 3d 57 69 6e 42 6c 6b 25 2b | ib%=WinBlk%+| 00023130 39 32 2b 33 32 2a 6a 25 0d 12 e3 36 20 20 20 20 |92+32*j%...6 | 00023140 20 20 69 6e 64 73 69 7a 65 25 2b 3d a4 73 74 61 | indsize%+=.sta| 00023150 74 5f 63 61 6c 63 69 6e 64 69 72 73 69 7a 65 28 |t_calcindirsize(| 00023160 69 62 25 21 31 36 2c 69 62 25 2b 32 30 29 0d 12 |ib%!16,ib%+20)..| 00023170 e4 0c 20 20 20 20 ed 20 6a 25 0d 12 e5 07 20 20 |.. . j%.... | 00023180 cd 0d 12 e6 32 20 20 f2 73 74 61 74 5f 63 72 65 |....2 .stat_cre| 00023190 61 74 65 69 63 6f 6e 28 31 30 2c 24 28 54 65 6d |ateicon(10,$(Tem| 000231a0 70 6c 4e 61 6d 65 73 25 2b 69 25 2a 32 38 29 2c |plNames%+i%*28),| 000231b0 69 25 29 0d 12 e7 3d 20 20 f2 73 74 61 74 5f 63 |i%)...= .stat_c| 000231c0 72 65 61 74 65 69 63 6f 6e 28 31 31 2c a4 73 74 |reateicon(11,.st| 000231d0 61 74 5f 6e 75 6d 32 73 74 72 28 57 69 6e 42 6c |at_num2str(WinBl| 000231e0 6b 25 21 38 38 2c 74 79 70 65 25 29 2c 69 25 29 |k%!88,type%),i%)| 000231f0 0d 12 e8 38 20 20 f2 73 74 61 74 5f 63 72 65 61 |...8 .stat_crea| 00023200 74 65 69 63 6f 6e 28 31 32 2c a4 73 74 61 74 5f |teicon(12,.stat_| 00023210 6e 75 6d 32 73 74 72 28 77 64 65 66 25 2c 74 79 |num2str(wdef%,ty| 00023220 70 65 25 29 2c 69 25 29 0d 12 e9 3b 20 20 f2 73 |pe%),i%)...; .s| 00023230 74 61 74 5f 63 72 65 61 74 65 69 63 6f 6e 28 31 |tat_createicon(1| 00023240 33 2c a4 73 74 61 74 5f 6e 75 6d 32 73 74 72 28 |3,.stat_num2str(| 00023250 69 6e 64 73 69 7a 65 25 2c 74 79 70 65 25 29 2c |indsize%,type%),| 00023260 69 25 29 0d 12 ea 41 20 20 f2 73 74 61 74 5f 63 |i%)...A .stat_c| 00023270 72 65 61 74 65 69 63 6f 6e 28 31 34 2c a4 73 74 |reateicon(14,.st| 00023280 61 74 5f 6e 75 6d 32 73 74 72 28 77 64 65 66 25 |at_num2str(wdef%| 00023290 2b 69 6e 64 73 69 7a 65 25 2c 74 79 70 65 25 29 |+indsize%,type%)| 000232a0 2c 69 25 29 0d 12 eb 15 20 20 77 64 65 66 25 2b |,i%).... wdef%+| 000232b0 3d 69 6e 64 73 69 7a 65 25 0d 12 ec 27 20 20 e7 |=indsize%...' .| 000232c0 20 6d 61 78 77 64 65 66 25 3c 77 64 65 66 25 20 | maxwdef%<wdef% | 000232d0 8c 20 6d 61 78 77 64 65 66 25 3d 77 64 65 66 25 |. maxwdef%=wdef%| 000232e0 0d 12 ed 1b 20 20 74 6f 74 69 6e 64 73 69 7a 65 |.... totindsize| 000232f0 25 2b 3d 69 6e 64 73 69 7a 65 25 0d 12 ee 08 ed |%+=indsize%.....| 00023300 20 69 25 0d 12 ef 24 f2 73 65 74 69 63 6f 6e 74 | i%...$.seticont| 00023310 65 78 74 28 32 35 2c c3 28 4e 72 54 65 6d 70 6c |ext(25,.(NrTempl| 00023320 61 74 65 73 25 29 29 0d 12 f0 32 f2 73 65 74 69 |ates%))...2.seti| 00023330 63 6f 6e 74 65 78 74 28 32 32 2c a4 73 74 61 74 |context(22,.stat| 00023340 5f 6e 75 6d 32 73 74 72 28 6d 61 78 77 64 65 66 |_num2str(maxwdef| 00023350 25 2c 74 79 70 65 25 29 29 0d 12 f1 35 f2 73 65 |%,type%))...5.se| 00023360 74 69 63 6f 6e 74 65 78 74 28 32 33 2c a4 73 74 |ticontext(23,.st| 00023370 61 74 5f 6e 75 6d 32 73 74 72 28 74 6f 74 69 6e |at_num2str(totin| 00023380 64 73 69 7a 65 25 2c 74 79 70 65 25 29 29 0d 12 |dsize%,type%))..| 00023390 f2 10 e7 20 77 61 73 6f 70 65 6e 25 20 8c 0d 12 |... wasopen% ...| 000233a0 f3 1b 20 20 f2 6f 70 65 6e 77 69 6e 64 6f 77 28 |.. .openwindow(| 000233b0 53 74 61 74 57 25 2c 30 29 0d 12 f4 05 cc 0d 12 |StatW%,0).......| 000233c0 f5 1b 20 20 f2 6f 70 65 6e 77 69 6e 64 6f 77 28 |.. .openwindow(| 000233d0 53 74 61 74 57 25 2c 31 29 0d 12 f6 05 cd 0d 12 |StatW%,1).......| 000233e0 f7 16 c8 99 20 22 48 6f 75 72 67 6c 61 73 73 5f |.... "Hourglass_| 000233f0 4f 66 66 22 0d 12 f8 05 e1 0d 12 f9 04 0d 12 fa |Off"............| 00023400 42 f4 20 2d 2d 2d 20 63 61 6c 63 75 6c 61 74 65 |B. --- calculate| 00023410 20 73 69 7a 65 20 6f 66 20 69 6e 64 69 72 65 63 | size of indirec| 00023420 74 65 64 20 64 61 74 61 20 6e 65 65 64 65 64 20 |ted data needed | 00023430 66 6f 72 20 61 6e 20 69 63 6f 6e 20 2d 2d 2d 0d |for an icon ---.| 00023440 12 fb 27 dd 20 a4 73 74 61 74 5f 63 61 6c 63 69 |..'. .stat_calci| 00023450 6e 64 69 72 73 69 7a 65 28 66 6c 61 67 73 25 2c |ndirsize(flags%,| 00023460 64 61 74 61 25 29 0d 12 fc 0b ea 20 73 69 7a 65 |data%)..... size| 00023470 25 0d 12 fd 1f e7 20 28 66 6c 61 67 73 25 20 80 |%..... (flags% .| 00023480 20 26 38 30 30 31 30 30 29 3d 26 31 30 30 20 8c | &800100)=&100 .| 00023490 0d 12 fe 13 20 20 73 69 7a 65 25 3d 64 61 74 61 |.... size%=data| 000234a0 25 21 38 0d 12 ff 26 20 20 e7 20 28 66 6c 61 67 |%!8...& . (flag| 000234b0 73 25 20 80 20 31 29 20 80 20 28 64 61 74 61 25 |s% . 1) . (data%| 000234c0 21 34 3c 3e 2d 31 29 20 8c 0d 13 00 23 20 20 20 |!4<>-1) ....# | 000234d0 20 73 69 7a 65 25 3d 73 69 7a 65 25 2b a9 28 24 | size%=size%+.($| 000234e0 28 64 61 74 61 25 21 34 29 29 2b 31 0d 13 01 07 |(data%!4))+1....| 000234f0 20 20 cd 0d 13 02 05 cc 0d 13 03 0d 20 20 73 69 | .......... si| 00023500 7a 65 25 3d 30 0d 13 04 05 cd 0d 13 05 0a 3d 73 |ze%=0.........=s| 00023510 69 7a 65 25 0d 13 06 04 0d 13 07 30 f4 20 2d 2d |ize%.......0. --| 00023520 2d 20 63 72 65 61 74 65 20 61 6e 20 69 63 6f 6e |- create an icon| 00023530 20 69 6e 20 74 68 65 20 73 74 61 74 73 20 77 69 | in the stats wi| 00023540 6e 64 6f 77 20 2d 2d 2d 0d 13 08 2a dd 20 f2 73 |ndow ---...*. .s| 00023550 74 61 74 5f 63 72 65 61 74 65 69 63 6f 6e 28 63 |tat_createicon(c| 00023560 6f 70 79 66 72 6f 6d 25 2c 73 24 2c 6c 69 6e 65 |opyfrom%,s$,line| 00023570 25 29 0d 13 09 16 53 63 72 61 70 42 6c 6b 25 21 |%)....ScrapBlk%!| 00023580 30 3d 53 74 61 74 57 25 0d 13 0a 19 53 63 72 61 |0=StatW%....Scra| 00023590 70 42 6c 6b 25 21 34 3d 63 6f 70 79 66 72 6f 6d |pBlk%!4=copyfrom| 000235a0 25 0d 13 0b 25 c8 99 20 22 57 69 6d 70 5f 47 65 |%...%.. "Wimp_Ge| 000235b0 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c 53 63 72 |tIconState",,Scr| 000235c0 61 70 42 6c 6b 25 0d 13 0c 4b f4 20 63 72 65 61 |apBlk%...K. crea| 000235d0 74 65 20 69 63 6f 6e 20 74 68 61 74 20 69 73 20 |te icon that is | 000235e0 69 64 65 6e 74 69 63 61 6c 2c 20 65 78 63 65 70 |identical, excep| 000235f0 74 20 66 6f 72 20 73 74 72 69 6e 67 2c 20 63 6f |t for string, co| 00023600 6c 6f 75 72 73 20 61 6e 64 20 59 20 63 6f 6f 72 |lours and Y coor| 00023610 64 0d 13 0d 2c 53 63 72 61 70 42 6c 6b 25 21 31 |d...,ScrapBlk%!1| 00023620 32 3d 53 63 72 61 70 42 6c 6b 25 21 31 32 2d 34 |2=ScrapBlk%!12-4| 00023630 2d 34 30 2a 28 6c 69 6e 65 25 2b 31 29 0d 13 0e |-40*(line%+1)...| 00023640 20 53 63 72 61 70 42 6c 6b 25 21 32 30 3d 53 63 | ScrapBlk%!20=Sc| 00023650 72 61 70 42 6c 6b 25 21 31 32 2b 34 30 0d 13 0f |rapBlk%!12+40...| 00023660 35 53 63 72 61 70 42 6c 6b 25 21 32 34 3d 28 53 |5ScrapBlk%!24=(S| 00023670 63 72 61 70 42 6c 6b 25 21 32 34 20 80 20 26 46 |crapBlk%!24 . &F| 00023680 46 46 46 46 46 29 20 84 20 26 31 38 30 30 30 30 |FFFFF) . &180000| 00023690 30 30 0d 13 10 48 53 63 72 61 70 42 6c 6b 25 21 |00...HScrapBlk%!| 000236a0 32 34 3d 53 63 72 61 70 42 6c 6b 25 21 32 34 20 |24=ScrapBlk%!24 | 000236b0 80 20 28 ac 20 26 31 30 30 29 20 3a 20 f4 20 69 |. (. &100) : . i| 000236c0 63 6f 6e 20 6d 75 73 74 20 62 65 20 6e 6f 74 2d |con must be not-| 000236d0 69 6e 64 69 72 65 63 74 65 64 0d 13 11 16 24 28 |indirected....$(| 000236e0 53 63 72 61 70 42 6c 6b 25 2b 32 38 29 3d 73 24 |ScrapBlk%+28)=s$| 000236f0 0d 13 12 16 53 63 72 61 70 42 6c 6b 25 21 34 3d |....ScrapBlk%!4=| 00023700 53 74 61 74 57 25 0d 13 13 25 c8 99 20 22 57 69 |StatW%...%.. "Wi| 00023710 6d 70 5f 43 72 65 61 74 65 49 63 6f 6e 22 2c 2c |mp_CreateIcon",,| 00023720 53 63 72 61 70 42 6c 6b 25 2b 34 0d 13 14 05 e1 |ScrapBlk%+4.....| 00023730 0d 13 15 04 0d 13 16 3b f4 20 2d 2d 2d 20 63 6f |.......;. --- co| 00023740 6e 76 65 72 74 20 61 20 6e 75 6d 62 65 72 20 74 |nvert a number t| 00023750 6f 20 61 20 73 74 72 69 6e 67 20 28 68 65 78 20 |o a string (hex | 00023760 6f 72 20 64 65 63 69 6d 61 6c 29 20 2d 2d 2d 0d |or decimal) ---.| 00023770 13 17 1f dd 20 a4 73 74 61 74 5f 6e 75 6d 32 73 |.... .stat_num2s| 00023780 74 72 28 6e 75 6d 25 2c 74 79 70 65 25 29 0d 13 |tr(num%,type%)..| 00023790 18 08 ea 20 73 24 0d 13 19 0f e7 20 74 79 70 65 |... s$..... type| 000237a0 25 3d 31 20 8c 0d 13 1a 10 20 20 73 24 3d c3 28 |%=1 ..... s$=.(| 000237b0 6e 75 6d 25 29 0d 13 1b 05 cc 0d 13 1c 15 20 20 |num%)......... | 000237c0 73 24 3d 22 26 22 2b c3 7e 28 6e 75 6d 25 29 0d |s$="&"+.~(num%).| 000237d0 13 1d 05 cd 0d 13 1e 07 3d 73 24 0d 13 1f 04 0d |........=s$.....| 000237e0 13 20 2e f4 20 2a 2a 2a 20 70 72 6f 63 73 20 66 |. .. *** procs f| 000237f0 6f 72 20 68 61 6e 64 6c 69 6e 67 20 6f 75 74 6c |or handling outl| 00023800 69 6e 65 20 66 6f 6e 74 73 20 2a 2a 2a 0d 13 21 |ine fonts ***..!| 00023810 04 0d 13 22 17 dd 20 f2 66 6f 6e 74 5f 6c 6f 73 |...".. .font_los| 00023820 65 28 66 6f 6e 74 25 29 0d 13 23 18 46 6f 6e 74 |e(font%)..#.Font| 00023830 55 73 61 67 65 25 28 66 6f 6e 74 25 29 2d 3d 31 |Usage%(font%)-=1| 00023840 0d 13 24 1b e7 20 46 6f 6e 74 55 73 61 67 65 25 |..$.. FontUsage%| 00023850 28 66 6f 6e 74 25 29 3d 30 20 8c 0d 13 25 1e 20 |(font%)=0 ...%. | 00023860 20 c8 99 20 22 46 6f 6e 74 5f 4c 6f 73 65 46 6f | .. "Font_LoseFo| 00023870 6e 74 22 2c 66 6f 6e 74 25 0d 13 26 05 cd 0d 13 |nt",font%..&....| 00023880 27 05 e1 0d 13 28 04 0d 13 29 13 dd 20 f2 66 6f |'....(...).. .fo| 00023890 6e 74 5f 6c 6f 73 65 61 6c 6c 0d 13 2a 0b ea 20 |nt_loseall..*.. | 000238a0 69 25 2c 6a 25 0d 13 2b 10 e3 20 69 25 3d 30 20 |i%,j%..+.. i%=0 | 000238b0 b8 20 32 35 35 0d 13 2c 1b 20 20 e7 20 46 6f 6e |. 255..,. . Fon| 000238c0 74 55 73 61 67 65 25 28 69 25 29 3c 3e 30 20 8c |tUsage%(i%)<>0 .| 000238d0 0d 13 2d 1d 20 20 20 20 c8 99 20 22 46 6f 6e 74 |..-. .. "Font| 000238e0 5f 4c 6f 73 65 46 6f 6e 74 22 2c 69 25 0d 13 2e |_LoseFont",i%...| 000238f0 07 20 20 cd 0d 13 2f 08 ed 20 69 25 0d 13 30 05 |. .../.. i%..0.| 00023900 e1 0d 13 31 04 0d 13 32 37 f4 20 2d 2d 2d 20 67 |...1...27. --- g| 00023910 65 74 20 66 6f 6e 74 20 6e 61 6d 65 20 61 6e 64 |et font name and| 00023920 20 73 69 7a 65 20 66 72 6f 6d 20 61 20 66 6f 6e | size from a fon| 00023930 74 20 68 61 6e 64 6c 65 20 2d 2d 2d 0d 13 33 35 |t handle ---..35| 00023940 dd 20 f2 66 6f 6e 74 5f 67 65 74 69 6e 66 6f 28 |. .font_getinfo(| 00023950 66 68 61 6e 64 6c 65 25 2c f8 20 6e 61 6d 65 24 |fhandle%,. name$| 00023960 2c f8 20 78 73 69 7a 65 2c f8 20 79 73 69 7a 65 |,. xsize,. ysize| 00023970 29 0d 13 34 17 ea 20 78 73 69 7a 65 31 36 25 2c |)..4.. xsize16%,| 00023980 79 73 69 7a 65 31 36 25 0d 13 35 3f c8 99 20 22 |ysize16%..5?.. "| 00023990 46 6f 6e 74 5f 52 65 61 64 44 65 66 6e 22 2c 66 |Font_ReadDefn",f| 000239a0 68 61 6e 64 6c 65 25 2c 46 6f 6e 74 44 61 74 61 |handle%,FontData| 000239b0 25 20 b8 20 2c 2c 78 73 69 7a 65 31 36 25 2c 79 |% . ,,xsize16%,y| 000239c0 73 69 7a 65 31 36 25 0d 13 36 16 6e 61 6d 65 24 |size16%..6.name$| 000239d0 3d 24 28 46 6f 6e 74 44 61 74 61 25 29 0d 13 37 |=$(FontData%)..7| 000239e0 15 78 73 69 7a 65 3d 78 73 69 7a 65 31 36 25 2f |.xsize=xsize16%/| 000239f0 31 36 0d 13 38 15 79 73 69 7a 65 3d 79 73 69 7a |16..8.ysize=ysiz| 00023a00 65 31 36 25 2f 31 36 0d 13 39 05 e1 0d 13 3a 04 |e16%/16..9....:.| 00023a10 0d 13 3b 38 f4 20 2a 2a 2a 20 70 72 6f 63 73 20 |..;8. *** procs | 00023a20 66 6f 72 20 63 72 65 61 74 69 6e 67 20 69 63 6f |for creating ico| 00023a30 6e 73 20 69 6e 20 75 73 65 72 20 74 65 6d 70 6c |ns in user templ| 00023a40 61 74 65 73 20 2a 2a 2a 0d 13 3c 04 0d 13 3d 2d |ates ***..<...=-| 00023a50 f4 20 2d 2d 2d 20 62 75 69 6c 64 20 74 68 65 20 |. --- build the | 00023a60 27 43 72 65 61 74 65 20 69 63 6f 6e 27 20 73 75 |'Create icon' su| 00023a70 62 6d 65 6e 75 20 2d 2d 2d 0d 13 3e 17 dd 20 f2 |bmenu ---..>.. .| 00023a80 73 74 61 6e 64 61 72 64 69 63 6f 6e 6d 65 6e 75 |standardiconmenu| 00023a90 0d 13 3f 08 ea 20 69 25 0d 13 40 27 f4 20 67 65 |..?.. i%..@'. ge| 00023aa0 74 20 6c 69 73 74 20 6f 66 20 22 6e 61 6d 65 22 |t list of "name"| 00023ab0 20 69 63 6f 6e 73 20 28 45 53 47 3d 33 31 29 0d | icons (ESG=31).| 00023ac0 13 41 37 c8 99 20 22 57 69 6d 70 5f 57 68 69 63 |.A7.. "Wimp_Whic| 00023ad0 68 49 63 6f 6e 22 2c 53 74 64 49 63 6f 6e 57 25 |hIcon",StdIconW%| 00023ae0 2c 53 65 6c 42 6c 6b 25 2c 33 31 3c 3c 31 36 2c |,SelBlk%,31<<16,| 00023af0 33 31 3c 3c 31 36 0d 13 42 11 4e 72 53 74 64 49 |31<<16..B.NrStdI| 00023b00 63 6f 6e 73 25 3d 30 0d 13 43 22 c8 95 20 53 65 |cons%=0..C".. Se| 00023b10 6c 42 6c 6b 25 21 28 34 2a 4e 72 53 74 64 49 63 |lBlk%!(4*NrStdIc| 00023b20 6f 6e 73 25 29 3c 3e 2d 31 0d 13 44 14 20 20 4e |ons%)<>-1..D. N| 00023b30 72 53 74 64 49 63 6f 6e 73 25 2b 3d 31 0d 13 45 |rStdIcons%+=1..E| 00023b40 05 ce 0d 13 46 15 e7 20 4e 72 53 74 64 49 63 6f |....F.. NrStdIco| 00023b50 6e 73 25 3d 30 20 8c 0d 13 47 15 20 20 53 74 64 |ns%=0 ...G. Std| 00023b60 49 63 6f 6e 4d 65 6e 75 25 3d 2d 31 0d 13 48 05 |IconMenu%=-1..H.| 00023b70 cc 0d 13 49 35 20 20 c8 99 20 22 4d 65 6e 75 55 |...I5 .. "MenuU| 00023b80 74 69 6c 5f 4e 65 77 22 2c 2c 22 43 72 65 61 74 |til_New",,"Creat| 00023b90 65 20 69 63 6f 6e 22 20 b8 20 53 74 64 49 63 6f |e icon" . StdIco| 00023ba0 6e 4d 65 6e 75 25 0d 13 4a 1b 20 20 53 63 72 61 |nMenu%..J. Scra| 00023bb0 70 42 6c 6b 25 21 30 3d 53 74 64 49 63 6f 6e 57 |pBlk%!0=StdIconW| 00023bc0 25 0d 13 4b 1c 20 20 e3 20 69 25 3d 30 20 b8 20 |%..K. . i%=0 . | 00023bd0 4e 72 53 74 64 49 63 6f 6e 73 25 2d 31 0d 13 4c |NrStdIcons%-1..L| 00023be0 22 20 20 20 20 53 63 72 61 70 42 6c 6b 25 21 34 |" ScrapBlk%!4| 00023bf0 3d 53 65 6c 42 6c 6b 25 21 28 34 2a 69 25 29 0d |=SelBlk%!(4*i%).| 00023c00 13 4d 29 20 20 20 20 c8 99 20 22 57 69 6d 70 5f |.M) .. "Wimp_| 00023c10 47 65 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c 53 |GetIconState",,S| 00023c20 63 72 61 70 42 6c 6b 25 0d 13 4e 27 20 20 20 20 |crapBlk%..N' | 00023c30 c8 99 20 22 4d 65 6e 75 55 74 69 6c 5f 41 64 64 |.. "MenuUtil_Add| 00023c40 22 2c 2c 53 63 72 61 70 42 6c 6b 25 21 32 38 0d |",,ScrapBlk%!28.| 00023c50 13 4f 0a 20 20 ed 20 69 25 0d 13 50 05 cd 0d 13 |.O. . i%..P....| 00023c60 51 05 e1 0d 13 52 04 0d 13 53 34 dd 20 f2 63 72 |Q....R...S4. .cr| 00023c70 65 61 74 65 73 74 61 6e 64 61 72 64 69 63 6f 6e |eatestandardicon| 00023c80 28 6e 61 6d 65 24 2c 77 69 6e 64 6f 77 25 2c 78 |(name$,window%,x| 00023c90 70 6f 73 25 2c 79 70 6f 73 25 29 0d 13 54 21 ea |pos%,ypos%)..T!.| 00023ca0 20 69 25 2c 6a 25 2c 6c 61 73 74 25 2c 64 78 25 | i%,j%,last%,dx%| 00023cb0 2c 64 79 25 2c 68 61 6e 64 6c 65 25 0d 13 55 31 |,dy%,handle%..U1| 00023cc0 f4 20 73 63 61 6e 20 22 6e 61 6d 65 22 20 69 63 |. scan "name" ic| 00023cd0 6f 6e 73 20 74 6f 20 63 68 65 63 6b 20 77 68 69 |ons to check whi| 00023ce0 63 68 20 77 61 73 20 63 68 6f 73 65 6e 0d 13 56 |ch was chosen..V| 00023cf0 37 c8 99 20 22 57 69 6d 70 5f 57 68 69 63 68 49 |7.. "Wimp_WhichI| 00023d00 63 6f 6e 22 2c 53 74 64 49 63 6f 6e 57 25 2c 53 |con",StdIconW%,S| 00023d10 65 6c 42 6c 6b 25 2c 33 31 3c 3c 31 36 2c 33 31 |elBlk%,31<<16,31| 00023d20 3c 3c 31 36 0d 13 57 19 53 63 72 61 70 42 6c 6b |<<16..W.ScrapBlk| 00023d30 25 21 30 3d 53 74 64 49 63 6f 6e 57 25 0d 13 58 |%!0=StdIconW%..X| 00023d40 08 69 25 3d 30 0d 13 59 05 f5 0d 13 5a 17 20 20 |.i%=0..Y....Z. | 00023d50 6a 25 3d 53 65 6c 42 6c 6b 25 21 28 34 2a 69 25 |j%=SelBlk%!(4*i%| 00023d60 29 0d 13 5b 14 20 20 53 63 72 61 70 42 6c 6b 25 |)..[. ScrapBlk%| 00023d70 21 34 3d 6a 25 0d 13 5c 27 20 20 c8 99 20 22 57 |!4=j%..\' .. "W| 00023d80 69 6d 70 5f 47 65 74 49 63 6f 6e 53 74 61 74 65 |imp_GetIconState| 00023d90 22 2c 2c 53 63 72 61 70 42 6c 6b 25 0d 13 5d 0b |",,ScrapBlk%..].| 00023da0 20 20 69 25 2b 3d 31 0d 13 5e 33 fd 20 28 24 28 | i%+=1..^3. ($(| 00023db0 53 63 72 61 70 42 6c 6b 25 21 32 38 29 3d 6e 61 |ScrapBlk%!28)=na| 00023dc0 6d 65 24 29 20 84 20 28 53 65 6c 42 6c 6b 25 21 |me$) . (SelBlk%!| 00023dd0 28 34 2a 69 25 29 3d 2d 31 29 0d 13 5f 2b f4 20 |(4*i%)=-1).._+. | 00023de0 63 6f 70 79 20 61 6c 6c 20 69 63 6f 6e 73 20 75 |copy all icons u| 00023df0 6e 74 69 6c 20 6e 65 78 74 20 22 6e 61 6d 65 22 |ntil next "name"| 00023e00 20 69 63 6f 6e 0d 13 60 19 e7 20 53 65 6c 42 6c | icon..`.. SelBl| 00023e10 6b 25 21 28 34 2a 69 25 29 3d 2d 31 20 8c 0d 13 |k%!(4*i%)=-1 ...| 00023e20 61 18 20 20 6c 61 73 74 25 3d 4c 61 73 74 53 74 |a. last%=LastSt| 00023e30 64 49 63 6f 6e 25 0d 13 62 05 cc 0d 13 63 1c 20 |dIcon%..b....c. | 00023e40 20 6c 61 73 74 25 3d 53 65 6c 42 6c 6b 25 21 28 | last%=SelBlk%!(| 00023e50 34 2a 69 25 29 2d 31 0d 13 64 05 cd 0d 13 65 09 |4*i%)-1..d....e.| 00023e60 6a 25 2b 3d 31 0d 13 66 19 53 63 72 61 70 42 6c |j%+=1..f.ScrapBl| 00023e70 6b 25 21 30 3d 53 74 64 49 63 6f 6e 57 25 0d 13 |k%!0=StdIconW%..| 00023e80 67 12 53 63 72 61 70 42 6c 6b 25 21 34 3d 6a 25 |g.ScrapBlk%!4=j%| 00023e90 0d 13 68 25 c8 99 20 22 57 69 6d 70 5f 47 65 74 |..h%.. "Wimp_Get| 00023ea0 49 63 6f 6e 53 74 61 74 65 22 2c 2c 53 63 72 61 |IconState",,Scra| 00023eb0 70 42 6c 6b 25 0d 13 69 1a 64 78 25 3d 78 70 6f |pBlk%..i.dx%=xpo| 00023ec0 73 25 2d 53 63 72 61 70 42 6c 6b 25 21 38 20 0d |s%-ScrapBlk%!8 .| 00023ed0 13 6a 1a 64 79 25 3d 79 70 6f 73 25 2d 53 63 72 |.j.dy%=ypos%-Scr| 00023ee0 61 70 42 6c 6b 25 21 31 32 0d 13 6b 10 c8 95 20 |apBlk%!12..k... | 00023ef0 6a 25 3c 3d 6c 61 73 74 25 0d 13 6c 1b 20 20 53 |j%<=last%..l. S| 00023f00 63 72 61 70 42 6c 6b 25 21 30 3d 53 74 64 49 63 |crapBlk%!0=StdIc| 00023f10 6f 6e 57 25 0d 13 6d 14 20 20 53 63 72 61 70 42 |onW%..m. ScrapB| 00023f20 6c 6b 25 21 34 3d 6a 25 0d 13 6e 27 20 20 c8 99 |lk%!4=j%..n' ..| 00023f30 20 22 57 69 6d 70 5f 47 65 74 49 63 6f 6e 53 74 | "Wimp_GetIconSt| 00023f40 61 74 65 22 2c 2c 53 63 72 61 70 42 6c 6b 25 0d |ate",,ScrapBlk%.| 00023f50 13 6f 19 20 20 53 63 72 61 70 42 6c 6b 25 21 34 |.o. ScrapBlk%!4| 00023f60 3d 77 69 6e 64 6f 77 25 0d 13 70 21 20 20 53 63 |=window%..p! Sc| 00023f70 72 61 70 42 6c 6b 25 21 38 3d 53 63 72 61 70 42 |rapBlk%!8=ScrapB| 00023f80 6c 6b 25 21 38 2b 64 78 25 0d 13 71 23 20 20 53 |lk%!8+dx%..q# S| 00023f90 63 72 61 70 42 6c 6b 25 21 31 32 3d 53 63 72 61 |crapBlk%!12=Scra| 00023fa0 70 42 6c 6b 25 21 31 32 2b 64 79 25 0d 13 72 23 |pBlk%!12+dy%..r#| 00023fb0 20 20 53 63 72 61 70 42 6c 6b 25 21 31 36 3d 53 | ScrapBlk%!16=S| 00023fc0 63 72 61 70 42 6c 6b 25 21 31 36 2b 64 78 25 0d |crapBlk%!16+dx%.| 00023fd0 13 73 23 20 20 53 63 72 61 70 42 6c 6b 25 21 32 |.s# ScrapBlk%!2| 00023fe0 30 3d 53 63 72 61 70 42 6c 6b 25 21 32 30 2b 64 |0=ScrapBlk%!20+d| 00023ff0 79 25 0d 13 74 2d 20 20 f2 69 63 6f 6e 72 65 61 |y%..t- .iconrea| 00024000 6c 6c 6f 63 28 53 63 72 61 70 42 6c 6b 25 2b 32 |lloc(ScrapBlk%+2| 00024010 34 2c 53 63 72 61 70 42 6c 6b 25 2b 32 38 29 0d |4,ScrapBlk%+28).| 00024020 13 75 26 20 20 68 61 6e 64 6c 65 25 3d a4 63 72 |.u& handle%=.cr| 00024030 65 61 74 65 69 63 6f 6e 28 53 63 72 61 70 42 6c |eateicon(ScrapBl| 00024040 6b 25 2b 34 29 0d 13 76 0b 20 20 6a 25 2b 3d 31 |k%+4)..v. j%+=1| 00024050 0d 13 77 05 ce 0d 13 78 05 e1 0d 13 79 04 0d 13 |..w....x....y...| 00024060 7a 49 f4 20 2a 2a 2a 20 70 72 6f 63 73 20 66 6f |zI. *** procs fo| 00024070 72 20 63 61 6c 63 75 6c 61 74 69 6e 67 20 26 20 |r calculating & | 00024080 73 65 74 74 69 6e 67 20 74 68 65 20 6d 69 6e 69 |setting the mini| 00024090 6d 75 6d 20 73 69 7a 65 20 6f 66 20 61 6e 20 69 |mum size of an i| 000240a0 63 6f 6e 20 2a 2a 2a 0d 13 7b 04 0d 13 7c 2d dd |con ***..{...|-.| 000240b0 20 f2 6d 69 6e 69 6d 69 7a 65 69 63 6f 6e 73 65 | .minimizeiconse| 000240c0 6c 28 77 69 6e 64 6f 77 25 2c 64 65 66 61 75 6c |l(window%,defaul| 000240d0 74 25 2c 64 69 6d 25 29 0d 13 7d 1e ea 20 69 25 |t%,dim%)..}.. i%| 000240e0 2c 78 73 69 7a 65 25 2c 79 73 69 7a 65 25 2c 68 |,xsize%,ysize%,h| 000240f0 61 6e 64 6c 65 25 0d 13 7e 15 f2 73 65 6c 5f 67 |andle%..~..sel_g| 00024100 65 74 28 77 69 6e 64 6f 77 25 29 0d 13 7f 27 e7 |et(window%)...'.| 00024110 20 28 4e 72 53 65 6c 65 63 74 65 64 25 3d 30 29 | (NrSelected%=0)| 00024120 20 80 20 28 64 65 66 61 75 6c 74 25 3e 3d 30 29 | . (default%>=0)| 00024130 20 8c 0d 13 80 18 20 20 53 65 6c 42 6c 6b 25 21 | ..... SelBlk%!| 00024140 30 3d 64 65 66 61 75 6c 74 25 0d 13 81 13 20 20 |0=default%.... | 00024150 4e 72 53 65 6c 65 63 74 65 64 25 3d 31 0d 13 82 |NrSelected%=1...| 00024160 05 cd 0d 13 83 15 e7 20 4e 72 53 65 6c 65 63 74 |....... NrSelect| 00024170 65 64 25 3e 30 20 8c 0d 13 84 1c 20 20 e3 20 69 |ed%>0 ..... . i| 00024180 25 3d 30 20 b8 20 4e 72 53 65 6c 65 63 74 65 64 |%=0 . NrSelected| 00024190 25 2d 31 0d 13 85 3a 20 20 20 20 f2 6d 69 6e 69 |%-1...: .mini| 000241a0 63 6f 6e 73 69 7a 65 28 77 69 6e 64 6f 77 25 2c |consize(window%,| 000241b0 53 65 6c 42 6c 6b 25 21 28 34 2a 69 25 29 2c 78 |SelBlk%!(4*i%),x| 000241c0 73 69 7a 65 25 2c 79 73 69 7a 65 25 29 0d 13 86 |size%,ysize%)...| 000241d0 1a 20 20 20 20 49 63 6f 6e 42 6c 6b 25 21 30 3d |. IconBlk%!0=| 000241e0 77 69 6e 64 6f 77 25 0d 13 87 21 20 20 20 20 49 |window%...! I| 000241f0 63 6f 6e 42 6c 6b 25 21 34 3d 53 65 6c 42 6c 6b |conBlk%!4=SelBlk| 00024200 25 21 28 34 2a 69 25 29 0d 13 88 28 20 20 20 20 |%!(4*i%)...( | 00024210 c8 99 20 22 57 69 6d 70 5f 47 65 74 49 63 6f 6e |.. "Wimp_GetIcon| 00024220 53 74 61 74 65 22 2c 2c 49 63 6f 6e 42 6c 6b 25 |State",,IconBlk%| 00024230 0d 13 89 31 20 20 20 20 e7 20 64 69 6d 25 3c 3e |...1 . dim%<>| 00024240 32 20 8c 20 49 63 6f 6e 42 6c 6b 25 21 31 36 3d |2 . IconBlk%!16=| 00024250 49 63 6f 6e 42 6c 6b 25 21 38 2b 78 73 69 7a 65 |IconBlk%!8+xsize| 00024260 25 0d 13 8a 32 20 20 20 20 e7 20 64 69 6d 25 3c |%...2 . dim%<| 00024270 3e 31 20 8c 20 49 63 6f 6e 42 6c 6b 25 21 32 30 |>1 . IconBlk%!20| 00024280 3d 49 63 6f 6e 42 6c 6b 25 21 31 32 2b 79 73 69 |=IconBlk%!12+ysi| 00024290 7a 65 25 0d 13 8b 3e 20 20 20 20 68 61 6e 64 6c |ze%...> handl| 000242a0 65 25 3d a4 72 65 64 65 66 69 6e 65 69 63 6f 6e |e%=.redefineicon| 000242b0 28 77 69 6e 64 6f 77 25 2c 53 65 6c 42 6c 6b 25 |(window%,SelBlk%| 000242c0 21 28 34 2a 69 25 29 2c 49 63 6f 6e 42 6c 6b 25 |!(4*i%),IconBlk%| 000242d0 29 0d 13 8c 0a 20 20 ed 20 69 25 0d 13 8d 05 cd |).... . i%.....| 000242e0 0d 13 8e 05 e1 0d 13 8f 04 0d 13 90 31 dd 20 f2 |............1. .| 000242f0 6d 69 6e 69 63 6f 6e 73 69 7a 65 28 77 69 6e 64 |miniconsize(wind| 00024300 6f 77 25 2c 69 63 6f 6e 25 2c f8 20 6d 69 6e 78 |ow%,icon%,. minx| 00024310 25 2c f8 20 6d 69 6e 79 25 29 0d 13 91 2f ea 20 |%,. miny%).../. | 00024320 73 70 61 72 65 61 25 2c 66 6c 61 67 73 25 2c 64 |sparea%,flags%,d| 00024330 61 74 61 25 2c 74 65 78 74 25 2c 73 70 72 69 74 |ata%,text%,sprit| 00024340 65 25 2c 69 6e 64 69 72 25 0d 13 92 33 ea 20 73 |e%,indir%...3. s| 00024350 6d 69 6e 78 25 2c 73 6d 69 6e 79 25 2c 74 6d 69 |minx%,sminy%,tmi| 00024360 6e 78 25 2c 74 6d 69 6e 79 25 2c 70 25 2c 76 61 |nx%,tminy%,p%,va| 00024370 6c 24 2c 73 6e 61 6d 65 24 2c 74 24 0d 13 93 1d |l$,sname$,t$....| 00024380 ea 20 78 6d 69 6e 25 2c 79 6d 69 6e 25 2c 78 6d |. xmin%,ymin%,xm| 00024390 61 78 25 2c 79 6d 61 78 25 0d 13 94 1a ea 20 6c |ax%,ymax%..... l| 000243a0 24 2c 6c 73 70 61 63 65 25 2c 6c 69 6e 65 73 25 |$,lspace%,lines%| 000243b0 2c 62 24 0d 13 95 15 57 69 6e 42 6c 6b 25 21 30 |,b$....WinBlk%!0| 000243c0 3d 77 69 6e 64 6f 77 25 0d 13 96 24 c8 99 20 22 |=window%...$.. "| 000243d0 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 49 6e |Wimp_GetWindowIn| 000243e0 66 6f 22 2c 2c 57 69 6e 42 6c 6b 25 0d 13 97 16 |fo",,WinBlk%....| 000243f0 73 70 61 72 65 61 25 3d 57 69 6e 42 6c 6b 25 21 |sparea%=WinBlk%!| 00024400 36 38 0d 13 98 17 53 63 72 61 70 42 6c 6b 25 21 |68....ScrapBlk%!| 00024410 30 3d 77 69 6e 64 6f 77 25 0d 13 99 15 53 63 72 |0=window%....Scr| 00024420 61 70 42 6c 6b 25 21 34 3d 69 63 6f 6e 25 0d 13 |apBlk%!4=icon%..| 00024430 9a 25 c8 99 20 22 57 69 6d 70 5f 47 65 74 49 63 |.%.. "Wimp_GetIc| 00024440 6f 6e 53 74 61 74 65 22 2c 2c 53 63 72 61 70 42 |onState",,ScrapB| 00024450 6c 6b 25 0d 13 9b 17 66 6c 61 67 73 25 3d 53 63 |lk%....flags%=Sc| 00024460 72 61 70 42 6c 6b 25 21 32 34 0d 13 9c 16 64 61 |rapBlk%!24....da| 00024470 74 61 25 3d 53 63 72 61 70 42 6c 6b 25 2b 32 38 |ta%=ScrapBlk%+28| 00024480 0d 13 9d 18 74 65 78 74 25 3d 28 66 6c 61 67 73 |....text%=(flags| 00024490 25 20 80 20 31 29 3e 30 0d 13 9e 1a 73 70 72 69 |% . 1)>0....spri| 000244a0 74 65 25 3d 28 66 6c 61 67 73 25 20 80 20 32 29 |te%=(flags% . 2)| 000244b0 3e 30 0d 13 9f 1c 69 6e 64 69 72 25 3d 28 66 6c |>0....indir%=(fl| 000244c0 61 67 73 25 20 80 20 26 31 30 30 29 3e 30 0d 13 |ags% . &100)>0..| 000244d0 a0 26 e7 20 69 6e 64 69 72 25 20 80 20 74 65 78 |.&. indir% . tex| 000244e0 74 25 20 80 20 28 64 61 74 61 25 21 34 3c 3e 2d |t% . (data%!4<>-| 000244f0 31 29 20 8c 0d 13 a1 15 20 20 76 61 6c 24 3d 24 |1) ..... val$=$| 00024500 28 64 61 74 61 25 21 34 29 0d 13 a2 05 cd 0d 13 |(data%!4).......| 00024510 a3 0f e7 20 73 70 72 69 74 65 25 20 8c 0d 13 a4 |... sprite% ....| 00024520 10 20 20 e7 20 69 6e 64 69 72 25 20 8c 0d 13 a5 |. . indir% ....| 00024530 11 20 20 20 20 e7 20 74 65 78 74 25 20 8c 0d 13 |. . text% ...| 00024540 a6 34 20 20 20 20 20 20 f4 20 73 65 61 72 63 68 |.4 . search| 00024550 20 76 61 6c 69 64 61 74 69 6f 6e 20 73 74 72 69 | validation stri| 00024560 6e 67 20 66 6f 72 20 73 70 72 69 74 65 20 6e 61 |ng for sprite na| 00024570 6d 65 0d 13 a7 2d 20 20 20 20 20 20 73 6e 61 6d |me...- snam| 00024580 65 24 3d a4 76 61 6c 69 64 61 74 69 6f 6e 63 6f |e$=.validationco| 00024590 6d 6d 61 6e 64 28 76 61 6c 24 2c 22 53 22 29 0d |mmand(val$,"S").| 000245a0 13 a8 19 20 20 20 20 20 20 70 25 3d a7 73 6e 61 |... p%=.sna| 000245b0 6d 65 24 2c 22 2c 22 29 0d 13 a9 12 20 20 20 20 |me$,",").... | 000245c0 20 20 e7 20 70 25 3e 30 20 8c 0d 13 aa 22 20 20 | . p%>0 ...." | 000245d0 20 20 20 20 20 20 73 6e 61 6d 65 24 3d c1 73 6e | sname$=.sn| 000245e0 61 6d 65 24 2c 32 2c 70 25 2d 32 29 0d 13 ab 0b |ame$,2,p%-2)....| 000245f0 20 20 20 20 20 20 cc 0d 13 ac 1d 20 20 20 20 20 | ..... | 00024600 20 20 20 73 6e 61 6d 65 24 3d c1 73 6e 61 6d 65 | sname$=.sname| 00024610 24 2c 32 29 0d 13 ad 0b 20 20 20 20 20 20 cd 0d |$,2).... ..| 00024620 13 ae 09 20 20 20 20 cc 0d 13 af 1b 20 20 20 20 |... ..... | 00024630 20 20 73 6e 61 6d 65 24 3d 24 28 64 61 74 61 25 | sname$=$(data%| 00024640 21 30 29 0d 13 b0 19 20 20 20 20 20 20 73 70 61 |!0).... spa| 00024650 72 65 61 25 3d 64 61 74 61 25 21 34 0d 13 b1 09 |rea%=data%!4....| 00024660 20 20 20 20 cd 0d 13 b2 07 20 20 cc 0d 13 b3 17 | ..... .....| 00024670 20 20 20 20 73 6e 61 6d 65 24 3d 24 28 64 61 74 | sname$=$(dat| 00024680 61 25 29 0d 13 b4 07 20 20 cd 0d 13 b5 3f 20 20 |a%).... ....? | 00024690 e7 20 a9 28 73 6e 61 6d 65 24 29 3e 30 20 8c 20 |. .(sname$)>0 . | 000246a0 f2 73 70 72 69 74 65 73 69 7a 65 28 73 6e 61 6d |.spritesize(snam| 000246b0 65 24 2c 73 70 61 72 65 61 25 2c 73 6d 69 6e 78 |e$,sparea%,sminx| 000246c0 25 2c 73 6d 69 6e 79 25 29 0d 13 b6 05 cd 0d 13 |%,sminy%).......| 000246d0 b7 0d e7 20 74 65 78 74 25 20 8c 0d 13 b8 10 20 |... text% ..... | 000246e0 20 e7 20 69 6e 64 69 72 25 20 8c 0d 13 b9 15 20 | . indir% ..... | 000246f0 20 20 20 74 24 3d 24 28 64 61 74 61 25 21 30 29 | t$=$(data%!0)| 00024700 0d 13 ba 07 20 20 cc 0d 13 bb 13 20 20 20 20 74 |.... ..... t| 00024710 24 3d 24 28 64 61 74 61 25 29 0d 13 bc 07 20 20 |$=$(data%).... | 00024720 cd 0d 13 bd 19 20 20 e7 20 66 6c 61 67 73 25 20 |..... . flags% | 00024730 80 20 28 31 3c 3c 36 29 20 8c 0d 13 be 35 20 20 |. (1<<6) ....5 | 00024740 20 20 f4 20 63 61 6c 63 20 73 69 7a 65 20 6f 66 | . calc size of| 00024750 20 73 74 72 69 6e 67 20 70 72 69 6e 74 65 64 20 | string printed | 00024760 61 73 20 6f 75 74 6c 69 6e 65 20 66 6f 6e 74 0d |as outline font.| 00024770 13 bf 26 20 20 20 20 c8 99 20 22 46 6f 6e 74 5f |..& .. "Font_| 00024780 53 65 74 46 6f 6e 74 22 2c 28 66 6c 61 67 73 25 |SetFont",(flags%| 00024790 3e 3e 32 34 29 0d 13 c0 3b 20 20 20 20 c8 99 20 |>>24)...; .. | 000247a0 22 46 6f 6e 74 5f 53 74 72 69 6e 67 42 42 6f 78 |"Font_StringBBox| 000247b0 22 2c 2c 74 24 20 b8 20 2c 78 6d 69 6e 25 2c 79 |",,t$ . ,xmin%,y| 000247c0 6d 69 6e 25 2c 78 6d 61 78 25 2c 79 6d 61 78 25 |min%,xmax%,ymax%| 000247d0 0d 13 c1 47 20 20 20 20 c8 99 20 22 46 6f 6e 74 |...G .. "Font| 000247e0 5f 43 6f 6e 76 65 72 74 74 6f 4f 53 22 2c 2c 78 |_ConverttoOS",,x| 000247f0 6d 61 78 25 2d 78 6d 69 6e 25 2c 79 6d 61 78 25 |max%-xmin%,ymax%| 00024800 2d 79 6d 69 6e 25 20 b8 20 2c 74 6d 69 6e 78 25 |-ymin% . ,tminx%| 00024810 2c 74 6d 69 6e 79 25 0d 13 c2 1c 20 20 20 20 74 |,tminy%.... t| 00024820 6d 69 6e 78 25 2b 3d 32 2a 50 69 78 54 6f 4f 53 |minx%+=2*PixToOS| 00024830 5f 58 25 0d 13 c3 1c 20 20 20 20 74 6d 69 6e 79 |_X%.... tminy| 00024840 25 2b 3d 32 2a 50 69 78 54 6f 4f 53 5f 59 25 0d |%+=2*PixToOS_Y%.| 00024850 13 c4 07 20 20 cc 0d 13 c5 29 20 20 20 20 74 6d |... ....) tm| 00024860 69 6e 78 25 3d 31 36 2a a9 28 74 24 29 2b 34 20 |inx%=16*.(t$)+4 | 00024870 3a 20 f4 20 73 79 73 74 65 6d 20 66 6f 6e 74 0d |: . system font.| 00024880 13 c6 11 20 20 20 20 74 6d 69 6e 79 25 3d 33 32 |... tminy%=32| 00024890 0d 13 c7 07 20 20 cd 0d 13 c8 25 20 20 6c 24 3d |.... ....% l$=| 000248a0 a4 76 61 6c 69 64 61 74 69 6f 6e 63 6f 6d 6d 61 |.validationcomma| 000248b0 6e 64 28 76 61 6c 24 2c 22 4c 22 29 0d 13 c9 11 |nd(val$,"L")....| 000248c0 20 20 e7 20 a9 28 6c 24 29 3e 30 20 8c 0d 13 ca | . .(l$)>0 ....| 000248d0 35 20 20 20 20 f4 20 6d 75 6c 74 69 2d 6c 69 6e |5 . multi-lin| 000248e0 65 20 74 65 78 74 20 2d 20 63 61 6c 63 20 59 20 |e text - calc Y | 000248f0 73 69 7a 65 2c 20 58 20 73 69 7a 65 20 66 69 78 |size, X size fix| 00024900 65 64 0d 13 cb 19 20 20 20 20 6c 73 70 61 63 65 |ed.... lspace| 00024910 25 3d bb 28 c1 6c 24 2c 32 29 29 0d 13 cc 20 20 |%=.(.l$,2))... | 00024920 20 20 20 e7 20 6c 73 70 61 63 65 25 3d 30 20 8c | . lspace%=0 .| 00024930 20 6c 73 70 61 63 65 25 3d 34 30 0d 13 cd 36 20 | lspace%=40...6 | 00024940 20 20 20 6c 69 6e 65 73 25 3d 28 74 6d 69 6e 78 | lines%=(tminx| 00024950 25 2d 31 29 20 81 20 28 53 63 72 61 70 42 6c 6b |%-1) . (ScrapBlk| 00024960 25 21 31 36 2d 53 63 72 61 70 42 6c 6b 25 21 38 |%!16-ScrapBlk%!8| 00024970 29 0d 13 ce 27 20 20 20 20 74 6d 69 6e 78 25 3d |)...' tminx%=| 00024980 53 63 72 61 70 42 6c 6b 25 21 31 36 2d 53 63 72 |ScrapBlk%!16-Scr| 00024990 61 70 42 6c 6b 25 21 38 0d 13 cf 21 20 20 20 20 |apBlk%!8...! | 000249a0 74 6d 69 6e 79 25 3d 6c 73 70 61 63 65 25 2a 28 |tminy%=lspace%*(| 000249b0 6c 69 6e 65 73 25 2b 31 29 0d 13 d0 07 20 20 cd |lines%+1).... .| 000249c0 0d 13 d1 11 20 20 e7 20 a9 28 74 24 29 3d 30 20 |.... . .(t$)=0 | 000249d0 8c 0d 13 d2 4e 20 20 20 20 74 6d 69 6e 78 25 3d |....N tminx%=| 000249e0 53 63 72 61 70 42 6c 6b 25 21 31 36 2d 53 63 72 |ScrapBlk%!16-Scr| 000249f0 61 70 42 6c 6b 25 21 38 20 3a 20 f4 20 65 6d 70 |apBlk%!8 : . emp| 00024a00 74 79 20 73 74 72 69 6e 67 20 2d 20 64 6f 6e 27 |ty string - don'| 00024a10 74 20 63 68 61 6e 67 65 20 58 20 73 69 7a 65 0d |t change X size.| 00024a20 13 d3 07 20 20 cd 0d 13 d4 05 cd 0d 13 d5 17 e7 |... ...........| 00024a30 20 66 6c 61 67 73 25 20 80 20 28 31 3c 3c 34 29 | flags% . (1<<4)| 00024a40 20 8c 0d 13 d6 19 20 20 6d 69 6e 78 25 3d 73 6d | ..... minx%=sm| 00024a50 69 6e 78 25 2b 74 6d 69 6e 78 25 0d 13 d7 22 20 |inx%+tminx%..." | 00024a60 20 e7 20 74 65 78 74 25 20 80 20 73 70 72 69 74 | . text% . sprit| 00024a70 65 25 20 8c 20 6d 69 6e 78 25 2b 3d 36 0d 13 d8 |e% . minx%+=6...| 00024a80 33 20 20 e7 20 73 6d 69 6e 79 25 3e 74 6d 69 6e |3 . sminy%>tmin| 00024a90 79 25 20 8c 20 6d 69 6e 79 25 3d 73 6d 69 6e 79 |y% . miny%=sminy| 00024aa0 25 20 8b 20 6d 69 6e 79 25 3d 74 6d 69 6e 79 25 |% . miny%=tminy%| 00024ab0 0d 13 d9 05 cc 0d 13 da 33 20 20 e7 20 73 6d 69 |........3 . smi| 00024ac0 6e 78 25 3e 74 6d 69 6e 78 25 20 8c 20 6d 69 6e |nx%>tminx% . min| 00024ad0 78 25 3d 73 6d 69 6e 78 25 20 8b 20 6d 69 6e 78 |x%=sminx% . minx| 00024ae0 25 3d 74 6d 69 6e 78 25 0d 13 db 19 20 20 6d 69 |%=tminx%.... mi| 00024af0 6e 79 25 3d 73 6d 69 6e 79 25 2b 74 6d 69 6e 79 |ny%=sminy%+tminy| 00024b00 25 0d 13 dc 05 cd 0d 13 dd 17 e7 20 66 6c 61 67 |%.......... flag| 00024b10 73 25 20 80 20 28 31 3c 3c 32 29 20 8c 0d 13 de |s% . (1<<2) ....| 00024b20 21 20 20 f4 20 61 64 64 20 73 70 61 63 65 20 74 |! . add space t| 00024b30 61 6b 65 6e 20 62 79 20 62 6f 72 64 65 72 0d 13 |aken by border..| 00024b40 df 25 20 20 62 24 3d a4 76 61 6c 69 64 61 74 69 |.% b$=.validati| 00024b50 6f 6e 63 6f 6d 6d 61 6e 64 28 76 61 6c 24 2c 22 |oncommand(val$,"| 00024b60 52 22 29 0d 13 e0 11 20 20 e7 20 a9 28 62 24 29 |R").... . .(b$)| 00024b70 3d 30 20 8c 0d 13 e1 37 20 20 20 20 6d 69 6e 78 |=0 ....7 minx| 00024b80 25 2b 3d 31 36 20 3a 20 f4 20 6e 6f 20 62 6f 72 |%+=16 : . no bor| 00024b90 64 65 72 20 63 6f 6d 6d 61 6e 64 20 2d 20 22 66 |der command - "f| 00024ba0 6c 61 74 22 20 62 6f 72 64 65 72 0d 13 e2 11 20 |lat" border.... | 00024bb0 20 20 20 6d 69 6e 79 25 2b 3d 31 36 0d 13 e3 07 | miny%+=16....| 00024bc0 20 20 cc 0d 13 e4 26 20 20 20 20 f4 20 66 6f 75 | ....& . fou| 00024bd0 6e 64 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 33 |nd command for 3| 00024be0 2d 44 20 62 6f 72 64 65 72 0d 13 e5 16 20 20 20 |-D border.... | 00024bf0 20 c8 8e 20 bb 28 c1 62 24 2c 32 29 29 20 ca 0d | .. .(.b$,2)) ..| 00024c00 13 e6 0f 20 20 20 20 20 20 c9 20 33 2c 34 0d 13 |... . 3,4..| 00024c10 e7 15 20 20 20 20 20 20 20 20 6d 69 6e 78 25 2b |.. minx%+| 00024c20 3d 32 34 0d 13 e8 15 20 20 20 20 20 20 20 20 6d |=24.... m| 00024c30 69 6e 79 25 2b 3d 32 34 0d 13 e9 0f 20 20 20 20 |iny%+=24.... | 00024c40 20 20 c9 20 36 2c 37 0d 13 ea 15 20 20 20 20 20 | . 6,7.... | 00024c50 20 20 20 6d 69 6e 78 25 2b 3d 33 32 0d 13 eb 15 | minx%+=32....| 00024c60 20 20 20 20 20 20 20 20 6d 69 6e 79 25 2b 3d 33 | miny%+=3| 00024c70 32 0d 13 ec 0b 20 20 20 20 20 20 7f 0d 13 ed 15 |2.... .....| 00024c80 20 20 20 20 20 20 20 20 6d 69 6e 78 25 2b 3d 31 | minx%+=1| 00024c90 36 0d 13 ee 15 20 20 20 20 20 20 20 20 6d 69 6e |6.... min| 00024ca0 79 25 2b 3d 31 36 0d 13 ef 09 20 20 20 20 cb 0d |y%+=16.... ..| 00024cb0 13 f0 07 20 20 cd 0d 13 f1 05 cd 0d 13 f2 19 e7 |... ...........| 00024cc0 20 6d 69 6e 78 25 3c 31 36 20 8c 20 6d 69 6e 78 | minx%<16 . minx| 00024cd0 25 3d 31 36 0d 13 f3 19 e7 20 6d 69 6e 79 25 3c |%=16..... miny%<| 00024ce0 31 36 20 8c 20 6d 69 6e 79 25 3d 31 36 0d 13 f4 |16 . miny%=16...| 00024cf0 05 e1 0d 13 f5 04 0d 13 f6 31 f4 20 2d 2d 2d 20 |.........1. --- | 00024d00 72 65 74 75 72 6e 20 73 69 7a 65 20 6f 66 20 61 |return size of a| 00024d10 20 73 70 72 69 74 65 20 69 6e 20 4f 73 20 75 6e | sprite in Os un| 00024d20 69 74 73 20 2d 2d 2d 0d 13 f7 30 dd 20 f2 73 70 |its ---...0. .sp| 00024d30 72 69 74 65 73 69 7a 65 28 6e 61 6d 65 24 2c 61 |ritesize(name$,a| 00024d40 72 65 61 25 2c f8 20 78 73 69 7a 65 25 2c f8 20 |rea%,. xsize%,. | 00024d50 79 73 69 7a 65 25 29 0d 13 f8 1f ea 20 73 70 6d |ysize%)..... spm| 00024d60 6f 64 65 25 2c 78 70 69 78 65 6c 73 25 2c 79 70 |ode%,xpixels%,yp| 00024d70 69 78 65 6c 73 25 0d 13 f9 0f e7 20 61 72 65 61 |ixels%..... area| 00024d80 25 3d 31 20 8c 0d 13 fa 48 20 20 c8 99 20 22 58 |%=1 ....H .. "X| 00024d90 57 69 6d 70 5f 53 70 72 69 74 65 4f 70 22 2c 34 |Wimp_SpriteOp",4| 00024da0 30 2c 2c 6e 61 6d 65 24 20 b8 20 2c 2c 2c 78 70 |0,,name$ . ,,,xp| 00024db0 69 78 65 6c 73 25 2c 79 70 69 78 65 6c 73 25 2c |ixels%,ypixels%,| 00024dc0 2c 73 70 6d 6f 64 65 25 3b 66 6c 67 25 0d 13 fb |,spmode%;flg%...| 00024dd0 05 cc 0d 13 fc 4b 20 20 c8 99 20 22 4f 53 5f 53 |.....K .. "OS_S| 00024de0 70 72 69 74 65 4f 70 22 2c 32 39 36 2c 61 72 65 |priteOp",296,are| 00024df0 61 25 2c 6e 61 6d 65 24 20 b8 20 2c 2c 2c 78 70 |a%,name$ . ,,,xp| 00024e00 69 78 65 6c 73 25 2c 79 70 69 78 65 6c 73 25 2c |ixels%,ypixels%,| 00024e10 2c 73 70 6d 6f 64 65 25 3b 66 6c 67 25 0d 13 fd |,spmode%;flg%...| 00024e20 05 cd 0d 13 fe 12 e7 20 28 66 6c 67 25 20 80 20 |....... (flg% . | 00024e30 31 29 20 8c 0d 13 ff 0e 20 20 78 73 69 7a 65 25 |1) ..... xsize%| 00024e40 3d 30 0d 14 00 0e 20 20 79 73 69 7a 65 25 3d 30 |=0.... ysize%=0| 00024e50 0d 14 01 05 cc 0d 14 02 2a 20 20 78 73 69 7a 65 |........* xsize| 00024e60 25 3d 78 70 69 78 65 6c 73 25 3c 3c a4 6d 6f 64 |%=xpixels%<<.mod| 00024e70 65 76 61 72 28 73 70 6d 6f 64 65 25 2c 34 29 0d |evar(spmode%,4).| 00024e80 14 03 2a 20 20 79 73 69 7a 65 25 3d 79 70 69 78 |..* ysize%=ypix| 00024e90 65 6c 73 25 3c 3c a4 6d 6f 64 65 76 61 72 28 73 |els%<<.modevar(s| 00024ea0 70 6d 6f 64 65 25 2c 35 29 0d 14 04 05 cd 0d 14 |pmode%,5).......| 00024eb0 05 05 e1 0d 14 06 04 0d 14 07 4a f4 20 2d 2d 2d |..........J. ---| 00024ec0 20 73 65 61 72 63 68 20 76 61 6c 69 64 61 74 69 | search validati| 00024ed0 6f 6e 20 73 74 72 69 6e 67 20 66 6f 72 20 61 20 |on string for a | 00024ee0 63 65 72 74 61 69 6e 20 63 6f 6d 6d 61 6e 64 20 |certain command | 00024ef0 61 6e 64 20 72 65 74 75 72 6e 20 69 74 20 2d 2d |and return it --| 00024f00 2d 0d 14 08 21 dd 20 a4 76 61 6c 69 64 61 74 69 |-...!. .validati| 00024f10 6f 6e 63 6f 6d 6d 61 6e 64 28 76 24 2c 63 6d 64 |oncommand(v$,cmd| 00024f20 24 29 0d 14 09 12 ea 20 75 70 63 24 2c 6c 6f 63 |$)..... upc$,loc| 00024f30 24 2c 70 25 0d 14 0a 19 75 70 63 24 3d bd 28 97 |$,p%....upc$=.(.| 00024f40 28 63 6d 64 24 29 20 80 20 26 44 46 29 0d 14 0b |(cmd$) . &DF)...| 00024f50 19 6c 6f 63 24 3d bd 28 97 28 63 6d 64 24 29 20 |.loc$=.(.(cmd$) | 00024f60 84 20 26 32 30 29 0d 14 0c 32 c8 95 20 28 c0 76 |. &20)...2.. (.v| 00024f70 24 2c 31 29 3c 3e 75 70 63 24 29 20 80 20 28 c0 |$,1)<>upc$) . (.| 00024f80 76 24 2c 31 29 3c 3e 6c 6f 63 24 29 20 80 20 28 |v$,1)<>loc$) . (| 00024f90 a9 28 76 24 29 3e 30 29 0d 14 0d 11 20 20 70 25 |.(v$)>0).... p%| 00024fa0 3d a7 76 24 2c 22 3b 22 29 0d 14 0e 35 20 20 e7 |=.v$,";")...5 .| 00024fb0 20 28 70 25 3e 31 29 20 80 20 28 c1 76 24 2c 70 | (p%>1) . (.v$,p| 00024fc0 25 2d 31 2c 31 29 3d 22 5c 22 29 20 8c 20 70 25 |%-1,1)="\") . p%| 00024fd0 3d a7 76 24 2c 22 3b 22 2c 70 25 2b 31 29 0d 14 |=.v$,";",p%+1)..| 00024fe0 0f 0e 20 20 e7 20 70 25 3d 30 20 8c 0d 14 10 0d |.. . p%=0 .....| 00024ff0 20 20 20 20 76 24 3d 22 22 0d 14 11 07 20 20 cc | v$="".... .| 00025000 0d 14 12 14 20 20 20 20 76 24 3d c1 76 24 2c 70 |.... v$=.v$,p| 00025010 25 2b 31 29 0d 14 13 07 20 20 cd 0d 14 14 05 ce |%+1).... ......| 00025020 0d 14 15 0f 70 25 3d a7 76 24 2c 22 3b 22 29 0d |....p%=.v$,";").| 00025030 14 16 19 e7 20 70 25 3e 30 20 8c 20 76 24 3d c0 |.... p%>0 . v$=.| 00025040 76 24 2c 70 25 2d 31 29 0d 14 17 07 3d 76 24 0d |v$,p%-1)....=v$.| 00025050 14 18 04 0d 14 19 3e f4 20 2a 2a 2a 20 70 72 6f |......>. *** pro| 00025060 63 73 20 66 6f 72 20 68 61 6e 64 6c 69 6e 67 20 |cs for handling | 00025070 6d 65 73 73 61 67 65 73 20 69 6e 20 74 68 65 20 |messages in the | 00025080 4d 65 73 73 61 67 65 73 20 66 69 6c 65 20 2a 2a |Messages file **| 00025090 2a 0d 14 1a 04 0d 14 1b 0f dd 20 f2 6d 73 67 5f |*......... .msg_| 000250a0 69 6e 69 74 0d 14 1c 1e ea 20 66 6e 61 6d 65 24 |init..... fname$| 000250b0 2c 66 6c 61 67 73 25 2c 73 69 7a 65 25 2c 62 75 |,flags%,size%,bu| 000250c0 66 25 0d 14 1d 1f 66 6e 61 6d 65 24 3d 41 70 70 |f%....fname$=App| 000250d0 6c 44 69 72 24 2b 22 2e 4d 65 73 73 61 67 65 73 |lDir$+".Messages| 000250e0 22 0d 14 1e 36 c8 99 20 22 4d 65 73 73 61 67 65 |"...6.. "Message| 000250f0 54 72 61 6e 73 5f 46 69 6c 65 49 6e 66 6f 22 2c |Trans_FileInfo",| 00025100 2c 66 6e 61 6d 65 24 20 b8 20 66 6c 61 67 73 25 |,fname$ . flags%| 00025110 2c 2c 73 69 7a 65 25 0d 14 1f 12 e7 20 66 6c 61 |,,size%..... fla| 00025120 67 73 25 20 80 20 31 20 8c 0d 14 20 0c 20 20 62 |gs% . 1 ... . b| 00025130 75 66 25 3d 30 0d 14 21 05 cc 0d 14 22 1b 20 20 |uf%=0..!....". | 00025140 62 75 66 25 3d a4 68 65 61 70 5f 67 65 74 28 73 |buf%=.heap_get(s| 00025150 69 7a 65 25 29 0d 14 23 05 cd 0d 14 24 24 4d 73 |ize%)..#....$$Ms| 00025160 67 44 65 73 63 25 3d a4 68 65 61 70 5f 67 65 74 |gDesc%=.heap_get| 00025170 28 31 37 2b a9 28 66 6e 61 6d 65 24 29 29 0d 14 |(17+.(fname$))..| 00025180 25 19 24 28 4d 73 67 44 65 73 63 25 2b 31 36 29 |%.$(MsgDesc%+16)| 00025190 3d 66 6e 61 6d 65 24 0d 14 26 38 c8 99 20 22 4d |=fname$..&8.. "M| 000251a0 65 73 73 61 67 65 54 72 61 6e 73 5f 4f 70 65 6e |essageTrans_Open| 000251b0 46 69 6c 65 22 2c 4d 73 67 44 65 73 63 25 2c 4d |File",MsgDesc%,M| 000251c0 73 67 44 65 73 63 25 2b 31 36 2c 62 75 66 25 0d |sgDesc%+16,buf%.| 000251d0 14 27 05 e1 0d 14 28 04 0d 14 29 0f dd 20 f2 6d |.'....(...).. .m| 000251e0 73 67 5f 65 78 69 74 0d 14 2a 28 c8 99 20 22 4d |sg_exit..*(.. "M| 000251f0 65 73 73 61 67 65 54 72 61 6e 73 5f 43 6c 6f 73 |essageTrans_Clos| 00025200 65 46 69 6c 65 22 2c 4d 73 67 44 65 73 63 25 0d |eFile",MsgDesc%.| 00025210 14 2b 0e 4d 73 67 44 65 73 63 25 3d 30 0d 14 2c |.+.MsgDesc%=0..,| 00025220 05 e1 0d 14 2d 04 0d 14 2e 1a dd 20 a4 6d 73 67 |....-...... .msg| 00025230 5f 6c 6f 6f 6b 75 70 30 28 74 6f 6b 65 6e 24 29 |_lookup0(token$)| 00025240 0d 14 2f 0d ea 20 72 65 73 75 6c 74 25 0d 14 30 |../.. result%..0| 00025250 3a c8 99 20 22 4d 65 73 73 61 67 65 54 72 61 6e |:.. "MessageTran| 00025260 73 5f 4c 6f 6f 6b 75 70 22 2c 4d 73 67 44 65 73 |s_Lookup",MsgDes| 00025270 63 25 2c 74 6f 6b 65 6e 24 2c 30 20 b8 20 2c 2c |c%,token$,0 . ,,| 00025280 72 65 73 75 6c 74 25 0d 14 31 12 3d a4 73 74 72 |result%..1.=.str| 00025290 28 72 65 73 75 6c 74 25 29 0d 14 32 04 0d 14 33 |(result%)..2...3| 000252a0 21 dd 20 a4 6d 73 67 5f 6c 6f 6f 6b 75 70 31 28 |!. .msg_lookup1(| 000252b0 74 6f 6b 65 6e 24 2c 70 61 72 61 6d 24 29 0d 14 |token$,param$)..| 000252c0 34 0d ea 20 72 65 73 75 6c 74 25 0d 14 35 4e c8 |4.. result%..5N.| 000252d0 99 20 22 4d 65 73 73 61 67 65 54 72 61 6e 73 5f |. "MessageTrans_| 000252e0 4c 6f 6f 6b 75 70 22 2c 4d 73 67 44 65 73 63 25 |Lookup",MsgDesc%| 000252f0 2c 74 6f 6b 65 6e 24 2c 53 63 72 61 70 42 6c 6b |,token$,ScrapBlk| 00025300 25 2c 26 31 30 30 2c 70 61 72 61 6d 24 20 b8 20 |%,&100,param$ . | 00025310 2c 2c 72 65 73 75 6c 74 25 0d 14 36 12 3d a4 73 |,,result%..6.=.s| 00025320 74 72 28 72 65 73 75 6c 74 25 29 0d 14 37 04 0d |tr(result%)..7..| 00025330 14 38 2a dd 20 a4 6d 73 67 5f 6c 6f 6f 6b 75 70 |.8*. .msg_lookup| 00025340 32 28 74 6f 6b 65 6e 24 2c 70 61 72 61 6d 31 24 |2(token$,param1$| 00025350 2c 70 61 72 61 6d 32 24 29 0d 14 39 0d ea 20 72 |,param2$)..9.. r| 00025360 65 73 75 6c 74 25 0d 14 3a 57 c8 99 20 22 4d 65 |esult%..:W.. "Me| 00025370 73 73 61 67 65 54 72 61 6e 73 5f 4c 6f 6f 6b 75 |ssageTrans_Looku| 00025380 70 22 2c 4d 73 67 44 65 73 63 25 2c 74 6f 6b 65 |p",MsgDesc%,toke| 00025390 6e 24 2c 53 63 72 61 70 42 6c 6b 25 2c 26 31 30 |n$,ScrapBlk%,&10| 000253a0 30 2c 70 61 72 61 6d 31 24 2c 70 61 72 61 6d 32 |0,param1$,param2| 000253b0 24 20 b8 20 2c 2c 72 65 73 75 6c 74 25 0d 14 3b |$ . ,,result%..;| 000253c0 12 3d a4 73 74 72 28 72 65 73 75 6c 74 25 29 0d |.=.str(result%).| 000253d0 14 3c 04 0d 14 3d 36 f4 20 2a 2a 2a 20 70 72 6f |.<...=6. *** pro| 000253e0 63 73 20 66 6f 72 20 6c 6f 61 64 69 6e 67 20 61 |cs for loading a| 000253f0 6e 64 20 75 73 69 6e 67 20 75 73 65 72 2d 73 70 |nd using user-sp| 00025400 72 69 74 65 73 20 2a 2a 2a 0d 14 3e 04 0d 14 3f |rites ***..>...?| 00025410 42 f4 20 2d 2d 2d 20 6c 6f 61 64 20 61 20 73 70 |B. --- load a sp| 00025420 72 69 74 65 20 66 69 6c 65 20 61 6e 64 20 6c 65 |rite file and le| 00025430 74 20 61 6c 6c 20 74 65 6d 70 6c 61 74 65 73 20 |t all templates | 00025440 75 73 65 20 74 68 65 20 73 70 72 69 74 65 73 0d |use the sprites.| 00025450 14 40 1e dd 20 f2 6c 6f 61 64 75 73 65 72 73 70 |.@.. .loadusersp| 00025460 72 69 74 65 73 28 66 6e 61 6d 65 24 29 0d 14 41 |rites(fname$)..A| 00025470 09 ea 20 6e 6f 25 0d 14 42 33 e7 20 55 73 65 72 |.. no%..B3. User| 00025480 53 70 72 69 74 65 73 25 3c 3e 31 20 8c 20 f2 68 |Sprites%<>1 . .h| 00025490 65 61 70 5f 72 65 6c 65 61 73 65 28 55 73 65 72 |eap_release(User| 000254a0 53 70 72 69 74 65 73 25 29 0d 14 43 11 e7 20 66 |Sprites%)..C.. f| 000254b0 6e 61 6d 65 24 3d 22 22 20 8c 0d 14 44 14 20 20 |name$="" ...D. | 000254c0 55 73 65 72 53 70 72 69 74 65 73 25 3d 31 0d 14 |UserSprites%=1..| 000254d0 45 05 cc 0d 14 46 2a 20 20 55 73 65 72 53 70 72 |E....F* UserSpr| 000254e0 69 74 65 73 25 3d a4 6c 6f 61 64 73 70 72 69 74 |ites%=.loadsprit| 000254f0 65 66 69 6c 65 28 66 6e 61 6d 65 24 29 0d 14 47 |efile(fname$)..G| 00025500 05 cd 0d 14 48 16 e7 20 4e 72 54 65 6d 70 6c 61 |....H.. NrTempla| 00025510 74 65 73 25 3e 30 20 8c 0d 14 49 1e 20 20 e3 20 |tes%>0 ...I. . | 00025520 6e 6f 25 3d 30 20 b8 20 4e 72 54 65 6d 70 6c 61 |no%=0 . NrTempla| 00025530 74 65 73 25 2d 31 0d 14 4a 3d 20 20 20 20 f2 77 |tes%-1..J= .w| 00025540 69 6e 64 6f 77 5f 73 65 74 73 70 72 69 74 65 61 |indow_setspritea| 00025550 72 65 61 28 54 65 6d 70 6c 48 61 6e 64 6c 65 25 |rea(TemplHandle%| 00025560 28 6e 6f 25 29 2c 55 73 65 72 53 70 72 69 74 65 |(no%),UserSprite| 00025570 73 25 29 0d 14 4b 0b 20 20 ed 20 6e 6f 25 0d 14 |s%)..K. . no%..| 00025580 4c 05 cd 0d 14 4d 16 e7 20 55 73 65 72 53 70 72 |L....M.. UserSpr| 00025590 69 74 65 73 25 3d 31 20 8c 0d 14 4e 15 20 20 53 |ites%=1 ...N. S| 000255a0 70 72 69 74 65 46 4e 61 6d 65 24 3d 22 22 0d 14 |priteFName$=""..| 000255b0 4f 05 cc 0d 14 50 19 20 20 53 70 72 69 74 65 46 |O....P. SpriteF| 000255c0 4e 61 6d 65 24 3d 66 6e 61 6d 65 24 0d 14 51 05 |Name$=fname$..Q.| 000255d0 cd 0d 14 52 05 e1 0d 14 53 04 0d 14 54 1d dd 20 |...R....S...T.. | 000255e0 a4 6c 6f 61 64 73 70 72 69 74 65 66 69 6c 65 28 |.loadspritefile(| 000255f0 66 6e 61 6d 65 24 29 0d 14 55 19 ea 20 66 74 79 |fname$)..U.. fty| 00025600 70 65 25 2c 66 73 69 7a 65 25 2c 61 72 65 61 25 |pe%,fsize%,area%| 00025610 0d 14 56 2d c8 99 20 22 4f 53 5f 46 69 6c 65 22 |..V-.. "OS_File"| 00025620 2c 31 37 2c 66 6e 61 6d 65 24 20 b8 20 66 74 79 |,17,fname$ . fty| 00025630 70 65 25 2c 2c 2c 2c 66 73 69 7a 65 25 0d 14 57 |pe%,,,,fsize%..W| 00025640 11 e7 20 66 74 79 70 65 25 3c 3e 31 20 8c 0d 14 |.. ftype%<>1 ...| 00025650 58 2c 20 20 f2 63 6f 6d 70 6c 61 69 6e 28 a4 6d |X, .complain(.m| 00025660 73 67 5f 6c 6f 6f 6b 75 70 31 28 22 4e 4f 53 46 |sg_lookup1("NOSF| 00025670 22 2c 66 6e 61 6d 65 24 29 29 0d 14 59 0d 20 20 |",fname$))..Y. | 00025680 61 72 65 61 25 3d 31 0d 14 5a 05 cc 0d 14 5b 10 |area%=1..Z....[.| 00025690 20 20 66 73 69 7a 65 25 2b 3d 31 36 0d 14 5c 1d | fsize%+=16..\.| 000256a0 20 20 61 72 65 61 25 3d a4 68 65 61 70 5f 67 65 | area%=.heap_ge| 000256b0 74 28 66 73 69 7a 65 25 29 0d 14 5d 11 20 20 e7 |t(fsize%)..]. .| 000256c0 20 61 72 65 61 25 3e 30 20 8c 0d 14 5e 16 20 20 | area%>0 ...^. | 000256d0 20 20 61 72 65 61 25 21 30 3d 66 73 69 7a 65 25 | area%!0=fsize%| 000256e0 0d 14 5f 12 20 20 20 20 61 72 65 61 25 21 38 3d |.._. area%!8=| 000256f0 31 36 0d 14 60 24 20 20 20 20 c8 99 20 22 4f 53 |16..`$ .. "OS| 00025700 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b 39 |_SpriteOp",256+9| 00025710 2c 61 72 65 61 25 0d 14 61 2c 20 20 20 20 c8 99 |,area%..a, ..| 00025720 20 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c 32 | "OS_SpriteOp",2| 00025730 35 36 2b 31 30 2c 61 72 65 61 25 2c 66 6e 61 6d |56+10,area%,fnam| 00025740 65 24 0d 14 62 07 20 20 cc 0d 14 63 48 20 20 20 |e$..b. ...cH | 00025750 20 61 72 65 61 25 3d 31 20 3a 20 f4 20 63 6f 75 | area%=1 : . cou| 00025760 6c 64 6e 27 74 20 61 6c 6c 6f 63 61 74 65 20 73 |ldn't allocate s| 00025770 70 61 63 65 20 69 6e 20 68 65 61 70 20 2d 20 72 |pace in heap - r| 00025780 65 73 65 74 20 74 6f 20 57 69 6d 70 20 61 72 65 |eset to Wimp are| 00025790 61 0d 14 64 07 20 20 cd 0d 14 65 05 cd 0d 14 66 |a..d. ...e....f| 000257a0 0a 3d 61 72 65 61 25 0d 14 67 04 0d 14 68 2a dd |.=area%..g...h*.| 000257b0 20 f2 77 69 6e 64 6f 77 5f 73 65 74 73 70 72 69 | .window_setspri| 000257c0 74 65 61 72 65 61 28 68 61 6e 64 6c 65 25 2c 61 |tearea(handle%,a| 000257d0 72 65 61 25 29 0d 14 69 0f ea 20 69 63 6f 6e 25 |rea%)..i.. icon%| 000257e0 2c 69 62 25 0d 14 6a 15 57 69 6e 42 6c 6b 25 21 |,ib%..j.WinBlk%!| 000257f0 30 3d 68 61 6e 64 6c 65 25 0d 14 6b 24 c8 99 20 |0=handle%..k$.. | 00025800 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 49 |"Wimp_GetWindowI| 00025810 6e 66 6f 22 2c 2c 57 69 6e 42 6c 6b 25 0d 14 6c |nfo",,WinBlk%..l| 00025820 24 57 69 6e 42 6c 6b 25 21 36 38 3d 61 72 65 61 |$WinBlk%!68=area| 00025830 25 20 3a 20 f4 20 43 42 50 20 70 6f 69 6e 74 65 |% : . CBP pointe| 00025840 72 0d 14 6d 34 f2 69 63 6f 6e 5f 73 65 74 73 70 |r..m4.icon_setsp| 00025850 72 69 74 65 61 72 65 61 28 57 69 6e 42 6c 6b 25 |ritearea(WinBlk%| 00025860 21 36 30 2c 57 69 6e 42 6c 6b 25 2b 37 36 2c 61 |!60,WinBlk%+76,a| 00025870 72 65 61 25 29 0d 14 6e 16 e7 20 28 57 69 6e 42 |rea%)..n.. (WinB| 00025880 6c 6b 25 21 38 38 29 3e 30 20 8c 0d 14 6f 20 20 |lk%!88)>0 ...o | 00025890 20 e3 20 69 63 6f 6e 25 3d 30 20 b8 20 28 57 69 | . icon%=0 . (Wi| 000258a0 6e 42 6c 6b 25 21 38 38 29 2d 31 0d 14 70 1f 20 |nBlk%!88)-1..p. | 000258b0 20 20 20 69 62 25 3d 57 69 6e 42 6c 6b 25 2b 39 | ib%=WinBlk%+9| 000258c0 32 2b 69 63 6f 6e 25 2a 33 32 0d 14 71 30 20 20 |2+icon%*32..q0 | 000258d0 20 20 f2 69 63 6f 6e 5f 73 65 74 73 70 72 69 74 | .icon_setsprit| 000258e0 65 61 72 65 61 28 69 62 25 21 31 36 2c 69 62 25 |earea(ib%!16,ib%| 000258f0 2b 32 30 2c 61 72 65 61 25 29 0d 14 72 0d 20 20 |+20,area%)..r. | 00025900 ed 20 69 63 6f 6e 25 0d 14 73 05 cd 0d 14 74 26 |. icon%..s....t&| 00025910 68 61 6e 64 6c 65 25 3d a4 72 65 64 65 66 69 6e |handle%=.redefin| 00025920 65 77 69 6e 64 6f 77 28 57 69 6e 42 6c 6b 25 2c |ewindow(WinBlk%,| 00025930 30 29 0d 14 75 05 e1 0d 14 76 04 0d 14 77 2d dd |0)..u....v...w-.| 00025940 20 f2 69 63 6f 6e 5f 73 65 74 73 70 72 69 74 65 | .icon_setsprite| 00025950 61 72 65 61 28 66 6c 61 67 73 25 2c 64 61 74 61 |area(flags%,data| 00025960 25 2c 61 72 65 61 25 29 0d 14 78 2f e7 20 28 28 |%,area%)..x/. ((| 00025970 66 6c 61 67 73 25 20 80 20 33 29 3d 32 29 20 80 |flags% . 3)=2) .| 00025980 20 28 28 66 6c 61 67 73 25 20 80 20 26 31 30 30 | ((flags% . &100| 00025990 29 3c 3e 30 29 20 8c 0d 14 79 13 20 20 64 61 74 |)<>0) ...y. dat| 000259a0 61 25 21 34 3d 61 72 65 61 25 0d 14 7a 05 cd 0d |a%!4=area%..z...| 000259b0 14 7b 05 e1 0d 14 7c 04 0d ff |.{....|...| 000259ba