>EvntShell:ShellLibRT Squished by Lofty's !Shrink vsn 3.01 on 14-Oct-96 shell_LibraryVersion:=2.23*&64 shell_DefineConstants:_MSE_SELECTBUT=4:_MSE_MENUBUT=2:_MSE_ADJUSTBUT=1:_EVENT_NULL=0:_EVENT_REDRAWWIN=1:_EVENT_OPENWIN=2:_EVENT_CLOSEWIN=3:_EVENT_PTRLEAVING=4:_EVENT_PTRENTERING=5:_EVNT_MSECLICK=6:_EVNT_DRAGEND=7:_POPUP_TYPE_TEXT=0 _POPUP_TYPE_WIMPCOLOUR=1:_POPUP_TYPE_DATEPICK=2:_POPUP_TYPE_CALCULATOR=3:_POPUP_TYPE_FONTPICK=4:_POPUP_TYPE_LINEFONT=5:_POPUP_TYPE_FONTMENU=6:_POPUP_TYPE_TIMEPICK=7:_POPUP_TYPE_COLOUR24=8:_IBAR_RIGHT%=-1:_IBAR_LEFT%=-2:_BUTTON_TYPE_NEVER=0 E._BUTTON_TYPE_CLICK=3:_BUTTON_TYPE_MENU=9: shell_GetLastSecureFileName: h%:h%=_U%!80: shell_GetEventMenu(IE%,d%,LC%): f%,r%,x%,KA%,AA%: d%=-1 d%=-2 \OKA%= shell_HeapBlockInfo(_U%!&C)-8:f%=0:x%= :r%=_U%!&C:f$="": (r%!f%=d%) r%!(f%+4)=LC% j%AA%=r%!(f%+8): AA%=-2 AA%=_U%!&FC :f%+=48: (f%>=KA% x%):=AA% shell_AttachMenuDBox(dC%,o$,jA$,uA$): e%,h%,DB%: shell_WindowLoaded(o$) shell_MessageOneArg("SHELLMSG03",o$) shell_HeapBlockFetch(&C):e%!0= shell_HeapBlockFetch( o$+1):h%=e%!0:$h%=o$:e%!4= shell_HeapBlockFetch( jA$+1):h%=e%!4:$h%=jA$:e%!8= shell_HeapBlockFetch( uA$+1):h%=e%!8:$h%=uA$: &45BCE,dC%,e%: &45BCC,, shell_MessageNoArgs(J$):= shell_MessageLookup(J$,"","") shell_MessageOneArg(J$,_$):= shell_MessageLookup(J$,_$,"") shell_MessageTwoArgs(J$,_$,SA$):= shell_MessageLookup(J$,_$,SA$) shell_MessageLookup(J$,_$,SA$): n%,L%,w$,dD%,gC%: J$,8)="SHELLMSG" dD%=_U%!284:gC%=_U%!280 dD%=_U%!64:gC%=_U%!68 &61502,gC%,J$,dD%,256,_$,SA$ ,,,L%;n%: dD%?L%=&D:w$=$(dD%) shell_WimpInit(JC%,DA$): VF%,wA%: VF%4:!VF%=0: shell_OSCheckVersion(3.1) 2JC%=310: &400C0,JC%,&4B534154,DA$,VF% JC%,wA% JC%=&C8: &400C0,JC%,&4B534154,DA$ JC%,wA% _U%!&64 "WimpExt_Initialise",&E,wA% :_U%!&94=wA%:=wA% shell_WimpInit_I(JC%,DA$): wA%:wA%= shell_WimpInit(JC%,DA$): &81682,wA%:=wA% shell_WimpCloseDown_I(wA%): shell_ExReg_FontLib_Loaded shell_Fonts_LoseFonts shell_ExReg_FontMenu_Loaded shell_FontMenu_Deregister _U%!&64 "WimpExt_Initialise",&E,wA% &600DD,wA%,&4B534154: &A1683,wA%: _U%!&64 "XImpulse_CloseDown",_U%!&94 WimpCloseDown(wA%): shell_ExReg_FontMenu_Loaded shell_LoseFonts shell_ExReg_FontMenu_Loaded shell_FontMenu_Deregister _U%!&64 "WimpExt_Initialise",&E,wA% &600DD,wA%,&4B534154: _U%!&64 "XImpulse_CloseDown",_U%!&94 ("Unset "+_shell_AppName$+"$BasicFile"): shell_FindFont(IB$,UJ%): mA%,SF%:SF%=_U%!&E8: &40081,,IB$,UJ%*16,d*16,0,0 mA%:SF%?mA%+=1: SF%?mA%>=&FF shell_OK( shell_MessageNoArgs("SHELLMSG18")) shell_Init: LB%,s%,h%,q$: D$,G$,LE%: shell_InitModules:_poll_called%=0: shell_DefineConstants:_SHELL_SENDDATALOAD_MY_REF%=0:_SHELL_SENDDATALOAD_FILE$="": _U%360,_shell_blk%260:_Q%= shell_HeapBlockFetch(&BB8):LB%= shell_HeapBlockFetch(48):LB%!0=0 LB%!4=0:LB%!8=0:LB%!&C=0:LB%!16=0:LB%!20=0:LB%!24=0:LB%!28=0:LB%!32=0:LB%!36=0:LB%!40=0:LB%!44=0:_U%!0=0:_U%!4=0:_U%!8=0:_U%!&C=LB%:_U%!16=1:_U%!20=0:_U%!44=-1:_U%!48=0:_U%!52=0:_U%!56=0:_U%!60=0:_U%!64=0:_U%!68=0:_U%!72=0 _U%!76= shell_HeapBlockFetch(256):_U%!80=0:_U%!84=-1:_U%!88=0:_U%!92=0:_U%!96=0:_U%!&64=0:_U%!&6C=-1:_U%!&70=-1:_U%!&74=-1:_U%!&78=-1:_U%!&7C=-1:_U%!&80=0:_U%!&84=0:_U%!&88=-1:_U%!&8C=-1:_U%!&90=-1:_U%!&94=0:_U%!&98=0:_U%!&9C=0:_U%!&B0=0:_U%!&B4=0 _U%!&B8=0:_U%!&BC=0:_U%!&C0=0:_U%!&C4=0:_U%!&C8=0:_U%!&CC=0:_U%!&D0=-1:_U%!&D4=-1:_U%!&D8=0:_U%!&DC=0:_U%!&E0=0:_U%!&E4=0:_U%!&E8= shell_HeapBlockFetch(256):_U%!&EC= shell_HeapBlockFetch(256):_U%!&F0=-1:_U%!&F4=0:_U%!&FC=0:_U%!256=0:_U%!260=1 _U%!264=0:_U%!268=0:_U%!272=0:_U%!276=0:_U%!280=0:_U%!284=0:_U%!304=0:_U%!308=0:_U%!316=0:_U%!324=0:_U%!336=0:_U%!340=0:_U%!344=0: shell_MemFill(_U%!&E8,256,0): shell_MemFill(_U%!&EC,256,0):D$= shell_OSVarGetVal("Obey$Dir",1):G$= shell_Leaf(D$),2) _U%!&BC= shell_HeapBlockFetch(( D$)+1):_U%!&C4= shell_HeapBlockFetch(( G$)+1):h%=_U%!&BC:$h%=D$:h%=_U%!&C4:$h%=G$:h%= shell_OSModuleCheckVersion("WimpExtension",1.98): _U%!&64=_U%!&64 RO3_Present: _U%!&64=_U%!&64 1<<&A shell_InteractiveHelpOn:LE%=&64: shell_PollSetInterval(LE%): shell_PollSetPrevInterval(LE%): _POLL_EARLIEST_TIME%:_POLL_EARLIEST_TIME%+=LE%:q$= shell_OSReadCommandArg(1): q$<>"" L_U%!&64=_U%!&64 1<<5:h%= shell_HeapBlockFetch( q$+1):$(h%)=q$:_U%!324=h% shell_InitModules: k%:k%= shell_Errors_Init:k%= shell_Bumpers_Init:k%= shell_CaretMove_Init:k%= shell_Caret_Init:k%= shell_DataLoad_Init:k%= shell_DataSave_Init:k%= shell_Debug_Init:k%= _shell_Evnts_Init:k%= shell_ExReg_Init:k%= _shell_Files_Init _shell_Iconbar_Init:k%= shell_Icons_Init:k%= _shell_IntHelp_Init:k%= _shell_Memory_Init:k%= _shell_Menus_Init:k%= _shell_MenuList_Init:k%= _shell_Messages_Init:k%= _shell_OS_Init:k%= _shell_Pointer_Init:k%= _shell_Poll_Init:k%= _shell_PopUps_Init _shell_ProgEvnts_Init:k%= _shell_Sliders_Init:k%= _shell_Sprites_Init:k%= _shell_Strings_Init:k%= _shell_StaticList_Init:k%= _shell_WindowList_Init:k%= _shell_Windows_Init: shell_GetCmdLineArgs: _U%!324<>0 q$=$(_U%!324) shell_GetAppDir: h%:h%=_U%!&BC:=$h% shell_GetAppDataDir: h%:h%=_U%!&C0:=$h% shell_GetAppName: h%:h%=_U%!&C4:=$h% shell_ResourcesInit: IA$,h%,G$,D$,iE%: rC%,eD%,PD%:G$= shell_GetAppName:D$= shell_GetAppDir: shell_OSVarExists(G$+"Res$Path") _U%!&64=_U%!&64 shell_OSVarExists(G$+"Data$Dir") *fIA$= shell_OSVarGetVal(G$+"Data$Dir",1):_U%!&C0= shell_HeapBlockFetch(( IA$)+1):h%=_U%!&C0:$h%=IA$ _U%!&C0= shell_HeapBlockFetch(( D$)+1):h%=_U%!&C0:$h%=D$ :PD%= _U%!&64 shell_FileExists(G$+"Res:Messages") shell_MessagesInit(G$+"Res:Messages",_U%!68,_U%!64) shell_FileExists(G$+"Res:ShellMsgs") shell_MessagesInit(G$+"Res:ShellMsgs",_U%!280,_U%!284) shell_MessagesInit("EvntShellRes:ShellMsgs",_U%!280,_U%!284) &20035,-1,4 ,,eD%: &20035,-1,5 ,,rC%: rC%=1 shell_FileExists(G$+"Res:Sprites22") A4_U%!16= shell_SpriteAreaLoad(G$+"Res:Sprites22") shell_FileExists(G$+"Res:Sprites") E2_U%!16= shell_SpriteAreaLoad(G$+"Res:Sprites") _U%!16=1 :iE%= shell_3DEnabled: shell_FileExists(G$+"Res:Templates3") shell_TemplatesInit(G$+"Res:Templates3",k%):PD%= shell_FileExists(G$+"Res:Templates") shell_TemplatesInit(G$+"Res:Templates",k%):PD%= shell_FileExists(D$+".Messages") shell_MessagesInit(D$+".Messages",_U%!68,_U%!64) shell_FileExists(D$+".ShellMsgs") shell_MessagesInit(D$+".ShellMsgs",_U%!280,_U%!284) shell_MessagesInit("EvntShellRes:ShellMsgs",_U%!280,_U%!284) &20035,-1,4 ,,eD%: &20035,-1,5 ,,rC%: rC%=1 shell_FileExists(D$+".Sprites22") e1_U%!16= shell_SpriteAreaLoad(D$+".Sprites22") shell_FileExists(D$+".Sprites") h/_U%!16= shell_SpriteAreaLoad(D$+".Sprites") _U%!16=1 :iE%= shell_3DEnabled: shell_FileExists(D$+".Templates3") shell_TemplatesInit(D$+".Templates3",k%):PD%= shell_FileExists(D$+".Templates") shell_TemplatesInit(D$+".Templates",k%):PD%= 99,"Unable to find templates file.." &45BC0: shell_HeapBlockReturn(_Q%):_Q%= shell_HeapBlockFetch(&400): shell_FileExists(D$+".EvntData") shell_EvntLoad_AllEvnts(D$+".EvntData") shell_ExReg_ShareBan_Loaded shell_ShareBan_ShowBanner DataLoad_LoadIsPending= Handle_PendingFileLoad: DataLoad_ClearLoadIsPendingFlag shell_MessageExpand(s$): Q$,w$,MB%:Q$="": s$,"\")>0:MB%= s$,"\"):Q$+= s$,MB%-1):w$= s$,MB%+1,1):s$= s$,MB%+2): "A":Q$+="Click ADJUST to" "a":Q$+="ADJUST" "D":Q$+="Drag with SELECT to" "d":Q$+="Drag with ADJUST to" "G":Q$+="This option is greyed out because" "R":Q$+="Move the pointer right" "S":Q$+="Click SELECT to" "s":Q$+="SELECT" "T":Q$+="This is the" "W":Q$+="This window is" "w":Q$+="window" Q$+="\"+w$ :=Q$+s$ shell_MessageWindow(K$,BJ%,dA$,EA$): BG%,xC%:xC%= shell_HeapBlockFetch(260):!xC%=_m_ERRNR_NONFATAL%:$(xC%+4)=K$+ dA$="" shell_GetAppName EA$="" EA$="Message from "+dA$ &400DF,xC%,19,EA$ &400DF,xC%,17,EA$ shell_HeapBlockReturn(xC%):=BG% shell_CreateWindow2(O,n%,bI%,vI%,SJ%,OB%,uE%,rB%,tB%,RF%): Q%:Q%= shell_HeapBlockFetch(&BB8):Q%!0=uE%:Q%!4=rB%:Q%!8=tB%:Q%!&C=RF%:Q%!16=0:Q%!20=0:Q%!24=-1:Q%!28=n%:Q%?32=7:Q%?33=2:Q%?34=bI%:Q%?35=vI%:Q%?36=3:Q%?37=1:Q%?38=2:Q%?39=0:Q%!40=0:Q%!44=OB% Q%!48=SJ%:Q%!52=0:Q%!56=317:Q%!60=&3000:Q%!68=1:Q%!72=O:Q%!76=-1:Q%!80= $O:Q%!84=0: &400C1,,Q% shell_HeapBlockReturn(Q%):=o% shell_ClaimKeypress: _U%!20<>0 &400D4,,-1:k%= shell_DeleteWindow(_U%!20):_U%!20=0 oktodeletew(o%):=-1 oktoclosew(o%):=-1 cliprect(A, ZI%): eA%,lA%: lwaorigin(A,eA%,lA%):uA%=A!24-eA%:_A%=A!28-lA%:zI%=A!32-eA%:ZI%=A!36-lA%: shell_DoBackgroundTask: shell_HandleAttachedMenu(_Q%,d%,t%): t%<>-1 d%>-1 :1AA%= shell_GetEventMenu(_Q%!8,d%,t%): AA%<>0 shell_HandleMenuOpen(_Q%,AA%,d%,t%, Handle_PendingFileLoad: a%,c%,iA%,bB%,LF%:LF%= DataLoad_GetAnchor:a%= Evnts_GetEvntListOffset("iconbar", DataLoad_GetIconBarIconNr,LF%, DataLoad_GetRecSize, a%>-1 DataLoad_SetFileName( shell_GetCmdLineArgs): DataLoad_GetFileName<>"" PZc%=!LF%:c%+=a%:iA%=c%!16:bB%=iA% (1<<31): shell_FileType( DataLoad_GetFileName)=bB% shell_MessageSendDataLoad(bB%, DataLoad_GetFileName) shell_Action(dI%): f$,AA%,y$,YB$,NI%,WB%,cB%,aF%: d%,t%,k%,_temp28%,_temp32%,_temp24%,_temp%,_I%: kJ%,a%,lG%: _EVENT_NULL: _closedown%= (lG%-_POLL_EARLIEST_TIME%)>0:_POLL_EARLIEST_TIME%+=_POLL_INTERVAL%: shell_ExReg_OLELib_Loaded= shell_DoOLEHandling shell_DoBackgroundTask: shell_SliderDragInProgress shell_Slider shell_EvntHandle_IconWatch shell_Evnts_WritableDragInProgress shell_Evnts_MonitorDragPtrPos _EVENT_REDRAWWIN: shell_ExReg_ColourPick_Loaded _Q%!0<>_m_ColourPick_AcornDBoxHandle% shell_RedrawWindow(_Q%!0) shell_RedrawWindow(_Q%!0) _EVENT_OPENWIN: shell_OpenWindow(_Q%!0, _EVENT_CLOSEWIN: shell_EvntHandle_WindowClose(_Q%!0) _EVENT_PTRLEAVING: shell_EvntHandle_PointerLeavingWindow(!_Q%) _EVENT_PTRENTERING: shell_EvntHandle_PointerEnteringWindow(!_Q%) _EVNT_MSECLICK:WB%=_Q%!0:cB%=_Q%!4:_EVNTS_LAST_MOUSEXPOS%=WB%:_EVNTS_LAST_MOUSEYPOS%=cB%:_U%!272=_Q%!0:_U%!276=_Q%!4: _Q%!8>4 _Q%!8<256 shell_EvntHandle_ClickDrag(_Q%!&C,_Q%!16,_Q%!8,_EVNTS_LAST_MOUSEBUTTON%) :_EVNTS_LAST_MOUSEBUTTON%=_Q%!8:_EVNTS_LAST_WINDOWCLICKED%=_Q%!&C:_EVNTS_LAST_ICONCLICKED%=_Q%!16: _Q%!8 4,&400: shell_EvntHandle_ClickSelect( Evnts_GetLastWindowClicked, Evnts_GetLastIconClicked) 2,512: shell_EvntHandle_ClickMenu( Evnts_GetLastWindowClicked, Evnts_GetLastIconClicked) 1,256: shell_EvntHandle_ClickAdjust( Evnts_GetLastWindowClicked, Evnts_GetLastIconClicked) 7:_U%!&80=0: shell_SliderDragInProgress= shell_EvntHandle_UserDragEnd: shell_EvntHandle_DataSaveEndDrag shell_SliderDragEnd shell_Evnts_UserDragInProgress= shell_Evnts_UserDragEnd(_Q%!0,_Q%!4,_Q%!8,_Q%!&C) _Q%!24 &D,394,398,399,410,430,431:aF%= shell_WritableIconHandler(_Q%!0,_Q%!4,_Q%!24) shell_HotKeyProcess(_Q%!24) &400DC,_Q%!24 shell_EvntHandle_MenuSelect(_Q%) 17,18: shell_Receive(_Q%) shell_UserMessageAcknowledge(_Q%) shell_HandleMenuOpen(_Q%,AA%,d%,t%,dJ%): LA%,_%: shell_OpenMenu(_Q%!0,_Q%!4,AA%) shell_HeapBlockFetch(50):_%= shell_HeapBlockFetch(36):LA%!0=d%:LA%!4=t%: &400CE,,LA%:_%!0=d%: &400CB,,_%: shell_OpenMenu(_%!4+LA%!16+64,_Q%!4,AA%): shell_MenuPointerMovesOnPopup= _%!4+LA%!16+64,_Q%!4 shell_HeapBlockReturn(LA%): shell_HeapBlockReturn(_%) shell_ActionAdjustButton: n%,f$,k%,aD%,m%:aD%= shell_HeapBlockFetch(&C+( shell_WindowCountIcons( Evnts_GetLastWindowClicked)*32)): Evnts_GetLastWindowClicked>0 &400D6, Evnts_GetLastWindowClicked,aD%,&F000,&B000:m%=0: aD%!m%<>-1: aD%!m%= Evnts_GetLastIconClicked shell_IconSet( Evnts_GetLastWindowClicked, Evnts_GetLastIconClicked,1) m%+=4: Evnts_GetLastIconClicked=0 shell_HandleAttachedDataSave(_Q%, Evnts_GetLastWindowClicked, Evnts_GetLastIconClicked) shell_EvntHandle_ClickAdjust( Evnts_GetLastWindowClicked, Evnts_GetLastIconClicked): shell_HeapBlockReturn(aD%): shiftmenuclick(d%,t%):= shell_RedrawWindow(o%): SE%,f$,eA%,lA%,e%: shell_FatalError o%<>-1 shell_HeapBlockFetch(&64):e%!0=o%: &400C8,,e% SE%:eA%=e%!4-e%!20:lA%=e%!16-e%!24: &81681,,e%: shell_EvntHandle_Redraw(o%,e%,eA%,lA%): &400CA,,e% shell_HeapBlockReturn(e%) shell_Receive(_Q%): h%,k%,gH%: _Q%!16 _MESSAGE_QUIT: shell_Exit: _MESSAGE_DATASAVE: shell_DataSave(_Q%) _MESSAGE_DATASAVEACK: shell_DataSaveAck(_Q%) _MESSAGE_DATALOAD: shell_EvntHandle_DataLoad(_Q%, _MESSAGE_DATALOADACK: shell_DataLoadAck(_Q%) shell_EvntHandle_DataLoad(_Q%, _MESSAGE_RAMFETCH: shell_RAMFetch(_Q%) _MESSAGE_RAMTRANSMIT: shell_RAMTransmit(_Q%) _MESSAGE_PREQUIT: shell_ProgEvnts_PreQuit(_Q%) _MESSAGE_PALETTECHANGE: shell_ProgEvnts_PaletteChanged _MESSAGE_SAVEDESKTOP: shell_ProgEvnts_SaveDesktop(_Q%!20) _MESSAGE_SHUTDOWN: shell_ProgEvnts_Shutdown _MESSAGE_HELP: shell_InteractiveHelp(_Q%) _MESSAGE_MENUWARNING: shell_MenuWarning(_Q%) _MESSAGE_MODECHANGE: shell_ProgEvnts_ModeChanged _MESSAGE_COLOURPICKERCOLOURCHOICE:gH%=(_Q%!24 shell_ColourPickerSelection(_Q%!28,gH%) _MESSAGE_DESKFONT_CHANGED: shell_ProgEvnts_DeskFontChanged(_Q%!20): shell_ExReg_Fonts_Loaded shell_Fonts_DeskTopFont_Selected(_Q%!20) _MESSAGE_TASKINIT: shell_ProgEvnts_TaskInitialise(_Q%!4, shell_GetString(_Q%+28)): _U%!&D0=-1 shell_GetString(_Q%+28)="StrongHelp" _U%!&D0=_Q%!4: shell_StrongHlpMsg("Help_Install -DieWithTask "+ shell_GetAppDir+"."+ shell_GetAppName):h%=_U%!&D8: $h%<>"" shell_HelpWord($h%): shell_HeapBlockReturn(_U%!&D8):_U%!&D8=0 _MESSAGE_TASKCLOSEDOWN: shell_ProgEvnts_TaskCloseDown(_Q%!4): _Q%!4=_U%!&D0 _U%!&D0=-1 _MESSAGE_TASKNAMEIS: shell_GetString(_Q%+28)="StrongHelp" _U%!&D0=_Q%!20 shell_ScanForHelp &80140: shell_HandlePrintFile(_Q%) &80143: shell_HandlePrintError(_Q%) &80145: shell_HandlePrintTypeOdd(_Q%) &80147: shell_HandleSetPrinter(_Q%) &47700,&47702: shell_Tracef0("PROCshell_Receive: resetting acorn colour dbox handle to -1.."):_m_ColourPick_AcornDBoxHandle%=-1 shell_HandleUnknownMessage2(_Q%) shell_HandleUnknownMessage2(_Q%): _Q%!16 &43B00:U$=$(_Q%+20): U$,30)="EvntShellLib:ShellDBug started" _U%!&64 r_U%!&64=(_U%!&64 1<<4): shell_BroadcastMessage(&43B00,"ShellDBug:Init Debug messages from "+ shell_GetAppName) U$,25)="EvntShellLib:TraceInitAck" _U%!&64=(_U%!&64 1<<4) U$,20)="EvntShellLib:TraceOn" shell_TraceOn U$,21)="EvntShellLib:TraceOff" shell_TraceOff U$,28)="EvntShellLib:ListClickSelect" shell_ListClickSelect U$,26)="EvntShellLib:ListClickMenu" shell_ListClickMenu U$,28)="EvntShellLib:ListClickAdjust" shell_ListClickAdjust U$,25)="EvntShellLib:ListHelpTags" shell_ListHelpTags U$,24)="EvntShellLib:ListBumpers" shell_ListBumpers U$,26)="EvntShellLib:ListPointerIn" shell_ListPointerIn U$,27)="EvntShellLib:ListPointerOut" shell_ListPointerOut U$,25)="EvntShellLib:ListDataLoad" shell_ListDataLoad U$,25)="EvntShellLib:ListDataSave" shell_ListDataSave shell_HandleUnknownMessage(_Q%): shell_HandleUnknownMessage(_Q%): shell_RAMFetch(_Q%): CK%,MG%,QF%:QF%= _U%!&90>&8000 14_Q%!&C=_Q%!8:_Q%!16=7:MG%=_U%!&88: _U%!&8C=&FF9 _U%!&90+=4 (MG%-_U%!&80)<_Q%!24 _Q%!24=MG%-_U%!&80:QF%= &400F1,_U%!&94,_U%!&90+_U%!&80,_Q%!4,_Q%!20,_Q%!24: &400E7,17,_Q%,_Q%!4:_U%!&78=_Q%!8:_U%!&80+=_Q%!24: _U%!&80=0 shell_RAMTransmit(_Q%): a%,e%,pA$,h%: _Q%!&C=_U%!&70 S$_U%!&80+=_Q%!24: _Q%!24<_U%!&84 shell_GetEvntListOffset( shell_GetWindowIdentifier( Evnts_GetLastWindowClicked), Evnts_GetLastIconClicked,_U%+96,16, ):e%=_U%!96+a%:h%=_U%!&9C:pA$= shell_GetString(h%+44): shell_UserFNLoadFile(h%!40,_U%!&98,e%!8,pA$,_U%!&84,e%) _U%!&80>_U%!&84 p;_U%!&98= shell_HeapBlockExtend(_U%!&98,_U%!&80,_U%!&84) :_Q%!&C=_Q%!8:_Q%!16=6:_Q%!20=_U%!&98+_U%!&80:_Q%!24=_U%!&84: &400E7,18,_Q%,_Q%!4:_U%!&70=_Q%!8 shell_HeapBlockReturn(_U%!&98):_U%!&98=0: shell_OK( shell_MessageNoArgs("SHELLMSG15")) shell_LoadFile(DK%): LA$,eF%,CE%,yB%:LA$= shell_GetString(_Q%+44):eF%= shell_FileLength(LA$): eF%<0 shell_OK( shell_MessageNoArgs("SHELLMSG16")) QyB%= shell_HeapBlockFetch(eF%): &20008,16,LA$,yB%,0 ;CE%: shell_VFlag(CE%) shell_HeapBlockReturn(yB%) :=yB% shell_VFlag(CE%):=((CE% 1)=1) shell_Exit: gC%:gC%=_U%!68: &61504,gC%: &2001E,7,,gC%: shell_TraceExit: &606C2: &600D0,,-1: shell_WimpCloseDown_I(_U%!&94): shell_DataSave(_Q%): h%,a%,e%,s%: _Q%!4<>_U%!&94 shell_GetEventListOffset(_Q%!20,_Q%!24,_U%+96,16, a%>-1 2e%=_U%!96+a%: shell_CheckType(_Q%!40,e%!8, shell_TopBitLoadInProgress n_Q%!0=256:_Q%!&C=_Q%!8:_Q%!36=-1:_Q%!16=2:$(_Q%+44)= shell_GetAppDir+".ScrapFile"+ &400E7,18,_Q%,_Q%!4 shell_HeapBlockReturn(_U%!&9C):_U%!&9C= shell_HeapBlockFetch((_Q%!0)+8):h%=_U%!&9C: _Q%!0 4:h%!s%=_Q%!s%: s%:_EVNTS_LAST_WINDOWCLICKED%=_Q%!20:_EVNTS_LAST_ICONCLICKED%=_Q%!24:_U%!&80=0:_U%!&84=_Q%!36:_U%!&98= shell_HeapBlockFetch(_Q%!36) l_Q%!0=28:_Q%!&C=_Q%!8:_Q%!16=6:_Q%!20=_U%!&98+_U%!&80:_Q%!24=_U%!&84: &400E7,18,_Q%,_Q%!4:_U%!&70=_Q%!8 shell_TopBitLoadInProgress: _U%!&64 shell_DataSaveCheckName(d%,t%): a%,e%,KA%:e%=_U%!72:a%=0: e%<>0 L2KA%= shell_HeapBlockInfo(e%)-8: !(e%+a%)=d% Ree%+=a%:b$= shell_IconGetData(!e%,e%!16): b$,".")=0 shell_OK( shell_MessageNoArgs("SHELLMSG01")) a%=KA% :a%+=24: a%>=KA% shell_DataLoadAck(_Q%): shell_UserMessageAcknowledge(_Q%): _Q%!16 shell_AckDataLoad(_Q%) shell_AckRAMFetch(_Q%) _Q%!8=_SHELL_SENDDATALOAD_MY_REF% RO3_Present ("Filer_Run "+_SHELL_SENDDATALOAD_FILE$) ("Run "+_SHELL_SENDDATALOAD_FILE$) shell_AckRAMFetch(_Q%): BH%,h%:h%=_U%!&9C: _Q%!&C<>_U%!&70 _U%!&80=0 &20023,"Wimp$Scrap",,-1,0,3 ,,BH%: BH%<>0 $(h%+44)=""+ (0):h%!0=(49+ shell_GetString(h%+44))) 3:h%!&C=h%!8:h%!16=2:h%!36=-1: &400E7,18,h%,h%!4:_U%!&6C=h%!8 shell_OK( shell_MessageNoArgs("SHELLMSG14")) shell_HeapBlockReturn(_U%!&98):_U%!&98=0: shell_OK("SHELLMSG06") shell_FindMenuWarnEvent(NA%, i%,sA%,h%,a%,x%,KA%,vA%,m%: fC%:fC%=0:sA%=_U%!&DC:a%=0:x%= :L$="":fC%=0: shell_HeapBlockExists(sA%) :m%+=4: sA%!m%=-1:KA%=m%:m%=0: :h%=!(sA%+a%+0): h%<>-1 h%=NA% :vA%=sA%!(a%+4):L$=$vA%:fC%=sA%!(a%+8):vA%=sA%!(a%+&C):P$=$vA% :a%+=16 a%=KA% a%>=KA% L$="":P$="" fC%=0 shell_EventListMenuWarn(dC%,iG%,L$,P$): h%,vA%,m%,sA%: _U%!&DC=0 _U%!&DC= shell_HeapBlockFetch(32):h%=_U%!&DC:h%!0=dC%:h%!4= shell_HeapBlockFetch( L$+1):$(h%!4)=L$:h%!8=iG%:h%!&C= shell_HeapBlockFetch( P$+1):$(h%!&C)=P$:h%!16=-1:h%!20=-1:h%!24=-1:h%!28=-1 shell_HeapBlockExtend(_U%!&DC,32):_U%!&DC=sA%:m%=0: :m%+=16: sA%!m%=-1:h%=_U%!&DC:h%!m%=dC%:h%!(m%+4)= shell_HeapBlockFetch( L$+1):vA%=h%!(m%+4):$(vA%)=L$:h%!(m%+8)=iG%:h%!(m%+&C)= shell_HeapBlockFetch( P$+1):vA%=h%!(m%+&C):$(vA%)=P$ ;h%!(m%+16)=-1:h%!(m%+20)=-1:h%!(m%+24)=-1:h%!(m%+28)=-1 lwaorigin(A, RA%):QA%=A!0-A!16:RA%=A!&C-A!20: shell_WritableIconHandler(d%,t%,oA%): gA%,EC%,FC%,m%: UE%,ZE%,GA%,rE%:rE%= :gA%= shell_WindowCountIcons(d%):GA%= shell_HeapBlockFetch((gA%+1)*4): &400D3,,GA%: !GA%=-1 shell_HeapBlockReturn(GA%):rE%= &400D6,d%,GA%,&40E000,&E000:EC%=!GA%:m%=0: GA%!m%=t% !UE%=GA%!(m%-4):ZE%=GA%!(m%+4) :m%+=4: GA%!m%=-1:FC%=GA%!(m%-4): shell_FakeMouseClick(d%,0,4) 398,394: t%=FC% &400D2,d%,EC%,-1,-1,-1, shell_IconGetData(d%,EC%)): shell_IconEnsureVisible(d%,EC%) &400D2,d%,ZE%,-1,-1,-1, shell_IconGetData(d%,ZE%)): shell_IconEnsureVisible(d%,ZE%) 399,410: t%=EC% &400D2,d%,FC%,-1,-1,-1, shell_IconGetData(d%,FC%)): shell_IconEnsureVisible(d%,FC%) &400D2,d%,UE%,-1,-1,-1, shell_IconGetData(d%,UE%)): shell_IconEnsureVisible(d%,UE%) &400D2,d%,EC%,-1,-1,-1, shell_IconGetData(d%,EC%)): shell_IconEnsureVisible(d%,EC%) &400D2,d%,FC%,-1,-1,-1, shell_IconGetData(d%,FC%)): shell_IconEnsureVisible(d%,FC%) shell_HeapBlockReturn(GA%) shell_FakeMouseClick(d%,t%,IE%): 6,&F,1:_Q%!8=IE%:_Q%!&C=d%:_Q%!16=t%: shell_Action(6): shell_GetMinXY(n%,K$,p$): eA%,lA%,uA%,_A%,WB%,cB%:dB%=0:OB%=0: K$<>"" &40084,n%>>24 ,,lA%,,_A%: &40097,, (n%>>24)+K$ ,eA%,,uA%: &40088,,eA% ,eA%: &40088,,uA% ,uA%:dB%=uA%-eA%:OB%=_A%-lA% dB%=6*WB%+16* K$:OB%=32 4OB%+=2*cB% p$<>"" &2002E,296, shell_UserSpritesBase,p$ ,,,WB%,cB%,,ZH%;P%: &20035,ZH%,4 ,,aJ%:WB%=WB%<dB%dB%=WB% cB%>OB%OB%=cB% shell_IconGetState(lC%,pC%):!_Q%=lC%:_Q%!4=pC%: &400CE,,_Q%: print_text(L,K,K$): in(L,K-32,L+16* (K$),K) in(A%,B%,C%,D%): newvals:Y=_Q%!28:b=_Q%!32:Q=_Q%!36:W=_Q%!40:c=_Q%!4:T=_Q%!8:V=_Q%!&C:X=_Q%!16:P=_Q%!20:N=_Q%!24:S=V-c:R=X-T:e=P:f=P+S:g=N:h=N-R: max(pA%,rB%): pA%0 ?G<>&D:ZA$=ZA$+ ?G:G+=1: :=ZA$ shell_ScreenToWindowCoords(zH%, WG%,YH%,pJ%,GI%,iH%,nC%:nC%= shell_HeapBlockFetch(&64+( shell_WindowCountIcons(zH%)*32)):WG%=nC%:!WG%=zH%: &400CC,,WG%:YH%=nC%!4:cI%=nC%!16:GI%=nC%!20:iH%=nC%!24:X%=X%+(GI%-YH%):Y%=Y%+(iH%-cI%) shell_HeapBlockReturn(nC%): shell_WimpSlotReadEnd: &400EC,-1,-1 ND%:=ND% shell_WimpSlotClaimMemory(ND%,XB%): &400EC,ND%+XB%,-1 GF%=KA%: ~-h%=sA%+f%:GA$=$(h%!8): (GA$<>"" h%!&C=0) shell_CreateWindow(GA$,w%):z%= shell_HeapBlockFetch(36):z%!0=w%: &400CB,,z%:FB%=(z%!4-z%!&C)/2:GB%=(z%!16-z%!8)/2: shell_HeapBlockReturn(z%) :m$=$(h%!16): m$<>"" h%!&C>0 ("FN"+m$+"("+ h%!&C+")") ("FN"+m$+"("+ w%+")") shell_IsWindowStatic(h%!&C) shell_OpenWindowStatic(h%!&C) h%!&C>0 shell_MessageNoArgs("SHELLMSG09") shell_OpenWindowDynamic2(w%,FB%,GB%) :n$=$(h%!20): n$<>"" h%!&C>0 ("FN"+n$+"("+ h%!&C+")") ("FN"+n$+"("+ w%+")") GA$="":m$="":n$="":i%= shell_OpenWindowStaticNewView(d%): shell_OpenWindow(d%, ,-1): shell_OpenWindowStatic(o%): shell_IsWindowStatic(o%)= shell_OpenWindow(o%,0,-1) shell_InitHelpSystem(I$,VJ%): NA$,MA%,k$,DF%,HC%:_U%!&D4=0: _U%!&D8<>0 shell_HeapBlockReturn(_U%!&D8) @_U%!&D8=0: shell_ScanForHelp: NA$=" -DieWithTask" NA$="" _U%!&64 WI$="":k$= shell_OSVarGetVal( shell_GetAppName+"Res$Path",-1): :MA%= k$,","): MA%>0 shell_FileExists( k$,MA%-1)+ shell_GetAppName) k$,MA%-1)+ shell_GetAppName: shell_StrongHlpChkFiles(I$) k$,MA%+1) shell_FileExists(k$+ shell_GetAppName) ?I$=k$+ shell_GetAppName: shell_StrongHlpChkFiles(I$) shell_OK( shell_MessageOneArg("SHELLMSG26", shell_GetAppName)) I$<>"" shell_FileExists(I$) shell_StrongHlpChkFiles(I$) shell_MessageOneArg("SHELLMSG33",I$) HC%=0 shell_StrongHlpMsg("Help_Install "+I$+NA$):_U%!&64=_U%!&64 shell_HelpWord(QA$): xJ%,h%: _U%!&D0=-1 shell_OSVarExists("StrongHelp$Dir") &600DE,"": _U%!&D8<>0 shell_HeapBlockReturn(_U%!&D8) <_U%!&D8= shell_HeapBlockFetch( QA$+1):h%=_U%!&D8:$h%=QA$ shell_OK( shell_MessageNoArgs("SHELLMSG11")) shell_StrongHlpMsg("Help_Word "+QA$) shell_StrongHlpMsg(FA$): shell_BroadcastMessage(&43B00,FA$): shell_ScanForHelp: uB%,TE%:uB%= shell_HeapBlockFetch(256): :uB%!&C=0: &400E7,19,uB%,-2,_U%!&D4 ,,TE%:_U%!&D4=_U%!&D4+1: TE%<>-1 (_U%!&D4)>64: TE%<>-1 9@uB%!0=24:uB%!&C=0:uB%!16=&400C6:uB%!20=TE%: &400E7,17,uB%,0 shell_HeapBlockReturn(uB%): shell_MemFill(QD%,RH%,kD%): I%,RE%,cF%:RE%=RH% 4:cF%=RH% RE%>0 (RE%*4) 4:QD%!(I%-1)=kD%: cF%>0 Q.QD%=QD%+(RE%*4): cF%-1:QD%?I%=kD%: shell_MenuUpdateHandle(GH%,JH%): KA%,f%,r%,AA%:KA%= shell_HeapBlockInfo(_U%!&C)-8:f%=0:x%= :r%=_U%!&C: :AA%=r%!(f%+8): AA%=GH% r%!(f%+8)=JH% sNf%+=48: (f%>=KA%): shell_MenuLastHandle=GH% _m_Menu_HandleLastOpened%=JH% shell_CheckSelection(oI%): h%,m%:h%=_U%!256: shell_MenuLastHandle=_U%!&FC oI%!m%<>h%!m% m%+=4: h%!m%=-1:=m% shell_MenuGetItemAddress(AA%,jH%): m%,kC%: &45BC7,AA% :kC%=AA%+28+((jH%!m%)*24):AA%=kC%!4:m%+=4: jH%!m%=-1:=kC% shell_GetLastMouseXPos:= Evnts_GetLastMouseXPos shell_GetLastMouseYPos:= Evnts_GetLastMouseYPos shell_UpdateWindowHandle(vB%,HB%): HB%<>vB% Evnts_GetLastWindowClicked=vB% _EVNTS_LAST_WINDOWCLICKED%=HB% !_Q%=vB% !_Q%=HB% shell_UpdateStaticWindowHandle(vB%,HB%): shell_UpdateWindowHandleList(vB%,HB%) shell_MessagesInit(N$, IH%): XB%,n%: 3,"Cannot open message file '"+N$+"'" &41500,,N$ n%,,XB%: IH%=0 shell_HeapBlockFetch(XB%) 30,6,,,17+ ,,KE%:$(KE%+16)=N$: &41501,KE%,KE%+16: shell_WindowSetSpriteArea(w%,IF%): e%,HB%,JF%,KF%:e%= shell_HeapBlockFetch(&64+( shell_WindowCountIcons(w%)*32)):!e%=w%: &400CC,,e%:e%!68=IF%: shell_IconSetSpriteArea(e%!60,e%+76,IF%): (e%!88)>0 JF%=0 (e%!88)-1:KF%=e%+92+JF%*32: shell_IconSetSpriteArea(KF%!16,KF%+20,IF%): &400C3,,e%: &400C1,,e%+4 HB%<>w% shell_UpdateWindowHandle(w%,HB%):w%=HB% shell_HeapBlockReturn(e%):=w% shell_StrongHlpIsAvailable: tB%,aA%:tB%= _U%!&64 ,tB%= shell_OSVarExists("StrongHelp$Dir") :=tB% shell_AttachOpenWindow(d%,f$): e%,h%,a%: shell_MessageOneArg("SHELLMSG27","AttachOpenWindow") shell_GetEventListOffset(d%,-1,_U%+304,&C, ):e%=_U%!304+a%:e%!0=d%:e%!4=-1:e%!8= shell_HeapBlockFetch( (f$)+1):h%=e%!8:$h%=f$: shell_EnsurePoll: :BA%= shell_Poll_I(0,_U%!&94): shell_Action(BA%): BA%=0: shell_WimpGetVersion:=_U%!316 shell_MessageSendDataLoad(tA%,b$): IB%:IB%= shell_HeapBlockFetch(256):IB%!0=256:IB%!4=0:IB%!&C=0:IB%!16=5:IB%!20=0:IB%!28=0:IB%!32=0:IB%!36=0:IB%!40=tA%:$(IB%+44)=b$+ &400E7,18,IB%,0:_SHELL_SENDDATALOAD_MY_REF%=IB%!8 ->_SHELL_SENDDATALOAD_FILE$=b$: shell_HeapBlockReturn(IB%): shell_BinarySearch(_search_term$,HB$,u$,VI%,JG%): _pos%,UD%,_wp$,fE%,iJ%,NG%,nD%,kH%,x%,qE%,i%:JG%+=1:qE%= :UD%=JG%:fE%=0:_pos%=UD% 2:nD%=VI%-1: nD%<0 C nD%=0 :NG%=JG%: :_wp$= ("FN"+HB$+"( _pos% )"):CF%=_pos%: _search_term$=_wp$ ("FN"+u$+"( _search_term$,_wp$ )")= `+NG%=_pos%:UD%=_pos%-nD%:_pos%=UD% 2+fE% nD%=_pos%:fE%=_pos%:UD%=NG%-_pos%:_pos%=UD% 2+fE% kH%=CF% kH%=CF%: p i%=-1 i%=CF% shell_IconLastClicked:= Evnts_GetLastIconClicked shell_QuickSort(u$,z$,_asc%,_start%,_end%): _lo%,_h%,_F%,_temp%,k%:_lo%=_start%:_hi%=_end%:_F%= :_temp%=_lo%-1+ (_hi%+1-_lo%):k%= ("FN"+z$+"(_lo%,_temp%)"): _asc%=0 ("FN"+u$+"(_lo%,_hi%)") ("FN"+z$+"(_lo%,_hi%)"):_F%= ("FN"+u$+"(_hi%,_lo%)") ("FN"+z$+"(_hi%,_lo%)"):_F%= _hi%=_hi%-1 _lo%=_lo%+1 _lo%=_hi%: _start%<_lo%-1 shell_QuickSort(u$,z$,_asc%,_start%,_lo%-1) _hi%+1<_end% shell_QuickSort(u$,z$,_asc%,_hi%+1,_end%) _shell_MS_swap(_D%,DE%): lA$,nA$,mG%,QH%:lA$= shell_MenuGetItemText(_shell_MS_handle%,_D%):nA$= shell_MenuGetItemText(_shell_MS_handle%,DE%):_shell_blk%!0=_D%:_shell_blk%!4=-1:mG%= shell_MenuGetItemHandle(_shell_MS_handle%,_shell_blk%) _shell_blk%!0=DE%:QH%= shell_MenuGetItemHandle(_shell_MS_handle%,_shell_blk%): shell_MenuPutData(mG%,nA$): shell_MenuPutData(QH%,lA$):=0 _shell_MS_comp(_D%,DE%): qA$,yA$,HA%:qA$= shell_MenuGetItemText(_shell_MS_handle%,_D%):yA$= shell_MenuGetItemText(_shell_MS_handle%,DE%): qA$o% shell_UpdateWindowHandle(d%,o%):d%=o% shell_OpenWindow(o%,0,0) shell_HeapBlockReturn(_%): shell_WindowSetTitleCentreJust( _%,NB%,o%,GC%:GC%= shell_WindowIsOpen(d%):_%= shell_HeapBlockFetch(&64+( shell_WindowCountIcons(d%)*32)):!_%=d%: &400CC,,_%:NB%=_%!60: (1<<3))=0 DNB%=NB% (1<<3):_%!60=NB%: &400C3,,_%: &400C1,,_%+4 d%<>o% shell_UpdateWindowHandle(d%,o%):d%=o% shell_OpenWindow(o%,0,0) shell_HeapBlockReturn(_%): shell_GetLastMouseButton:= Evnts_GetLastMouseButton shell_GetLastWindowClicked:= Evnts_GetLastWindowClicked shell_GetLastIconClicked:= Evnts_GetLastIconClicked shell_StrongHlpChkFiles(I$): HC%,i%: shell_FileExists(I$+".HelpData") %&FEC i%=-2 WUaA%= shell_HeapBlockFetch(&D):X%= (N$): #X%=16: &C,4,X%,aA%,4:YB%=!aA%: YB%>0 EA%+=1:FG%=0: &C,4,X%,aA%,4:xB%=!aA%: &C,4,X%,aA%,4:eI%=!aA%: &C,4,X%,aA%,&C:bF%= #X%=YB%+56: &C,4,X%,aA%,4:n%=!aA%: #X%=YB%+72: &C,4,X%,aA%,&C:FG%+= shell_IconIndirSize(YB%,n%,aA%,X%): #X%=YB%+84: &C,4,X%,aA%,4:gA%=!aA%: gA%>0 cD%=0 gA%-1: #X%=YB%+88+(cD%*32)+16: &C,4,X%,aA%,4:n%=!aA%: #X%=YB%+88+(cD%*32)+20: &C,4,X%,aA%,&C:FG%+= shell_IconIndirSize(YB%,n%,aA%,X%): #X%=bF%:bC%+=FG%: xB%>wB% wB%=xB% YB%=0: shell_HeapBlockReturn(aA%):JB%=wB%+bC% shell_TemplateFileInfo3(N$, MA%,bC%,wB%,YB%: m%,nE%,bF%,gA%,cD%,n%:MA%=0:EA%=0:bC%=0:wB%=0:aA%= shell_HeapBlockFetch(&D): &400D9,,N$: :$aA%="*": &400DB,,-1,,,,aA%,MA% ,JB%,fI%,,,,MA%: MA%<>0 JB%>wB% wB%=JB% bC%+=fI%:EA%+=1 MA%=0: &400DA:JB%=wB%+bC%: shell_HeapBlockReturn(aA%): RO3_Present: e%,cC%,R$,HA%:e%= shell_HeapBlockFetch(256): ("Set RO3$Check Y"): ("RMEnsure UtilityModule 3.00 Set RO3$Check N"): 35,"RO3$Check",e%,256,0,0 ,,cC%:e%?cC%=&D: ("Unset RO3$Check"):R$=$e%: shell_HeapBlockReturn(e%): R$="N" HA%= :=HA% _shell_icondrag(d%,t%): shell_IconDragBox(d%,t%):=0 shell_MessageSendPrintSave(OG%,PI%): PI%>1 _U%!336=PI%-1 _U%!336=0 shell_DoSendPrintSave(OG%): shell_DoSendPrintSave(OG%): AB%:AB%= shell_HeapBlockFetch(256):AB%!0=256:AB%!&C=0:AB%!16=&80142:AB%!20=0:AB%!24=0:AB%!28=0:AB%!32=0:AB%!36=256:AB%!40=OG%:$(AB%+44)="PrintOut"+ &400E7,18,AB%,AB%!20,AB%!24: shell_HeapBlockReturn(AB%): shell_HandlePrintFile(_Q%): shell_HandlePrintError(_Q%): shell_HandlePrintTypeOdd(_Q%): shell_HandleSetPrinter(_Q%): shell_3DEnabled: wG%,_3d%: _U%!&64 (1<<&A) 6,&A1,&8C ,,wG%: _3d%= _3d%= _3d%= :=_3d% shell_HandleAttachedDataSave(_Q%,d%,t%): pE%,e%,pG%,_name$,h%,k%: shell_DataSaveCheckName(d%,t%):pE%= shell_GetEventListOffset(d%,-1,_U%+72,24, pE%>=0 &ie%=_U%!72+pE%:pG%=e%!16:_name$= shell_IconGetData(d%,pG%):h%=e%!20: $h%<>"" ("FN"+$h%+"(_name$)") shell_InstallLib(WB$): k%,e$:e$="The library routine 'FNshell_InstallLib' is no longer supported. Please load the library with the LIBRARY command and call the initialise routine with 'void% = FN_shell__init'" 6Gk%= shell_MessageWindow(e$, shell_GetAppName,""):_closedown%= shell_Bumpers_Init:_c_Bumpers_ShiftKeyFactor%=2:_c_Bumpers_CtrlKeyFactor%=4:_c_Bumpers_ShiftCtrlKeyFactor%=8:=0 shell_AttachBumpHandler(b%,g%,DH%,HH%,nB%,oB%,eJ%,bH%,hA$,tA$): c%,a%,A$,q%:A$= shell_GetWindowIdentifier(b%):a%= Evnts_GetEvntListOffset(A$,DH%,_EVNTS_BUMP_ANCHOR%,_EVNTS_BUMP_REC_SIZE%, ):c%=!_EVNTS_BUMP_ANCHOR%:c%+=a%:$c%=A$:c%!&C=DH%:c%!16=eJ% 8c%!20=g%:c%!24=nB%:c%!28=oB%: bH%=-1 c%!40=1 c%!40=0 !_EVNTS_BUMP_DATA%=0 /!_EVNTS_BUMP_DATA%= shell_HeapBlockFetch(1) :q%=c%+32: hA$<>"" Evnts_UpdateData(q%,_EVNTS_BUMP_DATA%,_EVNTS_BUMP_DATAOFFSET%,hA$) !q%=-1 :q%=c%+36: tA$<>"" Evnts_UpdateData(q%,_EVNTS_BUMP_DATA%,_EVNTS_BUMP_DATAOFFSET%,tA$) !q%=-1 Evnts_GetEvntListOffset(A$,HH%,_EVNTS_BUMP_ANCHOR%,_EVNTS_BUMP_REC_SIZE%, ):c%=!_EVNTS_BUMP_ANCHOR%:c%+=a%:$c%=A$:c%!&C=HH%: bH%=-1 c%!40=1 c%!40=0 c%!40=c%!40 (1<<2): shell_EvntHandle_Bumpers(_window_handle%,_icon_handle%): A$,a%,j%,WE%: eB%,uC%,nB%,oB%,eC%,LG%,UG%: vC%,xE%,_new_val$,_new_val%,q%,eA$,KA$: MA$:A$= shell_GetWindowIdentifier(_window_handle%) Evnts_GetEvntListOffset(A$,_icon_handle%,_EVNTS_BUMP_ANCHOR%,_EVNTS_BUMP_REC_SIZE%, ):eC%= shell_GetLastMouseButton: a%>=0 8j%=!_EVNTS_BUMP_ANCHOR%+a%: j%!40 (1<<2) j%!40 (1<<0) j%-=_EVNTS_BUMP_REC_SIZE% IeB%=j%!16:uC%=j%!20:nB%=j%!24:oB%=j%!28:LG%= (-1):UG%= (-2): *eB%=eB%*_c_Bumpers_ShiftCtrlKeyFactor% eB%=eB%*_c_Bumpers_ShiftKeyFactor% eB%=eB%*_c_Bumpers_CtrlKeyFactor% :fB%=!_EVNTS_BUMP_DATA%: fB%>0 j%!32>=0 eA$=$(fB%+j%!32) j%!36>=0 KA$=$(fB%+j%!36) :MA$= shell_IconGetData(_window_handle%,uC%): KA$<>"" )vC%= ("FN"+KA$+"( "+ 34+MA$+ 34+" )") (MA$) eC%=_MSE_ADJUSTBUT _new_val%=vC%+eB% _new_val%=vC%-eB% eC%=_MSE_ADJUSTBUT _new_val%=vC%-eB% _new_val%=vC%+eB% _new_val%>oB% _new_val%=oB% _new_val%oB% _new_val%=nB% _new_val%"" 0_new_val$= ("FN"+eA$+"(_new_val%,"+ eC%+")") _new_val$= _new_val% shell_IconPutData(_window_handle%,uC%,_new_val$, shell_ListBumpers: KA%,r%,y%,f%,PA%,KB%: YD%,ZD%,vA$,GB$,IA%,s%,g$: VH%,uC%,nB%,oB%:r%=!_EVNTS_BUMP_ANCHOR%:y%=_EVNTS_BUMP_REC_SIZE%:PA%=(r%!4)/2: Evnts_DebugListHeader ("Bump ","Window Inc Dec Disp Step Lower Upper Value Change FN"): Evnts_GetHeaderSize: PA%:A$=$(r%+f%):YD%=r%!(f%+&C):ZD%=r%!(f%+&C+_EVNTS_BUMP_REC_SIZE%):VH%=r%!(f%+16):uC%=r%!(f%+20):nB%=r%!(f%+24):oB%=r%!(f%+28):IA%=!_EVNTS_BUMP_DATA%: IA%>0 */vA$=$(IA%+r%!(f%+32)):GB$=$(IA%+r%!(f%+36)) shell_StringPadTrailing(A$,".",&C):g$+=" "+ shell_StringPadLeading( YD%," ",3):g$+=" "+ shell_StringPadLeading( ZD%," ",3):g$+=" "+ shell_StringPadLeading( uC%," ",4):g$+=" "+ shell_StringPadLeading( VH%," ",4) g$+=" "+ shell_StringPadLeading( nB%," ",5):g$+=" "+ shell_StringPadLeading( oB%," ",5):g$+=" "+vA$:f%+=_EVNTS_BUMP_REC_SIZE%*2: shell_Caret_Init: _c_Caret_GetCaretPositionBlk%24:=0 shell_CaretSetPosition(TA%,BB%,EJ%,qI%,VA%,MB%): &400D2,TA%,BB%,EJ%,qI%,VA%,MB%: shell_IconEnsureVisible(TA%,BB%): shell_CaretReadPosition( MB%): &400D3,,_c_Caret_GetCaretPositionBlk%:TA%=_c_Caret_GetCaretPositionBlk%!0:BB%=_c_Caret_GetCaretPositionBlk%!4:pB%=_c_Caret_GetCaretPositionBlk%!8:qB%=_c_Caret_GetCaretPositionBlk%!&C ~*MB%=_c_Caret_GetCaretPositionBlk%!20: shell_CaretSetRight(d%,t%): &400D2,d%,t%,-1,-1,-1, shell_IconGetData(d%,t%)): shell_CaretPutFirstIcon(d%): GA%,gA%:gA%= shell_WindowCountIcons(d%):GA%= shell_HeapBlockFetch((gA%+1)*4): &400D6,d%,GA%,&40E000,&E000: !GA%<>-1 shell_CaretSetRight(d%,!GA%): shell_IconEnsureVisible(d%,!GA%) shell_HeapBlockReturn(GA%): shell_CaretPutLastIcon(d%): shell_CaretMoveCaret(d%,1): shell_CaretPutNextIcon(d%): shell_CaretMoveCaret(d%,2): shell_CaretPutPrevIcon(d%): shell_CaretMoveCaret(d%,3): shell_CaretMoveCaret(d%,BA%): GA%,AH%,m%,f%,zB%: gA%:m%=0:f%=0:gA%= shell_WindowCountIcons(b%):GA%= shell_HeapBlockFetch((gA%+1)*4): &400D3,,GA%: GA%!4<>-1 ?AH%=GA%!4: &400D6,d%,GA%,&40E000,&E000: GA%!m%=AH% f%=m% m%+=4: GA%!m%=-1: 0:zB%=!GA% 1:zB%=GA%!(m%-4) GA%!(f%+4)<>-1 zB%=GA%!(f%+4) zB%=!GA% zB%=GA%!(f%-4) zB%=GA%!(m%-4) &400D2,d%,zB%,-1,-1,-1, shell_IconGetData(d%,zB%)): shell_IconEnsureVisible(d%,zB%) shell_HeapBlockReturn(GA%): shell_CaretMove_Init:_c_CaretPreMove_RecSize%=20: _m_CaretPreMove_Anchor%4: _m_CaretPreMove_DataBlk%4:!_m_CaretPreMove_Anchor%=0:!_m_CaretPreMove_DataBlk%=0:_m_CaretPreMove_DataOffset%=0:_c_CaretPostMove_RecSize%=20: _m_CaretPostMove_Anchor%4 _m_CaretPostMove_DataBlk%4:!_m_CaretPostMove_Anchor%=0:!_m_CaretPostMove_DataBlk%=0:_m_CaretPostMove_DataOffset%=0:=0 shell_AttachCaretPreMoveHandler(b%,B$): c%,a%,A$,q%,bA%: shell_GetWindowIdentifier(b%):a%= Evnts_GetEvntListOffset(A$,-1,_m_CaretPreMove_Anchor%,_c_CaretPreMove_RecSize%, ):c%=!_m_CaretPreMove_Anchor%:bA%=c%!4:c%+=a%:$c%=A$:c%!&C=-1: !_m_CaretPreMove_DataBlk%=0 E"" ]aa%= Evnts_GetEvntListOffset(A$,-1,_m_CaretPreMove_Anchor%,_c_CaretPreMove_RecSize%, a%>=0 j%=!_m_CaretPreMove_Anchor%+a%:FA%=j%!16:v%=!_m_CaretPreMove_DataBlk%:B$=$(v%+FA%):k%= ("FN"+B$+"( _window_handle%, _icon_handle% )") shell_AttachCaretPostMoveHandler(b%,B$): c%,a%,A$,q%,bA%: shell_GetWindowIdentifier(b%):a%= Evnts_GetEvntListOffset(A$,-1,_m_CaretPostMove_Anchor%,_c_CaretPostMove_RecSize%, ):c%=!_m_CaretPostMove_Anchor%:bA%=c%!4:c%+=a%:$c%=A$:c%!&C=-1: !_m_CaretPostMove_DataBlk%=0 =!_m_CaretPostMove_DataBlk%= shell_HeapBlockFetch( (B$)+1) :q%=c%+16: Evnts_UpdateData(q%,_m_CaretPostMove_DataBlk%,_m_CaretPostMove_DataOffset%,B$) shell_EvntHandle_CaretPostMove(_window_handle%,_icon_handle%): A$,a%,j%,FA%,v%,B$: k%:A$= shell_GetWindowIdentifier(_window_handle%): A$<>"" Evnts_GetEvntListOffset(A$,-1,_m_CaretPostMove_Anchor%,_c_CaretPostMove_RecSize%, a%>=0 j%=!_m_CaretPostMove_Anchor%+a%:FA%=j%!16:v%=!_m_CaretPostMove_DataBlk%:B$=$(v%+FA%):k%= ("FN"+B$+"( _window_handle%, _icon_handle% )") shell_DataLoad_Init:_c_DLoad_ICONBAR_ICON%=-1:_c_DLoad_RecSize%=24:_m_DLoad_FileType%=-1:_m_DLoad_FileName$="":_m_DLoad_DestIconHandle%=-1:_m_DLoad_DestWindowHandle%=-1:_m_DLoad_WindowName$="":_m_DLoad_CmdLineFileName$= shell_OSReadCommandArg(1) _m_DLoad_CmdLineFileName$<>"" `_m_DLoad_LoadPending%= :_m_DLoad_CmdLineFileType%= shell_FileType(_m_DLoad_CmdLineFileName$) _m_DLoad_LoadPending%= :_m_DLoad_CmdLineFileType%=-1 _m_DLoad_Anchor%4: _m_DLoad_DataBlk%4:!_m_DLoad_Anchor%=0:!_m_DLoad_DataBlk%=0:_EVNTS_DATALOAD_DATAOFFSET%=0: _m_DLoad_WORKBUFFER%4:=0 DataLoad_LoadIsPending:=_m_DLoad_LoadPending% DataLoad_ClearLoadIsPendingFlag:_m_DLoad_LoadPending%= DataLoad_GetIconBarIconNr:=_c_DLoad_ICONBAR_ICON% DataLoad_GetAnchor:=_m_DLoad_Anchor% DataLoad_GetDataBlk:=_m_DLoad_DataBlk% DataLoad_GetDataOffset:=_EVNTS_DATALOAD_DATAOFFSET% DataLoad_GetRecSize:=_c_DLoad_RecSize% DataLoad_SetFileName(Y$):_m_DLoad_FileName$=Y$: DataLoad_GetFileName:=_m_DLoad_FileName$ shell_AttachDataLoad(b%,g%,iA%,f$,mH%): c%,a%,A$,q%,bA%: qJ%,m%,HK%,JK%,hE%: b%=_IBAR_RIGHT% b%=_IBAR_LEFT% _c_DLoad_ICONBAR_ICON%=g% iA%=iA% 1<<31 iA%=-1 shell_GetWindowIdentifier(b%):a%= Evnts_GetEvntListOffset(A$,g%,_m_DLoad_Anchor%,_c_DLoad_RecSize%, ):c%=!_m_DLoad_Anchor%:bA%=c%!4: a%>=0 c%+=a%:OI%=c%!16: OI%<>-1 99,"More than one dataload event attached to this window/icon pair" Evnts_GetEvntListOffset3(A$,g%,iA%,_m_DLoad_Anchor%,_c_DLoad_RecSize%, ):c%=!_m_DLoad_Anchor%:bA%=c%!4:c%+=a%:$c%=A$:c%!&C=g%:c%!16=iA%: !_m_DLoad_DataBlk%=0 S5!_m_DLoad_DataBlk%= shell_HeapBlockFetch( (f$)+1) :q%=c%+20: Evnts_UpdateData(q%,_m_DLoad_DataBlk%,_EVNTS_DATALOAD_DATAOFFSET%,f$): _m_DLoad_CmdLineFileName$<>"" _m_DLoad_LoadPending% 1<<31 hE%=iA% 1<<31 hE%=iA% _m_DLoad_CmdLineFileType%=hE% shell_FileExists(_m_DLoad_CmdLineFileName$) shell_MessageSendDataLoad(hE%,_m_DLoad_CmdLineFileName$):_m_DLoad_LoadPending%= shell_EvntHandle_DataLoad(ZB%,yC%):_m_DLoad_FileType%=ZB%!40:_m_DLoad_DestWindowHandle%=ZB%!20:_m_DLoad_DestIconHandle%=ZB%!24:_m_DLoad_FileName$= shell_GetString(ZB%+44): shell_Tracef0("EvntHandle_DataLoad:filename is : "+_m_DLoad_FileName$) shell_Tracef0("EvntHandle_DataLoad:filetype is : &"+ ~(_m_DLoad_FileType%)): DataLoad_OKToLoad(yC%) shell_Tracef0("EvntHandle_DataLoad:DataLoad message received"): shell_Tracef0("EvntHandle_DataLoad:Double click load type.."): DataLoad_ProcessDClickLoad _m_DLoad_WindowName$= shell_GetWindowIdentifier(_m_DLoad_DestWindowHandle%): shell_Tracef0("EvntHandle_DataLoad:Drag load type.."): shell_Tracef0("EvntHandle_DataLoad:Load to window '"+_m_DLoad_WindowName$+"'"): DataLoad_ProcessDragLoad DataLoad_ProcessDClickLoad: a%:a%= Evnts_GetEvntListOffset("iconbar",_c_DLoad_ICONBAR_ICON%,_m_DLoad_Anchor%,_c_DLoad_RecSize%, DataLoad_ProcessLoadRequest(a%): DataLoad_ProcessDragLoad: a%,WI%,bB%,f%:c%=!_m_DLoad_Anchor%:WI%=c%!0:a%= Evnts_GetEvntListOffset3(_m_DLoad_WindowName$,_m_DLoad_DestIconHandle%,-1,_m_DLoad_Anchor%,_c_DLoad_RecSize%, a%=-1 Evnts_GetEvntListOffset3(_m_DLoad_WindowName$,_m_DLoad_DestIconHandle%,-1 (1<<31),_m_DLoad_Anchor%,_c_DLoad_RecSize%, a%=-1 Evnts_GetEvntListOffset3(_m_DLoad_WindowName$,-1,-1,_m_DLoad_Anchor%,_c_DLoad_RecSize%, a%=-1 Evnts_GetEvntListOffset3(_m_DLoad_WindowName$,-1,-1 (1<<31),_m_DLoad_Anchor%,_c_DLoad_RecSize%, a%=-1 Evnts_GetEvntListOffset3(_m_DLoad_WindowName$,_m_DLoad_DestIconHandle%,_m_DLoad_FileType%,_m_DLoad_Anchor%,_c_DLoad_RecSize%, Evnts_GetEvntListOffset3(_m_DLoad_WindowName$,-1,_m_DLoad_FileType%,_m_DLoad_Anchor%,_c_DLoad_RecSize%, ):c%=!_m_DLoad_Anchor% a%>-1 DataLoad_ProcessLoadRequest(a%) DataLoad_ProcessLoadRequest(a%): iA%,bB%: a%>-1 zc%=!_m_DLoad_Anchor%:c%+=a%:iA%=c%!16: shell_Tracef0("DataLoad_ProcessLoadRequest:file_type% = &"+ ~(iA%)): 1<<31 _U%!&64=_U%!&64 :bB%=iA% (1<<31): shell_Tracef0("DataLoad_ProcessLoadRequest:converted_file_type% = &"+ ~(bB%)): bB%=_m_DLoad_FileType% iA%=-1 shell_Tracef0("DataLoad_ProcessLoadRequest:File type recognised (&"+ ~_Q%!40+")"):xI%=_Q%!&C:_Q%!&C=_Q%!8:_Q%!16=4: &400E7,18,_Q%,_Q%!4: shell_TopBitLoadInProgress shell_Tracef0("DataLoad_ProcessLoadRequest:top bit type load.. ") shell_Tracef0("DataLoad_ProcessLoadRequest:not a top bit type load..") shell_TopBitLoadInProgress yB%=-1:_U%!&64=_U%!&64 shell_Tracef0("DataLoad_ProcessLoadRequest:autoloading file.."):yB%= shell_LoadFile(xI%=_U%!&6C) shell_Tracef0("DataLoad_ProcessLoadRequest:calling user file load routine.."): DataLoad_CallUserFN(yB%,_m_DLoad_FileType%,_Q%!36,c%): _U%!&9C<>0 shell_HeapBlockReturn(_U%!&9C):_U%!&9C=0 shell_Tracef0("DataLoad_ProcessLoadRequest:File type NOT recognised (&"+ ~_Q%!40+")") DataLoad_CheckType(yD%,yC%): BK%,m%,x%,h%,zD%,HA%:m%=0:x%=-1:zD%= _U%!&64 _U%!&64=_U%!&64 yD%=-1 yD%!m%<>-1:h%=yD%!m%: 1<<31 h%=h% 1<<31:zD%= h%=_m_DLoad_FileType% x%=m%: _U%!&64=_U%!&64 :m%+=4: (_m_DLoad_FileType%>=4096) x%=-1 x%<>-1 HA%= :=HA% DataLoad_CallUserFN(yB%,iA%,_file_size%,c%): k%,wE%,HA$,nA%:wE%=c%!20: wE%>-1 ,3nA%=!_m_DLoad_DataBlk%:HA$=$(nA%+wE%): HA$<>"" 2gk%= ("FN"+HA$+"("+ yB%+","+ _m_DLoad_FileType%+","+ 34+_m_DLoad_FileName$+ 34+","+ _file_size%+")") DataLoad_OKToLoad(yC%): i%,JA$,rA$: shell_Tracef0("DataLoad_OKToLoad:Message reason code was 3, normal drag load.."):i%= shell_Tracef0("DataOpenOKToLoad:Message reason code was 5, double click load.."):JA$= shell_OSVarGetVal("Alias$@RunType_"+ ~_m_DLoad_FileType%,1): shell_Tracef0("DataLoad_OKToLoad:Alias$@RunType="+JA$):rA$= shell_Branch(JA$) shell_Leaf(rA$)="!"+ shell_GetAppName shell_ListDataLoad: j%,f%,bA%,m%,yD%,hJ%: g%,s%,g$,aB$:j%=!_m_DLoad_Anchor%:bA%=j%!4: Evnts_DebugListHeader ("DataLoad ","Window Icon Filetype NL LoadFN"): shell_Tracef0(" "): shell_DataSave_Init: _m_DSave_Anchor%4: _m_DSave_DataBlk%4:!_m_DSave_Anchor%=0:!_m_DSave_DataBlk%=0:_m_DSave_DataOffset%=0:_m_DSave_WindowName$="":_m_DSave_EvntOffset%=-1:_m_DSave_EvntList%=-1:_m_DSave_FileName$="":_m_DSave_FullFileName$="" _m_DSave_NameIcon%=-1:_m_DSave_FileType%=-1:_m_DSave_DataAddress%=-1:_m_DSave_UserFN$="":_m_DSave_DestTaskHandle%=-1:_m_DSave_DestWindowHandle%=-1:_m_DSave_DestIconHandle%=-1:_m_DSave_MouseXCoord%=-1:_m_DSave_MouseYCoord%=-1:_m_DSave_MessageMyRef%=-1 _m_DSave_DragASpriteInProgress%= :_m_DSave_DragInProgress%= :_c_DSave_NotSpriteMess$="SHELLMSG29":_c_DSave_NoFileNameMess$="SHELLMSG28":_c_DSave_NotASpriteIcon$="SHELLMSG19":_c_DSave_NotAHeapBlockMess$="SHELLMSG21":_c_DSave_RecDiedMess$="SHELLMSG39" N_c_DSave_ButtonTypeClick%=6:_c_DSave_DataSize%=&64:_c_DSave_RecSize%=32:=0 DataSave_GetAnchor:=_m_DSave_Anchor% DataSave_GetDataBlk:=_m_DSave_DataBlk% DataSave_GetDataOffset:=_m_DSave_DataOffset% DataSave_SetDataOffset(OA%):_m_DSave_DataOffset%=OA%: shell_DataSaveResetDragFlags:_m_DSave_DragASpriteInProgress%= :_m_DSave_DragInProgress%= shell_DataSaveResetDragInProgressFlag:_m_DSave_DragInProgress%= shell_DataSaveSetDragInProgressFlag:_m_DSave_DragInProgress%= shell_DataSaveResetDragASpriteInProgressFlag:_m_DSave_DragASpriteInProgress%= shell_DataSaveSetDragASpriteInProgressFlag:_m_DSave_DragASpriteInProgress%= shell_AttachDataSave(b%,g%,FF%,iA%,_G%,B$): A$,a%,c%,bA%,q%: shell_IconIsSprite(b%,g%) shell_OK( shell_MessageNoArgs(_c_DSave_NotSpriteMess$)) shell_IconSetButtonType(b%,g%,_c_DSave_ButtonTypeClick%): FF%=0 FF%=_c_DSave_DataSize% shell_GetWindowIdentifier(b%):a%= Evnts_GetEvntListOffset(A$,g%,_m_DSave_Anchor%,_c_DSave_RecSize%, ):c%=!_m_DSave_Anchor%:bA%=c%!4:c%+=a%:$c%=A$:c%!&C=g%:c%!16=iA%:c%!20=_G%:c%!24=FF%: !_m_DSave_DataBlk%=0 G5!_m_DSave_DataBlk%= shell_HeapBlockFetch( (B$)+1) :q%=c%+28: Evnts_UpdateData(q%,_m_DSave_DataBlk%,_m_DSave_DataOffset%,B$): shell_EvntHandle_DataSaveStartDrag(b%,g%): FA%,v%:_m_DSave_DragInProgress%= :_m_DSave_WindowName$= shell_GetWindowIdentifier(b%):_m_DSave_EvntOffset%= Evnts_GetEvntListOffset(_m_DSave_WindowName$,g%,_m_DSave_Anchor%,_c_DSave_RecSize%, _m_DSave_EvntOffset%>=0 _m_DSave_EvntList%=!_m_DSave_Anchor%+_m_DSave_EvntOffset%:_m_DSave_FileType%=_m_DSave_EvntList%!16:_m_DSave_NameIcon%=_m_DSave_EvntList%!20:_m_DSave_DataAddress%=_m_DSave_EvntList%!24:v%=!_m_DSave_DataBlk%:FA%=_m_DSave_EvntList%!28 bs_m_DSave_UserFN$=$(v%+FA%):_m_DSave_FileName$= shell_IconGetData(b%,_m_DSave_NameIcon%): _m_DSave_FileName$="" shell_OK( shell_MessageNoArgs(_c_DSave_NoFileNameMess$)) :_m_DSave_DragInProgress%= shell_IconDragBox(b%,g%) shell_EvntHandle_DataSaveEndDrag: xA%,yA%,MF%: _m_DSave_DragInProgress% _m_DSave_DragASpriteInProgress% &42401:_m_DSave_DragASpriteInProgress%= :_m_DSave_DragInProgress%= :xA%= shell_HeapBlockFetch(30): &400CF,,xA%:_m_DSave_DestTaskHandle%=xA%!4:_m_DSave_DestWindowHandle%=xA%!&C:_m_DSave_DestIconHandle%=xA%!16:_m_DSave_MouseXCoord%=xA%!0:_m_DSave_MouseYCoord%=xA%!4: _m_DSave_DataAddress%>&8000 5MF%= shell_HeapBlockInfo(_m_DSave_DataAddress%)-4 MF%=_m_DSave_DataAddress% :yA%= shell_HeapBlockFetch(60):yA%!0=60:yA%!&C=0:yA%!16=1:yA%!20=_m_DSave_DestWindowHandle%:yA%!24=_m_DSave_DestIconHandle%:yA%!28=_m_DSave_MouseXCoord%:yA%!32=_m_DSave_MouseXCoord%:yA%!36=MF%:yA%!40=_m_DSave_FileType% $(yA%+44)= shell_Leaf(_m_DSave_FileName$): &400E7,18,yA%,_m_DSave_DestWindowHandle%,_m_DSave_DestIconHandle%:_m_DSave_MessageMyRef%=yA%!8: shell_HeapBlockReturn(xA%): shell_HeapBlockReturn(yA%) shell_DataSaveAck(JA%): NF%,k%:NF%=JA%!&C: shell_Tracef0("PROCshell_DataSaveAck: your_ref% is "+ (NF%)): NF%=_m_DSave_MessageMyRef% shell_Tracef0("PROCshell_DataSaveAck: Our DataSave Message from the last fileicon drag has been acknowledged"): shell_Tracef0("PROCshell_DataSaveAck: so we can go ahead and save the file.."):_m_DSave_FullFileName$= shell_GetString(JA%+44) shell_Tracef0("PROCshell_DataSaveAck: full filename is : "+_m_DSave_FullFileName$): _m_DSave_UserFN$<>"" ("FN"+_m_DSave_UserFN$+"( "+ 34+_m_DSave_FullFileName$+ 34+" )") shell_Tracef0("PROCshell_DataSaveAck: no file saving routine specified for this event, so check if data is in a heapblock.."): shell_HeapBlockExists(_m_DSave_DataAddress%) 8,&A,_m_DSave_FullFileName$,_m_DSave_FileType%,,_m_DSave_DataAddress%,_m_DSave_DataAddress%+ shell_HeapBlockInfo(_m_DSave_DataAddress%)+1 shell_MessageNoArgs(_c_DSave_NotAHeapBlockMess$) shell_Tracef0("PROCshell_DataSaveAck: file is 'secure'"):JA%!16=3:JA%!0=256:JA%!20=_m_DSave_DestWindowHandle%:JA%!24=_m_DSave_DestIconHandle%:JA%!40=_m_DSave_FileType%:JA%!36= shell_FileLength(_m_DSave_FullFileName$):JA%!&C=JA%!8 $(JA%+44)=_m_DSave_FullFileName$+ &400E7,18,JA%,_m_DSave_DestWindowHandle%,_m_DSave_DestIconHandle%:_m_DSave_MessageMyRef%=JA%!8: _U%!80<>0 shell_HeapBlockReturn(_U%!80) _U%!80= shell_HeapBlockFetch( _m_DSave_FullFileName$+1):$(_U%!80)=_m_DSave_FullFileName$: Evnts_GetLastWindowClicked<> shell_GetDynamicWindowHandle shell_MenuCloseAll shell_ListDataSave: DataSave_SaveEvnts(u%): shell_AckDataLoad(_Q%): _Q%!&C<>_m_DSave_MessageMyRef% shell_DataSaveDragInProgress:=_m_DSave_DragInProgress%:B shell_Debug_Init:=0 shell_TraceOn:_U%!&64=_U%!&64 1<<9: shell_BroadcastMessage(&43B00,"ShellDBug:TraceOn"): shell_TraceOff: (_U%!&64 (1<<9)) _U%!&64=_U%!&64 (1<<9) shell_BroadcastMessage(&43B00,"ShellDBug:TraceOff"): shell_TraceInit(x$): mA%,G$,D$: x$<>"" (x$):_U%!44=mA% shell_OSVarGetVal("Obey$Dir",1):G$= shell_Leaf(D$),2): shell_BroadcastMessage(&43B00,"ShellDBug:Init Debug messages from "+G$): _U%!&64 _U%!&64=(_U%!&64 1<<4) shell_TraceIsOn: _U%!&64 (1<<9) shell_Tracef0(fA$): shell_TraceIsOn= _U%!44<>-1 mA%=_U%!44: #mA%,fA$ _U%!&94>0 shell_BroadcastMessage(&43B00,"ShellDBug:Trace "+fA$) shell_Tracef2(DB%): ("MEDIT "+ ~DB%): shell_TraceExit: _U%!44<>-1 #(_U%!44):_U%!44=-1 shell_Errors_Init:_m_ERRNR_NONFATAL%=&D00:_m_ERRNR_CLAIMMEM%=&903: _m_ERRORS_ERR_BLK%256:=0 shell_Error: MA%,CA$: &606C2: <>_m_ERRNR_NONFATAL% <>_m_ERRNR_CLAIMMEM% 1<<31) shell_FatalError shell_OSCheckVersion(3) shell_FileExists("Resources:$.Resources.Edit.ThrowBack") ("Set Basic$File <"+ shell_GetAppName+"$BasicFile>"): "Edit:ThrowBack" shell_ErrorBox("Unexpected error:- "+ $+" (Internal error code "+ +")") $:MA%= $,"in "+ 34+"EvntShell:ShellLib"): MA%>0 $,MA%-1) =CA$+=" (Internal error code "+ +")": shell_ErrorBox(CA$) shell_OK(EB$): _m_ERRNR_NONFATAL%,EB$ shell_FatalError: &606C2: shell_OSCheckVersion(3) shell_FileExists("Resources:$.Resources.Edit.ThrowBack") 1<<31) shell_Exit ("Set Basic$File <"+ shell_GetAppName+"$BasicFile>"): "Edit:ThrowBack" shell_ErrorBox("Unexpected error:- "+ $+" Internal error code "+ shell_ErrorBox(AB$): tB%:!_m_ERRORS_ERR_BLK%= :$(_m_ERRORS_ERR_BLK%+4)=AB$+ =_m_ERRNR_NONFATAL% =_m_ERRNR_CLAIMMEM% &600DF,_m_ERRORS_ERR_BLK%,17,"XMessage from "+ shell_GetAppName &600DF,_m_ERRORS_ERR_BLK%,1, shell_GetAppName _shell_Evnts_Init:_m_Evnts_HeaderSize%=8:_m_Evnts_LastEvntOffset%=-1: _c_Evnts_WorkBuffer%256: _c_Evnts_PaneBlk%&BB8: _EVNTS_CLICKSELECT_ANCHOR%4: _EVNTS_CLICKADJUST_ANCHOR%4: _EVNTS_CLICKMENU_ANCHOR%4: _EVNTS_HELPTAG_ANCHOR%4 _EVNTS_POPUPS_ANCHOR%4: _EVNTS_PANES_ANCHOR%4: _EVNTS_SLIDERS_ANCHOR%4: _EVNTS_POINTERIN_ANCHOR%4: _EVNTS_POINTEROUT_ANCHOR%4: _EVNTS_DATASAVE_ANCHOR%4: _EVNTS_REDRAW_ANCHOR%4: _EVNTS_DRAG_ANCHOR%4: _EVNTS_BUMP_ANCHOR%4: _EVNTS_WINDOWOPEN_ANCHOR%4 _EVNTS_WINDOWCLOSE_ANCHOR%4: _EVNTS_ICONWATCH_ANCHOR%4: _EVNTS_MENUHELPTAG_ANCHOR%4:!_EVNTS_CLICKSELECT_ANCHOR%=0:!_EVNTS_CLICKADJUST_ANCHOR%=0:!_EVNTS_CLICKMENU_ANCHOR%=0:!_EVNTS_HELPTAG_ANCHOR%=0:!_EVNTS_POPUPS_ANCHOR%=0:!_EVNTS_SLIDERS_ANCHOR%=0 !_EVNTS_PANES_ANCHOR%=0:!_EVNTS_POINTERIN_ANCHOR%=0:!_EVNTS_POINTEROUT_ANCHOR%=0:!_EVNTS_DATASAVE_ANCHOR%=0:!_EVNTS_REDRAW_ANCHOR%=0:!_EVNTS_DRAG_ANCHOR%=0:!_EVNTS_BUMP_ANCHOR%=0:!_EVNTS_WINDOWOPEN_ANCHOR%=0:!_EVNTS_WINDOWCLOSE_ANCHOR%=0 !_EVNTS_ICONWATCH_ANCHOR%=0:!_EVNTS_MENUHELPTAG_ANCHOR%=0: _EVNTS_CLICKSELECT_DATA%4: _EVNTS_CLICKADJUST_DATA%4: _EVNTS_CLICKMENU_DATA%4: _EVNTS_HELPTAG_DATA%4: _EVNTS_POPUPS_DATA%4: _EVNTS_PANES_DATA%4: _EVNTS_SLIDERS_DATA%4: _EVNTS_POINTERIN_DATA%4 _EVNTS_POINTEROUT_DATA%4: _EVNTS_DATASAVE_DATA%4: _EVNTS_REDRAW_DATA%4: _EVNTS_DRAG_DATA%4: _EVNTS_BUMP_DATA%4: _EVNTS_WINDOWOPEN_DATA%4: _EVNTS_WINDOWCLOSE_DATA%4: _EVNTS_ICONWATCH_DATA%4: _EVNTS_MENUHELPTAG_DATA%4:!_EVNTS_CLICKSELECT_DATA%=0 !_EVNTS_CLICKADJUST_DATA%=0:!_EVNTS_CLICKMENU_DATA%=0:!_EVNTS_HELPTAG_DATA%=0:!_EVNTS_POPUPS_DATA%=0:!_EVNTS_PANES_DATA%=0:!_EVNTS_POINTERIN_DATA%=0:!_EVNTS_POINTEROUT_DATA%=0:!_EVNTS_DATASAVE_DATA%=0:!_EVNTS_REDRAW_DATA%=0:!_EVNTS_DRAG_DATA%=0 !_EVNTS_BUMP_DATA%=0:!_EVNTS_WINDOWOPEN_DATA%=0:!_EVNTS_WINDOWCLOSE_DATA%=0:!_EVNTS_SLIDERS_DATA%=0:!_EVNTS_ICONWATCH_DATA%=0:!_EVNTS_MENUHELPTAG_DATA%=0:_EVNTS_CLICKSELECT_REC_SIZE%=20:_EVNTS_CLICKADJUST_REC_SIZE%=20:_EVNTS_CLICKMENU_REC_SIZE%=24 _EVNTS_HELPTAG_REC_SIZE%=20:_EVNTS_POPUPS_REC_SIZE%=36:_EVNTS_PANES_REC_SIZE%=32:_EVNTS_POINTERIN_REC_SIZE%=20:_EVNTS_POINTEROUT_REC_SIZE%=20:_EVNTS_DATASAVE_REC_SIZE%=20:_EVNTS_REDRAW_REC_SIZE%=20:_EVNTS_DRAG_REC_SIZE%=28:_EVNTS_BUMP_REC_SIZE%=44 _EVNTS_SLIDERS_REC_SIZE%=40:_EVNTS_WINDOWOPEN_REC_SIZE%=20:_EVNTS_WINDOWCLOSE_REC_SIZE%=20:_EVNTS_ICONWATCH_REC_SIZE%=24:_EVNTS_MENUHELPTAG_REC_SIZE%=20:_EVNTS_CLICKSELECT_DATAOFFSET%=0:_EVNTS_CLICKADJUST_DATAOFFSET%=0:_EVNTS_CLICKMENU_DATAOFFSET%=0 _EVNTS_HELPTAG_DATAOFFSET%=0:_EVNTS_POPUPS_DATAOFFSET%=0:_EVNTS_PANES_DATAOFFSET%=0:_EVNTS_POINTERIN_DATAOFFSET%=0:_EVNTS_POINTEROUT_DATAOFFSET%=0:_EVNTS_DATASAVE_DATAOFFSET%=0:_EVNTS_REDRAW_DATAOFFSET%=0:_EVNTS_DRAG_DATAOFFSET%=0 _EVNTS_BUMP_DATAOFFSET%=0:_EVNTS_SLIDERS_DATAOFFSET%=0:_EVNTS_WINDOWOPEN_DATAOFFSET%=0:_EVNTS_WINDOWCLOSE_DATAOFFSET%=0:_EVNTS_ICONWATCH_DATAOFFSET%=0:_EVNTS_MENUHELPTAG_DATAOFFSET%=0:_EVNTS_LAST_MOUSEBUTTON%=0:_EVNTS_LAST_MOUSEXPOS%=0 _EVNTS_LAST_MOUSEYPOS%=0:_EVNTS_LAST_ICONCLICKED%=-1:_EVNTS_LAST_WINDOWCLICKED%=-1:_EVNTS_LAST_MENUMAKER_FN$="":_m_evnts_DestTaskHandle%=-1:_m_evnts_DestWindowHandle%=-1:_m_evnts_DestIconHandle%=-1:_m_evnts_MouseXCoord%=-1:_m_evnts_MouseYCoord%=-1 _m_evnts_DragIconStartWindow%=-1:_m_evnts_DragIconStartIcon%=-1:_m_evnts_DragIconWritableDrag%= :_m_evnts_DragIconWinXMin%=0:_m_evnts_DragIconWinYMin%=0:_m_evnts_DragIconWinXMax%=0:_m_evnts_DragIconWinYMax%=0:_m_evnts_DragIconMouseX%=0 _m_evnts_DragIconMouseY%=0:_m_evnts_DragIconLastScrollUp%=0:_m_evnts_DragIconLastScrollDown%=0:_m_evnts_DragIconLastScrollLeft%=0:_m_evnts_DragIconLastScrollRight%=0:_m_evnts_DragIconLastDX%=0:_m_evnts_DragIconLastDY%=0:_m_evnts_DragIconMargin%=32 _m_evnts_UserDragInProgress%= :_m_evnts_PopupMenuItemNr%=-1:_c_evnts_MaxIconWatchEvnts%=&64: _c_evnts_CurrentContents$(_c_evnts_MaxIconWatchEvnts%-1):_c_evnts_CurrentContents$()="":=0 Evnts_GetPopMenuItemNr:=_m_evnts_PopupMenuItemNr% Evnts_GetEvntListOffset(A$,g%,j%,y%,fD%): KA%,f%,x%,a%,CB%,KB%: A$="IconBar" g%=-1:A$="iconbar" :a%=0: (!j%=0 @ a%=-2 A$="" C a%=-1 (!j%=0) shell_HeapBlockFetch(y%+_m_Evnts_HeaderSize%):CB%=!j%:CB%!0=y%:CB%!4=1:$(CB%+_m_Evnts_HeaderSize%)="": s%=&C (y%-4) 4:CB%!(s%+_m_Evnts_HeaderSize%)=-1: s%:_m_Evnts_LastEvntOffset%=_m_Evnts_HeaderSize%:a%=_m_Evnts_HeaderSize% a%<>_m_Evnts_HeaderSize% WYCB%=!j%:KA%=!CB%:f%=_m_Evnts_HeaderSize%:x%= :a%=-1:aI%=-1:KB%=!j%: ($(KB%+f%)=A$) KB%!(f%+&C)=g% a%=f%:x%= f%+=y% f%+=y% ((f%>=(KA%+_m_Evnts_HeaderSize%)) (a%=-1 a%=KA%+_m_Evnts_HeaderSize%:!j%= shell_HeapBlockExtend(!j%,y%):gB%=!j%:gB%!0+=y%:gB%!4+=1:gB%+=a%:$(gB%)="": s%=&C (y%-4) 4:gB%!s%=-1: :_m_Evnts_LastEvntOffset%=a% Evnts_UpdateData(q%,IC%, OA%,E$): !q%=-1 Q!q%=OA%:!IC%= shell_HeapBlockExtend(!IC%, (E$)+1):$(!IC%+OA%)=E$:OA%+= (E$)+1 t$=$(!IC%+!q%): t$<>E$ (E$)<= $(!IC%+!q%)=E$ !IC%= shell_HeapBlockExtend(!IC%, (E$)+1):$(!IC%+OA%)=E$:!q%=OA%:OA%+= (E$)+1 Evnts_DebugListHeader(ZB$,UB$): shell_AttachClickSelect(b%,g%,B$): a%,c%,q%,A$:A$= shell_GetWindowIdentifier(b%): A$="iconbar" g%=-1 Evnts_GetEvntListOffset(A$,g%,_EVNTS_CLICKSELECT_ANCHOR%,_EVNTS_CLICKSELECT_REC_SIZE%, ):c%=!_EVNTS_CLICKSELECT_ANCHOR%:c%+=a%:$c%=A$:c%!&C=g%: !_EVNTS_CLICKSELECT_DATA%=0 =0 j%=!_EVNTS_CLICKSELECT_ANCHOR%+a%:FA%=j%!16:v%=!_EVNTS_CLICKSELECT_DATA%:B$=$(v%+FA%):k%= ("FN"+B$+"( _window_handle%, _icon_handle% )"): _icon_handle%=0 _window_handle%=_U%!20 shell_CloseWindow(_window_handle%) _icon_handle%>=0 A$<>"iconbar" shell_EvntHandle_PopupMenu(_window_handle%,_icon_handle%): shell_EvntHandle_Bumpers(_window_handle%,_icon_handle%) shell_ListClickSelect: KA%,r%,y%,f%,PA%,KB%: g%,B$,IA%,s%:r%=!_EVNTS_CLICKSELECT_ANCHOR%:y%=_EVNTS_CLICKSELECT_REC_SIZE%:PA%=r%!4: Evnts_DebugListHeader ("ClickSelect","Window Icon FN"): f%=_m_Evnts_HeaderSize%: PA%:A$=$(r%+f%):g%=r%!(f%+&C):IA%=!_EVNTS_CLICKSELECT_DATA%: IA%>0 B$=$(IA%+r%!(f%+16)) :f%+=_EVNTS_CLICKSELECT_REC_SIZE%: shell_AttachClickAdjust(b%,g%,B$): a%,c%,A$:A$= shell_GetWindowIdentifier(b%): A$="iconbar" > g%=-1 Evnts_GetEvntListOffset(A$,g%,_EVNTS_CLICKADJUST_ANCHOR%,_EVNTS_CLICKADJUST_REC_SIZE%, ):c%=!_EVNTS_CLICKADJUST_ANCHOR%:c%+=a%:$c%=A$:c%!&C=g%: !_EVNTS_CLICKADJUST_DATA%=0 I=0 j%=!_EVNTS_CLICKADJUST_ANCHOR%+a%:FA%=j%!16:v%=!_EVNTS_CLICKADJUST_DATA%:B$=$(v%+FA%):k%= ("FN"+B$+"(_window_handle%,_icon_handle%)") _window_handle%>0 shell_EvntHandle_Bumpers(_window_handle%,_icon_handle%) shell_ListClickAdjust: KA%,r%,y%,f%,PA%,KB%: g%,B$,IA%,s%:r%=!_EVNTS_CLICKADJUST_ANCHOR%:y%=_EVNTS_CLICKADJUST_REC_SIZE%:PA%=r%!4: Evnts_DebugListHeader ("ClickAdjust","Window Icon FN"): f%=_m_Evnts_HeaderSize%: PA%:A$=$(r%+f%):g%=r%!(f%+&C):IA%=!_EVNTS_CLICKADJUST_DATA%: IA%>0 B$=$(IA%+r%!(f%+16)) :f%+=_EVNTS_CLICKADJUST_REC_SIZE%: shell_AttachMenu(b%,g%,p%,tC%,wC%,bD%): a%,c%,A$,wF%: shell_IsWindowStatic(b%)= shell_OK( shell_MessageNoArgs("SHELLMSG30")) shell_GetWindowIdentifier(b%):W$= shell_MenuList_GetIdentifier(p%): A$="iconbar" g%=-1 g%>=0 shell_IconSetButtonType(b%,g%,_BUTTON_TYPE_CLICK): shell_EvntAdd_PopUpMenu(A$,g%,-1,p%,"","",_POPUP_TYPE_TEXT) Evnts_GetEvntListOffset(A$,g%,_EVNTS_CLICKMENU_ANCHOR%,_EVNTS_CLICKMENU_REC_SIZE%, a%>=0 wF%= Evnts_GetEvntListOffset(A$,g%,_EVNTS_CLICKMENU_ANCHOR%,_EVNTS_CLICKMENU_REC_SIZE%, ):c%=!_EVNTS_CLICKMENU_ANCHOR%:c%+=a%:$c%=A$:c%!&C=g%: !_EVNTS_CLICKMENU_DATA%=0 4!_EVNTS_CLICKMENU_DATA%= shell_HeapBlockFetch(1) :q%=c%+16: Evnts_UpdateData(q%,_EVNTS_CLICKMENU_DATA%,_EVNTS_CLICKMENU_DATAOFFSET%,W$): Yq%=c%+20: Evnts_UpdateData(q%,_EVNTS_CLICKMENU_DATA%,_EVNTS_CLICKMENU_DATAOFFSET%,"") shell_AttachPopupMenu(d%,hC%,zC%,AA%,a$,X$): hC%>=0 shell_IconSetButtonType(d%,hC%,_BUTTON_TYPE_CLICK) shell_EvntAdd_PopUpMenu( shell_GetWindowIdentifier(d%),hC%,zC%,AA%,a$,X$,_POPUP_TYPE_TEXT): shell_EvntHandle_ClickMenu(_window_handle%,_icon_handle%): A$,a%,j%,dH%,c$,IG%,k%: _C%:A$= shell_GetWindowIdentifier(_window_handle%): A$="iconbar" _icon_handle%=-1 Evnts_GetEvntListOffset(A$,_icon_handle%,_EVNTS_CLICKMENU_ANCHOR%,_EVNTS_CLICKMENU_REC_SIZE%, Evnts_GetEvntListOffset(A$,-1,_EVNTS_CLICKMENU_ANCHOR%,_EVNTS_CLICKMENU_REC_SIZE%, a%>=0 j%=!_EVNTS_CLICKMENU_ANCHOR%+a%:_C%=j%!16:dH%=j%!20:IG%=!_EVNTS_CLICKMENU_DATA%:p%= shell_MenuList_GetSysHandle($(IG%+_C%)):c$=$(IG%+dH%):_EVNTS_LAST_MENUMAKER_FN$=c$: c$<>"" ("FN"+c$+"( "+ _window_handle%+", "+ _icon_handle%+" )") shell_OpenMenu(_Q%!0,_Q%!4,p%) _window_handle%>0 shell_EvntHandle_PopupMenu(_window_handle%,_icon_handle%) shell_ListClickMenu: KA%,r%,y%,f%,PA%,KB%,p%: g%,s%,c$:r%=!_EVNTS_CLICKMENU_ANCHOR%:y%=_EVNTS_CLICKMENU_REC_SIZE%:PA%=r%!4: Evnts_DebugListHeader ("ClickMenu ","Window Icon Menu handle Maker FN"): f%=_m_Evnts_HeaderSize%: PA%:A$=$(r%+f%):g%=r%!(f%+&C):p%=r%!(f%+16):IA%=!_EVNTS_CLICKMENU_DATA%: IA%>0 c$=$(IA%+r%!(f%+20)) c$="None" :f%+=_EVNTS_CLICKMENU_REC_SIZE%: shell_AttachMenuMaker(b%,g%,p%,c$): a%,c%,A$,q%: shell_AttachMenu(b%,g%,p%,0,0,0):A$= shell_GetWindowIdentifier(b%): A$="iconbar" @ g%=-1 Evnts_GetEvntListOffset(A$,g%,_EVNTS_CLICKMENU_ANCHOR%,_EVNTS_CLICKMENU_REC_SIZE%, a%=-1 99,"MenuMaker offset not found.." HCc%=!_EVNTS_CLICKMENU_ANCHOR%:c%+=a%: !_EVNTS_CLICKMENU_DATA%=0 L:!_EVNTS_CLICKMENU_DATA%= shell_HeapBlockFetch( (c$)+1) :q%=c%+20: Evnts_UpdateData(q%,_EVNTS_CLICKMENU_DATA%,_EVNTS_CLICKMENU_DATAOFFSET%,c$): shell_AttachHelpTag(b%,g%,Z$): a%,c%,A$:A$= shell_GetWindowIdentifier(b%): A$="iconbar" g g%=-1 Evnts_GetEvntListOffset(A$,g%,_EVNTS_HELPTAG_ANCHOR%,_EVNTS_HELPTAG_REC_SIZE%, ):c%=!_EVNTS_HELPTAG_ANCHOR%:c%+=a%:$c%=A$:c%!&C=g%: !_EVNTS_HELPTAG_DATA%=0 q8!_EVNTS_HELPTAG_DATA%= shell_HeapBlockFetch( (Z$)+1) :q%=c%+16: Evnts_UpdateData(q%,_EVNTS_HELPTAG_DATA%,_EVNTS_HELPTAG_DATAOFFSET%,Z$): shell_EvntHandle_HelpTags(_window_handle%,_icon_handle%, A$,a%,j%,AD%,BD%,AE%: n%,RG%,f%,GJ%,c%:A$= shell_GetWindowIdentifier(_window_handle%): A$="iconbar" _icon_handle%=-1 Evnts_GetEvntListOffset(A$,_icon_handle%,_EVNTS_HELPTAG_ANCHOR%,_EVNTS_HELPTAG_REC_SIZE%, a%>=0 shell_EvntHandle_AttachedHelp(a%) shell_HeapBlockFetch(96): &600F4,1,AE%,_window_handle%,_icon_handle% n%<>1 _window_handle%<> shell_GetDynamicWindowHandle shell_WindowHandleKnown(_window_handle%) shell_EvntHandle_MenuHelp(AE%) shell_HeapBlockReturn(AE%) shell_ListHelpTags: KA%,r%,y%,f%,PA%,KB%,B$: g%,IA%,s%:r%=!_EVNTS_HELPTAG_ANCHOR%:y%=_EVNTS_HELPTAG_REC_SIZE%:PA%=r%!4: Evnts_DebugListHeader ("HelpTag ","Window Icon Help tag"): f%=_m_Evnts_HeaderSize%: PA%:A$=$(r%+f%):g%=r%!(f%+&C):IA%=!_EVNTS_HELPTAG_DATA%: IA%>0 B$=$(IA%+r%!(f%+16)) :f%+=_EVNTS_HELPTAG_REC_SIZE%: shell_AttachMenuHelpTag(W$,DI%,J$): a%,c%,q%:a%= Evnts_GetEvntListOffset("menu",DI%,_EVNTS_MENUHELPTAG_ANCHOR%,_EVNTS_MENUHELPTAG_REC_SIZE%, ):c%=!_EVNTS_MENUHELPTAG_ANCHOR%:c%+=a%:$c%="menu":c%!&C=DI%: !_EVNTS_MENUHELPTAG_DATA%=0 -1:cA%+=1: Evnts_GetEvntListOffset(A$,cA%,_EVNTS_PANES_ANCHOR%,_EVNTS_PANES_REC_SIZE%, ):c%=!_EVNTS_PANES_ANCHOR%:c%+=a%:$c%=A$:c%!&C=cA%:c%!20=n%:c%!24=FB% %c%!28=GB%: !_EVNTS_PANES_DATA%=0 6!_EVNTS_PANES_DATA%= shell_HeapBlockFetch( (S$)+1) :q%=c%+16: Evnts_UpdateData(q%,_EVNTS_PANES_DATA%,_EVNTS_PANES_DATAOFFSET%,S$): shell_PaneSetVisibility(CD%,DD%,bJ%): A$,S$,cA%,a%:A$= shell_GetWindowIdentifier(CD%):S$= shell_GetWindowIdentifier(DD%):cA%=0: Evnts_GetEvntListOffset(A$,cA%,_EVNTS_PANES_ANCHOR%,_EVNTS_PANES_REC_SIZE%, )=-1:cA%+=1: &]a%= Evnts_GetEvntListOffset(A$,cA%,_EVNTS_PANES_ANCHOR%,_EVNTS_PANES_REC_SIZE%, a%>=0 (+c%=!_EVNTS_PANES_ANCHOR%:c%+=a%: c%!20=c%!20 (1<<8) c%!20=c%!20 (1<<8) shell_HidePane(CD%,DD%): shell_PaneSetVisibility(CD%,DD%, shell_CloseWindow(DD%): shell_ShowPane(CD%,DD%): shell_PaneSetVisibility(CD%,DD%, shell_OpenWindow(CD%,0, shell_ListPanes: KA%,r%,y%,f%,PA%,S$: IA%,s%,NB$,QB$:r%=!_EVNTS_PANES_ANCHOR%:y%=_EVNTS_PANES_REC_SIZE%:PA%=r%!4: Evnts_DebugListHeader ("Pane ","Window Pane name X Pos Y Pos"): f%=_m_Evnts_HeaderSize%: PA%:A$=$(r%+f%):IA%=!_EVNTS_PANES_DATA%: IA%>0 S$=$(IA%+r%!(f%+16)) :NB$= shell_StringPadTrailing( (r%!(f%+24))," ",8):QB$= shell_StringPadTrailing( (r%!(f%+28))," ",6):f%+=_EVNTS_PANES_REC_SIZE%: shell_EvntAdd_WindowOpen(A$,B$): a%,c%:a%= Evnts_GetEvntListOffset(A$,-1,"WINDOWOPEN", ):c%=!_EVNTS_WINDOWOPEN_ANCHOR%:c%+=a%:$c%=A$:c%!&C=-1: !_EVNTS_WINDOWOPEN_DATA%=0 |;!_EVNTS_WINDOWOPEN_DATA%= shell_HeapBlockFetch( (B$)+1) :q%=c%+16: Evnts_UpdateData(q%,_EVNTS_WINDOWOPEN_DATA%,_EVNTS_WINDOWOPEN_DATAOFFSET%,B$): shell_OpenWindow(_window_handle%,XG%,gD%): a%,aH%,aB%,VA%,hA%: ED%,LH%,UH%: A$,j%,FA%,v%: B$,k%,cA%,iC%,PB%,FD%: hD%,CA%,KC%,sE%: aG%:A$= shell_GetWindowIdentifier(_window_handle%):aB%=_Q%!28 Evnts_GetEvntListOffset(A$,-1,_EVNTS_WINDOWOPEN_ANCHOR%,_EVNTS_WINDOWOPEN_REC_SIZE%, a%>=0 pj%=!_EVNTS_WINDOWOPEN_ANCHOR%+a%:FA%=j%!16:v%=!_EVNTS_WINDOWOPEN_DATA%:B$=$(v%+FA%):k%= ("FN"+B$+"("+A$+")") :ED%= :_c_WindowsGetStateBlk%!0=_window_handle%: &400CB,,_c_WindowsGetStateBlk%: (_c_WindowsGetStateBlk%!32 &80000)=&80000 &400CF,,_c_WindowsGetPInfoBlk%:_Q%!0=_window_handle%: &400CB,,_Q% &400C5,,_Q% :iC%= Evnts_GetEvntListOffset(A$,cA%,_EVNTS_PANES_ANCHOR%,_EVNTS_PANES_REC_SIZE%, a%>=0 !_Q%!0=_window_handle%: gD%>0 aB%=gD% aB%=-1 aB%=_Q%!28 &400C5,,_Q%: &400CB,,_Q%: &400C6,,_Q% :cA%=0: Evnts_GetEvntListOffset(A$,cA%,_EVNTS_PANES_ANCHOR%,_EVNTS_PANES_REC_SIZE%, )>-1:a%=_m_Evnts_LastEvntOffset%:j%=!_EVNTS_PANES_ANCHOR%+a%:jC%=j%!16:v%=!_EVNTS_PANES_DATA%:S$=$(v%+jC%):PB%=j%!20:sE%= :FD%=j%!24:hD%=j%!28: (1<<8) :PB%=PB% (1<<8) :CA%= shell_GetWindowHandleList(S$):KC%=!CA%:_c_Evnts_PaneBlk%!0=KC%: aH%=0 aH%=_c_Evnts_PaneBlk%!0 {LH%=_c_Evnts_PaneBlk%!0: &400CB,,_c_Evnts_PaneBlk%: _c_WindowsGetPInfoBlk%!16=-9 _c_WindowsGetPInfoBlk%!16>-5 0,1:VA%=_c_Evnts_PaneBlk%!16-_c_Evnts_PaneBlk%!8:hA%=_c_Evnts_PaneBlk%!&C-_c_Evnts_PaneBlk%!4:_c_Evnts_PaneBlk%!4=_Q%!4+FD%:_c_Evnts_PaneBlk%!&C=_c_Evnts_PaneBlk%!4+hA%:_c_Evnts_PaneBlk%!16=_Q%!16+hD%:_c_Evnts_PaneBlk%!8=_c_Evnts_PaneBlk%!16-VA% 2:VA%=_c_Evnts_PaneBlk%!16-_c_Evnts_PaneBlk%!8:hA%=_Q%!&C-_Q%!4:_c_Evnts_PaneBlk%!4=_Q%!4+FD%:_c_Evnts_PaneBlk%!&C=_Q%!&C:_c_Evnts_PaneBlk%!16=_Q%!16+hD%:_c_Evnts_PaneBlk%!8=_c_Evnts_PaneBlk%!16-VA% 3:VA%=_Q%!16-_Q%!8:hA%=_c_Evnts_PaneBlk%!&C-_c_Evnts_PaneBlk%!4:_c_Evnts_PaneBlk%!4=_Q%!4+FD%:_c_Evnts_PaneBlk%!&C=_c_Evnts_PaneBlk%!4+hA%:_c_Evnts_PaneBlk%!16=_Q%!16:_c_Evnts_PaneBlk%!8=_Q%!8+hD% 4:VA%=_c_Evnts_PaneBlk%!16-_c_Evnts_PaneBlk%!8:hA%=_Q%!&C-_Q%!4:_c_Evnts_PaneBlk%!4=_Q%!4+FD%:_c_Evnts_PaneBlk%!&C=_Q%!&C:_c_Evnts_PaneBlk%!16=_Q%!8+VA%+hD%:_c_Evnts_PaneBlk%!8=_c_Evnts_PaneBlk%!16+VA% 5:VA%=_Q%!16-_Q%!8:hA%=_c_Evnts_PaneBlk%!&C-_c_Evnts_PaneBlk%!4:_c_Evnts_PaneBlk%!4=_Q%!&C-hA%+FD%:_c_Evnts_PaneBlk%!&C=_c_Evnts_PaneBlk%!4+hA%:_c_Evnts_PaneBlk%!16=_Q%!16:_c_Evnts_PaneBlk%!8=_Q%!8 :aG%=_c_Evnts_PaneBlk%!28: cA%=0 _c_Evnts_PaneBlk%!28=aB% _c_Evnts_PaneBlk%!28=UH% &400C5,,_c_Evnts_PaneBlk% _c_Evnts_PaneBlk%!0=aG% :UH%=_c_Evnts_PaneBlk%!0:cA%+=1: _Q%!28=LH%: &400C5,,_Q% _Q%!0=_window_handle%: &400CB,,_Q% aB%=-2 _Q%!28=-2 gD%=-1 _Q%!28=-1 &400C5,,_Q% shell_AttachCloseWindowHandler(b%,B$): a%,c%,A$:A$= shell_GetWindowIdentifier(b%):a%= Evnts_GetEvntListOffset(A$,-1,_EVNTS_WINDOWCLOSE_ANCHOR%,_EVNTS_WINDOWCLOSE_REC_SIZE%, ):c%=!_EVNTS_WINDOWCLOSE_ANCHOR%:c%+=a%:$c%=A$:c%!&C=-1 !_EVNTS_WINDOWCLOSE_DATA%=0 ==0 Rbj%=!_EVNTS_WINDOWCLOSE_ANCHOR%+a%:FA%=j%!16:v%=!_EVNTS_WINDOWCLOSE_DATA%:B$=$(v%+FA%): B$<>"" Y.tE%= ("FN"+B$+"("+ (_window_handle%)+" )") shell_CloseWindow(_window_handle%) shell_AttachDrag(b%,g%,B$): a%,c%,q%,A$:A$= shell_GetWindowIdentifier(b%):a%= Evnts_GetEvntListOffset(A$,g%,_EVNTS_DRAG_ANCHOR%,_EVNTS_DRAG_REC_SIZE%, ):c%=!_EVNTS_DRAG_ANCHOR%:c%+=a%:$c%=A$:c%!&C=g%: !_EVNTS_DRAG_DATA%=0 5!_EVNTS_DRAG_DATA%= shell_HeapBlockFetch( (B$)+1) :q%=c%+16: Evnts_UpdateData(q%,_EVNTS_DRAG_DATA%,_EVNTS_DRAG_DATAOFFSET%,B$): shell_AttachUserRedraw( b%,B$): a%,c%,q%,e%,mA%:e%= shell_HeapBlockFetch(36):!e%=b%: &400CB,,e%:mA%=e%!32: shell_HeapBlockReturn(e%): shell_Tracef0("AttachUserRedraw:flag% = &"+ ~mA%): 1<<4) shell_Tracef0("AttachUserRedraw:auto redraw set!!"): shell_WindowToggleFlags(b%,1<<4) shell_GetWindowIdentifier(b%): shell_Tracef0("AttachUserRedraw:window name is : "+A$):a%= Evnts_GetEvntListOffset(A$,-1,_EVNTS_REDRAW_ANCHOR%,_EVNTS_REDRAW_REC_SIZE%, ):c%=!_EVNTS_REDRAW_ANCHOR%:c%+=a%:$c%=A$:c%!&C=-1: !_EVNTS_REDRAW_DATA%=0 7!_EVNTS_REDRAW_DATA%= shell_HeapBlockFetch( (B$)+1) :q%=c%+16: Evnts_UpdateData(q%,_EVNTS_REDRAW_DATA%,_EVNTS_REDRAW_DATAOFFSET%,B$): shell_EvntHandle_Redraw(_window_handle%,e%,eA%,lA%): A$,a%,B$,j%,v%,k%:A$= shell_GetWindowIdentifier(_window_handle%):a%= Evnts_GetEvntListOffset(A$,-1,_EVNTS_REDRAW_ANCHOR%,_EVNTS_REDRAW_REC_SIZE%, a%>=0 Xj%=!_EVNTS_REDRAW_ANCHOR%+a%:FA%=j%!16:v%=!_EVNTS_REDRAW_DATA%:B$=$(v%+FA%): B$<>"" ("FN"+B$+"("+ e%+","+ eA%+","+ lA%+")") shell_ListRedraw: KA%,r%,y%,f%,PA%,B$,A$: IA%,s%:r%=!_EVNTS_REDRAW_ANCHOR%:y%=_EVNTS_REDRAW_REC_SIZE%:PA%=r%!4: Evnts_DebugListHeader ("Redraw ","Window User FN"): f%=_m_Evnts_HeaderSize%: PA%:A$=$(r%+f%):IA%=!_EVNTS_REDRAW_DATA%: IA%>0 B$=$(IA%+r%!(f%+16)) :f%+=_EVNTS_REDRAW_REC_SIZE%: shell_AttachIconWatch(b%,g%,B$): a%,c%,q%,A$,l$:A$= shell_GetWindowIdentifier(b%):a%= Evnts_GetEvntListOffset(A$,g%,_EVNTS_ICONWATCH_ANCHOR%,_EVNTS_ICONWATCH_REC_SIZE%, ):c%=!_EVNTS_ICONWATCH_ANCHOR%:c%+=a%:$c%=A$:c%!&C=g% !_EVNTS_ICONWATCH_DATA%=0 :!_EVNTS_ICONWATCH_DATA%= shell_HeapBlockFetch( (B$)+1) :q%=c%+16: Evnts_UpdateData(q%,_EVNTS_ICONWATCH_DATA%,_EVNTS_ICONWATCH_DATAOFFSET%,B$):l$= shell_IconGetData(b%,g%):xG%=(a%- Evnts_GetHeaderSize) _EVNTS_ICONWATCH_REC_SIZE%: xG%>_c_evnts_MaxIconWatchEvnts% 99,"Sorry, too many IconWatch events attached (max "+ (_c_evnts_MaxIconWatchEvnts%)+")" _c_evnts_CurrentContents$(xG%)=l$ shell_EvntHandle_IconWatch: j%,y%,bA%,f%,s%,g%,A$,mJ%: CA%,b%,l$,iA$,B$,FA%: v%,q%:j%=!_EVNTS_ICONWATCH_ANCHOR%:y%=_EVNTS_ICONWATCH_REC_SIZE%:bA%=j%!4: f%=_m_Evnts_HeaderSize%: bA%:A$=$(j%+f%):g%=j%!(f%+&C):FA%=j%!(f%+16):v%=!_EVNTS_ICONWATCH_DATA%:B$=$(v%+FA%):iA$=_c_evnts_CurrentContents$( (f%- Evnts_GetHeaderSize) _EVNTS_ICONWATCH_REC_SIZE%):CA%= shell_GetWindowHandleList(A$): CA%<>-1 =0m%=0: :b%=CA%!m%: shell_WindowIsOpen(b%)= A1l$= shell_IconGetData(b%,g%): B$<>"" l$<>iA$ F~k%= ("FN"+B$+"( "+ (34)+l$+ (34)+" )"):_c_evnts_CurrentContents$( (f%- Evnts_GetHeaderSize) _EVNTS_ICONWATCH_REC_SIZE%)=l$ :m%+=4: CA%!m%=-1 :f%+=_EVNTS_ICONWATCH_REC_SIZE%: shell_ListIconWatch: KA%,r%,y%,f%,PA%,B$,A$: IA%,s%:r%=!_EVNTS_ICONWATCH_ANCHOR%:y%=_EVNTS_ICONWATCH_REC_SIZE%:PA%=r%!4: Evnts_DebugListHeader ("IconWatch ","Window User FN"): f%=_m_Evnts_HeaderSize%: PA%:A$=$(r%+f%):IA%=!_EVNTS_ICONWATCH_DATA%: IA%>0 B$=$(IA%+r%!(f%+16)) :f%+=_EVNTS_ICONWATCH_REC_SIZE%: shell_AttachUserDrag(b%,g%,B$): a%,c%,q%,A$,l$:A$= shell_GetWindowIdentifier(b%):a%= Evnts_GetEvntListOffset(A$,g%,_EVNTS_DRAG_ANCHOR%,_EVNTS_DRAG_REC_SIZE%, ):c%=!_EVNTS_DRAG_ANCHOR%:c%+=a%:$c%=A$:c%!&C=g%: !_EVNTS_DRAG_DATA%=0 5!_EVNTS_DRAG_DATA%= shell_HeapBlockFetch( (B$)+1) :q%=c%+16: Evnts_UpdateData(q%,_EVNTS_DRAG_DATA%,_EVNTS_DRAG_DATAOFFSET%,B$): shell_EvntHandle_UserDrag(b%): a%,g%,j%,FA%,v%: QB%,WA%,XA%,A$,vJ%: vE%:vE%= :g%=-1:A$= shell_GetWindowIdentifier(b%):a%= Evnts_GetEvntListOffset(A$,g%,_EVNTS_DRAG_ANCHOR%,_EVNTS_DRAG_REC_SIZE%, a%>=0 j%=!_EVNTS_DRAG_ANCHOR%+a%:FA%=j%!16:v%=!_EVNTS_DRAG_DATA%:_m_Drag_CurrentFN$=$(v%+FA%):_m_Drag_CurrentWindow$=A$:_m_Drag_CurrentWindowHandle%=b%:QB%= shell_HeapBlockFetch(40):QB%!0=b%:QB%!4=6: shell_PointerGetPosition(WA%,XA%):QB%!8=WA%:QB%!&C=XA% QB%!16=WA%:QB%!20=XA%: shell_WindowGetPosition(b%,_m_evnts_UserDrag_win_xmin%,_m_evnts_UserDrag_win_ymin%,_m_evnts_UserDrag_win_xmax%,_m_evnts_UserDrag_win_ymax%):QB%!24=_m_evnts_UserDrag_win_xmin%:QB%!28=_m_evnts_UserDrag_win_ymin% QB%!32=_m_evnts_UserDrag_win_xmax%:QB%!36=_m_evnts_UserDrag_win_ymax%: &400D0,,QB%:_m_evnts_UserDragInProgress%= shell_HeapBlockReturn(QB%):vE%= :=vE% shell_Evnts_UserDragEnd(EE%,FE%,yE%,zE%): _E%,AF%,rH%,sH%: k%:_m_evnts_UserDragInProgress%= yE%=0 shell_IconDragBox2(b%,g%):_m_evnts_DragIconStartWindow%=b%:_m_evnts_DragIconStartIcon%=g% shell_IconWritableDragStatus= shell_IconIsWritable(b%,g%) shell_IconDragBox2(b%,g%):_m_evnts_DragIconStartWindow%=b%:_m_evnts_DragIconStartIcon%=g%:_m_evnts_DragIconWritableDrag%= shell_WindowGetPosition(b%,_m_evnts_DragIconWinXMin%,_m_evnts_DragIconWinYMin%,_m_evnts_DragIconWinXMax%,_m_evnts_DragIconWinYMax%): shell_PointerGetPosition(_m_evnts_DragIconMouseX%,_m_evnts_DragIconMouseY%) shell_EvntHandle_UserDragEnd: xA%,A$,a%,j%,FA%,v%: k%,B$,OA$,gA$,iD%,BF%:A$= shell_GetWindowIdentifier(_m_evnts_DragIconStartWindow%):a%= Evnts_GetEvntListOffset(A$,_m_evnts_DragIconStartIcon%,_EVNTS_DRAG_ANCHOR%,_EVNTS_DRAG_REC_SIZE%, shell_HeapBlockFetch(30): &400CF,,xA%:_m_evnts_MouseXCoord%=xA%!0:_m_evnts_MouseYCoord%=xA%!4:_m_evnts_DestWindowHandle%=xA%!&C:_m_evnts_DestIconHandle%=xA%!16: shell_HeapBlockReturn(xA%): a%>=0 j%=!_EVNTS_DRAG_ANCHOR%+a%:FA%=j%!16:v%=!_EVNTS_DRAG_DATA%:B$=$(v%+FA%):k%= ("FN"+B$+"("+ _m_evnts_DestTaskHandle%+","+ _m_evnts_DestWindowHandle%+","+ _m_evnts_DestIconHandle%+","+ _m_evnts_MouseXCoord%+","+ _m_evnts_MouseYCoord%+")") _m_evnts_DragIconWritableDrag%= _m_evnts_DragIconWritableDrag%= shell_IconIsWritable(_m_evnts_DestWindowHandle%,_m_evnts_DestIconHandle%) shell_WindowHandleKnown(_m_evnts_DestWindowHandle%) shell_IconGetData(_m_evnts_DragIconStartWindow%,_m_evnts_DragIconStartIcon%):gA$= shell_IconGetData(_m_evnts_DestWindowHandle%,_m_evnts_DestIconHandle%): shell_IconPutData(_m_evnts_DragIconStartWindow%,_m_evnts_DragIconStartIcon%,"", (_m_evnts_DestWindowHandle%<>_m_evnts_DragIconStartWindow%) L iD%= (_m_evnts_DestIconHandle%<>_m_evnts_DragIconStartIcon%) R BF%= (iD%= (iD%= shell_IconPutData(_m_evnts_DestWindowHandle%,_m_evnts_DestIconHandle%,gA$+OA$, shell_IconPutData(_m_evnts_DestWindowHandle%,_m_evnts_DestIconHandle%,OA$, shell_EvntAdd_PopUpMenu(A$,MC%,SA%,p%,T$,X$,HE%): a%,c%,W$:a%= Evnts_GetEvntListOffset(A$,MC%,_EVNTS_POPUPS_ANCHOR%,_EVNTS_POPUPS_REC_SIZE%, ):c%=!_EVNTS_POPUPS_ANCHOR%:c%+=a%:$c%=A$:c%!&C=MC%:c%!20=SA%:c%!24=HE%: !_EVNTS_POPUPS_DATA%=0 7!_EVNTS_POPUPS_DATA%= shell_HeapBlockFetch( (W$)+1) T$<>"" Sq%=c%+16: Evnts_UpdateData(q%,_EVNTS_POPUPS_DATA%,_EVNTS_POPUPS_DATAOFFSET%,T$) c%!16=-1 shell_MenuList_GetIdentifier(p%): W$<>"" Sq%=c%+28: Evnts_UpdateData(q%,_EVNTS_POPUPS_DATA%,_EVNTS_POPUPS_DATAOFFSET%,W$) X$<>"" !_EVNTS_POPUPS_DATA%=0 7!_EVNTS_POPUPS_DATA%= shell_HeapBlockFetch( (X$)+1) :q%=c%+32: Evnts_UpdateData(q%,_EVNTS_POPUPS_DATA%,_EVNTS_POPUPS_DATAOFFSET%,X$) c%!32=-1 shell_EvntHandle_PopupMenu(_window_handle%,_icon_handle%): A$,a%,v%,OA%,j%,_B%,p%: KK%,T$,X$,k%,W$:A$= shell_GetWindowIdentifier(_window_handle%):a%= Evnts_GetEvntListOffset(A$,_icon_handle%,_EVNTS_POPUPS_ANCHOR%,_EVNTS_POPUPS_REC_SIZE%, a%>=0 wj%=!_EVNTS_POPUPS_ANCHOR%+a%:OA%=j%!16:v%=!_EVNTS_POPUPS_DATA%:MC%=j%!&C:SA%=j%!20:_B%=j%!24: _B%=_POPUP_TYPE_TEXT OA%=j%!28: OA%>=0 W$=$(v%+OA%) shell_MenuList_GetSysHandle(W$) W$="":p%=0 OA%>=0 T$=$(v%+OA%) :OA%=j%!32: OA%>=0 +X$=$(v%+OA%): _B%=_POPUP_TYPE_FONTMENU ("FN"+X$+"("+ shell_FontMenu_GetHandle)+")") ("FN"+X$+"("+ (p%)+")") _POPUP_TYPE_TEXT: shell_HandleMenuOpen(_Q%,p%,_window_handle%,_icon_handle%, _POPUP_TYPE_WIMPCOLOUR: _m_WimpColMen_Handle%=-1 &45BCF,,"",T$ _m_WimpColMen_Handle% shell_HandleMenuOpen(_Q%,_m_WimpColMen_Handle%,_window_handle%,_icon_handle%, _POPUP_TYPE_COLOUR24: shell_ColourPickerOpen(_window_handle%,SA%,MC%,T$,X$) _POPUP_TYPE_FONTMENU: shell_FontMenu_ShowMenu(_Q%,_window_handle%,_icon_handle%, _POPUP_TYPE_FONTPICK: shell_FontPickerOpen(_window_handle%,SA%,MC%,T$,X$) _POPUP_TYPE_DATEPICK: shell_DatePickerOpen(_window_handle%,SA%,MC%,T$) 99,"Unknown popup type detected!" shell_EvntHandle_PopupMenuSelection(b%,g%,AC%): _item_text$,A$,a%,j%,OA%,v%: MC%,SA%,_B%,p%,i%,a$:A$= shell_GetWindowIdentifier(b%):a%= Evnts_GetEvntListOffset(A$,g%,_EVNTS_POPUPS_ANCHOR%,_EVNTS_POPUPS_REC_SIZE%, a%>=0 j%=!_EVNTS_POPUPS_ANCHOR%+a%:OA%=j%!16:v%=!_EVNTS_POPUPS_DATA%:MC%=j%!&C:SA%=j%!20:_B%=j%!24:p%=j%!28: _B%=_POPUP_TYPE_FONTMENU _item_text$="" _item_text$= shell_MenuGetItemText(p%,!AC%) :i%=0: OA%<>-1 ?a$=$(v%+OA%):i%= ("FN"+a$+"("+ b%+","+ SA%+",_item_text$)") i%<>0 OA%=-1 SA%>=0 _POPUP_TYPE_TEXT: shell_IconPutData(b%,SA%,_item_text$, _POPUP_TYPE_WIMPCOLOUR: shell_IconSetBGColour(b%,SA%,AC%) 99,"Unknown Popup type in EvntHandle_PopupMenuSelection (type was "+ _B%+")" shell_ListPopUps: KA%,r%,y%,f%,PA%,KB%: g%,B$,IA%,s%:r%=!_EVNTS_POPUPS_ANCHOR%:y%=_EVNTS_POPUPS_REC_SIZE%:PA%=r%!4: Evnts_DebugListHeader ("PopUps","Window Icon FN"): f%=_m_Evnts_HeaderSize%: PA%:A$=$(r%+f%):g%=r%!(f%+&C):IA%=!_EVNTS_POPUPS_DATA%: IA%>0 B$=$(IA%+r%!(f%+16)) :f%+=_EVNTS_POPUPS_REC_SIZE%: shell_EvntSelectButtonPressed(b%,g%,gJ%): shell_EvntHandle_ClickSelect(b%,g%): shell_EvntAdjustButtonPressed(b%,g%): shell_EvntHandle_ClickAdjust(b%,g%): shell_EvntMenuButtonPressed(b%,g%,gJ%): shell_EvntHandle_ClickMenu(b%,g%): shell_EvntSave_AllEvnts(Y$): u%:u%= (Y$): Evnts_SaveEvnt(u%,_EVNTS_CLICKSELECT_ANCHOR%,_EVNTS_CLICKSELECT_DATA%,_EVNTS_CLICKSELECT_DATAOFFSET%): Evnts_SaveEvnt(u%,_EVNTS_CLICKADJUST_ANCHOR%,_EVNTS_CLICKADJUST_DATA%,_EVNTS_CLICKADJUST_DATAOFFSET%) Evnts_SaveEvnt(u%,_EVNTS_CLICKMENU_ANCHOR%,_EVNTS_CLICKMENU_DATA%,_EVNTS_CLICKMENU_DATAOFFSET%): Evnts_SaveEvnt(u%,_EVNTS_HELPTAG_ANCHOR%,_EVNTS_HELPTAG_DATA%,_EVNTS_HELPTAG_DATAOFFSET%): shell_PointerSaveEvnts(u%) Evnts_SaveEvnt(u%,_EVNTS_REDRAW_ANCHOR%,_EVNTS_REDRAW_DATA%,_EVNTS_REDRAW_DATAOFFSET%): Evnts_SaveEvnt(u%,_EVNTS_WINDOWCLOSE_ANCHOR%,_EVNTS_WINDOWCLOSE_DATA%,_EVNTS_WINDOWCLOSE_DATAOFFSET%) Evnts_SaveEvnt(u%,_EVNTS_PANES_ANCHOR%,_EVNTS_PANES_DATA%,_EVNTS_PANES_DATAOFFSET%): Evnts_SaveEvnt(u%,_EVNTS_POPUPS_ANCHOR%,_EVNTS_POPUPS_DATA%,_EVNTS_POPUPS_DATAOFFSET%) Evnts_SaveEvnt(u%,_EVNTS_SLIDERS_ANCHOR%,_EVNTS_SLIDERS_DATA%,_EVNTS_SLIDERS_DATAOFFSET%): Evnts_SaveEvnt(u%,_EVNTS_BUMP_ANCHOR%,_EVNTS_BUMP_DATA%,_EVNTS_BUMP_DATAOFFSET%) Evnts_SaveEvnt(u%,_EVNTS_DRAG_ANCHOR%,_EVNTS_DRAG_DATA%,_EVNTS_DRAG_DATAOFFSET%): Evnts_SaveEvnt(u%, DataSave_GetAnchor, DataSave_GetDataBlk, DataSave_GetDataOffset) Evnts_SaveEvnt(u%,_EVNTS_ICONWATCH_ANCHOR%,_EVNTS_ICONWATCH_DATA%,_EVNTS_ICONWATCH_DATAOFFSET%): Evnts_SaveEvnt(u%, DataLoad_GetAnchor, DataLoad_GetDataBlk,_EVNTS_DATALOAD_DATAOFFSET%): Evnts_SaveEvnt(u%,GD%,jD%,OA%): c%,RB%,nA%:c%=!GD%:nA%=!jD%:!_c_Evnts_WorkBuffer%=OA%: #u%,0 RB%=!c%: #u%,1: &C,2,u%,c%,RB%+_m_Evnts_HeaderSize%: &C,2,u%,_c_Evnts_WorkBuffer%,4: &C,2,u%,nA%,OA% shell_EvntLoad_AllEvnts(Y$): u%,c%,iA%,bB%,uG%:u%= (Y$): Evnts_LoadEvnt(u%,_EVNTS_CLICKSELECT_ANCHOR%,_EVNTS_CLICKSELECT_DATA%,_EVNTS_CLICKSELECT_DATAOFFSET%) Evnts_LoadEvnt(u%,_EVNTS_CLICKADJUST_ANCHOR%,_EVNTS_CLICKADJUST_DATA%,_EVNTS_CLICKADJUST_DATAOFFSET%): Evnts_LoadEvnt(u%,_EVNTS_CLICKMENU_ANCHOR%,_EVNTS_CLICKMENU_DATA%,_EVNTS_CLICKMENU_DATAOFFSET%) Evnts_LoadEvnt(u%,_EVNTS_HELPTAG_ANCHOR%,_EVNTS_HELPTAG_DATA%,_EVNTS_HELPTAG_DATAOFFSET%): shell_PointerLoadEvnts(u%): Evnts_LoadEvnt(u%,_EVNTS_REDRAW_ANCHOR%,_EVNTS_REDRAW_DATA%,_EVNTS_REDRAW_DATAOFFSET%) Evnts_LoadEvnt(u%,_EVNTS_WINDOWCLOSE_ANCHOR%,_EVNTS_WINDOWCLOSE_DATA%,_EVNTS_WINDOWCLOSE_DATAOFFSET%): Evnts_LoadEvnt(u%,_EVNTS_PANES_ANCHOR%,_EVNTS_PANES_DATA%,_EVNTS_PANES_DATAOFFSET%) Evnts_LoadEvnt(u%,_EVNTS_POPUPS_ANCHOR%,_EVNTS_POPUPS_DATA%,_EVNTS_POPUPS_DATAOFFSET%): Evnts_LoadEvnt(u%,_EVNTS_SLIDERS_ANCHOR%,_EVNTS_SLIDERS_DATA%,_EVNTS_SLIDERS_DATAOFFSET%) Evnts_LoadEvnt(u%,_EVNTS_BUMP_ANCHOR%,_EVNTS_BUMP_DATA%,_EVNTS_BUMP_DATAOFFSET%): Evnts_LoadEvnt(u%,_EVNTS_DRAG_ANCHOR%,_EVNTS_DRAG_DATA%,_EVNTS_DRAG_DATAOFFSET%): Evnts_LoadEvnt(u%, DataSave_GetAnchor, DataSave_GetDataBlk,uG%) DataSave_SetDataOffset(uG%): Evnts_LoadEvnt(u%,_EVNTS_ICONWATCH_ANCHOR%,_EVNTS_ICONWATCH_DATA%,_EVNTS_ICONWATCH_DATAOFFSET%): Evnts_LoadEvnt(u%, DataLoad_GetAnchor, DataLoad_GetDataBlk,_EVNTS_DATALOAD_DATAOFFSET%): Evnts_LoadEvnt(u%,GD%,jD%, OA%): vG%,RB%,c%,RB%,xB%,nA%: !GD%<>0 shell_HeapBlockReturn(!GD%) !jD%<>0 shell_HeapBlockReturn(!jD%) vG%=1 shell_HeapBlockFetch(_m_Evnts_HeaderSize%): &C,4,u%,c%,_m_Evnts_HeaderSize%:RB%=!c%:c%= shell_HeapBlockExtend(c%,RB%): &C,4,u%,c%+_m_Evnts_HeaderSize%,RB%:!GD%=c%: &C,4,u%,_c_Evnts_WorkBuffer%,4:xB%=!_c_Evnts_WorkBuffer%: xB%>0 EnA%= shell_HeapBlockFetch(xB%): &C,4,u%,nA%,xB%:!jD%=nA%:OA%=xB% !GD%=0 shell_EvntHandle_MenuSelect(NC%): EF%,n%: shell_PointerGetMouseButton (_EVNTS_LAST_MOUSEBUTTON%):_m_evnts_PopupMenuItemNr%=!NC%: shell_GetLastIconClicked>=0 shell_EvntHandle_PopupSelect(NC%) &65BC4,_m_Menu_HandleLastOpened%,NC% EF%,,_c_Evnts_WorkBuffer%;n%: n%<>1 Evnts_CallMenuHandler(EF%,_c_Evnts_WorkBuffer%) shell_GetLastMouseButton=_MSE_ADJUSTBUT _EVNTS_LAST_MENUMAKER_FN$<>"" +=k%= ("FN"+_EVNTS_LAST_MENUMAKER_FN$+"( _U%!52, _U%!56 )") shell_MenuOpenLast shell_EvntHandle_PopupSelect(NC%): A$,a%,j%,r$,p%,HD%: nA%,JE%,i%,a$: SA%,_I%,NI%,_C%:A$= shell_GetWindowIdentifier( shell_GetLastWindowClicked) Evnts_GetEvntListOffset(A$, shell_GetLastIconClicked,_EVNTS_POPUPS_ANCHOR%,_EVNTS_POPUPS_REC_SIZE%, a%>=0 A$<>"iconbar" A}j%=!_EVNTS_POPUPS_ANCHOR%+a%:HD%=j%!24:nA%=!_EVNTS_POPUPS_DATA%:JE%=j%!16:SA%=j%!20: NC%!4<>-1 HD%<>_POPUP_TYPE_FONTMENU 99,"Unable to handle popup with submenus!" HD%=_POPUP_TYPE_TEXT _C%=j%!28: _C%>=0 W$=$(nA%+_C%) shell_MenuList_GetSysHandle(W$) HD%=_POPUP_TYPE_FONTMENU T"r$= shell_FontMenu_Decode(NC%) shell_MenuGetItemText(p%,!NC%) :i%=0: JE%>-1 a$=$(nA%+JE%): r$<>"" _Ti%= ("FN"+a$+"("+ shell_GetLastWindowClicked)+","+ SA%+","+ (34)+r$+ (34)+")") i%<>0 JE%=-1 SA%>=0 _POPUP_TYPE_TEXT: shell_IconPutData( shell_GetLastWindowClicked,SA%,r$, _POPUP_TYPE_WIMPCOLOUR: shell_IconSetBGColour( shell_GetLastWindowClicked,SA%,!NC%) _POPUP_TYPE_FONTMENU: r$<>"" shell_IconPutData( shell_GetLastWindowClicked,SA%,r$, 99,"Unknown Popup type in PROCshell_EvntHandle_PopupSelect (type was "+ HD%+")" Evnts_CallMenuHandler(w%,TJ%): ("FN"+$w%+"("+ TJ%+")") Evnts_GetHeaderSize:=_m_Evnts_HeaderSize% Evnts_GetLastMouseButton:=_EVNTS_LAST_MOUSEBUTTON% Evnts_GetLastIconClicked:=_EVNTS_LAST_ICONCLICKED% Evnts_GetLastWindowClicked:=_EVNTS_LAST_WINDOWCLICKED% Evnts_GetLastMouseXPos:=_EVNTS_LAST_MOUSEXPOS% Evnts_GetLastMouseYPos:=_EVNTS_LAST_MOUSEYPOS% Evnts_DeleteData(A$,g%,OC%,nA%,y%,OA%, fJ%): t$,q%,VB$,c%,a%: ID%,JD%,KD%,PC%,f%,s%,bA%: A$="IconBar" g%=-1 Evnts_GetEvntListOffset(A$,g%,OC%,y%, ):c%=!OC%:bA%=c%!4:c%+=a%:q%=c%+OA%:ID%=!q%:!q%=-1: ID%=-1 t$=$(!nA%+ID%):JD%=(!nA%+ID%)+ (t$)+1:KD%=!nA%+ID%:PC%=JD%-KD%: &400F1,_U%!&94,JD%,_U%!&94,KD%,PC%:fJ%-=PC%:!nA%= shell_HeapBlockExtend(!nA%,-PC%):c%=!OC%:f%=_m_Evnts_HeaderSize%+OA%: c%!f%>ID% c%!f%-=PC% :f%+=y%: Evnts_DeleteEvnt(A$,g%,OC%,nA%,y%): a%,c%,bA%,JD%,KD%,bA%:a%= Evnts_GetEvntListOffset(A$,g%,OC%,y%, ):c%=!OC%:bA%=c%!4: bA%>0 ;c%!0-=y%:c%!4-=1:c%+=a%:JD%=c%+y%:KD%=c%:PC%=y%: bA%>1 &400F1,_U%!&94,JD%,_U%!&94,KD%,PC% :!OC%= shell_HeapBlockExtend(!OC%,-PC%) shell_EvntHandle_MenuHelp(HF%): Z$,RG%,f%,NA%,a%: BD%,AD%:RG%= shell_MenuLastHandle:f%=0: HF%!f%<>-1:GJ%=HF%!f%:f%+=4: :NA%= shell_MenuGetItemHandle(RG%,HF%): NA%<>0 $ma%= Evnts_GetEvntListOffset("menu",NA%,_EVNTS_MENUHELPTAG_ANCHOR%,_EVNTS_MENUHELPTAG_REC_SIZE%, a%>=0 &[j%=!_EVNTS_MENUHELPTAG_ANCHOR%+a%:BD%=j%!16:AD%=!_EVNTS_MENUHELPTAG_DATA%:Z$=$(AD%+BD%) Z$="" shell_EvntHandle_AttachedHelp(a%): j%,BD%,AD%,Z$:j%=!_EVNTS_HELPTAG_ANCHOR%+a%:BD%=j%!16:AD%=!_EVNTS_HELPTAG_DATA%:Z$=$(AD%+BD%):=Z$ shell_Evnts_WritableDragInProgress:=_m_evnts_DragIconWritableDrag% shell_Evnts_DragIconStartWindow:=_m_evnts_DragIconStartWindow% shell_Evnts_DragIconStartIcon:=_m_evnts_DragIconStartIcon% shell_Evnts_MonitorDragPtrPos: LD%,b%,XA%,WA%: QC%,RC%,SC%,TC%,hB%,iB%,MD%: shell_PointerGetPosition(WA%,XA%): shell_PointerGetWindow(b%) shell_PointerGetMovementVector(_m_evnts_DragIconMouseX%,_m_evnts_DragIconMouseY%,WA%,XA%,QC%,RC%,SC%,TC%,hB%,iB%): hB%<>0 iB%<>0 l=_m_evnts_DragIconMouseX%=WA%:_m_evnts_DragIconMouseY%=XA% shell_PointerGetLastMovementVector(QC%,RC%,SC%,TC%,hB%,iB%): hB%<>0 iB%<>0 WA%>(_m_evnts_DragIconWinXMax%-_m_evnts_DragIconMargin%) shell_WindowScrollBy( shell_Evnts_DragIconStartWindow,WA%-(_m_evnts_DragIconWinXMax%-_m_evnts_DragIconMargin%),0) WA%<(_m_evnts_DragIconWinXMin%+_m_evnts_DragIconMargin%) shell_WindowScrollBy( shell_Evnts_DragIconStartWindow,WA%-(_m_evnts_DragIconWinXMin%+_m_evnts_DragIconMargin%),0) :mC%= shell_Window_GetBottomPaneDepth( shell_Evnts_DragIconStartWindow): XA%<(_m_evnts_DragIconWinYMin%+_m_evnts_DragIconMargin%+mC%) shell_WindowScrollBy( shell_Evnts_DragIconStartWindow,0,XA%-(_m_evnts_DragIconWinYMin%+_m_evnts_DragIconMargin%+ shell_Window_GetBottomPaneDepth( shell_Evnts_DragIconStartWindow))) :MD%= shell_Window_GetTopPaneDepth( shell_Evnts_DragIconStartWindow): XA%>(_m_evnts_DragIconWinYMax%-_m_evnts_DragIconMargin%-MD%) shell_WindowScrollBy( shell_Evnts_DragIconStartWindow,0,XA%-(_m_evnts_DragIconWinYMax%-_m_evnts_DragIconMargin%- shell_Window_GetTopPaneDepth( shell_Evnts_DragIconStartWindow))) Evnts_GetEvntListOffset3(A$,g%,iA%,j%,y%,fD%): KA%,f%,x%,a%,CB%,KB%: s%,bB%: A$="IconBar" g%=-1:A$="iconbar" (!j%=0 A$="" (!j%=0) shell_HeapBlockFetch(y%+_m_Evnts_HeaderSize%):CB%=!j%:CB%!0=y%:CB%!4=1:$(CB%+_m_Evnts_HeaderSize%)="": s%=&C (y%-4) 4:CB%!(s%+_m_Evnts_HeaderSize%)=-1: s%:_m_Evnts_LastEvntOffset%=_m_Evnts_HeaderSize%:a%=_m_Evnts_HeaderSize% a%<>_m_Evnts_HeaderSize% YCB%=!j%:KA%=!CB%:f%=_m_Evnts_HeaderSize%:x%= :a%=-1:aI%=-1:KB%=!j%: ($(KB%+f%)=A$) 7bB%=(KB%!(f%+16)) (1<<31): KB%!(f%+&C)=g% bB%=iA% a%=f%:x%= f%+=y% f%+=y% ((f%>=(KA%+_m_Evnts_HeaderSize%)) (a%=-1 a%=KA%+_m_Evnts_HeaderSize%:!j%= shell_HeapBlockExtend(!j%,y%):gB%=!j%:gB%!0+=y%:gB%!4+=1:gB%+=a%:$(gB%)="": s%=&C (y%-4) 4:gB%!s%=-1: :_m_Evnts_LastEvntOffset%=a% shell_AttachColourPopupMenu(d%,hC%,zC%,p%,a$,X$): hC%>=0 shell_IconSetButtonType(d%,hC%,_BUTTON_TYPE_CLICK) _m_WimpColMen_Handle%=p%: shell_EvntAdd_PopUpMenu( shell_GetWindowIdentifier(d%),hC%,zC%,p%,a$,X$,_POPUP_TYPE_WIMPCOLOUR): shell_Evnts_UserDragInProgress:=_m_evnts_UserDragInProgress% shell_ExReg_Init:_m_ExReg_FontMenu_Loaded%= :_m_ExReg_Fonts_Loaded%= :_m_ExReg_DrawLib_Loaded%= :_m_ExReg_OLELib_Loaded%= :_m_ExReg_FontLib_Loaded%= :_m_ExReg_FontPickLib_Loaded%= :_m_ExReg_ShareBan_Loaded%= :_m_ExReg_ColourMenu_Loaded%= /$_m_ExReg_ColourPick_Loaded%= shell_ExReg_FontMenu_Loaded:=_m_ExReg_FontMenu_Loaded% shell_ExReg_FontMenu_Loaded:_m_ExReg_FontMenu_Loaded%= shell_ExReg_ShareBan_Loaded:=_m_ExReg_ShareBan_Loaded% shell_ExReg_ShareBan_Loaded:_m_ExReg_ShareBan_Loaded%= shell_ExReg_Fonts_Loaded:=_m_ExReg_Fonts_Loaded% shell_ExReg_Fonts_Loaded:_m_ExReg_Fonts_Loaded%= shell_ExReg_DrawLib_Loaded:=_m_ExReg_DrawLib_Loaded% shell_ExReg_DrawLib_Loaded:_m_ExReg_DrawLib_Loaded%= shell_ExReg_OLELib_Loaded:=_m_ExReg_OLELib_Loaded% shell_ExReg_OLELib_Loaded:_m_ExReg_OLELib_Loaded%= shell_ExReg_FontLib_Loaded:=_m_ExReg_FontLib_Loaded% shell_ExReg_FontLib_Loaded:_m_ExReg_FontLib_Loaded%= shell_ExReg_ColourMenu_Loaded:=_m_ExReg_ColourMenu_Loaded% shell_ExReg_ColourMenu_Loaded:_m_ExReg_ColourMenu_Loaded%= shell_ExReg_ColourPick_Loaded:=_m_ExReg_ColourPick_Loaded% shell_ExReg_ColourPick_Loaded:_m_ExReg_ColourPick_Loaded%= _shell_Files_Init:=0 shell_FileLength(h$): tA%,NE%,OE%,jB%,OD%: 8,5,h$ tA%,,NE%,OE%,jB%,OD%:=jB% shell_FileType(h$): 8,5,h$ ,,tA%:tA%=(tA% &FFF00)>>>8:=tA% shell_FileExists(h$): tA%,E,i%:E=5: 8,E,h$ tA%=0 shell_CatInfoRead(h$): tA%,NE%,OE%,jB%,OD%,C$: 8,5,h$ tA%,,NE%,OE%,jB%,OD%: tA%=0 ="Not Found" OD%=51 C$+="WR " OD%=&BB C$+="LWR" OD%=&88 C$+="DL " C$+=" "+ shell_StringPadLeading( ~NE%,"0",8):C$+=" "+ shell_StringPadLeading( ~OE%,"0",8):C$+=" "+ shell_StringPadLeading( ~jB%,"0",8):=C$ shell_FileGetDateStamp(h$): tA%,eH%,E:E=5: 8,E,h$ tA%,,,eH%: tA%=0 _shell_Iconbar_Init:=0 shell_Iconbar(MA%,kA$,K$,hA%,AA%,tC%,wC%,bD%): o%,JA%,OF%,PF%:JA%= shell_HeapBlockFetch(36): OF%20: PF%20:!JA%=MA%:JA%!4=0:JA%!&C=96: K$<>"" P/JA%!&C=hA%:JA%!8=-16:JA%!16=92:JA%!32= JA%!8=0:JA%!16=70:JA%!32=&C :JA%!20=&1700310B:JA%!24=OF%:JA%!28=PF%:$OF%=K$:$PF%=kA$: &400C2,,JA% shell_AttachMenu(-2,o%,AA%,tC%,wC%,bD%): shell_HeapBlockReturn(JA%):= shell_IconNewSprite(MA%,o%,kA$) shell_IconbarSetText(b%,g%,SB$): l%:l%= shell_HeapBlockFetch(40):!l%=b%:l%!4=g%: &400CE,,l%:$(l%!28)=SB$: shell_IconRedraw(b%,g%): shell_HeapBlockReturn(l%): shell_Icons_Init:_c_Icons_IconDragType%=5:_c_Icons_DragBBoxXMin%=0:_c_Icons_DragBBoxYMin%=0:_c_Icons_DragBBoxXMax%=&7FFFFFFF:_c_Icons_DragBBoxYMax%=&7FFFFFFF:_c_Icons_DragFlags%=&85:_c_Icons_IconOverFlowMess$="SHELLMSG12" _c_Icons_NotASpriteIconMess$="SHELLMSG19":_c_Icons_WimpColourRangeMess$="SHELLMSG24":_c_Icons_MinWimpColour%=0:_c_Icons_MaxWimpColour%=&F: _c_Icon_SetIconStateBlk%16: _c_Icon_GetIconStateBlk%40: _c_Icon_GetCaretPositionBlk%24 %_m_Icons_AllowWritableDrags%= shell_IconSetFGColour(b%,g%,kB%): kB%<_c_Icons_MinWimpColour% kB%>_c_Icons_MaxWimpColour% shell_MessageOneArg(_c_Icons_WimpColourRangeMess$,"PROCshell_IconSetFGColour") shell_IconSetState(b%,g%,kB%<<24,&F000000): shell_IconSetBGColour(b%,g%,kB%): kB%<_c_Icons_MinWimpColour% kB%>_c_Icons_MaxWimpColour% shell_MessageOneArg(_c_Icons_WimpColourRangeMess$,"PROCshell_IconSetBGColour") shell_IconSetState(b%,g%,kB%<<28,&F0000000): shell_IconUnselectable(b%,g%): shell_IconSetUnselectable(b%,g%,1): shell_IconSetState(b%,g%,lI%,rI%):_c_Icon_SetIconStateBlk%!0=b%:_c_Icon_SetIconStateBlk%!4=g%:_c_Icon_SetIconStateBlk%!8=lI%:_c_Icon_SetIconStateBlk%!&C=rI%: &600CD,,_c_Icon_SetIconStateBlk%: shell_IconSet(b%,g%,zA%): zA%=0 shell_IconDeselect(b%,g%) shell_IconSelect(b%,g%) shell_IconSetSelected(d%,t%,zA%): zA%=0 shell_IconDeselect(d%,t%) shell_IconSelect(d%,t%) Icons_GetState(b%,g%):_c_Icon_GetIconStateBlk%!0=b%:_c_Icon_GetIconStateBlk%!4=g%: &400CE,,_c_Icon_GetIconStateBlk%: shell_IconSelect(lC%,pC%): shell_IconSetState(lC%,pC%,&200000,&200000): shell_IconDeselect(lC%,pC%): shell_IconSetState(lC%,pC%,0,&200000): shell_IsIconSelected(lC%,pC%): Icons_GetState(lC%,pC%):n%=_c_Icon_GetIconStateBlk%!24:h%=(n% &200000): U HA%= :=HA% shell_IconPutValidation(b%,g%,RA$): n%:_c_Icon_GetIconStateBlk%!0=b%:_c_Icon_GetIconStateBlk%!4=g%: &400CE,,_c_Icon_GetIconStateBlk%:n%=_c_Icon_GetIconStateBlk%!24: g&$(_c_Icon_GetIconStateBlk%!32)=RA$ shell_IconGetValidation(b%,g%): O$,n%: g%=-1 O$="":_c_Icon_GetIconStateBlk%!0=b%:_c_Icon_GetIconStateBlk%!4=g%: &400CE,,_c_Icon_GetIconStateBlk%:n%=_c_Icon_GetIconStateBlk%!24: _c_Icon_GetIconStateBlk%!32>0 O$=$(_c_Icon_GetIconStateBlk%!32) shell_IconRedraw(b%,g%): shell_IconSetState(b%,g%,0,0): shell_IconGetCommand(PE%,FB$): I%,R$: PE%<=0 R$="" shell_StringUpperCase($PE%),";"+ shell_StringUpperCase(FB$)): R$="" $(PE%+I%), $(PE%+I%)+";",";")-1) shell_IconGetFlags(b%,g%): n%:_c_Icon_GetIconStateBlk%!0=b%:_c_Icon_GetIconStateBlk%!4=g%: &400CE,,_c_Icon_GetIconStateBlk%:n%=_c_Icon_GetIconStateBlk%!24:=n% shell_IconIsDraggable(b%,g%): n%,i%,EB%,HA%: shell_WindowHandleKnown(b%)= JEB%=(1<<&D)+(1<<&E):n%= shell_IconGetFlags(b%,g%):i%=(n% EB%): i%=EB% HA%= :=HA% shell_IconIsWritable(b%,g%): n%,i%,EB%: shell_WindowHandleKnown(b%)= @EB%=1<<&F:n%= shell_IconGetFlags(b%,g%):i%=(n% EB%): i%=EB% shell_IconIsSprite(d%,t%): n%,h%,HA%:n%= shell_IconGetFlags(d%,t%):h%=(n% 1<<1): h%=(1<<1) HA%= :=HA% shell_IconHasCaret(b%,g%): BB%,TA%,i%,pB%,qB%,MB%: shell_CaretReadPosition(TA%,BB%,pB%,qB%,MB%): (BB%=g% TA%=b%) shell_IconCreate(d%,dB%,OB%,ME%,w%,TF%,UF%,DJ%,E$,DB%,cC%,O$): FJ%,o%,UC%,l%:l%= shell_HeapBlockFetch(40):l%!0=d%:l%!4=dB%:l%!8=OB%:l%!&C=dB%+ME%:l%!16=OB%+w%:l%!20=DJ% UF%<<28 TF%<<24: l%!20 #FJ%= E$,","):l%!24=DB%: O$<>"" 6UC%= shell_HeapBlockFetch( O$+1):$UC%=O$:l%!28=UC% l%!28=-1 :l%!32=cC% $(l%+24)= E$,&B) &400C2,,l% shell_HeapBlockReturn(l%):=o% shell_IconDelete(d%,t%): shell_DoIconDelete(d%,t%, shell_IconDelete2(d%,t%): shell_DoIconDelete(d%,t%, shell_DoIconDelete(d%,t%,YJ%): eA%,lA%,uA%,_A%:_c_Icon_GetIconStateBlk%!0=d%:_c_Icon_GetIconStateBlk%!4=t%: &400CE,,_c_Icon_GetIconStateBlk%: &8168A,,_c_Icon_GetIconStateBlk%+8:eA%=_c_Icon_GetIconStateBlk%!8:lA%=_c_Icon_GetIconStateBlk%!&C uA%=_c_Icon_GetIconStateBlk%!16:_A%=_c_Icon_GetIconStateBlk%!20: &400CE,,_c_Icon_GetIconStateBlk%: shell_HeapBlockExists(_c_Icon_GetIconStateBlk%!28) shell_HeapBlockReturn(_c_Icon_GetIconStateBlk%!28) shell_HeapBlockExists(_c_Icon_GetIconStateBlk%!32) shell_HeapBlockReturn(_c_Icon_GetIconStateBlk%!32) &400C4,,_c_Icon_GetIconStateBlk%: &400D1,d%,eA%,lA%,uA%,_A% shell_IconRadioSelection(b%,VC%): QI%,AC%,RI%,bG%:AC%= shell_HeapBlockFetch(8):QI%=(VC%<<16)+(1<<21):bG%=(31<<16)+(1<<21): &400D6,b%,AC%,bG%,QI%:RI%=!AC%: shell_HeapBlockReturn(AC%):=RI% shell_IconPutData(TA%,BB%,E$,U): _U%!&64 "WimpExt_SetIconString",,,TA%,BB%,E$+ shell_IconGetData(TA%,BB%): E$<>mA$ _c_Icon_GetIconStateBlk%!0=TA%:_c_Icon_GetIconStateBlk%!4=BB%: &400CE,,_c_Icon_GetIconStateBlk%: (_c_Icon_GetIconStateBlk%!24 (1<<8))<>0 E$>_c_Icon_GetIconStateBlk%!36 shell_MessageNoArgs(_c_Icons_IconOverFlowMess$) :$(_c_Icon_GetIconStateBlk%!28)=E$ $(_c_Icon_GetIconStateBlk%+28)= E$,&B) shell_IconHasCaret(TA%,BB%) shell_CaretSetPosition(TA%,BB%,-1,-1,-1, (E$)) !ia_c_Icon_GetIconStateBlk%!8=0:_c_Icon_GetIconStateBlk%!&C=0: &400CD,,_c_Icon_GetIconStateBlk% shell_IconPutDataNow(TA%,BB%,E$):_c_Icon_GetIconStateBlk%!0=TA%:_c_Icon_GetIconStateBlk%!4=BB%: &400CE,,_c_Icon_GetIconStateBlk%: (_c_Icon_GetIconStateBlk%!24 (1<<8))<>0 (E$)>_c_Icon_GetIconStateBlk%!36 shell_MessageNoArgs(_c_Icons_IconOverFlowMess$) !}%$(_c_Icon_GetIconStateBlk%!28)=E$ $(_c_Icon_GetIconStateBlk%+28)= E$,&B) :_c_Icon_GetIconStateBlk%!8=0:_c_Icon_GetIconStateBlk%!&C=0: &400CD,,_c_Icon_GetIconStateBlk%: shell_EnsurePoll: shell_IconNewSprite(b%,g%,M$): QE%,WF%,XF%,YF%:_c_Icon_GetIconStateBlk%!0=b%:_c_Icon_GetIconStateBlk%!4=g%: &400CE,,_c_Icon_GetIconStateBlk%: (_c_Icon_GetIconStateBlk%!24 (1<<1)) WF%= (_c_Icon_GetIconStateBlk%!24 XF%= (_c_Icon_GetIconStateBlk%!24 (1<<8)) YF%= _c_Icon_GetIconStateBlk%!24 )$(_c_Icon_GetIconStateBlk%!32)="S"+M$ $(_c_Icon_GetIconStateBlk%!28)=M$:_c_Icon_GetIconStateBlk%!36= :QE%=g% &400C4,,_c_Icon_GetIconStateBlk%:_c_Icon_GetIconStateBlk%!4=_c_Icon_GetIconStateBlk%!8:_c_Icon_GetIconStateBlk%!8=_c_Icon_GetIconStateBlk%!&C:_c_Icon_GetIconStateBlk%!&C=_c_Icon_GetIconStateBlk%!16 _c_Icon_GetIconStateBlk%!16=_c_Icon_GetIconStateBlk%!20:_c_Icon_GetIconStateBlk%!20=_c_Icon_GetIconStateBlk%!24:$(_c_Icon_GetIconStateBlk%+24)=M$: &400C2,,_c_Icon_GetIconStateBlk% shell_IconRedraw(b%,QE%):=QE% shell_IconGetData(b%,g%): b%<-2 _U%!&64 "WimpExt_GetIcon",,,b%,g% ,,,R$ _c_Icon_GetIconStateBlk%!0=b%:_c_Icon_GetIconStateBlk%!4=g%: &400CE,,_c_Icon_GetIconStateBlk%: (_c_Icon_GetIconStateBlk%!24 (1<<8))<>0 %R$=$(_c_Icon_GetIconStateBlk%!28) R$=$(_c_Icon_GetIconStateBlk%+28) shell_IconMove2(b%,g%,cG%,dG%):_c_Icon_GetIconStateBlk%!0=b%:_c_Icon_GetIconStateBlk%!4=g%: &400CE,,_c_Icon_GetIconStateBlk%:_c_Icon_GetIconStateBlk%!8+=cG%:_c_Icon_GetIconStateBlk%!16+=cG%:_c_Icon_GetIconStateBlk%!&C+=dG% _c_Icon_GetIconStateBlk%!20+=dG%:g%= shell_IconMove(b%,g%,_c_Icon_GetIconStateBlk%!8,_c_Icon_GetIconStateBlk%!&C,_c_Icon_GetIconStateBlk%!16,_c_Icon_GetIconStateBlk%!20):=g% shell_IconResize(d%,t%,eA%,lA%,uA%,_A%):= shell_IconMove(d%,t%,eA%,lA%,uA%,_A%) shell_IconMove(d%,t%,eA%,lA%,uA%,_A%): LA%,FK%,GK%,lB%,e%: eG%,fG%,gG%,hG%:LA%= shell_HeapBlockFetch(40):e%= shell_HeapBlockFetch(40):!LA%=d%:LA%!4=t%: &400CE,,LA%:!e%=d%:e%!4=t%: &400CE,,e%: &8168A,,e%+8:YI%=LA%!24:ZF%=LA%+28 eG%=YI%:fG%=ZF%!0:gG%=ZF%!4:hG%=ZF%!8:lB%=LA%!8-e%!8: &400C4,,LA%: &400D1,!LA%,LA%!8-lB%,LA%!&C-lB%,LA%!16+lB%,LA%!20+lB%:t%= shell_CreateIcon2(d%,eA%,lA%,uA%,_A%,eG%,fG%,gG%,hG%,lB%): shell_HeapBlockReturn(LA%): shell_HeapBlockReturn(e%):=t% shell_CreateIcon2(o%,eA%,lA%,uA%,_A%,n%,hI%,jI%,nI%,lB%): LC%,fA%,K$,p$,dB%,OB%:fA%= shell_HeapBlockFetch(60):!fA%=o%:fA%!20=n%:fA%!24=hI%:fA%!28=jI%:fA%!32=nI%:K$="":p$="": 256K$=$(fA%!24) K$=$(fA%+24) shell_IconGetCommand(fA%!28,"S") p$=$(fA%+24) shell_GetMinXY(n%,K$,p$): uA%-eA%&F shell_MessageOneArg("SHELLMSG22","PROCshell_IconSetButtonType") shell_IconSetState(d%,t%,WC%<<&C,&F000): shell_IconSetESG(d%,t%,VC%): VC%<0 VC%>31 shell_MessageOneArg("SHELLMSG25","PROCshell_IconSetESG") shell_IconSetState(d%,t%,VC%<<16,&1F0000): shell_IconSetText(d%,t%,BA%): BA%<>0 BA%=1<<0 shell_IconSetState(d%,t%,BA%,1<<0): shell_IconSetSprite(b%,g%,BA%): BA%<>0 BA%=1<<1 shell_IconSetState(b%,g%,BA%,1<<1): shell_IconSetBorder(b%,g%,BA%): BA%<>0 BA%=1<<2 shell_IconSetState(b%,g%,BA%,1<<2): shell_IconSetHCentred(d%,t%,BA%): shell_IconSetState(d%,t%,0,1<<9): BA%<>0 BA%=1<<3 shell_IconSetState(d%,t%,BA%,1<<3): shell_IconSetVCentred(d%,t%,BA%): BA%<>0 BA%=1<<4 shell_IconSetState(d%,t%,BA%,1<<4): shell_IconSetFilled(d%,t%,BA%): BA%<>0 BA%=1<<5 shell_IconSetState(d%,t%,BA%,1<<5): shell_IconSetUsesOutlineFont(d%,t%,BA%): BA%<>0 BA%=1<<6 shell_IconSetState(d%,t%,BA%,1<<6): shell_IconSetRightJust(d%,t%,BA%): shell_IconSetHCentred(d%,t%,0): BA%<>0 BA%=1<<9 shell_IconSetState(d%,t%,BA%,1<<9): shell_IconSetLeftJust(d%,t%): shell_IconSetHCentred(d%,t%,0): shell_IconSetRightJust(d%,t%,0): shell_IconSetUnselectable(d%,t%,zA%): zA%<>0 zA%=1<<22 shell_IconSetState(d%,t%,zA%,1<<22): zA%<>0 shell_IconHasCaret(d%,t%) &400D2,-1 shell_IconSelectAll(d%): e%,I%:e%= shell_HeapBlockFetch(&7D0):I%=e%+64:!e%=d%:e%!8=1<<21:e%!&C=1<<21: &400D6,!e%,I%,5<<21,0<<21: !I%>-1:e%!4=!I%: &400CD,,e%:I%+=4: shell_HeapBlockReturn(e%): shell_IconDeselectAll(d%): e%,I%:e%= shell_HeapBlockFetch(&7D0):I%=e%+64:!e%=d%:e%!8=0:e%!&C=1<<21: &400D6,!e%,I%,5<<21,1<<21: !I%>-1:e%!4=!I%: &400CD,,e%:I%+=4: shell_HeapBlockReturn(e%): shell_IconSetSpriteArea(n%,lD%,AJ%): 3)=2) 256)<>0) lD%!4=AJ% shell_IconGetSelectedIcons(d%,VC%, LA%): jG%:jG%=(VC%<<16)+(1<<21): &400D6,d%,LA%,jG%,(VC%<<16)+(1<<21): shell_IconIndirSize(YB%,n%,lD%,X%): XB%,kG%,m%,nE%: &800100)=256 "XB%=lD%!8: (lD%!4<>-1) AkG%=lD%!4: #X%=YB%+kG%:m%=0: :nE%= #X%:m%+=1: nE%<32:XB%+=+m% XB%=0 :=XB% shell_IconGetBoundingBox(b%,g%, kA%): Icons_GetState(b%,g%):YA%=_c_Icon_GetIconStateBlk%!8:ZA%=_c_Icon_GetIconStateBlk%!&C:jA%=_c_Icon_GetIconStateBlk%!16:kA%=_c_Icon_GetIconStateBlk%!20: shell_IconDragBox(b%,g%): A$,a%,j%,FA%,v%,B$,k%: _G%,l%,C,D,nG%,n%,UC%,oG%,mA%,TA$:l%= shell_HeapBlockFetch(&64+( shell_WindowCountIcons(b%)*32)):!l%=b%: &400CC,,l%:C=l%!4-l%!20:D=l%!16-l%!24:nG%=l%!68:l%!4=g%: &400CE,,l%:l%!0=b% l%!4=_c_Icons_IconDragType%:n%=l%!24:UC%=l%!32:l%!8=l%!8+C:l%!&C=l%!&C+D:l%!16=l%!16+C:l%!20=l%!20+D:l%!24=_c_Icons_DragBBoxXMin%:l%!28=_c_Icons_DragBBoxYMin%:l%!32=_c_Icons_DragBBoxXMax%:l%!36=_c_Icons_DragBBoxYMax%: 6,&A1,28 ,,mA%:oG%=((mA% 2)=2) shell_DataSaveResetDragASpriteInProgressFlag: shell_DataSaveDragInProgress mA%=n%: #H&TA$= shell_IconGetCommand(UC%,"s") shell_OK( shell_MessageNoArgs(_c_Icons_NotASpriteIconMess$)) TA$<>"" &42400,_c_Icons_DragFlags%,nG%,TA$,l%+8: shell_DataSaveSetDragASpriteInProgressFlag &400D0,,l% &400D0,,l% shell_HeapBlockReturn(l%): shell_HandleSlider(b%,g%): shell_IconDragBox2(b%,g%): l%,C,D,n%,UC%:l%= shell_HeapBlockFetch(&64+( shell_WindowCountIcons(b%)*32)):!l%=b%: &400CC,,l%:C=l%!4-l%!20:D=l%!16-l%!24:l%!4=g%: &400CE,,l%:l%!0=b%:l%!4=_c_Icons_IconDragType%:n%=l%!24:UC%=l%!32:l%!8=l%!8+C l%!&C=l%!&C+D:l%!16=l%!16+C:l%!20=l%!20+D:l%!24=_c_Icons_DragBBoxXMin%:l%!28=_c_Icons_DragBBoxYMin%:l%!32=_c_Icons_DragBBoxXMax%:l%!36=_c_Icons_DragBBoxYMax%: &400D0,,l%: shell_HeapBlockReturn(l%): shell_IconGetBGColour(d%,t%): mD%,l%:l%= shell_HeapBlockFetch(40):l%!0=d%:l%!4=t%: &400CE,,l%:mD%=(l%!24>>28) shell_HeapBlockReturn(l%):=mD% shell_IconGetFGColour(d%,t%): mD%,l%:l%= shell_HeapBlockFetch(40):l%!0=d%:l%!4=t%: &400CE,,l%:mD%=(l%!24>>24) shell_HeapBlockReturn(l%):=mD% shell_IconGetButtonType(b%,g%): WC%,l%:l%= shell_HeapBlockFetch(40):l%!0=b%:l%!4=g%: &400CE,,l%:WC%=(l%!24>>&C) shell_HeapBlockReturn(l%):=WC% shell_IconEnsureVisible(b%,g%): sB%,BC%,qG%: rG%,sG%,tG%: fF%,gF%,hF%,iF%: jF%,kF%: yG%,zG%: lF%,mF%: nF%,oF%: g%>=0 shell_HeapBlockFetch(36):BC%= shell_HeapBlockFetch(40):!sB%=b%: &400CB,,sB%:qG%=sB%!4:rG%=sB%!8:sG%=sB%!&C:tG%=sB%!16:jF%=sB%!20:kF%=sB%!24:zG%=sG%-qG%:yG%=tG%-rG%:BC%!0=b%:BC%!4=g%: &400CE,,BC%:fF%=BC%!8:gF%=BC%!&C:hF%=BC%!16:iF%=BC%!20 lF%=jF%:oF%=kF%:nF%=jF%+zG%:mF%=kF%-yG%:mC%= shell_Window_GetBottomPaneDepth(b%)+8:MD%= shell_Window_GetTopPaneDepth(b%)+8: gF%<(mF%+mC%) shell_WindowScrollBy(b%,0,gF%-mF%-mC%) iF%>(oF%-MD%-mC%) shell_WindowScrollBy(b%,0,iF%-oF%+MD%+mC%+&C) hF%>nF% shell_WindowScrollBy(b%,hF%-nF%,0) fF%-1: shell_IconPutData(b%,l%!f%,"", ):f%+=4: shell_HeapBlockReturn(l%): shell_IconDisallowWritableDrags:_m_Icons_AllowWritableDrags%= shell_IconAllowWritableDrags:_m_Icons_AllowWritableDrags%= shell_IconWritableDragStatus:=_m_Icons_AllowWritableDrags% _shell_IntHelp_Init:_c_IntHelp_Bubble_Control%=&83400:_c_IntHelp_HelpBubble_Off%=0:_c_IntHelp_HelpBubble_On%=1:_c_IntHelp_HelpBubble_Toggle%=2:_m_IntHelp_IsOn%= shell_InteractiveHelp(_Q%): J$,e$,O$,CC%,pF%,XB$,n%: shell_EvntHandle_HelpTags(_Q%!32,_Q%!36,J$):O$= shell_IconGetValidation(_Q%!32,_Q%!36): O$<>"" shell_StringUpperCase( O$,1))="I" O$,";"): CC%=0 O$,2) O$,2,CC%-2) shell_StringUpperCase(O$), shell_StringUpperCase(";i")):pF%= shell_StringUpperCase(O$), shell_StringUpperCase(";"),CC%+1): CC%>0 pF%>0 O$,CC%+2,pF%-CC%-2) O$,CC%+2) J$="" shell_EvntHandle_HelpTags(_Q%!32,-1,J$) J$<>"" _Q%!16=&503:_Q%!&C=_Q%!8:e$= shell_MessageLookup(J$,"",""):e$= shell_MessageExpand(e$):$(_Q%+20)=e$:!_Q%=( e$+25) &400E7,17,_Q%,_Q%!4 shell_InteractiveHelpOn:_m_IntHelp_IsOn%= shell_InteractiveHelpOff:_m_IntHelp_IsOn%= shell_InteractiveHelpStartApp: shell_InteractiveHelpBubbleHelpIsRunning shell_OSVarExists("Help$Dir") shell_OSVarExists("Help$Start") &400DE,"" &400DE,"Resources:$.Apps.!Help" shell_InteractiveHelpBubbleHelpOn: shell_InteractiveHelpBubbleHelpIsRunning: shell_OSVarExists("BubbleHelp$Running") HA%= :=HA% shell_InteractiveHelpBubbleHelpOn: shell_InteractiveHelp_SendBubbleHelpMessage(_c_IntHelp_HelpBubble_On%): shell_InteractiveHelpBubbleHelpOff: shell_InteractiveHelp_SendBubbleHelpMessage(_c_IntHelp_HelpBubble_Off%): shell_InteractiveHelpBubbleHelpToggle: shell_InteractiveHelp_SendBubbleHelpMessage(_c_IntHelp_HelpBubble_Toggle%): shell_InteractiveHelp_SendBubbleHelpMessage(qF%): XC%:XC%= shell_HeapBlockFetch(256):XC%!0=28:XC%!&C=0:XC%!16=_c_IntHelp_Bubble_Control%:XC%!20=qF%:XC%!24=0: &400E7,18,XC%,0: shell_HeapBlockReturn(XC%): _shell_Memory_Init:_m_MemLib_HeapBase%=0:_m_MemLib_HeapEnd%=0:_m_MemLib_MemClaimed%=0:_m_MemLib_NrBlocks%=0:=0 shell_HeapManagerInit(I$,XI%): _heap_code%900: ("LOAD "+I$+"heapcode "+ ~_heap_code%): _heap_code%+0,XI%: shell_HeapBlockExtend(CH%,rF%): _heap_code%+&C,CH%,rF%:=CH% shell_HeapBlockFetch(rF%): _heap_code%+4,DB%,rF%:=DB% shell_HeapBlockReturn( pA%): shell_HeapBlockExists(pA%) _heap_code%+8,pA% pA%=0: shell_HeapBlockExists(DB%): DB%<&8000 99,"No heapblock defined at this address" %]&k%= shell_HeapBlockInfo(DB%): shell_HeapBlockExists2(DB%): n%,HA%,H: DB%<&8000 %g HA%= &2001D,6,!(_heap_code%+28),DB% ,,,H;n%: %k HA%= :=HA% shell_HeapBlockInfo(pA%): 29,6,!(_heap_code%+28),pA% ,,,H:=H shell_HeapBlockExtendMid(pA%,rB%,EH%): FH%:FH%= shell_HeapBlockInfo(pA%): _heap_code%+&C,pA%,rB%: &400F1,_U%!&94,pA%+EH%,_U%!&94,pA%+EH%+rB%,FH%-rB%:=pA% _shell_MenuList_Init:_c_MenuList_HeaderSize%=4:_c_MenuList_ListTerm%=-1:_m_MenuList_DataBlk%=-1:_m_MenuList_NrMenus%=0:=0 shell_MenuList_GetSysHandle(V$): f%,p%,qA%: _m_MenuList_DataBlk%<>-1 yf%=0: _m_MenuList_DataBlk%!f%<>_c_MenuList_ListTerm%:qA%=_m_MenuList_DataBlk%!f%: $(qA%+_c_MenuList_HeaderSize%)=V$ p%=!qA% :f%+=4: shell_MenuList_GetIdentifier(p%): f%,V$,qA%: _m_MenuList_DataBlk%<>-1 `f%=0: _m_MenuList_DataBlk%!f%<>_c_MenuList_ListTerm%:qA%=_m_MenuList_DataBlk%!f%: qA%!0=p% %V$=$(qA%+_c_MenuList_HeaderSize%) :f%+=4: shell_MenuList_AddMenu(p%,V$): f%,qA%: _m_MenuList_DataBlk%=-1 shell_MenuList_CreateNewList _m_MenuList_DataBlk%= shell_HeapBlockExtend(_m_MenuList_DataBlk%,4) :f%=_m_MenuList_NrMenus%*4:_m_MenuList_DataBlk%!f%= shell_HeapBlockFetch(_c_MenuList_HeaderSize%+ (V$)+1):qA%=_m_MenuList_DataBlk%!f%:qA%!0=p%:$(qA%+_c_MenuList_HeaderSize%)=V$:_m_MenuList_NrMenus%+=1 I_m_MenuList_DataBlk%!(_m_MenuList_NrMenus%*4)=_c_MenuList_ListTerm%: shell_MenuList_DeleteMenu(p%): f%,qA%: _m_MenuList_NrMenus%>0 _m_MenuList_NrMenus%=1 shell_MenuList_DestroyList f%=0: _m_MenuList_DataBlk%!f%<>_c_MenuList_ListTerm%:qA%=_m_MenuList_DataBlk%!f%: qA%!0=p% -$(qA%+_c_MenuList_HeaderSize%)="":qA%!0=0 :f%+=4: shell_MenuList_SaveList(Y$): f%,V$,qA%,u%: _m_MenuList_DataBlk%<>-1 f%=0:u%= (Y$): _m_MenuList_DataBlk%!f%<>_c_MenuList_ListTerm%:qA%=_m_MenuList_DataBlk%!f%:V$=$(qA%+_c_MenuList_HeaderSize%): #u%,V$:f%+=4: #u%,"": ("SetType "+Y$+" FFF") shell_MenuList_CreateNewList: shell_MenuList_DestroyList:_m_MenuList_DataBlk%= shell_HeapBlockFetch(8):_m_MenuList_DataBlk%!4=_c_MenuList_ListTerm%: shell_MenuList_DestroyList: _m_MenuList_DataBlk%<>-1 shell_HeapBlockReturn(_m_MenuList_DataBlk%):_m_MenuList_DataBlk%=-1:_m_MenuList_NrMenus%=0 _shell_Menus_Init:_c_Menu_MinMenuItems%=&A:_m_Menu_HandleLastOpened%=-1:_m_Menu_SubLastOpened%=-1:_m_Menu_LastXPos%=0:_m_Menu_LastYPos%=0:_m_Menu_MovePointerOnPopup%= :_m_WimpColMen_Handle%=-1:=0 shell_OpenMenu(QA%,RA%,p%): shell_ExReg_FontMenu_Loaded shell_FontMenu_GetHandle &400D4,,p%,QA%-64,RA% _Q%!0=QA%:_Q%!4=RA%: &65BC5,p%,_Q% _Q%!0=QA%:_Q%!4=RA%: &65BC5,p%,_Q% :_m_Menu_HandleLastOpened%=p%:_m_Menu_LastXPos%=QA%:_m_Menu_LastYPos%=RA%:_U%!52=_U%!28:_U%!56=_U%!32: shell_MenuLastXPos:=_m_Menu_LastXPos% shell_MenuLastYPos:=_m_Menu_LastYPos% shell_MenuLastHandle:=_m_Menu_HandleLastOpened% shell_MenuSubLastHandle:=_m_Menu_SubLastOpened% shell_MenuAttachDbox(y$): "Menu_SetSubHandle",_U%!8, shell_MenuString(y$),1: shell_MenuWarning(_Q%): NI%,QA%,RA%,k%,_temp%,pA%,L$,kC%,e%: P$:QA%=_Q%!24:RA%=_Q%!28:_U%!264=0: _U%!20<>0 shell_DeleteWindow(_U%!20) _Q%!20 _U%!&E4: shell_WindowRetitle(_U%!&E4, shell_MessageNoArgs("warning")): shell_IconPutData(_U%!&E4,1, shell_MessageNoArgs("SHELLMSG07"),0): &400E8,,_U%!&E4,QA%,RA% shell_MenuGetItemAddress(_m_Menu_HandleLastOpened%,_Q%+32): shell_HeapBlockExists(kC%!4) shell_MenuWarnDBox(kC%,QA%,RA%) shell_HeapBlockFetch(32): &45BC4,_m_Menu_HandleLastOpened%,_Q%+32 ,,e%: shell_FindMenuWarnEvent(e%!8,L$,P$): shell_HeapBlockReturn(e%): shell_MenuWarnSubMenu(_Q%!20,QA%,RA%,L$,P$) shell_MenuWarnDBox(DB%,QA%,RA%): h%,w%,k%: '69h%=DB%!4: shell_CreateWindow($h%!0,w%): $h%!4<>"" '@ k%= ("FN"+$h%!4+"("+ w%+")") $h%!8<>"" 'F k%= ("FN"+$h%!8+"("+ w%+")") &400E8,,w%,QA%,RA%:_U%!20=w%: shell_MenuWarnSubMenu(oD%,QA%,RA%,L$,P$): k%,h%,pD%,m%:_shell_FontMenuSelFN$=P$: shell_HeapBlockExists(_U%!&E0) shell_HeapBlockReturn(_U%!&E0) 'VC_U%!&E0= shell_HeapBlockFetch( L$+1):h%=_U%!&E0:$h%=L$: L$<>"" 'Z#k%= ("FN"+L$+"(_U%!52,_U%!56)") oD%=_U%!&FC shell_HeapBlockExists(_U%!256) shell_HeapBlockReturn(_U%!256) m%=0: :m%+=4: !(_Q%+32+m%)=-1:m%+=4:_U%!256= shell_HeapBlockFetch(m%):h%=_U%!256:m%=0: :h%!m%=!(_Q%+32+m%):m%+=4: !(_Q%+32+m%)=-1:h%!m%=!(_Q%+32+m%):h%=_U%!256: "FontMenu_Select", shell_FontMenuGetLastSelectedFont,_U%!260 ,pD%:_U%!264=1 pD%<>_U%!&FC shell_FontMenuUpdatePtr(pD%):_U%!&FC=pD%:oD%=pD% _U%!264=0 shell_ExReg_ColourMenu_Loaded shell_WimpColMen_GetHandle &400E8,,oD%,QA%,RA%:_m_Menu_SubLastOpened%=oD%: shell_WimpColMen_GetHandle:=_m_WimpColMen_Handle% shell_AttachSubMenu(dC%,fC%,L$): &45BCE,dC%,fC%: L$<>"" &45BCC,, shell_EventListMenuWarn(dC%,fC%,L$,"") shell_MenuNew(PB$,V$,sF%): sF%<_c_Menu_MinMenuItems% sF%=_c_Menu_MinMenuItems% &45BC1,,PB$,sF% shell_MenuList_AddMenu(p%,V$):=p% shell_MenuAdd(o%,oA$,P$): P$<>"" &45BC2,o%,oA$,P$ &45BC2,o%,oA$ :=NA% shell_MenuTick(NA%,zA%): &45BC9,NA%,zA%: shell_MenuTickItem(NA%): shell_MenuTick(NA%,1): shell_MenuUnTickItem(NA%): shell_MenuTick(NA%,0): shell_MenuTickOnly1(p%,MA%): &45BD1,p%,MA%: shell_MenuTickOnly2(NA%): &45BD1,NA%: shell_MenuTickAllItems(p%): shell_MenuTick(p%, shell_MenuUntickAllItems(p%): shell_MenuTick(p%, shell_MenuShade(o%,zA%): &45BCB,o%,zA%: shell_MenuShadeAllItems(p%): shell_MenuShade(p%, shell_MenuUnshadeAllItems(p%): shell_MenuShade(p%, shell_MenuDotted(NA%,zA%): &45BCA,NA%,zA%: shell_MenuColours(NA%,TF%,UF%): &45BD0,NA%,TF%,UF%: shell_MenuWritable(NA%,zA%,XB%,RA$): &45BCD,NA%,zA%,XB%,RA$: shell_MenuPutData(NA%,E$): &45BC8,NA%,E$: shell_MenuPutTitle(p%,d$): shell_MenuPutData(p%,d$): shell_MenuSortItems(AA%,VA$,iI%,QD%,tF%): oC%:oC%= shell_MenuGetNrItems(AA%)-1:_shell_MS_handle%=AA%: tF%>oC% tF%=oC% VA$="" VA$="_shell_MS_comp" &406C0: shell_QuickSort(VA$,"_shell_MS_swap",iI%,QD%,tF%): &406C1: shell_MenuGetNrItems(p%): AA%,i%,KH%: &45BC7,p% AA%:AA%+=28: :i%=(AA%?0 &80):KH%+=1:AA%+=24: i%:=KH% shell_MenuGetNrDotted(p%): AA%,i%,VE%: &45BC7,p% AA%:AA%+=28: :i%=(AA%?0 &80): (AA%?0 VE%+=1 AA%+=24: i%=-1:=VE% shell_MenuGetItemHandler(p%,uF%): mB%,f%,WA$:mB%= shell_HeapBlockFetch(8):mB%!0=uF%:mB%!4=-1: &45BC4,p%,mB% WA$="" WA$=$(f%) shell_HeapBlockReturn(mB%):=WA$ shell_MenuGetItemText(p%,uF%): mB%,f%,K$:mB%= shell_HeapBlockFetch(8):mB%!0=uF%:mB%!4=-1: &45BC4,p%,mB% ,,f%:K$=$(f%!&C): shell_HeapBlockReturn(mB%):=K$ shell_MenuGetItemHandle(p%,AC%): f%,NA%,n%:f%= shell_HeapBlockFetch(40): &65BC4,p%,AC% ,,f%;n%: NA%=0 NA%=f%!8 shell_HeapBlockReturn(f%):=NA% shell_MenuGetItemHeight(p%): &45BC7,p% AA%:=AA%!20 shell_MenuCalculateHeight(p%): VA%:VA%= shell_MenuGetNrItems(p%)* shell_MenuGetItemHeight(p%):=VA%+( shell_MenuGetNrDotted(p%)*24) shell_MenuDelete(p%,uI%): f%,KA%,r%: p%<>0 &65BC3,p%,uI%: shell_MenuList_DeleteMenu(p%) shell_MenuOpenLast: &65BC5,_m_Menu_HandleLastOpened%: shell_MenuCloseAll: &400D4,,-1: shell_MenuMakeFromFile(d$,V$,BB$,x$): p%,X%,C$,k%,oC%: shell_FileExists(x$) (x$):oC%=0: C$<>"" C$,1)<>"#" oC%+=1 #X%=0:p%= shell_MenuNew(d$,V$,oC%): C$<>"" C$,1)<>"#" shell_MenuAdd(p%,C$,BB$) shell_AttachColourSubMenu(NA%,p%,CB$): shell_AttachSubMenu(NA%,p%,CB$): shell_MenuMovePointerOnPopup(BA%): )0!_m_Menu_MovePointerOnPopup%= _m_Menu_MovePointerOnPopup%= shell_MenuPointerMovesOnPopup:=_m_Menu_MovePointerOnPopup% _shell_Messages_Init: _MESSAGES_WORK_BLK%256:_MESSAGE_QUIT=0:_MESSAGE_DATASAVE=1:_MESSAGE_DATASAVEACK=2:_MESSAGE_DATALOAD=3:_MESSAGE_DATALOADACK=4:_MESSAGE_RAMFETCH=6:_MESSAGE_RAMTRANSMIT=7:_MESSAGE_PREQUIT=8:_MESSAGE_PALETTECHANGE=9 _MESSAGE_SAVEDESKTOP=&A:_MESSAGE_SHUTDOWN=&E:_MESSAGE_HELP=&502:_MESSAGE_MENUWARNING=&400C0:_MESSAGE_MODECHANGE=&400C1:_MESSAGE_TASKINIT=&400C2:_MESSAGE_TASKCLOSEDOWN=&400C3:_MESSAGE_TASKNAMEIS=&400C7:_MESSAGE_DESKFONT_CHANGED=&400CF )f`_MESSAGE_COLOURPICKERCOLOURCHOICE=&47700:_MESSAGE_COLOURPICKERCLOSEDIALOGUEREQUEST=&47702:=0 shell_BroadcastMessage(qF%,FA$): MH%:MH%=( (FA$)+30) 3:_MESSAGES_WORK_BLK%!&C=0:_MESSAGES_WORK_BLK%!16=qF%:$(_MESSAGES_WORK_BLK%+20)=FA$+ (0):_MESSAGES_WORK_BLK%!0=MH%: &600E7,17,_MESSAGES_WORK_BLK%,0: _shell_OS_Init:_m_OS_VAR_BUFFER_SIZE%=256: _m_OS_VAR_BUFFER%_m_OS_VAR_BUFFER_SIZE%:_m_OS_RiscOS_3_Found%= shell_OSModuleCheckVersion("UtilityModule",3.1):=0 shell_RO3_Available:=_m_OS_RiscOS_3_Found% shell_OSCheckVersion(M): HA%:HA%= shell_OSModuleCheckVersion("UtilityModule",M):=HA% shell_OSModuleCheckVersion(DB$,M): cC%,R$,i%: ("Set Module$Check Y"): ("RMEnsure "+DB$+" "+ M+" Set Module$Check N"): 35,"Module$Check",_m_OS_VAR_BUFFER%,256,0,0 ,,cC%:_m_OS_VAR_BUFFER%?cC%=&D: ("Unset Module$Check"):R$=$_m_OS_VAR_BUFFER%: R$="N" shell_OSVarExists(XA$): &20023,XA$,_m_OS_VAR_BUFFER%,-1,0,0 shell_OSVarGetVal(XA$,Z): YA$,F,wI%,s%: &20023,XA$,_m_OS_VAR_BUFFER%,_m_OS_VAR_BUFFER_SIZE%,0,-3*(Z= ,,F,wI%: F-1:YA$=YA$+ (_m_OS_VAR_BUFFER%?s%): s%:=YA$ shell_OSReadCommandArg(a): vF%,i$,a%:i$="":a%=0: vF%?a%<>0:i$+= (vF%?a%):a%+=1: 1:i$= 34)+1):i$= 34)+2) _shell_Pointer_Init:_c_PointerIn_RecSize%=20: _m_PointerIn_Anchor%4: _m_PointerIn_DataBlk%4:!_m_PointerIn_Anchor%=0:!_m_PointerIn_DataBlk%=0:_m_PointerIn_DataOffset%=0:_c_PointerOut_RecSize%=20: _m_PointerOut_Anchor%4: _m_PointerOut_DataBlk%4 !_m_PointerOut_Anchor%=0:!_m_PointerOut_DataBlk%=0:_m_PointerOut_DataOffset%=0:_m_Pointer_SetShape_Reason%=36:_m_Pointer_SetShape_Ptr_Nr%=2:_m_Pointer_ShapeChanged%= :_m_Pointer_CurrentShape$="": _m_Pointer_WorkBuffer%4: _m_Pointer_GetInfoBlk%20:=0 shell_AttachPointerEnteringWindowHandler(b%,B$): c%,a%,A$,q%,bA%: shell_GetWindowIdentifier(b%):a%= Evnts_GetEvntListOffset(A$,-1,_m_PointerIn_Anchor%,_c_PointerIn_RecSize%, ):c%=!_m_PointerIn_Anchor%:bA%=c%!4:c%+=a%:$c%=A$:c%!&C=-1: !_m_PointerIn_DataBlk%=0 *Q9!_m_PointerIn_DataBlk%= shell_HeapBlockFetch( (B$)+1) :q%=c%+16: Evnts_UpdateData(q%,_m_PointerIn_DataBlk%,_m_PointerIn_DataOffset%,B$) shell_EvntHandle_PointerEnteringWindow(_window_handle%): A$,a%,j%,FA%,v%,B$: k%:A$= shell_GetWindowIdentifier(_window_handle%): A$<>"" *j[a%= Evnts_GetEvntListOffset(A$,-1,_m_PointerIn_Anchor%,_c_PointerIn_RecSize%, a%>=0 *ltj%=!_m_PointerIn_Anchor%+a%:FA%=j%!16:v%=!_m_PointerIn_DataBlk%:B$=$(v%+FA%):k%= ("FN"+B$+"( _window_handle% )") shell_AttachPointerLeavingWindowHandler(b%,B$): c%,a%,A$,q%,bA%: shell_GetWindowIdentifier(b%):a%= Evnts_GetEvntListOffset(A$,-1,_m_PointerOut_Anchor%,_c_PointerOut_RecSize%, ):c%=!_m_PointerOut_Anchor%:bA%=c%!4:c%+=a%:$c%=A$:c%!&C=-1: !_m_PointerOut_DataBlk%=0 :!_m_PointerOut_DataBlk%= shell_HeapBlockFetch( (B$)+1) :q%=c%+16: Evnts_UpdateData(q%,_m_PointerOut_DataBlk%,_m_PointerOut_DataOffset%,B$) shell_EvntHandle_PointerLeavingWindow(_window_handle%): A$,a%,j%,FA%,v%,B$: k%:A$= shell_GetWindowIdentifier(_window_handle%): A$<>"" Evnts_GetEvntListOffset(A$,-1,_m_PointerOut_Anchor%,_c_PointerOut_RecSize%, a%>=0 vj%=!_m_PointerOut_Anchor%+a%:FA%=j%!16:v%=!_m_PointerOut_DataBlk%:B$=$(v%+FA%):k%= ("FN"+B$+"( _window_handle% )") shell_PointerResetShape: shell_PointerChangeShape(sA$,NH%,IK%): &400E9,_m_Pointer_SetShape_Reason%,,sA$,_m_Pointer_SetShape_Ptr_Nr%,NH%,NH%:_m_Pointer_ShapeChanged%= :_m_Pointer_CurrentShape$=sA$: shell_PointerResetShape: _m_Pointer_ShapeChanged%= ("Pointer"):_m_Pointer_ShapeChanged%= :_m_Pointer_CurrentShape$="" shell_PointerGetCurrentShape:=_m_Pointer_CurrentShape$ shell_PointerIsChanged:=_m_Pointer_ShapeChanged% shell_PointerGetPosition( XA%): &400CF,,_m_Pointer_GetInfoBlk%:WA%=_m_Pointer_GetInfoBlk%!0:XA%=_m_Pointer_GetInfoBlk%!4: shell_PointerGetWindow( &400CF,,_m_Pointer_GetInfoBlk%:b%=_m_Pointer_GetInfoBlk%!&C: shell_PointerGetIcon( &400CF,,_m_Pointer_GetInfoBlk%:g%=_m_Pointer_GetInfoBlk%!16: shell_PointerGetMouseButton( eC%): &400CF,,_m_Pointer_GetInfoBlk%:eC%=_m_Pointer_GetInfoBlk%!8: shell_PointerIsBelowWindowCentre(b%): i%,YA%,ZA%,jA%,kA%,WA%,XA%: shell_WindowGetPosition(b%,YA%,ZA%,jA%,kA%): shell_PointerGetPosition(WA%,XA%): XA%<(ZA%+(kA%-ZA%)/2) shell_PointerIsAboveWindowCentre(b%): i%,YA%,ZA%,jA%,kA%,WA%,XA%: shell_WindowGetPosition(b%,YA%,ZA%,jA%,kA%): shell_PointerGetPosition(WA%,XA%): XA%>=(ZA%+(kA%-ZA%)/2) shell_PointerIsRightOfWindowCentre(b%): i%,YA%,ZA%,jA%,kA%,WA%,XA%: shell_WindowGetPosition(b%,YA%,ZA%,jA%,kA%): shell_PointerGetPosition(WA%,XA%): WA%>=(YA%+(jA%-YA%)/2) shell_PointerIsLeftOfWindowCentre(b%): i%,YA%,ZA%,jA%,kA%,WA%,XA%: shell_WindowGetPosition(b%,YA%,ZA%,jA%,kA%): shell_PointerGetPosition(WA%,XA%): WA%<(YA%+(jA%-YA%)/2) shell_PointerSaveEvnts(u%): Evnts_SaveEvnt(u%,_m_PointerIn_Anchor%,_m_PointerIn_DataBlk%,_m_PointerIn_DataOffset%): Evnts_SaveEvnt(u%,_m_PointerOut_Anchor%,_m_PointerOut_DataBlk%,_m_PointerOut_DataOffset%): shell_PointerLoadEvnts(u%): Evnts_LoadEvnt(u%,_m_PointerIn_Anchor%,_m_PointerIn_DataBlk%,_m_PointerIn_DataOffset%): Evnts_LoadEvnt(u%,_m_PointerOut_Anchor%,_m_PointerOut_DataBlk%,_m_PointerOut_DataOffset%): shell_PointerGetMovementVector(OH%,PH%,WA%,XA%, iB%):hB%=WA%-OH%:iB%=XA%-PH%:QC%= :RC%= :TC%= :SC%= (hB%)> (iB%) WA%>OH% TC%= XA%0 iB%<>0 _m_evnts_DragIconLastScrollUp%=QC%:_m_evnts_DragIconLastScrollDown%=RC%:_m_evnts_DragIconLastScrollLeft%=SC%:_m_evnts_DragIconLastScrollRight%=TC%:_m_evnts_DragIconLastDX%=hB%:_m_evnts_DragIconLastDY%=iB% shell_PointerGetLastMovementVector( iB%):QC%=_m_evnts_DragIconLastScrollUp%:RC%=_m_evnts_DragIconLastScrollDown%:SC%=_m_evnts_DragIconLastScrollLeft%:TC%=_m_evnts_DragIconLastScrollRight%:hB%=_m_evnts_DragIconLastDX% "iB%=_m_evnts_DragIconLastDY%: shell_PointerLimit(b%): shell_MouseLimit(b%): shell_PointerRemoveLimits: shell_MouseRemoveLimits: _shell_Poll_Init: _c_POLL_BLK%256:_POLL_EARLIEST_TIME%=0:_POLL_INTERVAL%=&64:_POLL_PREVINTERVAL%=0: shell_PollSetInterval(_POLL_INTERVAL%): shell_PollSetPrevInterval(_POLL_INTERVAL%): _POLL_EARLIEST_TIME%:_POLL_EARLIEST_TIME%+=_POLL_INTERVAL% ?_c_poll_mask_unset%=-1:_m_poll_mask%=_c_poll_mask_unset%:=0 shell_PollIdle(EB%,RD%): _U%!&64 "XWimpExt_PrePoll" &400E1,EB%,_c_POLL_BLK%,_POLL_EARLIEST_TIME% _U%!&64 "XWimpExt_Action",_U%!&94,_c_POLL_BLK%,DC% shell_PollSetInterval(xF%):_POLL_INTERVAL%=xF%: shell_PollSetPrevInterval(xF%):_POLL_PREVINTERVAL%=xF%: shell_PollReadInterval:=_POLL_INTERVAL% shell_PollReadPrevInterval:=_POLL_PREVINTERVAL% shell_Poll_I(EB%,RD%): _U%!&64 "XWimpExt_PrePoll" _m_poll_mask%<>_c_poll_mask_unset% &400C7,_m_poll_mask%,_Q% &400C7,EB%,_Q% _U%!&64 "XWimpExt_Action",_U%!&94,_Q%,DC% &A1686,DC%,,RD%:=DC% poll(EB%,RD%): _U%!&64 "XWimpExt_PrePoll" _m_poll_mask%<>_c_poll_mask_unset% &400C7,_m_poll_mask%,_Q% &400C7,EB%,_Q% _U%!&64 "XWimpExt_Action",_U%!&94,_Q%,pA% shell_PollAllowNullEvents: _m_poll_mask%=_c_poll_mask_unset% ,61_m_poll_mask%=0:_m_poll_mask%=_m_poll_mask% shell_PollDisallowNullEvents: _m_poll_mask%=_c_poll_mask_unset% ,A2_m_poll_mask%=0:_m_poll_mask%=_m_poll_mask% _shell_PopUps_Init:=0 _shell_Printers_Init:=0 shell_PrinterOnLine: SH%,TH%:SH%= (-4): 2,1,0,1,0,1,0: >30:TH%= (-4)"" ,_m_ProgEvnts_DeskFontChangeHandlerFN$=F$ shell_ProgEvnts_DeskFontChanged(RJ%): k%:_m_ProgEvnts_DeskFontHandle%=RJ%: _m_ProgEvnts_DeskFontChangeHandlerFN$<>"" ("FN"+_m_ProgEvnts_DeskFontChangeHandlerFN$+"("+ _m_ProgEvnts_DeskFontHandle%+")") shell_AttachPaletteChangeHandler(F$): F$<>"" 9_m_ProgEvnts_PaletteChangeHandlerFN$=F$:k%= ("FN"+F$) shell_ProgEvnts_PaletteChanged: _m_ProgEvnts_PaletteChangeHandlerFN$<>"" ("FN"+_m_ProgEvnts_PaletteChangeHandlerFN$) shell_AttachModeChangeHandler(F$): F$<>"" -*6_m_ProgEvnts_ModeChangeHandlerFN$=F$:k%= ("FN"+F$) shell_ProgEvnts_ModeChanged: _m_ProgEvnts_ModeChangeHandlerFN$<>"" -<0k%= ("FN"+_m_ProgEvnts_ModeChangeHandlerFN$) shell_AttachSaveDesktopHandler(F$): F$<>"" -T)_m_ProgEvnts_SaveDesktopHandlerFN$=F$ shell_ProgEvnts_SaveDesktop(u%): _m_ProgEvnts_SaveDesktopHandlerFN$<>"" -hAAA$= ("FN"+_m_ProgEvnts_SaveDesktopHandlerFN$)+ (&A): AA$="" -n%AA$="Run "+ shell_GetAppDir+ &C,2,u%,AA$, (AA$) shell_AttachTaskInitialiseHandler(F$): F$<>"" ,_m_ProgEvnts_TaskInitialiseHandlerFN$=F$ shell_ProgEvnts_TaskInitialise(yF%,JB$): _m_ProgEvnts_TaskInitialiseHandlerFN$<>"" ("FN"+_m_ProgEvnts_TaskInitialiseHandlerFN$+"("+ yF%+","+ (34)+JB$+ (34)+")") shell_AttachTaskCloseDownHandler(F$): F$<>"" +_m_ProgEvnts_TaskCloseDownHandlerFN$=F$ shell_ProgEvnts_TaskCloseDown(yF%): _m_ProgEvnts_TaskCloseDownHandlerFN$<>"" ("FN"+_m_ProgEvnts_TaskCloseDownHandlerFN$+"("+ yF%+")") shell_AttachShutdownHandler(F$): F$<>"" &_m_ProgEvnts_ShutdownHandlerFN$=F$ shell_ProgEvnts_Shutdown: _m_ProgEvnts_ShutdownHandlerFN$<>"" ("FN"+_m_ProgEvnts_ShutdownHandlerFN$) shell_AttachPreQuitHandler(F$): F$<>"" %_m_ProgEvnts_PreQuitHandlerFN$=F$ shell_ProgEvnts_PreQuit(yA%): k%,e%,zF%,_F%,s%: _m_ProgEvnts_PreQuitHandlerFN$<>"" shell_HeapBlockFetch(256):zF%=yA%!0: 4:e%!s%=_Q%!s%: s%:_F%=e%!4: zF%<24 AG%=0 AG%=e%!20 Me%!&C=e%!8: &400E7,19,e%,_F%: ("FN"+_m_ProgEvnts_PreQuitHandlerFN$)<>0 _closedown%= !e%=24:e%!24=508: &400E7,8,e%,_F%:_closedown%= shell_HeapBlockReturn(e%) _shell_Sliders_Init:_m_Sliders_CurrentSliderHandle%=-1:_m_Sliders_DragInProgess%= :_m_Sliders_LastXPos%=-1:_m_Sliders_LastYPos%=-1:_m_Sliders_SliderIcon%=-1:_m_Sliders_MaxLength%=-1:_m_Sliders_MaxHeight%=-1:_m_Slider_NotifyFN$="" .d}_m_Slider_CurrentValue%=-1: _m_Sliders_IconBlk%50: _m_Sliders_DragBlk%50: _m_Sliders_MPtrBlk%20: _m_Sliders_WorkBlk%50:=0 shell_SliderSetValue(SB%,_value%): c%,c%,WH%,XH%,SA%: CA%,aA$,l%,wJ%,yJ%: zJ%,AK%,EK%,k%,aA$: T$,fB%,qC%,CG%: SB%<0 c%=!_EVNTS_SLIDERS_ANCHOR%:c%+=SB%:WH%=c%!&C:XH%=c%!16:SA%=c%!20:qC%=c%!36:aA$=$c%:CA%= shell_GetWindowHandleList(aA$):b%=!CA%: b%<=0 b%=CA%!4 :_m_Sliders_IconBlk%!0=b%:_m_Sliders_IconBlk%!4=XH%: &400CE,,_m_Sliders_IconBlk%:EG%=_m_Sliders_IconBlk%!16:XE%=_m_Sliders_IconBlk%!8:YE%=_m_Sliders_IconBlk%!&C:GG%=_m_Sliders_IconBlk%!20:CG%= (YE%)- (GG%):DG%=EG%-XE%:_m_Sliders_IconBlk%!4=WH% &400CE,,_m_Sliders_IconBlk%: &400C4,,_m_Sliders_IconBlk%:_m_Sliders_IconBlk%!4=b%: _value%>&64 _value%=&64 _value%<=0 _value%=0: DG%>CG% 0_m_Sliders_IconBlk%!16=_m_Sliders_IconBlk%!8 _m_Sliders_IconBlk%!20=_m_Sliders_IconBlk%!&C DG%>CG% F_m_Sliders_IconBlk%!16=XE%+(EG%*(_value%/&64))-(XE%*(_value%/&64)) _m_Sliders_IconBlk%!20=YE%+(GG%*(_value%/&64))-(YE%*(_value%/&64)) :c%!36=_value%: &400C2,,_m_Sliders_IconBlk%+4: &400D1,b%,XE%,YE%,EG%,GG%:fB%=!_EVNTS_SLIDERS_DATA%: fB%>0 T$=$(fB%+c%!32) T$<>"" ("FN"+T$+"("+ _value%+")") SA%>=0 shell_IconPutData(b%,SA%, (_value%), shell_SliderGetHandle(b%,g%): A$,c%,a%,SB%:A$= shell_GetWindowIdentifier(b%):c%=!_EVNTS_SLIDERS_ANCHOR%:a%= Evnts_GetEvntListOffset(A$,g%,_EVNTS_SLIDERS_ANCHOR%,_EVNTS_SLIDERS_REC_SIZE%, SB%=-1 SB%=a% :=SB% shell_AttachSliderHandler(b%,cH%,qD%,zC%,HG%,fH%,a$): oJ%,a%,A$,c%,q%:A$= shell_GetWindowIdentifier(b%):a%= Evnts_GetEvntListOffset(A$,qD%,_EVNTS_SLIDERS_ANCHOR%,_EVNTS_SLIDERS_REC_SIZE%, ):c%=!_EVNTS_SLIDERS_ANCHOR%:c%+=a%:$c%=A$:c%!&C=qD% Nc%!16=cH%:c%!20=zC%:c%!24=HG%:c%!28=fH%:c%!36=-1: !_EVNTS_SLIDERS_DATA%=0 2!_EVNTS_SLIDERS_DATA%= shell_HeapBlockFetch(1) :q%=c%+32: Evnts_UpdateData(q%,_EVNTS_SLIDERS_DATA%,_EVNTS_SLIDERS_DATAOFFSET%,a$): shell_AttachClickSelect(b%,qD%,"_Sliders_BarClick"): shell_AttachClickSelect(b%,cH%,"_Sliders_BackgroundClick"): HG%>=0 shell_AttachBumpHandler(b%,zC%,HG%,fH%,0,&64,1, ,"_Sliders_Bump","") _Sliders_Bump(kD%,eC%): b%,g%,c%,TB%,PA%,RB%: x%,SB%,A$,YD%,ZD%:b%= shell_GetLastWindowClicked:g%= shell_GetLastIconClicked:A$= shell_GetWindowIdentifier(b%):c%=!_EVNTS_SLIDERS_ANCHOR%:RB%=c%!0:PA%=c%!4:TB%=_m_Evnts_HeaderSize%:x%= 2YD%=c%!(TB%+24):ZD%=c%!(TB%+28): A$=$(c%+TB%) YD%=g% ZD%=g% :SB%=TB% :TB%+=_EVNTS_SLIDERS_REC_SIZE%: TB%>=RB% shell_SliderSetValue(SB%,kD%) (kD%) shell_HandleSlider(b%,g%): A$,c%,hH%,SA%: TB%,T$,fB%,qC%,a%:A$= shell_GetWindowIdentifier(b%):c%=!_EVNTS_SLIDERS_ANCHOR%:a%= Evnts_GetEvntListOffset(A$,g%,_EVNTS_SLIDERS_ANCHOR%,_EVNTS_SLIDERS_REC_SIZE%, a%=-1 /7^g%+=1:a%= Evnts_GetEvntListOffset(A$,g%,_EVNTS_SLIDERS_ANCHOR%,_EVNTS_SLIDERS_REC_SIZE%, :_m_Sliders_CurrentSliderHandle%=a%: a%>-1 /=YTB%=c%+a%:hH%=!(TB%+16):SA%=!(TB%+20):qC%=!(TB%+36):fB%=!_EVNTS_SLIDERS_DATA%: fB%>0 T$=$(fB%+TB%!32) :_m_Sliders_DragBlk%!0=b%:_m_Sliders_DragBlk%!4=hH%: &400CE,,_m_Sliders_DragBlk%:_m_Sliders_MaxLength%=_m_Sliders_DragBlk%!16-_m_Sliders_DragBlk%!8:_m_Sliders_MaxHeight%=_m_Sliders_DragBlk%!20-_m_Sliders_DragBlk%!&C:_m_Sliders_SliderIcon%=g% _m_Sliders_DisplayIcon%=SA%:_m_Slider_NotifyFN$=T$:_m_Slider_CurrentValue%=qC%:_m_Sliders_DragBlk%!0=b%: &400CB,,_m_Sliders_DragBlk%:QA%=_m_Sliders_DragBlk%!4-_m_Sliders_DragBlk%!20:RA%=_m_Sliders_DragBlk%!16-_m_Sliders_DragBlk%!24 _m_Sliders_DragBlk%!4=g%: &400CE,,_m_Sliders_DragBlk%:_m_Sliders_DragBlk%!4=7:_m_Sliders_DragBlk%!8+=QA%:_m_Sliders_DragBlk%!&C+=RA%:_m_Sliders_DragBlk%!16+=QA%:_m_Sliders_DragBlk%!20+=RA%:_m_Sliders_DragBlk%!24=_m_Sliders_DragBlk%!8 /^__m_Sliders_DragBlk%!28=_m_Sliders_DragBlk%!&C: _m_Sliders_MaxLength%>_m_Sliders_MaxHeight% /au_m_Sliders_DragBlk%!32=_m_Sliders_DragBlk%!24+_m_Sliders_MaxLength%:_m_Sliders_DragBlk%!36=_m_Sliders_DragBlk%!20 _m_Sliders_DragBlk%!32=_m_Sliders_DragBlk%!24+_m_Sliders_MaxLength%:_m_Sliders_DragBlk%!36=_m_Sliders_DragBlk%!28+_m_Sliders_MaxHeight% &400D0,,_m_Sliders_DragBlk%:_m_Sliders_DragInProgess%= shell_Slider: b%,rD%,QA%,e%,k%,aE%,RA%: &400CF,,_m_Sliders_MPtrBlk%:b%=_m_Sliders_MPtrBlk%!&C:rD%=!_m_Sliders_MPtrBlk%:aE%=_m_Sliders_MPtrBlk%!4: rD%<>_m_Sliders_LastXPos% aE%<>_m_Sliders_LastYPos% _m_Sliders_LastXPos%=rD%:_m_Sliders_LastYPos%=aE%:e%=_m_Sliders_WorkBlk%:!e%=b%: &400CB,,e%:QA%=rD%-e%!4:RA%=aE%-e%!16:e%!4=_m_Sliders_SliderIcon%: &400CE,,e%: &400C4,,e%:e%!4=b%: _m_Sliders_MaxLength%>_m_Sliders_MaxHeight% e%!16=QA%: &400C2,,e%+4: &400D1,b%,e%!8,e%!&C,e%!8+_m_Sliders_MaxLength%,e%!20:_value%=((QA%-e%!8)*&64)/_m_Sliders_MaxLength%: shell_SliderSetValue(_m_Sliders_CurrentSliderHandle%,_value%) e%!20=RA%: &400C2,,e%+4: &400D1,b%,e%!8,e%!&C,e%!8+_m_Sliders_MaxLength%,e%!20+_m_Sliders_MaxHeight%:_value%=((RA%-e%!&C)*&64)/_m_Sliders_MaxHeight% _m_Slider_NotifyFN$<>"" ("FN"+_m_Slider_NotifyFN$+"("+ _value%+")") :_m_Sliders_LastXPos%=rD% shell_SliderGetValue(SB%): c%,qC%:c%=!_EVNTS_SLIDERS_ANCHOR%:c%+=SB%:qC%=c%!36:=qC% _Sliders_BackgroundClick(b%,g%): k%:k%= _Sliders_Drag(b%,g%):=0 _Sliders_Drag(b%,g%): c%,PA%,y%,f%,A$: x%,RB%,SB%,SA%:c%=!_EVNTS_SLIDERS_ANCHOR%:y%=_EVNTS_SLIDERS_REC_SIZE%:RB%=c%!0:PA%=c%!4:f%=_m_Evnts_HeaderSize%:A$= shell_GetWindowIdentifier(b%):x%= $(c%+f%)=A$ c%!(f%+16)=g% :qD%=c%!(f%+&C):SA%=c%!(f%+20):SB%=f% :f%+=y%: f%>=RB% shell_IconDragBox(b%,qD%): SA%<>-1 shell_Slider shell_SliderDragInProgress:=_m_Sliders_DragInProgess% shell_SliderDragEnd:_m_Sliders_DragInProgess%= _Sliders_BarClick(d%,t%): shell_IconDragBox(d%,t%):=0 _shell_Sprites_Init:_c_Sprites_AreaHeaderSize%=16:_c_Sprites_ReasonInitArea%=9:_c_Sprites_ReasonLoad%=&A:_c_Sprites_ReasonGetSize%=40:_c_Sprites_ReasonRemoveLeftWastage%=54 0%]_c_Sprites_BadNameOrPtr$="Either a sprite name or a pointer to a sprite must be given":=0 shell_SpritesGetHeaderSize:=_c_Sprites_AreaHeaderSize% shell_SpriteAreaLoad(N$): YC%,S%,T%:S%= (N$):T%= #S%+16: #S%:YC%= shell_HeapBlockFetch(T%):!YC%=T%:YC%!4=0:YC%!8=_c_Sprites_AreaHeaderSize%:YC%!&C=_c_Sprites_AreaHeaderSize%: 46,521,YC%: 46,522,YC%,N$:=YC% shell_UserSpritesBase:=_U%!16 shell_SpriteGetPtr(TD%,b$): bE%,f%:bE%= shell_HeapBlockFetch(21):$bE%=b$: 46,280,TD%,bE% ,,f%: shell_HeapBlockReturn(bE%):=f% shell_NameOfFirstSprite(KB$): X%,N%,bA$:X%= (KB$): #X%=4:N%= #X%:N%+= #X%*256:N%+= #X%*65536:N%+= #X%*&1000000: #X%=N%:bA$="": &B:bA$+= #X%): #X%:=bA$ shell_SpriteRename(TD%,LB$,MB$): 46,512+26,TD%, shell_SpriteGetPtr(TD%,LB$),MB$: shell_SpriteAreaSave(TD%,N$): 46,512+&C,TD%,N$: shell_SpriteExists(UA%,M$): UA%=1 KG%=40 KG%=256+40 46,KG%,UA%, shell_StringUpperCase(M$):= shell_SpriteExistsInUserArea(M$):= shell_SpriteExists( shell_UserSpritesBase,M$) shell_SpriteExistsInWimpPool(M$):= shell_SpriteExists(1,M$) shell_SpriteAreaInit(UA%,gI%):UA%!0=gI%:UA%!8=_c_Sprites_AreaHeaderSize%: 46,_c_Sprites_ReasonInitArea%+256,UA%: shell_SpriteLoad(UA%,Y$): 46,_c_Sprites_ReasonLoad%+256,UA%,Y$: shell_SpriteRemoveLeftWastage(UA%,M$,ZC%): M$="" ZC%<=0 99,_c_Sprites_BadNameOrPtr$ 46,_c_Sprites_ReasonRemoveLeftWastage%+512,UA%,ZC% 46,_c_Sprites_ReasonRemoveLeftWastage%+256,UA%,M$ shell_SpriteGetSize(UA%,M$,ZC%, VA%): M$="" ZC%<=0 99,_c_Sprites_BadNameOrPtr$ 46,_c_Sprites_ReasonGetSize%+512,UA%,ZC% ,,,hA%,VA% 46,_c_Sprites_ReasonGetSize%+256,UA%,M$ ,,,hA%,VA% shell_SpriteGetMode(UA%,M$,ZC%, VD%): M$="" ZC%<=0 99,_c_Sprites_BadNameOrPtr$ 46,_c_Sprites_ReasonGetSize%+512,UA%,ZC% ,,,,,,VD% 46,_c_Sprites_ReasonGetSize%+256,UA%,M$ ,,,,,,VD% shell_SpriteLoadAsDraw(Y$,lH%,pB%,qB%, kI%): rA%,mI%,UA%: hA%,VA%,VD%,nH%,oH%: shell_DrawCreateFile(sD%): shell_DrawSpriteArea(sD%,lH%,UA%):kI%=UA%-sD%:rA%=sD%+sD%!4:mI%=48: shell_SpriteLoad(UA%,Y$) shell_SpriteRemoveLeftWastage(UA%,"",UA%+_c_Sprites_AreaHeaderSize%): shell_SpriteGetSize(UA%,"",UA%+_c_Sprites_AreaHeaderSize%,hA%,VA%): shell_SpriteGetMode(UA%,"",UA%+_c_Sprites_AreaHeaderSize%,VD%): 53,VD%,4 ,,nH%: 53,VD%,5 ,,oH%:hA%=hA%<-1:m%+=4: :_m_StaticList_WList%= shell_HeapBlockExtend(_m_StaticList_WList%,4):h%=_m_StaticList_WList%+m%:h%!0=o%:h%!4=-1 h%=_m_StaticList_WList%+a%:h%!0=o% shell_RemoveStaticWindowFromList(b%): a%,m%,x%:x%= :m%=0: _m_StaticList_WList%>0 _m_StaticList_WList%!m%=b% :_m_StaticList_WList%!m%=0 :m%+=4: _m_StaticList_WList%!m%<>-1 shell_UpdateStaticWindowHandle(vB%,HB%): a%:a%= shell_SearchStatic(vB%):_m_StaticList_WList%!a%=HB%: shell_SearchStatic(o%): x%,m%:x%=-1:m%=0: _m_StaticList_WList%<>0 _m_StaticList_WList%!m%<>-1: _m_StaticList_WList%!m%=o% x%=m% :m%+=4: shell_IsWindowStatic(b%): -1,-2:i%= _U%!20:i%= shell_SearchStatic(b%)>-1 :=i%:B _shell_Strings_Init:=0 shell_GetZeroTerminatedString(pI%): "WriteN",pI%,0 C$:=C$ shell_GetString(qH%): wA$,cE%: ((qH%?cE%)>31 cE%<&FF):wA$+= (qH%?cE%):cE%+=1: :=wA$ shell_StringStripTrailing(C$,j$): C$,1)=j$:C$= (C$)-1): shell_StringStripLeading(C$,j$): C$,1)=j$:C$= C$,2): shell_StringStripAll(C$,j$): I,J:I= C$,j$): C$,J-1)+ C$,J+1) I:=C$ shell_StringPadTrailing(C$,j$,jB%): (C$)0 (C$): C$,s%,1)>="a" C$,s%,1)<="z" C$,s%,1)= C$,s%,1)) shell_StringExchange(C$,cA$,OB$): C$,cA$) 2^0MB%= C$,cA$):C$= C$,MB%-1)+OB$+ C$,MB%+ shell_StringArrayGetLongest(A$(),VE%): s%,dE%:dE%=0: (A$(s%))>dE% (A$(s%)) s%:=dE% mem_to_string(JA%,a%,sI%): JA%?a%<>sI%:C$+= (JA%?a%):a%+=1: _shell_WindowList_Init:=0 shell_TemplatesInit(v$, tI%): tD%,PG%,tH%,JB%: uH%,MA%,eE%,b$,EA%,vH%,i%: wH%,uD%:eE%= shell_HeapBlockFetch(&C):MA%=0:EA%=0:uH%= shell_FileLength(v$):xH%= shell_HeapBlockFetch(uH%):tD%=xH%: shell_TemplateFileInfo(v$,JB%,EA%,i%): shell_HeapBlockFetch(4+(20*EA%)):_U%!4=vD%:yH%= shell_HeapBlockFetch(JB%):PG%=yH%:tH%=yH%+JB%:EA%=0:uD%=4: &600D9,,v$ ;vH%: shell_MessageTwoArgs("SHELLMSG34","template",v$) :$eE%="*": &400DB,,tD%,PG%,tH%,_U%!&E8,eE%,MA% ,,PG%,,,b$,MA%: MA%<>0 vD%!uD%=tD%:$(vD%+uD%+4)=b$:vD%!(uD%+16)=-1:uD%+=20: shell_Tracef0("TemplatesInit: Template Loaded: "+b$):wH%=(tD%!84)*32:tD%+=(88+wH%):EA%+=1 MA%=0: &400DA:_U%!0=EA%: shell_Tracef0("TemplatesInit:Templates resource file loaded at &"+ ~xH%+" ("+ EA%+" templates)"): shell_Tracef0("TemplatesInit:Indirected buffer size used for loading &"+ ~JB%) shell_MessageTwoArgs("SHELLMSG35","template",v$) shell_MessageTwoArgs("SHELLMSG36",v$,"template") shell_HeapBlockReturn(eE%):tI%=0:!vD%=EA%: shell_WindowLoaded(H$): a%,QG%:a%= shell_GetWindowListOffset(H$): a%>=0 shell_GetWindowListOffset(H$): a%,EA%,UB%,m%: (H$)>&B shell_MessageOneArg("SHELLMSG02",H$) iEA%= shell_GetNrTemplatesLoaded:UB%= shell_WindowListGetAddr+4:m%=0:a%=-1: $(((UB%)+(20*m%))+4)=H$ a%=m%*20 :m%+=1: a%<>-1 m%>(EA%-1):=a% shell_GetWB(H$): a%,VB%,UB%:a%= shell_GetWindowListOffset(H$): 99,H$+":"+ *UB%= shell_WindowListGetAddr+4: a%>=0 VB%=UB%!a% shell_MessageOneArg("SHELLMSG03",H$) :=VB% shell_GetWindowHandleList(H$): a%,CA%,UB%:a%= shell_GetWindowListOffset(H$):UB%= shell_WindowListGetAddr+4: a%>=0 CA%=!(UB%+a%+16) shell_MessageOneArg("SHELLMSG03",H$) :=CA% shell_CreateWindowStatic(H$, aC%:aC%= shell_GetWB(H$): shell_Tracef0("DEBUG::"+ aC%):aC%!64=_U%!16: &400C1,,aC% shell_Tracef0("DEBUG::"+ shell_StaticWindowListAddHandle(b%): shell_WindowListAddHandle(H$,b%): shell_WindowListAddHandle(H$,b%): _H%,DA%,f%,SG%: H$="" 99,"Bad window name passed to WindowListAddHandle" 3CV_H%= shell_GetWindowListOffset(H$)+16:DA%= shell_WindowListGetAddr+4+_H%: !DA%=-1 shell_Tracef0("DEBUG::Creating window handle list for window '"+H$+"'"): shell_Tracef0("DEBUG::Window handle is &"+ ~b%):!DA%= shell_HeapBlockFetch(8):f%=!DA%:f%!0=b%:f%!4=-1 DA%!16<>-1 3Z/CA%=!DA%:f%=0:SG%= CA%!f%<>-1: CA%!f%=0 CA%!f%=b%:SG%= :f%+=4: shell_Tracef0("DEBUG::Extending window handle list for window '"+H$+"'"): shell_Tracef0("DEBUG::Window handle is &"+ b%):!DA%= shell_HeapBlockExtend(!DA%,4):UB%=!DA%:f%=0: UB%!f%<>-1:f%+=4: :UB%!(f%+0)=b%:UB%!(f%+4)=-1 shell_GetWindowIdentifier(o%): DA%,EA%,f%,m%,BA$:EA%= shell_GetNrTemplatesLoaded:DA%= shell_WindowListGetAddr+4:BA$="": -1,-2:BA$="iconbar" DA%!16<>-1 8CA%=DA%!16:f%=0: CA%!f%<>-1: CA%!f%=o% BA$=$(DA%+4) f%+=4: :m%+=1:DA%+=20: BA$<>"" m%=EA% :=BA$ shell_RemoveHandleFromWindowList(o%): DA%,EA%,I%,f%:EA%= shell_GetNrTemplatesLoaded:DA%= shell_WindowListGetAddr+4: DA%!16<>-1 ,CA%=DA%!16:f%=0: CA%!f%<>-1: CA%!f%=o% CA%!f%=0 :f%+=4: :DA%+=20: shell_UpdateWindowHandleList(vB%,HB%): DA%,EA%,I%,f%:EA%= shell_GetNrTemplatesLoaded:DA%= shell_WindowListGetAddr+4: DA%!16<>-1 7CA%=DA%!16:f%=0: CA%!f%<>-1: CA%!f%=vB% CA%!f%=HB% f%+=4: :DA%+=20: shell_GetNrTemplatesLoaded: DA%:DA%= shell_WindowListGetAddr:=!DA% shell_WindowListGetAddr:=_U%!4 shell_WindowHandleKnown(b%): i%,DA%,x%,I%,EA%,o%: shell_GetDynamicWindowHandle YEA%= shell_GetNrTemplatesLoaded:DA%= shell_WindowListGetAddr+4: DA%!16<>-1 2CA%=DA%!16:f%=0: CA%!f%<>-1:o%=CA%!f%: o%=b% :f%+=4: :DA%+=20: shell_WindowListPrint: DA%,EA%,I%,f%:EA%= shell_GetNrTemplatesLoaded: shell_TraceOn:DA%= shell_WindowListGetAddr+4: shell_Tracef0(""): shell_Tracef0("Current Window List ("+ (EA%)+" templates)") shell_Tracef0("-----------------------------------------"): shell_Tracef0($(DA%+4)+":"): DA%!16=-1 shell_Tracef0("No windows defined for this identifier") CA%=DA%!16:f%=0: CA%!f%<>-1: shell_Tracef0(" window handle &"+ ~(CA%!f%)):f%+=4: :DA%+=20: _shell_Windows_Init: _c_WindowsGetStateBlk%36: _c_WindowsGetWInfoBlk%88: _c_WindowsGetPInfoBlk%20: _c_WindowsSetExtentBlk%20: _c_WindowsRedrawBlk%52:rJ%=-1:sJ%=-1:=0 shell_WindowHasTitleBar(d%):=( shell_WindowGetFlags(d%) 1<<26) shell_WindowIsMoveable(d%):=( shell_WindowGetFlags(d%) 1<<1) shell_WindowIsAPane(d%):=( shell_WindowGetFlags(d%) 1<<5) shell_WindowIsNotBounded(d%):=( shell_WindowGetFlags(d%) 1<<6) shell_WindowTrapsHotKeys(d%):=( shell_WindowGetFlags(d%) 1<<&C) shell_WindowIsOpen(b%): i%:i%= shell_WindowGetFlags(b%) 1<<16) b%=-1 b%=-2 shell_WindowIsOnTop(d%):=( shell_WindowGetFlags(d%) 1<<17) shell_WindowHasBeenToggled(d%):=( shell_WindowGetFlags(d%) 1<<18) shell_WindowHasInputFocus(d%):=( shell_WindowGetFlags(d%) 1<<20) shell_WindowHasBackIcon(d%):=( shell_WindowGetFlags(d%) 1<<24) shell_WindowHasCloseIcon(d%):=( shell_WindowGetFlags(d%) 1<<25) shell_WindowHasToggleIcon(d%):=( shell_WindowGetFlags(d%) 1<<27) shell_WindowHasVScrollBar(d%):=( shell_WindowGetFlags(d%) 1<<28) shell_WindowHasAdjustSizeIcon(d%):=( shell_WindowGetFlags(d%) 1<<29) shell_WindowHasHScrollBar(d%):=( shell_WindowGetFlags(d%) 1<<30) shell_WindowGetFlags(b%): n%:_c_WindowsGetStateBlk%!0=b%: &400CB,,_c_WindowsGetStateBlk%:n%=_c_WindowsGetStateBlk%!32:=n% shell_WindowGetWorkAreaSize(d%, kA%): e%:e%= Windows_ClaimInfoBlock(d%):e%!0=d%: &400CC,,e%:YA%=e%!44:ZA%=e%!48:jA%=e%!52:kA%=e%!56: Windows_ReturnInfoBlock(e%): shell_WindowGetTitleFlags(d%): n%,e%:e%= Windows_ClaimInfoBlock(d%):e%!0=d%: &400CC,,e%:n%=e%!60: Windows_ReturnInfoBlock(e%):=n% shell_WindowTitleFlags(d%): n%,e%:e%= Windows_ClaimInfoBlock(d%):e%!0=d%: &400CC,,e%:n%=e%!60: Windows_ReturnInfoBlock(e%):=n% shell_WindowTitleHasBorder(d%):=( shell_WindowTitleFlags(d%) 1<<2) shell_WindowTitleIsSprite(d%):=( shell_WindowTitleFlags(d%) 1<<1) shell_WindowTitleIsText(d%):=( shell_WindowTitleFlags(d%) 1<<0) shell_WindowTitleIsHCentred(d%):=( shell_WindowTitleFlags(d%) 1<<3) shell_WindowTitleIsVCentred(d%):=( shell_WindowTitleFlags(d%) 1<<4) shell_WindowTitleIsFilled(d%):=( shell_WindowTitleFlags(d%) 1<<5) shell_WindowTitleIsAAliased(d%):=( shell_WindowTitleFlags(d%) 1<<6) shell_WindowTitleIsIndirected(d%):=( shell_WindowTitleFlags(d%) 1<<8) shell_WindowGetTitle(d%): d$,e%:e%= Windows_ClaimInfoBlock(d%):e%!0=d%: &400CC,,e%: (e%!32 1<<26) ((e%!60) 256)=0 d$=$(e%+76) d$=$(!(e%+76)) Windows_ReturnInfoBlock(e%):=d$ shell_WindowTitleBufferLength(d%): i%,e%:e%= Windows_ClaimInfoBlock(d%):e%!0=d%: &400CC,,e%: ((e%!60) 256)=0 5z i%=&C i%=e%!84 Windows_ReturnInfoBlock(e%):=i% shell_WindowMoveToIcon(d%,TG%,t%,FB%,GB%): LA%:LA%= shell_HeapBlockFetch(50):_c_WindowsGetStateBlk%!20=0: shell_OSCheckVersion(3) TG%=-1 !_c_WindowsGetStateBlk%=-2 !_c_WindowsGetStateBlk%=TG% &400CB,,_c_WindowsGetStateBlk% :LA%!0=TG%:LA%!4=t%: &400CE,,LA%: shell_WindowMoveTo(d%,LA%!8+FB%-_c_WindowsGetStateBlk%!20,LA%!20+GB%): shell_HeapBlockReturn(LA%): shell_WindowMoveTo(d%,QA%,RA%): AI%,BI%,e%:e%= Windows_ClaimInfoBlock(d%):e%!0=d%: &400CC,,e%:AI%=e%!&C-e%!4:BI%=e%!16-e%!8:e%!4=QA%:e%!8=RA%:e%!&C=QA%+AI%:e%!16=RA%+BI%: &400C5,,e%: &400C6,,e%: shell_IsWindowStatic(d%) shell_OpenWindowStatic(d%) shell_OpenWindowDynamic2(d%,0,0) Windows_ReturnInfoBlock(e%): shell_WindowBringToTop(b%): shell_WindowMoveInStack(b%,-1): shell_WindowSendToBack(b%): shell_WindowMoveInStack(b%,-2): shell_WindowIconise(b%): shell_WindowMoveInStack(b%,-3): shell_CloseWindow(b%): a%,cA%,jC%,A$: j%,S$,CA%,KC%: CI%:A$= shell_GetWindowIdentifier(b%): cA%=0: Evnts_GetEvntListOffset(A$,cA%,_EVNTS_PANES_ANCHOR%,_EVNTS_PANES_REC_SIZE%, )>-1:a%=_m_Evnts_LastEvntOffset%:j%=!_EVNTS_PANES_ANCHOR%+a%:jC%=j%!16:CI%=!_EVNTS_PANES_DATA%:S$=$(CI%+jC%):CA%= shell_GetWindowHandleList(S$): CA%<>-1 @KC%=!CA%:_c_Evnts_PaneBlk%!0=KC%: &400C6,,_c_Evnts_PaneBlk% :cA%+=1: :_c_Evnts_PaneBlk%!0=b%: &400C6,,_c_Evnts_PaneBlk% shell_GetDynamicWindowHandle:=_U%!20 shell_DeleteWindow(o%): z%:z%= shell_HeapBlockFetch(20): oktodeletew(o%) shell_RemoveHandleFromWindowList(o%): o%=_U%!20 _U%!20=0 shell_RemoveStaticWindowFromList(o%) :z%!0=o%: &600C3,,z%:o%=0 shell_HeapBlockReturn(z%):=o% shell_WindowCountIcons(d%): WD%,SD%,gA%: (_U%!&64 1<<&A) d%=-1 d%=-2 }WD%= shell_HeapBlockFetch(88):!_c_WindowsGetWInfoBlk%=d%: &400CC,,_c_WindowsGetWInfoBlk%+1:gA%=_c_WindowsGetWInfoBlk%!88 shell_HeapBlockFetch(6000): 6!$!WD%=d%: &400CC,,WD%:gA%=WD%!88 shell_HeapBlockReturn(WD%) :=gA% shell_WindowToggleBackIcon( shell_WindowToggleFlags(d%,1<<24): shell_WindowToggleCloseIcon( shell_WindowToggleFlags(d%,1<<25): shell_WindowToggleTitleBar( shell_WindowToggleFlags(d%,1<<26): shell_WindowToggleToggleIcon( shell_WindowToggleFlags(d%,1<<27): shell_WindowToggleHScrollBar( shell_WindowToggleFlags(d%,1<<30): shell_WindowToggleAdjustSizeIcon( shell_WindowToggleFlags(d%,1<<29): shell_WindowToggleVScrollBar( shell_WindowToggleFlags(d%,1<<28): shell_WindowToggleFlags( d%,EB%): e%,n%,gE%,o%:gE%= shell_WindowIsOpen(d%):e%= Windows_ClaimInfoBlock(d%):e%!0=d%: &400CC,,e%:n%=e%!32:n%=(n% EB%):e%!32=n%: &400C3,,e%: &400C1,,e%+4 o%:!e%=o%: &400C5,,e% Windows_ReturnInfoBlock(e%): o%<>d% shell_UpdateWindowHandle(d%,o%): shell_UpdateWindowHandleList(d%,o%):d%=o% shell_UpdateWindow(o%,uE%,rB%,tB%,RF%): e%:e%= shell_HeapBlockFetch(20):e%!0=o%:e%!4=uE%:e%!8=rB%:e%!&C=tB%:e%!16=RF%: &400C9,,e% &400CB,,e%: shell_HeapBlockReturn(e%): shell_OpenWindowDynamic2(d%,FB%,GB%): k%,LD%:LD%= shell_HeapBlockFetch(20):_U%!20=d%: &400CF,,LD%: &400D4,,d%,LD%!0+FB%,LD%!4+GB%: shell_HeapBlockReturn(LD%): shell_WindowGetPosition(b%, kA%):!_c_WindowsGetStateBlk%=b%: &400CB,,_c_WindowsGetStateBlk%:YA%=_c_WindowsGetStateBlk%!4:ZA%=_c_WindowsGetStateBlk%!8:jA%=_c_WindowsGetStateBlk%!&C:kA%=_c_WindowsGetStateBlk%!16: shell_WindowGetScrollPos(b%, IJ%):!_c_WindowsGetStateBlk%=b%: &400CB,,_c_WindowsGetStateBlk%:HJ%=_c_WindowsGetStateBlk%!20:IJ%=_c_WindowsGetStateBlk%!24: shell_WindowGetSize(b%, KJ%): YA%,ZA%,jA%,kA%: shell_WindowGetPosition(b%,YA%,ZA%,jA%,kA%):JJ%=jA%-YA%:KJ%=kA%-ZA%: shell_WindowGetCentre(b%, MJ%): YA%,ZA%,jA%,kA%: shell_WindowGetPosition(b%,YA%,ZA%,jA%,kA%):LJ%=YA%+((jA%-YA%)/2):MJ%=ZA%+((kA%-ZA%)/2): shell_OpenWindowDynamic(RB$,zA$,_A$): w%,FB%,GB%,VG%,k%:VG%= shell_GetDynamicWindowHandle: VG%<>0 &400D4,,-1:k%= shell_DeleteWindow(VG%) shell_CreateWindow(RB$,w%):_c_WindowsGetStateBlk%!0=w%: &400CB,,_c_WindowsGetStateBlk%:FB%=(_c_WindowsGetStateBlk%!4-_c_WindowsGetStateBlk%!&C)/2:GB%=(_c_WindowsGetStateBlk%!16-_c_WindowsGetStateBlk%!8)/2:_U%!20=w%: zA$<>"" ("FN"+zA$+"("+ w%+")") shell_OpenWindowDynamic2(w%,FB%,GB%): _A$<>"" ("FN"+_A$+"("+ w%+")") shell_CreateWindow(H$, aC%:aC%= shell_GetWB(H$):aC%!64=_U%!16: &400C1,,aC% shell_WindowListAddHandle(H$,b%): Windows_ClaimInfoBlock(b%):= shell_HeapBlockFetch(&64+( shell_WindowCountIcons(b%)*32)) Windows_ReturnInfoBlock(JA%): shell_HeapBlockReturn(JA%): shell_WindowResize(TA%,NJ%,OJ%,PJ%,QJ%,gE%): wD%:wD%= Windows_ClaimInfoBlock(TA%):_c_WindowsSetExtentBlk%!0=NJ%:_c_WindowsSetExtentBlk%!4=OJ%:_c_WindowsSetExtentBlk%!8=PJ%:_c_WindowsSetExtentBlk%!&C=QJ%: &400D7,TA%,_c_WindowsSetExtentBlk%: 7")wD%!0=TA%: &400CC,,wD%: &400C5,,wD% Windows_ReturnInfoBlock(wD%): shell_WindowRetitle( TA%,d$): h%,z%,o%,EI%:z%= Windows_ClaimInfoBlock(TA%):z%!0=TA%: &400CC,,z%: ((z%!60) 256)=0 76Ah%=z%+76:$h%= d$,&B): &400C3,,z%: &400C1,,z%+4 o%<>TA% shell_UpdateWindowHandle(TA%,o%):TA%=o% EI%=z%!84:$(!(z%+76))= d$,EI%-1): ((z%!32) (1<<16))<>0 &400D1,-1,z%!4,z%!16,z%!&C,z%!16+44 Windows_ReturnInfoBlock(z%): shell_WindowTitleIndirected(HE%): (1<<8))=(1<<8) shell_WindowMoveToPopUpPos(b%,g%,FI%): sC%,VB%,HI%,II%,JI%,KI%: LI%:sC%= shell_HeapBlockFetch(40):sC%!0=b%:sC%!4=g%: &400CE,,sC%:HI%=sC%!16:II%=sC%!20:VB%= shell_HeapBlockFetch(40):VB%!0=b%: &400CB,,VB%:JI%=VB%!4:KI%=VB%!16:VB%!0=FI%: &400CB,,VB% LI%=VB%!16-VB%!8: shell_WindowMoveTo(FI%,JI%+HI%,KI%+II%-(LI%/2)): shell_HeapBlockReturn(sC%): shell_HeapBlockReturn(VB%): shell_WindowScrollTo(b%,pB%,qB%): dA%:dA%= shell_HeapBlockFetch(36):!dA%=b%: &400CB,,dA%:dA%!20=pB%:dA%!24=qB%: shell_WindowIsOpen(b%) &400C5,,dA% &400C5,,dA%: &400C6,,dA% shell_HeapBlockReturn(dA%): shell_WindowScrollBy(b%,pB%,qB%): dA%:dA%= shell_HeapBlockFetch(36):!dA%=b%: &400CB,,dA%:dA%!20+=pB%:dA%!24+=qB%: shell_WindowIsOpen(b%) &400C5,,dA% &400C5,,dA%: &400C6,,dA% shell_HeapBlockReturn(dA%): shell_WindowSetBackgroundColour( w%,kB%): _%,o%,MI%,aB%,gA%:gA%= shell_WindowCountIcons(w%):MI%= shell_WindowIsOpen(w%):_%= shell_HeapBlockFetch(&64+(gA%*32)):_%!0=w%: &400CC,,_%:_%?39=kB%:_shell_open_behind%=_%!28:aB%=_%!28: &400C3,,_% &400C1,,_%+4 o%:_%!0=o%: &400CC,,_%: w%<>o% shell_UpdateWindowHandle(w%,o%):w%=o% shell_OpenWindow(o%,0,aB%) shell_HeapBlockReturn(_%): shell_WindowSetForegroundColour( w%,kB%): _%,o%,GC%,aB%:GC%= shell_WindowIsOpen(d%):_%= shell_HeapBlockFetch(&64+( shell_WindowCountIcons(w%)*32)):_%!0=w%: &400CC,,_%:_%?38=kB%:_shell_open_behind%=_%!28:aB%=_%!28: &400C3,,_%: &400C1,,_%+4 w%<>o% shell_UpdateWindowHandle(w%,o%):w%=o% shell_OpenWindow(o%,0,aB%) shell_HeapBlockReturn(_%): shell_WindowMoveInStack(b%,BA%): ZB%,RD%: BA%<-2 BA%>-1 99,"Invalid action" shell_HeapBlockFetch(256):ZB%!0=b%: &400CB,,ZB%:ZB%!28=BA%: &400E7,2,ZB%,b% ,,RD%: &400C7,0,ZB%: shell_HeapBlockReturn(ZB%): RD%=_U%!&94 *_Q%!28=BA%: shell_OpenWindow(b%,0,BA%) shell_Window_GetTopPaneDepth(b%):= shell_Window_GetPaneDepth(b%,2) shell_Window_GetBottomPaneDepth(b%):= shell_Window_GetPaneDepth(b%,4) shell_Window_GetPaneDepth(b%,ZJ%): A$,a%,cA%,iC%,jE%,S$: CA%,jC%,j%,v%,KC%: PB%:cA%=0:jE%=0:iC%= shell_GetWindowIdentifier(b%):a%= Evnts_GetEvntListOffset(A$,cA%,_EVNTS_PANES_ANCHOR%,_EVNTS_PANES_REC_SIZE%, a%>=0 Evnts_GetEvntListOffset(A$,cA%,_EVNTS_PANES_ANCHOR%,_EVNTS_PANES_REC_SIZE%, )>-1:a%=_m_Evnts_LastEvntOffset%:j%=!_EVNTS_PANES_ANCHOR%+a%:PB%=j%!20: PB%=ZJ% jC%=j%!16:PB%=j%!20:v%=!_EVNTS_PANES_DATA%:S$=$(v%+jC%):CA%= shell_GetWindowHandleList(S$):KC%=!CA%:_c_Evnts_PaneBlk%!0=KC%: &400CB,,_c_Evnts_PaneBlk%: jE%=0 890jE%=_c_Evnts_PaneBlk%!16-_c_Evnts_PaneBlk%!8 :cA%+=1: :=jE% shell_WindowSetDefaultPosition(TB$,YA%,ZA%,jA%,kA%): dA%:dA%= shell_GetWB(TB$):dA%!0=YA%:dA%!4=ZA%:dA%!8=jA%:dA%!&C=kA%: shell_WindowCentreOnPointer(w%): z%,xD%,FB%,GB%:xD%= shell_HeapBlockFetch(20): &400CF,,xD%:z%= shell_HeapBlockFetch(36):z%!0=w%: &400CB,,z%:FB%=(z%!4-z%!&C)/2:GB%=(z%!16-z%!8)/2: shell_WindowMoveTo(w%,xD%!0+FB%,xD%!4-GB%) shell_HeapBlockReturn(z%): shell_HeapBlockReturn(xD%): shell_WindowCentreOnScreen(w%): z%,kE%,lE%,hA%,VA%,eD%,rC%: &20035,-1,4 ,,eD%: &20035,-1,5 ,,rC%: &20035,-1,&B ,,kE%: &20035,-1,&C ,,lE%:kE%=kE%<