home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 5
/
DATAFILE_PDCD5.iso
/
education
/
a
/
identikey
/
!IdentiKey
/
ShellLibRT
(
.txt
)
< prev
next >
Wrap
RISC OS BBC BASIC V Source
|
1995-11-12
|
192KB
|
7,049 lines
>EvntShell:ShellLibRT
Squished by Lofty's !Shrink vsn 3.01 on 12-Nov-95
"*|Start FNshell_LibraryVersion
shell_LibraryVersion
=2.02*&64
!*|Stop FNshell_LibraryVersion
%*|Start PROCshell_DefineConstants
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
_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
_BUTTON_TYPE_CLICK=3
>$*|Stop PROCshell_DefineConstants
B)*|Start FNshell_GetLastSecureFileName
shell_GetLastSecureFileName
g%=_U%!80
I(*|Stop FNshell_GetLastSecureFileName
M *|Start FNshell_GetEventMenu
shell_GetEventMenu(HD%,a%,lA%)
f%,n%,w%,EA%,z%
a%=-1
a%=-2
Q&EA%=
shell_HeapBlockInfo(_U%!&C)-8
n%=_U%!&C
U O$=""
shell_Tracef0("GetEventMenu:Started..")
shell_Tracef0("GetEventMenu:button is "+
shell_Tracef0("GetEventMenu:window is "+
shell_Tracef0("GetEventMenu:icon is "+
(n%!f%=a%)
shell_Tracef0("GetEventMenu:window handle matched..")
n%!(f%+4)=lA%
shell_Tracef0("GetEventMenu:icon handle matched..")
z%=n%!(f%+8)
z%=-2
z%=_U%!&FC
shell_Tracef0("GetEventMenu:icon handle NOT matched..")
f%+=48
(f%>=EA%
*|Stop FNshell_GetEventMenu
y$*|Start PROCshell_AttachMenuDBox
shell_AttachMenuDBox(UC%,o$,xA$,BB$)
d%,g%,PB%
shell_WindowLoaded(o$)
shell_MessageOneArg("SHELLMSG03",o$)
shell_HeapBlockFetch(&C)
%d%!0=
shell_HeapBlockFetch(
o$+1)
g%=d%!0:$g%=o$
&d%!4=
shell_HeapBlockFetch(
xA$+1)
g%=d%!4:$g%=xA$
&d%!8=
shell_HeapBlockFetch(
BB$+1)
g%=d%!8:$g%=BB$
&45BCE,UC%,d%
&45BCC,,
#*|Stop PROCshell_AttachMenuDBox
!*|Start FNshell_MessageNoArgs
shell_MessageNoArgs(M$)
shell_MessageLookup(M$,"","")
*|Stop FNshell_MessageNoArgs
!*|Start FNshell_MessageOneArg
shell_MessageOneArg(M$,x$)
shell_MessageLookup(M$,x$,"")
*|Stop FNshell_MessageOneArg
"*|Start FNshell_MessageTwoArgs
shell_MessageTwoArgs(M$,x$,UA$)
shell_MessageLookup(M$,x$,UA$)
!*|Stop FNshell_MessageTwoArgs
!*|Start FNshell_MessageLookup
shell_MessageLookup(M$,x$,UA$)
o%,L%,t$,DD%,WC%
M$,8)="SHELLMSG"
DD%=_U%!284:WC%=_U%!280
DD%=_U%!64:WC%=_U%!68
&61502,WC%,M$,DD%,256,x$,UA$
,,,L%;o%
DD%?L%=&D
t$=$(DD%)
*|Stop FNshell_MessageLookup
*|Start FNshell_WimpInit
shell_WimpInit(vB%,EA$)
AG%,uA%
!AG%=0
shell_OSCheckVersion(3.1)
vB%=310
&400C0,vB%,&4B534154,EA$,AG%
vB%,uA%
vB%=&C8
&400C0,vB%,&4B534154,EA$
vB%,uA%
_U%!&64
"WimpExt_Initialise",&E,uA%
_U%!&94=uA%
*|Stop FNshell_WimpInit
*|Start FNshell_WimpInit_I
shell_WimpInit_I(vB%,EA$)
uA%=
shell_WimpInit(vB%,EA$)
&81682,uA%
*|Stop FNshell_WimpInit_I
%*|Start PROCshell_WimpCloseDown_I
shell_WimpCloseDown_I(uA%)
shell_ExReg_FontLib_Loaded
shell_Fonts_LoseFonts
*|ifdef Using_FontMenu
shell_ExReg_FontMenu_Loaded
shell_FontMenu_Deregister
*|endif
_U%!&64
"WimpExt_Initialise",&E,uA%
&600DD,uA%,&4B534154
&A1683,uA%
_U%!&64
"XImpulse_CloseDown",_U%!&94
$*|Stop PROCshell_WimpCloseDown_I
*|Start PROCWimpCloseDown
WimpCloseDown(uA%)
shell_ExReg_FontMenu_Loaded
shell_LoseFonts
*|ifdef Using_FontMenu
shell_ExReg_FontMenu_Loaded
shell_FontMenu_Deregister
*|endif
_U%!&64
"WimpExt_Initialise",&E,uA%
&600DD,uA%,&4B534154
_U%!&64
"XImpulse_CloseDown",_U%!&94
("Unset "+_shell_AppName$+"$BasicFile")
*|Stop PROCWimpCloseDown
*|Start FNshell_FindFont
shell_FindFont(GB$,XI%)
eA%,hF%
hF%=_U%!&E8
&40081,,GB$,XI%*16,d*16,0,0
hF%?eA%+=1
hF%?eA%>=&FF
shell_OK(
shell_MessageNoArgs("SHELLMSG18"))
*|Stop FNshell_FindFont
*|Start PROCshell_Init
shell_Init
DB%,q%,g%,LA$
D$,G$,WE%
shell_InitModules
shell_DefineConstants
0!_SHELL_SENDDATALOAD_MY_REF%=0
1 _SHELL_SENDDATALOAD_FILE$=""
_U%360,_shell_blk%260
4#_Q%=
shell_HeapBlockFetch(&BB8)
5!DB%=
shell_HeapBlockFetch(48)
DB%!0=0
DB%!4=0
DB%!8=0
DB%!&C=0
DB%!16=0
DB%!20=0
DB%!24=0
DB%!28=0
DB%!32=0
DB%!36=0
DB%!40=0
DB%!44=0
_U%!0=0
_U%!4=0
_U%!8=0
_U%!&C=DB%
_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%_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)
shell_OSVarGetVal("Obey$Dir",1)
shell_Leaf(D$),2)
*_U%!&BC=
shell_HeapBlockFetch((
D$)+1)
*_U%!&C4=
shell_HeapBlockFetch((
G$)+1)
g%=_U%!&BC:$g%=D$
g%=_U%!&C4:$g%=G$
shell_OSModuleCheckVersion("WimpExtension",1.98)
_U%!&64=_U%!&64
RO3_Present
_U%!&64=_U%!&64
1<<&A
shell_InteractiveHelpOn
WE%=&64
shell_PollSetInterval(WE%)
shell_PollSetPrevInterval(WE%)
_POLL_EARLIEST_TIME%
_POLL_EARLIEST_TIME%+=WE%
*|Stop PROCshell_Init
!*|Start PROCshell_InitModules
shell_InitModules
_shell_Bumpers_Init
_shell_CaretMove_Init
_shell_DataLoad_Init
_shell_DataSave_Init
_shell_Debug_Init
_shell_Errors_Init
_shell_Evnts_Init
_shell_ExReg_Init
_shell_Files_Init
_shell_Iconbar_Init
_shell_Icons_Init
_shell_IntHelp_Init
_shell_Memory_Init
_shell_Menus_Init
_shell_MenuList_Init
_shell_Messages_Init
_shell_OS_Init
_shell_Pointer_Init
_shell_Poll_Init
_shell_PopUps_Init
_shell_ProgEvnts_Init
_shell_Sliders_Init
_shell_Strings_Init
_shell_StaticList_Init
_shell_WindowList_Init
_shell_Windows_Init
*|Stop PROCshell_InitModules
"*|Start FNshell_GetCmdLineArgs
shell_GetCmdLineArgs
_U%!324<>0
LA$=$(_U%!324)
shell_Tracef0("GetCmdLineArgs:cmdline was "+LA$)
!*|Stop FNshell_GetCmdLineArgs
*|Start FNshell_GetAppDir
shell_GetAppDir
g%=_U%!&BC
*|Stop FNshell_GetAppDir
!*|Start FNshell_GetAppDataDir
shell_GetAppDataDir
g%=_U%!&C0
*|Stop FNshell_GetAppDataDir
*|Start FNshell_GetAppName
shell_GetAppName
g%=_U%!&C4
*|Stop FNshell_GetAppName
#*|Start PROCshell_ResourcesInit
shell_ResourcesInit
SA$,g%,G$,D$,KE%
IC%,ND%
shell_GetAppName
shell_GetAppDir
shell_OSVarExists(G$+"Res$Path")
_U%!&64=_U%!&64
shell_OSVarExists(G$+"Data$Dir")
+SA$=
shell_OSVarGetVal(G$+"Data$Dir",1)
+_U%!&C0=
shell_HeapBlockFetch((
SA$)+1)
g%=_U%!&C0:$g%=SA$
*_U%!&C0=
shell_HeapBlockFetch((
D$)+1)
g%=_U%!&C0:$g%=D$
_U%!&64
*|define Using_ResFind
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
,,ND%
&20035,-1,5
,,IC%
IC%=1
shell_FileExists(G$+"Res:Sprites22")
*4_U%!16=
shell_SpriteAreaLoad(G$+"Res:Sprites22")
shell_FileExists(G$+"Res:Sprites")
.2_U%!16=
shell_SpriteAreaLoad(G$+"Res:Sprites")
_U%!16=1
shell_3DEnabled
shell_FileExists(G$+"Res:Templates3")
shell_TemplatesInit(G$+"Res:Templates3",j%)
shell_FileExists(G$+"Res:Templates")
shell_TemplatesInit(G$+"Res:Templates",j%)
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
,,ND%
&20035,-1,5
,,IC%
IC%=1
shell_FileExists(D$+".Sprites22")
L1_U%!16=
shell_SpriteAreaLoad(D$+".Sprites22")
shell_FileExists(D$+".Sprites")
O/_U%!16=
shell_SpriteAreaLoad(D$+".Sprites")
_U%!16=1
shell_3DEnabled
shell_FileExists(D$+".Templates3")
shell_TemplatesInit(D$+".Templates3",j%)
shell_FileExists(D$+".Templates")
shell_TemplatesInit(D$+".Templates",j%)
&45BC0
shell_HeapBlockReturn(_Q%)
b#_Q%=
shell_HeapBlockFetch(&400)
shell_FileExists(D$+".EvntData")
shell_EvntLoad_AllEvnts(D$+".EvntData")
l"*|Stop PROCshell_ResourcesInit
n"*|Start FNshell_SpriteAreaLoad
shell_SpriteAreaLoad(K$)
lB%,S%,T%
(K$):T%=
#S%+16:
r!lB%=
shell_HeapBlockFetch(T%)
!lB%=T%:lB%!4=0
lB%!8=16:lB%!&C=16
46,521,lB%
46,522,lB%,K$
*|ifdef TraceInit
shell_Tracef0("SpriteLoad:Sprite file loaded at &"+
~lB%)
*|endif
|!*|Stop FNshell_SpriteAreaLoad
~#*|Start FNshell_UserSpritesBase
shell_UserSpritesBase
=_U%!16
"*|Stop FNshell_UserSpritesBase
*|Start FNshell_SpriteGetPtr
shell_SpriteGetPtr(AD%,d$)
OE%,f%
!OE%=
shell_HeapBlockFetch(21)
$OE%=d$
46,280,AD%,OE%
shell_HeapBlockReturn(OE%)
*|Stop FNshell_SpriteGetPtr
!*|Start FNshell_MessageExpand
shell_MessageExpand(n$)
P$,t$,IB%
P$=""
n$,"\")>0
n$,"\")
n$,IB%-1)
n$,IB%+1,1)
n$,IB%+2)
"A":P$+="Click ADJUST to"
"a":P$+="ADJUST"
"D":P$+="Drag with SELECT to"
"d":P$+="Drag with ADJUST to"
"G":P$+="This option is greyed out because"
"R":P$+="Move the pointer right"
"S":P$+="Click SELECT to"
"s":P$+="SELECT"
"T":P$+="This is the"
"W":P$+="This window is"
"w":P$+="window"
P$+="\"+t$
=P$+n$
*|Stop FNshell_MessageExpand
!*|Start FNshell_MessageWindow
shell_MessageWindow(J$,lI%,SB$,JA$)
xF%,oC%
"oC%=
shell_HeapBlockFetch(260)
!oC%=0:$(oC%+4)=J$+
JA$=""
JA$="Message from "+SB$
&400DF,oC%,19,JA$
&400DF,oC%,17,JA$
shell_HeapBlockReturn(oC%)
*|Stop FNshell_MessageWindow
!*|Start FNshell_CreateWindow2
shell_CreateWindow2(O,o%,TJ%,yI%,YJ%,GB%,jF%,dB%,bB%,ZF%)
shell_HeapBlockFetch(&BB8)
0Q%!0=jF%:Q%!4=dB%:Q%!8=bB%:Q%!&C=ZF%:Q%!16=0
%Q%!20=0:Q%!24=-1:Q%!28=o%:Q%?32=7
Q%?33=2:Q%?34=TJ%:Q%?35=yI%
Q%?36=3:Q%?37=1
%Q%?38=2:Q%?39=0:Q%!40=0:Q%!44=GB%
+Q%!48=YJ%: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%)
*|Stop FNshell_CreateWindow2
!*|Start FNshell_ClaimKeypress
shell_ClaimKeypress
_U%!20<>0
&400D4,,-1
shell_DeleteWindow(_U%!20)
_U%!20=0
*|Stop FNshell_ClaimKeypress
*|Start FNoktodeletew
oktodeletew(m%)
*|Stop FNoktodeletew
*|Start FNoktoclosew
oktoclosew(m%)
*|Stop FNoktoclosew
*|Start PROCcliprect
cliprect(A,
XA%,aA%
lwaorigin(A,XA%,aA%):qA%=A!24-XA%:yA%=A!28-aA%:SJ%=A!32-XA%
LJ%=A!36-aA%
*|Stop PROCcliprect
#&*|Start PROCshell_DoBackgroundTask
shell_DoBackgroundTask
'%*|Stop PROCshell_DoBackgroundTask
+(*|Start PROCshell_HandleAttachedMenu
shell_HandleAttachedMenu(_Q%,a%,r%)
r%<>-1
a%>-1
3'z%=
shell_GetEventMenu(_Q%!8,a%,r%)
z%<>0
shell_HandleMenuOpen(_Q%,z%,a%,r%,
:'*|Stop PROCshell_HandleAttachedMenu
*|Start PROCshell_Action
shell_Action(vI%)
O$,z%,s$,gB$,SH%,RB%,cB%,iF%
a%,r%,j%,_temp28%,_temp32%,_temp24%,_temp%,TI%
tJ%,c%,qG%
_EVENT_NULL
(qG%-_POLL_EARLIEST_TIME%)>0
F)_POLL_EARLIEST_TIME%+=_POLL_INTERVAL%
shell_ExReg_OLELib_Loaded
shell_DoOLEHandling
shell_DoBackgroundTask
shell_SliderDragInProgress
shell_Slider
shell_EvntHandle_IconWatch
_EVENT_REDRAWWIN
shell_RedrawWindow(_Q%!0)
_EVENT_OPENWIN
shell_OpenWindow(_Q%!0,
_EVENT_CLOSEWIN
shell_CloseWindow(_Q%!0)
_EVENT_PTRLEAVING
shell_EvntHandle_PointerLeavingWindow(!_Q%)
_EVENT_PTRENTERING
shell_EvntHandle_PointerEnteringWindow(!_Q%)
_EVNT_MSECLICK
RB%=_Q%!0
cB%=_Q%!4
_U%!272=_Q%!0:_U%!276=_Q%!4
e"_EVNTS_LAST_MOUSEBUTTON%=_Q%!8
f%_EVNTS_LAST_WINDOWCLICKED%=_Q%!&C
g#_EVNTS_LAST_ICONCLICKED%=_Q%!16
shell_Tracef0("Action:Mouse_Click event detected")
shell_Tracef0("Action:Window Handle was &"+
~_Q%!&C+" Icon Handle was "+
_Q%!16)
_Q%!8
shell_EvntHandle_ClickSelect(
Evnts_GetLastWindowClicked,
Evnts_GetLastIconClicked)
shell_EvntHandle_ClickMenu(
Evnts_GetLastWindowClicked,
Evnts_GetLastIconClicked)
shell_EvntHandle_ClickAdjust(
Evnts_GetLastWindowClicked,
Evnts_GetLastIconClicked)
_U%!&80=0
shell_SliderDragInProgress=
shell_EvntHandle_UserDragEnd
shell_EvntHandle_DataSaveEndDrag
shell_SliderDragEnd
shell_Tracef0("Action:keypress is="+
_Q%!24)
_Q%!24
&D,394,398,399,410,430,431
6iF%=
shell_WritableIconHandler(_Q%!0,_Q%!4,_Q%!24)
$iF%=
shell_HotKeyProcess(_Q%!24)
shell_Tracef0("Action:Keypress not claimed, passing it on")
&400DC,_Q%!24
shell_Tracef0("Action:Keypress claimed by this application")
shell_EvntHandle_MenuSelect(_Q%)
17,18:
shell_Receive(_Q%)
shell_UserMessageAcknowledge(_Q%)
*|Stop PROCshell_Action
$*|Start PROCshell_HandleMenuOpen
shell_HandleMenuOpen(_Q%,z%,a%,r%,QJ%)
LA%,v%
shell_OpenMenu(_Q%!0,_Q%!4,z%)
!LA%=
shell_HeapBlockFetch(50)
shell_HeapBlockFetch(36)
LA%!0=a%:LA%!4=r%
&400CE,,LA%
v%!0=a%
&400CB,,v%
shell_OpenMenu(v%!4+LA%!16+64,_Q%!4,z%)
v%!4+LA%!16+64,_Q%!4
shell_HeapBlockReturn(LA%)
shell_HeapBlockReturn(v%)
#*|Stop PROCshell_HandleMenuOpen
(*|Start PROCshell_ActionAdjustButton
shell_ActionAdjustButton
o%,O$,j%,KD%,i%
[KD%=
shell_HeapBlockFetch(&C+(
shell_WindowCountIcons(
Evnts_GetLastWindowClicked)*32))
*|ifdef TraceInit
shell_Tracef0("Action:Mouse Button was ADJUST")
*|endif
Evnts_GetLastWindowClicked>0
&400D6,
Evnts_GetLastWindowClicked,KD%,&F000,&B000
KD%!i%<>-1
KD%!i%=
Evnts_GetLastIconClicked
shell_IconSet(
Evnts_GetLastWindowClicked,
Evnts_GetLastIconClicked,1)
i%+=4
Evnts_GetLastIconClicked=0
shell_HandleAttachedDataSave(_Q%,
Evnts_GetLastWindowClicked,
Evnts_GetLastIconClicked)
shell_EvntHandle_ClickAdjust(
Evnts_GetLastWindowClicked,
Evnts_GetLastIconClicked)
shell_HeapBlockReturn(KD%)
'*|Stop PROCshell_ActionAdjustButton
*|Start FNshiftmenuclick
shiftmenuclick(a%,r%)
*|Stop FNshiftmenuclick
"*|Start PROCshell_RedrawWindow
shell_RedrawWindow(m%)
ZE%,O$,XA%,aA%,d%
shell_HeapBlockFetch(&64)
shell_FatalError
d%!0=m%
&400C8,,d%
XA%=d%!4-d%!20
aA%=d%!16-d%!24
&81681,,d%
shell_EvntHandle_Redraw(m%,d%,XA%,aA%)
&400CA,,d%
shell_HeapBlockReturn(d%)
!*|Stop PROCshell_RedrawWindow
*|Start PROCshell_Receive
shell_Receive(_Q%)
g%,j%,_G%
_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
_G%=(_Q%!24
shell_ColourPickerSelection(_Q%!28,_G%)
_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)
g%=_U%!&D8
$g%<>""
shell_HelpWord($g%)
shell_HeapBlockReturn(_U%!&D8)
_U%!&D8=0
_MESSAGE_TASKCLOSEDOWN
shell_ProgEvnts_TaskCloseDown(_Q%!4)
_Q%!4=_U%!&D0
_U%!&D0=-1
_MESSAGE_TASKNAMEIS
shell_Tracef0("Receive:TaskNameIs message received")
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%)
shell_HandleUnknownMessage2(_Q%)
*|Stop PROCshell_Receive
+*|Start PROCshell_HandleUnknownMessage2
shell_HandleUnknownMessage2(_Q%)
_Q%!16
&43B00
S$=$(_Q%+20)
S$,30)="EvntShellLib:ShellDBug started"
_U%!&64
_U%!&64=(_U%!&64
1<<4)
shell_BroadcastMessage(&43B00,"ShellDBug:Init Debug messages from "+
shell_GetAppName)
S$,25)="EvntShellLib:TraceInitAck"
_U%!&64=(_U%!&64
1<<4)
S$,20)="EvntShellLib:TraceOn"
shell_TraceOn
S$,21)="EvntShellLib:TraceOff"
shell_TraceOff
S$,28)="EvntShellLib:ListClickSelect"
shell_ListClickSelect
S$,26)="EvntShellLib:ListClickMenu"
shell_ListClickMenu
S$,28)="EvntShellLib:ListClickAdjust"
shell_ListClickAdjust
S$,25)="EvntShellLib:ListHelpTags"
shell_ListHelpTags
S$,24)="EvntShellLib:ListBumpers"
shell_ListBumpers
S$,26)="EvntShellLib:ListPointerIn"
shell_ListPointerIn
S$,27)="EvntShellLib:ListPointerOut"
shell_ListPointerOut
S$,25)="EvntShellLib:ListDataLoad"
shell_ListDataLoad
S$,25)="EvntShellLib:ListDataSave"
shell_ListDataSave
shell_HandleUnknownMessage(_Q%)
**|Stop PROCshell_HandleUnknownMessage2
**|Start PROCshell_HandleUnknownMessage
shell_HandleUnknownMessage(_Q%)
)*|Stop PROCshell_HandleUnknownMessage
*|Start PROCshell_RAMFetch
shell_RAMFetch(_Q%)
wJ%,WF%,fF%
fF%=
_U%!&90>&8000
*|ifdef TraceInit
shell_Tracef0("RAMFetch:RAMFetch called..")
*|endif
_Q%!&C=_Q%!8
_Q%!16=7
WF%=_U%!&88
_U%!&8C=&FF9
_U%!&90+=4
(WF%-_U%!&80)<_Q%!24
_Q%!24=WF%-_U%!&80
fF%=
*|ifdef TraceInit
shell_Tracef0("RAMFetch:Sending block")
*|endif
&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
*|Stop PROCshell_RAMFetch
!*|Start PROCshell_RAMTransmit
shell_RAMTransmit(_Q%)
c%,d%,yA$,g%
_Q%!&C=_U%!&70
_U%!&80+=_Q%!24
_Q%!24<_U%!&84
*|ifdef TraceInit
shell_Tracef0("RAMTransmit:Last block received")
*|endif
shell_GetEventListOffset(
Evnts_GetLastWindowClicked,
Evnts_GetLastIconClicked,_U%+96,16,
d%=_U%!96+c%
*|ifdef TraceInit
shell_Tracef0("RAMTransmit:_U%!28="+
_U%!28)
shell_Tracef0("RAMTransmit:_U%!32="+
_U%!32)
shell_Tracef0("RAMTransmit:offset%="+
*|endif
g%=_U%!&9C
shell_GetString(g%+44)
shell_UserFNLoadFile(g%!40,_U%!&98,d%!8,yA$,_U%!&84,d%)
*|ifdef TraceInit
shell_Tracef0("RAMTransmit:Block received")
*|endif
_U%!&80>_U%!&84
*|ifdef TraceInit
shell_Tracef0("RAMTransmit:Increasing buffer size..")
*|endif
;_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"))
0 *|Stop PROCshell_RAMTransmit
*|Start FNshell_LoadFile
shell_LoadFile(hJ%)
HA$,CC%,QE%,VB%
4 HA$=
shell_GetString(_Q%+44)
shell_FileLength(HA$)
CC%<0
shell_OK(
shell_MessageNoArgs("SHELLMSG16"))
7"VB%=
shell_HeapBlockFetch(CC%)
&20008,16,HA$,VB%,0
shell_VFlag(QE%)
shell_HeapBlockReturn(VB%)
*|ifdef TraceInit
shell_Tracef0("LoadFile:File "+HA$+" loaded ok at &"+
~VB%)
*|endif
*|Stop FNshell_LoadFile
*|Start FNshell_VFlag
shell_VFlag(QE%)
=((QE%
1)=1)
*|Stop FNshell_VFlag
*|Start PROCshell_Exit
shell_Exit
WC%=_U%!68
&61504,WC%
&2001E,7,,WC%
*|ifdef TraceInit
shell_Tracef0("Exit:Application closing down")
*|endif
shell_TraceExit
&606C2
&600D0,,-1
shell_WimpCloseDown_I(_U%!&94)
*|Stop PROCshell_Exit
*|Start PROCshell_DataSave
shell_DataSave(_Q%)
g%,c%,d%,q%
*|ifdef TraceInit
shell_Tracef0("DataSave:DataSave message received")
*|endif
_Q%!4<>_U%!&94
w;c%=
shell_GetEventListOffset(_Q%!20,_Q%!24,_U%+96,16,
c%>-1
d%=_U%!96+c%
shell_CheckType(_Q%!40,d%!8,
*|ifdef TraceInit
shell_Tracef0("DataSave:Filetype recognized (&"+
~_Q%!40+")")
*|endif
shell_TopBitLoadInProgress
*|ifdef TraceInit
shell_Tracef0("DataSave:'no load' flag set")
shell_Tracef0("DataSave:Sending Message_DataSaveAck")
*|endif
_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)
g%=_U%!&9C
_Q%!0
g%!q%=_Q%!q%
%_EVNTS_LAST_WINDOWCLICKED%=_Q%!20
#_EVNTS_LAST_ICONCLICKED%=_Q%!24
_U%!&80=0
_U%!&84=_Q%!36
)_U%!&98=
shell_HeapBlockFetch(_Q%!36)
_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
*|ifdef TraceInit
shell_Tracef0("DataSave:Sending Message_RAMFetch")
*|endif
*|ifdef TraceInit
shell_Tracef0("DataSave:Filetype NOT recognized")
*|endif
*|Stop PROCshell_DataSave
(*|Start FNshell_TopBitLoadInProgress
shell_TopBitLoadInProgress
_U%!&64
(*|Stop FNshell_TopBitLoadInProgress
"*|Start PROCshell_SendDataSave
d%,MA%,TC%,c%,CC%,j%
!TC%=
shell_HeapBlockFetch(30)
&400CF,,TC%
shell_GetEventListOffset(a%,r%,_U%+72,24,
c%=-1
c%=-2
shell_MessageWindow(
shell_MessageNoArgs("SHELLMSG13"),0,"",
shell_MessageNoArgs("warning"))
d%=(_U%!72)+c%
d%!8>&8000
$CC%=
shell_HeapBlockInfo(d%!8)-4
CC%=d%!8
MA%=_U%!76
MA%!0=256
MA%!&C=0
MA%!16=1
MA%!20=TC%!&C
MA%!24=TC%!16
MA%!28=TC%!0
MA%!32=TC%!4
MA%!36=CC%
MA%!40=d%!&C
7$(MA%+44)=
shell_Leaf(
shell_IconGetData(a%,d%!16))
&400E7,18,MA%,MA%!20,MA%!24
_U%!&78=_Q%!8
_U%!&88=CC%
_U%!&8C=d%!&C
_U%!&90=d%!8
_U%!&9C=d%!4
_U%!&C8=MA%!20
_U%!&CC=MA%!24
shell_HeapBlockReturn(TC%)
!*|Stop PROCshell_SendDataSave
4'*|Start PROCshell_DataSaveCheckName
shell_DataSaveCheckName(a%,r%)
c%,d%,EA%
d%=_U%!72:c%=0
d%<>0
="EA%=
shell_HeapBlockInfo(d%)-8
!(d%+c%)=a%
C$d$=
shell_IconGetData(!d%,d%!16)
d$,".")=0
shell_OK(
shell_MessageNoArgs("SHELLMSG01"))
c%=EA%
c%+=24
c%>=EA%
L&*|Stop PROCshell_DataSaveCheckName
N!*|Start PROCshell_DataLoadAck
shell_DataLoadAck(_Q%)
*|ifdef TraceInit
shell_Tracef0("DataLoadAck:DataLoadAck message received (file received ok)")
*|endif
U *|Stop PROCshell_DataLoadAck
W,*|Start PROCshell_UserMessageAcknowledge
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$)
h+*|Stop PROCshell_UserMessageAcknowledge
l!*|Start PROCshell_AckRAMFetch
shell_AckRAMFetch(_Q%)
eG%,g%
g%=_U%!&9C
*|ifdef TraceInit
shell_Tracef0("AckRAMFetch:AckRAMFetch called....")
*|endif
_Q%!&C<>_U%!&70
_U%!&80=0
*|ifdef TraceInit
shell_Tracef0("AckRAMFetch:Receiver does not support RAM transfer")
*|endif
&20023,"Wimp$Scrap",,-1,0,3
,,eG%
eG%<>0
} $(g%+44)="<Wimp$Scrap>"+
~+g%!0=(49+
shell_GetString(g%+44)))
g%!&C=g%!8
g%!16=2
g%!36=-1
&400E7,18,g%,g%!4
_U%!&6C=g%!8
shell_OK(
shell_MessageNoArgs("SHELLMSG14"))
*|ifdef TraceInit
shell_Tracef0("AckRAMFetch:RAM transfer started, but not enough data sent. Sender died?")
*|endif
shell_HeapBlockReturn(_U%!&98)
_U%!&98=0
shell_OK("SHELLMSG06")
*|Stop PROCshell_AckRAMFetch
'*|Start PROCshell_FindMenuWarnEvent
shell_FindMenuWarnEvent(PA%,
t%,hA%,g%,c%,w%,EA%,nA%,i%
cC%=0
%hA%=_U%!&DC:c%=0:w%=
:L$="":cC%=0
shell_HeapBlockExists(hA%)
i%+=4
hA%!i%=-1
EA%=i%:i%=0
*|ifdef PROCshell_TraceInit
shell_Tracef0("FindMenuWarnEvent:list_size%="+
*|endif
g%=!(hA%+c%+0)
g%<>-1
g%=PA%
nA%=hA%!(c%+4):L$=$nA%
cC%=hA%!(c%+8)
nA%=hA%!(c%+&C):T$=$nA%
*|ifdef PROCshell_TraceInit
shell_Tracef0("FindMenuWarnEvent:submenu found")
*|endif
c%+=16
c%=EA%
c%>=EA%
L$="":T$=""
*|ifdef PROCshell_TraceInit
cC%=0
shell_Tracef0("FindMenuWarnEvent:warn fn not found..")
*|endif
&*|Stop PROCshell_FindMenuWarnEvent
'*|Start PROCshell_EventListMenuWarn
shell_EventListMenuWarn(UC%,OI%,L$,T$)
g%,nA%,i%,hA%
_U%!&DC=0
%_U%!&DC=
shell_HeapBlockFetch(32)
g%=_U%!&DC
g%!0=UC%
%g%!4=
shell_HeapBlockFetch(
L$+1)
$(g%!4)=L$
g%!8=OI%
&g%!&C=
shell_HeapBlockFetch(
T$+1)
$(g%!&C)=T$
'g%!16=-1:g%!20=-1:g%!24=-1:g%!28=-1
*hA%=
shell_HeapBlockExtend(_U%!&DC,32)
_U%!&DC=hA%:i%=0
i%+=16
hA%!i%=-1
g%=_U%!&DC
g%!i%=UC%
*g%!(i%+4)=
shell_HeapBlockFetch(
L$+1)
nA%=g%!(i%+4):$(nA%)=L$
g%!(i%+8)=OI%
+g%!(i%+&C)=
shell_HeapBlockFetch(
T$+1)
nA%=g%!(i%+&C):$(nA%)=T$
-g%!(i%+16)=-1:g%!(i%+20)=-1:g%!(i%+24)=-1
g%!(i%+28)=-1
&*|Stop PROCshell_EventListMenuWarn
*|Start PROCack
*|Stop PROCack
*|Start PROClwaorigin
lwaorigin(A,
SA%=A!0-A!16:TA%=A!&C-A!20
*|Stop PROClwaorigin
'*|Start FNshell_WritableIconHandler
shell_WritableIconHandler(a%,r%,fA%)
MB%,rB%,uB%,i%
FE%,fE%,IB%,RB%,cB%,DK%,AA%
#AA%=
shell_HeapBlockFetch(&400)
&400D3,,AA%
!AA%=-1
shell_HeapBlockReturn(AA%)
&400D6,a%,AA%,&40E000,&E000
rB%=!AA%:i%=0
AA%!i%=r%
FE%=AA%!(i%-4)
fE%=AA%!(i%+4)
i%+=4
AA%!i%=-1
uB%=AA%!(i%-4)
shell_FakeMouseClick(a%,0,4)
398,394
r%=uB%
&400D2,a%,rB%,-1,-1,-1,
shell_IconGetData(a%,rB%))
shell_IconEnsureVisible(a%,rB%)
&400D2,a%,fE%,-1,-1,-1,
shell_IconGetData(a%,fE%))
shell_IconEnsureVisible(a%,fE%)
399,410
r%=rB%
&400D2,a%,uB%,-1,-1,-1,
shell_IconGetData(a%,uB%))
shell_IconEnsureVisible(a%,uB%)
&400D2,a%,FE%,-1,-1,-1,
shell_IconGetData(a%,FE%))
shell_IconEnsureVisible(a%,FE%)
&400D2,a%,rB%,-1,-1,-1,
shell_IconGetData(a%,rB%))
shell_IconEnsureVisible(a%,rB%)
&400D2,a%,uB%,-1,-1,-1,
shell_IconGetData(a%,uB%))
shell_IconEnsureVisible(a%,uB%)
shell_HeapBlockReturn(AA%)
0&*|Stop FNshell_WritableIconHandler
2$*|Start PROCshell_FakeMouseClick
shell_FakeMouseClick(a%,r%,HD%)
6,&F,1
5!_Q%!8=HD%:_Q%!&C=a%:_Q%!16=r%
shell_Action(6)
9#*|Stop PROCshell_FakeMouseClick
*|Start PROCshell_GetMinXY
shell_GetMinXY(o%,J$,p$)
XA%,aA%,qA%,yA%,RB%,cB%
TB%=0:GB%=0
J$<>""
&40084,o%>>24
,,aA%,,yA%
&40097,,
(o%>>24)+J$
,XA%,,qA%
&40088,,XA%
&40088,,qA%
TB%=qA%-XA%:GB%=yA%-aA%
TB%=6*jJ%+16*
J$:GB%=32
4GB%+=2*rJ%
p$<>""
&2002E,296,
shell_UserSpritesBase,p$
,,,RB%,cB%,,aH%;P%
&20035,aH%,4
,,_I%:RB%=RB%<<_I%
&20035,aH%,5
,,NJ%:cB%=cB%<<NJ%
&800RB%=RB%/2:cB%=cB%/2
539)=19RB%=TB%+RB%
RB%>TB%TB%=RB%
cB%>GB%GB%=cB%
*|Stop PROCshell_GetMinXY
]"*|Start PROCshell_IconGetState
shell_IconGetState(dC%,LC%)
!_Q%=dC%
_Q%!4=LC%
&400CE,,_Q%
d!*|Stop PROCshell_IconGetState
*|Start PROCprint_text
print_text(K,J,J$)
in(K,J-32,K+16*
(J$),J)
*|Stop PROCprint_text
*|Start FNin
in(A%,B%,C%,D%)
*|Stop FNin
*|Start PROCnewvals
newvals
X=_Q%!28:b=_Q%!32
Q=_Q%!36:a=_Q%!40
T=_Q%!4:V=_Q%!8
W=_Q%!&C:S=_Q%!16
M=_Q%!20:N=_Q%!24
c=W-T:R=S-V:e=M
f=M+c:g=N:h=N-R
*|Stop PROCnewvals
max(iA%,dB%)
iA%<dB%
*|Start FNshell_Leaf
shell_Leaf(I$)
I$,".")
I$,".")+1)
*|Stop FNshell_Leaf
*|Start FNshell_Branch
shell_Branch(bA$)
NA%,QA$,g%
bA$,".")=0
QA$=""
NA%=g%+1
bA$,".",NA%)
bA$,NA%-2)
*|Stop FNshell_Branch
*|Start FNgname
gname(G)
eA$=""
?G<>0
?G<>&D
eA$=eA$+
?G:G+=1
*|Stop FNgname
**|Start PROCshell_ScreenToWindowCoords
shell_ScreenToWindowCoords(bH%,
VF%,XH%,mJ%,IH%,pG%,SC%
DSC%=
shell_HeapBlockFetch(&64+(
shell_WindowCountIcons(bH%)*32))
VF%=SC%
!VF%=bH%
&400CC,,VF%
XH%=SC%!4
VJ%=SC%!16
IH%=SC%!20
pG%=SC%!24
X%=X%+(IH%-XH%)
Y%=Y%+(pG%-VJ%)
shell_HeapBlockReturn(SC%)
)*|Stop PROCshell_ScreenToWindowCoords
#*|Start FNshell_WimpSlotReadEnd
shell_WimpSlotReadEnd
&400EC,-1,-1
"*|Stop FNshell_WimpSlotReadEnd
'*|Start FNshell_WimpSlotClaimMemory
shell_WimpSlotClaimMemory(yC%,NB%)
&400EC,yC%+NB%,-1
JG%<yC%+NB%
&*|Stop FNshell_WimpSlotClaimMemory
+*|Start PROCshell_WimpSlotReleaseMemory
shell_WimpSlotReleaseMemory
&400EC,yC%,-1
**|Stop PROCshell_WimpSlotReleaseMemory
*|Start PROCshell_MouseLimit
shell_MouseLimit(A,QA%)
A!0=QA%:
&400CB,,A
mouse_rectangle(A!4,A!8,A!&C-A!4,A!16-A!8)
*|Stop PROCshell_MouseLimit
%*|Start FNshell_NameOfFirstSprite
shell_NameOfFirstSprite(FB$)
X%,N%,hA$
(FB$)
#X%=4
#X%*256
#X%*65536
#X%*&1000000
#X%=N%
hA$=""
hA$+=
$*|Stop FNshell_NameOfFirstSprite
$*|Start PROCInitialiseSpriteArea
InitialiseSpriteArea(S%,fI%)
!S%=fI%
S%!8=16
46,9+256,S%
#*|Stop PROCInitialiseSpriteArea
*|Start PROCshell_ListEvents
shell_ListEvents(a%,lA%)
z%,s$
a%=-1
a%=-2
shell_Tracef0("MenuSelection="+
shell_GetEventHandler(a%,lA%,0))
shell_Tracef0("MenuMaker ="+
shell_GetEventHandler(a%,lA%,1))
shell_Tracef0("ClickSelect ="+
shell_GetEventHandler(a%,lA%,2))
shell_Tracef0("ClickAdjust ="+
shell_GetEventHandler(a%,lA%,3))
shell_Tracef0("Redraw ="+
shell_GetEventHandler(a%,lA%,4))
shell_Tracef0("Keypress ="+
shell_GetEventHandler(a%,lA%,5))
shell_Tracef0("Drag ="+
shell_GetEventHandler(a%,lA%,6))
shell_Tracef0("Menu Warning ="+
shell_GetEventHandler(a%,lA%,7))
shell_Tracef0("HelpTag ="+
shell_GetEventHandler(a%,lA%,8))
shell_GetEventMenu(2,a%,lA%)
s$="None"
shell_Tracef0("Menu handle =&"+s$)
*|Stop PROCshell_ListEvents
"*|Start PROCshell_AttachHotKey
shell_AttachHotKey(qA$,fC%,hC%,FD%,o$,a%,e$,f$)
hA%,c%,g%,nA%,fA%,aF%
aF%=
_U%!60=0
$_U%!60=
shell_HeapBlockFetch(24)
c%=0:_U%!&B4=1
c%=_U%!&B4*24
,_U%!60=
shell_HeapBlockExtend(_U%!60,24)
_U%!&B4=(_U%!&B4)+1
hA%=_U%!60
"F1":fA%=385
"F2":fA%=386
"F3":fA%=387
"F4":fA%=388
"F5":fA%=389
"F6":fA%=390
"F7":fA%=391
"F8":fA%=392
"F9":fA%=393
"F10":fA%=458
"F11":fA%=459
fA%=(
qA$)-64:aF%=
fA%+=16
fA%+=32
g%=hA%+c%
g%!0=fA%
g%?4=fC%
g%?5=hC%
g%?6=FD%
5%g%!8=
shell_HeapBlockFetch(
o$+1)
nA%=g%!8:$nA%=o$
shell_IsWindowStatic(a%)=
shell_MessageNoArgs("SHELLMSG09")
g%!&C=a%
<&g%!16=
shell_HeapBlockFetch(
e$+1)
nA%=g%!16:$nA%=e$
>&g%!20=
shell_HeapBlockFetch(
f$+1)
nA%=g%!20:$nA%=f$
B!*|Stop PROCshell_AttachHotKey
D!*|Start FNshell_HotKeyProcess
shell_HotKeyProcess(fA%)
hA%,EA%,w%,f%,y%,BA$,e$,f$
hC%,fC%,FD%,BB%,CB%,yD%,qJ%,c%
t%,_%
hA%=_U%!60
EA%=_U%!&B4*24
:f%=0
hA%!f%=fA%
f%+=24
f%>=EA%
g%=hA%+f%
BA$=$(g%!8)
*|ifdef TraceInit
shell_Tracef0("HotKeyProcess:Template name is '"+BA$+"'")
*|endif
(BA$<>""
g%!&C=0)
shell_CreateWindow(BA$,y%)
*|ifdef TraceInit
shell_Tracef0("HotKeyProcess:Creating new dynamic window (handle is &"+
~y%+")")
*|endif
` _%=
shell_HeapBlockFetch(36)
_%!0=y%
&400CB,,_%
BB%=(_%!4-_%!&C)/2
CB%=(_%!16-_%!8)/2
shell_HeapBlockReturn(_%)
e$=$(g%!16)
e$<>""
shell_Tracef0("HotKeyProcess:Calling Pre-Open FN '"+e$+"'")
g%!&C>0
k j%=
("FN"+e$+"("+
g%!&C+")")
("FN"+e$+"("+
y%+")")
shell_Tracef0("HotKeyProcess:No Pre-Open FN registered")
shell_IsWindowStatic(g%!&C)
shell_OpenWindowStatic(g%!&C)
g%!&C>0
shell_MessageNoArgs("SHELLMSG09")
shell_OpenWindowDynamic2(y%,BB%,CB%)
f$=$(g%!20)
f$<>""
*|ifdef TraceInit
shell_Tracef0("HotKeyProcess:Calling Post-Open FN '"+f$+"'")
*|endif
g%!&C>0
("FN"+f$+"("+
g%!&C+")")
("FN"+f$+"("+
y%+")")
*|ifdef TraceInit
shell_Tracef0("HotKeyProcess:No Post-Open FN registered")
*|endif
BA$="":e$="":f$="":t%=
*|Stop FNshell_HotKeyProcess
+*|Start PROCshell_WindowCentreOnPointer
shell_WindowCentreOnPointer(y%)
v%,ED%,BB%,CB%
!ED%=
shell_HeapBlockFetch(20)
&400CF,,ED%
shell_HeapBlockFetch(36)
_%!0=y%
&400CB,,_%
BB%=(_%!4-_%!&C)/2
CB%=(_%!16-_%!8)/2
shell_WindowMoveTo(y%,ED%!0+BB%,ED%!4-CB%)
shell_HeapBlockReturn(_%)
shell_HeapBlockReturn(ED%)
**|Stop PROCshell_WindowCentreOnPointer
**|Start PROCshell_WindowCentreOnScreen
shell_WindowCentreOnScreen(y%)
v%,UE%,VE%,HB%,oA%,ND%,IC%
&20035,-1,4
,,ND%
&20035,-1,5
,,IC%
&20035,-1,&B
,,UE%
&20035,-1,&C
,,VE%
UE%=UE%<<ND%
VE%=VE%<<IC%
shell_HeapBlockFetch(36)
_%!0=y%
&400CB,,_%
HB%=(_%!&C-_%!4)
oA%=(_%!16-_%!8)
shell_WindowMoveTo(y%,(UE%/2)-(HB%/2),(VE%-oA%)/2)
shell_HeapBlockReturn(_%)
)*|Stop PROCshell_WindowCentreOnScreen
-*|Start PROCshell_OpenWindowStaticNewView
shell_OpenWindowStaticNewView(a%)
shell_OpenWindow(a%,
,*|Stop PROCshell_OpenWindowStaticNewView
&*|Start PROCshell_OpenWindowStatic
shell_OpenWindowStatic(m%)
shell_IsWindowStatic(m%)=
shell_OpenWindow(m%,0,-1)
%*|Stop PROCshell_OpenWindowStatic
$*|Start PROCshell_InitHelpSystem
shell_InitHelpSystem(I$,uI%)
OA$,NA%,j$,qE%,sB%
9_U%!&D4=0:
_U%!&D8<>0
shell_HeapBlockReturn(_U%!&D8)
_U%!&D8=0
shell_ScanForHelp
OA$=" -DieWithTask"
OA$=""
_U%!&64
I$=""
shell_OSVarGetVal(
shell_GetAppName+"Res$Path",-1)
j$,",")
NA%>0
shell_FileExists(
j$,NA%-1)+
shell_GetAppName)
j$,NA%-1)+
shell_GetAppName
shell_StrongHlpChkFiles(I$)
j$,NA%+1)
shell_FileExists(j$+
shell_GetAppName)
I$=j$+
shell_GetAppName
shell_StrongHlpChkFiles(I$)
sB%=
shell_OK(
shell_MessageOneArg("SHELLMSG26",
shell_GetAppName))
I$<>""
shell_FileExists(I$)
shell_StrongHlpChkFiles(I$)
shell_MessageOneArg("SHELLMSG33",I$)
sB%=0
shell_StrongHlpMsg("Help_Install "+I$+OA$)
_U%!&64=_U%!&64
#*|Stop PROCshell_InitHelpSystem
*|Start PROCshell_HelpWord
shell_HelpWord(MA$)
FK%,g%
_U%!&D0=-1
shell_OSVarExists("StrongHelp$Dir")
&600DE,"<StrongHelp$Dir>"
_U%!&D8<>0
shell_HeapBlockReturn(_U%!&D8)
)_U%!&D8=
shell_HeapBlockFetch(
MA$+1)
g%=_U%!&D8
$g%=MA$
shell_OK(
shell_MessageNoArgs("SHELLMSG11"))
shell_StrongHlpMsg("Help_Word "+MA$)
*|Stop PROCshell_HelpWord
"*|Start PROCshell_StrongHlpMsg
shell_StrongHlpMsg(FA$)
shell_BroadcastMessage(&43B00,FA$)
!*|Stop PROCshell_StrongHlpMsg
!*|Start PROCshell_ScanForHelp
shell_ScanForHelp
iB%,XE%
"iB%=
shell_HeapBlockFetch(256)
iB%!&C=0
&400E7,19,iB%,-2,_U%!&D4
,,XE%
_U%!&D4=_U%!&D4+1
XE%<>-1
(_U%!&D4)>64
XE%<>-1
iB%!0=24
iB%!&C=0
iB%!16=&400C6
iB%!20=XE%
&400E7,17,iB%,0
shell_HeapBlockReturn(iB%)
9 *|Stop PROCshell_ScanForHelp
*|Start PROCshell_MemFill
shell_MemFill(jD%,yH%,ID%)
I%,cE%,vE%
cE%=yH%
vE%=yH%
cE%>0
(cE%*4)
jD%!(I%-1)=ID%
vE%>0
jD%=jD%+(cE%*4)
vE%-1
jD%?I%=ID%
*|Stop PROCshell_MemFill
`&*|Start PROCshell_MenuUpdateHandle
shell_MenuUpdateHandle(rG%,DI%)
EA%,f%,n%,z%
c&EA%=
shell_HeapBlockInfo(_U%!&C)-8
n%=_U%!&C
z%=n%!(f%+8)
z%=rG%
n%!(f%+8)=DI%
f%+=48
(f%>=EA%)
shell_MenuLastHandle=rG%
_m_Menu_HandleLastOpened%=DI%
n%*|Stop PROCshell_MenuUpdateHandle
r"*|Start FNshell_CheckSelection
shell_CheckSelection(aI%)
g%,i%
g%=_U%!256
shell_MenuLastHandle=_U%!&FC
aI%!i%<>g%!i%
z i%+=4
g%!i%=-1
~!*|Stop FNshell_CheckSelection
&*|Start FNshell_MenuGetItemAddress
shell_MenuGetItemAddress(z%,mG%)
i%,GC%
&45BC7,z%
GC%=z%+28+((mG%!i%)*24)
z%=GC%!4
i%+=4
mG%!i%=-1
%*|Stop FNshell_MenuGetItemAddress
$*|Start FNshell_GetLastMouseXPos
shell_GetLastMouseXPos
Evnts_GetLastMouseXPos
#*|Stop FNshell_GetLastMouseXPos
$*|Start FNshell_GetLastMouseYPos
shell_GetLastMouseYPos
Evnts_GetLastMouseYPos
#*|Stop FNshell_GetLastMouseYPos
(*|Start PROCshell_UpdateWindowHandle
shell_UpdateWindowHandle(jA%,ZA%)
*|ifdef TraceInit
shell_Tracef0("UpdateWindowHandle:Updating stored window handles")
shell_Tracef0("UpdateWindowHandle:old handle=&"+
~jA%)
shell_Tracef0("UpdateWindowHandle:new handle=&"+
~ZA%)
*|endif
ZA%<>jA%
Evnts_GetLastWindowClicked=jA%
_EVNTS_LAST_WINDOWCLICKED%=ZA%
!_Q%=jA%
!_Q%=ZA%
shell_FixEventBlock(jA%,ZA%,_U%!&C,48)
shell_FixEventBlock(jA%,ZA%,_U%!96,16)
shell_FixEventBlock(jA%,ZA%,_U%!72,24)
shell_FixEventBlock(jA%,ZA%,_U%!92,24)
shell_UpdateStaticWindowHandle(jA%,ZA%)
shell_UpdateWindowHandleList(jA%,ZA%)
'*|Stop PROCshell_UpdateWindowHandle
#*|Start PROCshell_FixEventBlock
shell_FixEventBlock(jA%,ZA%,n%,c%)
f%,EA%
shell_HeapBlockExists(n%)
"EA%=
shell_HeapBlockInfo(n%)-8
(n%!f%=jA%)
n%!f%=ZA%
f%+=c%
(f%>=EA%)
"*|Stop PROCshell_FixEventBlock
$*|Start PROCshell_FixEventBlock2
shell_FixEventBlock2(jA%,ZA%,n%,c%)
f%,EA%
shell_HeapBlockExists(n%)
EA%=!n%
(n%!f%=jA%)
n%!f%=ZA%
f%+=c%
(f%>=EA%)
#*|Stop PROCshell_FixEventBlock2
"*|Start PROCshell_MessagesInit
shell_MessagesInit(K$,
NB%,o%
3,"Cannot open message file '"+K$+"'"
&41500,,K$
o%,,NB%
bG%=0
shell_HeapBlockFetch(NB%)
30,6,,,17+
,,CE%
$(CE%+16)=K$
&41501,CE%,CE%+16
*|ifdef TraceInit
shell_Tracef0("MessagesInit:Message resource file '"+K$+"' loaded")
*|endif
!*|Stop PROCshell_MessagesInit
'*|Start FNshell_WindowSetSpriteArea
shell_WindowSetSpriteArea(y%,tE%)
d%,ZA%,uE%,CF%
shell_HeapBlockFetch(&64+(
shell_WindowCountIcons(y%)*32))
!d%=y%
&400CC,,d%
d%!68=tE%
shell_IconSetSpriteArea(d%!60,d%+76,tE%)
(d%!88)>0
uE%=0
(d%!88)-1
CF%=d%+92+uE%*32
shell_IconSetSpriteArea(CF%!16,CF%+20,tE%)
&400C3,,d%
&400C1,,d%+4
ZA%<>y%
shell_UpdateWindowHandle(y%,ZA%)
y%=ZA%
shell_HeapBlockReturn(d%)
&*|Stop FNshell_WindowSetSpriteArea
(*|Start FNshell_StrongHlpIsAvailable
shell_StrongHlpIsAvailable
bB%,UA%
bB%=
_U%!&64
,bB%=
shell_OSVarExists("StrongHelp$Dir")
'*|Stop FNshell_StrongHlpIsAvailable
&*|Start PROCshell_AttachOpenWindow
shell_AttachOpenWindow(a%,O$)
d%,g%,c%
*|ifdef TraceInit
shell_Tracef0("AttachOpenWindow:Attaching OpenWindow Handler")
*|endif
shell_MessageOneArg("SHELLMSG27","AttachOpenWindow")
shell_GetEventListOffset(a%,-1,_U%+304,&C,
d%=_U%!304+c%
d%!0=a%:d%!4=-1
'd%!8=
shell_HeapBlockFetch(
(O$)+1)
g%=d%!8:$g%=O$
%*|Stop PROCshell_AttachOpenWindow
!.*|Start PROCshell_AttachCloseWindowHandler
shell_AttachCloseWindowHandler(a%,O$)
d%,g%,c%
*|ifdef TraceInit
shell_Tracef0("AttachCloseWindowHandler:Attaching CloseWindow Handler")
*|endif
shell_MessageOneArg("SHELLMSG27","AttachCloseWindow")
(4c%=
shell_GetEventListOffset(a%,-1,_U%+308,&C,
d%=_U%!308+c%
d%!0=a%:d%!4=-1
+'d%!8=
shell_HeapBlockFetch(
(O$)+1)
g%=d%!8:$g%=O$
/-*|Stop PROCshell_AttachCloseWindowHandler
1"*|Start PROCshell_SpriteRename
shell_SpriteRename(AD%,VB$,NB$)
46,512+26,AD%,
shell_SpriteGetPtr(AD%,VB$),NB$
6!*|Stop PROCshell_SpriteRename
8$*|Start PROCshell_SpriteAreaSave
shell_SpriteAreaSave(AD%,K$)
46,512+&C,AD%,K$
=#*|Stop PROCshell_SpriteAreaSave
? *|Start PROCshell_EnsurePoll
shell_EnsurePoll
C DA%=
shell_Poll_I(0,_U%!&94)
shell_Action(DA%)
DA%=0
*|Stop PROCshell_EnsurePoll
J"*|Start FNshell_WimpGetVersion
shell_WimpGetVersion
=_U%!316
M!*|Stop FNshell_WimpGetVersion
S)*|Start PROCshell_MessageSendDataLoad
shell_MessageSendDataLoad(pA%,d$)
V"EB%=
shell_HeapBlockFetch(256)
EB%!0=256
EB%!4=0
EB%!&C=0
EB%!16=5
EB%!20=0
EB%!28=0
EB%!32=0
EB%!36=0
EB%!40=pA%
$(EB%+44)=d$+
&400E7,18,EB%,0
d%_SHELL_SENDDATALOAD_MY_REF%=EB%!8
e _SHELL_SENDDATALOAD_FILE$=d$
shell_HeapBlockReturn(EB%)
i(*|Stop PROCshell_MessageSendDataLoad
m *|Start FNshell_BinarySearch
shell_BinarySearch(_search_term$,IB$,m$,FH%,bE%)
_pos%,HC%,_wp$,mE%,gJ%,BG%,RD%,PH%,w%,BF%
bE%+=1
s BF%=
HC%=bE%
v mE%=0
_pos%=HC%
RD%=FH%-1
RD%<0
{ RD%=0
BG%=bE%
shell_Tracef0("BinarySearch:_search_term$ = "+_search_term$)
shell_Tracef0("BinarySearch:hi% = "+
shell_Tracef0("BinarySearch:lo% = "+
shell_Tracef0("BinarySearch:m% = "+
_wp$=
("FN"+IB$+"( _pos% )")
shell_Tracef0("BinarySearch:_pos% = "+
_pos%)
shell_Tracef0("BinarySearch:_wp$ = "+_wp$)
yF%=_pos%
_search_term$=_wp$
shell_Tracef0("BinarySearch:_search_term$ = _wp$, item found..")
shell_Tracef0("BinarySearch:_search_term$ <> _wp$")
shell_Tracef0("BinarySearch:_search_term$ = "+_search_term$)
shell_Tracef0("BinarySearch:_wp$ = "+_wp$)
shell_Tracef0("BinarySearch:"+"FN"+m$+"( _search_term$,_wp$ )")
("FN"+m$+"( _search_term$,_wp$ )")=
shell_Tracef0("BinarySearch:searching lower half..")
BG%=_pos%
HC%=_pos%-RD%
_pos%=HC%
2+mE%
shell_Tracef0("BinarySearch:searching upper half..")
RD%=_pos%
mE%=_pos%
HC%=BG%-_pos%
_pos%=HC%
2+mE%
PH%=yF%
PH%=yF%
*|Stop FNshell_BinarySearch
#*|Start FNshell_IconLastClicked
shell_IconLastClicked
Evnts_GetLastIconClicked
"*|Stop FNshell_IconLastClicked
*|Start PROCshell_QuickSort
shell_QuickSort(m$,CA$,_asc%,_start%,_end%)
_lo%,_h%,_F%,_temp%,j%
!_lo%=_start%:_hi%=_end%:_F%=
_temp%=_lo%-1+
(_hi%+1-_lo%)
("FN"+CA$+"(_lo%,_temp%)")
_asc%=0
("FN"+m$+"(_lo%,_hi%)")
("FN"+CA$+"(_lo%,_hi%)")
("FN"+m$+"(_hi%,_lo%)")
("FN"+CA$+"(_hi%,_lo%)")
_hi%=_hi%-1
_lo%=_lo%+1
_lo%=_hi%
_start%<_lo%-1
shell_QuickSort(m$,CA$,_asc%,_start%,_lo%-1)
_hi%+1<_end%
shell_QuickSort(m$,CA$,_asc%,_hi%+1,_end%)
*|Stop PROCshell_QuickSort
*|Start FN_shell_MS_swap
_shell_MS_swap(iE%,jE%)
y$,w$,sG%,cG%
shell_MenuGetItemText(_shell_MS_handle%,iE%)
shell_MenuGetItemText(_shell_MS_handle%,jE%)
7sG%=
shell_MenuGetItemHandle(_shell_MS_handle%,iE%)
7cG%=
shell_MenuGetItemHandle(_shell_MS_handle%,jE%)
shell_MenuPutData(sG%,w$)
shell_MenuPutData(cG%,y$)
*|Stop FN_shell_MS_swap
*|Start FN_shell_MS_comp
_shell_MS_comp(iE%,jE%)
y$,w$
shell_MenuGetItemText(_shell_MS_handle%,iE%)
shell_MenuGetItemText(_shell_MS_handle%,jE%)
*|Stop FN_shell_MS_comp
-*|Start PROCshell_WindowSetTitleRightJust
shell_WindowSetTitleRightJust(
v%,kA%,m%,tB%
shell_WindowIsOpen(a%)
shell_HeapBlockFetch(&64+(
shell_WindowCountIcons(a%)*32))
!v%=a%
&400CC,,v%
kA%=v%!60
(1<<3))
*|ifdef TraceInit
shell_Tracef0("WindowSetTitleRightJust:title flags = &"+
~kA%)
shell_Tracef0("WindowSetTitleRightJust:Horizontally centred bit set..")
shell_Tracef0("WindowSetTitleRightJust:Unsetting horizontally centred bit..")
*|endif
kA%=kA%
(1<<3)
*|ifdef TraceInit
shell_Tracef0("WindowSetTitleRightJust:title flags = &"+
~kA%)
*|endif
*|ifdef TraceInit
shell_Tracef0("WindowSetTitleRightJust:Horizontally centred bit NOT set..")
*|endif
*|ifdef TraceInit
shell_Tracef0("WindowSetTitleRightJust:Setting right justified bit..")
*|endif
kA%=kA%
(1<<9)
v%!60=kA%
&400C3,,v%
&400C1,,v%+4
a%<>m%
*|ifdef TraceInit
shell_Tracef0("WindowSetTitleRightJust:Updating window handle...")
*|endif
shell_UpdateWindowHandle(a%,m%)
a%=m%
shell_OpenWindow(m%,0,0)
shell_HeapBlockReturn(v%)
,*|Stop PROCshell_WindowSetTitleRightJust
.*|Start PROCshell_WindowSetTitleCentreJust
shell_WindowSetTitleCentreJust(
v%,kA%,m%,tB%
shell_WindowIsOpen(a%)
shell_HeapBlockFetch(&64+(
shell_WindowCountIcons(a%)*32))
!v%=a%
&400CC,,v%
kA%=v%!60
shell_Tracef0("WindowSetTitleCentreJust:title flags = &"+
~kA%)
shell_Tracef0("WindowSetTitleCentreJust:t_flags% AND (1 << 3) = "+
~(kA%
(1<<3)))
(1<<3))=0
*|ifdef TraceInit
shell_Tracef0("WindowSetTitleCentreJust:Horizontally centred bit not set..")
shell_Tracef0("WindowSetTitleCentreJust:Setting horizontally centred bit..")
*|endif
kA%=kA%
(1<<3)
*|ifdef TraceInit
shell_Tracef0("WindowSetTitleCentreJust:title flags = &"+
~kA%)
*|endif
v%!60=kA%
&400C3,,v%
&400C1,,v%+4
a%<>m%
*|ifdef TraceInit
shell_Tracef0("WindowSetTitleCentreJust:Updating window handle...")
*|endif
shell_UpdateWindowHandle(a%,m%)
+ a%=m%
shell_OpenWindow(m%,0,0)
shell_HeapBlockReturn(v%)
3-*|Stop PROCshell_WindowSetTitleCentreJust
7&*|Start FNshell_GetLastMouseButton
shell_GetLastMouseButton
Evnts_GetLastMouseButton
;%*|Stop FNshell_GetLastMouseButton
=(*|Start FNshell_GetLastWindowClicked
shell_GetLastWindowClicked
Evnts_GetLastWindowClicked
A'*|Stop FNshell_GetLastWindowClicked
C&*|Start FNshell_GetLastIconClicked
shell_GetLastIconClicked
Evnts_GetLastIconClicked
G%*|Stop FNshell_GetLastIconClicked
K%*|Start FNshell_StrongHlpChkFiles
shell_StrongHlpChkFiles(I$)
shell_FileExists(I$+".HelpData")
sB%=-1
shell_MessageOneArg("SHELLMSG32","HelpData")
shell_FileExists(I$+".Index")
sB%=-1
shell_MessageOneArg("SHELLMSG32","Index")
Z$*|Stop FNshell_StrongHlpChkFiles
^&*|Start PROCshell_TemplateFileInfo
shell_TemplateFileInfo(K$,
RO3_Present
shell_TemplateFileInfo3(K$,FB%,FA%,t%)
shell_TemplateFileInfo2(K$,FB%,FA%,t%)
q%*|Stop PROCshell_TemplateFileInfo
s'*|Start PROCshell_TemplateFileInfo2
shell_TemplateFileInfo2(K$,
NA%,JC%,jB%
UA%,X%,kB%,UJ%
i%,EE%,bF%,MB%,bD%,o%
x NA%=0:FA%=0:JC%=0:jB%=0:t%=0
shell_FileExists(K$)
t%=-1
shell_FileType(K$)<>&FEC
t%=-2
}!UA%=
shell_HeapBlockFetch(&D)
#X%=16
&C,4,X%,UA%,4
OB%=!UA%
OB%>0
FA%+=1
pF%=0
&C,4,X%,UA%,4
kB%=!UA%
&C,4,X%,UA%,4
UJ%=!UA%
&C,4,X%,UA%,&C
#X%=OB%+56
&C,4,X%,UA%,4
o%=!UA%
#X%=OB%+72
&C,4,X%,UA%,&C
,pF%+=
shell_IconIndirSize(OB%,o%,UA%,X%)
#X%=OB%+84
&C,4,X%,UA%,4
MB%=!UA%
MB%>0
bD%=0
MB%-1
#X%=OB%+88+(bD%*32)+16
&C,4,X%,UA%,4
o%=!UA%
#X%=OB%+88+(bD%*32)+20
&C,4,X%,UA%,&C
,pF%+=
shell_IconIndirSize(OB%,o%,UA%,X%)
#X%=bF%
JC%+=pF%
kB%>jB%
jB%=kB%
OB%=0
shell_HeapBlockReturn(UA%)
FB%=jB%+JC%
&*|Stop PROCshell_TemplateFileInfo2
'*|Start PROCshell_TemplateFileInfo3
shell_TemplateFileInfo3(K$,
NA%,JC%,jB%,OB%
i%,EE%,bF%,MB%,bD%,o%
NA%=0:FA%=0:JC%=0:jB%=0
!UA%=
shell_HeapBlockFetch(&D)
&400D9,,K$
$UA%="*"
&400DB,,-1,,,,UA%,NA%
,FB%,qI%,,,,NA%
NA%<>0
FB%>jB%
jB%=FB%
JC%+=qI%
FA%+=1
NA%=0
&400DA
FB%=jB%+JC%
shell_HeapBlockReturn(UA%)
&*|Stop PROCshell_TemplateFileInfo3
*|Start FNRO3_Present
RO3_Present
d%,KC%,Q$
shell_HeapBlockFetch(256)
("Set RO3$Check Y")
("RMEnsure UtilityModule 3.00 Set RO3$Check N")
35,"RO3$Check",d%,256,0,0
,,KC%
d%?KC%=&D
("Unset RO3$Check")
Q$=$d%
shell_HeapBlockReturn(d%)
Q$="N"
*|Stop FNRO3_Present
*|Start FN_shell_icondrag
_shell_icondrag(a%,r%)
shell_IconDragBox(a%,r%)
*|Stop FN_shell_icondrag
**|Start PROCshell_MessageSendPrintSave
shell_MessageSendPrintSave(MG%,nG%)
nG%>1
_U%!336=nG%-1
_U%!336=0
shell_DoSendPrintSave(MG%)
)*|Stop PROCshell_MessageSendPrintSave
%*|Start PROCshell_DoSendPrintSave
shell_DoSendPrintSave(MG%)
"MA%=
shell_HeapBlockFetch(256)
MA%!0=256
MA%!&C=0
MA%!16=&80142
MA%!20=0
MA%!24=0
MA%!28=0
MA%!32=0
MA%!36=256
MA%!40=MG%
$(MA%+44)="PrintOut"+
*|ifdef TraceInit
shell_Tracef0("MessageSendPrintSave:Sending PrintSave message..")
*|endif
&400E7,18,MA%,MA%!20,MA%!24
shell_HeapBlockReturn(MA%)
$*|Stop PROCshell_DoSendPrintSave
%*|Start PROCshell_HandlePrintFile
shell_HandlePrintFile(_Q%)
*|ifdef TraceInit
shell_Tracef0("HandlePrintFile:Message_PrintFile received")
*|endif
$*|Stop PROCshell_HandlePrintFile
&*|Start PROCshell_HandlePrintError
shell_HandlePrintError(_Q%)
*|ifdef TraceInit
shell_Tracef0("HandlePrintError:Message_PrintError received")
*|endif
%*|Stop PROCshell_HandlePrintError
(*|Start PROCshell_HandlePrintTypeOdd
shell_HandlePrintTypeOdd(_Q%)
*|ifdef TraceInit
shell_Tracef0("HandlePrintTypeOdd:Message_PrintTypeOdd received")
*|endif
"'*|Stop PROCshell_HandlePrintTypeOdd
$&*|Start PROCshell_HandleSetPrinter
shell_HandleSetPrinter(_Q%)
*|ifdef TraceInit
shell_Tracef0("HandleSetPrinter:Message_SetPrinter received")
*|endif
+%*|Stop PROCshell_HandleSetPrinter
*|Start FNshell_3DEnabled
shell_3DEnabled
OH%,_3d%
_U%!&64
(1<<&A)
6,&A1,&8C
,,OH%
_3d%=
_3d%=
_3d%=
< =_3d%
*|Stop FNshell_3DEnabled
B,*|Start PROCshell_HandleAttachedDataSave
shell_HandleAttachedDataSave(_Q%,a%,r%)
YF%,d%,BH%,_name$,g%,j%
shell_DataSaveCheckName(a%,r%)
I4YF%=
shell_GetEventListOffset(a%,-1,_U%+72,24,
YF%>=0
d%=_U%!72+YF%
BH%=d%!16
M%_name$=
shell_IconGetData(a%,BH%)
g%=d%!20
$g%<>""
("FN"+$g%+"(_name$)")
S+*|Stop PROCshell_HandleAttachedDataSave
*|Start FNshell_InstallLib
shell_InstallLib(X$)
1,"Unable to install "+X$
X$,&A)
X$,".")
X$,".")+1)
"FN_shell_"+X$+"_Init not found":
("FN_shell_"+X$+"_Init")
*|Stop FNshell_InstallLib
!*|Start FN_shell_Iconbar_Init
_shell_Iconbar_Init
*|Stop FN_shell_Iconbar_Init
*|Start FNshell_Iconbar
shell_Iconbar(NA%,mA$,J$,HB%,z%,fC%,hC%,FD%)
m%,GA%,eF%,sE%
!GA%=
shell_HeapBlockFetch(36)
eF%20
sE%20
!GA%=NA%
GA%!4=0
GA%!&C=96
J$<>""
GA%!8=-16
GA%!16=92
GA%!32=
GA%!8=0
GA%!16=70
GA%!32=&C
GA%!20=&1700310B
GA%!24=eF%
GA%!28=sE%
$eF%=J$
$sE%=mA$
&400C2,,GA%
shell_AttachMenu(-2,m%,z%,fC%,hC%,FD%)
shell_HeapBlockReturn(GA%)
shell_IconNewSprite(NA%,m%,mA$)
*|Stop FNshell_Iconbar
$*|Start PROCshell_IconbarSetText
shell_IconbarSetText(e%,h%,ZB$)
shell_HeapBlockFetch(40)
!l%=e%
l%!4=h%
&400CE,,l%
$(l%!28)=ZB$
shell_IconRedraw(e%,h%)
shell_HeapBlockReturn(l%)
#*|Stop PROCshell_IconbarSetText
*|Start FN_shell_Files_Init
_shell_Files_Init
*|Stop FN_shell_Files_Init
*|Start FNshell_FileLength
shell_FileLength(g$)
pA%,zD%,_D%,UB%,gC%,C$
8,5,g$
pA%,,zD%,_D%,UB%,gC%
*|Stop FNshell_FileLength
*|Start FNshell_FileType
shell_FileType(g$)
8,5,g$
,,pA%
pA%=(pA%
&FFF00)>>>8
*|Stop FNshell_FileType
*|Start FNshell_FileExists
shell_FileExists(g$)
pA%,E
8,E,g$
pA%=0
*|Stop FNshell_FileExists
*|Start FNshell_CatInfoRead
shell_CatInfoRead(g$)
pA%,zD%,_D%,UB%,gC%,C$
8,5,g$
pA%,,zD%,_D%,UB%,gC%
pA%=0
="Not Found"
gC%=51
C$+="WR "
gC%=&BB
C$+="LWR"
gC%=&88
C$+="DL "
0C$+=" "+
shell_StringPadLeading(
~zD%,"0",8)
0C$+=" "+
shell_StringPadLeading(
~_D%,"0",8)
0C$+=" "+
shell_StringPadLeading(
~UB%,"0",8)
*|Stop FNshell_CatInfoRead
$*|Start FNshell_FileGetDateStamp
shell_FileGetDateStamp(g$)
pA%,VG%,E
8,E,g$
pA%,,,VG%
pA%=0
#*|Stop FNshell_FileGetDateStamp
*|Start FN_shell_Evnts_Init
_shell_Evnts_Init
_EVNTS_HEADER_SIZE%=8
GE%=-1
_EVNTS_PANE_BLK%&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%=20
_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%=
*|Stop FN_shell_Evnts_Init
%*|Start FNEvnts_GetEvntListOffset
Evnts_GetEvntListOffset(A$,h%,k%,BA%,KI%)
EA%,f%,w%,c%,MC%,mB%
A$="IconBar"
h%=-1
A$="iconbar"
(!k%=0
A$=""
(!k%=0)
$6!k%=
shell_HeapBlockFetch(BA%+_EVNTS_HEADER_SIZE%)
MC%=!k%
MC%!0=BA%
MC%!4=1
(!$(MC%+_EVNTS_HEADER_SIZE%)=""
q%=&C
(BA%-4)
+#MC%!(q%+_EVNTS_HEADER_SIZE%)=-1
GE%=_EVNTS_HEADER_SIZE%
=_EVNTS_HEADER_SIZE%
MC%=!k%
EA%=!MC%
f%=_EVNTS_HEADER_SIZE%
8 c%=-1
sJ%=-1
mB%=!k%
($(mB%+f%)=A$)
mB%!(f%+&C)=h%
B c%=f%
f%+=BA%
f%+=BA%
((f%>=(EA%+_EVNTS_HEADER_SIZE%))
(c%=-1
c%=EA%+_EVNTS_HEADER_SIZE%
O'!k%=
shell_HeapBlockExtend(!k%,BA%)
GD%=!k%
GD%!0+=BA%
GD%!4+=1
GD%+=c%
$(GD%)=""
q%=&C
(BA%-4)
GD%!q%=-1
GE%=c%
g$*|Stop FNEvnts_GetEvntListOffset
k *|Start PROCEvnts_UpdateData
Evnts_UpdateData(p%,wB%,
RA%,F$)
!p%=-1
!p%=RA%
t-!wB%=
shell_HeapBlockExtend(!wB%,
(F$)+1)
$(!wB%+RA%)=F$
RA%+=
(F$)+1
r$=$(!wB%+!p%)
r$<>F$
(F$)<=
$(!wB%+!p%)=F$
-!wB%=
shell_HeapBlockExtend(!wB%,
(F$)+1)
$(!wB%+RA%)=F$
!p%=RA%
RA%+=
(F$)+1
*|Stop PROCEvnts_UpdateData
%*|Start PROCEvnts_DebugListHeader
Evnts_DebugListHeader(dB$,fB$)
$*|Stop PROCEvnts_DebugListHeader
'*|Start PROCshell_AttachClickSelect
shell_AttachClickSelect(e%,h%,B$)
c%,b%,p%,A$
shell_GetWindowIdentifier(e%)
A$="iconbar"
h%=-1
Evnts_GetEvntListOffset(A$,h%,_EVNTS_CLICKSELECT_ANCHOR%,_EVNTS_CLICKSELECT_REC_SIZE%,
"b%=!_EVNTS_CLICKSELECT_ANCHOR%
b%+=c%
$b%=A$
b%!&C=h%
!_EVNTS_CLICKSELECT_DATA%=0
<!_EVNTS_CLICKSELECT_DATA%=
shell_HeapBlockFetch(
(B$)+1)
p%=b%+16
Evnts_UpdateData(p%,_EVNTS_CLICKSELECT_DATA%,_EVNTS_CLICKSELECT_DATAOFFSET%,B$)
shell_IconSetButtonType(e%,h%,_BUTTON_TYPE_CLICK)
&*|Stop PROCshell_AttachClickSelect
,*|Start PROCshell_EvntHandle_ClickSelect
shell_EvntHandle_ClickSelect(_window_handle%,_icon_handle%)
A$,c%,B$,k%,x%,t%,k$
shell_GetWindowIdentifier(_window_handle%)
A$="iconbar"
_icon_handle%=-1
Evnts_GetEvntListOffset(A$,_icon_handle%,_EVNTS_CLICKSELECT_ANCHOR%,_EVNTS_CLICKSELECT_REC_SIZE%,
Evnts_GetEvntListOffset(A$,-1,_EVNTS_CLICKSELECT_ANCHOR%,_EVNTS_CLICKSELECT_REC_SIZE%,
c%>=0
%k%=!_EVNTS_CLICKSELECT_ANCHOR%+c%
JA%=k%!16
x%=!_EVNTS_CLICKSELECT_DATA%
B$=$(x%+JA%)
("FN"+B$+"( _window_handle%, _icon_handle% )")
_icon_handle%=0
_window_handle%=_U%!20
shell_CloseWindow(_window_handle%)
_window_handle%>0
A$<>""
shell_IconIsDraggable(
Evnts_GetLastWindowClicked,
Evnts_GetLastIconClicked)
k$="Icon is draggable"
shell_EvntHandle_UserDragStartDrag(
Evnts_GetLastWindowClicked,
Evnts_GetLastIconClicked)
shell_EvntHandle_DataSaveStartDrag(
Evnts_GetLastWindowClicked,
Evnts_GetLastIconClicked)
shell_HandleSlider(
Evnts_GetLastWindowClicked,
Evnts_GetLastIconClicked)
k$="Icon is not draggable"
shell_EvntHandle_PopupMenu(_window_handle%,_icon_handle%)
shell_EvntHandle_Bumpers(_window_handle%,_icon_handle%)
+*|Stop PROCshell_EvntHandle_ClickSelect
%*|Start PROCshell_ListClickSelect
shell_ListClickSelect
EA%,n%,BA%,f%,OA%,mB%
h%,B$,IA%,q%
"n%=!_EVNTS_CLICKSELECT_ANCHOR%
$BA%=_EVNTS_CLICKSELECT_REC_SIZE%
OA%=n%!4
Evnts_DebugListHeader ("ClickSelect","Window Icon FN")
f%=_EVNTS_HEADER_SIZE%
A$=$(n%+f%)
h%=n%!(f%+&C)
!IA%=!_EVNTS_CLICKSELECT_DATA%
IA%>0
B$=$(IA%+n%!(f%+16))
$f%+=_EVNTS_CLICKSELECT_REC_SIZE%
$*|Stop PROCshell_ListClickSelect
'*|Start PROCshell_AttachClickAdjust
shell_AttachClickAdjust(e%,h%,B$)
c%,b%,A$
$%A$=
shell_GetWindowIdentifier(e%)
A$="iconbar"
' h%=-1
*`c%=
Evnts_GetEvntListOffset(A$,h%,_EVNTS_CLICKADJUST_ANCHOR%,_EVNTS_CLICKADJUST_REC_SIZE%,
+"b%=!_EVNTS_CLICKADJUST_ANCHOR%
b%+=c%
$b%=A$
b%!&C=h%
!_EVNTS_CLICKADJUST_DATA%=0
2<!_EVNTS_CLICKADJUST_DATA%=
shell_HeapBlockFetch(
(B$)+1)
p%=b%+16
Evnts_UpdateData(p%,_EVNTS_CLICKADJUST_DATA%,_EVNTS_CLICKADJUST_DATAOFFSET%,B$)
shell_IconSetButtonType(e%,h%,_BUTTON_TYPE_CLICK)
<&*|Stop PROCshell_AttachClickAdjust
@,*|Start PROCshell_EvntHandle_ClickAdjust
shell_EvntHandle_ClickAdjust(_window_handle%,_icon_handle%)
A$,c%,B$,k%,x%
C2A$=
shell_GetWindowIdentifier(_window_handle%)
A$="iconbar"
_icon_handle%=-1
Ikc%=
Evnts_GetEvntListOffset(A$,_icon_handle%,_EVNTS_CLICKADJUST_ANCHOR%,_EVNTS_CLICKADJUST_REC_SIZE%,
Evnts_GetEvntListOffset(A$,-1,_EVNTS_CLICKADJUST_ANCHOR%,_EVNTS_CLICKADJUST_REC_SIZE%,
c%>=0
M%k%=!_EVNTS_CLICKADJUST_ANCHOR%+c%
JA%=k%!16
O x%=!_EVNTS_CLICKADJUST_DATA%
B$=$(x%+JA%)
Q3j%=
("FN"+B$+"(_window_handle%,_icon_handle%)")
_window_handle%>0
shell_EvntHandle_Bumpers(_window_handle%,_icon_handle%)
Z+*|Stop PROCshell_EvntHandle_ClickAdjust
^%*|Start PROCshell_ListClickAdjust
shell_ListClickAdjust
EA%,n%,BA%,f%,OA%,mB%
h%,B$,IA%,q%
b"n%=!_EVNTS_CLICKADJUST_ANCHOR%
c$BA%=_EVNTS_CLICKADJUST_REC_SIZE%
OA%=n%!4
Evnts_DebugListHeader ("ClickAdjust","Window Icon FN")
f%=_EVNTS_HEADER_SIZE%
A$=$(n%+f%)
h%=n%!(f%+&C)
m!IA%=!_EVNTS_CLICKADJUST_DATA%
IA%>0
B$=$(IA%+n%!(f%+16))
r$f%+=_EVNTS_CLICKADJUST_REC_SIZE%
x$*|Stop PROCshell_ListClickAdjust
*|Start PROCshell_AttachMenu
shell_AttachMenu(e%,h%,s%,fC%,hC%,FD%)
c%,b%,A$
shell_IsWindowStatic(e%)=
shell_OK(
shell_MessageNoArgs("SHELLMSG30"))
shell_GetWindowIdentifier(e%)
)wA$=
shell_MenuList_GetIdentifier(s%)
A$="iconbar"
h%=-1
h%>=0
shell_IconSetButtonType(e%,h%,3)
shell_EvntAdd_PopUpMenu(A$,h%,-1,s%,"","",_POPUP_TYPE_TEXT)
Evnts_GetEvntListOffset(A$,h%,_EVNTS_CLICKMENU_ANCHOR%,_EVNTS_CLICKMENU_REC_SIZE%,
b%=!_EVNTS_CLICKMENU_ANCHOR%
b%+=c%
$b%=A$
b%!&C=h%
b%!20=-1
!_EVNTS_CLICKMENU_DATA%=0
4!_EVNTS_CLICKMENU_DATA%=
shell_HeapBlockFetch(1)
p%=b%+16
Evnts_UpdateData(p%,_EVNTS_CLICKMENU_DATA%,_EVNTS_CLICKMENU_DATAOFFSET%,wA$)
p%=b%+20
Evnts_UpdateData(p%,_EVNTS_CLICKMENU_DATA%,_EVNTS_CLICKMENU_DATAOFFSET%,"")
*|Stop PROCshell_AttachMenu
%*|Start PROCshell_AttachPopupMenu
shell_AttachPopupMenu(a%,NC%,iC%,z%,Y$,V$)
NC%>=0
shell_IconSetButtonType(a%,NC%,3)
shell_EvntAdd_PopUpMenu(
shell_GetWindowIdentifier(a%),NC%,iC%,z%,Y$,V$,_POPUP_TYPE_TEXT)
$*|Stop PROCshell_AttachPopupMenu
+*|Start PROCshell_AttachColourPopupMenu
shell_AttachColourPopupMenu(a%,NC%,iC%,z%,Y$,V$)
NC%>=0
shell_IconSetButtonType(a%,NC%,3)
shell_EvntAdd_PopUpMenu(
shell_GetWindowIdentifier(a%),NC%,iC%,z%,Y$,V$,_POPUP_TYPE_WIMPCOLOUR)
**|Stop PROCshell_AttachColourPopupMenu
**|Start PROCshell_EvntHandle_ClickMenu
shell_EvntHandle_ClickMenu(_window_handle%,_icon_handle%)
A$,c%,k%,hH%,a$,zF%,j%
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%,
c%>=0
#k%=!_EVNTS_CLICKMENU_ANCHOR%+c%
kH%=k%!16
hH%=k%!20
zF%=!_EVNTS_CLICKMENU_DATA%
shell_MenuList_GetSysHandle($(zF%+kH%))
a$=$(zF%+hH%)
_EVNTS_LAST_MENUMAKER_FN$=a$
a$<>""
("FN"+a$+"( "+
_window_handle%+", "+
_icon_handle%+" )")
shell_OpenMenu(_Q%!0,_Q%!4,s%)
_window_handle%>0
shell_EvntHandle_PopupMenu(_window_handle%,_icon_handle%)
)*|Stop PROCshell_EvntHandle_ClickMenu
#*|Start PROCshell_ListClickMenu
shell_ListClickMenu
EA%,n%,BA%,f%,OA%,mB%,s%
h%,q%,a$
n%=!_EVNTS_CLICKMENU_ANCHOR%
"BA%=_EVNTS_CLICKMENU_REC_SIZE%
OA%=n%!4
Evnts_DebugListHeader ("ClickMenu ","Window Icon Menu handle Maker FN")
f%=_EVNTS_HEADER_SIZE%
A$=$(n%+f%)
h%=n%!(f%+&C)
s%=n%!(f%+16)
IA%=!_EVNTS_CLICKMENU_DATA%
IA%>0
a$=$(IA%+n%!(f%+20))
a$="None"
"f%+=_EVNTS_CLICKMENU_REC_SIZE%
"*|Stop PROCshell_ListClickMenu
%*|Start PROCshell_AttachMenuMaker
shell_AttachMenuMaker(e%,h%,s%,a$)
c%,b%,A$,p%
shell_AttachMenu(e%,h%,s%,0,0,0)
'%A$=
shell_GetWindowIdentifier(e%)
A$="iconbar"
) h%=-1
-\c%=
Evnts_GetEvntListOffset(A$,h%,_EVNTS_CLICKMENU_ANCHOR%,_EVNTS_CLICKMENU_REC_SIZE%,
c%=-1
99,"MenuMaker offset not found.."
1 b%=!_EVNTS_CLICKMENU_ANCHOR%
b%+=c%
!_EVNTS_CLICKMENU_DATA%=0
5:!_EVNTS_CLICKMENU_DATA%=
shell_HeapBlockFetch(
(a$)+1)
p%=b%+20
Evnts_UpdateData(p%,_EVNTS_CLICKMENU_DATA%,_EVNTS_CLICKMENU_DATAOFFSET%,a$)
=$*|Stop PROCshell_AttachMenuMaker
I#*|Start PROCshell_AttachHelpTag
shell_AttachHelpTag(e%,h%,W$)
c%,b%,A$
M%A$=
shell_GetWindowIdentifier(e%)
A$="iconbar"
P h%=-1
SXc%=
Evnts_GetEvntListOffset(A$,h%,_EVNTS_HELPTAG_ANCHOR%,_EVNTS_HELPTAG_REC_SIZE%,
b%=!_EVNTS_HELPTAG_ANCHOR%
b%+=c%
$b%=A$
b%!&C=h%
!_EVNTS_HELPTAG_DATA%=0
Z8!_EVNTS_HELPTAG_DATA%=
shell_HeapBlockFetch(
(W$)+1)
p%=b%+16
Evnts_UpdateData(p%,_EVNTS_HELPTAG_DATA%,_EVNTS_HELPTAG_DATAOFFSET%,W$)
b"*|Stop PROCshell_AttachHelpTag
f)*|Start PROCshell_EvntHandle_HelpTags
shell_EvntHandle_HelpTags(_window_handle%,_icon_handle%,
A$,c%,k%,jC%,kC%,oE%
o%,PG%,f%,XJ%,b%
k2A$=
shell_GetWindowIdentifier(_window_handle%)
A$="iconbar"
_icon_handle%=-1
qcc%=
Evnts_GetEvntListOffset(A$,_icon_handle%,_EVNTS_HELPTAG_ANCHOR%,_EVNTS_HELPTAG_REC_SIZE%,
c%>=0
t)W$=
shell_EvntHandle_AttachedHelp(c%)
y!oE%=
shell_HeapBlockFetch(96)
&600F4,1,oE%,_window_handle%,_icon_handle%
o%<>1
_window_handle%<>
shell_GetDynamicWindowHandle
shell_WindowHandleKnown(_window_handle%)
shell_EvntHandle_MenuHelp(oE%)
shell_HeapBlockReturn(oE%)
(*|Stop PROCshell_EvntHandle_HelpTags
"*|Start PROCshell_ListHelpTags
shell_ListHelpTags
EA%,n%,BA%,f%,OA%,mB%,B$
h%,IA%,q%
n%=!_EVNTS_HELPTAG_ANCHOR%
BA%=_EVNTS_HELPTAG_REC_SIZE%
OA%=n%!4
Evnts_DebugListHeader ("HelpTag ","Window Icon Help tag")
f%=_EVNTS_HEADER_SIZE%
A$=$(n%+f%)
h%=n%!(f%+&C)
IA%=!_EVNTS_HELPTAG_DATA%
IA%>0
B$=$(IA%+n%!(f%+16))
f%+=_EVNTS_HELPTAG_REC_SIZE%
!*|Stop PROCshell_ListHelpTags
'*|Start PROCshell_AttachMenuHelpTag
shell_AttachMenuHelpTag(wA$,MI%,M$)
c%,b%,p%
Evnts_GetEvntListOffset("menu",MI%,_EVNTS_MENUHELPTAG_ANCHOR%,_EVNTS_MENUHELPTAG_REC_SIZE%,
"b%=!_EVNTS_MENUHELPTAG_ANCHOR%
b%+=c%
$b%="menu"
b%!&C=MI%
!_EVNTS_MENUHELPTAG_DATA%=0
<!_EVNTS_MENUHELPTAG_DATA%=
shell_HeapBlockFetch(
(M$)+1)
p%=b%+16
Evnts_UpdateData(p%,_EVNTS_MENUHELPTAG_DATA%,_EVNTS_MENUHELPTAG_DATAOFFSET%,M$)
&*|Stop PROCshell_AttachMenuHelpTag
*|Start PROCshell_AttachPane
shell_AttachPane(e%,
xD%,o%,BB%,CB%)
c%,b%,zA%,A$,b$,lC%
shell_GetWindowIdentifier(e%)
shell_GetWindowIdentifier(xD%)
zA%=0
"lC%=
shell_WindowGetFlags(xD%)
1<<5)=0
shell_WindowToggleFlags(xD%,1<<5)
1<<1)
shell_WindowToggleFlags(xD%,1<<1)
Evnts_GetEvntListOffset(A$,zA%,_EVNTS_PANES_ANCHOR%,_EVNTS_PANES_REC_SIZE%,
zA%+=1
Evnts_GetEvntListOffset(A$,zA%,_EVNTS_PANES_ANCHOR%,_EVNTS_PANES_REC_SIZE%,
b%=!_EVNTS_PANES_ANCHOR%
b%+=c%
$b%=A$
b%!&C=zA%
b%!20=o%
b%!24=BB%
b%!28=CB%
!_EVNTS_PANES_DATA%=0
6!_EVNTS_PANES_DATA%=
shell_HeapBlockFetch(
(b$)+1)
p%=b%+16
Evnts_UpdateData(p%,_EVNTS_PANES_DATA%,_EVNTS_PANES_DATAOFFSET%,b$)
*|Stop PROCshell_AttachPane
*|Start PROCshell_ListPanes
shell_ListPanes
EA%,n%,BA%,f%,OA%,b$
IA%,q%,cB$,JB$
n%=!_EVNTS_PANES_ANCHOR%
BA%=_EVNTS_PANES_REC_SIZE%
OA%=n%!4
Evnts_DebugListHeader ("Pane ","Window Pane name X Pos Y Pos")
f%=_EVNTS_HEADER_SIZE%
A$=$(n%+f%)
IA%=!_EVNTS_PANES_DATA%
IA%>0
b$=$(IA%+n%!(f%+16))
5cB$=
shell_StringPadTrailing(
(n%!(f%+24))," ",8)
5JB$=
shell_StringPadTrailing(
(n%!(f%+28))," ",6)
f%+=_EVNTS_PANES_REC_SIZE%
*|Stop PROCshell_ListPanes
/(*|Start PROCshell_EvntAdd_WindowOpen
shell_EvntAdd_WindowOpen(A$,B$)
c%,b%
25c%=
Evnts_GetEvntListOffset(A$,-1,"WINDOWOPEN",
3!b%=!_EVNTS_WINDOWOPEN_ANCHOR%
b%+=c%
$b%=A$
b%!&C=-1
!_EVNTS_WINDOWOPEN_DATA%=0
9;!_EVNTS_WINDOWOPEN_DATA%=
shell_HeapBlockFetch(
(B$)+1)
p%=b%+16
Evnts_UpdateData(p%,_EVNTS_WINDOWOPEN_DATA%,_EVNTS_WINDOWOPEN_DATAOFFSET%,B$)
A'*|Stop PROCshell_EvntAdd_WindowOpen
E *|Start PROCshell_OpenWindow
shell_OpenWindow(_window_handle%,cF%,JD%)
c%,UH%,QB%,oA%,HB%
mC%,zG%,TH%
A$,k%,JA%,x%
B$,j%,zA%,rE%,lC%,nC%
LD%,HA%,MD%
M2A$=
shell_GetWindowIdentifier(_window_handle%)
QB%=_Q%!28
P^c%=
Evnts_GetEvntListOffset(A$,-1,_EVNTS_WINDOWOPEN_ANCHOR%,_EVNTS_WINDOWOPEN_REC_SIZE%,
c%>=0
S$k%=!_EVNTS_WINDOWOPEN_ANCHOR%+c%
JA%=k%!16
x%=!_EVNTS_WINDOWOPEN_DATA%
B$=$(x%+JA%)
("FN"+B$+"("+A$+")")
Z mC%=
[,_WINDOWS_GETSTATE_BLK%!0=_window_handle%
&400CB,,_WINDOWS_GETSTATE_BLK%
(_WINDOWS_GETSTATE_BLK%!32
&80000)=&80000
&400CF,,_WINDOWS_GETPINFO_BLK%
_Q%!0=_window_handle%
&400CB,,_Q%
&400C5,,_Q%
h rE%=
iUc%=
Evnts_GetEvntListOffset(A$,zA%,_EVNTS_PANES_ANCHOR%,_EVNTS_PANES_REC_SIZE%,
c%>=0
_Q%!0=_window_handle%
JD%>0
QB%=JD%
QB%=-1
QB%=_Q%!28
&400C5,,_Q%
&400CB,,_Q%
&400C6,,_Q%
| zA%=0
Evnts_GetEvntListOffset(A$,zA%,_EVNTS_PANES_ANCHOR%,_EVNTS_PANES_REC_SIZE%,
c%=GE%
k%=!_EVNTS_PANES_ANCHOR%+c%
wD%=k%!16
x%=!_EVNTS_PANES_DATA%
b$=$(x%+wD%)
lC%=k%!20
nC%=k%!24
LD%=k%!28
&HA%=
shell_GetWindowHandleList(b$)
MD%=!HA%
_EVNTS_PANE_BLK%!0=MD%
UH%=0
UH%=_EVNTS_PANE_BLK%!0
zG%=_EVNTS_PANE_BLK%!0
&400CB,,_EVNTS_PANE_BLK%
_WINDOWS_GETPINFO_BLK%!16=-9
_WINDOWS_GETPINFO_BLK%!16>-5
.oA%=_EVNTS_PANE_BLK%!16-_EVNTS_PANE_BLK%!8
.HB%=_EVNTS_PANE_BLK%!&C-_EVNTS_PANE_BLK%!4
_EVNTS_PANE_BLK%!4=_Q%!4+nC%
._EVNTS_PANE_BLK%!&C=_EVNTS_PANE_BLK%!4+HB%
"_EVNTS_PANE_BLK%!16=_Q%!16+LD%
._EVNTS_PANE_BLK%!8=_EVNTS_PANE_BLK%!16-oA%
.oA%=_EVNTS_PANE_BLK%!16-_EVNTS_PANE_BLK%!8
HB%=_Q%!&C-_Q%!4
_EVNTS_PANE_BLK%!4=_Q%!4+nC%
_EVNTS_PANE_BLK%!&C=_Q%!&C
"_EVNTS_PANE_BLK%!16=_Q%!16+LD%
._EVNTS_PANE_BLK%!8=_EVNTS_PANE_BLK%!16-oA%
oA%=_Q%!16-_Q%!8
.HB%=_EVNTS_PANE_BLK%!&C-_EVNTS_PANE_BLK%!4
_EVNTS_PANE_BLK%!4=_Q%!4+nC%
._EVNTS_PANE_BLK%!&C=_EVNTS_PANE_BLK%!4+HB%
_EVNTS_PANE_BLK%!16=_Q%!16
_EVNTS_PANE_BLK%!8=_Q%!8+LD%
.oA%=_EVNTS_PANE_BLK%!16-_EVNTS_PANE_BLK%!8
HB%=_Q%!&C-_Q%!4
_EVNTS_PANE_BLK%!4=_Q%!4+nC%
_EVNTS_PANE_BLK%!&C=_Q%!&C
%_EVNTS_PANE_BLK%!16=_Q%!8+oA%+LD%
._EVNTS_PANE_BLK%!8=_EVNTS_PANE_BLK%!16+oA%
oA%=_Q%!16-_Q%!8
.HB%=_EVNTS_PANE_BLK%!&C-_EVNTS_PANE_BLK%!4
%_EVNTS_PANE_BLK%!4=_Q%!&C-HB%+nC%
._EVNTS_PANE_BLK%!&C=_EVNTS_PANE_BLK%!4+HB%
_EVNTS_PANE_BLK%!16=_Q%!16
_EVNTS_PANE_BLK%!8=_Q%!8
zA%=0
_EVNTS_PANE_BLK%!28=QB%
_EVNTS_PANE_BLK%!28=TH%
&400C5,,_EVNTS_PANE_BLK%
TH%=_EVNTS_PANE_BLK%!0
zA%+=1
_Q%!28=zG%
&400C5,,_Q%
_Q%!0=_window_handle%
&400CB,,_Q%
QB%=-2
_Q%!28=-2
JD%=-1
_Q%!28=-1
&400C5,,_Q%
*|Stop PROCshell_OpenWindow
)*|Start PROCshell_EvntAdd_WindowClose
shell_EvntAdd_WindowClose(A$,B$)
c%,b%
Evnts_GetEvntListOffset(A$,-1,_EVNTS_WINDOWCLOSE_ANCHOR%,_EVNTS_WINDOWCLOSE_REC_SIZE%,
"b%=!_EVNTS_WINDOWCLOSE_ANCHOR%
b%+=c%
$b%=A$
b%!&C=-1
!_EVNTS_WINDOWCLOSE_DATA%=0
<!_EVNTS_WINDOWCLOSE_DATA%=
shell_HeapBlockFetch(
(B$)+1)
p%=b%+16
Evnts_UpdateData(p%,_EVNTS_WINDOWCLOSE_DATA%,_EVNTS_WINDOWCLOSE_DATAOFFSET%,B$)
(*|Stop PROCshell_EvntAdd_WindowClose
,*|Start PROCshell_EvntHandle_WindowClose
shell_EvntHandle_WindowOpen(_window_handle%)
c%,j%,k%,JA%,x%
Evnts_GetEvntListOffset(A$,-1,"WINDOWCLOSE",
c%>=0
%k%=!_EVNTS_WINDOWCLOSE_ANCHOR%+c%
JA%=k%!16
x%=!_EVNTS_WINDOWCLOSE_DATA%
B$=$(x%+JA%)
("FN"+B$+"(_window_handle%)")
+*|Stop PROCshell_EvntHandle_WindowClose
$ *|Start PROCshell_AttachDrag
shell_AttachDrag(e%,h%,B$)
c%,b%,p%,A$
(%A$=
shell_GetWindowIdentifier(e%)
)/c%=
Evnts_GetEvntListOffset(A$,h%,"DRAG",
b%=!_EVNTS_DRAG_ANCHOR%
b%+=c%
$b%=A$
b%!&C=h%
!_EVNTS_DRAG_DATA%=0
05!_EVNTS_DRAG_DATA%=
shell_HeapBlockFetch(
(B$)+1)
p%=b%+16
Evnts_UpdateData(p%,_EVNTS_DRAG_DATA%,_EVNTS_DRAG_DATAOFFSET%,B$)
*|Stop PROCshell_AttachDrag
C&*|Start PROCshell_AttachUserRedraw
shell_AttachUserRedraw(
e%,B$)
c%,b%,p%,d%,eA%
G d%=
shell_HeapBlockFetch(36)
!d%=e%
&400CB,,d%
eA%=d%!32
shell_HeapBlockReturn(d%)
shell_Tracef0("AttachUserRedraw:flag% = &"+
~eA%)
1<<4)
shell_Tracef0("AttachUserRedraw:auto redraw set!!")
shell_WindowToggleFlags(e%,1<<4)
R%A$=
shell_GetWindowIdentifier(e%)
shell_Tracef0("AttachUserRedraw:window name is : "+A$)
TVc%=
Evnts_GetEvntListOffset(A$,-1,_EVNTS_REDRAW_ANCHOR%,_EVNTS_REDRAW_REC_SIZE%,
b%=!_EVNTS_REDRAW_ANCHOR%
b%+=c%
$b%=A$
b%!&C=-1
!_EVNTS_REDRAW_DATA%=0
[7!_EVNTS_REDRAW_DATA%=
shell_HeapBlockFetch(
(B$)+1)
p%=b%+16
Evnts_UpdateData(p%,_EVNTS_REDRAW_DATA%,_EVNTS_REDRAW_DATAOFFSET%,B$)
c%*|Stop PROCshell_AttachUserRedraw
g'*|Start PROCshell_EvntHandle_Redraw
shell_EvntHandle_Redraw(_window_handle%,d%,XA%,aA%)
A$,c%,B$,k%,x%,j%
j2A$=
shell_GetWindowIdentifier(_window_handle%)
kVc%=
Evnts_GetEvntListOffset(A$,-1,_EVNTS_REDRAW_ANCHOR%,_EVNTS_REDRAW_REC_SIZE%,
c%>=0
n k%=!_EVNTS_REDRAW_ANCHOR%+c%
JA%=k%!16
x%=!_EVNTS_REDRAW_DATA%
B$=$(x%+JA%)
B$<>""
u/j%=
("FN"+B$+"("+
d%+","+
XA%+","+
aA%+")")
{&*|Stop PROCshell_EvntHandle_Redraw
*|Start PROCshell_ListRedraw
shell_ListRedraw
EA%,n%,BA%,f%,OA%,B$,A$
IA%,q%
n%=!_EVNTS_REDRAW_ANCHOR%
BA%=_EVNTS_REDRAW_REC_SIZE%
OA%=n%!4
Evnts_DebugListHeader ("Redraw ","Window User FN")
f%=_EVNTS_HEADER_SIZE%
A$=$(n%+f%)
IA%=!_EVNTS_REDRAW_DATA%
IA%>0
B$=$(IA%+n%!(f%+16))
f%+=_EVNTS_REDRAW_REC_SIZE%
*|Stop PROCshell_ListRedraw
%*|Start PROCshell_AttachIconWatch
shell_AttachIconWatch(e%,h%,B$)
c%,b%,p%,A$,c$
shell_GetWindowIdentifier(e%)
Evnts_GetEvntListOffset(A$,h%,_EVNTS_ICONWATCH_ANCHOR%,_EVNTS_ICONWATCH_REC_SIZE%,
b%=!_EVNTS_ICONWATCH_ANCHOR%
b%+=c%
$b%=A$
b%!&C=h%
!_EVNTS_ICONWATCH_DATA%=0
:!_EVNTS_ICONWATCH_DATA%=
shell_HeapBlockFetch(
(B$)+1)
p%=b%+16
Evnts_UpdateData(p%,_EVNTS_ICONWATCH_DATA%,_EVNTS_ICONWATCH_DATAOFFSET%,B$)
shell_IconGetData(e%,h%)
p%=b%+20
Evnts_UpdateData(p%,_EVNTS_ICONWATCH_DATA%,_EVNTS_ICONWATCH_DATAOFFSET%,c$)
$*|Stop PROCshell_AttachIconWatch
**|Start PROCshell_EvntHandle_IconWatch
shell_EvntHandle_IconWatch
k%,BA%,VA%,f%,q%,h%,A$,lG%
HA%,e%,c$,AB$,B$,JA%
x%,p%
k%=!_EVNTS_ICONWATCH_ANCHOR%
"BA%=_EVNTS_ICONWATCH_REC_SIZE%
VA%=k%!4
f%=_EVNTS_HEADER_SIZE%
A$=$(k%+f%)
h%=k%!(f%+&C)
JA%=k%!(f%+16)
x%=!_EVNTS_ICONWATCH_DATA%
B$=$(x%+JA%)
lG%=!(k%+f%+20)
p%=k%+f%+20
AB$=$(x%+lG%)
&HA%=
shell_GetWindowHandleList(A$)
e%=!HA%
shell_WindowIsOpen(e%)=
shell_IconGetData(e%,h%)
c$=""
c$="0"
B$<>""
c$<>AB$
("FN"+B$+"( "+
(34)+c$+
(34)+" )")
Evnts_UpdateData(p%,_EVNTS_ICONWATCH_DATA%,_EVNTS_ICONWATCH_DATAOFFSET%,c$)
"f%+=_EVNTS_ICONWATCH_REC_SIZE%
)*|Stop PROCshell_EvntHandle_IconWatch
#*|Start PROCshell_ListIconWatch
shell_ListIconWatch
EA%,n%,BA%,f%,OA%,B$,A$
IA%,q%
n%=!_EVNTS_ICONWATCH_ANCHOR%
"BA%=_EVNTS_ICONWATCH_REC_SIZE%
OA%=n%!4
Evnts_DebugListHeader ("IconWatch ","Window User FN")
f%=_EVNTS_HEADER_SIZE%
A$=$(n%+f%)
IA%=!_EVNTS_ICONWATCH_DATA%
IA%>0
B$=$(IA%+n%!(f%+16))
"f%+=_EVNTS_ICONWATCH_REC_SIZE%
"*|Stop PROCshell_ListIconWatch
$*|Start PROCshell_AttachUserDrag
shell_AttachUserDrag(e%,h%,B$)
c%,b%,p%,A$,c$
shell_GetWindowIdentifier(e%)
Evnts_GetEvntListOffset(A$,h%,_EVNTS_DRAG_ANCHOR%,_EVNTS_DRAG_REC_SIZE%,
b%=!_EVNTS_DRAG_ANCHOR%
b%+=c%
$b%=A$
b%!&C=h%
!_EVNTS_DRAG_DATA%=0
#5!_EVNTS_DRAG_DATA%=
shell_HeapBlockFetch(
(B$)+1)
p%=b%+16
Evnts_UpdateData(p%,_EVNTS_DRAG_DATA%,_EVNTS_DRAG_DATAOFFSET%,B$)
+#*|Stop PROCshell_AttachUserDrag
/2*|Start PROCshell_EvntHandle_UserDragStartDrag
shell_EvntHandle_UserDragStartDrag(e%,h%)
JA%,x%,A$,c%
4%A$=
shell_GetWindowIdentifier(e%)
5Rc%=
Evnts_GetEvntListOffset(A$,h%,_EVNTS_DRAG_ANCHOR%,_EVNTS_DRAG_REC_SIZE%,
c%>=0
shell_IconDragBox2(e%,h%)
;$_m_evnts_DragIconStartWindow%=e%
<"_m_evnts_DragIconStartIcon%=h%
shell_IconIsWritable(e%,h%)
shell_IconDragBox2(e%,h%)
D$_m_evnts_DragIconStartWindow%=e%
E"_m_evnts_DragIconStartIcon%=h%
F$_m_evnts_DragIconWritableDrag%=
L1*|Stop PROCshell_EvntHandle_UserDragStartDrag
P,*|Start PROCshell_EvntHandle_UserDragEnd
shell_EvntHandle_UserDragEnd
bA%,A$,c%,k%,JA%,x%
j%,B$,NA$,oA$
V@A$=
shell_GetWindowIdentifier(_m_evnts_DragIconStartWindow%)
Wkc%=
Evnts_GetEvntListOffset(A$,_m_evnts_DragIconStartIcon%,_EVNTS_DRAG_ANCHOR%,_EVNTS_DRAG_REC_SIZE%,
[!bA%=
shell_HeapBlockFetch(30)
&400CF,,bA%
_m_evnts_MouseXCoord%=bA%!0
_m_evnts_MouseYCoord%=bA%!4
_%_m_evnts_DestWindowHandle%=bA%!&C
`#_m_evnts_DestIconHandle%=bA%!16
shell_HeapBlockReturn(bA%)
c%>=0
k%=!_EVNTS_DRAG_ANCHOR%+c%
JA%=k%!16
x%=!_EVNTS_DRAG_DATA%
B$=$(x%+JA%)
("FN"+B$+"("+
_m_evnts_DestTaskHandle%+","+
_m_evnts_DestWindowHandle%+","+
_m_evnts_DestIconHandle%+","+
_m_evnts_MouseXCoord%+","+
_m_evnts_MouseYCoord%+")")
_m_evnts_DragIconWritableDrag%=
k$_m_evnts_DragIconWritableDrag%=
shell_IconIsWritable(_m_evnts_DestWindowHandle%,_m_evnts_DestIconHandle%)
shell_WindowHandleKnown(_m_evnts_DestWindowHandle%)
mUNA$=
shell_IconGetData(_m_evnts_DragIconStartWindow%,_m_evnts_DragIconStartIcon%)
nOoA$=
shell_IconGetData(_m_evnts_DestWindowHandle%,_m_evnts_DestIconHandle%)
shell_IconPutData(_m_evnts_DestWindowHandle%,_m_evnts_DestIconHandle%,NA$,
shell_IconPutData(_m_evnts_DestWindowHandle%,_m_evnts_DestIconHandle%,oA$+NA$,
z+*|Stop PROCshell_EvntHandle_UserDragEnd
'*|Start PROCshell_EvntAdd_PopUpMenu
shell_EvntAdd_PopUpMenu(A$,xB%,WA%,s%,R$,V$,yD%)
c%,b%
Evnts_GetEvntListOffset(A$,xB%,_EVNTS_POPUPS_ANCHOR%,_EVNTS_POPUPS_REC_SIZE%,
b%=!_EVNTS_POPUPS_ANCHOR%
b%+=c%
$b%=A$
b%!&C=xB%
b%!20=WA%
b%!24=yD%
b%!28=s%
R$<>""
!_EVNTS_POPUPS_DATA%=0
7!_EVNTS_POPUPS_DATA%=
shell_HeapBlockFetch(
(R$)+1)
p%=b%+16
Evnts_UpdateData(p%,_EVNTS_POPUPS_DATA%,_EVNTS_POPUPS_DATAOFFSET%,R$)
b%!16=-1
V$<>""
!_EVNTS_POPUPS_DATA%=0
7!_EVNTS_POPUPS_DATA%=
shell_HeapBlockFetch(
(V$)+1)
p%=b%+32
Evnts_UpdateData(p%,_EVNTS_POPUPS_DATA%,_EVNTS_POPUPS_DATAOFFSET%,V$)
b%!32=-1
&*|Stop PROCshell_EvntAdd_PopUpMenu
**|Start PROCshell_EvntHandle_PopupMenu
shell_EvntHandle_PopupMenu(_window_handle%,_icon_handle%)
A$,c%,x%,RA%,k%,OC%,s%
EK%,R$,V$,j%
shell_GetWindowIdentifier(_window_handle%)
Evnts_GetEvntListOffset(A$,_icon_handle%,_EVNTS_POPUPS_ANCHOR%,_EVNTS_POPUPS_REC_SIZE%,
c%>=0
k%=!_EVNTS_POPUPS_ANCHOR%+c%
RA%=k%!16
x%=!_EVNTS_POPUPS_DATA%
xB%=k%!&C
WA%=k%!20
OC%=k%!24
s%=k%!28
RA%>=0
R$=$(x%+RA%)
RA%=k%!32
RA%>=0
V$=$(x%+RA%)
s%=_POPUP_TYPE_FONTMENU
("FN"+V$+"("+
shell_FontMenu_GetHandle)+")")
("FN"+V$+"("+
(s%)+")")
_POPUP_TYPE_TEXT
shell_HandleMenuOpen(_Q%,s%,_window_handle%,_icon_handle%,
_POPUP_TYPE_WIMPCOLOUR
shell_HandleMenuOpen(_Q%,s%,_window_handle%,_icon_handle%,
_POPUP_TYPE_COLOUR24
shell_ColourPickerOpen(_window_handle%,WA%,xB%,R$,V$)
_POPUP_TYPE_FONTMENU
shell_FontMenu_ShowMenu(_Q%,s%,_window_handle%,_icon_handle%,
_POPUP_TYPE_FONTPICK
shell_FontPickerOpen(_window_handle%,WA%,xB%,R$,V$)
_POPUP_TYPE_DATEPICK
shell_DatePickerOpen(_window_handle%,WA%,xB%,R$)
99,"Unknown popup type detected!"
)*|Stop PROCshell_EvntHandle_PopupMenu
3*|Start PROCshell_EvntHandle_PopupMenuSelection
shell_EvntHandle_PopupMenuSelection(e%,h%,nB%)
_item_text$,A$,c%,k%,RA%,x%
xB%,WA%,OC%,s%,t%,Y$
shell_GetWindowIdentifier(e%)
Evnts_GetEvntListOffset(A$,h%,_EVNTS_POPUPS_ANCHOR%,_EVNTS_POPUPS_REC_SIZE%,
c%>=0
k%=!_EVNTS_POPUPS_ANCHOR%+c%
RA%=k%!16
x%=!_EVNTS_POPUPS_DATA%
xB%=k%!&C
WA%=k%!20
OC%=k%!24
s%=k%!28
OC%=_POPUP_TYPE_FONTMENU
_item_text$=""
/_item_text$=
shell_MenuGetItemText(s%,!nB%)
RA%<>-1
Y$=$(x%+RA%)
("FN"+Y$+"("+
e%+","+
WA%+",_item_text$)")
t%<>0
RA%=-1
WA%>=0
_POPUP_TYPE_TEXT
shell_IconPutData(e%,WA%,_item_text$,
_POPUP_TYPE_WIMPCOLOUR
shell_IconSetBGColour(e%,WA%,nB%)
99,"Unknown Popup type in EvntHandle_PopupMenuSelection (type was "+
OC%+")"
B2*|Stop PROCshell_EvntHandle_PopupMenuSelection
F *|Start PROCshell_ListPopUps
shell_ListPopUps
EA%,n%,BA%,f%,OA%,mB%
h%,B$,IA%,q%
n%=!_EVNTS_POPUPS_ANCHOR%
BA%=_EVNTS_POPUPS_REC_SIZE%
OA%=n%!4
Evnts_DebugListHeader ("PopUps","Window Icon FN")
f%=_EVNTS_HEADER_SIZE%
A$=$(n%+f%)
h%=n%!(f%+&C)
IA%=!_EVNTS_POPUPS_DATA%
IA%>0
B$=$(IA%+n%!(f%+16))
f%+=_EVNTS_POPUPS_REC_SIZE%
*|Stop PROCshell_ListPopUps
l-*|Start PROCshell_EvntSelectButtonPressed
shell_EvntSelectButtonPressed(e%,h%,UI%)
shell_EvntHandle_ClickSelect(e%,h%)
s,*|Stop PROCshell_EvntSelectButtonPressed
w-*|Start PROCshell_EvntAdjustButtonPressed
shell_EvntAdjustButtonPressed(e%,h%)
shell_EvntHandle_ClickAdjust(e%,h%)
~,*|Stop PROCshell_EvntAdjustButtonPressed
+*|Start PROCshell_EvntMenuButtonPressed
shell_EvntMenuButtonPressed(e%,h%,UI%)
shell_EvntHandle_ClickMenu(e%,h%)
**|Stop PROCshell_EvntMenuButtonPressed
'*|Start PROCshell_EvntSave_AllEvnts
shell_EvntSave_AllEvnts(PA$)
(PA$)
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%)
&*|Stop PROCshell_EvntSave_AllEvnts
*|Start PROCEvnts_SaveEvnt
Evnts_SaveEvnt(u%,OD%,PD%,RA%)
b%,cA%,vA%
b%=!OD%
vA%=!PD%
!HE%=RA%
#u%,0
cA%=!b%
#u%,1
&C,2,u%,b%,cA%+_EVNTS_HEADER_SIZE%
&C,2,u%,HE%,4
&C,2,u%,vA%,RA%
*|Stop PROCEvnts_SaveEvnt
'*|Start PROCshell_EvntLoad_AllEvnts
shell_EvntLoad_AllEvnts(PA$)
(PA$)
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%)
&*|Stop PROCshell_EvntLoad_AllEvnts
*|Start PROCEvnts_LoadEvnt
Evnts_LoadEvnt(u%,OD%,PD%,
HH%,cA%,b%,cA%,kB%,vA%
!OD%<>0
shell_HeapBlockReturn(!OD%)
!PD%<>0
shell_HeapBlockReturn(!PD%)
HH%=1
shell_HeapBlockFetch(_EVNTS_HEADER_SIZE%)
&C,4,u%,b%,_EVNTS_HEADER_SIZE%
cA%=!b%
shell_HeapBlockExtend(b%,cA%)
&C,4,u%,b%+_EVNTS_HEADER_SIZE%,cA%
!OD%=b%
&C,4,u%,HE%,4
kB%=!HE%
kB%>0
"vA%=
shell_HeapBlockFetch(kB%)
&C,4,u%,vA%,kB%
!PD%=vA%
RA%=kB%
*|Stop PROCEvnts_LoadEvnt
+*|Start PROCshell_EvntHandle_MenuSelect
shell_EvntHandle_MenuSelect(PC%)
qF%,AE%,bA%,o%
!bA%=
shell_HeapBlockFetch(20)
&400CF,,bA%
"_EVNTS_LAST_MOUSEBUTTON%=bA%!8
shell_HeapBlockReturn(bA%)
shell_GetLastIconClicked>=0
shell_EvntHandle_PopupSelect(PC%)
"AE%=
shell_HeapBlockFetch(256)
&65BC4,_m_Menu_HandleLastOpened%,PC%
qF%,,AE%;o%
o%<>1
Evnts_CallMenuHandler(qF%,AE%)
shell_HeapBlockReturn(AE%)
shell_GetLastMouseButton=_MSE_ADJUSTBUT
_EVNTS_LAST_MENUMAKER_FN$<>""
"=j%=
("FN"+_EVNTS_LAST_MENUMAKER_FN$+"( _U%!52, _U%!56 )")
shell_MenuOpenLast
***|Stop PROCshell_EvntHandle_MenuSelect
.,*|Start PROCshell_EvntHandle_PopupSelect
shell_EvntHandle_PopupSelect(PC%)
A$,c%,k%,q$,s%,rF%
vA%,BE%,t%,Y$
WA%,TI%,SH%
5>A$=
shell_GetWindowIdentifier(
shell_GetLastWindowClicked)
6mc%=
Evnts_GetEvntListOffset(A$,
shell_GetLastIconClicked,_EVNTS_POPUPS_ANCHOR%,_EVNTS_POPUPS_REC_SIZE%,
c%>=0
8 k%=!_EVNTS_POPUPS_ANCHOR%+c%
rF%=k%!24
s%=k%!28
vA%=!_EVNTS_POPUPS_DATA%
BE%=k%!16
WA%=k%!20
PC%!4<>-1
s%<>_POPUP_TYPE_FONTMENU
99,"Unable to handle popup with submenus!"
s%=_POPUP_TYPE_FONTMENU
D"q$=
shell_FontMenu_Decode(PC%)
F&q$=
shell_MenuGetItemText(s%,!PC%)
BE%>-1
Y$=$(vA%+BE%)
q$<>""
OTt%=
("FN"+Y$+"("+
shell_GetLastWindowClicked)+","+
WA%+","+
(34)+q$+
(34)+")")
t%<>0
BE%=-1
WA%>=0
_POPUP_TYPE_TEXT
shell_IconPutData(
shell_GetLastWindowClicked,WA%,q$,
_POPUP_TYPE_WIMPCOLOUR
shell_IconSetBGColour(
shell_GetLastWindowClicked,WA%,!PC%)
_POPUP_TYPE_FONTMENU
q$<>""
shell_IconPutData(
shell_GetLastWindowClicked,WA%,q$,
99,"Unknown Popup type in PROCshell_EvntHandle_PopupSelect (type was "+
rF%+")"
j+*|Stop PROCshell_EvntHandle_PopupSelect
n%*|Start PROCEvnts_CallMenuHandler
Evnts_CallMenuHandler(y%,VI%)
("FN"+$y%+"("+
VI%+")")
u$*|Stop PROCEvnts_CallMenuHandler
x!*|Start FNEvnts_GetHeaderSize
Evnts_GetHeaderSize
=_EVNTS_HEADER_SIZE%
| *|Stop FNEvnts_GetHeaderSize
&*|Start FNEvnts_GetLastMouseButton
Evnts_GetLastMouseButton
=_EVNTS_LAST_MOUSEBUTTON%
%*|Stop FNEvnts_GetLastMouseButton
&*|Start FNEvnts_GetLastIconClicked
Evnts_GetLastIconClicked
=_EVNTS_LAST_ICONCLICKED%
%*|Stop FNEvnts_GetLastIconClicked
(*|Start FNEvnts_GetLastWindowClicked
Evnts_GetLastWindowClicked
=_EVNTS_LAST_WINDOWCLICKED%
'*|Stop FNEvnts_GetLastWindowClicked
$*|Start FNEvnts_GetLastMouseXPos
Evnts_GetLastMouseXPos
=_EVNTS_LAST_MOUSEXPOS%
#*|Stop FNEvnts_GetLastMouseXPos
$*|Start FNEvnts_GetLastMouseYPos
Evnts_GetLastMouseYPos
=_EVNTS_LAST_MOUSEYPOS%
#*|Stop FNEvnts_GetLastMouseYPos
*|Start PROCEvnts_DeleteData
Evnts_DeleteData(A$,h%,yB%,vA%,BA%,RA%,
r$,p%,eB$,b%,c%
pC%,qC%,rC%,zB%,f%,q%,VA%
A$="IconBar"
h%=-1
Evnts_GetEvntListOffset(A$,h%,yB%,BA%,
b%=!yB%
VA%=b%!4
b%+=c%
p%=b%+RA%
pC%=!p%
!p%=-1
pC%=-1
r$=$(!vA%+pC%)
qC%=(!vA%+pC%)+
(r$)+1
rC%=!vA%+pC%
zB%=qC%-rC%
&400F1,_U%!&94,qC%,_U%!&94,rC%,zB%
dI%-=zB%
*!vA%=
shell_HeapBlockExtend(!vA%,-zB%)
b%=!yB%
f%=_EVNTS_HEADER_SIZE%+RA%
b%!f%>pC%
b%!f%-=zB%
f%+=BA%
*|Stop PROCEvnts_DeleteData
*|Start PROCEvnts_DeleteEvnt
Evnts_DeleteEvnt(A$,h%,yB%,vA%,BA%)
c%,b%,VA%,qC%,rC%,VA%
Evnts_GetEvntListOffset(A$,h%,yB%,BA%,
b%=!yB%
VA%=b%!4
VA%>0
b%!0-=BA%
b%!4-=1
b%+=c%
qC%=b%+BA%
rC%=b%
zB%=BA%
VA%>1
&400F1,_U%!&94,qC%,_U%!&94,rC%,zB%
*!yB%=
shell_HeapBlockExtend(!yB%,-zB%)
*|Stop PROCEvnts_DeleteEvnt
+*|Start FNshell_EvntHandle_AttachedHelp
shell_EvntHandle_AttachedHelp(c%)
k%,kC%,jC%,W$
!k%=!_EVNTS_HELPTAG_ANCHOR%+c%
kC%=k%!16
jC%=!_EVNTS_HELPTAG_DATA%
W$=$(jC%+kC%)
**|Stop FNshell_EvntHandle_AttachedHelp
'*|Start FNshell_EvntHandle_MenuHelp
shell_EvntHandle_MenuHelp(EG%)
W$,PG%,f%,PA%,c%
kC%,jC%
shell_MenuLastHandle
EG%!f%<>-1
XJ%=EG%!f%
! f%+=4
$)PA%=
shell_MenuGetItemHandle(PG%,EG%)
PA%<>0
(ec%=
Evnts_GetEvntListOffset("menu",PA%,_EVNTS_MENUHELPTAG_ANCHOR%,_EVNTS_MENUHELPTAG_REC_SIZE%,
c%>=0
*%k%=!_EVNTS_MENUHELPTAG_ANCHOR%+c%
kC%=k%!16
,!jC%=!_EVNTS_MENUHELPTAG_DATA%
W$=$(jC%+kC%)
1 W$=""
6&*|Stop FNshell_EvntHandle_MenuHelp
!*|Start FN_shell_Windows_Init
_shell_Windows_Init
_WINDOWS_GETSTATE_BLK%36
_WINDOWS_GETWINFO_BLK%88
_WINDOWS_GETPINFO_BLK%20
_WINDOWS_SETEXTENT_BLK%20
CK%=-1
lJ%=-1
*|Stop FN_shell_Windows_Init
%*|Start FNshell_WindowHasTitleBar
shell_WindowHasTitleBar(a%)
shell_WindowGetFlags(a%)
1<<26)
$*|Stop FNshell_WindowHasTitleBar
$*|Start FNshell_WindowIsMoveable
shell_WindowIsMoveable(a%)
shell_WindowGetFlags(a%)
1<<1)
#*|Stop FNshell_WindowIsMoveable
!*|Start FNshell_WindowIsAPane
shell_WindowIsAPane(a%)
shell_WindowGetFlags(a%)
1<<5)
*|Stop FNshell_WindowIsAPane
&*|Start FNshell_WindowIsNotBounded
shell_WindowIsNotBounded(a%)
shell_WindowGetFlags(a%)
1<<6)
%*|Stop FNshell_WindowIsNotBounded
&*|Start FNshell_WindowTrapsHotKeys
shell_WindowTrapsHotKeys(a%)
shell_WindowGetFlags(a%)
1<<&C)
%*|Stop FNshell_WindowTrapsHotKeys
*|Start FNshell_WindowIsOpen
shell_WindowIsOpen(e%)
shell_WindowGetFlags(e%)
1<<16)
e%=-1
e%=-2
*|Stop FNshell_WindowIsOpen
!*|Start FNshell_WindowIsOnTop
shell_WindowIsOnTop(a%)
shell_WindowGetFlags(a%)
1<<17)
*|Stop FNshell_WindowIsOnTop
(*|Start FNshell_WindowHasBeenToggled
shell_WindowHasBeenToggled(a%)
shell_WindowGetFlags(a%)
1<<18)
'*|Stop FNshell_WindowHasBeenToggled
'*|Start FNshell_WindowHasInputFocus
shell_WindowHasInputFocus(a%)
shell_WindowGetFlags(a%)
1<<20)
&*|Stop FNshell_WindowHasInputFocus
%*|Start FNshell_WindowHasBackIcon
shell_WindowHasBackIcon(a%)
shell_WindowGetFlags(a%)
1<<24)
$*|Stop FNshell_WindowHasBackIcon
&*|Start FNshell_WindowHasCloseIcon
shell_WindowHasCloseIcon(a%)
shell_WindowGetFlags(a%)
1<<25)
%*|Stop FNshell_WindowHasCloseIcon
'*|Start FNshell_WindowHasToggleIcon
shell_WindowHasToggleIcon(a%)
shell_WindowGetFlags(a%)
1<<27)
&*|Stop FNshell_WindowHasToggleIcon
'*|Start FNshell_WindowHasVScrollBar
shell_WindowHasVScrollBar(a%)
shell_WindowGetFlags(a%)
1<<28)
&*|Stop FNshell_WindowHasVScrollBar
+*|Start FNshell_WindowHasAdjustSizeIcon
shell_WindowHasAdjustSizeIcon(a%)
shell_WindowGetFlags(a%)
1<<29)
**|Stop FNshell_WindowHasAdjustSizeIcon
'*|Start FNshell_WindowHasHScrollBar
shell_WindowHasHScrollBar(a%)
shell_WindowGetFlags(a%)
1<<30)
&*|Stop FNshell_WindowHasHScrollBar
"*|Start FNshell_WindowGetFlags
shell_WindowGetFlags(e%)
_WINDOWS_GETSTATE_BLK%!0=e%
&400CB,,_WINDOWS_GETSTATE_BLK%
o%=_WINDOWS_GETSTATE_BLK%!32
!*|Stop FNshell_WindowGetFlags
'*|Start FNshell_WindowGetTitleFlags
shell_WindowGetTitleFlags(a%)
o%,d%
Windows_ClaimInfoBlock(a%)
d%!0=a%
&400CC,,d%
o%=d%!60
Windows_ReturnInfoBlock(d%)
&&*|Stop FNshell_WindowGetTitleFlags
*$*|Start FNshell_WindowTitleFlags
shell_WindowTitleFlags(a%)
o%,d%
-"d%=
Windows_ClaimInfoBlock(a%)
d%!0=a%
&400CC,,d%
o%=d%!60
Windows_ReturnInfoBlock(d%)
4#*|Stop FNshell_WindowTitleFlags
8(*|Start FNshell_WindowTitleHasBorder
shell_WindowTitleHasBorder(a%)
shell_WindowTitleFlags(a%)
1<<2)
<'*|Stop FNshell_WindowTitleHasBorder
@'*|Start FNshell_WindowTitleIsSprite
shell_WindowTitleIsSprite(a%)
shell_WindowTitleFlags(a%)
1<<1)
D&*|Stop FNshell_WindowTitleIsSprite
H%*|Start FNshell_WindowTitleIsText
shell_WindowTitleIsText(a%)
shell_WindowTitleFlags(a%)
1<<0)
L$*|Stop FNshell_WindowTitleIsText
P)*|Start FNshell_WindowTitleIsHCentred
shell_WindowTitleIsHCentred(a%)
shell_WindowTitleFlags(a%)
1<<3)
T(*|Stop FNshell_WindowTitleIsHCentred
X)*|Start FNshell_WindowTitleIsVCentred
shell_WindowTitleIsVCentred(a%)
shell_WindowTitleFlags(a%)
1<<4)
\(*|Stop FNshell_WindowTitleIsVCentred
`'*|Start FNshell_WindowTitleIsFilled
shell_WindowTitleIsFilled(a%)
shell_WindowTitleFlags(a%)
1<<5)
d&*|Stop FNshell_WindowTitleIsFilled
h)*|Start FNshell_WindowTitleIsAAliased
shell_WindowTitleIsAAliased(a%)
shell_WindowTitleFlags(a%)
1<<6)
l(*|Stop FNshell_WindowTitleIsAAliased
p+*|Start FNshell_WindowTitleIsIndirected
shell_WindowTitleIsIndirected(a%)
shell_WindowTitleFlags(a%)
1<<8)
t**|Stop FNshell_WindowTitleIsIndirected
x"*|Start FNshell_WindowGetTitle
shell_WindowGetTitle(a%)
l$,d%
|"d%=
Windows_ClaimInfoBlock(a%)
d%!0=a%
&400CC,,d%
(d%!32
1<<26)
((d%!60)
256)=0
l$=$(d%+76)
l$=$(!(d%+76))
Windows_ReturnInfoBlock(d%)
!*|Stop FNshell_WindowGetTitle
+*|Start FNshell_WindowTitleBufferLength
shell_WindowTitleBufferLength(a%)
t%,d%
Windows_ClaimInfoBlock(a%)
d%!0=a%
&400CC,,d%
((d%!60)
256)=0
t%=&C
t%=d%!84
Windows_ReturnInfoBlock(d%)
**|Stop FNshell_WindowTitleBufferLength
&*|Start PROCshell_WindowMoveToIcon
shell_WindowMoveToIcon(a%,OG%,r%,BB%,CB%)
LA%,v%
!LA%=
shell_HeapBlockFetch(50)
shell_HeapBlockFetch(36)
v%!20=0
shell_OSCheckVersion(3)
OG%=-1
!v%=-2
!v%=OG%
&400CB,,v%
LA%!0=OG%:LA%!4=r%
&400CE,,LA%
shell_WindowMoveTo(a%,LA%!8+BB%-v%!20,LA%!20+CB%)
shell_HeapBlockReturn(LA%)
shell_HeapBlockReturn(v%)
%*|Stop PROCshell_WindowMoveToIcon
"*|Start PROCshell_WindowMoveTo
shell_WindowMoveTo(a%,SA%,TA%)
WG%,UG%,c%,d%
Windows_ClaimInfoBlock(a%)
d%!0=a%
&400CC,,d%
WG%=d%!&C-d%!4
UG%=d%!16-d%!8
d%!4=SA%
d%!8=TA%
d%!&C=SA%+WG%
d%!16=TA%+UG%
&400C5,,d%
&400C6,,d%
shell_IsWindowStatic(a%)
shell_OpenWindowStatic(a%)
shell_OpenWindowDynamic2(a%,0,0)
Windows_ReturnInfoBlock(d%)
!*|Stop PROCshell_WindowMoveTo
&*|Start PROCshell_WindowBringToTop
shell_WindowBringToTop(a%)
"QC%=
shell_HeapBlockFetch(256)
QC%!0=a%
&400CB,,QC%
QC%!28=-1
&400E7,2,QC%,a%
&400C7,0,QC%
shell_HeapBlockReturn(QC%)
%*|Stop PROCshell_WindowBringToTop
!*|Start PROCshell_CloseWindow
shell_CloseWindow(e%)
c%,_%,vJ%,zA%,wD%,A$
k%,b$,HA%,MD%
shell_GetWindowIdentifier(e%)
zA%=0
Evnts_GetEvntListOffset(A$,zA%,_EVNTS_PANES_ANCHOR%,_EVNTS_PANES_REC_SIZE%,
c%=GE%
k%=!_EVNTS_PANES_ANCHOR%+c%
wD%=k%!16
x%=!_EVNTS_PANES_DATA%
b$=$(x%+wD%)
&HA%=
shell_GetWindowHandleList(b$)
MD%=!HA%
_EVNTS_PANE_BLK%!0=MD%
&400C6,,_EVNTS_PANE_BLK%
zA%+=1
_EVNTS_PANE_BLK%!0=e%
&400C6,,_EVNTS_PANE_BLK%
*|Stop PROCshell_CloseWindow
**|Start FNshell_GetDynamicWindowHandle
shell_GetDynamicWindowHandle
=_U%!20
)*|Stop FNshell_GetDynamicWindowHandle
*|Start FNshell_DeleteWindow
shell_DeleteWindow(m%)
shell_HeapBlockFetch(20)
oktodeletew(m%)
shell_RemoveHandleFromWindowList(m%)
m%=_U%!20
_U%!20=0
shell_RemoveStaticWindowFromList(m%)
_%!0=m%
&600C3,,_%
shell_HeapBlockReturn(_%)
*|Stop FNshell_DeleteWindow
*$*|Start FNshell_WindowCountIcons
shell_WindowCountIcons(a%)
sC%,eC%,MB%
(_U%!&64
1<<&A)
a%=-1
a%=-2
2!sC%=
shell_HeapBlockFetch(88)
!_WINDOWS_GETWINFO_BLK%=a%
&400CC,,_WINDOWS_GETWINFO_BLK%+1
5!MB%=_WINDOWS_GETWINFO_BLK%!88
9#sC%=
shell_HeapBlockFetch(6000)
!sC%=a%
&400CC,,sC%
MB%=sC%!88
shell_HeapBlockReturn(sC%)
E#*|Stop FNshell_WindowCountIcons
I**|Start PROCshell_WindowToggleBackIcon
shell_WindowToggleBackIcon(
shell_WindowToggleFlags(a%,1<<24)
N)*|Stop PROCshell_WindowToggleBackIcon
R+*|Start PROCshell_WindowToggleCloseIcon
shell_WindowToggleCloseIcon(
shell_WindowToggleFlags(a%,1<<25)
W**|Stop PROCshell_WindowToggleCloseIcon
Z**|Start PROCshell_WindowToggleTitleBar
shell_WindowToggleTitleBar(
shell_WindowToggleFlags(a%,1<<26)
_)*|Stop PROCshell_WindowToggleTitleBar
c,*|Start PROCshell_WindowToggleToggleIcon
shell_WindowToggleToggleIcon(
shell_WindowToggleFlags(a%,1<<27)
h+*|Stop PROCshell_WindowToggleToggleIcon
l,*|Start PROCshell_WindowToggleHScrollBar
shell_WindowToggleHScrollBar(
shell_WindowToggleFlags(a%,1<<30)
q+*|Stop PROCshell_WindowToggleHScrollBar
u0*|Start PROCshell_WindowToggleAdjustSizeIcon
shell_WindowToggleAdjustSizeIcon(
shell_WindowToggleFlags(a%,1<<29)
z/*|Stop PROCshell_WindowToggleAdjustSizeIcon
~,*|Start PROCshell_WindowToggleVScrollBar
shell_WindowToggleVScrollBar(
shell_WindowToggleFlags(a%,1<<28)
+*|Stop PROCshell_WindowToggleVScrollBar
'*|Start PROCshell_WindowToggleFlags
shell_WindowToggleFlags(
a%,_A%)
d%,o%,DE%,m%
*|ifdef TraceInit
shell_Tracef0("WindowToggleFlags:wh% = &"+
*|endif
shell_WindowIsOpen(a%)
Windows_ClaimInfoBlock(a%)
d%!0=a%
&400CC,,d%
o%=d%!32
o%=(o%
d%!32=o%
&400C3,,d%
&400C1,,d%+4
!d%=m%
&400C5,,d%
Windows_ReturnInfoBlock(d%)
m%<>a%
shell_UpdateWindowHandle(a%,m%)
shell_UpdateWindowHandleList(a%,m%)
a%=m%
&*|Stop PROCshell_WindowToggleFlags
"*|Start PROCshell_UpdateWindow
shell_UpdateWindow(m%,jF%,dB%,bB%,ZF%)
shell_HeapBlockFetch(d%)
1d%!0=m%:d%!4=jF%:d%!8=dB%:d%!&C=bB%:d%!16=ZF%
&400C9,,d%
&400CB,,d%
shell_HeapBlockReturn(d%)
!*|Stop PROCshell_UpdateWindow
(*|Start PROCshell_OpenWindowDynamic2
shell_OpenWindowDynamic2(a%,BB%,CB%)
j%,QD%
!QD%=
shell_HeapBlockFetch(20)
_U%!20=a%
&400CF,,QD%
&400D4,,a%,QD%!0+BB%,QD%!4+CB%
shell_HeapBlockReturn(QD%)
'*|Stop PROCshell_OpenWindowDynamic2
'*|Start PROCshell_WindowGetPosition
shell_WindowGetPosition(e%,
!_WINDOWS_GETSTATE_BLK%=e%
&400CB,,_WINDOWS_GETSTATE_BLK%
tC%=_WINDOWS_GETSTATE_BLK%!4
uC%=_WINDOWS_GETSTATE_BLK%!8
!vC%=_WINDOWS_GETSTATE_BLK%!&C
!wC%=_WINDOWS_GETSTATE_BLK%!16
&*|Stop PROCshell_WindowGetPosition
#*|Start PROCshell_WindowGetSize
shell_WindowGetSize(e%,
tC%,uC%,vC%,wC%
shell_WindowGetPosition(e%,tC%,uC%,vC%,wC%)
jI%=vC%-tC%
CJ%=wC%-uC%
"*|Stop PROCshell_WindowGetSize
'*|Start PROCshell_OpenWindowDynamic
shell_OpenWindowDynamic(EB$,sA$,uA$)
y%,BB%,CB%,pE%
%pE%=
shell_GetDynamicWindowHandle
pE%<>0
&400D4,,-1
shell_DeleteWindow(pE%)
shell_CreateWindow(EB$,y%)
_WINDOWS_GETSTATE_BLK%!0=y%
&400CB,,_WINDOWS_GETSTATE_BLK%
>BB%=(_WINDOWS_GETSTATE_BLK%!4-_WINDOWS_GETSTATE_BLK%!&C)/2
>CB%=(_WINDOWS_GETSTATE_BLK%!16-_WINDOWS_GETSTATE_BLK%!8)/2
_U%!20=y%
sA$<>""
("FN"+sA$+"("+
y%+")")
shell_OpenWindowDynamic2(y%,BB%,CB%)
uA$<>""
("FN"+uA$+"("+
y%+")")
&*|Stop PROCshell_OpenWindowDynamic
"*|Start PROCshell_CreateWindow
shell_CreateWindow(H$,
shell_GetWB(H$)
_B%!64=_U%!16
&400C1,,_B%
shell_WindowListAddHandle(H$,e%)
!*|Stop PROCshell_CreateWindow
$*|Start FNWindows_ClaimInfoBlock
Windows_ClaimInfoBlock(e%)
shell_HeapBlockFetch(&64+(
shell_WindowCountIcons(e%)*32))
#*|Stop FNWindows_ClaimInfoBlock
'*|Start PROCWindows_ReturnInfoBlock
Windows_ReturnInfoBlock(GA%)
shell_HeapBlockReturn(GA%)
&*|Stop PROCWindows_ReturnInfoBlock
#"*|Start PROCshell_WindowResize
shell_WindowResize(QA%,QI%,bI%,mI%,PI%,DE%)
'$SD%=
Windows_ClaimInfoBlock(QA%)
)!_WINDOWS_SETEXTENT_BLK%!0=QI%
*!_WINDOWS_SETEXTENT_BLK%!4=bI%
+!_WINDOWS_SETEXTENT_BLK%!8=mI%
,"_WINDOWS_SETEXTENT_BLK%!&C=PI%
&400D7,QA%,_WINDOWS_SETEXTENT_BLK%
SD%!0=QA%
&400CC,,SD%
&400C5,,SD%
Windows_ReturnInfoBlock(SD%)
8!*|Stop PROCshell_WindowResize
;#*|Start PROCshell_WindowRetitle
shell_WindowRetitle(
QA%,l$)
g%,_%,m%,ZG%
>#_%=
Windows_ClaimInfoBlock(QA%)
_%!0=QA%
&400CC,,_%
((_%!60)
256)=0
g%=_%+76
l$,&B)
&400C3,,_%
&400C1,,_%+4
m%<>QA%
shell_UpdateWindowHandle(QA%,m%)
QA%=m%
ZG%=_%!84
$(!(_%+76))=
l$,ZG%-1)
((_%!32)
(1<<16))<>0
&400D1,-1,_%!4,_%!16,_%!&C,_%!16+44
Windows_ReturnInfoBlock(_%)
Y"*|Stop PROCshell_WindowRetitle
\)*|Start FNshell_WindowTitleIndirected
shell_WindowTitleIndirected(yD%)
(1<<8))=(1<<8)
a(*|Stop FNshell_WindowTitleIndirected
e**|Start PROCshell_WindowMoveToPopUpPos
shell_WindowMoveToPopUpPos(e%,h%,aG%)
RC%,JB%,dG%,fG%,gG%,hG%
i!RC%=
shell_HeapBlockFetch(40)
RC%!0=e%
RC%!4=h%
&400CE,,RC%
dG%=RC%!16
fG%=RC%!20
o!JB%=
shell_HeapBlockFetch(40)
JB%!0=e%
&400CB,,JB%
gG%=JB%!4
hG%=JB%!16
JB%!0=aG%
&400CB,,JB%
iG%=JB%!16-JB%!8
shell_WindowMoveTo(aG%,gG%+dG%,hG%+fG%-(iG%/2))
shell_HeapBlockReturn(RC%)
shell_HeapBlockReturn(JB%)
{)*|Stop PROCshell_WindowMoveToPopUpPos
$*|Start PROCshell_WindowScrollTo
shell_WindowScrollTo(e%,TD%,UD%)
!gA%=
shell_HeapBlockFetch(36)
!gA%=e%
&400CB,,gA%
gA%!20=TD%
gA%!24=UD%
shell_WindowIsOpen(e%)
&400C5,,gA%
&400C5,,gA%
&400C6,,gA%
shell_HeapBlockReturn(gA%)
#*|Stop PROCshell_WindowScrollTo
$*|Start PROCshell_WindowScrollBy
shell_WindowScrollBy(e%,TD%,UD%)
!gA%=
shell_HeapBlockFetch(36)
!gA%=e%
&400CB,,gA%
gA%!20+=TD%
gA%!24+=UD%
shell_WindowIsOpen(e%)
&400C5,,gA%
&400C5,,gA%
&400C6,,gA%
shell_HeapBlockReturn(gA%)
#*|Stop PROCshell_WindowScrollBy
/*|Start PROCshell_WindowSetBackgroundColour
shell_WindowSetBackgroundColour(
y%,WB%)
v%,m%,uG%,QB%,MB%
#MB%=
shell_WindowCountIcons(y%)
shell_WindowIsOpen(y%)
shell_HeapBlockFetch(&64+(MB%*32))
v%!0=y%
&400CC,,v%
v%?39=WB%
_shell_open_behind%=v%!28
QB%=v%!28
&400C3,,v%
&400C1,,v%+4
v%!0=m%
&400CC,,v%
y%<>m%
*|ifdef TraceInit
*|endif
shell_UpdateWindowHandle(y%,m%)
y%=m%
shell_OpenWindow(m%,0,QB%)
shell_HeapBlockReturn(v%)
.*|Stop PROCshell_WindowSetBackgroundColour
/*|Start PROCshell_WindowSetForegroundColour
shell_WindowSetForegroundColour(
y%,WB%)
v%,m%,tB%,QB%
shell_WindowIsOpen(a%)
shell_HeapBlockFetch(&64+(
shell_WindowCountIcons(y%)*32))
v%!0=y%
&400CC,,v%
v%?38=WB%
_shell_open_behind%=v%!28
QB%=v%!28
&400C3,,v%
&400C1,,v%+4
y%<>m%
*|ifdef TraceInit
*|endif
shell_UpdateWindowHandle(y%,m%)
y%=m%
shell_OpenWindow(m%,0,QB%)
shell_HeapBlockReturn(v%)
.*|Stop PROCshell_WindowSetForegroundColour
*|Start FN_shell_Icons_Init
_shell_Icons_Init
_c_Icons_IconDragType%=5
_c_Icons_DragBBoxXMin%=0
_c_Icons_DragBBoxYMin%=0
J$_c_Icons_DragBBoxXMax%=&7FFFFFFF
K$_c_Icons_DragBBoxYMax%=&7FFFFFFF
_c_Icons_DragFlags%=&85
N+_c_Icons_IconOverFlowMess$="SHELLMSG12"
O-_c_Icons_NotASpriteIconMess$="SHELLMSG19"
P._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%=
*|Stop FN_shell_Icons_Init
c%*|Start PROCshell_IconSetFGColour
shell_IconSetFGColour(e%,h%,WB%)
WB%<_c_Icons_MinWimpColour%
WB%>_c_Icons_MaxWimpColour%
shell_MessageOneArg(_c_Icons_WimpColourRangeMess$,"PROCshell_IconSetFGColour")
shell_IconSetState(e%,h%,WB%<<24,&F000000)
j$*|Stop PROCshell_IconSetFGColour
n%*|Start PROCshell_IconSetBGColour
shell_IconSetBGColour(e%,h%,WB%)
WB%<_c_Icons_MinWimpColour%
WB%>_c_Icons_MaxWimpColour%
shell_MessageOneArg(_c_Icons_WimpColourRangeMess$,"PROCshell_IconSetBGColour")
shell_IconSetState(e%,h%,WB%<<28,&F0000000)
v$*|Stop PROCshell_IconSetBGColour
z&*|Start PROCshell_IconUnselectable
shell_IconUnselectable(e%,h%)
shell_IconSetUnselectable(e%,h%,1)
%*|Stop PROCshell_IconUnselectable
"*|Start PROCshell_IconSetState
shell_IconSetState(e%,h%,KJ%,PJ%)
h%>=0
!_c_Icon_SetIconStateBlk%!0=e%
!_c_Icon_SetIconStateBlk%!4=h%
"_c_Icon_SetIconStateBlk%!8=KJ%
#_c_Icon_SetIconStateBlk%!&C=PJ%
&600CD,,_c_Icon_SetIconStateBlk%
!*|Stop PROCshell_IconSetState
*|Start PROCshell_IconSet
shell_IconSet(e%,h%,wA%)
wA%=0
shell_IconDeselect(e%,h%)
shell_IconSelect(e%,h%)
*|Stop PROCshell_IconSet
%*|Start PROCshell_IconSetSelected
shell_IconSetSelected(a%,r%,wA%)
wA%=0
shell_IconDeselect(a%,r%)
shell_IconSelect(a%,r%)
$*|Stop PROCshell_IconSetSelected
*|Start PROCIcons_GetState
Icons_GetState(e%,h%)
!_c_Icon_GetIconStateBlk%!0=e%
!_c_Icon_GetIconStateBlk%!4=h%
&400CE,,_c_Icon_GetIconStateBlk%
*|Stop PROCIcons_GetState
*|Start PROCshell_IconSelect
shell_IconSelect(dC%,LC%)
shell_IconSetState(dC%,LC%,&200000,&200000)
*|Stop PROCshell_IconSelect
"*|Start PROCshell_IconDeselect
shell_IconDeselect(dC%,LC%)
shell_IconSetState(dC%,LC%,0,&200000)
!*|Stop PROCshell_IconDeselect
"*|Start FNshell_IsIconSelected
shell_IsIconSelected(dC%,LC%)
Icons_GetState(dC%,LC%)
"o%=_c_Icon_GetIconStateBlk%!24
g%=(o%
&200000)
!*|Stop FNshell_IsIconSelected
'*|Start PROCshell_IconPutValidation
shell_IconPutValidation(e%,h%,RA$)
!_c_Icon_GetIconStateBlk%!0=e%
!_c_Icon_GetIconStateBlk%!4=h%
&400CE,,_c_Icon_GetIconStateBlk%
"o%=_c_Icon_GetIconStateBlk%!24
&$(_c_Icon_GetIconStateBlk%!32)=RA$
&*|Stop PROCshell_IconPutValidation
%*|Start FNshell_IconGetValidation
shell_IconGetValidation(e%,h%)
N$,o%
h%=-1
N$=""
!_c_Icon_GetIconStateBlk%!0=e%
!_c_Icon_GetIconStateBlk%!4=h%
&400CE,,_c_Icon_GetIconStateBlk%
"o%=_c_Icon_GetIconStateBlk%!24
_c_Icon_GetIconStateBlk%!32>0
N$=$(_c_Icon_GetIconStateBlk%!32)
$*|Stop FNshell_IconGetValidation
*|Start PROCshell_IconRedraw
shell_IconRedraw(e%,h%)
shell_IconSetState(e%,h%,0,0)
*|Stop PROCshell_IconRedraw
"*|Start FNshell_IconGetCommand
shell_IconGetCommand(IE%,UB$)
I%,Q$
IE%<=0
Q$=""
shell_StringUpperCase($IE%),";"+
shell_StringUpperCase(UB$))
Q$=""
$(IE%+I%),
$(IE%+I%)+";",";")-1)
!*|Stop FNshell_IconGetCommand
*|Start FNshell_IconGetFlags
shell_IconGetFlags(e%,h%)
!_c_Icon_GetIconStateBlk%!0=e%
!_c_Icon_GetIconStateBlk%!4=h%
&400CE,,_c_Icon_GetIconStateBlk%
"o%=_c_Icon_GetIconStateBlk%!24
*|Stop FNshell_IconGetFlags
"#*|Start FNshell_IconIsDraggable
shell_IconIsDraggable(e%,h%)
o%,t%,_A%
_A%=(1<<&D)+(1<<&E)
&!o%=
shell_IconGetFlags(e%,h%)
t%=(o%
t%=_A%
*"*|Stop FNshell_IconIsDraggable
."*|Start FNshell_IconIsWritable
shell_IconIsWritable(e%,h%)
o%,t%,_A%
_A%=1<<&E
2!o%=
shell_IconGetFlags(e%,h%)
t%=(o%
t%=_A%
6!*|Stop FNshell_IconIsWritable
: *|Start FNshell_IconIsSprite
shell_IconIsSprite(a%,r%)
o%,g%
=!o%=
shell_IconGetFlags(a%,r%)
g%=(o%
1<<1)
g%=(1<<1)
*|Stop FNshell_IconIsSprite
E *|Start FNshell_IconHasCaret
shell_IconHasCaret(e%,h%)
AB%,QA%
&400D3,,_c_Icon_GetCaretPositionBlk%
I&QA%=_c_Icon_GetCaretPositionBlk%!0
J&AB%=_c_Icon_GetCaretPositionBlk%!4
(AB%=h%
QA%=e%)
*|Stop FNshell_IconHasCaret
*|Start FNshell_IconCreate
shell_IconCreate(a%,TB%,GB%,ZI%,y%,wE%,xE%,hI%,F$,PB%,KC%,N$)
kI%,m%,AC%,l%
U l%=
shell_HeapBlockFetch(40)
l%!0=a%
l%!4=TB%:l%!8=GB%
l%!&C=TB%+ZI%:l%!16=GB%+y%
l%!20=hI%
xE%<<28
wE%<<24
l%!20
F$,",")
l%!24=PB%
N$<>""
^$AC%=
shell_HeapBlockFetch(
N$+1)
$AC%=N$
l%!28=AC%
l%!28=-1
l%!32=KC%
$(l%+24)=
F$,&B)
&400C2,,l%
shell_HeapBlockReturn(l%)
*|Stop FNshell_IconCreate
p *|Start PROCshell_IconDelete
shell_IconDelete(a%,r%)
shell_DoIconDelete(a%,r%,
*|Stop PROCshell_IconDelete
y!*|Start PROCshell_IconDelete2
shell_IconDelete2(a%,r%)
shell_DoIconDelete(a%,r%,
~ *|Stop PROCshell_IconDelete2
"*|Start PROCshell_DoIconDelete
shell_DoIconDelete(a%,r%,oI%)
XA%,aA%,qA%,yA%
!_c_Icon_GetIconStateBlk%!0=a%
!_c_Icon_GetIconStateBlk%!4=r%
&400CE,,_c_Icon_GetIconStateBlk%
&8168A,,_c_Icon_GetIconStateBlk%+8
"XA%=_c_Icon_GetIconStateBlk%!8
#aA%=_c_Icon_GetIconStateBlk%!&C
#qA%=_c_Icon_GetIconStateBlk%!16
#yA%=_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,a%,XA%,aA%,qA%,yA%
!*|Stop PROCshell_DoIconDelete
&*|Start FNshell_IconRadioSelection
shell_IconRadioSelection(e%,BC%)
GH%,nB%,KH%,LH%
nB%=
shell_HeapBlockFetch(8)
GH%=(BC%<<16)+(1<<21)
LH%=(31<<16)+(1<<21)
&400D6,e%,nB%,LH%,GH%
KH%=!nB%
shell_HeapBlockReturn(nB%)
%*|Stop FNshell_IconRadioSelection
!*|Start PROCshell_IconPutData
shell_IconPutData(QA%,AB%,F$,U)
_U%!&64
"WimpExt_SetIconString",,,QA%,AB%,F$+
#_A$=
shell_IconGetData(QA%,AB%)
F$<>_A$
"_c_Icon_GetIconStateBlk%!0=QA%
"_c_Icon_GetIconStateBlk%!4=AB%
&400CE,,_c_Icon_GetIconStateBlk%
(_c_Icon_GetIconStateBlk%!24
(1<<8))<>0
F$>_c_Icon_GetIconStateBlk%!36
shell_MessageNoArgs(_c_Icons_IconOverFlowMess$)
%$(_c_Icon_GetIconStateBlk%!28)=F$
*$(_c_Icon_GetIconStateBlk%+28)=
F$,&B)
shell_IconHasCaret(QA%,AB%)
shell_CaretSetRight(QA%,AB%)
_c_Icon_GetIconStateBlk%!8=0
!_c_Icon_GetIconStateBlk%!&C=0
&400CD,,_c_Icon_GetIconStateBlk%
*|Stop PROCshell_IconPutData
$*|Start PROCshell_IconPutDataNow
shell_IconPutDataNow(QA%,AB%,F$)
"_c_Icon_GetIconStateBlk%!0=QA%
"_c_Icon_GetIconStateBlk%!4=AB%
&400CE,,_c_Icon_GetIconStateBlk%
(_c_Icon_GetIconStateBlk%!24
(1<<8))<>0
(F$)>_c_Icon_GetIconStateBlk%!36
shell_MessageNoArgs(_c_Icons_IconOverFlowMess$)
%$(_c_Icon_GetIconStateBlk%!28)=F$
*$(_c_Icon_GetIconStateBlk%+28)=
F$,&B)
_c_Icon_GetIconStateBlk%!8=0
!_c_Icon_GetIconStateBlk%!&C=0
&400CD,,_c_Icon_GetIconStateBlk%
shell_EnsurePoll
#*|Stop PROCshell_IconPutDataNow
!*|Start FNshell_IconNewSprite
shell_IconNewSprite(e%,h%,GA$)
JE%,yE%,zE%,_E%
!_c_Icon_GetIconStateBlk%!0=e%
!_c_Icon_GetIconStateBlk%!4=h%
&400CE,,_c_Icon_GetIconStateBlk%
(_c_Icon_GetIconStateBlk%!24
(1<<1))
yE%=
yE%=
(_c_Icon_GetIconStateBlk%!24
zE%=
zE%=
(_c_Icon_GetIconStateBlk%!24
(1<<8))
_E%=
_E%=
_c_Icon_GetIconStateBlk%!24
*$(_c_Icon_GetIconStateBlk%!32)="S"+GA$
&$(_c_Icon_GetIconStateBlk%!28)=GA$
&_c_Icon_GetIconStateBlk%!36=
(GA$)
JE%=h%
&400C4,,_c_Icon_GetIconStateBlk%
$9_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)=GA$
&400C2,,_c_Icon_GetIconStateBlk%
shell_IconRedraw(e%,JE%)
2 *|Stop FNshell_IconNewSprite
*|Start FNshell_IconGetData
shell_IconGetData(e%,h%)
e%<-2
_U%!&64
"WimpExt_GetIcon",,,e%,h%
,,,Q$
=!_c_Icon_GetIconStateBlk%!0=e%
>!_c_Icon_GetIconStateBlk%!4=h%
&400CE,,_c_Icon_GetIconStateBlk%
(_c_Icon_GetIconStateBlk%!24
(1<<8))<>0
A%Q$=$(_c_Icon_GetIconStateBlk%!28)
C%Q$=$(_c_Icon_GetIconStateBlk%+28)
*|Stop FNshell_IconGetData
*|Start FNshell_IconMove2
shell_IconMove2(e%,h%,YH%,ZH%)
M!_c_Icon_GetIconStateBlk%!0=e%
N!_c_Icon_GetIconStateBlk%!4=h%
&400CE,,_c_Icon_GetIconStateBlk%
P#_c_Icon_GetIconStateBlk%!8+=YH%
Q$_c_Icon_GetIconStateBlk%!16+=YH%
R$_c_Icon_GetIconStateBlk%!&C+=ZH%
S$_c_Icon_GetIconStateBlk%!20+=ZH%
shell_IconMove(e%,h%,_c_Icon_GetIconStateBlk%!8,_c_Icon_GetIconStateBlk%!&C,_c_Icon_GetIconStateBlk%!16,_c_Icon_GetIconStateBlk%!20)
*|Stop FNshell_IconMove2
*|Start FNshell_IconResize
shell_IconResize(a%,r%,XA%,aA%,qA%,yA%)
shell_IconMove(a%,r%,XA%,aA%,qA%,yA%)
*|Stop FNshell_IconResize
*|Start FNshell_IconMove
shell_IconMove(a%,r%,XA%,aA%,qA%,yA%)
LA%,xJ%,yJ%,XB%,d%
dH%,fH%,gH%,jH%
g!LA%=
shell_HeapBlockFetch(40)
h d%=
shell_HeapBlockFetch(40)
i"!LA%=a%:LA%!4=r%:
&400CE,,LA%
!d%=a%:d%!4=r%
&400CE,,d%
&8168A,,d%+8
gI%=LA%!24:AF%=LA%+28
n)dH%=gI%:fH%=AF%!0:gH%=AF%!4:jH%=AF%!8
XB%=LA%!8-d%!8
&400C4,,LA%
&400D1,!LA%,LA%!8-XB%,LA%!&C-XB%,LA%!16+XB%,LA%!20+XB%
rAr%=
shell_CreateIcon2(a%,XA%,aA%,qA%,yA%,dH%,fH%,gH%,jH%,XB%)
shell_HeapBlockReturn(LA%)
shell_HeapBlockReturn(d%)
*|Stop FNshell_IconMove
*|Start FNshell_CreateIcon2
shell_CreateIcon2(m%,XA%,aA%,qA%,yA%,o%,nI%,pI%,rI%,XB%)
lA%,YA%,J$,p$,TB%,GB%
~!YA%=
shell_HeapBlockFetch(60)
!YA%=m%
.YA%!20=o%:YA%!24=nI%:YA%!28=pI%:YA%!32=rI%
J$="":p$=""
256J$=$(YA%!24)
J$=$(YA%+24)
shell_IconGetCommand(YA%!28,"S")
p$=$(YA%+24)
shell_GetMinXY(o%,J$,p$)
qA%-XA%<TB%
qA%=XA%+TB%
yA%-aA%<GB%
yA%=aA%+GB%
-YA%!4=XA%:YA%!8=aA%:YA%!&C=qA%:YA%!16=yA%
&400C2,,YA%
&400D1,!YA%,YA%!4-XB%,YA%!8-XB%,YA%!&C+XB%,YA%!16+XB%
&400D3,,YA%
!YA%=m%:
YA%!4=lA%:
&400D2,m%,lA%,0,0,-1,0
shell_HeapBlockReturn(YA%)
*|Stop FNshell_CreateIcon2
*|Start PROCshell_IconSlab
shell_IconSlab(HD%,a%,r%)
shell_HeapBlockFetch(50)
d%!8=HD%:d%!&C=a%:d%!16=r%
&81680,,d%
d%!8=0
&81680,,d%
shell_HeapBlockReturn(d%)
*|Stop PROCshell_IconSlab
'*|Start PROCshell_IconSetButtonType
shell_IconSetButtonType(a%,r%,VD%)
VD%=&C
VD%=&D
shell_MessageOneArg("SHELLMSG23","PROCshell_IconSetButtonType")
VD%<0
VD%>&F
shell_MessageOneArg("SHELLMSG22","PROCshell_IconSetButtonType")
shell_IconSetState(a%,r%,VD%<<&C,&F000)
&*|Stop PROCshell_IconSetButtonType
*|Start PROCshell_IconSetESG
shell_IconSetESG(a%,r%,BC%)
BC%<0
BC%>31
shell_MessageOneArg("SHELLMSG25","PROCshell_IconSetESG")
shell_IconSetState(a%,r%,BC%<<16,&1F0000)
*|Stop PROCshell_IconSetESG
!*|Start PROCshell_IconSetText
shell_IconSetText(a%,r%,DA%)
DA%<>0
DA%=1<<0
shell_IconSetState(a%,r%,DA%,1<<0)
*|Stop PROCshell_IconSetText
#*|Start PROCshell_IconSetSprite
shell_IconSetSprite(e%,h%,DA%)
DA%<>0
DA%=1<<1
shell_IconSetState(e%,h%,DA%,1<<1)
"*|Stop PROCshell_IconSetSprite
#*|Start PROCshell_IconSetBorder
shell_IconSetBorder(e%,h%,DA%)
DA%<>0
DA%=1<<2
shell_IconSetState(e%,h%,DA%,1<<2)
"*|Stop PROCshell_IconSetBorder
%*|Start PROCshell_IconSetHCentred
shell_IconSetHCentred(a%,r%,DA%)
shell_IconSetState(a%,r%,0,1<<9)
DA%<>0
DA%=1<<3
shell_IconSetState(a%,r%,DA%,1<<3)
$*|Stop PROCshell_IconSetHCentred
%*|Start PROCshell_IconSetVCentred
shell_IconSetVCentred(a%,r%,DA%)
DA%<>0
DA%=1<<4
shell_IconSetState(a%,r%,DA%,1<<4)
$*|Stop PROCshell_IconSetVCentred
#*|Start PROCshell_IconSetFilled
shell_IconSetFilled(a%,r%,DA%)
DA%<>0
DA%=1<<5
shell_IconSetState(a%,r%,DA%,1<<5)
"*|Stop PROCshell_IconSetFilled
,*|Start PROCshell_IconSetUsesOutlineFont
shell_IconSetUsesOutlineFont(a%,r%,DA%)
DA%<>0
DA%=1<<6
shell_IconSetState(a%,r%,DA%,1<<6)
+*|Stop PROCshell_IconSetUsesOutlineFont
&*|Start PROCshell_IconSetRightJust
shell_IconSetRightJust(a%,r%,DA%)
shell_IconSetHCentred(a%,r%,0)
DA%<>0
DA%=1<<9
shell_IconSetState(a%,r%,DA%,1<<9)
%*|Stop PROCshell_IconSetRightJust
%*|Start PROCshell_IconSetLeftJust
shell_IconSetLeftJust(a%,r%)
shell_IconSetHCentred(a%,r%,0)
shell_IconSetRightJust(a%,r%,0)
$*|Stop PROCshell_IconSetLeftJust
#)*|Start PROCshell_IconSetUnselectable
shell_IconSetUnselectable(a%,r%,wA%)
wA%<>0
wA%=1<<22
shell_IconSetState(a%,r%,wA%,1<<22)
wA%<>0
shell_IconHasCaret(a%,r%)
&400D2,-1
/(*|Stop PROCshell_IconSetUnselectable
3#*|Start PROCshell_IconSelectAll
shell_IconSelectAll(a%)
d%,I%
6"d%=
shell_HeapBlockFetch(&7D0)
I%=d%+64:!d%=a%
d%!8=1<<21:d%!&C=1<<21
&400D6,!d%,I%,5<<21,0<<21
!I%>-1
d%!4=!I%
&400CD,,d%
= I%+=4
shell_HeapBlockReturn(d%)
B"*|Stop PROCshell_IconSelectAll
F%*|Start PROCshell_IconDeselectAll
shell_IconDeselectAll(a%)
d%,I%
I"d%=
shell_HeapBlockFetch(&7D0)
J&I%=d%+64:!d%=a%:d%!8=0:d%!&C=1<<21
&400D6,!d%,I%,5<<21,1<<21
!I%>-1
d%!4=!I%
&400CD,,d%
O I%+=4
shell_HeapBlockReturn(d%)
T$*|Stop PROCshell_IconDeselectAll
X'*|Start PROCshell_IconSetSpriteArea
shell_IconSetSpriteArea(o%,WD%,EJ%)
3)=2)
256)<>0)
WD%!4=EJ%
^&*|Stop PROCshell_IconSetSpriteArea
b**|Start PROCshell_IconGetSelectedIcons
shell_IconGetSelectedIcons(a%,BC%,
zH%=(BC%<<16)+(1<<21)
&400D6,a%,LA%,zH%,(BC%<<16)+(1<<21)
i)*|Stop PROCshell_IconGetSelectedIcons
m!*|Start FNshell_IconIndirSize
shell_IconIndirSize(OB%,o%,WD%,X%)
NB%,BI%,i%,EE%
&800100)=256
NB%=WD%!8
(WD%!4<>-1)
BI%=WD%!4
#X%=OB%+BI%
x i%+=1
EE%<32
NB%+=+i%
} NB%=0
*|Stop FNshell_IconIndirSize
(*|Start PROCshell_IconGetBoundingBox
shell_IconGetBoundingBox(e%,h%,
Icons_GetState(e%,h%)
"tC%=_c_Icon_GetIconStateBlk%!8
#uC%=_c_Icon_GetIconStateBlk%!&C
#vC%=_c_Icon_GetIconStateBlk%!16
#wC%=_c_Icon_GetIconStateBlk%!20
'*|Stop PROCshell_IconGetBoundingBox
!*|Start PROCshell_IconDragBox
shell_IconDragBox(e%,h%)
A$,c%,k%,JA%,x%,B$,j%
EI%,l%,C,D,FI%,o%,AC%,GI%,eA%,TA$
shell_HeapBlockFetch(&64+(
shell_WindowCountIcons(e%)*32))
!l%=e%
&400CC,,l%
C=l%!4-l%!20
D=l%!16-l%!24
FI%=l%!68
l%!4=h%
&400CE,,l%
l%!0=e%
l%!4=_c_Icons_IconDragType%
o%=l%!24
AC%=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
,,eA%
GI%=((eA%
2)=2)
LE%=
shell_DataSaveDragInProgress
eA%=o%
&TA$=
shell_IconGetCommand(AC%,"s")
shell_OK(
shell_MessageNoArgs(_c_Icons_NotASpriteIconMess$))
TA$<>""
&42400,_c_Icons_DragFlags%,FI%,TA$,l%+8
LE%=
&400D0,,l%
shell_HeapBlockReturn(l%)
shell_HandleSlider(e%,h%)
*|Stop PROCshell_IconDragBox
"*|Start PROCshell_IconDragBox2
shell_IconDragBox2(e%,h%)
l%,C,D,o%,AC%
shell_HeapBlockFetch(&64+(
shell_WindowCountIcons(e%)*32))
!l%=e%
&400CC,,l%
C=l%!4-l%!20
D=l%!16-l%!24
l%!4=h%
&400CE,,l%
l%!0=e%
l%!4=_c_Icons_IconDragType%
o%=l%!24
AC%=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%)
!*|Stop PROCshell_IconDragBox2
#*|Start FNshell_IconGetBGColour
shell_IconGetBGColour(a%,r%)
XD%,l%
shell_HeapBlockFetch(40)
l%!0=a%
l%!4=r%
&400CE,,l%
XD%=(l%!24>>28)
shell_HeapBlockReturn(l%)
"*|Stop FNshell_IconGetBGColour
#*|Start FNshell_IconGetFGColour
shell_IconGetFGColour(a%,r%)
XD%,l%
shell_HeapBlockFetch(40)
l%!0=a%
l%!4=r%
&400CE,,l%
XD%=(l%!24>>24)
shell_HeapBlockReturn(l%)
"*|Stop FNshell_IconGetFGColour
'*|Start PROCshell_IconEnsureVisible
shell_IconEnsureVisible(e%,h%)
eB%,oB%,QG%
RG%,SG%,TG%
DF%,EF%,FF%,GF%
HF%,IF%
XG%,YG%
JF%,KF%
LF%,MF%
h%>=0
!eB%=
shell_HeapBlockFetch(36)
!oB%=
shell_HeapBlockFetch(40)
!eB%=e%
&400CB,,eB%
QG%=eB%!4
RG%=eB%!8
SG%=eB%!&C
TG%=eB%!16
HF%=eB%!20
IF%=eB%!24
YG%=SG%-QG%
XG%=TG%-RG%
oB%!0=e%
oB%!4=h%
&400CE,,oB%
DF%=oB%!8
EF%=oB%!&C
FF%=oB%!16
GF%=oB%!20
JF%=HF%
MF%=IF%
LF%=HF%+YG%
KF%=IF%-XG%
EF%<KF%
shell_WindowScrollBy(e%,0,EF%-KF%)
GF%>MF%
shell_WindowScrollBy(e%,0,GF%-MF%)
FF%>LF%
shell_WindowScrollBy(e%,FF%-LF%,0)
DF%<JF%
shell_WindowScrollBy(e%,DF%-JF%,0)
shell_HeapBlockReturn(eB%)
shell_HeapBlockReturn(oB%)
H&*|Stop PROCshell_IconEnsureVisible
L"*|Start PROCshell_Icon_SetFont
shell_Icon_SetFont(e%,h%,DJ%)
shell_IconSetUsesOutlineFont(e%,h%,
shell_IconSetState(e%,h%,DJ%<<24,-&1000000)
T!*|Stop PROCshell_Icon_SetFont
#*|Start FN_shell_ProgEvnts_Init
_shell_ProgEvnts_Init
#_m_ProgEvnts_DeskFontHandle%=-1
,_m_ProgEvnts_DeskFontChangeHandlerFN$=""
+_m_ProgEvnts_PaletteChangeHandlerFN$=""
(_m_ProgEvnts_ModeChangeHandlerFN$=""
)_m_ProgEvnts_SaveDesktopHandlerFN$=""
,_m_ProgEvnts_TaskInitialiseHandlerFN$=""
+_m_ProgEvnts_TaskCloseDownHandlerFN$=""
&_m_ProgEvnts_ShutdownHandlerFN$=""
%_m_ProgEvnts_PreQuitHandlerFN$=""
"*|Stop FN_shell_ProgEvnts_Init
1*|Start PROCshell_AttachDeskFontChangeHandler
shell_AttachDeskFontChangeHandler(E$)
shell_OSModuleCheckVersion("UtilityModule",3.5)
E$<>""
,_m_ProgEvnts_DeskFontChangeHandlerFN$=E$
0*|Stop PROCshell_AttachDeskFontChangeHandler
/*|Start PROCshell_ProgEvnts_DeskFontChanged
shell_ProgEvnts_DeskFontChanged(SI%)
$_m_ProgEvnts_DeskFontHandle%=SI%
_m_ProgEvnts_DeskFontChangeHandlerFN$<>""
("FN"+_m_ProgEvnts_DeskFontChangeHandlerFN$+"("+
_m_ProgEvnts_DeskFontHandle%+")")
.*|Stop PROCshell_ProgEvnts_DeskFontChanged
0*|Start PROCshell_AttachPaletteChangeHandler
shell_AttachPaletteChangeHandler(E$)
E$<>""
+_m_ProgEvnts_PaletteChangeHandlerFN$=E$
("FN"+E$)
/*|Stop PROCshell_AttachPaletteChangeHandler
.*|Start PROCshell_ProgEvnts_PaletteChanged
shell_ProgEvnts_PaletteChanged
_m_ProgEvnts_PaletteChangeHandlerFN$<>""
("FN"+_m_ProgEvnts_PaletteChangeHandlerFN$)
-*|Stop PROCshell_ProgEvnts_PaletteChanged
-*|Start PROCshell_AttachModeChangeHandler
shell_AttachModeChangeHandler(E$)
E$<>""
(_m_ProgEvnts_ModeChangeHandlerFN$=E$
("FN"+E$)
,*|Stop PROCshell_AttachModeChangeHandler
+*|Start PROCshell_ProgEvnts_ModeChanged
shell_ProgEvnts_ModeChanged
_m_ProgEvnts_ModeChangeHandlerFN$<>""
("FN"+_m_ProgEvnts_ModeChangeHandlerFN$)
**|Stop PROCshell_ProgEvnts_ModeChanged
+.*|Start PROCshell_AttachSaveDesktopHandler
shell_AttachSaveDesktopHandler(E$)
E$<>""
2)_m_ProgEvnts_SaveDesktopHandlerFN$=E$
7-*|Stop PROCshell_AttachSaveDesktopHandler
;+*|Start PROCshell_ProgEvnts_SaveDesktop
shell_ProgEvnts_SaveDesktop(u%)
_m_ProgEvnts_SaveDesktopHandlerFN$<>""
F7z$=
("FN"+_m_ProgEvnts_SaveDesktopHandlerFN$)+
z$=""
L$z$="Run "+
shell_GetAppDir+
&C,2,u%,z$,
V**|Stop PROCshell_ProgEvnts_SaveDesktop
b1*|Start PROCshell_AttachTaskInitialiseHandler
shell_AttachTaskInitialiseHandler(E$)
E$<>""
i,_m_ProgEvnts_TaskInitialiseHandlerFN$=E$
n0*|Stop PROCshell_AttachTaskInitialiseHandler
r.*|Start PROCshell_ProgEvnts_TaskInitialise
shell_ProgEvnts_TaskInitialise(NF%,OB$)
_m_ProgEvnts_TaskInitialiseHandlerFN$<>""
zUj%=
("FN"+_m_ProgEvnts_TaskInitialiseHandlerFN$+"("+
NF%+","+
(34)+OB$+
(34)+")")
-*|Stop PROCshell_ProgEvnts_TaskInitialise
0*|Start PROCshell_AttachTaskCloseDownHandler
shell_AttachTaskCloseDownHandler(E$)
E$<>""
+_m_ProgEvnts_TaskCloseDownHandlerFN$=E$
/*|Stop PROCshell_AttachTaskCloseDownHandler
-*|Start PROCshell_ProgEvnts_TaskCloseDown
shell_ProgEvnts_TaskCloseDown(NF%)
_m_ProgEvnts_TaskCloseDownHandlerFN$<>""
("FN"+_m_ProgEvnts_TaskCloseDownHandlerFN$+"("+
NF%+")")
,*|Stop PROCshell_ProgEvnts_TaskCloseDown
+*|Start PROCshell_AttachShutdownHandler
shell_AttachShutdownHandler(E$)
E$<>""
&_m_ProgEvnts_ShutdownHandlerFN$=E$
**|Stop PROCshell_AttachShutdownHandler
(*|Start PROCshell_ProgEvnts_Shutdown
shell_ProgEvnts_Shutdown
_m_ProgEvnts_ShutdownHandlerFN$<>""
("FN"+_m_ProgEvnts_ShutdownHandlerFN$)
'*|Stop PROCshell_ProgEvnts_Shutdown
**|Start PROCshell_AttachPreQuitHandler
shell_AttachPreQuitHandler(E$)
E$<>""
%_m_ProgEvnts_PreQuitHandlerFN$=E$
)*|Stop PROCshell_AttachPreQuitHandler
'*|Start PROCshell_ProgEvnts_PreQuit
shell_ProgEvnts_PreQuit(xA%)
j%,d%,OF%,PF%,q%
_m_ProgEvnts_PreQuitHandlerFN$<>""
shell_HeapBlockFetch(256)
OF%=xA%!0
d%!q%=_Q%!q%
PF%=d%!4
OF%<24
QF%=0
QF%=d%!20
d%!&C=d%!8
&400E7,19,d%,PF%
("FN"+_m_ProgEvnts_PreQuitHandlerFN$)<>0
_closedown%=
!d%=24
d%!24=508
&400E7,8,d%,PF%
_closedown%=
shell_HeapBlockReturn(d%)
&*|Stop PROCshell_ProgEvnts_PreQuit
*|Start FN_shell_Debug_Init
_shell_Debug_Init
*|Stop FN_shell_Debug_Init
*|Start PROCshell_TraceOn
shell_TraceOn
_U%!&64=_U%!&64
shell_BroadcastMessage(&43B00,"ShellDBug:TraceOn")
*|Stop PROCshell_TraceOn
*|Start PROCshell_TraceOff
shell_TraceOff
(_U%!&64
(1<<9))
_U%!&64=_U%!&64
(1<<9)
shell_BroadcastMessage(&43B00,"ShellDBug:TraceOff")
*|Stop PROCshell_TraceOff
*|Start PROCshell_TraceInit
*|Define TraceInit
shell_TraceInit(_$)
eA%,G$,D$
_$<>""
_U%!44=eA%
N'D$=
shell_OSVarGetVal("Obey$Dir",1)
shell_Leaf(D$),2)
shell_BroadcastMessage(&43B00,"ShellDBug:Init Debug messages from "+G$)
_U%!&64
_U%!&64=(_U%!&64
1<<4)
*|Stop PROCshell_TraceInit
*|Start FNshell_TraceIsOn
shell_TraceIsOn
_U%!&64
(1<<9)
*|Stop FNshell_TraceIsOn
*|Start PROCshell_Tracef0
shell_Tracef0(nA$)
shell_TraceIsOn=
_U%!44<>-1
eA%=_U%!44
#eA%,nA$
_U%!&94>0
shell_BroadcastMessage(&43B00,"ShellDBug:Trace "+nA$)
*|Stop PROCshell_Tracef0
*|Start PROCshell_Tracef2
shell_Tracef2(PB%)
("MEDIT "+
~PB%)
*|Stop PROCshell_Tracef2
*|Start PROCshell_TraceExit
shell_TraceExit
_U%!44<>-1
#(_U%!44):_U%!44=-1
*|Stop PROCshell_TraceExit
*|Start FN_shell_OS_Init
_shell_OS_Init
_m_OS_VAR_BUFFER_SIZE%=256
_m_OS_VAR_BUFFER%_m_OS_VAR_BUFFER_SIZE%
J_m_OS_RiscOS_3_Found%=
shell_OSModuleCheckVersion("UtilityModule",3.1)
*|Stop FN_shell_OS_Init
!*|Start FNshell_RO3_Available
shell_RO3_Available
=_m_OS_RiscOS_3_Found%
*|Stop FNshell_RO3_Available
"*|Start FNshell_OSCheckVersion
shell_OSCheckVersion(L)
shell_OSModuleCheckVersion("UtilityModule",L)
!*|Stop FNshell_OSCheckVersion
(*|Start FNshell_OSModuleCheckVersion
shell_OSModuleCheckVersion(aB$,L)
KC%,Q$
("Set Module$Check Y")
("RMEnsure "+aB$+" "+
L+" Set Module$Check N")
35,"Module$Check",_m_OS_VAR_BUFFER%,256,0,0
,,KC%
_m_OS_VAR_BUFFER%?KC%=&D
("Unset Module$Check")
Q$=$_m_OS_VAR_BUFFER%
Q$="N"
'*|Stop FNshell_OSModuleCheckVersion
*|Start FNshell_OSVarExists
shell_OSVarExists(VA$)
&20023,VA$,_m_OS_VAR_BUFFER%,-1,0,0
*|Stop FNshell_OSVarExists
*|Start FNshell_OSVarGetVal
shell_OSVarGetVal(VA$,Y)
WA$,F,RJ%,q%
&20023,VA$,_m_OS_VAR_BUFFER%,_m_OS_VAR_BUFFER_SIZE%,0,-3*(Y=-1)
,,F,RJ%
#WA$=WA$+
(_m_OS_VAR_BUFFER%?q%)
*|Stop FNshell_OSVarGetVal
$*|Start FNshell_OSReadCommandArg
shell_OSReadCommandArg(Z)
RF%,h$,c%
h$="":c%=0
RF%?c%<>0
(RF%?c%)
c%+=1
34)+1)
34)+2)
#*|Stop FNshell_OSReadCommandArg
*|Start FN_shell_Menus_Init
_shell_Menus_Init
_c_Menu_MinMenuItems%=&A
!= _m_Menu_HandleLastOpened%=-1
_m_Menu_SubLastOpened%=-1
!? jG%=0
!@ kG%=0
*|Stop FN_shell_Menus_Init
*|Start PROCshell_OpenMenu
shell_OpenMenu(SA%,TA%,s%)
shell_ExReg_FontMenu_Loaded
shell_FontMenu_GetHandle
&400D4,,s%,SA%-64,TA%
_Q%!0=SA%
_Q%!4=TA%
&65BC5,s%,_Q%
_Q%!0=SA%
_Q%!4=TA%
&65BC5,s%,_Q%
!W _m_Menu_HandleLastOpened%=s%
jG%=SA%
kG%=TA%
_U%!52=_U%!28
_U%!56=_U%!32
*|Stop PROCshell_OpenMenu
!a *|Start FNshell_MenuLastXPos
shell_MenuLastXPos
*|Stop FNshell_MenuLastXPos
!g *|Start FNshell_MenuLastYPos
shell_MenuLastYPos
*|Stop FNshell_MenuLastYPos
!o"*|Start FNshell_MenuLastHandle
shell_MenuLastHandle
=_m_Menu_HandleLastOpened%
!s!*|Stop FNshell_MenuLastHandle
!w%*|Start FNshell_MenuSubLastHandle
shell_MenuSubLastHandle
=_m_Menu_SubLastOpened%
!{$*|Stop FNshell_MenuSubLastHandle
!~$*|Start PROCshell_MenuAttachDbox
shell_MenuAttachDbox(s$)
"Menu_SetSubHandle",_U%!8,
shell_MenuString(s$),1
#*|Stop PROCshell_MenuAttachDbox
!*|Start PROCshell_MenuWarning
shell_MenuWarning(_Q%)
O$,SH%,SA%,TA%,j%,_temp%,iA%,L$,GC%,d%
#SA%=_Q%!24:TA%=_Q%!28:_U%!264=0
_U%!20<>0
*|ifdef PROCshell_TraceInit
*|endif
shell_DeleteWindow(_U%!20)
*|ifdef PROCshell_TraceInit
*|endif
_Q%!20
_U%!&E4
shell_WindowRetitle(_U%!&E4,
shell_MessageNoArgs("warning"))
shell_IconPutData(_U%!&E4,1,
shell_MessageNoArgs("SHELLMSG07"),0)
&400E8,,_U%!&E4,SA%,TA%
CGC%=
shell_MenuGetItemAddress(_m_Menu_HandleLastOpened%,_Q%+32)
shell_HeapBlockExists(GC%!4)
shell_MenuWarnDBox(GC%,SA%,TA%)
shell_HeapBlockFetch(32)
&45BC4,_m_Menu_HandleLastOpened%,_Q%+32
shell_FindMenuWarnEvent(d%!8,L$,T$)
shell_HeapBlockReturn(d%)
shell_MenuWarnSubMenu(_Q%!20,SA%,TA%,L$,T$)
*|Stop PROCshell_MenuWarning
"*|Start PROCshell_MenuWarnDBox
shell_MenuWarnDBox(PB%,SA%,TA%)
g%,y%,j%
g%=PB%!4
shell_CreateWindow($g%!0,y%)
*|ifdef TraceInit
*|endif
$g%!4<>""
*|ifdef TraceInit
*|endif
("FN"+$g%!4+"("+
y%+")")
$g%!8<>""
*|ifdef TraceInit
*|endif
("FN"+$g%!8+"("+
y%+")")
&400E8,,y%,SA%,TA%
_U%!20=y%
!*|Stop PROCshell_MenuWarnDBox
%*|Start PROCshell_MenuWarnSubMenu
shell_MenuWarnSubMenu(ME%,SA%,TA%,L$,T$)
j%,g%,YD%,i%
_shell_FontMenuSelFN$=T$
shell_HeapBlockExists(_U%!&E0)
shell_HeapBlockReturn(_U%!&E0)
(_U%!&E0=
shell_HeapBlockFetch(
L$+1)
g%=_U%!&E0
$g%=L$
L$<>""
("FN"+L$+"(_U%!52,_U%!56)")
*|ifdef PROCshell_TraceInit
*|endif
*|ifdef Using_FontMenu
ME%=_U%!&FC
*|ifdef PROCshell_TraceInit
*|endif
shell_HeapBlockExists(_U%!256)
shell_HeapBlockReturn(_U%!256)
'i%=0:
:i%+=4:
!(_Q%+32+i%)=-1:i%+=4
0_U%!256=
shell_HeapBlockFetch(i%):g%=_U%!256
g%!i%=!(_Q%+32+i%)
i%+=4
!(_Q%+32+i%)=-1
g%!i%=!(_Q%+32+i%)
g%=_U%!256
*|ifdef PROCshell_TraceInit
*|endif
&8D082,
shell_FontMenuGetLastSelectedFont,_U%!260
_U%!264=1
YD%<>_U%!&FC
shell_FontMenuUpdatePtr(YD%)
_U%!&FC=YD%:ME%=YD%
_U%!264=0
*|endif
&400E8,,ME%,SA%,TA%
_m_Menu_SubLastOpened%=ME%
$*|Stop PROCshell_MenuWarnSubMenu
#*|Start PROCshell_AttachSubMenu
shell_AttachSubMenu(UC%,cC%,L$)
&45BCE,UC%,cC%
L$<>""
&45BCC,,
shell_EventListMenuWarn(UC%,cC%,L$,"")
"*|Stop PROCshell_AttachSubMenu
*|Start FNshell_MenuNew
shell_MenuNew(HB$,Z$,SF%)
*|ifdef TraceInit
*|endif
SF%<_c_Menu_MinMenuItems%
SF%=_c_Menu_MinMenuItems%
&45BC1,,HB$,SF%
shell_MenuList_AddMenu(s%,Z$)
*|Stop FNshell_MenuNew
*|Start FNshell_MenuAdd
shell_MenuAdd(m%,pA$,T$)
*|ifdef TraceInit
*|endif
T$<>""
&45BC2,m%,pA$,T$
&45BC2,m%,pA$
*|Stop FNshell_MenuAdd
*|Start PROCshell_MenuTick
shell_MenuTick(PA%,wA%)
&45BC9,PA%,wA%
*|Stop PROCshell_MenuTick
"N"*|Start PROCshell_MenuTickItem
shell_MenuTickItem(PA%)
shell_MenuTick(PA%,1)
"U!*|Stop PROCshell_MenuTickItem
"Y$*|Start PROCshell_MenuUnTickItem
shell_MenuUnTickItem(PA%)
shell_MenuTick(PA%,0)
"`#*|Stop PROCshell_MenuUnTickItem
"d#*|Start PROCshell_MenuTickOnly1
shell_MenuTickOnly1(s%,NA%)
&45BD1,s%,NA%
"k"*|Stop PROCshell_MenuTickOnly1
"o#*|Start PROCshell_MenuTickOnly2
shell_MenuTickOnly2(PA%)
&45BD1,PA%
"t"*|Stop PROCshell_MenuTickOnly2
*|Start PROCshell_MenuShade
shell_MenuShade(m%,wA%)
&45BCB,m%,wA%
*|Stop PROCshell_MenuShade
*|Start PROCshell_MenuDotted
shell_MenuDotted(PA%,wA%)
&45BCA,PA%,wA%
*|Stop PROCshell_MenuDotted
!*|Start PROCshell_MenuColours
shell_MenuColours(PA%,wE%,xE%)
&45BD0,PA%,wE%,xE%
*|Stop PROCshell_MenuColours
"*|Start PROCshell_MenuWritable
shell_MenuWritable(PA%,wA%,NB%,RA$)
&45BCD,PA%,wA%,NB%,RA$
!*|Stop PROCshell_MenuWritable
!*|Start PROCshell_MenuPutData
shell_MenuPutData(PA%,F$)
&45BC8,PA%,F$
*|Stop PROCshell_MenuPutData
#*|Start PROCshell_MenuSortItems
shell_MenuSortItems(z%,RB$,BJ%,jD%,TF%)
#VC%=
shell_MenuGetNrItems(z%)-1
_shell_MS_handle%=z%
TF%>VC%
TF%=VC%
&406C0
shell_QuickSort(RB$,"_shell_MS_swap",BJ%,0,TF%)
&406C1
"*|Stop PROCshell_MenuSortItems
"*|Start FNshell_MenuGetNrItems
shell_MenuGetNrItems(s%)
z%,t%,oG%
&45BC7,s%
z%+=28
t%=(z%?0
oG%+=1
z%+=24
!*|Stop FNshell_MenuGetNrItems
#*|Start FNshell_MenuGetNrDotted
shell_MenuGetNrDotted(s%)
z%,t%,NE%
&45BC7,s%
z%+=28
t%=(z%?0
(z%?0
NE%+=1
z%+=24
t%=-1
"*|Stop FNshell_MenuGetNrDotted
&*|Start FNshell_MenuGetItemHandler
shell_MenuGetItemHandler(s%,UF%)
YB%,f%,XA$
YB%=
shell_HeapBlockFetch(8)
YB%!0=UF%
YB%!4=-1
&45BC4,s%,YB%
XA$=""
XA$=$(f%)
shell_HeapBlockReturn(YB%)
%*|Stop FNshell_MenuGetItemHandler
#*|Start FNshell_MenuGetItemText
shell_MenuGetItemText(s%,UF%)
YB%,f%,J$
YB%=
shell_HeapBlockFetch(8)
YB%!0=UF%
YB%!4=-1
&45BC4,s%,YB%
J$=$(f%!&C)
shell_HeapBlockReturn(YB%)
"*|Stop FNshell_MenuGetItemText
%*|Start FNshell_MenuGetItemHandle
shell_MenuGetItemHandle(s%,nB%)
f%,PA%,o%
shell_HeapBlockFetch(40)
&65BC4,s%,nB%
,,f%;o%
PA%=0
PA%=f%!8
shell_HeapBlockReturn(f%)
$*|Stop FNshell_MenuGetItemHandle
# %*|Start FNshell_MenuGetItemHeight
shell_MenuGetItemHeight(s%)
&45BC7,s%
=z%!20
#&$*|Stop FNshell_MenuGetItemHeight
#('*|Start FNshell_MenuCalculateHeight
shell_MenuCalculateHeight(s%)
#+>oA%=
shell_MenuGetNrItems(s%)*
shell_MenuGetItemHeight(s%)
#,(=oA%+(
shell_MenuGetNrDotted(s%)*24)
#.&*|Stop FNshell_MenuCalculateHeight
#2 *|Start PROCshell_MenuDelete
shell_MenuDelete(s%,WI%)
f%,EA%,n%
s%<>0
&65BC3,s%,WI%
shell_MenuList_DeleteMenu(s%)
*|Stop PROCshell_MenuDelete
#J"*|Start PROCshell_MenuOpenLast
shell_MenuOpenLast
&65BC5,_m_Menu_HandleLastOpened%
#O!*|Stop PROCshell_MenuOpenLast
#S"*|Start PROCshell_MenuCloseAll
shell_MenuCloseAll
&400D4,,-1
#X!*|Stop PROCshell_MenuCloseAll
#\$*|Start FNshell_MenuMakeFromFile
shell_MenuMakeFromFile(l$,Z$,TB$,_$)
s%,X%,C$,j%,VC%
shell_FileExists(_$)
#c VC%=0
C$<>""
C$,1)<>"#"
VC%+=1
#X%=0
#m s%=
shell_MenuNew(l$,Z$,VC%)
C$<>""
C$,1)<>"#"
#r j%=
shell_MenuAdd(s%,C$,TB$)
#{#*|Stop FNshell_MenuMakeFromFile
"*|Start FN_shell_MenuList_Init
_shell_MenuList_Init
_c_MenuList_HeaderSize%=4
_c_MenuList_ListTerm%=-1
_m_MenuList_DataBlk%=-1
_m_MenuList_NrMenus%=0
!*|Stop FN_shell_MenuList_Init
)*|Start FNshell_MenuList_GetSysHandle
shell_MenuList_GetSysHandle(Z$)
f%,s%,rA%
_m_MenuList_DataBlk%<>-1
_m_MenuList_DataBlk%!f%<>_c_MenuList_ListTerm%
rA%=_m_MenuList_DataBlk%!f%
shell_Tracef0("MenuList_GetSysHandle:menu_identifier$ = "+$(rA%+_c_MenuList_HeaderSize%))
$(rA%+_c_MenuList_HeaderSize%)=Z$
s%=!rA%
shell_Tracef0("MenuList_GetSysHandle:menu_handle% = "+
f%+=4
(*|Stop FNshell_MenuList_GetSysHandle
**|Start FNshell_MenuList_GetIdentifier
shell_MenuList_GetIdentifier(s%)
f%,Z$,rA%
_m_MenuList_DataBlk%<>-1
_m_MenuList_DataBlk%!f%<>_c_MenuList_ListTerm%
rA%=_m_MenuList_DataBlk%!f%
rA%!0=s%
%Z$=$(rA%+_c_MenuList_HeaderSize%)
f%+=4
)*|Stop FNshell_MenuList_GetIdentifier
&*|Start PROCshell_MenuList_AddMenu
shell_MenuList_AddMenu(s%,Z$)
f%,rA%
_m_MenuList_DataBlk%=-1
shell_MenuList_CreateNewList
G_m_MenuList_DataBlk%=
shell_HeapBlockExtend(_m_MenuList_DataBlk%,4)
f%=_m_MenuList_NrMenus%*4
R_m_MenuList_DataBlk%!f%=
shell_HeapBlockFetch(_c_MenuList_HeaderSize%+
(Z$)+1)
rA%=_m_MenuList_DataBlk%!f%
rA%!0=s%
%$(rA%+_c_MenuList_HeaderSize%)=Z$
_m_MenuList_NrMenus%+=1
G_m_MenuList_DataBlk%!(_m_MenuList_NrMenus%*4)=_c_MenuList_ListTerm%
%*|Stop PROCshell_MenuList_AddMenu
)*|Start PROCshell_MenuList_DeleteMenu
shell_MenuList_DeleteMenu(s%)
f%,rA%
_m_MenuList_NrMenus%>0
_m_MenuList_NrMenus%=1
shell_MenuList_DestroyList
_m_MenuList_DataBlk%!f%<>_c_MenuList_ListTerm%
rA%=_m_MenuList_DataBlk%!f%
rA%!0=s%
%$(rA%+_c_MenuList_HeaderSize%)=""
rA%!0=0
f%+=4
(*|Stop PROCshell_MenuList_DeleteMenu
,*|Start PROCshell_MenuList_CreateNewList
shell_MenuList_CreateNewList
shell_MenuList_DestroyList
1_m_MenuList_DataBlk%=
shell_HeapBlockFetch(8)
0_m_MenuList_DataBlk%!4=_c_MenuList_ListTerm%
+*|Stop PROCshell_MenuList_CreateNewList
$ **|Start PROCshell_MenuList_DestroyList
shell_MenuList_DestroyList
_m_MenuList_DataBlk%<>-1
shell_HeapBlockReturn(_m_MenuList_DataBlk%)
_m_MenuList_DataBlk%=-1
_m_MenuList_NrMenus%=0
$+)*|Stop PROCshell_MenuList_DestroyList
$D$*|Start FN_shell_StaticList_Init
_shell_StaticList_Init
$F sA%=0
$H#*|Stop FN_shell_StaticList_Init
$L/*|Start PROCshell_StaticWindowListAddHandle
shell_StaticWindowListAddHandle(m%)
c%,i%,g%
sA%=0
$S sA%=
shell_HeapBlockFetch(8)
sA%!0=m%
sA%!4=-1
shell_SearchStatic(m%)
c%=-1
shell_SearchStatic(0)
c%=-1
sA%!i%<>-1
$e i%+=4
$g%sA%=
shell_HeapBlockExtend(sA%,4)
g%=sA%+i%
g%!0=m%
g%!4=-1
g%=sA%+c%
g%!0=m%
$t.*|Stop PROCshell_StaticWindowListAddHandle
$x0*|Start PROCshell_RemoveStaticWindowFromList
shell_RemoveStaticWindowFromList(e%)
c%,i%,w%
sA%>0
sA%!i%=e%
sA%!i%=0
i%+=4
sA%!i%<>-1
/*|Stop PROCshell_RemoveStaticWindowFromList
.*|Start PROCshell_UpdateStaticWindowHandle
shell_UpdateStaticWindowHandle(jA%,ZA%)
shell_SearchStatic(jA%)
sA%!c%=ZA%
-*|Stop PROCshell_UpdateStaticWindowHandle
*|Start FNshell_SearchStatic
shell_SearchStatic(m%)
w%,i%
w%=-1:i%=0
sA%<>0
sA%!i%<>-1
sA%!i%=m%
w%=i%
i%+=4
*|Stop FNshell_SearchStatic
"*|Start FNshell_IsWindowStatic
shell_IsWindowStatic(e%)
-1,-2
_U%!20
shell_SearchStatic(e%)>-1
!*|Stop FNshell_IsWindowStatic
"*|Start FN_shell_DataLoad_Init
_shell_DataLoad_Init
tG%=-1
PE%=24
XC%=-1
YA$=""
vG%=-1
wG%=-1
ZA$=""
"AA$=
shell_OSReadCommandArg(1)
AA$<>""
XF%=
shell_FileType(AA$)
XF%=
xG%=-1
!SB%=0
!OJ%=0
!_EVNTS_DATALOAD_DATAOFFSET%=0
!*|Stop FN_shell_DataLoad_Init
$*|Start PROCshell_AttachDataLoad
shell_AttachDataLoad(e%,h%,tA%,O$,yG%)
b%,c%,A$,p%,VA%
aD%,i%,YC%,zJ%,RE%
e%=_IBAR_RIGHT%
e%=_IBAR_LEFT%
tG%=h%
tA%=tA%
1<<31
tA%=-1
shell_GetWindowIdentifier(e%)
Evnts_GetEvntListOffset(A$,h%,SB%,PE%,
b%=!SB%
VA%=b%!4
b%+=c%
$b%=A$
b%!&C=h%
aD%=b%!16
aD%=-1
tA%<>-1
"b%!16=
shell_HeapBlockFetch(8)
aD%=b%!16
aD%!0=tA%
aD%!4=-1
b%!16=-1
%+"b%!20=
shell_HeapBlockFetch(8)
YC%=b%!20
%-(YC%!0=
shell_HeapBlockFetch(
(O$)+1)
YC%!4=-1
g%=YC%!0
$g%=O$
tA%=-1
shell_HeapBlockReturn(b%!16)
shell_HeapBlockReturn(b%!20)
b%!16=-1
YC%=b%!20
%=%!YC%=
shell_HeapBlockFetch(
O$+1)
g%=!YC%
$g%=O$
%D)b%!16=
shell_HeapBlockExtend(b%!16,4)
%F)b%!20=
shell_HeapBlockExtend(b%!20,4)
g%=b%!16
g%!i%<>-1
%L i%+=4
g%!i%=tA%
g%!(i%+4)=-1
g%=b%!20
%S&g%!i%=
shell_HeapBlockFetch(
O$+1)
g%=g%!i%
$g%=O$
AA$<>""
1<<31
RE%=tA%
1<<31
RE%=tA%
xG%=RE%
shell_FileExists(AA$)
shell_MessageSendDataLoad(RE%,AA$)
%z XF%=
#*|Stop PROCshell_AttachDataLoad
)*|Start PROCshell_EvntHandle_DataLoad
shell_EvntHandle_DataLoad(SE%,xC%)
XC%=SE%!40
wG%=SE%!20
vG%=SE%!24
YA$=
shell_GetString(SE%+44)
DataLoad_OKToLoad(xC%)
DataLoad_ProcessDClickLoad
'ZA$=
shell_GetWindowIdentifier(wG%)
DataLoad_ProcessDragLoad
(*|Stop PROCshell_EvntHandle_DataLoad
**|Start PROCDataLoad_ProcessDClickLoad
DataLoad_ProcessDClickLoad
Evnts_GetEvntListOffset("iconbar",tG%,SB%,PE%,
DataLoad_ProcessLoadRequest
)*|Stop PROCDataLoad_ProcessDClickLoad
(*|Start PROCDataLoad_ProcessDragLoad
DataLoad_ProcessDragLoad
Evnts_GetEvntListOffset(ZA$,vG%,SB%,PE%,
b%=!SB%
Evnts_GetEvntListOffset(ZA$,-1,SB%,PE%,
b%=!SB%,
DataLoad_ProcessLoadRequest
'*|Stop PROCDataLoad_ProcessDragLoad
+*|Start PROCDataLoad_ProcessLoadRequest
DataLoad_ProcessLoadRequest
c%>-1
b%=!SB%
b%+=c%
AH%=b%!16
DataLoad_CheckType(AH%,
RI%=_Q%!&C
_Q%!&C=_Q%!8
_Q%!16=4
&400E7,18,_Q%,_Q%!4
_U%!&64
VB%=-1
_U%!&64=_U%!&64
$VB%=
shell_LoadFile(RI%=_U%!&6C)
DataLoad_CallUserFN(VB%,AH%,_Q%!36,b%)
_U%!&9C<>0
shell_HeapBlockReturn(_U%!&9C)
_U%!&9C=0
**|Stop PROCDataLoad_ProcessLoadRequest
*|Start FNDataLoad_CheckType
DataLoad_CheckType(dA%,xC%)
pJ%,i%,w%,g%,TE%
i%=0:w%=-1:TE%=
_U%!&64
_U%!&64=_U%!&64
dA%=-1
dA%!i%<>-1
g%=dA%!i%
1<<31
g%=g%
1<<31
TE%=
TE%=
g%=XC%
w%=i%
_U%!&64=_U%!&64
i%+=4
(XC%>=4096)
w%=-1
w%<>-1
*|Stop FNDataLoad_CheckType
#*|Start PROCDataLoad_CallUserFN
DataLoad_CallUserFN(VB%,dA%,_file_size%,b%)
i%,w%,fB%,j%,CH%,IA$
w%=-1
dA%=-1
dA%!i%<>-1
fB%=dA%!i%
1<<31
fB%=fB%
1<<31
fB%=XC%
w%=i%
i%+=4
CH%=b%!20
IA$=$(CH%!w%)
IA$<>""
shell_Tracef0("UserFNLoadFile:About to call FN"+IA$+"("+
VB%+","+
XC%+",m_DLoad_FileName$,"+
_file_size%+")")
shell_Tracef0("UserFNLoadFile:filename is '"+YA$+"'")
&$Ij%=
("FN"+IA$+"("+
VB%+","+
XC%+","+
34+YA$+
34+","+
_file_size%+")")
&)"*|Stop PROCDataLoad_CallUserFN
*|Start FNDataLoad_OKToLoad
DataLoad_OKToLoad(xC%)
t%,aA$,rA$
shell_Tracef0("DataLoad_OKToLoad:Message reason code was 3, normal drag load..")
shell_Tracef0("DataOpenOKToLoad:Message reason code was 5, double click load..")
&A5aA$=
shell_OSVarGetVal("Alias$@RunType_"+
~XC%,1)
shell_Tracef0("DataLoad_OKToLoad:Alias$@RunType="+aA$)
shell_Branch(aA$)
shell_Leaf(rA$)="!"+
shell_GetAppName
*|Stop FNDataLoad_OKToLoad
&P"*|Start PROCshell_ListDataLoad
shell_ListDataLoad
k%,f%,VA%,i%,dA%,zC%
h%,q%,U$,cA$
k%=!SB%
VA%=k%!4
Evnts_DebugListHeader ("DataLoad ","Window Icon Filetype NL LoadFN")
shell_Tracef0("No DataLoad Events found")
f%=_EVNTS_HEADER_SIZE%
A$=$(k%+f%)
h%=k%!(f%+&C)
dA%=k%!(f%+16)
zC%=k%!(f%+20)
dA%!i%<>-1
&j*U$=
shell_StringPadTrailing(A$,".",&C)
&k.U$+=" "+
shell_StringPadLeading(
h%," ",3)
fB%=dA%!i%
1<<31
cA$=" Y "
fB%=fB%
1<<31
cA$=" N "
&s!U$+=" &"+
~(fB%)+" "+cA$
U$+=$(zC%!i%)
shell_Tracef0(U$)
&v i%+=4
f%+=nJ%
shell_Tracef0(" ")
!*|Stop PROCshell_ListDataLoad
"*|Start PROCDataLoad_SaveEvnts
DataLoad_SaveEvnts(u%)
b%,cA%,cD%,q%,f%
dA%,zC%,i%,B$,dF%
b%=!SB%
#u%,0
cA%=!b%
#u%,1
&C,2,u%,b%,cA%+
Evnts_GetHeaderSize
cD%=b%!4
Evnts_GetHeaderSize
dA%=b%!(f%+16)
zC%=b%!(f%+20)
dA%!i%<>-1
i%+=4
#u%,i%/4
&C,2,u%,dA%,i%+4
dF%=0
#u%,$(zC%!dF%)
!*|Stop PROCDataLoad_SaveEvnts
"*|Start PROCDataLoad_LoadEvnts
DataLoad_LoadEvnts(u%)
DH%,cA%,b%,_J%,cD%
f%,i%,dA%,zC%,tA%,cI%
DH%=1
DataLoad_ReadWord(u%)
shell_HeapBlockFetch(cA%)
!SB%=b%
!b%=cA%
&C,4,u%,b%+4,cA%+
Evnts_GetHeaderSize-4
cD%=b%!4
Evnts_GetHeaderSize
dA%=
shell_HeapBlockFetch(4)
DataLoad_ReadWord(u%)
DataLoad_ReadWord(u%)
dA%!i%=tA%
tA%<>-1
%dA%=
shell_HeapBlockExtend(dA%,4)
i%+=4
tA%=-1
b%!(f%+16)=dA%
!*|Stop PROCDataLoad_LoadEvnts
*Start FNDataLoad_ReadWord
DataLoad_ReadWord(u%)
ZD%?0=
ZD%?1=
ZD%?2=
ZD%?3=
=!ZD%
*Stop FNDataLoad_ReadWord
"*|Start FN_shell_DataSave_Init
_shell_DataSave_Init
!dD%=0
!eD%=0
iI%=0
tA$=""
gF%=-1
fD%=-1
dA$=""
u$=""
EH%=-1
gD%=-1
DC%=-1
fA$=""
tI%=-1
hD%=-1
ZC%=-1
kF%=-1
AJ%=-1
YE%=-1
', LE%=
'- iD%=
KB$="SHELLMSG29"
LB$="SHELLMSG28"
jB$="SHELLMSG19"
MB$="SHELLMSG21"
iB$="SHELLMSG39"
'6 FJ%=6
JJ%=&64
JH%=32
'<!*|Stop FN_shell_DataSave_Init
'@$*|Start PROCshell_AttachDataSave
shell_AttachDataSave(e%,h%,lF%,tA%,EI%,B$)
A$,c%,b%,VA%,p%
shell_IconIsSprite(e%,h%)
shell_OK(
shell_MessageNoArgs(KB$))
shell_IconSetButtonType(e%,h%,FJ%)
lF%=0
lF%=JJ%
'R%A$=
shell_GetWindowIdentifier(e%)
'S0c%=
Evnts_GetEvntListOffset(A$,h%,dD%,JH%,
b%=!dD%
VA%=b%!4
b%+=c%
$b%=A$
b%!&C=h%
b%!16=tA%
b%!20=EI%
b%!24=lF%
!eD%=0
'_'!eD%=
shell_HeapBlockFetch(
(B$)+1)
p%=b%+28
Evnts_UpdateData(p%,eD%,iI%,B$)
'f#*|Stop PROCshell_AttachDataSave
'jN*|Start PROCshell_EvntHandle_DataSaveStartDrag
shell_EvntHandle_DataSaveStartDrag(e%,h%)
JA%,x%
'n iD%=
'o&tA$=
shell_GetWindowIdentifier(e%)
'p2gF%=
Evnts_GetEvntListOffset(tA$,h%,dD%,JH%,
gF%>=0
fD%=!dD%+gF%
gD%=fD%!16
EH%=fD%!20
DC%=fD%!24
x%=!eD%
JA%=fD%!28
fA$=$(x%+JA%)
'}"dA$=
shell_IconGetData(e%,EH%)
dA$=""
shell_OK(
shell_MessageNoArgs(LB$))
shell_IconDragBox(e%,h%)
iD%=
1*|Stop PROCshell_EvntHandle_DataSaveStartDrag
0*|Start PROCshell_EvntHandle_DataSaveEndDrag
shell_EvntHandle_DataSaveEndDrag
bA%,xA%,mF%
&42401
LE%=
iD%=
!bA%=
shell_HeapBlockFetch(30)
&400CF,,bA%
tI%=bA%!4
hD%=bA%!&C
ZC%=bA%!16
kF%=bA%!0
AJ%=bA%!4
DC%>&8000
#mF%=
shell_HeapBlockInfo(DC%)-4
mF%=DC%
!xA%=
shell_HeapBlockFetch(60)
xA%!0=60
xA%!&C=0
xA%!16=1
xA%!20=hD%
xA%!24=ZC%
xA%!28=kF%
xA%!32=kF%
xA%!36=mF%
xA%!40=gD%
$(xA%+44)=
shell_Leaf(dA$)
&400E7,18,xA%,hD%,ZC%
YE%=xA%!8
shell_HeapBlockReturn(bA%)
shell_HeapBlockReturn(xA%)
/*|Stop PROCshell_EvntHandle_DataSaveEndDrag
!*|Start PROCshell_DataSaveAck
shell_DataSaveAck(GA%)
MH%,j%
MH%=GA%!&C
MH%=YE%
shell_GetString(GA%+44)
fA$<>""
("FN"+fA$+"( "+
34+u$+
34+" )")
shell_HeapBlockExists(DC%)
8,&A,u$,gD%,,DC%,DC%+
shell_HeapBlockInfo(DC%)+1
shell_MessageNoArgs(MB$)
GA%!36>-1
GA%!16=3
GA%!0=256
GA%!20=hD%
GA%!24=ZC%
GA%!40=gD%
GA%!36=
shell_FileLength(u$)
GA%!&C=GA%!8
$(GA%+44)=u$+
&400E7,18,GA%,ZC%,ZC%
YE%=GA%!8
Evnts_GetLastWindowClicked<>
shell_GetDynamicWindowHandle
shell_CloseWindow(
Evnts_GetLastWindowClicked)
shell_MenuCloseAll
shell_PrintSave(u$,hD%,ZC%,GA%!8,gD%)
_U%!336>0
_U%!336-=1
shell_DoSendPrintSave(&FFF)
*|Stop PROCshell_DataSaveAck
"*|Start PROCshell_ListDataSave
shell_ListDataSave
!*|Stop PROCshell_ListDataSave
"*|Start PROCDataSave_SaveEvnts
DataSave_SaveEvnts(u%)
!*|Stop PROCDataSave_SaveEvnts
!*|Start PROCshell_AckDataLoad
shell_AckDataLoad(_Q%)
_Q%!&C<>YE%
*|Stop PROCshell_AckDataLoad
**|Start FNshell_DataSaveDragInProgress
shell_DataSaveDragInProgress
)*|Stop FNshell_DataSaveDragInProgress
(D!*|Start FN_shell_Sliders_Init
_shell_Sliders_Init
NH%=-1
(K nF%=
oF%=-1
QH%=-1
RH%=-1
EC%=-1
_C%=-1
mA%50
KA%50
aE%20
cJ%50
*|extract FN_Sliders_Bump
*|extract FN_Sliders_Drag
(] *|Stop FN_shell_Sliders_Init
(a$*|Start PROCshell_SliderSetValue
shell_SliderSetValue(aC%,_value%)
b%,b%,VH%,WH%,WA%
HA%,gA$,l%,iJ%,oJ%
dJ%,eJ%,fJ%,j%,gA$
R$,ZB%,bC%,sF%
aC%<0
b%=!_EVNTS_SLIDERS_ANCHOR%
b%+=aC%
VH%=b%!&C
WH%=b%!16
WA%=b%!20
bC%=b%!36
gA$=$b%
(v'HA%=
shell_GetWindowHandleList(gA$)
e%=!HA%
e%<=0
e%=HA%!4
mA%!0=e%
mA%!4=WH%
&400CE,,mA%
uF%=mA%!16
dE%=mA%!8
eE%=mA%!&C
vF%=mA%!20
(eE%)-
(vF%)
tF%=uF%-dE%
mA%!4=VH%
&400CE,,mA%
&400C4,,mA%
mA%!4=e%
_value%>&64
_value%=&64
_value%<=0
_value%=0
tF%>sF%
mA%!16=mA%!8
mA%!20=mA%!&C
tF%>sF%
6mA%!16=dE%+(uF%*(_value%/&64))-(dE%*(_value%/&64))
6mA%!20=eE%+(vF%*(_value%/&64))-(eE%*(_value%/&64))
b%!36=_value%
&400C2,,mA%+4
&400D1,e%,dE%,eE%,uF%,vF%
ZB%=!_EVNTS_SLIDERS_DATA%
ZB%>0
R$=$(ZB%+b%!32)
R$<>""
("FN"+R$+"("+
_value%+")")
WA%>=0
shell_IconPutData(e%,WA%,
(_value%),
#*|Stop PROCshell_SliderSetValue
'*|Start FNshell_AttachSliderHandler
shell_AttachSliderHandler(e%,cH%,kD%,iC%,wF%,eH%,Y$)
YI%,c%,A$,b%,p%
shell_GetWindowIdentifier(e%)
Evnts_GetEvntListOffset(A$,kD%,_EVNTS_SLIDERS_ANCHOR%,_EVNTS_SLIDERS_REC_SIZE%,
b%=!_EVNTS_SLIDERS_ANCHOR%
b%+=c%
$b%=A$
b%!&C=kD%
b%!16=cH%
b%!20=iC%
b%!24=wF%
b%!28=eH%
b%!36=-1
!_EVNTS_SLIDERS_DATA%=0
2!_EVNTS_SLIDERS_DATA%=
shell_HeapBlockFetch(1)
p%=b%+32
Evnts_UpdateData(p%,_EVNTS_SLIDERS_DATA%,_EVNTS_SLIDERS_DATAOFFSET%,Y$)
shell_AttachClickSelect(e%,kD%,"_shell_icondrag")
shell_AttachClickSelect(e%,cH%,"_Sliders_Drag")
wF%>=0
shell_AttachBumpHandler(e%,iC%,wF%,eH%,0,&64,1,
,"_Sliders_Bump","")
&*|Stop FNshell_AttachSliderHandler
*|Start FN_Sliders_Bump
_Sliders_Bump(ID%,lD%)
e%,h%,b%,KB%,OA%,cA%
w%,aC%,A$,mD%,nD%
shell_GetLastWindowClicked
shell_GetLastIconClicked
shell_GetWindowIdentifier(e%)
b%=!_EVNTS_SLIDERS_ANCHOR%
cA%=b%!0
OA%=b%!4
KB%=_EVNTS_HEADER_SIZE%
mD%=b%!(KB%+24)
nD%=b%!(KB%+28)
A$=$(b%+KB%)
mD%=h%
nD%=h%
aC%=KB%
!KB%+=_EVNTS_SLIDERS_REC_SIZE%
KB%>=cA%
shell_SliderSetValue(aC%,ID%)
(ID%)
*|Stop FN_Sliders_Bump
"*|Start PROCshell_HandleSlider
shell_HandleSlider(e%,h%)
A$,b%,iH%,WA%
KB%,R$,ZB%,bC%,c%
shell_GetWindowIdentifier(e%)
b%=!_EVNTS_SLIDERS_ANCHOR%
Evnts_GetEvntListOffset(A$,h%,_EVNTS_SLIDERS_ANCHOR%,_EVNTS_SLIDERS_REC_SIZE%,
NH%=c%
c%>-1
KB%=b%+c%
iH%=!(KB%+16)
WA%=!(KB%+20)
bC%=!(KB%+36)
ZB%=!_EVNTS_SLIDERS_DATA%
ZB%>0
R$=$(ZB%+KB%!32)
KA%!0=e%
KA%!4=iH%
&400CE,,KA%
EC%=KA%!16-KA%!8
_C%=KA%!20-KA%!&C
RH%=h%
AK%=WA%
vA$=R$
GK%=bC%
KA%!0=e%
&400CB,,KA%
SA%=KA%!4-KA%!20
TA%=KA%!16-KA%!24
KA%!4=h%
&400CE,,KA%
KA%!4=7
KA%!8+=SA%
KA%!&C+=TA%
KA%!16+=SA%
KA%!20+=TA%
KA%!24=KA%!8
KA%!28=KA%!&C
EC%>_C%
KA%!32=KA%!24+EC%
KA%!36=KA%!20
KA%!32=KA%!24+EC%
KA%!36=KA%!28+_C%
&400D0,,KA%
)? nF%=
)E!*|Stop PROCshell_HandleSlider
*|Start PROCshell_Slider
shell_Slider
e%,oD%,SA%,d%,j%,gE%,TA%
&400CF,,aE%
e%=aE%!&C
oD%=!aE%
gE%=aE%!4
oD%<>oF%
gE%<>QH%
oF%=oD%
QH%=gE%
d%=cJ%
!d%=e%
&400CB,,d%
SA%=oD%-d%!4
TA%=gE%-d%!16
d%!4=RH%
&400CE,,d%
&400C4,,d%
d%!4=e%
EC%>_C%
d%!16=SA%
&400C2,,d%+4
&400D1,e%,d%!8,d%!&C,d%!8+EC%,d%!20
)c _value%=((SA%-d%!8)*&64)/EC%
shell_SliderSetValue(NH%,_value%)
d%!20=TA%
&400C2,,d%+4
&400D1,e%,d%!8,d%!&C,d%!8+EC%,d%!20+_C%
)i!_value%=((TA%-d%!&C)*&64)/_C%
vA$<>""
)m#j%=
("FN"+vA$+"("+
_value%+")")
oF%=oD%
*|Stop PROCshell_Slider
)z"*|Start FNshell_SliderGetValue
shell_SliderGetValue(aC%)
b%,bC%
b%=!_EVNTS_SLIDERS_ANCHOR%
b%+=aC%
bC%=b%!36
!*|Stop FNshell_SliderGetValue
*|Start FN_Sliders_Drag
_Sliders_Drag(e%,h%)
b%,OA%,BA%,f%,A$
w%,cA%
b%=!_EVNTS_SLIDERS_ANCHOR%
BA%=_EVNTS_SLIDERS_REC_SIZE%
cA%=b%!0
OA%=k%!4
f%=_EVNTS_HEADER_SIZE%
shell_GetWindowIdentifier(e%)
$(b%+f%)=A$
b%!(f%+16)=h%
kD%=b%!(f%+&C)
f%+=BA%
f%>=cA%
shell_IconDragBox(e%,kD%)
*|Stop FN_Sliders_Drag
(*|Start FNshell_SliderDragInProgress
shell_SliderDragInProgress
'*|Stop FNshell_SliderDragInProgress
!*|Start FNshell_SliderDragEnd
shell_SliderDragEnd
nF%=
*|Stop FNshell_SliderDragEnd
*|Start FN_shell_Errors_Init
_shell_Errors_Init
_ERRNR_NONFATAL=&D00
_ERRNR_CLAIMMEM=&903
_ERRORS_ERR_BLK%256
*|Stop FN_shell_Errors_Init
*|Start PROCshell_Error
shell_Error
NA%,KA$
&606C2
<>_ERRNR_NONFATAL
<>_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 "+
+")")
+NA%=
$,"in "+
34+"EvntShell:ShellLib")
NA%>0
$,NA%-1)
(KA$+=" (Internal error code "+
shell_ErrorBox(KA$)
*|Stop PROCshell_Error
*|Start PROCshell_OK
shell_OK(PB$)
_ERRNR_NONFATAL,PB$
*|Stop PROCshell_OK
*|Start PROCshell_FatalError
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 "+
*|Stop PROCshell_FatalError
*|Start PROCshell_ErrorBox
shell_ErrorBox(QB$)
!_ERRORS_ERR_BLK%=
*5"$(_ERRORS_ERR_BLK%+4)=QB$+
=_ERRNR_NONFATAL
=_ERRNR_CLAIMMEM
&600DF,_ERRORS_ERR_BLK%,17,"Message from "+
shell_GetAppName
&600DF,_ERRORS_ERR_BLK%,1,
shell_GetAppName
*|Stop PROCshell_ErrorBox
*h$*|Start FN_shell_WindowList_Init
_shell_WindowList_Init
*l#*|Stop FN_shell_WindowList_Init
*o#*|Start PROCshell_TemplatesInit
shell_TemplatesInit(v$,
pD%,_F%,lH%,FB%
mH%,NA%,hE%,d$,FA%,nH%,t%
oH%,qD%
*t!hE%=
shell_HeapBlockFetch(&C)
*u NA%=0
*v FA%=0
shell_FileLength(v$)
*y"pH%=
shell_HeapBlockFetch(mH%)
pD%=pH%
shell_TemplateFileInfo(v$,FB%,FA%,t%)
)rD%=
shell_HeapBlockFetch(4+(20*FA%))
_U%!4=rD%
"qH%=
shell_HeapBlockFetch(FB%)
_F%=qH%
lH%=qH%+FB%
FA%=0
qD%=4
&600D9,,v$
shell_MessageTwoArgs("SHELLMSG34","template",v$)
$hE%="*"
&400DB,,pD%,_F%,lH%,_U%!&E8,hE%,NA%
,,_F%,,,d$,NA%
NA%<>0
rD%!qD%=pD%
$(rD%+qD%+4)=d$
rD%!(qD%+16)=-1
qD%+=20
shell_Tracef0("TemplatesInit: Template Loaded: "+d$)
oH%=(pD%!84)*32
pD%+=(88+oH%)
FA%+=1
NA%=0
&400DA
_U%!0=FA%
shell_Tracef0("TemplatesInit:Templates resource file loaded at &"+
~pH%+" ("+
FA%+" templates)")
shell_Tracef0("TemplatesInit:Indirected buffer size used for loading &"+
~FB%)
shell_MessageTwoArgs("SHELLMSG35","template",v$)
shell_MessageTwoArgs("SHELLMSG36",v$,"template")
shell_HeapBlockReturn(hE%)
eI%=0
!rD%=FA%
"*|Stop PROCshell_TemplatesInit
*|Start FNshell_WindowLoaded
shell_WindowLoaded(H$)
c%,CG%
shell_GetWindowListOffset(H$)
c%>=0
*|Stop FNshell_WindowLoaded
'*|Start FNshell_GetWindowListOffset
shell_GetWindowListOffset(H$)
c%,FA%,LB%,i%
(H$)>&B
shell_MessageOneArg("SHELLMSG02",H$)
#FA%=
shell_GetNrTemplatesLoaded
"LB%=
shell_WindowListGetAddr+4
c%=-1
$(((LB%)+(20*i%))+4)=H$
c%=i%*20
i%+=1
c%<>-1
i%>(FA%-1)
&*|Stop FNshell_GetWindowListOffset
*|Start FNshell_GetWB
shell_GetWB(H$)
c%,JB%,LB%
shell_GetWindowListOffset(H$)
99,H$+":"+
"LB%=
shell_WindowListGetAddr+4
c%>=0
JB%=LB%!c%
shell_MessageOneArg("SHELLMSG03",H$)
*|Stop FNshell_GetWB
'*|Start FNshell_GetWindowHandleList
shell_GetWindowHandleList(H$)
c%,HA%,LB%
shell_GetWindowListOffset(H$)
"LB%=
shell_WindowListGetAddr+4
c%>=0
HA%=!(LB%+c%+16)
shell_MessageOneArg("SHELLMSG03",H$)
&*|Stop FNshell_GetWindowHandleList
(*|Start PROCshell_CreateWindowStatic
shell_CreateWindowStatic(H$,
shell_GetWB(H$)
shell_Tracef0("DEBUG::"+
_B%!64=_U%!16
&400C1,,_B%
shell_Tracef0("DEBUG::"+
shell_StaticWindowListAddHandle(e%)
shell_WindowListAddHandle(H$,e%)
'*|Stop PROCshell_CreateWindowStatic
)*|Start PROCshell_WindowListAddHandle
shell_WindowListAddHandle(H$,e%)
rH%,CA%,f%,DG%
H$=""
99,"Bad window name passed to WindowListAddHandle"
)rH%=
shell_GetWindowListOffset(H$)+16
&CA%=
shell_WindowListGetAddr+4+rH%
!CA%=-1
shell_Tracef0("DEBUG::Creating window handle list for window '"+H$+"'")
shell_Tracef0("DEBUG::Window handle is &"+
!!CA%=
shell_HeapBlockFetch(8)
f%=!CA%
f%!0=e%
f%!4=-1
CA%!16<>-1
HA%=!CA%
+% DG%=
HA%!f%<>-1
HA%!f%=0
HA%!f%=e%
+) DG%=
++ f%+=4
shell_Tracef0("DEBUG::Extending window handle list for window '"+H$+"'")
shell_Tracef0("DEBUG::Window handle is &"+
+9'!CA%=
shell_HeapBlockExtend(!CA%,4)
LB%=!CA%
LB%!f%<>-1
+= f%+=4
LB%!(f%+0)=e%
LB%!(f%+4)=-1
+E(*|Stop PROCshell_WindowListAddHandle
+I'*|Start FNshell_GetWindowIdentifier
shell_GetWindowIdentifier(m%)
CA%,FA%,f%,i%,DA$
+L#FA%=
shell_GetNrTemplatesLoaded
+M"CA%=
shell_WindowListGetAddr+4
DA$=""
-1,-2
DA$="iconbar"
CA%!16<>-1
HA%=CA%!16
HA%!f%<>-1
HA%!f%=m%
DA$=$(CA%+4)
+[ f%+=4
+^ i%+=1
CA%+=20
DA$<>""
i%=FA%
+j&*|Stop FNshell_GetWindowIdentifier
+n0*|Start PROCshell_RemoveHandleFromWindowList
shell_RemoveHandleFromWindowList(m%)
CA%,FA%,I%,f%
+q#FA%=
shell_GetNrTemplatesLoaded
+r"CA%=
shell_WindowListGetAddr+4
CA%!16<>-1
HA%=CA%!16
HA%!f%<>-1
HA%!f%=m%
HA%!f%=0
+{ f%+=4
CA%+=20
/*|Stop PROCshell_RemoveHandleFromWindowList
,*|Start PROCshell_UpdateWindowHandleList
shell_UpdateWindowHandleList(jA%,ZA%)
CA%,FA%,I%,f%
#FA%=
shell_GetNrTemplatesLoaded
"CA%=
shell_WindowListGetAddr+4
CA%!16<>-1
HA%=CA%!16
HA%!f%<>-1
HA%!f%=jA%
HA%!f%=ZA%
f%+=4
CA%+=20
+*|Stop PROCshell_UpdateWindowHandleList
(*|Start FNshell_GetNrTemplatesLoaded
shell_GetNrTemplatesLoaded
CA%=
shell_WindowListGetAddr
=!CA%
'*|Stop FNshell_GetNrTemplatesLoaded
%*|Start FNshell_WindowListGetAddr
shell_WindowListGetAddr
=_U%!4
$*|Stop FNshell_WindowListGetAddr
%*|Start FNshell_WindowHandleKnown
shell_WindowHandleKnown(e%)
t%,CA%,w%,I%,FA%,m%
shell_GetDynamicWindowHandle
#FA%=
shell_GetNrTemplatesLoaded
"CA%=
shell_WindowListGetAddr+4
CA%!16<>-1
HA%=CA%!16
HA%!f%<>-1
m%=HA%!f%
m%=e%
f%+=4
CA%+=20
$*|Stop FNshell_WindowHandleKnown
%*|Start PROCshell_WindowListPrint
shell_WindowListPrint
CA%,FA%,I%,f%
#FA%=
shell_GetNrTemplatesLoaded
shell_TraceOn
"CA%=
shell_WindowListGetAddr+4
shell_Tracef0("")
shell_Tracef0("Current Window List ("+
(FA%)+" templates)")
shell_Tracef0("-----------------------------------------")
shell_Tracef0($(CA%+4)+":")
CA%!16=-1
shell_Tracef0("No windows defined for this identifier")
HA%=CA%!16
HA%!f%<>-1
shell_Tracef0(" window handle &"+
~(HA%!f%))
f%+=4
CA%+=20
$*|Stop PROCshell_WindowListPrint
!*|Start FN_shell_Strings_Init
_shell_Strings_Init
*|Stop FN_shell_Strings_Init
+*|Start FNshell_GetZeroTerminatedString
shell_GetZeroTerminatedString(sI%)
"WriteN",sI%,0
**|Stop FNshell_GetZeroTerminatedString
*|Start FNshell_GetString
shell_GetString(sH%)
zA$,kE%
((sH%?kE%)>31
kE%<&FF)
zA$+=
(sH%?kE%)
kE%+=1
*|Stop FNshell_GetString
,/'*|Start FNshell_StringStripTrailing
shell_StringStripTrailing(C$,i$)
C$,1)=i$
(C$)-1)
,6&*|Stop FNshell_StringStripTrailing
,:&*|Start FNshell_StringStripLeading
shell_StringStripLeading(C$,i$)
C$,1)=i$
C$,2)
,A%*|Stop FNshell_StringStripLeading
,E"*|Start FNshell_StringStripAll
shell_StringStripAll(C$,i$)
C$,i$)
C$,I-1)+
C$,I+1)
,T!*|Stop FNshell_StringStripAll
,X%*|Start FNshell_StringPadTrailing
shell_StringPadTrailing(C$,i$,UB%)
(C$)<UB%
C$=C$+
(C$),i$)
,_$*|Stop FNshell_StringPadTrailing
,c$*|Start FNshell_StringPadLeading
shell_StringPadLeading(C$,i$,UB%)
(C$)<UB%
(C$),i$)+C$
,j#*|Stop FNshell_StringPadLeading
,n#*|Start FNshell_StringUpperCase
shell_StringUpperCase(C$)
(C$)>0
C$,q%,1)>="a"
C$,q%,1)<="z"
C$,q%,1)=
C$,q%,1))
,z"*|Stop FNshell_StringUpperCase
,|"*|Start FNshell_StringExchange
shell_StringExchange(C$,iA$,WB$)
C$,iA$)
C$,iA$)
C$,IB%-1)+WB$+
C$,IB%+
!*|Stop FNshell_StringExchange
)*|Start FNshell_StringArrayGetLongest
shell_StringArrayGetLongest(A$(),NE%)
q%,lE%
lE%=0
(A$(q%))>lE%
(A$(q%))
(*|Stop FNshell_StringArrayGetLongest
*|Start FNmem_to_string
mem_to_string(GA%,c%,wI%)
GA%?c%<>wI%
(GA%?c%)
c%+=1
*|Stop FNmem_to_string
"*|Start FN_shell_Messages_Init
_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
,_MESSAGE_COLOURPICKERCOLOURCHOICE=&47700
4_MESSAGE_COLOURPICKERCLOSEDIALOGUEREQUEST=&47702
!*|Stop FN_shell_Messages_Init
&*|Start PROCshell_BroadcastMessage
shell_BroadcastMessage(xI%,FA$)
tH%=(
(FA$)+30)
_MESSAGES_WORK_BLK%!&C=0
_MESSAGES_WORK_BLK%!16=xI%
&$(_MESSAGES_WORK_BLK%+20)=FA$+
_MESSAGES_WORK_BLK%!0=tH%
&600E7,17,_MESSAGES_WORK_BLK%,0
%*|Stop PROCshell_BroadcastMessage
*|Start FN_shell_Memory_Init
_shell_Memory_Init
*|Stop FN_shell_Memory_Init
%*|Start PROCshell_HeapManagerInit
shell_HeapManagerInit(I$,zI%)
_heap_code%900
("LOAD "+I$+"heapcode "+
~_heap_code%)
_heap_code%+0,zI%
$*|Stop PROCshell_HeapManagerInit
#*|Start FNshell_HeapBlockExtend
shell_HeapBlockExtend(uH%,FG%)
_heap_code%+&C,uH%,FG%
"*|Stop FNshell_HeapBlockExtend
"*|Start FNshell_HeapBlockFetch
shell_HeapBlockFetch(FG%)
_heap_code%+4,PB%,FG%
!*|Stop FNshell_HeapBlockFetch
%*|Start PROCshell_HeapBlockReturn
shell_HeapBlockReturn(
shell_HeapBlockExists(iA%)
_heap_code%+8,iA%
iA%=0
- $*|Stop PROCshell_HeapBlockReturn
-$#*|Start FNshell_HeapBlockExists
shell_HeapBlockExists(PB%)
PB%<&8000
99,"No heapblock defined at this address"
-* j%=
shell_HeapBlockInfo(PB%)
-,"*|Stop FNshell_HeapBlockExists
-/!*|Start FNshell_HeapBlockInfo
shell_HeapBlockInfo(iA%)
29,6,!(_heap_code%+28),iA%
-5 *|Stop FNshell_HeapBlockInfo
-9&*|Start FNshell_HeapBlockExtendMid
-:7*|!Function to extend already allocated heap block.
-;&*|!a% = current address of block
-<L*|!b% = amount to increase or decrease block size by (-ve to decrease)
-=,*|!loc% = offset to add or remove memory
->4*|!returns address of block (block may be moved)
shell_HeapBlockExtendMid(iA%,dB%,vH%)
-A!wH%=
shell_HeapBlockInfo(iA%)
_heap_code%+&C,iA%,dB%
&400F1,_U%!&94,iA%+vH%,_U%!&94,iA%+vH%+dB%,wH%-dB%
-E%*|Stop FNshell_HeapBlockExtendMid
*|Start FN_shell_Poll_Init
_shell_Poll_Init
xH%256
_POLL_EARLIEST_TIME%=0
_POLL_INTERVAL%=&64
_POLL_PREVINTERVAL%=0
shell_PollSetInterval(_POLL_INTERVAL%)
shell_PollSetPrevInterval(_POLL_INTERVAL%)
_POLL_EARLIEST_TIME%
-m)_POLL_EARLIEST_TIME%+=_POLL_INTERVAL%
*|Stop FN_shell_Poll_Init
*|Start FNshell_PollIdle
shell_PollIdle(_A%,GG%)
_U%!&64
"WimpExt_PrePoll"
&400E1,_A%,xH%,_POLL_EARLIEST_TIME%
_U%!&64
"WimpExt_Action",_U%!&94,xH%,FC%
*|Stop FNshell_PollIdle
%*|Start PROCshell_PollSetInterval
shell_PollSetInterval(HG%)
_POLL_INTERVAL%=HG%
$*|Stop PROCshell_PollSetInterval
)*|Start PROCshell_PollSetPrevInterval
shell_PollSetPrevInterval(HG%)
_POLL_PREVINTERVAL%=HG%
(*|Stop PROCshell_PollSetPrevInterval
$*|Start FNshell_PollReadInterval
shell_PollReadInterval
=_POLL_INTERVAL%
#*|Stop FNshell_PollReadInterval
(*|Start FNshell_PollReadPrevInterval
shell_PollReadPrevInterval
=_POLL_PREVINTERVAL%
'*|Stop FNshell_PollReadPrevInterval
*|Start FNshell_Poll_I
shell_Poll_I(_A%,GG%)
_U%!&64
"WimpExt_PrePoll"
&400C7,_A%,_Q%
_U%!&64
"WimpExt_Action",_U%!&94,_Q%,FC%
&81686,FC%,,GG%
*|Stop FNshell_Poll_I
*|Start FNpoll
poll(_A%,GG%)
_U%!&64
"WimpExt_PrePoll"
&400C7,_A%,_Q%
_U%!&64
"WimpExt_Action",_U%!&94,_Q%,iA%
*|Stop FNpoll
!*|Start FN_shell_IntHelp_Init
_shell_IntHelp_Init
BK%60
_IntHelp_IsOn%=
*|Stop FN_shell_IntHelp_Init
%*|Start PROCshell_InteractiveHelp
shell_InteractiveHelp(_Q%)
M$,k$,N$,pB%,IG%,hB$,o%
shell_EvntHandle_HelpTags(_Q%!32,_Q%!36,M$)
shell_IconGetValidation(_Q%!32,_Q%!36)
N$<>""
shell_StringUpperCase(
N$,1))="I"
N$,";")
pB%=0
N$,2)
N$,2,pB%-2)
ApB%=
shell_StringUpperCase(N$),
shell_StringUpperCase(";i"))
FIG%=
shell_StringUpperCase(N$),
shell_StringUpperCase(";"),pB%+1)
pB%>0
IG%>0
N$,pB%+2,IG%-pB%-2)
N$,pB%+2)
M$<>""
_Q%!16=&503
_Q%!&C=_Q%!8
shell_MessageLookup(M$,"","")
shell_MessageExpand(k$)
$(_Q%+20)=k$
!_Q%=(
k$+25)
&400E7,17,_Q%,_Q%!4
$*|Stop PROCshell_InteractiveHelp
'*|Start PROCshell_InteractiveHelpOn
shell_InteractiveHelpOn
_IntHelp_IsOn%=
&*|Stop PROCshell_InteractiveHelpOn
(*|Start PROCshell_InteractiveHelpOff
shell_InteractiveHelpOff
_IntHelp_IsOn%=
'*|Stop PROCshell_InteractiveHelpOff
., *|Start FN_shell_PopUps_Init
_shell_PopUps_Init
*|Stop FN_shell_PopUps_Init
.Z!*|Start FN_shell_Bumpers_Init
_shell_Bumpers_Init
.^ GJ%=2
._ HJ%=4
.` IJ%=8
.f *|Stop FN_shell_Bumpers_Init
.j'*|Start PROCshell_AttachBumpHandler
shell_AttachBumpHandler(e%,h%,_H%,AI%,gB%,hB%,MJ%,CI%,XB$,YB$)
YI%,c%,g%,nA%,kJ%
A$,b%
.o%A$=
shell_GetWindowIdentifier(e%)
.qSc%=
Evnts_GetEvntListOffset(A$,_H%,_EVNTS_BUMP_ANCHOR%,_EVNTS_BUMP_REC_SIZE%,
b%=!_EVNTS_BUMP_ANCHOR%
b%+=c%
$b%=A$
b%!&C=_H%
b%!16=MJ%
b%!20=h%
b%!24=gB%
b%!28=hB%
CI%=-1
b%!40=1
b%!40=0
!_EVNTS_BUMP_DATA%=0
.}/!_EVNTS_BUMP_DATA%=
shell_HeapBlockFetch(1)
p%=b%+32
Evnts_UpdateData(p%,_EVNTS_BUMP_DATA%,_EVNTS_BUMP_DATAOFFSET%,XB$)
p%=b%+36
Evnts_UpdateData(p%,_EVNTS_BUMP_DATA%,_EVNTS_BUMP_DATAOFFSET%,YB$)
Evnts_GetEvntListOffset(A$,AI%,_EVNTS_BUMP_ANCHOR%,_EVNTS_BUMP_REC_SIZE%,
b%=!_EVNTS_BUMP_ANCHOR%
b%+=c%
$b%=A$
b%!&C=AI%
CI%=-1
b%!40=1
b%!40=0
b%!40=b%!40
(1<<2)
&*|Stop PROCshell_AttachBumpHandler
(*|Start PROCshell_EvntHandle_Bumpers
shell_EvntHandle_Bumpers(_window_handle%,_icon_handle%)
A$,c%,x%,RA%,k%,nE%
aB%,BD%,gB%,hB%,lD%,KG%,LG%
CD%,NG%,_new_val$,_new_val%,p%,jA$,kA$
shell_GetWindowIdentifier(_window_handle%)
Evnts_GetEvntListOffset(A$,_icon_handle%,_EVNTS_BUMP_ANCHOR%,_EVNTS_BUMP_REC_SIZE%,
!lD%=
shell_GetLastMouseButton
c%>=0
k%=!_EVNTS_BUMP_ANCHOR%+c%
k%!40
(1<<2)
k%!40
(1<<0)
k%-=_EVNTS_BUMP_REC_SIZE%
aB%=k%!16
BD%=k%!20
gB%=k%!24
hB%=k%!28
aB%=aB%*IJ%
aB%=aB%*GJ%
aB%=aB%*HJ%
ZB%=!_EVNTS_BUMP_DATA%
ZB%>0
jA$=$(ZB%+k%!32)
kA$=$(ZB%+k%!36)
/lA$=
shell_IconGetData(_window_handle%,BD%)
kA$<>""
)CD%=
("FN"+kA$+"( "+
34+lA$+
34+" )")
(lA$)
lD%=_MSE_ADJUSTBUT
_new_val%=CD%+aB%
_new_val%=CD%-aB%
lD%=_MSE_ADJUSTBUT
_new_val%=CD%-aB%
_new_val%=CD%+aB%
_new_val%>hB%
_new_val%=hB%
_new_val%<gB%
_new_val%=gB%
_new_val%>hB%
_new_val%=gB%
_new_val%<gB%
_new_val%=hB%
jA$<>""
0_new_val$=
("FN"+jA$+"(_new_val%,"+
lD%+")")
_new_val$=
_new_val%
shell_IconPutData(_window_handle%,BD%,_new_val$,
'*|Stop PROCshell_EvntHandle_Bumpers
!*|Start PROCshell_ListBumpers
shell_ListBumpers
EA%,n%,BA%,f%,OA%,mB%
mD%,nD%,CB$,bB$,IA%,q%,U$
HI%,BD%,gB%,hB%
n%=!_EVNTS_BUMP_ANCHOR%
BA%=_EVNTS_BUMP_REC_SIZE%
OA%=(n%!4)/2
Evnts_DebugListHeader ("Bump ","Window Inc Dec Disp Step Lower Upper Value Change FN")
f%=_EVNTS_HEADER_SIZE%
A$=$(n%+f%)
mD%=n%!(f%+&C)
(nD%=n%!(f%+&C+_EVNTS_BUMP_REC_SIZE%)
HI%=n%!(f%+16)
BD%=n%!(f%+20)
gB%=n%!(f%+24)
hB%=n%!(f%+28)
IA%=!_EVNTS_BUMP_DATA%
IA%>0
CB$=$(IA%+n%!(f%+32))
bB$=$(IA%+n%!(f%+36))
shell_StringPadTrailing(A$,".",&C)
/U$+=" "+
shell_StringPadLeading(
mD%," ",3)
/U$+=" "+
shell_StringPadLeading(
nD%," ",3)
/U$+=" "+
shell_StringPadLeading(
BD%," ",4)
/U$+=" "+
shell_StringPadLeading(
HI%," ",4)
/U$+=" "+
shell_StringPadLeading(
gB%," ",5)
/U$+=" "+
shell_StringPadLeading(
hB%," ",5)
U$+=" "+CB$
f%+=_EVNTS_BUMP_REC_SIZE%*2
*|Stop PROCshell_ListBumpers
/=!*|Start FN_shell_Pointer_Init
_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
/N"_m_Pointer_SetShape_Reason%=36
/O!_m_Pointer_SetShape_Ptr_Nr%=2
_m_Pointer_ShapeChanged%=
_m_Pointer_CurrentShape$=""
_m_Pointer_WorkBuffer%4
/W *|Stop FN_shell_Pointer_Init
/c8*|Start PROCshell_AttachPointerEnteringWindowHandler
shell_AttachPointerEnteringWindowHandler(e%,B$)
b%,c%,A$,p%,VA%
/j%A$=
shell_GetWindowIdentifier(e%)
/kSc%=
Evnts_GetEvntListOffset(A$,-1,_m_PointerIn_Anchor%,_c_PointerIn_RecSize%,
b%=!_m_PointerIn_Anchor%
VA%=b%!4
b%+=c%
$b%=A$
b%!&C=-1
!_m_PointerIn_DataBlk%=0
/s9!_m_PointerIn_DataBlk%=
shell_HeapBlockFetch(
(B$)+1)
p%=b%+16
Evnts_UpdateData(p%,_m_PointerIn_DataBlk%,_m_PointerIn_DataOffset%,B$)
7*|Stop PROCshell_AttachPointerEnteringWindowHandler
6*|Start PROCshell_EvntHandle_PointerEnteringWindow
shell_EvntHandle_PointerEnteringWindow(_window_handle%)
A$,c%,k%,JA%,x%,B$
shell_GetWindowIdentifier(_window_handle%)
A$<>""
Evnts_GetEvntListOffset(A$,-1,_m_PointerIn_Anchor%,_c_PointerIn_RecSize%,
c%>=0
k%=!_m_PointerIn_Anchor%+c%
JA%=k%!16
x%=!_m_PointerIn_DataBlk%
B$=$(x%+JA%)
("FN"+B$+"( _window_handle% )")
5*|Stop PROCshell_EvntHandle_PointerEnteringWindow
7*|Start PROCshell_AttachPointerLeavingWindowHandler
shell_AttachPointerLeavingWindowHandler(e%,B$)
b%,c%,A$,p%,VA%
shell_GetWindowIdentifier(e%)
Evnts_GetEvntListOffset(A$,-1,_m_PointerOut_Anchor%,_c_PointerOut_RecSize%,
b%=!_m_PointerOut_Anchor%
VA%=b%!4
b%+=c%
$b%=A$
b%!&C=-1
!_m_PointerOut_DataBlk%=0
:!_m_PointerOut_DataBlk%=
shell_HeapBlockFetch(
(B$)+1)
p%=b%+16
Evnts_UpdateData(p%,_m_PointerOut_DataBlk%,_m_PointerOut_DataOffset%,B$)
6*|Stop PROCshell_AttachPointerLeavingWindowHandler
5*|Start PROCshell_EvntHandle_PointerLeavingWindow
shell_EvntHandle_PointerLeavingWindow(_window_handle%)
A$,c%,k%,JA%,x%,B$
shell_GetWindowIdentifier(_window_handle%)
A$<>""
Evnts_GetEvntListOffset(A$,-1,_m_PointerOut_Anchor%,_c_PointerOut_RecSize%,
c%>=0
k%=!_m_PointerOut_Anchor%+c%
JA%=k%!16
x%=!_m_PointerOut_DataBlk%
B$=$(x%+JA%)
("FN"+B$+"( _window_handle% )")
shell_PointerResetShape
4*|Stop PROCshell_EvntHandle_PointerLeavingWindow
(*|Start PROCshell_PointerChangeShape
shell_PointerChangeShape(DB$,II%,uJ%)
&400E9,_m_Pointer_SetShape_Reason%,,DB$,_m_Pointer_SetShape_Ptr_Nr%,II%,II%
_m_Pointer_ShapeChanged%=
_m_Pointer_CurrentShape$=DB$
'*|Stop PROCshell_PointerChangeShape
'*|Start PROCshell_PointerResetShape
shell_PointerResetShape
_m_Pointer_ShapeChanged%=
("Pointer")
_m_Pointer_ShapeChanged%=
_m_Pointer_CurrentShape$=""
&*|Stop PROCshell_PointerResetShape
**|Start FNshell_PointerGetCurrentShape
shell_PointerGetCurrentShape
=_m_Pointer_CurrentShape$
)*|Stop FNshell_PointerGetCurrentShape
$*|Start FNshell_PointerIsChanged
shell_PointerIsChanged
=_m_Pointer_ShapeChanged%
#*|Stop FNshell_PointerIsChanged
&*|Start PROCshell_PointerSaveEvnts
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%)
%*|Stop PROCshell_PointerSaveEvnts
&*|Start PROCshell_PointerLoadEvnts
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%)
%*|Stop PROCshell_PointerLoadEvnts
05#*|Start FN_shell_CaretMove_Init
_shell_CaretMove_Init
JI%=20
!sD%=0
!tD%=0
0< WJ%=0
LI%=20
!uD%=0
!vD%=0
0C ZJ%=0
0G"*|Stop FN_shell_CaretMove_Init
0S/*|Start PROCshell_AttachCaretPreMoveHandler
shell_AttachCaretPreMoveHandler(e%,B$)
b%,c%,A$,p%,VA%
0Z%A$=
shell_GetWindowIdentifier(e%)
0[0c%=
Evnts_GetEvntListOffset(A$,-1,sD%,JI%,
b%=!sD%
VA%=b%!4
b%+=c%
$b%=A$
b%!&C=-1
!tD%=0
0c'!tD%=
shell_HeapBlockFetch(
(B$)+1)
p%=b%+16
Evnts_UpdateData(p%,tD%,WJ%,B$)
0o.*|Stop PROCshell_AttachCaretPreMoveHandler
0s-*|Start PROCshell_EvntHandle_CaretPreMove
shell_EvntHandle_CaretPreMove(_window_handle%,_icon_handle%)
A$,c%,k%,JA%,x%,B$
0y2A$=
shell_GetWindowIdentifier(_window_handle%)
A$<>""
0|0c%=
Evnts_GetEvntListOffset(A$,-1,sD%,JI%,
c%>=0
k%=!sD%+c%
JA%=k%!16
x%=!tD%
B$=$(x%+JA%)
("FN"+B$+"( _window_handle%, _icon_handle% )")
,*|Stop PROCshell_EvntHandle_CaretPreMove
0*|Start PROCshell_AttachCaretPostMoveHandler
shell_AttachCaretPostMoveHandler(e%,B$)
b%,c%,A$,p%,VA%
shell_GetWindowIdentifier(e%)
Evnts_GetEvntListOffset(A$,-1,uD%,LI%,
b%=!uD%
VA%=b%!4
b%+=c%
$b%=A$
b%!&C=-1
!vD%=0
'!vD%=
shell_HeapBlockFetch(
(B$)+1)
p%=b%+16
Evnts_UpdateData(p%,vD%,ZJ%,B$)
/*|Stop PROCshell_AttachCaretPostMoveHandler
.*|Start PROCshell_EvntHandle_CaretPostMove
shell_EvntHandle_CaretPostMove(_window_handle%,_icon_handle%)
A$,c%,k%,JA%,x%,B$
shell_GetWindowIdentifier(_window_handle%)
A$<>""
Evnts_GetEvntListOffset(A$,-1,uD%,LI%,
c%>=0
k%=!uD%+c%
JA%=k%!16
x%=!vD%
B$=$(x%+JA%)
("FN"+B$+"( _window_handle%, _icon_handle% )")
-*|Stop PROCshell_EvntHandle_CaretPostMove
*|Start FN_shell_Caret_Init
_shell_Caret_Init
*|Stop FN_shell_Caret_Init
&*|Start PROCshell_CaretSetPosition
shell_CaretSetPosition(QA%,AB%,aJ%,bJ%,oA%,IB%)
&400D2,QA%,AB%,aJ%,bJ%,oA%,IB%
shell_IconEnsureVisible(QA%,AB%)
%*|Stop PROCshell_CaretSetPosition
'*|Start PROCshell_CaretReadPosition
shell_CaretReadPosition(
!AA%=
shell_HeapBlockFetch(24)
&400D3,,AA%
QA%=AA%!0
AB%=AA%!4
TD%=AA%!8
UD%=AA%!&C
IB%=AA%!20
shell_HeapBlockReturn(AA%)
&*|Stop PROCshell_CaretReadPosition
#*|Start PROCshell_CaretSetRight
shell_CaretSetRight(a%,r%)
&400D2,a%,r%,-1,-1,-1,
shell_IconGetData(a%,r%))
"*|Stop PROCshell_CaretSetRight
'*|Start PROCshell_CaretPutFirstIcon
shell_CaretPutFirstIcon(a%)
1 #AA%=
shell_HeapBlockFetch(&800)
&400D6,a%,AA%,&40E000,&E000
!AA%<>-1
shell_CaretSetRight(a%,!AA%)
shell_IconEnsureVisible(a%,!AA%)
shell_HeapBlockReturn(AA%)
1-&*|Stop PROCshell_CaretPutFirstIcon
11&*|Start PROCshell_CaretPutLastIcon
shell_CaretPutLastIcon(a%)
shell_CaretMoveCaret(a%,1)
16%*|Stop PROCshell_CaretPutLastIcon
1:&*|Start PROCshell_CaretPutNextIcon
shell_CaretPutNextIcon(a%)
shell_CaretMoveCaret(a%,2)
1?%*|Stop PROCshell_CaretPutNextIcon
1C&*|Start PROCshell_CaretPutPrevIcon
shell_CaretPutPrevIcon(a%)
shell_CaretMoveCaret(a%,3)
1H%*|Stop PROCshell_CaretPutPrevIcon
1[$*|Start PROCshell_CaretMoveCaret
shell_CaretMoveCaret(a%,DA%)
AA%,NI%,i%,f%,qB%
i%=0:f%=0
1_#AA%=
shell_HeapBlockFetch(&800)
&400D3,,AA%
AA%!4<>-1
NI%=AA%!4
&400D6,a%,AA%,&40E000,&E000
AA%!i%=NI%
f%=i%
1i i%+=4
AA%!i%=-1
qB%=!AA%
qB%=AA%!(i%-4)
AA%!(f%+4)<>-1
qB%=AA%!(f%+4)
qB%=!AA%
qB%=AA%!(f%-4)
qB%=AA%!(i%-4)
&400D2,a%,qB%,-1,-1,-1,
shell_IconGetData(a%,qB%))
shell_IconEnsureVisible(a%,qB%)
shell_HeapBlockReturn(AA%)
#*|Stop PROCshell_CaretMoveCaret
*|Start FN_shell_ExReg_Init
_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%=
*|Stop FN_shell_ExReg_Init
)*|Start FNshell_ExReg_FontMenu_Loaded
shell_ExReg_FontMenu_Loaded
=_m_ExReg_FontMenu_Loaded%
(*|Stop FNshell_ExReg_FontMenu_Loaded
+*|Start PROCshell_ExReg_FontMenu_Loaded
shell_ExReg_FontMenu_Loaded
_m_ExReg_FontMenu_Loaded%=
**|Stop PROCshell_ExReg_FontMenu_Loaded
&*|Start FNshell_ExReg_Fonts_Loaded
shell_ExReg_Fonts_Loaded
=_m_ExReg_Fonts_Loaded%
%*|Stop FNshell_ExReg_Fonts_Loaded
(*|Start PROCshell_ExReg_Fonts_Loaded
shell_ExReg_Fonts_Loaded
_m_ExReg_Fonts_Loaded%=
'*|Stop PROCshell_ExReg_Fonts_Loaded
(*|Start FNshell_ExReg_DrawLib_Loaded
shell_ExReg_DrawLib_Loaded
=_m_ExReg_DrawLib_Loaded%
'*|Stop FNshell_ExReg_DrawLib_Loaded
**|Start PROCshell_ExReg_DrawLib_Loaded
shell_ExReg_DrawLib_Loaded
_m_ExReg_DrawLib_Loaded%=
)*|Stop PROCshell_ExReg_DrawLib_Loaded
'*|Start FNshell_ExReg_OLELib_Loaded
shell_ExReg_OLELib_Loaded
=_m_ExReg_OLELib_Loaded%
&*|Stop FNshell_ExReg_OLELib_Loaded
)*|Start PROCshell_ExReg_OLELib_Loaded
shell_ExReg_OLELib_Loaded
_m_ExReg_OLELib_Loaded%=
(*|Stop PROCshell_ExReg_OLELib_Loaded
(*|Start FNshell_ExReg_FontLib_Loaded
shell_ExReg_FontLib_Loaded
=_m_ExReg_FontLib_Loaded%
'*|Stop FNshell_ExReg_FontLib_Loaded
**|Start PROCshell_ExReg_FontLib_Loaded
shell_ExReg_FontLib_Loaded
_m_ExReg_FontLib_Loaded%=
)*|Stop PROCshell_ExReg_FontLib_Loaded