Home » Archimedes archive » Acorn Computing » 1994 08 subscription disc.adf » 9408s » Shareware/Event/Documents/!EShellDoc/StrongHlp/EvntShell/HelpData
Shareware/Event/Documents/!EShellDoc/StrongHlp/EvntShell/HelpData
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Acorn Computing » 1994 08 subscription disc.adf » 9408s |
Filename: | Shareware/Event/Documents/!EShellDoc/StrongHlp/EvntShell/HelpData |
Read OK: | ✔ |
File size: | 1A5E4 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
User FN (PROCshell_AttachDataLoad) Params => int address file has been loaded at int filetype of file str full pathname of file Note that if the event was attached with the <no load flag=>noload> set to TRUE the address will be -1 and the user application is expected to actually load the file.User FN (PROCshell_AttachDataSave) Params => str full filename of file This function is not called if the file is stored in a heap block. In this case the whole contents of the heap block are transferred. OS <OSCheckModuleVersion=>FNshell_OSCheckModuleVersion> <OSCheckVersion =>FNshell_OSCheckVersion> <OSVarExists =>FNshell_OSVarExists> <OSVarGetVal =>FNshell_OSVarGetVal> <OSReadCommandArg =>FNshell_OSReadCommandArg>Mouse <MouseLimit =>PROCshell_MouseLimit>Shell <GetAppName =>FNshell_GetAppName> <GetAppDir =>FNshell_GetAppDir> <GetAppDataDir =>FNshell_GetAppDataDir> <Init =>PROCshell_Init> <LibraryVersion =>FNshell_LibraryVersion> <ResourcesInit =>PROCshell_ResourcesInit> <WimpCloseDown =>PROCshell_WimpCloseDown> <WimpCloseDown_I=>PROCshell_WimpCloseDown_I> <WimpInit =>FNshell_WimpInit> <WimpInit_I =>FNshell_WimpInit_I>Windows <CloseWindow =>PROCshell_CloseWindow> <CreateWindow =>PROCshell_CreateWindow> <CreateWindowStatic =>PROCshell_CreateWindowStatic> <MessageWindow =>FNshell_MessageWindow> <OpenWindow =>PROCshell_OpenWindow> <OpenWindowStatic =>PROCshell_OpenWindowStatic> <WindowBringToTop =>PROCshell_WindowBringToTop> <WindowGetTitle =>FNshell_WindowGetTitle> <WindowHasAdjustSizeIcon =>FNshell_WindowHasAdjustSizeIcon> <WindowHasBackIcon =>FNshell_WindowHasBackIcon> <WindowHasBeenToggled =>FNshell_WindowHasBeenToggled> <WindowHasCloseIcon =>FNshell_WindowHasCloseIcon> <WindowHasHScrollBar =>FNshell_WindowHasHScrollBar> <WindowHasInputFocus =>FNshell_WindowHasInputFocus> <WindowHasTitleBar =>FNshell_WindowHasTitleBar> <WindowHasToggleIcon =>FNshell_WindowHasToggleIcon> <WindowHasVScrollBar =>FNshell_WindowHasVScrollBar> <WindowIsAPane =>FNshell_WindowIsAPane> <WindowIsMoveable =>FNshell_WindowIsMoveable> <WindowIsNotBounded =>FNshell_WindowIsNotBounded> <WindowIsOnTop =>FNshell_WindowIsOnTop> <WindowIsOpen =>FNshell_WindowIsOpen> <WindowLoaded =>FNshell_WindowLoaded> <WindowMoveTo =>PROCshell_WindowMoveTo> <WindowMoveToIcon =>PROCshell_WindowMoveToIcon> <WindowResize =>PROCshell_WindowResize> <WindowRetitle =>PROCshell_WindowRetitle> <WindowSetSpriteArea =>FNshell_WindowSetSpriteArea> <WindowToggleAdjustSizeIcon=>PROCshell_WindowToggleAdjustSizeIcon> <WindowToggleBackIcon =>PROCshell_WindowToggleBackIcon> <WindowToggleCloseIcon =>PROCshell_WindowToggleCloseIcon> <WindowToggleHScrollBar =>PROCshell_WindowToggleHScrollBar> <WindowToggleTitleBarIcon =>PROCshell_WindowToggleTitleBarIcon> <WindowToggleToggleIcon =>PROCshell_WindowToggleToggleIcon> <WindowToggleVScrollBar =>PROCshell_WindowToggleVScrollBar> <WindowTrapsHotKeys =>FNshell_WindowTrapsHotKeys>Debug <TraceExit=>PROCshell_TraceExit> <Tracef0 =>PROCshell_Tracef0> <TraceInit=>PROCshell_TraceInit> <TraceIsOn=>FNshell_TraceIsOn> <TraceOff =>PROCshell_TraceOff> <TraceOn =>PROCshell_TraceOn>Events <AttachBumpHandler =>PROCshell_AttachBumpHandler> <AttachClickAdjust =>PROCshell_AttachClickAdjust> <AttachClickSelect =>PROCshell_AttachClickSelect> <AttachCloseWindowHandler =>PROCshell_AttachCloseWindowHandler> <AttachDataLoad =>PROCshell_AttachDataLoad> <AttachDataSave =>PROCshell_AttachDataSave> <AttachDrag =>PROCshell_AttachDrag> <AttachHelpTag =>PROCshell_AttachHelpTag> <AttachHotKey =>PROCshell_AttachHotKey> <AttachModeChangeHandler =>PROCshell_AttachModeChangeHandler> <AttachMenu =>PROCshell_AttachMenu> <AttachMenuDBox =>PROCshell_AttachMenuDBox> <AttachMenuMaker =>PROCshell_AttachMenuMaker> <AttachOpenWindowHandler =>PROCshell_AttachOpenWindowHandler> <AttachSubMenu =>PROCshell_AttachSubMenu> <AttachPaletteChangeHandler =>PROCshell_AttachPaletteChangeHandler> <AttachPane =>PROCshell_AttachPane> <AttachPreQuitHandler =>PROCshell_AttachPreQuitHandler> <AttachTaskInitialiseHandler=>PROCshell_AttachTaskInitialiseHandler> <AttachTaskCloseDownHandler =>PROCshell_AttachTaskCloseDownHandler> <AttachUserRedraw =>PROCshell_AttachUserRedraw> <DoBackgroundTask =>PROCshell_DoBackgroundTask> <HandleUnknownMessage =>PROCshell_HandleUnknownMessage>Files <FileExists=>FNshell_FileExists> <FileLength=>FNshell_FileLength> <FileType =>FNshell_FileType> <Branch =>FNshell_Branch> <Leaf =>FNshell_Leaf>Strings <StringArrayGetLongest=>FNshell_StringArrayGetLongest> <StringExchange =>FNshell_StringExchange> <StringPadLeading =>FNshell_StringPadLeading> <StringPadTrailing =>FNshell_StringPadTrailing> <StringStripAll =>FNshell_StringStripAll> <StringStripLeading =>FNshell_StringStripLeading> <StringStripTrailing =>FNshell_StringStripTrailing> <StringUpperCase =>FNshell_StringUpperCase>PROCshell_AttachPaletteChangeHandler() Params => str <function name=>UserFN03> Registers a function name to be called when a PaletteChange message is received. This occurs when the user has finished dragging the sliders on the Palette application, or when a new palette is loaded. It is also called when the handler is set up so that the user application can note the current parameters. Note that this message is not issued when the screen mode changes, so tasks interested in colour mapping changes should call <PROCshell_AttachModeChangeHandler> as well. Library Group => <Events=>LibGroupEvents>User FN (PROCshell_AttachPaletteChangeHandler) Params => None This function is called when a PaletteChange message is received and also when <PROCshell_AttachPaletteChangeHandler> is called.PROCshell_AttachModeChangeHandler() Params => str <function name=>UserFN04> Registers a function name to be called when a ModeChange message is received. This allows the application to check any mode-specific parameters such as screen width etc. It is also called when the handler is set up so that the user application can note the current parameters. Library Group => <Events=>LibGroupEvents>User FN (PROCshell_AttachModeChangeHandler) Params => None This function is called when a ModeChange message is received and also when <PROCshell_AttachModeChangeHandler> is calledPROCshell_AttachTaskInitialiseHandler() Params => str <function name=>UserFN05> Registers a function name to be called when a TaskInitialise message is received. This allows the application to keep track of any new tasks started after it. Library Group => <Events=>LibGroupEvents>User FN (PROCshell_AttachTaskInitialiseHandler) Params => None This function is called when a TaskInitialise message is received.User FN (PROCshell_AttachTaskCloseDownHandler) Params => None This function is called when a TaskCloseDown message is received.PROCshell_AttachTaskCloseDownHandler() Params => str <function name=>UserFN06> Registers a function name to be called when a TaskCloseDown message is received.This message is sent when a task (other than the current one) is killed. Library Group => <Events=>LibGroupEvents>PROCshell_HeapBlockReturn() Params => int address of heap block Releases the given heap block, returning memory to the free pool. Library Group => <Memory=>LibGroupMemory>PROCshell_HeapBlockInit() Params => None Library Group => <Memory=>LibGroupMemory>PROCshell_AttachPane() Params => int window handle int pane handle int <pane flags=>PaneFlags> int x offset of pane relative to parent window int y offset of pane relative to parent window If necessary the window flags of the pane window are changed so that the 'pane' bit is on and the 'moveable' bit is off, so that editing the template file is not required. Library Group => <Events=>LibGroupEvents>Pane Flags (PROCshell_AttachPane) 0 = attached to parent window work area 1 = not used 2 = attached to left edge 3 = attached to bottom edge 4 = attached to right edge 5 = attached to top edgePROCshell_AttachDataLoad() Attaches a dataload handler to a window/icon pair. Params => int window handle int icon handle int filetype to recognise and optionally load (see no load flag) str <function name=>UserFN01> bool <no load flag=>noload> Note that it is possible to call this function for the same window/icon pair more than once giving different filetypes (and function names if required) to allow the handling of multiple filetypes. Library Group => <Events=>LibGroupEvents>PROCshell_AttachDataSave() Attaches a datasave handler to a window/icon pair. A typical use would be in a 'Save As' dialog box, the icon handle being that of the 'File Type' icon. Params => int window handle int icon handle int address of heapblock holding data or the <estimated file size=>EstSize> int file type for saved file int icon nr of filename icon str <function name=>UserFN02> (optional if data is held in a heapblock) If icon 0 in the window is clicked on then a check is made that the filename icon contains a valid path name, generating an error if it does not. Note that the third parameter can point to a heap block containing the data to save which means that the data must exist in the block (or at least the block must exist and be the correct size) before this routine is called. If this parameter is >&8000 it is taken to be a pointer to the heap block, and the name of the function to perform the save is optional. Alternatively this parameter can be an estimated file size (i.e. \<&8000) in which case the user function may write directly into the file whose name is given as a parameter to the function. RAM transfer is not possible if this is the case. Library Group => <Events=>LibGroupEvents>PROCshell_AttachMenu() Params => int window handle int icon handle int menu handle bool shift flag (not implemented) bool ctrl flag (not implemented) bool alt flag (not implemented) The shift, ctrl and alt flags are for future enhancements to the library and should be set to 0 on this release. If the menu is attached to an icon (rather than a window work area) a click with SELECT, MENU or ADJUST will open the menu. Also the button type of the icon is changed to 1 (click) to ensure the menu pops up when SELECT or ADJUST is used. Library Group => <Menus=>LibGroupMenus>, <Events=>LibGroupEvents>PROCshell_AttachMenuMaker() Params => int window handle int icon handle str <function name=>UserFN16> Registers a function to be called before the menu is opened, allowing ticking, shading etc of menu items. Library Group => <Menus=>LibGroupMenus>,<Events=>LibGroupEvents>PROCshell_AttachClickSelect() Params => int window handle int icon handle str <function name=>UserFN13> Library Group => <Events=>LibGroupEvents>PROCshell_AttachClickAdjust() Params => int window handle int icon handle str <function name=>UserFN15> Library Group => <Events=>LibGroupEvents>PROCshell_AttachUserRedraw() Params => int window handle str <function name=>UserFN14> A check is made to ensure that the 'Auto redraw' flag of the window is off, and if necessary the bit is cleared automatically (i.e. you don't have to set the state of the flag using !FormEd or similar). Library Group => <Events=>LibGroupEvents>PROCshell_AttachDrag() Params => int window handle int icon handle str <function name=>UserFN22> Library Group => <Events=>LibGroupEvents>PROCshell_AttachHelpTag() Params => int window handle int icon handle str <message tag=>MessageTag> Note that any message tags found in icon validation strings override tags set up by this routine. Library Group => <Events=>LibGroupEvents>PROCWimpCloseDown Params => None Not used in EvntShell library - use <PROCshell_WimpCloseDown_I> instead. Library Group => <Shell=>LibGroupShell>PROCshell_WimpCloseDown_I Params => None Called when the application shuts down (the library calls this automatically) Library Group => <Shell=>LibGroupShell>PROCshell_Init Params => None Library Group => <Shell=>LibGroupShell>PROCshell_ResourcesInit Params => None Loads window templates, sprites and message files. This PROC must be called early in the program, i.e before the wimp poll loop starts. Library Group => <Shell=>LibGroupShell>Still To Do List Handling of filetypes other than &FFF needed in DataSave (Multiple filetypes/user_FNs required - set up lists) Force evaluated function names to start with '_' (error otherwise) Write bump icon handler Write list icon handler For !AppBuild iconbar menu title must be changed to NewApp name ReDraw event must be implemented in library Check out MessageTrans_MenuMake for creating menus from message files Change names of !RunImage to AppName without ! Pointer shape change event needed Implement StrongHlp system (shell_InstallStrongHlp) Check out possibility of INSTALLing EvntShell library Autoscroll handler when dragging within a window Jan-Herman Buining Jan-Herman Buining Acorn BBS : (020)6631849 Soendastraat 133 Huco BBS : (01804)30785 9715 NP Groningen La Luna BBS : (02593)41891 (050)735228 The Netherlands Eunet : jhb@neabbs.UUCP Thanks are also due to the above for his WASP application shell without which I would have never figured out how to do RAM file transfers. An excellent piece of programming, but a little limited for my taste.David Breakwell David Breakwell 22 Cobs Way New Haw, Addlestone Surrey ENGLAND Should be getting most of the credit because as far as I know he had the idea in the first place. He provided me with a copy of an early version of his application which was much better coded than mine but incomplete, so I came up with my own attempt.Guttorm 'Armstrong' Vik Guttorm 'Armstrong' Vik H�lbekken 208 5262 Arnatveit NORWAY Provider of StrongED2 which was used for developing the library code, and StrongHlp which allows to read this so nicely. Note that StrongED/StrongHlp are now commercial products available from Stallion Software.Credits A special mention for all the contributors (however unwittingly!) to the EvntShell library. #Table 6 24 <David Breakwell =>Breakwell> <Jan-Herman Buining =>Buining> <Simon Huntingdon =>Huntingdon> <Alex Petrov =>Petrov> <Robert Seago =>Seago> <Risc User =>RiscUser> <Joris R�ling =>joris> <Cy Booker =>Booker> <Guttorm Vik =>Vik> <Olaf Krumnow =>Krumnow> <Herbert zur Nedden =>Nedden> #EndTable PROCshell_OpenWindow() Params => int window handle int full flag int front flag Any panes attached to the window with <PROCshell_AttachPane> will be opened automatically. Library Group =\> <Windows=>LibGroupWindows>PROCshell_CloseWindow() Params => int window handle Any panes attached to the window with <PROCshell_AttachPane> will be closed automatically. Library Group => <Windows=>LibGroupWindows>PROCshell_IconbarSetText() Params => int window handle int icon handle str text under icon Library Group => <Icons=>LibGroupIcons>PROCshell_IconPutData() Params => int window handle int icon handle str text to insert into icon int redraw flag An error is generated if the text is too long to fit in the icon. If the redraw flag is TRUE wimp poll is called immediately to update the icon contents. Note that if the window is not open (for example if you are calling this routine in a pre-open function) then the redraw flag should be FALSE as the whole window will be redrawn when it is opened. Library Group =\> <Icons=>LibGroupIcons>PROCshell_IconRedraw() Params => int window handle int icon handle Force a redraw of the screen area covered by the given icon (including any 3D borders). Library Group => <Icons=>LibGroupIcons>PROCshell_IconPutValidation() Params => int window handle int icon handle str new <validation string=>SWI.wimp_validationstring> See also <FNshell_IconGetValidation>. Library Group => <Icons=>LibGroupIcons>PROCshell_IconSelect() Params => int window handle int icon handle Make the specified icon selected. Library Group => <Icons=>LibGroupIcons>PROCshell_IconDeselect() Params => int window handle int icon handle Library Group => <Icons=>LibGroupIcons>PROCshell_IconUnselectable() Params => int window handle int icon handle Library Group => <Icons=>LibGroupIcons>PROCshell_IconSetBGColour() Params => int window handle int icon handle int background colour An error is generated if the colour number is outside the range 0-15. See also <PROCshell_IconSetFGColour>. Library Group => <Icons=>LibGroupIcons>PROCshell_IconSetFGColour() Params => int window handle int icon handle int foreground colour An error is generated if the colour number is outside the range 0-15. See also <PROCshell_IconSetBGColour>. Library Group => <Icons=>LibGroupIcons>PROCshell_CaretSetPosition() Params => int window handle int icon handle int x offset in icon (usually -1) int y offset in icon (usually -1) int height (usually -1) int index Allows the caret to be positioned within an icon. the index parameter is the number of characters before the caret. See also <PROCshell_CaretSetRight>. Library Group => <Icons=>LibGroupIcons>PROCshell_CaretSetRight() Params => int window handle int icon handle Positions the caret at the right hand end of any text in the specified icon. See also <PROCshell_CaretSetPosition>. Library Group => <Icons=>LibGroupIcons>Icons #Table 13 20 <Iconbar =>FNshell_Iconbar> <IconbarSetText =>PROCshell_IconbarSetText> <IconCreate =>FNshell_IconCreate> <IconDelete =>PROCshell_IconDelete> <IconDelete2 =>PROCshell_IconDelete2> <IconDeselect =>PROCshell_IconDeselect> <IconDeselectAll =>PROCshell_IconDeselectAll> <IconGetData =>FNshell_IconGetData> <IconGetCommand =>FNshell_IconGetCommand> <IconGetValidation =>FNshell_IconGetValidation> <IconMove =>FNshell_IconMove> <IconMove2 =>FNshell_IconMove2> <IconNewSprite =>FNshell_IconNewSprite> <IconPutData =>PROCshell_IconPutData> <IconPutValidation =>PROCshell_IconPutValidation> <IconRedraw =>PROCshell_IconRedraw> <IconResize =>FNshell_IconResize> <IconSelect =>PROCshell_IconSelect> <IconSelectAll =>PROCshell_IconSelectAll> <IconSet =>PROCshell_IconSet> <IconSetBorder =>PROCshell_IconSetBorder> <IconSetBGColour =>PROCshell_IconSetBGColour> <IconSetButtonType =>PROCshell_IconSetButtonType> <IconSetESG =>PROCshell_IconSetESG> <IconSetFilled =>PROCshell_IconSetFilled> <IconSetFGColour =>PROCshell_IconSetFGColour> <IconSetHCentred =>PROCshell_IconSetHCentred> <IconSetLeftJust =>PROCshell_IconSetLeftJust> <IconSetRightJust =>PROCshell_IconSetRightJust> <IconSetSelected =>PROCshell_IconSetSelected> <IconSetSprite =>PROCshell_IconSetSprite> <IconSetText =>PROCshell_IconSetText> <IconSetUnselectable=>PROCshell_IconSetUnselectable> <IconUnselectable =>PROCshell_IconUnselectable> <IconSetVCentred =>PROCshell_IconSetVCentred> <IsIconSelected =>FNshell_IsIconSelected> <CaretSetPosition =>PROCshell_CaretSetPosition> <CaretSetRight =>PROCshell_CaretSetRight> #EndTableMemory <HeapBlockExists=>FNshell_HeapBlockExists> <HeapBlockExtend=>FNshell_HeapBlockExtend> <HeapBlockFetch =>FNshell_HeapBlockFetch> <HeapBlockInfo =>FNshell_HeapBlockInfo> <HeapBlockInit =>PROCshell_HeapBlockInit> <HeapBlockReturn=>PROCshell_HeapBlockReturn> <HeapManagerInit=>PROCshell_HeapManagerInit> <MemFill =>PROCshell_MemFill>Menus <AttachFontSubMenu =>PROCshell_AttachFontSubMenu> <AttachMenu =>PROCshell_AttachMenu> <AttachMenuMaker =>PROCshell_AttachMenuMaker> <AttachSubMenu =>PROCshell_AttachSubMenu> <MenuAdd =>FNshell_MenuAdd> <MenuColours =>PROCshell_MenuColours> <MenuDotted =>PROCshell_MenuDotted> <MenuLastXPos =>FNshell_MenuLastXPos> <MenuLastYPos =>FNshell_MenuLastYPos> <MenuNew =>FNshell_MenuNew> <MenuPutData =>PROCshell_MenuPutData> <MenuTick =>PROCshell_MenuTick> <MenuTickOnly1 =>PROCshell_MenuTickOnly1> <MenuTickOnly2 =>PROCshell_MenuTickOnly2> <MenuShade =>PROCshell_MenuShade> <MenuWritable =>PROCshell_MenuWritable> <OpenMenu =>PROCshell_OpenMenu>FNshell_MenuBase Params =\> None \<= int address of loaded menu file Library Group =\> <Menus=>LibGroupMenus>FNshell_MenuString() Params =\> str menu text \<= str menu text 0 terminated Library Group =\> <Menus=>LibGroupMenus>FNshell_HeapBlockExtend() Params => int address of heap block int amount to increase or decrease block size by (-ve to decrease) \<= int address of heap block Increases or decreases the size of the given heap block which must have been allocated with <FNshell_HeapBlockFetch>. Note that the heap block may be moved to make it fit so you should always use the returned value for the heap block address after this call. Library Group => <Memory=>LibGroupMemory>FNshell_HeapBlockFetch() Params => int size of block to fetch from heap \<= int address of heapblock allocated Returns address of heapblock or causes an "Out of memory" error if the block cannot be allocated. Library Group => <Memory=>LibGroupMemory>FNshell_HeapBlockInfo() Params => int address of heap block \<= int size of heap block (Note that this is 4 bytes larger than the size requested with <FNshell_HeapBlockFetch>) Library Group => <Memory=>LibGroupMemory>FNshell_IconGetData() Params => int window handle int icon handle \<= str icon text See also <PROCshell_IconPutData>. Library Group => <Icons=>LibGroupIcons>FNshell_FileExists() Params => str file name \<= bool TRUE if file exists, FALSE otherwise Library Group =\> <Files=>LibGroupFiles>FNshell_GetString() Returns the string at the given address. Terminators may be any character below ASCII 32. Params => int address \<= string found at addressFNshell_Iconbar() Place a sprite on the icon bar and attach a menu to it. Params => int -1 for right side of bar, -2 for left side str sprite name str text under icon int width of icon/text (whichever is larger) str menu handle bool shift flag (not implemented) bool ctrl flag (not implemented) bool alt flag (not implemented) The shift, ctrl and alt flags are for future enhancements to the library and should be set to 0 on this release. <Example code...=>Ex_Iconbar> Library Group => <Icons=>LibGroupIcons>FNshell_IconGetValidation() Params => int window handle int icon handle \<= str <validation string=>SWI.wimp_validationstring> See also <PROCshell_IconPutValidation>. Library Group => <Icons=>LibGroupIcons>FNshell_IconNewSprite() Params => int window handle int icon handle str new sprite name int redraw flag \<= int new icon handle Library Group => <Icons=>LibGroupIcons>FNshell_IsIconSelected() Params => int window handle int icon handle \<= bool TRUE if selected, FALSE otherwise Library Group => <Icons=>LibGroupIcons>FNshell_MessageWindow() Params => str message text int <cancel flag=>MsgWinCFlag> str <program name=>MsgWinProg> str <header=>MsgWinHead> \<= int result This routine is useful for OK to quit type windows. The returned result is 1 if OK was clicked, 2 if Cancel was selected. Library Group => <Windows=>LibGroupWindows>FNshell_WimpInit() Params =\> int version number str task name Not used in EvntShell library - use <FNshell_WimpInit_I> instead. Library Group =\> <Shell=>LibGroupShell>FNshell_WimpInit_I() Params =\> int version number str task name Also initialises Interface module. Library Group =\> <Shell=>LibGroupShell>PROCshell_WindowMoveTo() Params =\> int window handle to move int x coord to move to int y coord to move to See also <PROCshell_WindowMoveToIcon>. Library Group =\> <Windows=>LibGroupWindows>PROCshell_WindowMoveToIcon() Params => int window handle to move int window handle containing icon int icon handle int x offset of moved window from icon int y offset of moved window from icon See also <PROCshell_WindowMoveTo>. Library Group => <Windows=>LibGroupWindows>PROCshell_CreateWindow() Params =\> str window identifier int (ignored on entry) \<= int window handle of newly created window Library Group =\> <Windows=>LibGroupWindows>Simon Huntingdon For the Interface module - even Acorn have realised with RISC-OS 3 that this is what the users want! Contacts: Arcade BBS (081 654 2212) All mail on the above Bulletin Boards should be mailed to JICKRobert Seago For using my original shell program for things I would even dream of attempting!Introduction There are a lot of 'Shell' type applications already in the Public Domain (this is the second one I have written!) so why do we need another one? The reason is that existing shell programs are either too inflexible or too complicated. All of them I have seen involve editing the shell code introducing the possibility of making mistakes which usually result in a crashed computer. This one is different because the user application notifies the shell which 'events' it is interested in and the shell then calls the user application when the event occurs. <PROCshell_AttachModeChangeHandler> is a very simple example which calls a function in the user application when the screen mode changes. A more complicated example is <PROCshell_AttachPane> which allows the attachment of pane windows to a parent window. All opening and closing of windows and panes is handled totally by the shell library. The advantage is therefore that the shell code and the user code is kept completely seperate resulting in a (hopefully) much more understandable and robust user application.The Author OK I lied about not asking for money. If you send me <�5.00p=>Cash> you will make <The Wife=>Wife> and me very happy. You could even receive updated versions of all my wonderful <Programs>. I know if you register all of the 'ShareWare' (which is what the Evntshell library is) you have it would cost a fair bit of cash, but consider the time and effort I and the other authors have put into all this! Click <here=>Author2> for my address...The Wife Her name is Hilke by the way. When Guttorm improves StrongHlp to include sprite file displays I'll be able to show you a picture of her. That is if she didn't think that new curtains were more important than scanners or a new ARC..........User Guide <Change History =>History> <Common Questions =>questions> <Compressing > <Copyright > <Debugging > <Dynamic Windows =>DynamicWindows> <Interactive Help =>InterHlp> <Interface Module =>Interface> <Loading Files =>Loading> <Memory Management=>MemMan> <Menus > <Messages > <Outline Fonts =>fonts> <ResFind =>ResFind> <RISC-OS 3 =>RISCOS3> <Static Windows =>StaticWindows> <StrongHlp > <Saving Files =>Saving> <Sprites > <Templates > <The Next Release=>NextRelease>The Next release No promises mind... - Support for automatic handling of more complicated icon types, for example sliders, rotating knobs etc (steady now don't get carried away) - Import and display of DrawFiles and Sprites - Inclusion of more debugging aids - More drag types - Autoscroll handler when object is dragged within a window - Colour pick dialogs - Automatic handling of non-icon text within a window (like C txt objects) - Playing of Maestro tunes (ArchWay does!) - Extending message file useage to icons/ windows/menus - Replay Films (!!!) - Better multiple file buffers - Complete German message files - Automatic attaching of 'hot key' events by examining menu textRISC-OS 3 All supplied apps have been tested under RISC-OS 3.1 running on a 4Meg A310 and on an A4, but at the moment make little use of the new features. Apart from supporting solid sprite dragging. (That's one up on RISC_OSLib anyway..) Oh yes, and the boot file message.Recompense Or the equivalent in chocolateDebugging The EvntShell library outputs a commentary on what it is doing into a tracefile, providing that <PROCshell_TraceInit> and <PROCshell_TraceOn> have been called. The user application can also place output in this file using <PROCshell_Tracef0>. Outputting trace information will slow the user application noticeably, especially when starting up as a lot of trace info is generated by the call to <PROCshell_ResourcesInit>. Therefore it is best to only turn on tracing when necessary, and of course make sure that tracing is off on any applications you distribute! A seperate application, !ShellDBug allows the trace messages to be viewed in a window as the user application runs.Dynamic Dialog Windows Dynamic windows are those created by moving the pointer over a submenu pointer arrow (i.e the normal 'About this program' window produced by the 'Info' entry on the iconbar menu) or optionally when a 'hot key' is pressed. They are opened with a call to <PROCshell_OpenWindowDynamic>. When writeable icons exist in the dynamic window up/down cursor keypresses move the caret between the icons using the icon handles to determine where to move next. You should ensure therefore that the order of the icon handles is a logical progression through the dialog box. Icons that are unselectable (i.e. greyed out) will be ignored. Pressing the \<RETURN> key moves the caret to the next icon, unless the caret is already in the last writeable icon, in which case icon 0 (normally a 'default action' icon with an extra border) is pressed and the menu/dialog box closed. Actually clicking \<SELECT> on icon 0 of a dynamic dialog box will cause the shell library to close the window as well. When a 'hot key' is pressed you have the option of opening a dynamic dialog box which will disappear when a mouse click is made outside it or the \<ESC> key is pressed, or as a 'Static' dialog box which must be explicitly closed by the user application program. Do not attempt to close a dynamic dialog box with a call to <PROCshell_CloseWindow> or <PROCshell_DeleteWindow> as this will cause an error when the shell library tries to close or delete the window.Static Windows These are opened with a call to <PROCshell_OpenWindowStatic> and respond to cursor and \<RETURN> keypresses like dynamic dialog boxes except that pressing \<RETURN> in the last writeable icon will not close the window. Static windows must be created with a call to <PROCshell_CreateWindowStatic>. Closing these windows is the responsibility of the application program (use <PROCshell_CloseWindow>) except in the case of a click on the 'Close' icon in the title bar icon (if present). You would use a static window for the main window of an application, or perhaps for a save box as in the case of the !WinSave2 example. The advantage of using a static window in this case is that this allows the user to open directory viewers or start other applications while keeping the save box on the screen.Templates All windows used by programs based on the shell library would normally be defined using a template editor as this is far simpler than creating the windows/icons in the user program. This is not as inflexible as it may sound as windows can be resized, moved or otherwise altered by shell library routines. The template file must be called 'Templates' and be either in the application directory or in the appropriate language directory if ResFind is in use. Note that if you are using different templates for different languages you must use ResFind. In most cases, however, it is sufficient to have only one template file in the application directory and to insert the text taken from the message file in the language of choice into the icons. A call to <PROCshell_ResourcesInit> will find the template file and load all the templates it contains allocating memory as required.Menus Menus are now handled by MenuUtils which was written by <Alex Petrov=>Petrov>. Versions of the library prior to 1.20 used a menu editor to create a seperate menu template file, but I have now abandoned this as it was rather inflexible. The use of MenuUtils has enabled me to remove large chunks of slow BASIC code and to provide many more features, such as creation and modification of menus under program control. The menus themselves appear more quickly as well (OK Cy?). The support module is automatically loaded by the !Run file to provide the new menu handling SWIs used by the EvntShell library.Message Files The message file is a normal ASCII file written using !Edit or similar that contains message strings preceeded by a message tag. The application program should find the messages as required by tag name which allows the production of foreign language versions (probably by someone else!). It is also far easier to edit the message file to change text displayed by the application than using !FormEd or similar. The !Run file automatically loads a support module 'MsgTrans' if required (it is built in to RISC-OS 3) to provide this facility. The message file must be called 'Messages' and be in the application directory or in the appropriate language directory if ResFind is in use. A call to <PROCshell_ResourcesInit> will find the file if it exists and load all the messages it contains allocating memory as required. The messages issued by the library code are stored in a file called 'ShellMsgs' inside the !ShellSys.Resources.UK directory. If this file is present in the user application directory then it is loaded from there, if not it is loaded from !ShellSys. This is to aid the construction of stand alone applications.Sprites The sprite file must be called 'Sprites' and be either in the application directory or in the appropriate language directory if ResFind is in use. A call to <PROCshell_ResourcesInit> will find the file if it exists and load all the sprites it contains allocating memory as required. The sprite area pointer for each loaded template will be set to point to the user sprite area, which put simply this means that all sprites displayed in windows must be present in the 'Sprites' file. This may, however, be changed after loading.Interface Module The shell library makes the assumption that the interface module will always be used. The reason is that firstly that it is highly likely that some other PD program will have already loaded it, and secondly that the facilities it provides for changing pointer shapes over certain icons is extremely useful as a prompt for what the icon is for. Indeed RISC-OS 3 has this built in so even Acorn are supporting 3D buttons etc.... The module is loaded by the !Run file if not already loaded. Using a template editor that is 'Interface Aware' makes incorporating these effects into a user program easy as once the icons have been designed and placed the shell library handles all the redrawing automatically. Note that windows containing 3d interface icons must have the 'Auto Redraw' flag off, but if the template editor displays interface icons then the user application will as well.Panes A pane window is a window attached to a parent window which has different properties to the parent. A well-known example is the 'ToolBox' pane attached to a !Draw window which always appears at the top left of the parent window however the parent window is scrolled. Another example could be a parent window without scrollbars which has a scrolling pane attached to the work area which might be used in a 'FindFile' application to display a list of finds. Panes are created using !FormEd or similar with the 'pane' flag set. A call to <PROCshell_AttachPane> specifies which pane is attached to which window and the position of the pane. Multiple panes may to attached to a parent window (see the example application !Panes). The opening and closing of panes is handled totally by the shell library - a call to <PROCshell_OpenWindow> after attaching the panes will open the parent window and the panes together.Saving Data This is achieved by a call to <PROCshell_AttachDataSave> which specifies which filetype the saved file should be given, the name of a function which will actually perform the save and the window/icon handles the drag save event is associated with. It is therefore possible to have different drag save events attached to different icons in the same window. This is useful where it is possible to save the file as more than one type - you can have multiple filetype icons in the save window. The EvntShell library supports RAM file transfer for speed when saving data to consenting applications. See the !WinSave and !VBase2 example applications for how to use this routine.Loading Data This is achieved by a call to <PROCshell_AttachDataLoad> which tells the EvntShell library which filetypes the user application is interested in and the name of a function to call when a load event occurs. Multiple files may be loaded, but in the current release of the library it is up to the user application to keep track of where they are loaded and if they have been modified. This will change in a future release. If required the files can be loaded automatically into a reserved block of memory, or the user application can have total control over loading and processing the file. The EvntShell library supports RAM file transfer for speed when loading data from consenting applications. It is also possible to arrange for the user application to respond to a range of filetypes by attaching more than one handler.Compressing The Application I recommend !BasShrink or !Shrink_PD (the Public Domain version of !BasShrink) by <John Wallace=>Wallace>. It is possible for example to combine the !Panes application and the shell library to form a stand alone program and then use !BasShrink to reduce it from 51K to around 20K. Future versions of !BasShrink should be able to remove unused routines to save even more space, or alternatively BLibII can be used to pre-process the application to link in only the routines that are actually used. See the manual section 'Other Tools' for more details. There is one important point to bear in mind when using the shell library and !BasShrink together - function names that are EVALuated by the shell library should begin with a '_' character and the 'Preserve names starting with' radio button in the !BasShrink window must be ON. In short if you are calling any shell library routine that has a function name as a parameter then that name must start with a '_'. Failure to observe this rule will result in a non-working compressed program! Assuming you have !BasShrink 2.14 or later the EvntShell library can be compressed with all switches on except 'Shorten FN names', 'Shorten PROC names' and 'Remove * comments'. If you are not going to use !BLibII you can switch on 'Remove * comments' to strip out the !BLibII commands. If you append the EvntShell library to the user application manually or by using BLibII you can compress the complete program with all switches on.John Wallace (Architype SoftWare) Supplier of !BasShrink which costs 5.00p. !BasShrink_PD is the Public Domain version and is available from various PD libraries. John Wallace, Architype Software, 54 Parkes Hall Road, Woodsetton, Dudley, West Midlands, DY1 3SR ENGLAND.Programs !DataLoad - EvntShell Demo of loading data files !EvntShell - EvntShell Demo which demonstrates an 'address book' type data editor, including loading a special file type !ShellDBug - Display trace messages from EvntShell applications !Panes - EvntShell Demo which demonstrates parent windows and panes !VBase2 - EvntShell Demo which demonstrates hot keys, dynamic dialog boxes and saving data !WinSave - EvntShell Demo but useful as well. An example of a real working application using the EvntShell library. This app saves desktop windows as a sprite file for inclusion in DTP etc. !FormEd2 - Based on Risc Squad version 2.84b lightly modified to support interface style icons !FormEd3 - EvntShell menu testing application !AppBuild - Produces a customised version of !EvntShell to use as a basis for new applications !InlayPrnt - Cassette inlay printer !VBase - Video Cassette DataBase (v1.51) !Text-DTP - Conversion of formatted text files for DTPMisc No Routines here yet!Cancel Flag FALSE = don't display a CANCEL icon TRUE = message window has a CANCEL iconProgram Name Displayed in the title bar of the message windowHeader When null then the title bar will read "Message from AppName". When non-null the header is displayed insteadFNshell_IconCreate() Params => int window handle int min x coord of icon int min y coord of icon int width of icon int height of icon int foreground colour int background colour int <icon flags=>SWI.Wimp_iconflags> str text to insert into icon int address of indirected data (ignored when not indirected) int length of indirected buffer (ignored when not indirected) str <validation string=>swi.wimp_validationstring> \<= int handle of new icon This routine is only used when the application needs to create icons itself rather than loading them as part of a window definition in a template. It does not redraw the area of the window occupied by the new icon. If the window is open it may be necessary to call <PROCshell_IconRedraw> to update the window area covered by the icon. Library Group => <Icons=>LibGroupIcons>PROCshell_AttachMenuDBox() Params => str <menu selection string=>menudboxselstr> str window identifier str <function name=>UserFN07> str <function name=>UserFN08> Calling this routine will automatically setup the sub menu arrow on the menu item, and also set the 'menu warning' flag. It is not necessary to do this in the menu editor. Library Group => <Events=>LibGroupEvents>User FN (PROCshell_AttachMenuDBox) Params => int window handle The function to call after creating the window but before opening it. This can be used to fill in icon fields etc. A function name of "" may be used if you don't need to call a function.User FN (PROCshell_AttachMenuDBox) Params => int window handle The function to call after opening the window. A function name of "" may be used if you don't need to call a function.PROCshell_AttachHotKey() Params => str <key=>HotKeyKey> bool shift flag bool ctrl flag bool alt flag str <window identifier=>HotKeyWin> int <window handle=>HotKeyStatic> str <function name=>UserFN09> str <function name=>UserFN10> Sets up a 'hotkey' event. Function keys F0-F11 (note NOT F12 as the task manager uses it under RISC-OS 3) are supported. Library Group => <Events=>LibGroupEvents>User FN (PROCshell_AttachHotKey) Params => int window handle The function to call before opening the window. A function name of "" may be used if you don't need to call a function. This would normally be used to fill in icon fields and set the state of radio buttonsUser FN (PROCshell_AttachHotKey) Params => int window handle The function to call after opening the window. A function name of "" may be used if you don't need to call a function.Key (PROCshell_AttachHotKey) The key string normally consists of one ASCII character i.e. "R". When the ctrl flag is set this would cause the actions to be carried out when CTRL-R is pressed. The string may also contain "F1" to "F11" to allow function keys to be used. No checking is performed on the string.Window (PROCshell_AttachHotKey) The window identifier specifies the name of the window you want to appear when the keypress is received. This parameter is optional as you might not always want to open a window. The window is a 'dynamic' dialog box which will disappear when \<ESC> is pressed and is opened in such a position that the mouse pointer is in the middle of the window (where possible).Window Handle (shell_AttachHotKey) When this is >0 then the window created will be static i.e. it will not be removed when the mouse is clicked outside it, or when \<ESC> is pressed.User FN (PROCshell_AttachUserRedraw) Params => int address of <block=>SWI.wimp_getrectangle0> returned by redraw request int x origin of window (screen coords) int y origin of window (screen coords) The function to call when a redraw request is made.User FN (PROCshell_AttachClickSelect) Params => int window handle int icon handle User FN (PROCshell_AttachClickAdjust) Params => int window handle int icon handle PROCshell_OpenWindowStatic() Params => int window handle The window will be brought to the top of the stack by this call. The window must have been created with a call to <PROCshell_CreateWindowStatic> - an error will be generated if this is not the case. Any panes attached to the window with <PROCshell_AttachPane> will be opened automatically. Library Group =\> <Windows=>LibGroupWindows>PROCshell_CreateWindowStatic() Params =\> str window identifier int (ignored on entry) \<= int window handle of newly created window Library Group =\> <Windows=>LibGroupWindows>Menu String (PROCshell_AttachMenuDBox) Note that this string is treated as a list of <message tags=>MessageTag>, and any tokens found in the message file will be replaced. If the tag is not found no substitution will occur. This allows you to ignore the ability of the EvntShell library to handle multi-lingual menus if required.Interactive Help The EvntShell libray supports Acorn's Interactive Help application !Help by searching icon validation strings for the 'I' command (as recommended by the author of the Interface module) for a <message tag=>MessageTag>. The message belonging to the tag will be looked up and sent to !Help (if !Help is running). An example would be a validation string of "iMessTag01", where the file 'Messages' contains the line 'MessTag01:This is a test'. 'This is a test' would be the message displayed. It is also possible to attach a message tag to a window or a window/icon using <PROCshell_AttachHelpTag>.Message Tags A message tag is a string not more than 11 characters long and represents a message string to be found in the 'Messages' file.FNshell_MenuLastXPos Returns the X coordinate of the last menu opened by <PROCshell_OpenMenu>. Library Group => <Menus=>LibGroupMenus>FNshell_MenuLastYPos Returns the Y coordinate of the last menu opened by <PROCshell_OpenMenu>. Library Group => <Menus=>LibGroupMenus>PROCshell_OpenMenu() Params => int menu x coordinate int menu y coordinate int handle of menu to open Normally this routine is called internally by the library routines in response to menu open events set up by <PROCshell_AttachMenu>. In some circumstances it may be advantageous to call it from the user applications. Library Group => <Menus=>LibGroupMenus>PROCshell_TraceExit Params => none Closes the trace file if it is open. Normally only called by the EvntShell library when the application closes down. Library Group =\> <Debug=>LibGroupDebug>PROCshell_Tracef0() Params => str trace output Writes the given string into the trace file if it is open. If <PROCshell_TraceInit> was called with a null filename ("") then the trace output will be broadcast using Acorn's message system to be picked up and displayed by !ShellDBug if it is running. Library Group =\> <Debug=>LibGroupDebug>PROCshell_TraceInit() Params => str file name for trace output (can be "" - see below) Initialises the trace file (must be called before any other trace functions). If the file name is "" then no file is opened, trace output is broadcast as a user message to be displayed by !ShellDBug. Library Group =\> <Debug=>LibGroupDebug>FNshell_TraceIsOn Params => none \<= TRUE if trace is enabled, FALSE otherwise. Library Group =\> <Debug=>LibGroupDebug>PROCshell_TraceOff Params => none Turns off trace output. Library Group =\> <Debug=>LibGroupDebug>PROCshell_TraceOn Params => none Turns on trace output. Library Group =\> <Debug=>LibGroupDebug>Draw No Routines here yet!FNshell_FileLength() Params => str file name \<= int length of the specified file Library Group => <Files=>LibGroupFiles>PROCshell_MouseLimit() Params => int address of workspace parameter block int window handle Limits mouse pointer movement to the area of the specified window. Library Group => <Mouse=>LibGroupMouse>FNshell_OSVarExists() Params => int workspace buffer str os variable name \<= bool TRUE or FALSE Library Group => <OS=>LibGroupOS>FNshell_OSVarGetVal() Params => int workspace buffer int size of buffer str os variable name bool expand flag \<= str value of variable Library Group => <OS=>LibGroupOS>FNshell_OSReadCommandArg() Params => int option (must be 0 or 1) \<= str command string Library Group => <OS=>LibGroupOS>FNshell_StringArrayGetLongest() Params => array name of string array int number of elements \<= int length of longest element Library Group => <Strings=>LibGroupStrings>FNshell_StringExchange() Params => str source string str target string str substitution string \<= str transformed string Library Group => <Strings=>LibGroupStrings>FNshell_StringUpperCase() Params => str source string \<= str transformed string Library Group => <Strings=>LibGroupStrings>FNshell_StringLowerCase() Params => str source string \<= str transformed string Library Group => <Strings=>LibGroupStrings>FNshell_StringPadLeading() Params => str source string str pad character int length to pad to \<= str transformed string Library Group => <Strings=>LibGroupStrings>FNshell_StringPadTrailing() Params => str source string str pad character int length to pad to \<= str transformed string Library Group => <Strings=>LibGroupStrings>FNshell_StringStripAll() Params => str source string str character to strip \<= str transformed string Library Group => <Strings=>LibGroupStrings>FNshell_StringStripLeading() Params => str source string str character to strip \<= str transformed string Library Group => <Strings=>LibGroupStrings>FNshell_StringStripTrailing() Params => str source string str character to strip \<= str transformed string Library Group => <Strings=>LibGroupStrings>FNshell_GetAppName Params => none \<= str name of application (actually the 'leaf' name of the application directory minus the '!') Library Group => <Shell=>LibGroupShell>FNshell_GetAppDir Params => none \<= str full path name of the application directory Library Group => <Shell=>LibGroupShell>FNshell_GetAppDataDir Params => none \<= str full path name of the application data file directory Library Group => <Shell=>LibGroupShell>PROCshell_InitHelpSystem() Params => str path name of help files bool <DieWithTask> flag Used to register a new help system with StrongHlp. After making this call StrongHlp will add the help system found in the given path to its icon bar menu. StrongHlp will be started if it is not already running and StrongHelp$Dir has been defined. If StrongHlp cannot be found then the initialisation command is stored and sent when StrongHlp is started. Library Group => <StrongHlp=>LibGroupHelp>PROCshell_HelpWord() Params => str word for which help is to be displayed Used to send a help request to StrongHlp. If the word is found in the help system the appropriate help text will be displayed. StrongHlp will be started if it is not already running and StrongHelp$Dir has been defined. If StrongHlp cannot be found then the initialisation command is stored and sent when StrongHlp is started. Library Group => <StrongHlp=>LibGroupHelp>-DieWithTask Flag When TRUE the help system will only be added to the StrongHlp icon bar menu while the user application is actually running. When FALSE it remains available when the application quits.StrongHlp <HelpWord =>PROCshell_HelpWord> <InitHelpSystem =>PROCshell_InitHelpSystem> <StrongHlpIsAvailable=>FNshell_StrongHlpIsAvailable>StrongHlp This is a hypertext application written by <Guttorm Vik=>Vik> which functions as an on-line manual. It comes with data file for BASIC, SWI calls plus many others and I have adopted it to supply the documentation for the EvntShell library. You only have to use it to see the advantages, but the biggest advantage is that when you edit program source code using <StrongED2=>StrongED2.$> help can be obtained simply by pressing F1. More details can be found in the <StrongHlp=>StrongHelp.$> help files. The EvntShell library also has a few PROCs to interface with StrongHlp to enable user applications to register help systems. When a request is sent to StrongHlp the active applications on the icon bar are checked to see if StrongHlp is running. If it is not and its !Boot file has been 'seen' by the Filer then it will be started automatically. If StrongHlp has not been 'seen' then an error will be generated. Note that for the above to work it is vital that the help system directory has the same name as the application (minus the '!').PROCshell_IconSet() Params => int window handle int icon handle bool state (0 for deselected, non 0 for selected) This call is used to select or deselect icons depending on the value of the state flag Library Group => <Icons=>LibGroupIcons>FNshell_LibraryVersion Params => none \<= int library version * 100 i.e version 1.02 returns 102 Library Group =\> <Shell=>LibGroupShell>Library Versions 1.00 - Initial release 1.01 - Added support for StrongHlp help systems - Added user redraw events - Improved documentation - Added run time version of library - Changes to global variable names to allow compression with BasShrink - Released to APDL 1.02 - Bug fixes to \<Wimp$Scrap> file transfer routine (was not sending correct message resulting in the file not being loaded by the target application) - DataSave event handler does not now require that the file exist in a heap block. The data can be written directly to a disk file when the datasave user function is called 1.03 - Bug fix for windows without menus attached. The memory location holding the address of the menu was not being initialised leading to the library thinking a menu had been attached to a window when it hadn't! 1.04 - Help tags now work the way I originally intended, in that message tags in icon validation strings override tags set up by shell_AttachHelpTag. - <PROCshell_IconPutData> now updates icon contents immediately instead of waiting for the next wimp poll event. This allows messages to be displayed in icons during program sections that do not call the polling loop (see !AppBuild) - New Routine <FNshell_Leaf> - New Routine <FNshell_Branch> - New Routine <FNshell_FileType> - New Routine <PROCshell_MemFill> - New Routine <FNshell_IconResize> - Added support for ShellDBug to send trace messages to a window - Released to APDL 1.05 - <PROCshell_HelpWord> now working (see !VBase2) - Attempting to send a help request to !StrongHlp when StrongHlp is not running will now start !StrongHlp for you (Thanks Guttorm for sorting this one out!) - Non fatal errors do not now kill the trace output - Dragging an icon that does not have a drag event registered now displays a warning message instead of generating an error - More messages added to the message file - Problem with DataSave event not being deleted properly fixed. This led to the event being attached to the wrong window/icon sometimes - Minor bug fix to interactive help routine which sometimes prevented help messages being sent - Click on icon 0 of static window does not now close the window. (Also true of pressing RETURN when caret is in last writeable icon of a static window). - New Routine <PROCshell_WindowBringToTop> - New Routine <FNshell_WindowIsOnTop> - New Routine <PROCshell_MenuTick> - New Routine <PROCshell_MenuShade> - Routine Improved <PROCshell_WindowRetitle> - Routine Improved <PROCshell_WindowMoveToIcon> - Routine Improved <PROCshell_WindowMoveTo> - Clicking on 'interface' style icons without events attached now does not 'slab' the icon 1.06 - New Routine <FNshell_WindowHasTitleBar> - New Routine <FNshell_WindowIsMoveable> - New Routine <FNshell_WindowIsAPane> - New Routine <FNshell_WindowIsNotBounded> - New Routine <FNshell_WindowTrapsHotKeys> - New Routine <FNshell_WindowIsOpen> - New Routine <FNshell_WindowHasBeenToggled> - New Routine <FNshell_WindowHasInputFocus> - New Routine <FNshell_WindowHasBackIcon> - New Routine <FNshell_WindowHasCloseIcon> - New Routine <FNshell_WindowHasToggleIcon> - New Routine <FNshell_WindowHasVScrollBar> - New Routine <FNshell_WindowHasAdjustSizeIcon> - New Routine <FNshell_WindowHasHScrollBar> - New Routine <FNshell_WindowGetTitle> - New Routine <FNshell_WindowTitleBufferLength> - New Routine <FNshell_WindowLoaded> - New Routine <FNshell_IconMove> - New Routine <FNshell_IconMove2> - New Routine <FNshell_FontMenuGetLastSelectedFont> - New Routine <PROCshell_IconDelete> - New Routine <PROCshell_IconDelete2> - New Routine <PROCshell_DoBackgroundTask> - New Routine <PROCshell_HandleUnknownMessage> - New Routine <PROCshell_MenuPutData> - New Routine <PROCshell_AttachSubMenu> - New Routine <PROCshell_AttachFontSubMenu> - New Routine <PROCshell_AttachFontMenu> - New Routine <PROCshell_FontMenuSelectFont> - Added support for ShellDBug to turn tracing on/off - Revised parameters for user function called by <PROCshell_AttachMenuMaker>. Now passes handle of window and icon that was clicked over. This allows you to set up the menu depending on the window/icon handles. - Revised parameters for <FNshell_IconCreate> (added validation string parameter) - Revised parameters for <FNshell_IconResize> (removed border width parameter as this is calculated by the routine now) - Minor bug fixed that resulted in files not being transferred correctly to !StrongEd2 (every other RISC-OS text handling program from !Impression down worked OK though!) - Added support for outline fonts. Templates using fonts can now be loaded, but missing fonts may still cause problems! 1.07 - New Routine <PROCshell_IconDeselectAll> - New Routine <PROCshell_IconSelectAll> - If a menu has been attached to an icon, SELECT, MENU or ADJUST will now open it (instead of just MENU as before) 1.08 - Bug fix to SELECT/ADJUST opening a menu (opened menus when it shouldn't have. Grrrrrr!) - Added 'no load' flag to <PROCshell_AttachDataLoad> - Fixed bug in attach dataload routine - Added support for RISC-OS 3 boot message - Shell messages held in seperate file (thanks for the suggestion and info Cy!) - Small 'FontMenu' bugette fixed (selected font was not being ticked in the menu if the menu was attached to a window instead of another menu) 1.09 - New routine <PROCshell_AttachBumpHandler> - New routine <FNshell_WindowSetSpriteArea> - Corrected documentation for PROCshell_AttachUserRedraw 1.10 - Corrected documentation for PROCshell_AttachHotKey 1.11 - Added support for !BLibII linker - <PROCshell_AttachUserRedraw> now changes auto redraw flag for the window if necessary 1.12 - DataSave routine now automatically saves data if data is in a heapblock and no FN is named to actually perform the save - <PROCshell_AttachPane> alters pane window flags if necessary 1.13 - Bug fixes for 'no load' loads from other applications 1.14 - More library routines now claim private workspace to avoid interactions - Added routine <PROCshell_IconSetButtonType> - Added routine <PROCshell_IconSetESG> - Added routine <PROCshell_IconSetText> - Added routine <PROCshell_IconSetSprite> - Added routine <PROCshell_IconSetBorder> - Added routine <PROCshell_IconSetHCentred> - Added routine <PROCshell_IconSetVCentred> - Added routine <PROCshell_IconSetFilled> - Added routine <PROCshell_IconSetRightJust> 1.20 - Now uses MenuUtils module for menu handling - Added routine <PROCshell_IconSetSelected> - Added routine <PROCshell_IconSetUnselectable> - Added routine <FNshell_MenuNew> - Added routine <FNshell_MenuAdd> - Added routine <FNshell_MenuDelete> - Added routine <FNshell_MenuColours> - Added routine <FNshell_MenuDotted> - Added routine <FNshell_MenuWritable> - Added routine <FNshell_MenuTickOnly1> - Added routine <FNshell_MenuTickOnly2> - Modified all other menu routines - Added routine <FNshell_StrongHlpIsAvailable> - Added routine <PROCshell_AttachPreQuitHandler> - Added routine <PROCshell_AttachOpenWindow> - Added routine <PROCshell_AttachCloseWindow> - Added routine <PROCshell_IconSetLeftJust> - Added routine <PROCshell_SpriteAreaSave> - Added routine <PROCshell_SpriteRename> - Added routine <FNshell_SpriteAreaLoad> - Added routine <FNshell_SpriteGetPtr> - Added routine <FNshell_OSCheckVersion> - Added routine <FNshell_OSCheckModuleVersion> - Fixed PROCshell_IconSetRightJust - Writable icon handler now ignores unselectable icons when moving caret - Added support for ResFind (internationalisation of messages etc)Estimated File Sizes It should (if other applications are written to the Acorn guidelines!) not matter if this estimate is inaccurate. However, file transfer will be a little faster if it is accurate and problems may occur with badly written applications if it is not.FNshell_IconResize() Params => int window handle int icon handle int min x coord int min y coord int max x coord int max y coord \<= int icon handle Allows the redefinition of an icon's bounding box. As the icon has to be deleted and then recreated it returns the new icon handle (which should be the same as the old handle). The icon is redrawn after resizing, taking account of any 3D borders. Library Group => <Icons=>LibGroupIcons>Messages <BroadcastMessage =>FNshell_BroadcastMessage> <HandleUnknownMessage=>PROCshell_HandleUnknownMessage>PROCshell_BroadcastMessage() Params => int reason code str message text Library Group => <Messages=>LibGroupMessages>PROCshell_WindowRetitle() Params => int window handle str new title It is not necessary to make the window title indirected, but titles longer than 11 characters will be truncated without warning if it is not. Attempting to use a title which is longer than the allocated buffer will again cause truncation. Library Group =\> <Windows=>LibGroupWindows>PROCshell_WindowResize() Params => int window handle int min x coord of workarea int min y coord of workarea int max x coord of workarea int max y coord of workarea bool open flag Library Group =\> <Windows=>LibGroupWindows>FNshell_FileType() Params => str file name \<= int file type Returns the file type of the specified file on disk. A full path name must be given (especially under RISC-OS 3.1!) Library Group => <Files=>LibGroupFiles>FNshell_Leaf() Params => str file name \<= str 'leaf' of filename, i.e the name of the actual file, minus the path Library Group => <Files=>LibGroupFiles>FNshell_Branch() Params => str file name \<= str 'branch' of filename, i.e the path of the directory containing the file. Note that the returned string does not include the final '.' character. Library Group => <Files=>LibGroupFiles>Copyright Notice The EvntShell library code and any demo or support programs supplied with it are NOT Public Domain software. They are ShareWare which means that if you use them and like them you should register with the <Author=>Author2>. In particular you should note that no part of the EvntShell code may appear on !Illusions magazine disks or in the associated PD library 'Digital Illusions'. This therefore applies to any application written using the EvntShell library. Other PD libraries may distribute this software freely. The reason for excluding !Illusions is that I don't like people who use (or threaten to use) viruses as a means of copy protection. You may distribute ShellLib, ShellLibRT or both with your own applications. Library code may be appended to the user application if required, and redundant routines may be removed. You may not alter the library code, claim to have written it or make money on it. A note in the application !Help file acknowledging the source of the library code with details of how to obtain the full package would be appreciated. The heap manager routines are copyright Risc User and are used with permission.The Author Paul Hobbs Rheinpfalzstrasse 2 85049 Ingolstadt GermanyUser FN (PROCshell_AttachMenuMaker) Params => int window handle over which MENU was pressed int icon handle over which MENU was pressed (-1 for no icon) This function is called before the menu is opened.Risc User Magazine Special thanks to Risc User for permission to use the heap manager code published in Risc User Volume 4 issue 2, without which the EvntShell library would not be possible. Please note that any EvntShell based application distributed for whatever reason should also acknowledge Risc User's copyright of this code. PROCshell_WindowBringToTop() Params =\> int window handle to bring to top This routine causes a wimp message to be sent to bring a window to the top. You cannot use this routine on windows owned by your own task, but you can use <PROCshell_OpenWindow> in this case. It may take several wimp poll events before the window is opened, however, so you cannot assume it is actually open immediately after this call. You can use <FNshell_WindowIsOnTop> to check the status of the window after this call. Library Group =\> <Windows=>LibGroupWindows>FNshell_WindowIsOnTop() Params => int window handle \<= bool TRUE if window is on top, otherwise FALSE This function can be used to discover if the given window is on top of the stack (i.e. completely uncovered). It is especially useful after a call to <PROCshell_WindowBringToTop> as it may take several calls to Wimp_Poll before the window is brought to the top. The window may belong to another task. Library Group =\> <Windows=>LibGroupWindows>PROCshell_MenuTick() Params => int menu or item handle int <state=>menutickflags> Adds or removes ticks for menu items. If a menu handle is given then all items in the menu are ticked or not ticked. See also <PROCshell_MenuTickOnly1>, <PROCshell_MenuTickOnly2> Library Group => <Menus=>LibGroupMenus>PROCshell_MenuShade() Params => int menu or item handle int <state=>menushadeflags> Shades menu items. If a menu handle is given then all items in the menu are shaded or deshaded. Library Group => <Menus=>LibGroupMenus>Menu Tick States The state is 0 for no tick, non 0 for a tick.Menu Shade States The state is 0 for no shading, non 0 for shading.Some Common Questions Why doesn't a drag box appear around an icon even though I have set the icon to be dragable using a template editor? This is because you have not attached an event handler to define what happens when the button is released. If you attach a drag handler with <PROCshell_AttachDataLoad> for example then all will be well. Why is icon 0 in a dynamic dialog box apparently clicked over when the RETURN key is pressed in the last writeable icon, resulting in the dialog box being closed? This is the Acorn defined RISC-OS standard behaviour. Note, however, that a bug in the EvntShell library code in versions prior to 1.05 caused this behaviour with 'Static' windows as well which was not what was intended!FNshell_WindowHasTitleBar() Params => int window handle \<= bool TRUE if window has a title bar, otherwise FALSE Library Group =\> <Windows=>LibGroupWindows>FNshell_WindowGetTitle() Params => int window handle \<= str window title (null if no title) Library Group =\> <Windows=>LibGroupWindows>FNshell_WindowTitleBufferLength() Params => int window handle \<= int buffer length (12 if title is not indirected) Library Group =\> <Windows=>LibGroupWindows>FNshell_WindowIsMoveable() Params => int window handle \<= bool TRUE if window is moveable, otherwise FALSE Library Group =\> <Windows=>LibGroupWindows>FNshell_WindowIsAPane() Params => int window handle \<= bool TRUE if window is a pane, otherwise FALSE Library Group =\> <Windows=>LibGroupWindows>FNshell_WindowIsNotBounded() Params => int window handle \<= bool TRUE if window may move outside the screen area, otherwise FALSE Library Group =\> <Windows=>LibGroupWindows>FNshell_WindowTrapsHotKeys() Params => int window handle \<= bool TRUE if window traps hot keys, otherwise FALSE Library Group =\> <Windows=>LibGroupWindows>FNshell_WindowHasBeenToggled() Params => int window handle \<= bool TRUE if window has been toggled to full size, otherwise FALSE Library Group =\> <Windows=>LibGroupWindows>FNshell_WindowHasInputFocus() Params => int window handle \<= bool TRUE if window has the input focus, otherwise FALSE Library Group =\> <Windows=>LibGroupWindows>FNshell_WindowHasBackIcon() Params => int window handle \<= bool TRUE if window has a send to back icon, otherwise FALSE Library Group =\> <Windows=>LibGroupWindows>FNshell_WindowHasCloseIcon() Params => int window handle \<= bool TRUE if window has a close icon, otherwise FALSE Library Group =\> <Windows=>LibGroupWindows>FNshell_WindowHasToggleIcon() Params => int window handle \<= bool TRUE if window has a toggle icon, otherwise FALSE Library Group =\> <Windows=>LibGroupWindows>FNshell_WindowHasVScrollBar() Params => int window handle \<= bool TRUE if window has a vertical scroll bar, otherwise FALSE Library Group =\> <Windows=>LibGroupWindows>FNshell_WindowHasHScrollBar() Params => int window handle \<= bool TRUE if window has a horizontal scroll bar, otherwise FALSE Library Group =\> <Windows=>LibGroupWindows>FNshell_WindowHasAdjustSizeIcon() Params => int window handle \<= bool TRUE if window has an adjust size icon, otherwise FALSE Library Group =\> <Windows=>LibGroupWindows>Main Index #Table 9 10 <Debug =>LibGroupDebug> <Draw =>LibGroupDraw> <Events =>LibGroupEvents> <Files =>LibGroupFiles> <Fonts =>LibGroupFonts> <Icons =>LibGroupIcons> <Memory =>LibGroupMemory> <Menus =>LibGroupMenus> <Messages =>LibGroupMessages> <Misc =>LibGroupMisc> <Mouse =>LibGroupMouse> <OS =>LibGroupOS> <Printer =>LibGroupPrinter> <Shell =>LibGroupShell> <Sprites =>LibGroupSprites> <Strings =>LibGroupStrings> <StrongHlp=>LibGroupHelp> <Windows =>LibGroupWindows> #EndTablePROCshell_DoBackgroundTask Params => None Called everytime a null reason code is received. Library Group => <Events=>LibGroupEvents>PROCshell_HandleUnknownMessage() Params => int address of <message block=>swi.wimp_sendmessage2> Called every time an unknown message is received. Library Group => <Events=>LibGroupEvents>FNshell_WindowIsOpen() Params => int window handle \<= bool TRUE if window is open, otherwise FALSE Library Group =\> <Windows=>LibGroupWindows>PROCshell_WindowToggleBackIcon() Params => int window handle \<= int <updated window handle=>updatewinh> Adds a 'Back icon' to a window if it doesn't have one, removes it if it does. Also redisplays window in its new state if it is open. Library Group =\> <Windows=>LibGroupWindows>PROCshell_WindowToggleCloseIcon() Params => int window handle \<= int <updated window handle=>updatewinh> Adds a 'Close icon' to a window if it doesn't have one, removes it if it does. Also redisplays window in its new state if it is open. Library Group =\> <Windows=>LibGroupWindows>PROCshell_WindowToggleTitleBar() Params => int window handle \<= int <updated window handle=>updatewinh> Adds a Title bar to a window if it doesn't one, removes it if it does. Also redisplays window in its new state if it is open. Library Group =\> <Windows=>LibGroupWindows>PROCshell_WindowToggleToggleIcon() Params => int window handle \<= int <updated window handle=>updatewinh> Adds a 'Toggle size icon' to a window if it doesn't one, removes it if it does. Also redisplays window in its new state if it is open. Library Group =\> <Windows=>LibGroupWindows>PROCshell_WindowToggleVScrollBar() Params => int window handle \<= int <updated window handle=>updatewinh> Adds a vertical scroll bar to a window if it doesn't one, removes it if it does. Also redisplays window in its new state if it is open. Library Group =\> <Windows=>LibGroupWindows>PROCshell_WindowToggleAdjustSizeicon() Params => int window handle \<= int <updated window handle=>updatewinh> Adds a 'Adjust size icon' to a window if it doesn't one, removes it if it does. Also redisplays window in its new state if it is open. Library Group =\> <Windows=>LibGroupWindows>PROCshell_WindowToggleHScrollBar() Params => int window handle \<= int <updated window handle=>updatewinh> Adds a horizontal scroll bar to a window if it doesn't one, removes it if it does. Also redisplays window in its new state if it is open. Library Group =\> <Windows=>LibGroupWindows>PROCshell_HeapManagerInit Params => str path to directory containing the 'heapcode' file int address of heap manager workspace This routine must be called before PROCshell_Init. Library Group => <Memory=>LibGroupMemory>PROCshell_MenuPutData() Params => int menu handle str data to write into menu item This routine is used to alter the items of a menu when the program runs. The width of the menu is adjusted automatically. Library Group => <Menus=>LibGroupMenus>Menu Strings for PROCshell_MenuPutData() The menu string is the title of the menu to write the data to. It does not have to be 0 terminated.Item Nr for PROCshell_MenuPutData() The first item in a menu is numbered 0.FNshell_HeapBlockExists() Params => int address to check \<= bool TRUE or FALSE This routine returns TRUE if a heapblock is present at the specified address, FALSE otherwise. Library Group => <Memory=>LibGroupMemory>FNshell_WindowLoaded() Params => str window name (max 11 characters) \<= bool TRUE if template is loaded, otherwise FALSE Library Group => <Windows=>LibGroupWindows>PROCshell_MemFill() Params => int start address int number of bytes int byte value to fill with Library Group => <Memory=>LibGroupMemory>PROCshell_AttachSubMenu() Params => int menu item handle int submenu menu handle str <function=>UserFN18> to call when menu_warning message is received (optional, may be "") Library Group => <Menus=>LibGroupMenus>, <Events=>LibGroupEvents>PROCshell_AttachFontSubMenu() Params => int item handle str <function=>UserFN17> to call when menu_warning message is received (optional, may be "") This routine will attempt to load the necessary 'FontMenu' support module if it is not already loaded. It expects to find it in the EvntShellSystem$Path (usually in !ShellSys). Library Group => <Menus=>LibGroupMenus>,<Fonts=>LibGroupFonts>Joris R�ling Joris R�ling Oudestraat 186 8261 CW Kampen The Netherlands For the 'FontMenu' module which allows the sensible choosing of outline font names.User FN (PROCshell_AttachFontSubMenu) Params => int window handle int icon handle \<= int junk This function can be used to set the currently selected font in the menu about to be opened. Use <PROCshell_FontMenuSelectFont> to do this. Outline Fonts The EvntShell Library supports Outline Fonts in two ways at the moment. Firstly <Joris Roling's=>joris> FontMenu module is used to display a menu of all available fonts on the system, and secondly the window template loading routine allows icons and window titles to use fonts. Routines are provided to attach a font menu to an existing menu as a submenu (<PROCshell_AttachFontSubMenu>), or to open the font menu as a menu in its own right (<PROCshell_AttachFontMenu>). If the user makes a valid font selection the font name can be retrieved (with <FNshell_FontMenuGetLastSelectedFont>) for use in the user application. Changes to the Font$Path variable such as adding or removing font directories are detected and the font menu rebuilt as necessary. It will not, however, detect fonts being added or removed from an existing font directory while the EvntShell application is running. It appears that a re-boot is required to sort things out after the contents of the font directories have changed. Oh well, it seems that a lot of other applications can't cope with this either! The FontMenu module creates a menu in the relocatable module area which is shared between all applications wishing to use it. As a font menu potentially takes up a lot of space this is a very efficient way of handling it, especially as the menu is laid out so that it is easier to use than a straight list of fonts. A help system containing the full <FontMenu documention=>FontMenu.$> is supplied with the EvntShell library as it is a requirement that the the module and its documentation must be supplied together. However, it is unlikely that the SWIs provided by the module will need to be called by the user application as the library code performs the necessary actions. The example application !Redraw demonstrates the use of these routines.Outline Fonts <AttachFontSubMenu =>PROCshell_AttachFontSubMenu> <FontMenuGetLastSelectedFont=>FNshell_FontMenuGetLastSelectedFont> <FontMenuSelectFont =>PROCshell_FontMenuSelectFont>PROCshell_FontMenuSelectFont() Params => str name of font to select The font name is used by the library routines to decide which font name to select when the font menu opens. As the same font menu can be used by different applications it is important to set this up just before the menu opens. Library Group => <Fonts=>LibGroupFonts>FNshell_FontMenuGetLastSelectedFont Params => None \<= str font name (could be "") This routine should be used in the function called when a menu_select event has occurred to discover if font menu selection has been made, and if so the name of the font. If no valid font menu selection has been made the function will return "" and no action should be taken. Library Group => <Fonts=>LibGroupFonts>PROCshell_IconDelete() Params => int window handle int icon handle This call frees any memory used for indirected data and validation strings. The window area covered by the icon (including any 3D borders) is not redrawn. Use <PROCshell_IconDelete2> to delete the icon and redraw the window area. Library Group => <Icons=>LibGroupIcons>PROCshell_AttachFontMenu() Params => str menu string str <function=>UserFN19> to call when menu_select event occurs (optional, may be "") Use this routine to attach the FontMenu to an icon or a window. Attach the FontMenu to an existing menu structure with <PROCshell_AttachFontSubMenu>. This routine will attempt to load the necessary 'FontMenu' support module if it is not already loaded. It expects to find it in the EvntShellSystem$Path (usually in !ShellSys). Library Group => <Menus=>LibGroupMenus>,<Fonts=>LibGroupFonts>User FN (PROCshell_AttachFontMenu) Params => str selection string \<= int junk This function can be used to discover the name of the font (if any) that has been selected in the FontMenu. Use <FNshell_FontMenuGetLastSelectedFont> for this.Updated Window Handles As this routine deletes and recreates the window it is possible that the WIMP will allocate a new window handle. The EvntShell library will detect this and update the registered events as necessary. The user application must note and use the new handle itself, however!FNshell_IconMove() Params => int window handle int icon handle int min x coord int min y coord int max x coord int may y coord \<= int icon handle Allows the redefinition of an icon's bounding box. As the icon has to be deleted and then recreated it returns the new icon handle (which should be the same as the old handle). The icon is redrawn after resizing, taking account of any 3D borders. Library Group => <Icons=>LibGroupIcons>FNshell_IconMove2() Params => int window handle int icon handle int x displacement int y displacement \<= int icon handle Allows an icon to be moved around the window. As the icon has to be deleted and then recreated it returns the new icon handle (which should be the same as the old handle). The icon is redrawn after moving, taking account of any 3D borders. See also <FNshell_IconMove> Library Group => <Icons=>LibGroupIcons>PROCshell_IconDelete2() Params => int window handle int icon handle This call frees any memory used for indirected data and validation strings. The window area covered by the icon (including any 3D borders) is redrawn. When a large number of icons are to be deleted it is better to use <PROCshell_IconDelete> and then redraw the window afterwards as this will be quicker. Library Group => <Icons=>LibGroupIcons>PROCshell_IconDeselectAll() Params => int window handle Deselects all of the icons contained in the specified window. Library Group => <Icons=>LibGroupIcons>PROCshell_IconSelectAll() Params => int window handle Selects all of the icons contained in the specified window. Library Group => <Icons=>LibGroupIcons>FNshell_IconGetCommand() Params => int pointer to validation string str validation command \<= str command string See also <FNshell_IconGetValidation>. Library Group => <Icons=>LibGroupIcons>DataLoad 'No Load' flag FALSE = data file is loaded in a heap block and the name and address is returned to the user application. TRUE = only the data file name and type is returned to the user application. This flag is provided for maximum flexibility when dealing with drag loads. When you are converting an existing program to run under the EvntShell system you may already have a working load routine. In this case set the flag to TRUE and when a drag load occurs your application will be told the filename, which may then be loaded and processed as required. When this flag is FALSE the library routines will reserve a memory block for the file and load it automatically. For the technical of you out there the library stores the status of the no load flag in the top bit of the filetype number. This will end in tears when RISC-OS 4 comes out...Cy Booker For various helpful suggestions and information that allowed me to add seperate message files for library messages, and support for DragASprite and the new boot message under RISC-OS 3.Printer <PrinterOnLine=>FNshell_PrinterOnLine>FNshell_PrinterOnLine Params => None \<= bool TRUE if printer is online, otherwise FALSE This routine has been tested on RISC-OS 3.1 and should also work on earlier versions. From Risc User March 1993 page 43. Library Group => <Printer=>LibGroupPrinter>PROCshell_AttachBumpHandler() Params => int window handle int icon handle (display value) int icon handle (increment value) int icon handle (decrement value) int lower limit int upper limit int step bool wrap flag str <function name=>UserFN20> (can be "") str <function name=>UserFN21> (can be "") Bump icons are the arrows that allow you to alter the value displayed in an icon (usually not not necessarily a writable one) Library Group => <Events=>LibGroupEvents>User FN (PROCshell_AttachBumpHandler) Params => int value \<= str converted value This function is called before the new value is placed in the display icon. An example would be converting an integer value to the format 0h00 (i.e hours and mins). DEF FN_dis_fn(val%) =STR$(val%DIV60)+"h"+RIGHT$("00"+STR$(val%MOD60),2) See the !VBase2 demo app.User FN (PROCshell_AttachBumpHandler) Params => str value to decode \<= int converted value This function is called before the new value is placed in the display icon. An example would be converting a string "0h00" back to an integer value. DEF FN_decode_dis(val$) =VAL(val$)*60+VAL(RIGHT$(val$,2)) See the !VBase2 demo appFNshell_WindowSetSpriteArea() Params => int window handle int address of sprite area \<= int window handle Library Group =\> <Windows=>LibGroupWindows>User FN (PROCshell_AttachDrag) Params => int window handle over which drag started int icon handle over which drag was started (-1 for no icon)PROCshell_IconSetButtonType() Params => int window handle int icon handle int <button type=>SWI.Wimp_iconbutton> An error is generated if the button type is outside the range 0-11,14-15. Library Group => <Icons=>LibGroupIcons>PROCshell_IconSetESG() Params => int window handle int icon handle int Exclusive Selection Group number An error is generated if the esg number is outside the range 0-31. Library Group => <Icons=>LibGroupIcons>PROCshell_IconSetText() Params => int window handle int icon handle bool state (0 to clear text bit, non 0 to set it) Library Group => <Icons=>LibGroupIcons>PROCshell_IconSetSprite() Params => int window handle int icon handle bool state (0 to clear sprite bit, non 0 to set it) Library Group => <Icons=>LibGroupIcons>PROCshell_IconSetBorder() Params => int window handle int icon handle bool action (0 to clear border bit, non 0 to set it) Library Group => <Icons=>LibGroupIcons>PROCshell_IconSetHCentred() Params => int window handle int icon handle bool state (0 to clear horizontally centred bit, non 0 to set it) Library Group => <Icons=>LibGroupIcons>PROCshell_IconSetVCentred() Params => int window handle int icon handle bool state (0 to clear vertically centred bit, non 0 to set it) Library Group => <Icons=>LibGroupIcons>PROCshell_IconSetFilled() Params => int window handle int icon handle bool state (0 to clear filled bit, non 0 to set it) Library Group => <Icons=>LibGroupIcons>PROCshell_IconSetRightJust() Params => int window handle int icon handle bool action (0 to clear right justified bit, non 0 to set it) Library Group => <Icons=>LibGroupIcons>FNshell_StrongHlpIsAvailable Params => None \<= bool TRUE if StrongHelp$Dir is defined, otherwise FALSE Used to check that StrongHlp is installed on the system. This call can be used to shade a 'Help' menu item if StrongHlp has not been seen by the Filer, or if it is not available. <Example code...=>Ex_StrongHlpIsAvailable> Library Group => <StrongHlp=>LibGroupHelp>Example code (StrongHlpIsAvailable) Shade menu item with the handle HlpItem% if StrongHlp is not available: <PROCshell_MenuShade>(HlpItem%,(<FNshell_StrongHlpIsAvailable>=0))Example Code (Iconbar) Place a sprite called "!MyApp" on the right side of the iconbar with the text "Fred" below it and attach the menu with the handle 'MenuHandle_IconBar%': sicon=FNshell_Iconbar(-1,"!MyApp","Fred",120,MenuHandle_IconBar%,0,0,0)MenuWritable States The state is 0 for non writable, non 0 for writable.PROCshell_MenuWritable() Params => int menu or menu item handle int <state=>menuwriteflags> int size of indirected buffer str <validation string=>SWI.Wimp_validationstring> Makes the given menu item writable or non writable depending on the state parameter. If a menu handle is given then all items in the menu are made writable or non writable. Library Group => <Menus=>LibGroupMenus>PROCshell_MenuDotted() Params => int menu or menu item handle int <state=>menudotflags> Adds or removes a dotted line from below the given menu item. If a menu handle is given instead all items in the menu are effected. Library Group => <Menus=>LibGroupMenus>MenuDotted States The state is 0 for no dotted line, non 0 for a line.FNshell_MenuNew() Params => str menu title \<= int menu handle Creates a new menu with the given title. Library Group > <Menus=>LibGroupMenus>FNshell_MenuAdd() Params => int menu or menu item handle str text for menu item str <function name=>UserFN11> \<= int menu item handle Adds a new item to an existing menu. If a menu handle is given then the new item is added to the end of the menu, if an item handle is given the new item is added before the existing item. Library Group > <Menus=>LibGroupMenus>User FN (FNshell_MenuAdd) Params => int menu <decode block=>menudecodeblk>Menu decode block blk+00 position of selected menu item in menu (starting from 0) blk+04 pointer to selected item data blk+08 selected item handle or zero if item was created without MenuUtils blk+12 pointer to text string of selected item blk+16 position of parent menu item in menu (starting from 0) blk+20 pointer to parent item data blk+24 parent item handle or zero if item was created without MenuUtils blk+28 pointer to text string of parent item PROCshell_MenuTickOnly1() Params => int menu handle int position of item in menu Ticks only the item given by the menu handle and the position of the item. This call is provided for when you don't know the handle of the menu item. See also <PROCshell_MenuTickOnly2> Library Group => <Menus=>LibGroupMenus>FNshell_MenuTickOnly2() Params => int menu item handle Ticks only the item given by the menu item handle. See also <PROCshell_MenuTickOnly1> Library Group => <Menus=>LibGroupMenus>PROCshell_MenuColours() Params => int menu item handle int foreground colour int background colour Sets the foreground and background colours of the item given. Library Group > <Menus=>LibGroupMenus>Alex Petrov RUSSIA 115541 Moscow Kavkazsky boulevard, 29 Bld. 1, Flat 107 Alex Petrov E-mail: APetrov@misis.msk.su APetrov@arm.msk.su FIDO : 2:5020/104.13 phone: +7 095 322 2098 fax : +7 095 236 8350 Author of the MenuUtils module which provides the menu handling.PROCshell_IconSetUnselectable() Params => int window handle int icon handle bool state (0 to make icon selectable, non 0 to make it unselectable) This call is used to make icons unselectable (i.e. greyed out) depending on the value of the state flag. If the icon contains the caret when it is made unselectable, the caret is lost. Library Group => <Icons=>LibGroupIcons>PROCshell_IconSetSelected() Params => int window handle int icon handle bool state (0 for deselected, non 0 for selected) This call is used to select or deselect icons depending on the value of the state flag Library Group => <Icons=>LibGroupIcons>Memory Management A crucial element of the EventShell library is the use of memory management routines originally published in Risc User magazine and used with permission. Many library routines require some memory workspace and they obtain this by calling FNshell_HeapBlockFetch(bytes_required) which returns the address of the allocated memory and release it when they are finished with PROCshell_HeapBlockReturn. This is vital for avoiding 'side effects' caused by using the same block of memory for different purposes as most WIMP programs tend to do. Equally important is the fact that as the routines are written in ARM code they are extremely fast. Another point to note is that this memory is claimed from the current wimp slot and not the RMA (Relocatable Module Area). This ensures that all of the memory claimed by the application is released back to the free pool when the application quits - this is not the case if memory is claimed from the RMA. It is only possible to reclaim RMA memory if the free space is at the top of the RMA which leads to the RMA allocation gradually growing as you run and quit applications. Unfortunately (in the authors view!) the MenuUtils module uses the RMA for storage of indirected data and menu structures. Hopefully this data gets put in any small available blocks so that the RMA allocation does not increase. You are strongly advised to use the supplied memory management routines in the user application should you require storage for data, or temporary blocks for use with SWI calls for example. The time penalty for doing this is very small and in any case results in a more reliable and easier to maintain application. ResFind The EvntShell library now supports ResFind which allows the selection of the desired language for message files etc much easier. Briefly explained it checks the currently configured language of the computer it is running on and sets up a path to the resource files. This would normally be \<App$Dir>.Resources.UK for a UK configured computer, or \<App$Dir>.Resources.Germany for a German one. AppBuild now offers to place the resources in the appropriate directories for you when you create a new application, and to place a call to ResFind in the !Run file. Using ResFind is optional and EvntShell applications will function equally well if you don't use it. It does make the production of applications that can be easily used in any country much easier, however, and this should be encouraged. Most of the programming tools and modules used during the development of this library were written outside the UK. The author would appreciate help in translating the ShellMsgs file and the documentation into other languages. ResFind is copyright Olaf Krumnow and Herbert zur Nedden of the German Archimedes Group (GAG). The full ResFind documentation supplied with the library contains further details on how it works and the advantages to be gained by using it. As a taster, here is the part of the documentation intended to be distributed with applications using ResFind. (Base for the application's documentation - please replace \<ProgName> by the name of your application without the !) !\<ProgName> adapts automatically to the configured language if the corresponding messages etc. are available. For this purpose a Resources directory is contained in the application in which a subdirectory for each language supported resides. If the language you need isn't in there, please feel free to duplicate any of these language directories and translate the contents. When you run the program a utility called ResFind is called which reads the language your computer is configured to and then looks for the corresponding language directory. If this fails the program will run in English (UK). By setting several system variables (best done in your system's !Boot file) you can change the language looked for. With this you can make sure a program runs in a certain language, e.g. to avoid a weird translation. Furthermore it is possible to name several languages you prefer to English. This is controlled by three system variables: \<ProgName>$Language, ResFind$LanguagesPref and ResFind$Languages$Suff. When running the application ResFind looks for the first language supported along the following list of languages: 1. Contents of the variable \<ProgName>$Language 2. Contents of the variable ResFind$LanguagesPref 3. The configured language 4. Contents of the variable ResFind$LanguagesSuff 5. UK Take a Norwegian user for example (lots of great programs come from there) whose computer is configured to 'Norway'. Since this language isn't too common in Europe most programs won't support it - except for Norwegian ones. But our user is pretty good in German and French but not too fond of English. Therefore he prefers these languages to UK and would thus put the following line in his system's !Boot file: *Set ResFind$LanguagesSuff Germany,France Running an applications (such as this one) using ResFind the list of languages looked for is 'Norway,Germany,France,UK'. In case this user has an application called !Pete supporting the language 'Humorous' the line: *Set Pete$Language Humorous in the !Boot file makes sure !Pete will run humorous.Olaf Krumnow Olaf Krumnow August-Bebel-Strasse 102c D-21029 Hamburg 80 Germany (+49 40) 7 21 92 87 Co-Author of ResFind, a system for selecting resource files in the appropriate language.Herbert zur Nedden Herbert zur Nedden Alte Landstrasse 21 D-22962 Siek Germany (+49 41 07) 99 00 Co-Author of ResFind, a system for selecting resource files in the appropriate language.PROCshell_AttachPreQuitHandler() Params => str <function name=>UserFN23> Registers a function name to be called when a PreQuit message is received. This gives the application a chance to save data or abort the shutdown. This message is issued when the task is quit from the Task Manager, or when CTRL-SHIFT-F12 is pressed (under RISC OS 3). Library Group => <Events=>LibGroupEvents>User FN (PROCshell_AttachPreQuitHandler) Params => None \<= bool non 0 to allow quit, 0 to cancel quit This function is called when a PreQuit message is received.PROCshell_AttachCloseWindowHandler() Params => int window handle str <function name=>UserFN25> Registers a function name to be called when an CloseWindow message is received. This is useful to prevent the window closing if so doing would involve loss of data. This message is issued when the window close icon is clicked on. Library Group => <Events=>LibGroupEvents>PROCshell_AttachOpenWindowHandler() Params => int window handle str <function name=>UserFN24> Registers a function name to be called when an OpenWindow message is received. This is useful so that the application can set a flag to avoid doing window redraws while the window is closed for example. This message is issued when the window is dragged around the screen as well as when the program opens the window. You should avoid doing time consuming stuff in the function that is called therefore. Library Group => <Events=>LibGroupEvents>User FN (PROCshell_AttachOpenWindowHandler) Params => None \<= bool 0 to disallow open, non 0 to openUser FN (PROCshell_AttachCloseWindowHandler) Params => None \<= bool 0 to disallow close, non 0 to closeHelp on EvntShell #Indent 5 #Sprite 0,0 !shellsys EvntShell v 1.20 #Indent 0 --------------------- * <Licence > * * <Introduction =>Intro> * * <User Guide =>guide> * * <Credits > * * <Library Docs =>mainpage> *Licence This application is supplied free to everyone 'as is', I do not give any guarantee that it is free of bugs, or supply any warranty about its suitability for use. However if there are any problems with it and you notify me of them then I will do my best to rectify them given the time and the ability. You are may give this application to anyone, via any medium, so long as :- 1) It is delivered with ALL the supplied files and unaltered (except !Run and !Boot). 2) It is not supplied on a disc you are charging for (except for media and postage costs). You have permission to use any part or the whole application in a project you intend to place in the public domain, as long as I am fully credited. If you wish to use these routines in a program that is for sale (for however much and for whatever reasons) or released as copyright material then my express permission in writing must be obtained. I maintain copyright on all the material supplied and reserve the right to amend these conditions in cases where I deem misuse. Complaints, suggestions, vast sums of money etc to the author:- Paul Hobbs Rheinpfalzstrasse 2 85049 Ingolstadt GermanySprites <SpriteAreaLoad=>FNshell_SpriteAreaLoad> <SpriteAreaSave=>PROCshell_SpriteAreaSave> <SpriteGetPtr =>FNshell_SpriteGetPtr> <SpriteRename =>PROCshell_SpriteRename>FNshell_SpriteAreaLoad() Params => str file name of sprite file \<= int address of loaded file Library Group => <Sprites=>LibGroupSprites>PROCshell_SpriteAreaSave() Params => int address of spritearea (as returned by <FNshell_SpriteAreaLoad>) str file name Library Group => <Sprites=>LibGroupSprites>FNshell_SpriteGetPtr() Params => int address of spritearea (as returned by <FNshell_SpriteAreaLoad>) str name of sprite \<= int pointer to sprite This call is used to get a pointer to a sprite that can be passed to other routines. Library Group => <Sprites=>LibGroupSprites>PROCshell_SpriteRename() Params => int address of spritearea (as returned by <FNshell_SpriteAreaLoad> str old name of sprite str new name of sprite Library Group => <Sprites=>LibGroupSprites>User FN (PROCshell_AttachSubMenu) Params => int window handle int icon handle \<= int junkPROCshell_IconSetLeftJust() Params => int window handle int icon handle Library Group => <Icons=>LibGroupIcons>FNshell_OSCheckVersion() Params => real version nr required \<= bool TRUE or FALSE Use this routine to check whether RISC OS 3 is installed for example. The routine returns FALSE if the OS version requested (or a later version) is not found. Library Group => <OS=>LibGroupOS>FNshell_OSCheckModuleVersion() Params => str module name real version nr required \<= bool TRUE or FALSE Use this routine to check whether a certain version (or later) of a specific module is installed. Library Group => <OS=>LibGroupOS>
00000000 55 73 65 72 20 46 4e 20 28 50 52 4f 43 73 68 65 |User FN (PROCshe| 00000010 6c 6c 5f 41 74 74 61 63 68 44 61 74 61 4c 6f 61 |ll_AttachDataLoa| 00000020 64 29 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 |d).Params =>. | 00000030 20 20 20 20 20 20 69 6e 74 20 61 64 64 72 65 73 | int addres| 00000040 73 20 66 69 6c 65 20 68 61 73 20 62 65 65 6e 20 |s file has been | 00000050 6c 6f 61 64 65 64 20 61 74 0a 20 20 20 20 20 20 |loaded at. | 00000060 20 20 20 69 6e 74 20 66 69 6c 65 74 79 70 65 20 | int filetype | 00000070 6f 66 20 66 69 6c 65 0a 20 20 20 20 20 20 20 20 |of file. | 00000080 20 73 74 72 20 66 75 6c 6c 20 70 61 74 68 6e 61 | str full pathna| 00000090 6d 65 20 6f 66 20 66 69 6c 65 0a 0a 4e 6f 74 65 |me of file..Note| 000000a0 20 74 68 61 74 20 69 66 20 74 68 65 20 65 76 65 | that if the eve| 000000b0 6e 74 20 77 61 73 20 61 74 74 61 63 68 65 64 20 |nt was attached | 000000c0 77 69 74 68 20 74 68 65 0a 3c 6e 6f 20 6c 6f 61 |with the.<no loa| 000000d0 64 20 66 6c 61 67 3d 3e 6e 6f 6c 6f 61 64 3e 20 |d flag=>noload> | 000000e0 73 65 74 20 74 6f 20 54 52 55 45 20 74 68 65 20 |set to TRUE the | 000000f0 61 64 64 72 65 73 73 20 77 69 6c 6c 0a 62 65 20 |address will.be | 00000100 2d 31 20 61 6e 64 20 74 68 65 20 75 73 65 72 20 |-1 and the user | 00000110 61 70 70 6c 69 63 61 74 69 6f 6e 20 69 73 20 65 |application is e| 00000120 78 70 65 63 74 65 64 20 74 6f 0a 61 63 74 75 61 |xpected to.actua| 00000130 6c 6c 79 20 6c 6f 61 64 20 74 68 65 20 66 69 6c |lly load the fil| 00000140 65 2e 55 73 65 72 20 46 4e 20 28 50 52 4f 43 73 |e.User FN (PROCs| 00000150 68 65 6c 6c 5f 41 74 74 61 63 68 44 61 74 61 53 |hell_AttachDataS| 00000160 61 76 65 29 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 |ave).Params =>. | 00000170 20 20 20 20 20 20 20 20 73 74 72 20 66 75 6c 6c | str full| 00000180 20 66 69 6c 65 6e 61 6d 65 20 6f 66 20 66 69 6c | filename of fil| 00000190 65 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |e..This function| 000001a0 20 69 73 20 6e 6f 74 20 63 61 6c 6c 65 64 20 69 | is not called i| 000001b0 66 20 74 68 65 20 66 69 6c 65 20 69 73 20 73 74 |f the file is st| 000001c0 6f 72 65 64 0a 69 6e 20 61 20 68 65 61 70 20 62 |ored.in a heap b| 000001d0 6c 6f 63 6b 2e 20 49 6e 20 74 68 69 73 20 63 61 |lock. In this ca| 000001e0 73 65 20 74 68 65 20 77 68 6f 6c 65 20 63 6f 6e |se the whole con| 000001f0 74 65 6e 74 73 20 6f 66 0a 74 68 65 20 68 65 61 |tents of.the hea| 00000200 70 20 62 6c 6f 63 6b 20 61 72 65 20 74 72 61 6e |p block are tran| 00000210 73 66 65 72 72 65 64 2e 20 20 20 20 20 20 20 20 |sferred. | 00000220 20 4f 53 0a 3c 4f 53 43 68 65 63 6b 4d 6f 64 75 | OS.<OSCheckModu| 00000230 6c 65 56 65 72 73 69 6f 6e 3d 3e 46 4e 73 68 65 |leVersion=>FNshe| 00000240 6c 6c 5f 4f 53 43 68 65 63 6b 4d 6f 64 75 6c 65 |ll_OSCheckModule| 00000250 56 65 72 73 69 6f 6e 3e 0a 3c 4f 53 43 68 65 63 |Version>.<OSChec| 00000260 6b 56 65 72 73 69 6f 6e 20 20 20 20 20 20 3d 3e |kVersion =>| 00000270 46 4e 73 68 65 6c 6c 5f 4f 53 43 68 65 63 6b 56 |FNshell_OSCheckV| 00000280 65 72 73 69 6f 6e 3e 0a 3c 4f 53 56 61 72 45 78 |ersion>.<OSVarEx| 00000290 69 73 74 73 20 20 20 20 20 20 20 20 20 3d 3e 46 |ists =>F| 000002a0 4e 73 68 65 6c 6c 5f 4f 53 56 61 72 45 78 69 73 |Nshell_OSVarExis| 000002b0 74 73 3e 0a 3c 4f 53 56 61 72 47 65 74 56 61 6c |ts>.<OSVarGetVal| 000002c0 20 20 20 20 20 20 20 20 20 3d 3e 46 4e 73 68 65 | =>FNshe| 000002d0 6c 6c 5f 4f 53 56 61 72 47 65 74 56 61 6c 3e 0a |ll_OSVarGetVal>.| 000002e0 3c 4f 53 52 65 61 64 43 6f 6d 6d 61 6e 64 41 72 |<OSReadCommandAr| 000002f0 67 20 20 20 20 3d 3e 46 4e 73 68 65 6c 6c 5f 4f |g =>FNshell_O| 00000300 53 52 65 61 64 43 6f 6d 6d 61 6e 64 41 72 67 3e |SReadCommandArg>| 00000310 4d 6f 75 73 65 0a 3c 4d 6f 75 73 65 4c 69 6d 69 |Mouse.<MouseLimi| 00000320 74 20 20 20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c |t =>PROCshell| 00000330 5f 4d 6f 75 73 65 4c 69 6d 69 74 3e 53 68 65 6c |_MouseLimit>Shel| 00000340 6c 0a 3c 47 65 74 41 70 70 4e 61 6d 65 20 20 20 |l.<GetAppName | 00000350 20 20 3d 3e 46 4e 73 68 65 6c 6c 5f 47 65 74 41 | =>FNshell_GetA| 00000360 70 70 4e 61 6d 65 3e 0a 3c 47 65 74 41 70 70 44 |ppName>.<GetAppD| 00000370 69 72 20 20 20 20 20 20 3d 3e 46 4e 73 68 65 6c |ir =>FNshel| 00000380 6c 5f 47 65 74 41 70 70 44 69 72 3e 0a 3c 47 65 |l_GetAppDir>.<Ge| 00000390 74 41 70 70 44 61 74 61 44 69 72 20 20 3d 3e 46 |tAppDataDir =>F| 000003a0 4e 73 68 65 6c 6c 5f 47 65 74 41 70 70 44 61 74 |Nshell_GetAppDat| 000003b0 61 44 69 72 3e 0a 3c 49 6e 69 74 20 20 20 20 20 |aDir>.<Init | 000003c0 20 20 20 20 20 20 3d 3e 50 52 4f 43 73 68 65 6c | =>PROCshel| 000003d0 6c 5f 49 6e 69 74 3e 0a 3c 4c 69 62 72 61 72 79 |l_Init>.<Library| 000003e0 56 65 72 73 69 6f 6e 20 3d 3e 46 4e 73 68 65 6c |Version =>FNshel| 000003f0 6c 5f 4c 69 62 72 61 72 79 56 65 72 73 69 6f 6e |l_LibraryVersion| 00000400 3e 0a 3c 52 65 73 6f 75 72 63 65 73 49 6e 69 74 |>.<ResourcesInit| 00000410 20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 52 65 | =>PROCshell_Re| 00000420 73 6f 75 72 63 65 73 49 6e 69 74 3e 0a 3c 57 69 |sourcesInit>.<Wi| 00000430 6d 70 43 6c 6f 73 65 44 6f 77 6e 20 20 3d 3e 50 |mpCloseDown =>P| 00000440 52 4f 43 73 68 65 6c 6c 5f 57 69 6d 70 43 6c 6f |ROCshell_WimpClo| 00000450 73 65 44 6f 77 6e 3e 0a 3c 57 69 6d 70 43 6c 6f |seDown>.<WimpClo| 00000460 73 65 44 6f 77 6e 5f 49 3d 3e 50 52 4f 43 73 68 |seDown_I=>PROCsh| 00000470 65 6c 6c 5f 57 69 6d 70 43 6c 6f 73 65 44 6f 77 |ell_WimpCloseDow| 00000480 6e 5f 49 3e 0a 3c 57 69 6d 70 49 6e 69 74 20 20 |n_I>.<WimpInit | 00000490 20 20 20 20 20 3d 3e 46 4e 73 68 65 6c 6c 5f 57 | =>FNshell_W| 000004a0 69 6d 70 49 6e 69 74 3e 0a 3c 57 69 6d 70 49 6e |impInit>.<WimpIn| 000004b0 69 74 5f 49 20 20 20 20 20 3d 3e 46 4e 73 68 65 |it_I =>FNshe| 000004c0 6c 6c 5f 57 69 6d 70 49 6e 69 74 5f 49 3e 57 69 |ll_WimpInit_I>Wi| 000004d0 6e 64 6f 77 73 0a 3c 43 6c 6f 73 65 57 69 6e 64 |ndows.<CloseWind| 000004e0 6f 77 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |ow | 000004f0 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 43 6c 6f | =>PROCshell_Clo| 00000500 73 65 57 69 6e 64 6f 77 3e 0a 3c 43 72 65 61 74 |seWindow>.<Creat| 00000510 65 57 69 6e 64 6f 77 20 20 20 20 20 20 20 20 20 |eWindow | 00000520 20 20 20 20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c | =>PROCshell| 00000530 5f 43 72 65 61 74 65 57 69 6e 64 6f 77 3e 0a 3c |_CreateWindow>.<| 00000540 43 72 65 61 74 65 57 69 6e 64 6f 77 53 74 61 74 |CreateWindowStat| 00000550 69 63 20 20 20 20 20 20 20 20 3d 3e 50 52 4f 43 |ic =>PROC| 00000560 73 68 65 6c 6c 5f 43 72 65 61 74 65 57 69 6e 64 |shell_CreateWind| 00000570 6f 77 53 74 61 74 69 63 3e 0a 3c 4d 65 73 73 61 |owStatic>.<Messa| 00000580 67 65 57 69 6e 64 6f 77 20 20 20 20 20 20 20 20 |geWindow | 00000590 20 20 20 20 20 3d 3e 46 4e 73 68 65 6c 6c 5f 4d | =>FNshell_M| 000005a0 65 73 73 61 67 65 57 69 6e 64 6f 77 3e 0a 3c 4f |essageWindow>.<O| 000005b0 70 65 6e 57 69 6e 64 6f 77 20 20 20 20 20 20 20 |penWindow | 000005c0 20 20 20 20 20 20 20 20 20 3d 3e 50 52 4f 43 73 | =>PROCs| 000005d0 68 65 6c 6c 5f 4f 70 65 6e 57 69 6e 64 6f 77 3e |hell_OpenWindow>| 000005e0 0a 3c 4f 70 65 6e 57 69 6e 64 6f 77 53 74 61 74 |.<OpenWindowStat| 000005f0 69 63 20 20 20 20 20 20 20 20 20 20 3d 3e 50 52 |ic =>PR| 00000600 4f 43 73 68 65 6c 6c 5f 4f 70 65 6e 57 69 6e 64 |OCshell_OpenWind| 00000610 6f 77 53 74 61 74 69 63 3e 0a 3c 57 69 6e 64 6f |owStatic>.<Windo| 00000620 77 42 72 69 6e 67 54 6f 54 6f 70 20 20 20 20 20 |wBringToTop | 00000630 20 20 20 20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c | =>PROCshell| 00000640 5f 57 69 6e 64 6f 77 42 72 69 6e 67 54 6f 54 6f |_WindowBringToTo| 00000650 70 3e 0a 3c 57 69 6e 64 6f 77 47 65 74 54 69 74 |p>.<WindowGetTit| 00000660 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e |le =>| 00000670 46 4e 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 47 65 |FNshell_WindowGe| 00000680 74 54 69 74 6c 65 3e 0a 3c 57 69 6e 64 6f 77 48 |tTitle>.<WindowH| 00000690 61 73 41 64 6a 75 73 74 53 69 7a 65 49 63 6f 6e |asAdjustSizeIcon| 000006a0 20 20 20 3d 3e 46 4e 73 68 65 6c 6c 5f 57 69 6e | =>FNshell_Win| 000006b0 64 6f 77 48 61 73 41 64 6a 75 73 74 53 69 7a 65 |dowHasAdjustSize| 000006c0 49 63 6f 6e 3e 0a 3c 57 69 6e 64 6f 77 48 61 73 |Icon>.<WindowHas| 000006d0 42 61 63 6b 49 63 6f 6e 20 20 20 20 20 20 20 20 |BackIcon | 000006e0 20 3d 3e 46 4e 73 68 65 6c 6c 5f 57 69 6e 64 6f | =>FNshell_Windo| 000006f0 77 48 61 73 42 61 63 6b 49 63 6f 6e 3e 0a 3c 57 |wHasBackIcon>.<W| 00000700 69 6e 64 6f 77 48 61 73 42 65 65 6e 54 6f 67 67 |indowHasBeenTogg| 00000710 6c 65 64 20 20 20 20 20 20 3d 3e 46 4e 73 68 65 |led =>FNshe| 00000720 6c 6c 5f 57 69 6e 64 6f 77 48 61 73 42 65 65 6e |ll_WindowHasBeen| 00000730 54 6f 67 67 6c 65 64 3e 0a 3c 57 69 6e 64 6f 77 |Toggled>.<Window| 00000740 48 61 73 43 6c 6f 73 65 49 63 6f 6e 20 20 20 20 |HasCloseIcon | 00000750 20 20 20 20 3d 3e 46 4e 73 68 65 6c 6c 5f 57 69 | =>FNshell_Wi| 00000760 6e 64 6f 77 48 61 73 43 6c 6f 73 65 49 63 6f 6e |ndowHasCloseIcon| 00000770 3e 0a 3c 57 69 6e 64 6f 77 48 61 73 48 53 63 72 |>.<WindowHasHScr| 00000780 6f 6c 6c 42 61 72 20 20 20 20 20 20 20 3d 3e 46 |ollBar =>F| 00000790 4e 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 48 61 73 |Nshell_WindowHas| 000007a0 48 53 63 72 6f 6c 6c 42 61 72 3e 0a 3c 57 69 6e |HScrollBar>.<Win| 000007b0 64 6f 77 48 61 73 49 6e 70 75 74 46 6f 63 75 73 |dowHasInputFocus| 000007c0 20 20 20 20 20 20 20 3d 3e 46 4e 73 68 65 6c 6c | =>FNshell| 000007d0 5f 57 69 6e 64 6f 77 48 61 73 49 6e 70 75 74 46 |_WindowHasInputF| 000007e0 6f 63 75 73 3e 0a 3c 57 69 6e 64 6f 77 48 61 73 |ocus>.<WindowHas| 000007f0 54 69 74 6c 65 42 61 72 20 20 20 20 20 20 20 20 |TitleBar | 00000800 20 3d 3e 46 4e 73 68 65 6c 6c 5f 57 69 6e 64 6f | =>FNshell_Windo| 00000810 77 48 61 73 54 69 74 6c 65 42 61 72 3e 0a 3c 57 |wHasTitleBar>.<W| 00000820 69 6e 64 6f 77 48 61 73 54 6f 67 67 6c 65 49 63 |indowHasToggleIc| 00000830 6f 6e 20 20 20 20 20 20 20 3d 3e 46 4e 73 68 65 |on =>FNshe| 00000840 6c 6c 5f 57 69 6e 64 6f 77 48 61 73 54 6f 67 67 |ll_WindowHasTogg| 00000850 6c 65 49 63 6f 6e 3e 0a 3c 57 69 6e 64 6f 77 48 |leIcon>.<WindowH| 00000860 61 73 56 53 63 72 6f 6c 6c 42 61 72 20 20 20 20 |asVScrollBar | 00000870 20 20 20 3d 3e 46 4e 73 68 65 6c 6c 5f 57 69 6e | =>FNshell_Win| 00000880 64 6f 77 48 61 73 56 53 63 72 6f 6c 6c 42 61 72 |dowHasVScrollBar| 00000890 3e 0a 3c 57 69 6e 64 6f 77 49 73 41 50 61 6e 65 |>.<WindowIsAPane| 000008a0 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 46 | =>F| 000008b0 4e 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 49 73 41 |Nshell_WindowIsA| 000008c0 50 61 6e 65 3e 0a 3c 57 69 6e 64 6f 77 49 73 4d |Pane>.<WindowIsM| 000008d0 6f 76 65 61 62 6c 65 20 20 20 20 20 20 20 20 20 |oveable | 000008e0 20 3d 3e 46 4e 73 68 65 6c 6c 5f 57 69 6e 64 6f | =>FNshell_Windo| 000008f0 77 49 73 4d 6f 76 65 61 62 6c 65 3e 0a 3c 57 69 |wIsMoveable>.<Wi| 00000900 6e 64 6f 77 49 73 4e 6f 74 42 6f 75 6e 64 65 64 |ndowIsNotBounded| 00000910 20 20 20 20 20 20 20 20 3d 3e 46 4e 73 68 65 6c | =>FNshel| 00000920 6c 5f 57 69 6e 64 6f 77 49 73 4e 6f 74 42 6f 75 |l_WindowIsNotBou| 00000930 6e 64 65 64 3e 0a 3c 57 69 6e 64 6f 77 49 73 4f |nded>.<WindowIsO| 00000940 6e 54 6f 70 20 20 20 20 20 20 20 20 20 20 20 20 |nTop | 00000950 20 3d 3e 46 4e 73 68 65 6c 6c 5f 57 69 6e 64 6f | =>FNshell_Windo| 00000960 77 49 73 4f 6e 54 6f 70 3e 0a 3c 57 69 6e 64 6f |wIsOnTop>.<Windo| 00000970 77 49 73 4f 70 65 6e 20 20 20 20 20 20 20 20 20 |wIsOpen | 00000980 20 20 20 20 20 3d 3e 46 4e 73 68 65 6c 6c 5f 57 | =>FNshell_W| 00000990 69 6e 64 6f 77 49 73 4f 70 65 6e 3e 0a 3c 57 69 |indowIsOpen>.<Wi| 000009a0 6e 64 6f 77 4c 6f 61 64 65 64 20 20 20 20 20 20 |ndowLoaded | 000009b0 20 20 20 20 20 20 20 20 3d 3e 46 4e 73 68 65 6c | =>FNshel| 000009c0 6c 5f 57 69 6e 64 6f 77 4c 6f 61 64 65 64 3e 0a |l_WindowLoaded>.| 000009d0 3c 57 69 6e 64 6f 77 4d 6f 76 65 54 6f 20 20 20 |<WindowMoveTo | 000009e0 20 20 20 20 20 20 20 20 20 20 20 3d 3e 50 52 4f | =>PRO| 000009f0 43 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 4d 6f 76 |Cshell_WindowMov| 00000a00 65 54 6f 3e 0a 3c 57 69 6e 64 6f 77 4d 6f 76 65 |eTo>.<WindowMove| 00000a10 54 6f 49 63 6f 6e 20 20 20 20 20 20 20 20 20 20 |ToIcon | 00000a20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 57 69 6e 64 |=>PROCshell_Wind| 00000a30 6f 77 4d 6f 76 65 54 6f 49 63 6f 6e 3e 0a 3c 57 |owMoveToIcon>.<W| 00000a40 69 6e 64 6f 77 52 65 73 69 7a 65 20 20 20 20 20 |indowResize | 00000a50 20 20 20 20 20 20 20 20 20 3d 3e 50 52 4f 43 73 | =>PROCs| 00000a60 68 65 6c 6c 5f 57 69 6e 64 6f 77 52 65 73 69 7a |hell_WindowResiz| 00000a70 65 3e 0a 3c 57 69 6e 64 6f 77 52 65 74 69 74 6c |e>.<WindowRetitl| 00000a80 65 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e |e =>| 00000a90 50 52 4f 43 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 |PROCshell_Window| 00000aa0 52 65 74 69 74 6c 65 3e 0a 3c 57 69 6e 64 6f 77 |Retitle>.<Window| 00000ab0 53 65 74 53 70 72 69 74 65 41 72 65 61 20 20 20 |SetSpriteArea | 00000ac0 20 20 20 20 3d 3e 46 4e 73 68 65 6c 6c 5f 57 69 | =>FNshell_Wi| 00000ad0 6e 64 6f 77 53 65 74 53 70 72 69 74 65 41 72 65 |ndowSetSpriteAre| 00000ae0 61 3e 0a 3c 57 69 6e 64 6f 77 54 6f 67 67 6c 65 |a>.<WindowToggle| 00000af0 41 64 6a 75 73 74 53 69 7a 65 49 63 6f 6e 3d 3e |AdjustSizeIcon=>| 00000b00 50 52 4f 43 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 |PROCshell_Window| 00000b10 54 6f 67 67 6c 65 41 64 6a 75 73 74 53 69 7a 65 |ToggleAdjustSize| 00000b20 49 63 6f 6e 3e 0a 3c 57 69 6e 64 6f 77 54 6f 67 |Icon>.<WindowTog| 00000b30 67 6c 65 42 61 63 6b 49 63 6f 6e 20 20 20 20 20 |gleBackIcon | 00000b40 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 57 69 6e | =>PROCshell_Win| 00000b50 64 6f 77 54 6f 67 67 6c 65 42 61 63 6b 49 63 6f |dowToggleBackIco| 00000b60 6e 3e 0a 3c 57 69 6e 64 6f 77 54 6f 67 67 6c 65 |n>.<WindowToggle| 00000b70 43 6c 6f 73 65 49 63 6f 6e 20 20 20 20 20 3d 3e |CloseIcon =>| 00000b80 50 52 4f 43 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 |PROCshell_Window| 00000b90 54 6f 67 67 6c 65 43 6c 6f 73 65 49 63 6f 6e 3e |ToggleCloseIcon>| 00000ba0 0a 3c 57 69 6e 64 6f 77 54 6f 67 67 6c 65 48 53 |.<WindowToggleHS| 00000bb0 63 72 6f 6c 6c 42 61 72 20 20 20 20 3d 3e 50 52 |crollBar =>PR| 00000bc0 4f 43 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 54 6f |OCshell_WindowTo| 00000bd0 67 67 6c 65 48 53 63 72 6f 6c 6c 42 61 72 3e 0a |ggleHScrollBar>.| 00000be0 3c 57 69 6e 64 6f 77 54 6f 67 67 6c 65 54 69 74 |<WindowToggleTit| 00000bf0 6c 65 42 61 72 49 63 6f 6e 20 20 3d 3e 50 52 4f |leBarIcon =>PRO| 00000c00 43 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 54 6f 67 |Cshell_WindowTog| 00000c10 67 6c 65 54 69 74 6c 65 42 61 72 49 63 6f 6e 3e |gleTitleBarIcon>| 00000c20 0a 3c 57 69 6e 64 6f 77 54 6f 67 67 6c 65 54 6f |.<WindowToggleTo| 00000c30 67 67 6c 65 49 63 6f 6e 20 20 20 20 3d 3e 50 52 |ggleIcon =>PR| 00000c40 4f 43 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 54 6f |OCshell_WindowTo| 00000c50 67 67 6c 65 54 6f 67 67 6c 65 49 63 6f 6e 3e 0a |ggleToggleIcon>.| 00000c60 3c 57 69 6e 64 6f 77 54 6f 67 67 6c 65 56 53 63 |<WindowToggleVSc| 00000c70 72 6f 6c 6c 42 61 72 20 20 20 20 3d 3e 50 52 4f |rollBar =>PRO| 00000c80 43 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 54 6f 67 |Cshell_WindowTog| 00000c90 67 6c 65 56 53 63 72 6f 6c 6c 42 61 72 3e 0a 3c |gleVScrollBar>.<| 00000ca0 57 69 6e 64 6f 77 54 72 61 70 73 48 6f 74 4b 65 |WindowTrapsHotKe| 00000cb0 79 73 20 20 20 20 20 20 20 20 3d 3e 46 4e 73 68 |ys =>FNsh| 00000cc0 65 6c 6c 5f 57 69 6e 64 6f 77 54 72 61 70 73 48 |ell_WindowTrapsH| 00000cd0 6f 74 4b 65 79 73 3e 44 65 62 75 67 0a 3c 54 72 |otKeys>Debug.<Tr| 00000ce0 61 63 65 45 78 69 74 3d 3e 50 52 4f 43 73 68 65 |aceExit=>PROCshe| 00000cf0 6c 6c 5f 54 72 61 63 65 45 78 69 74 3e 0a 3c 54 |ll_TraceExit>.<T| 00000d00 72 61 63 65 66 30 20 20 3d 3e 50 52 4f 43 73 68 |racef0 =>PROCsh| 00000d10 65 6c 6c 5f 54 72 61 63 65 66 30 3e 0a 3c 54 72 |ell_Tracef0>.<Tr| 00000d20 61 63 65 49 6e 69 74 3d 3e 50 52 4f 43 73 68 65 |aceInit=>PROCshe| 00000d30 6c 6c 5f 54 72 61 63 65 49 6e 69 74 3e 0a 3c 54 |ll_TraceInit>.<T| 00000d40 72 61 63 65 49 73 4f 6e 3d 3e 46 4e 73 68 65 6c |raceIsOn=>FNshel| 00000d50 6c 5f 54 72 61 63 65 49 73 4f 6e 3e 0a 3c 54 72 |l_TraceIsOn>.<Tr| 00000d60 61 63 65 4f 66 66 20 3d 3e 50 52 4f 43 73 68 65 |aceOff =>PROCshe| 00000d70 6c 6c 5f 54 72 61 63 65 4f 66 66 3e 0a 3c 54 72 |ll_TraceOff>.<Tr| 00000d80 61 63 65 4f 6e 20 20 3d 3e 50 52 4f 43 73 68 65 |aceOn =>PROCshe| 00000d90 6c 6c 5f 54 72 61 63 65 4f 6e 3e 45 76 65 6e 74 |ll_TraceOn>Event| 00000da0 73 0a 3c 41 74 74 61 63 68 42 75 6d 70 48 61 6e |s.<AttachBumpHan| 00000db0 64 6c 65 72 20 20 20 20 20 20 20 20 20 20 3d 3e |dler =>| 00000dc0 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 |PROCshell_Attach| 00000dd0 42 75 6d 70 48 61 6e 64 6c 65 72 3e 0a 3c 41 74 |BumpHandler>.<At| 00000de0 74 61 63 68 43 6c 69 63 6b 41 64 6a 75 73 74 20 |tachClickAdjust | 00000df0 20 20 20 20 20 20 20 20 20 3d 3e 50 52 4f 43 73 | =>PROCs| 00000e00 68 65 6c 6c 5f 41 74 74 61 63 68 43 6c 69 63 6b |hell_AttachClick| 00000e10 41 64 6a 75 73 74 3e 0a 3c 41 74 74 61 63 68 43 |Adjust>.<AttachC| 00000e20 6c 69 63 6b 53 65 6c 65 63 74 20 20 20 20 20 20 |lickSelect | 00000e30 20 20 20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f | =>PROCshell_| 00000e40 41 74 74 61 63 68 43 6c 69 63 6b 53 65 6c 65 63 |AttachClickSelec| 00000e50 74 3e 0a 3c 41 74 74 61 63 68 43 6c 6f 73 65 57 |t>.<AttachCloseW| 00000e60 69 6e 64 6f 77 48 61 6e 64 6c 65 72 20 20 20 3d |indowHandler =| 00000e70 3e 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 |>PROCshell_Attac| 00000e80 68 43 6c 6f 73 65 57 69 6e 64 6f 77 48 61 6e 64 |hCloseWindowHand| 00000e90 6c 65 72 3e 0a 3c 41 74 74 61 63 68 44 61 74 61 |ler>.<AttachData| 00000ea0 4c 6f 61 64 20 20 20 20 20 20 20 20 20 20 20 20 |Load | 00000eb0 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 | =>PROCshell_Att| 00000ec0 61 63 68 44 61 74 61 4c 6f 61 64 3e 0a 3c 41 74 |achDataLoad>.<At| 00000ed0 74 61 63 68 44 61 74 61 53 61 76 65 20 20 20 20 |tachDataSave | 00000ee0 20 20 20 20 20 20 20 20 20 3d 3e 50 52 4f 43 73 | =>PROCs| 00000ef0 68 65 6c 6c 5f 41 74 74 61 63 68 44 61 74 61 53 |hell_AttachDataS| 00000f00 61 76 65 3e 0a 3c 41 74 74 61 63 68 44 72 61 67 |ave>.<AttachDrag| 00000f10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000f20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 | =>PROCshell_Att| 00000f30 61 63 68 44 72 61 67 3e 0a 3c 41 74 74 61 63 68 |achDrag>.<Attach| 00000f40 48 65 6c 70 54 61 67 20 20 20 20 20 20 20 20 20 |HelpTag | 00000f50 20 20 20 20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c | =>PROCshell| 00000f60 5f 41 74 74 61 63 68 48 65 6c 70 54 61 67 3e 0a |_AttachHelpTag>.| 00000f70 3c 41 74 74 61 63 68 48 6f 74 4b 65 79 20 20 20 |<AttachHotKey | 00000f80 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 50 52 | =>PR| 00000f90 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 48 6f |OCshell_AttachHo| 00000fa0 74 4b 65 79 3e 0a 3c 41 74 74 61 63 68 4d 6f 64 |tKey>.<AttachMod| 00000fb0 65 43 68 61 6e 67 65 48 61 6e 64 6c 65 72 20 20 |eChangeHandler | 00000fc0 20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 41 74 | =>PROCshell_At| 00000fd0 74 61 63 68 4d 6f 64 65 43 68 61 6e 67 65 48 61 |tachModeChangeHa| 00000fe0 6e 64 6c 65 72 3e 0a 3c 41 74 74 61 63 68 4d 65 |ndler>.<AttachMe| 00000ff0 6e 75 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |nu | 00001000 20 20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 41 | =>PROCshell_A| 00001010 74 74 61 63 68 4d 65 6e 75 3e 0a 3c 41 74 74 61 |ttachMenu>.<Atta| 00001020 63 68 4d 65 6e 75 44 42 6f 78 20 20 20 20 20 20 |chMenuDBox | 00001030 20 20 20 20 20 20 20 3d 3e 50 52 4f 43 73 68 65 | =>PROCshe| 00001040 6c 6c 5f 41 74 74 61 63 68 4d 65 6e 75 44 42 6f |ll_AttachMenuDBo| 00001050 78 3e 0a 3c 41 74 74 61 63 68 4d 65 6e 75 4d 61 |x>.<AttachMenuMa| 00001060 6b 65 72 20 20 20 20 20 20 20 20 20 20 20 20 3d |ker =| 00001070 3e 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 |>PROCshell_Attac| 00001080 68 4d 65 6e 75 4d 61 6b 65 72 3e 0a 3c 41 74 74 |hMenuMaker>.<Att| 00001090 61 63 68 4f 70 65 6e 57 69 6e 64 6f 77 48 61 6e |achOpenWindowHan| 000010a0 64 6c 65 72 20 20 20 20 3d 3e 50 52 4f 43 73 68 |dler =>PROCsh| 000010b0 65 6c 6c 5f 41 74 74 61 63 68 4f 70 65 6e 57 69 |ell_AttachOpenWi| 000010c0 6e 64 6f 77 48 61 6e 64 6c 65 72 3e 0a 3c 41 74 |ndowHandler>.<At| 000010d0 74 61 63 68 53 75 62 4d 65 6e 75 20 20 20 20 20 |tachSubMenu | 000010e0 20 20 20 20 20 20 20 20 20 3d 3e 50 52 4f 43 73 | =>PROCs| 000010f0 68 65 6c 6c 5f 41 74 74 61 63 68 53 75 62 4d 65 |hell_AttachSubMe| 00001100 6e 75 3e 0a 3c 41 74 74 61 63 68 50 61 6c 65 74 |nu>.<AttachPalet| 00001110 74 65 43 68 61 6e 67 65 48 61 6e 64 6c 65 72 20 |teChangeHandler | 00001120 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 |=>PROCshell_Atta| 00001130 63 68 50 61 6c 65 74 74 65 43 68 61 6e 67 65 48 |chPaletteChangeH| 00001140 61 6e 64 6c 65 72 3e 0a 3c 41 74 74 61 63 68 50 |andler>.<AttachP| 00001150 61 6e 65 20 20 20 20 20 20 20 20 20 20 20 20 20 |ane | 00001160 20 20 20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f | =>PROCshell_| 00001170 41 74 74 61 63 68 50 61 6e 65 3e 0a 3c 41 74 74 |AttachPane>.<Att| 00001180 61 63 68 50 72 65 51 75 69 74 48 61 6e 64 6c 65 |achPreQuitHandle| 00001190 72 20 20 20 20 20 20 20 3d 3e 50 52 4f 43 73 68 |r =>PROCsh| 000011a0 65 6c 6c 5f 41 74 74 61 63 68 50 72 65 51 75 69 |ell_AttachPreQui| 000011b0 74 48 61 6e 64 6c 65 72 3e 0a 3c 41 74 74 61 63 |tHandler>.<Attac| 000011c0 68 54 61 73 6b 49 6e 69 74 69 61 6c 69 73 65 48 |hTaskInitialiseH| 000011d0 61 6e 64 6c 65 72 3d 3e 50 52 4f 43 73 68 65 6c |andler=>PROCshel| 000011e0 6c 5f 41 74 74 61 63 68 54 61 73 6b 49 6e 69 74 |l_AttachTaskInit| 000011f0 69 61 6c 69 73 65 48 61 6e 64 6c 65 72 3e 0a 3c |ialiseHandler>.<| 00001200 41 74 74 61 63 68 54 61 73 6b 43 6c 6f 73 65 44 |AttachTaskCloseD| 00001210 6f 77 6e 48 61 6e 64 6c 65 72 20 3d 3e 50 52 4f |ownHandler =>PRO| 00001220 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 54 61 73 |Cshell_AttachTas| 00001230 6b 43 6c 6f 73 65 44 6f 77 6e 48 61 6e 64 6c 65 |kCloseDownHandle| 00001240 72 3e 0a 3c 41 74 74 61 63 68 55 73 65 72 52 65 |r>.<AttachUserRe| 00001250 64 72 61 77 20 20 20 20 20 20 20 20 20 20 20 3d |draw =| 00001260 3e 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 |>PROCshell_Attac| 00001270 68 55 73 65 72 52 65 64 72 61 77 3e 0a 3c 44 6f |hUserRedraw>.<Do| 00001280 42 61 63 6b 67 72 6f 75 6e 64 54 61 73 6b 20 20 |BackgroundTask | 00001290 20 20 20 20 20 20 20 20 20 3d 3e 50 52 4f 43 73 | =>PROCs| 000012a0 68 65 6c 6c 5f 44 6f 42 61 63 6b 67 72 6f 75 6e |hell_DoBackgroun| 000012b0 64 54 61 73 6b 3e 0a 3c 48 61 6e 64 6c 65 55 6e |dTask>.<HandleUn| 000012c0 6b 6e 6f 77 6e 4d 65 73 73 61 67 65 20 20 20 20 |knownMessage | 000012d0 20 20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 48 | =>PROCshell_H| 000012e0 61 6e 64 6c 65 55 6e 6b 6e 6f 77 6e 4d 65 73 73 |andleUnknownMess| 000012f0 61 67 65 3e 46 69 6c 65 73 0a 3c 46 69 6c 65 45 |age>Files.<FileE| 00001300 78 69 73 74 73 3d 3e 46 4e 73 68 65 6c 6c 5f 46 |xists=>FNshell_F| 00001310 69 6c 65 45 78 69 73 74 73 3e 0a 3c 46 69 6c 65 |ileExists>.<File| 00001320 4c 65 6e 67 74 68 3d 3e 46 4e 73 68 65 6c 6c 5f |Length=>FNshell_| 00001330 46 69 6c 65 4c 65 6e 67 74 68 3e 0a 3c 46 69 6c |FileLength>.<Fil| 00001340 65 54 79 70 65 20 20 3d 3e 46 4e 73 68 65 6c 6c |eType =>FNshell| 00001350 5f 46 69 6c 65 54 79 70 65 3e 0a 3c 42 72 61 6e |_FileType>.<Bran| 00001360 63 68 20 20 20 20 3d 3e 46 4e 73 68 65 6c 6c 5f |ch =>FNshell_| 00001370 42 72 61 6e 63 68 3e 0a 3c 4c 65 61 66 20 20 20 |Branch>.<Leaf | 00001380 20 20 20 3d 3e 46 4e 73 68 65 6c 6c 5f 4c 65 61 | =>FNshell_Lea| 00001390 66 3e 53 74 72 69 6e 67 73 0a 3c 53 74 72 69 6e |f>Strings.<Strin| 000013a0 67 41 72 72 61 79 47 65 74 4c 6f 6e 67 65 73 74 |gArrayGetLongest| 000013b0 3d 3e 46 4e 73 68 65 6c 6c 5f 53 74 72 69 6e 67 |=>FNshell_String| 000013c0 41 72 72 61 79 47 65 74 4c 6f 6e 67 65 73 74 3e |ArrayGetLongest>| 000013d0 0a 3c 53 74 72 69 6e 67 45 78 63 68 61 6e 67 65 |.<StringExchange| 000013e0 20 20 20 20 20 20 20 3d 3e 46 4e 73 68 65 6c 6c | =>FNshell| 000013f0 5f 53 74 72 69 6e 67 45 78 63 68 61 6e 67 65 3e |_StringExchange>| 00001400 0a 3c 53 74 72 69 6e 67 50 61 64 4c 65 61 64 69 |.<StringPadLeadi| 00001410 6e 67 20 20 20 20 20 3d 3e 46 4e 73 68 65 6c 6c |ng =>FNshell| 00001420 5f 53 74 72 69 6e 67 50 61 64 4c 65 61 64 69 6e |_StringPadLeadin| 00001430 67 3e 0a 3c 53 74 72 69 6e 67 50 61 64 54 72 61 |g>.<StringPadTra| 00001440 69 6c 69 6e 67 20 20 20 20 3d 3e 46 4e 73 68 65 |iling =>FNshe| 00001450 6c 6c 5f 53 74 72 69 6e 67 50 61 64 54 72 61 69 |ll_StringPadTrai| 00001460 6c 69 6e 67 3e 0a 3c 53 74 72 69 6e 67 53 74 72 |ling>.<StringStr| 00001470 69 70 41 6c 6c 20 20 20 20 20 20 20 3d 3e 46 4e |ipAll =>FN| 00001480 73 68 65 6c 6c 5f 53 74 72 69 6e 67 53 74 72 69 |shell_StringStri| 00001490 70 41 6c 6c 3e 0a 3c 53 74 72 69 6e 67 53 74 72 |pAll>.<StringStr| 000014a0 69 70 4c 65 61 64 69 6e 67 20 20 20 3d 3e 46 4e |ipLeading =>FN| 000014b0 73 68 65 6c 6c 5f 53 74 72 69 6e 67 53 74 72 69 |shell_StringStri| 000014c0 70 4c 65 61 64 69 6e 67 3e 0a 3c 53 74 72 69 6e |pLeading>.<Strin| 000014d0 67 53 74 72 69 70 54 72 61 69 6c 69 6e 67 20 20 |gStripTrailing | 000014e0 3d 3e 46 4e 73 68 65 6c 6c 5f 53 74 72 69 6e 67 |=>FNshell_String| 000014f0 53 74 72 69 70 54 72 61 69 6c 69 6e 67 3e 0a 3c |StripTrailing>.<| 00001500 53 74 72 69 6e 67 55 70 70 65 72 43 61 73 65 20 |StringUpperCase | 00001510 20 20 20 20 20 3d 3e 46 4e 73 68 65 6c 6c 5f 53 | =>FNshell_S| 00001520 74 72 69 6e 67 55 70 70 65 72 43 61 73 65 3e 50 |tringUpperCase>P| 00001530 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 50 |ROCshell_AttachP| 00001540 61 6c 65 74 74 65 43 68 61 6e 67 65 48 61 6e 64 |aletteChangeHand| 00001550 6c 65 72 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a |ler().Params =>.| 00001560 20 20 20 20 20 20 20 20 20 73 74 72 20 3c 66 75 | str <fu| 00001570 6e 63 74 69 6f 6e 20 6e 61 6d 65 3d 3e 55 73 65 |nction name=>Use| 00001580 72 46 4e 30 33 3e 0a 0a 52 65 67 69 73 74 65 72 |rFN03>..Register| 00001590 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d |s a function nam| 000015a0 65 20 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 77 |e to be called w| 000015b0 68 65 6e 20 61 20 50 61 6c 65 74 74 65 43 68 61 |hen a PaletteCha| 000015c0 6e 67 65 0a 6d 65 73 73 61 67 65 20 69 73 20 72 |nge.message is r| 000015d0 65 63 65 69 76 65 64 2e 20 54 68 69 73 20 6f 63 |eceived. This oc| 000015e0 63 75 72 73 20 77 68 65 6e 20 74 68 65 20 75 73 |curs when the us| 000015f0 65 72 20 68 61 73 20 66 69 6e 69 73 68 65 64 0a |er has finished.| 00001600 64 72 61 67 67 69 6e 67 20 74 68 65 20 73 6c 69 |dragging the sli| 00001610 64 65 72 73 20 6f 6e 20 74 68 65 20 50 61 6c 65 |ders on the Pale| 00001620 74 74 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 2c |tte application,| 00001630 20 6f 72 20 77 68 65 6e 20 61 0a 6e 65 77 20 70 | or when a.new p| 00001640 61 6c 65 74 74 65 20 69 73 20 6c 6f 61 64 65 64 |alette is loaded| 00001650 2e 20 49 74 20 69 73 20 61 6c 73 6f 20 63 61 6c |. It is also cal| 00001660 6c 65 64 20 77 68 65 6e 20 74 68 65 20 68 61 6e |led when the han| 00001670 64 6c 65 72 20 69 73 0a 73 65 74 20 75 70 20 73 |dler is.set up s| 00001680 6f 20 74 68 61 74 20 74 68 65 20 75 73 65 72 20 |o that the user | 00001690 61 70 70 6c 69 63 61 74 69 6f 6e 20 63 61 6e 20 |application can | 000016a0 6e 6f 74 65 20 74 68 65 20 63 75 72 72 65 6e 74 |note the current| 000016b0 0a 70 61 72 61 6d 65 74 65 72 73 2e 0a 0a 4e 6f |.parameters...No| 000016c0 74 65 20 74 68 61 74 20 74 68 69 73 20 6d 65 73 |te that this mes| 000016d0 73 61 67 65 20 69 73 20 6e 6f 74 20 69 73 73 75 |sage is not issu| 000016e0 65 64 20 77 68 65 6e 20 74 68 65 20 73 63 72 65 |ed when the scre| 000016f0 65 6e 20 6d 6f 64 65 0a 63 68 61 6e 67 65 73 2c |en mode.changes,| 00001700 20 73 6f 20 74 61 73 6b 73 20 69 6e 74 65 72 65 | so tasks intere| 00001710 73 74 65 64 20 69 6e 20 63 6f 6c 6f 75 72 20 6d |sted in colour m| 00001720 61 70 70 69 6e 67 20 63 68 61 6e 67 65 73 20 73 |apping changes s| 00001730 68 6f 75 6c 64 0a 63 61 6c 6c 20 3c 50 52 4f 43 |hould.call <PROC| 00001740 73 68 65 6c 6c 5f 41 74 74 61 63 68 4d 6f 64 65 |shell_AttachMode| 00001750 43 68 61 6e 67 65 48 61 6e 64 6c 65 72 3e 20 61 |ChangeHandler> a| 00001760 73 20 77 65 6c 6c 2e 0a 0a 4c 69 62 72 61 72 79 |s well...Library| 00001770 20 47 72 6f 75 70 20 3d 3e 20 3c 45 76 65 6e 74 | Group => <Event| 00001780 73 3d 3e 4c 69 62 47 72 6f 75 70 45 76 65 6e 74 |s=>LibGroupEvent| 00001790 73 3e 55 73 65 72 20 46 4e 20 28 50 52 4f 43 73 |s>User FN (PROCs| 000017a0 68 65 6c 6c 5f 41 74 74 61 63 68 50 61 6c 65 74 |hell_AttachPalet| 000017b0 74 65 43 68 61 6e 67 65 48 61 6e 64 6c 65 72 29 |teChangeHandler)| 000017c0 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 |.Params =>. | 000017d0 20 20 20 20 4e 6f 6e 65 0a 0a 54 68 69 73 20 66 | None..This f| 000017e0 75 6e 63 74 69 6f 6e 20 69 73 20 63 61 6c 6c 65 |unction is calle| 000017f0 64 20 77 68 65 6e 20 61 20 50 61 6c 65 74 74 65 |d when a Palette| 00001800 43 68 61 6e 67 65 20 6d 65 73 73 61 67 65 20 69 |Change message i| 00001810 73 0a 72 65 63 65 69 76 65 64 20 61 6e 64 20 61 |s.received and a| 00001820 6c 73 6f 20 77 68 65 6e 20 3c 50 52 4f 43 73 68 |lso when <PROCsh| 00001830 65 6c 6c 5f 41 74 74 61 63 68 50 61 6c 65 74 74 |ell_AttachPalett| 00001840 65 43 68 61 6e 67 65 48 61 6e 64 6c 65 72 3e 0a |eChangeHandler>.| 00001850 69 73 20 63 61 6c 6c 65 64 2e 50 52 4f 43 73 68 |is called.PROCsh| 00001860 65 6c 6c 5f 41 74 74 61 63 68 4d 6f 64 65 43 68 |ell_AttachModeCh| 00001870 61 6e 67 65 48 61 6e 64 6c 65 72 28 29 0a 50 61 |angeHandler().Pa| 00001880 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 |rams =>. | 00001890 20 73 74 72 20 3c 66 75 6e 63 74 69 6f 6e 20 6e | str <function n| 000018a0 61 6d 65 3d 3e 55 73 65 72 46 4e 30 34 3e 0a 0a |ame=>UserFN04>..| 000018b0 52 65 67 69 73 74 65 72 73 20 61 20 66 75 6e 63 |Registers a func| 000018c0 74 69 6f 6e 20 6e 61 6d 65 20 74 6f 20 62 65 20 |tion name to be | 000018d0 63 61 6c 6c 65 64 20 77 68 65 6e 20 61 20 4d 6f |called when a Mo| 000018e0 64 65 43 68 61 6e 67 65 0a 6d 65 73 73 61 67 65 |deChange.message| 000018f0 20 69 73 20 72 65 63 65 69 76 65 64 2e 20 54 68 | is received. Th| 00001900 69 73 20 61 6c 6c 6f 77 73 20 74 68 65 20 61 70 |is allows the ap| 00001910 70 6c 69 63 61 74 69 6f 6e 20 74 6f 20 63 68 65 |plication to che| 00001920 63 6b 0a 61 6e 79 20 6d 6f 64 65 2d 73 70 65 63 |ck.any mode-spec| 00001930 69 66 69 63 20 70 61 72 61 6d 65 74 65 72 73 20 |ific parameters | 00001940 73 75 63 68 20 61 73 20 73 63 72 65 65 6e 20 77 |such as screen w| 00001950 69 64 74 68 20 65 74 63 2e 20 49 74 0a 69 73 20 |idth etc. It.is | 00001960 61 6c 73 6f 20 63 61 6c 6c 65 64 20 77 68 65 6e |also called when| 00001970 20 74 68 65 20 68 61 6e 64 6c 65 72 20 69 73 20 | the handler is | 00001980 73 65 74 20 75 70 20 73 6f 20 74 68 61 74 20 74 |set up so that t| 00001990 68 65 20 75 73 65 72 0a 61 70 70 6c 69 63 61 74 |he user.applicat| 000019a0 69 6f 6e 20 63 61 6e 20 6e 6f 74 65 20 74 68 65 |ion can note the| 000019b0 20 63 75 72 72 65 6e 74 20 70 61 72 61 6d 65 74 | current paramet| 000019c0 65 72 73 2e 0a 0a 4c 69 62 72 61 72 79 20 47 72 |ers...Library Gr| 000019d0 6f 75 70 20 3d 3e 20 3c 45 76 65 6e 74 73 3d 3e |oup => <Events=>| 000019e0 4c 69 62 47 72 6f 75 70 45 76 65 6e 74 73 3e 55 |LibGroupEvents>U| 000019f0 73 65 72 20 46 4e 20 28 50 52 4f 43 73 68 65 6c |ser FN (PROCshel| 00001a00 6c 5f 41 74 74 61 63 68 4d 6f 64 65 43 68 61 6e |l_AttachModeChan| 00001a10 67 65 48 61 6e 64 6c 65 72 29 20 0a 50 61 72 61 |geHandler) .Para| 00001a20 6d 73 20 3d 3e 20 0a 20 20 20 20 20 20 20 20 20 |ms => . | 00001a30 4e 6f 6e 65 20 0a 20 0a 54 68 69 73 20 66 75 6e |None . .This fun| 00001a40 63 74 69 6f 6e 20 69 73 20 63 61 6c 6c 65 64 20 |ction is called | 00001a50 77 68 65 6e 20 61 20 4d 6f 64 65 43 68 61 6e 67 |when a ModeChang| 00001a60 65 20 6d 65 73 73 61 67 65 20 69 73 0a 72 65 63 |e message is.rec| 00001a70 65 69 76 65 64 20 61 6e 64 20 61 6c 73 6f 20 77 |eived and also w| 00001a80 68 65 6e 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 41 |hen <PROCshell_A| 00001a90 74 74 61 63 68 4d 6f 64 65 43 68 61 6e 67 65 48 |ttachModeChangeH| 00001aa0 61 6e 64 6c 65 72 3e 0a 69 73 20 63 61 6c 6c 65 |andler>.is calle| 00001ab0 64 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 |dPROCshell_Attac| 00001ac0 68 54 61 73 6b 49 6e 69 74 69 61 6c 69 73 65 48 |hTaskInitialiseH| 00001ad0 61 6e 64 6c 65 72 28 29 0a 50 61 72 61 6d 73 20 |andler().Params | 00001ae0 3d 3e 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 |=>. str | 00001af0 3c 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 3d 3e |<function name=>| 00001b00 55 73 65 72 46 4e 30 35 3e 0a 0a 52 65 67 69 73 |UserFN05>..Regis| 00001b10 74 65 72 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 |ters a function | 00001b20 6e 61 6d 65 20 74 6f 20 62 65 20 63 61 6c 6c 65 |name to be calle| 00001b30 64 20 77 68 65 6e 20 61 20 54 61 73 6b 49 6e 69 |d when a TaskIni| 00001b40 74 69 61 6c 69 73 65 0a 6d 65 73 73 61 67 65 20 |tialise.message | 00001b50 69 73 20 72 65 63 65 69 76 65 64 2e 20 54 68 69 |is received. Thi| 00001b60 73 20 61 6c 6c 6f 77 73 20 74 68 65 20 61 70 70 |s allows the app| 00001b70 6c 69 63 61 74 69 6f 6e 20 74 6f 20 6b 65 65 70 |lication to keep| 00001b80 0a 74 72 61 63 6b 20 6f 66 20 61 6e 79 20 6e 65 |.track of any ne| 00001b90 77 20 74 61 73 6b 73 20 73 74 61 72 74 65 64 20 |w tasks started | 00001ba0 61 66 74 65 72 20 69 74 2e 0a 0a 4c 69 62 72 61 |after it...Libra| 00001bb0 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 45 76 65 |ry Group => <Eve| 00001bc0 6e 74 73 3d 3e 4c 69 62 47 72 6f 75 70 45 76 65 |nts=>LibGroupEve| 00001bd0 6e 74 73 3e 55 73 65 72 20 46 4e 20 28 50 52 4f |nts>User FN (PRO| 00001be0 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 54 61 73 |Cshell_AttachTas| 00001bf0 6b 49 6e 69 74 69 61 6c 69 73 65 48 61 6e 64 6c |kInitialiseHandl| 00001c00 65 72 29 20 0a 50 61 72 61 6d 73 20 3d 3e 20 0a |er) .Params => .| 00001c10 20 20 20 20 20 20 20 20 20 4e 6f 6e 65 20 0a 20 | None . | 00001c20 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 |.This function i| 00001c30 73 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 61 20 |s called when a | 00001c40 54 61 73 6b 49 6e 69 74 69 61 6c 69 73 65 20 20 |TaskInitialise | 00001c50 6d 65 73 73 61 67 65 20 69 73 0a 72 65 63 65 69 |message is.recei| 00001c60 76 65 64 2e 55 73 65 72 20 46 4e 20 28 50 52 4f |ved.User FN (PRO| 00001c70 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 54 61 73 |Cshell_AttachTas| 00001c80 6b 43 6c 6f 73 65 44 6f 77 6e 48 61 6e 64 6c 65 |kCloseDownHandle| 00001c90 72 29 0a 50 61 72 61 6d 73 20 3d 3e 20 0a 20 20 |r).Params => . | 00001ca0 20 20 20 20 20 20 20 4e 6f 6e 65 20 0a 20 0a 54 | None . .T| 00001cb0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 |his function is | 00001cc0 63 61 6c 6c 65 64 20 77 68 65 6e 20 61 20 54 61 |called when a Ta| 00001cd0 73 6b 43 6c 6f 73 65 44 6f 77 6e 20 6d 65 73 73 |skCloseDown mess| 00001ce0 61 67 65 20 69 73 0a 72 65 63 65 69 76 65 64 2e |age is.received.| 00001cf0 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 |PROCshell_Attach| 00001d00 54 61 73 6b 43 6c 6f 73 65 44 6f 77 6e 48 61 6e |TaskCloseDownHan| 00001d10 64 6c 65 72 28 29 0a 50 61 72 61 6d 73 20 3d 3e |dler().Params =>| 00001d20 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 3c 66 |. str <f| 00001d30 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 3d 3e 55 73 |unction name=>Us| 00001d40 65 72 46 4e 30 36 3e 0a 0a 52 65 67 69 73 74 65 |erFN06>..Registe| 00001d50 72 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 6e 61 |rs a function na| 00001d60 6d 65 20 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 |me to be called | 00001d70 77 68 65 6e 20 61 20 54 61 73 6b 43 6c 6f 73 65 |when a TaskClose| 00001d80 44 6f 77 6e 0a 6d 65 73 73 61 67 65 20 69 73 20 |Down.message is | 00001d90 72 65 63 65 69 76 65 64 2e 54 68 69 73 20 6d 65 |received.This me| 00001da0 73 73 61 67 65 20 69 73 20 73 65 6e 74 20 77 68 |ssage is sent wh| 00001db0 65 6e 20 61 20 74 61 73 6b 20 28 6f 74 68 65 72 |en a task (other| 00001dc0 0a 74 68 61 6e 20 74 68 65 20 63 75 72 72 65 6e |.than the curren| 00001dd0 74 20 6f 6e 65 29 20 69 73 20 6b 69 6c 6c 65 64 |t one) is killed| 00001de0 2e 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 |...Library Group| 00001df0 20 3d 3e 20 3c 45 76 65 6e 74 73 3d 3e 4c 69 62 | => <Events=>Lib| 00001e00 47 72 6f 75 70 45 76 65 6e 74 73 3e 50 52 4f 43 |GroupEvents>PROC| 00001e10 73 68 65 6c 6c 5f 48 65 61 70 42 6c 6f 63 6b 52 |shell_HeapBlockR| 00001e20 65 74 75 72 6e 28 29 0a 50 61 72 61 6d 73 20 3d |eturn().Params =| 00001e30 3e 20 20 0a 20 20 20 20 20 20 20 20 20 69 6e 74 |> . int| 00001e40 20 61 64 64 72 65 73 73 20 6f 66 20 68 65 61 70 | address of heap| 00001e50 20 62 6c 6f 63 6b 0a 0a 52 65 6c 65 61 73 65 73 | block..Releases| 00001e60 20 74 68 65 20 67 69 76 65 6e 20 68 65 61 70 20 | the given heap | 00001e70 62 6c 6f 63 6b 2c 20 72 65 74 75 72 6e 69 6e 67 |block, returning| 00001e80 20 6d 65 6d 6f 72 79 20 74 6f 0a 74 68 65 20 66 | memory to.the f| 00001e90 72 65 65 20 70 6f 6f 6c 2e 0a 0a 4c 69 62 72 61 |ree pool...Libra| 00001ea0 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 4d 65 6d |ry Group => <Mem| 00001eb0 6f 72 79 3d 3e 4c 69 62 47 72 6f 75 70 4d 65 6d |ory=>LibGroupMem| 00001ec0 6f 72 79 3e 50 52 4f 43 73 68 65 6c 6c 5f 48 65 |ory>PROCshell_He| 00001ed0 61 70 42 6c 6f 63 6b 49 6e 69 74 28 29 0a 50 61 |apBlockInit().Pa| 00001ee0 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 |rams =>. | 00001ef0 20 4e 6f 6e 65 20 20 20 20 20 20 20 20 20 20 20 | None | 00001f00 20 20 20 20 20 0a 0a 4c 69 62 72 61 72 79 20 47 | ..Library G| 00001f10 72 6f 75 70 20 3d 3e 20 3c 4d 65 6d 6f 72 79 3d |roup => <Memory=| 00001f20 3e 4c 69 62 47 72 6f 75 70 4d 65 6d 6f 72 79 3e |>LibGroupMemory>| 00001f30 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 |PROCshell_Attach| 00001f40 50 61 6e 65 28 29 0a 50 61 72 61 6d 73 20 3d 3e |Pane().Params =>| 00001f50 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 69 |. int wi| 00001f60 6e 64 6f 77 20 68 61 6e 64 6c 65 0a 20 20 20 20 |ndow handle. | 00001f70 20 20 20 20 20 69 6e 74 20 70 61 6e 65 20 68 61 | int pane ha| 00001f80 6e 64 6c 65 0a 20 20 20 20 20 20 20 20 20 69 6e |ndle. in| 00001f90 74 20 3c 70 61 6e 65 20 66 6c 61 67 73 3d 3e 50 |t <pane flags=>P| 00001fa0 61 6e 65 46 6c 61 67 73 3e 0a 20 20 20 20 20 20 |aneFlags>. | 00001fb0 20 20 20 69 6e 74 20 78 20 6f 66 66 73 65 74 20 | int x offset | 00001fc0 6f 66 20 70 61 6e 65 20 72 65 6c 61 74 69 76 65 |of pane relative| 00001fd0 20 74 6f 20 70 61 72 65 6e 74 20 77 69 6e 64 6f | to parent windo| 00001fe0 77 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 79 |w. int y| 00001ff0 20 6f 66 66 73 65 74 20 6f 66 20 70 61 6e 65 20 | offset of pane | 00002000 72 65 6c 61 74 69 76 65 20 74 6f 20 70 61 72 65 |relative to pare| 00002010 6e 74 20 77 69 6e 64 6f 77 0a 0a 49 66 20 6e 65 |nt window..If ne| 00002020 63 65 73 73 61 72 79 20 74 68 65 20 77 69 6e 64 |cessary the wind| 00002030 6f 77 20 66 6c 61 67 73 20 6f 66 20 74 68 65 20 |ow flags of the | 00002040 70 61 6e 65 20 77 69 6e 64 6f 77 20 61 72 65 0a |pane window are.| 00002050 63 68 61 6e 67 65 64 20 73 6f 20 74 68 61 74 20 |changed so that | 00002060 74 68 65 20 27 70 61 6e 65 27 20 62 69 74 20 69 |the 'pane' bit i| 00002070 73 20 6f 6e 20 61 6e 64 20 74 68 65 20 27 6d 6f |s on and the 'mo| 00002080 76 65 61 62 6c 65 27 0a 62 69 74 20 69 73 20 6f |veable'.bit is o| 00002090 66 66 2c 20 73 6f 20 74 68 61 74 20 65 64 69 74 |ff, so that edit| 000020a0 69 6e 67 20 74 68 65 20 74 65 6d 70 6c 61 74 65 |ing the template| 000020b0 20 66 69 6c 65 20 69 73 20 6e 6f 74 0a 72 65 71 | file is not.req| 000020c0 75 69 72 65 64 2e 0a 0a 4c 69 62 72 61 72 79 20 |uired...Library | 000020d0 47 72 6f 75 70 20 3d 3e 20 3c 45 76 65 6e 74 73 |Group => <Events| 000020e0 3d 3e 4c 69 62 47 72 6f 75 70 45 76 65 6e 74 73 |=>LibGroupEvents| 000020f0 3e 50 61 6e 65 20 46 6c 61 67 73 20 28 50 52 4f |>Pane Flags (PRO| 00002100 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 50 61 6e |Cshell_AttachPan| 00002110 65 29 0a 30 20 3d 20 61 74 74 61 63 68 65 64 20 |e).0 = attached | 00002120 74 6f 20 70 61 72 65 6e 74 20 77 69 6e 64 6f 77 |to parent window| 00002130 20 77 6f 72 6b 20 61 72 65 61 0a 31 20 3d 20 6e | work area.1 = n| 00002140 6f 74 20 75 73 65 64 0a 32 20 3d 20 61 74 74 61 |ot used.2 = atta| 00002150 63 68 65 64 20 74 6f 20 6c 65 66 74 20 65 64 67 |ched to left edg| 00002160 65 0a 33 20 3d 20 61 74 74 61 63 68 65 64 20 74 |e.3 = attached t| 00002170 6f 20 62 6f 74 74 6f 6d 20 65 64 67 65 0a 34 20 |o bottom edge.4 | 00002180 3d 20 61 74 74 61 63 68 65 64 20 74 6f 20 72 69 |= attached to ri| 00002190 67 68 74 20 65 64 67 65 0a 35 20 3d 20 61 74 74 |ght edge.5 = att| 000021a0 61 63 68 65 64 20 74 6f 20 74 6f 70 20 65 64 67 |ached to top edg| 000021b0 65 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 |ePROCshell_Attac| 000021c0 68 44 61 74 61 4c 6f 61 64 28 29 0a 41 74 74 61 |hDataLoad().Atta| 000021d0 63 68 65 73 20 61 20 64 61 74 61 6c 6f 61 64 20 |ches a dataload | 000021e0 68 61 6e 64 6c 65 72 20 74 6f 20 61 20 77 69 6e |handler to a win| 000021f0 64 6f 77 2f 69 63 6f 6e 20 70 61 69 72 2e 0a 0a |dow/icon pair...| 00002200 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 |Params =>. | 00002210 20 20 20 69 6e 74 20 20 77 69 6e 64 6f 77 20 68 | int window h| 00002220 61 6e 64 6c 65 0a 20 20 20 20 20 20 20 20 20 69 |andle. i| 00002230 6e 74 20 20 69 63 6f 6e 20 68 61 6e 64 6c 65 0a |nt icon handle.| 00002240 20 20 20 20 20 20 20 20 20 69 6e 74 20 20 66 69 | int fi| 00002250 6c 65 74 79 70 65 20 74 6f 20 72 65 63 6f 67 6e |letype to recogn| 00002260 69 73 65 20 61 6e 64 20 6f 70 74 69 6f 6e 61 6c |ise and optional| 00002270 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 |ly. | 00002280 20 6c 6f 61 64 20 28 73 65 65 20 6e 6f 20 6c 6f | load (see no lo| 00002290 61 64 20 66 6c 61 67 29 0a 20 20 20 20 20 20 20 |ad flag). | 000022a0 20 20 73 74 72 20 20 3c 66 75 6e 63 74 69 6f 6e | str <function| 000022b0 20 6e 61 6d 65 3d 3e 55 73 65 72 46 4e 30 31 3e | name=>UserFN01>| 000022c0 0a 20 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 3c |. bool <| 000022d0 6e 6f 20 6c 6f 61 64 20 66 6c 61 67 3d 3e 6e 6f |no load flag=>no| 000022e0 6c 6f 61 64 3e 0a 0a 4e 6f 74 65 20 74 68 61 74 |load>..Note that| 000022f0 20 69 74 20 69 73 20 70 6f 73 73 69 62 6c 65 20 | it is possible | 00002300 74 6f 20 63 61 6c 6c 20 74 68 69 73 20 66 75 6e |to call this fun| 00002310 63 74 69 6f 6e 20 66 6f 72 0a 74 68 65 20 73 61 |ction for.the sa| 00002320 6d 65 20 77 69 6e 64 6f 77 2f 69 63 6f 6e 20 70 |me window/icon p| 00002330 61 69 72 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e |air more than on| 00002340 63 65 20 67 69 76 69 6e 67 0a 64 69 66 66 65 72 |ce giving.differ| 00002350 65 6e 74 20 66 69 6c 65 74 79 70 65 73 20 28 61 |ent filetypes (a| 00002360 6e 64 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 |nd function name| 00002370 73 20 69 66 20 72 65 71 75 69 72 65 64 29 0a 74 |s if required).t| 00002380 6f 20 61 6c 6c 6f 77 20 74 68 65 20 68 61 6e 64 |o allow the hand| 00002390 6c 69 6e 67 20 6f 66 20 6d 75 6c 74 69 70 6c 65 |ling of multiple| 000023a0 20 66 69 6c 65 74 79 70 65 73 2e 0a 0a 4c 69 62 | filetypes...Lib| 000023b0 72 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 45 |rary Group => <E| 000023c0 76 65 6e 74 73 3d 3e 4c 69 62 47 72 6f 75 70 45 |vents=>LibGroupE| 000023d0 76 65 6e 74 73 3e 50 52 4f 43 73 68 65 6c 6c 5f |vents>PROCshell_| 000023e0 41 74 74 61 63 68 44 61 74 61 53 61 76 65 28 29 |AttachDataSave()| 000023f0 0a 41 74 74 61 63 68 65 73 20 61 20 64 61 74 61 |.Attaches a data| 00002400 73 61 76 65 20 68 61 6e 64 6c 65 72 20 74 6f 20 |save handler to | 00002410 61 20 77 69 6e 64 6f 77 2f 69 63 6f 6e 20 70 61 |a window/icon pa| 00002420 69 72 2e 20 41 0a 74 79 70 69 63 61 6c 20 75 73 |ir. A.typical us| 00002430 65 20 77 6f 75 6c 64 20 62 65 20 69 6e 20 61 20 |e would be in a | 00002440 27 53 61 76 65 20 41 73 27 20 64 69 61 6c 6f 67 |'Save As' dialog| 00002450 20 62 6f 78 2c 20 74 68 65 0a 69 63 6f 6e 20 68 | box, the.icon h| 00002460 61 6e 64 6c 65 20 62 65 69 6e 67 20 74 68 61 74 |andle being that| 00002470 20 6f 66 20 74 68 65 20 27 46 69 6c 65 20 54 79 | of the 'File Ty| 00002480 70 65 27 20 69 63 6f 6e 2e 0a 20 0a 50 61 72 61 |pe' icon.. .Para| 00002490 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 69 |ms =>. i| 000024a0 6e 74 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 |nt window handle| 000024b0 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 69 63 |. int ic| 000024c0 6f 6e 20 68 61 6e 64 6c 65 0a 20 20 20 20 20 20 |on handle. | 000024d0 20 20 20 69 6e 74 20 61 64 64 72 65 73 73 20 6f | int address o| 000024e0 66 20 68 65 61 70 62 6c 6f 63 6b 20 68 6f 6c 64 |f heapblock hold| 000024f0 69 6e 67 20 64 61 74 61 20 6f 72 0a 20 20 20 20 |ing data or. | 00002500 20 20 20 20 20 20 20 20 20 74 68 65 20 3c 65 73 | the <es| 00002510 74 69 6d 61 74 65 64 20 66 69 6c 65 20 73 69 7a |timated file siz| 00002520 65 3d 3e 45 73 74 53 69 7a 65 3e 0a 20 20 20 20 |e=>EstSize>. | 00002530 20 20 20 20 20 69 6e 74 20 66 69 6c 65 20 74 79 | int file ty| 00002540 70 65 20 66 6f 72 20 73 61 76 65 64 20 66 69 6c |pe for saved fil| 00002550 65 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 69 |e. int i| 00002560 63 6f 6e 20 6e 72 20 6f 66 20 66 69 6c 65 6e 61 |con nr of filena| 00002570 6d 65 20 69 63 6f 6e 0a 20 20 20 20 20 20 20 20 |me icon. | 00002580 20 73 74 72 20 3c 66 75 6e 63 74 69 6f 6e 20 6e | str <function n| 00002590 61 6d 65 3d 3e 55 73 65 72 46 4e 30 32 3e 20 28 |ame=>UserFN02> (| 000025a0 6f 70 74 69 6f 6e 61 6c 20 69 66 20 64 61 74 61 |optional if data| 000025b0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 73 |. is| 000025c0 20 68 65 6c 64 20 69 6e 20 61 20 68 65 61 70 62 | held in a heapb| 000025d0 6c 6f 63 6b 29 0a 0a 49 66 20 69 63 6f 6e 20 30 |lock)..If icon 0| 000025e0 20 69 6e 20 74 68 65 20 77 69 6e 64 6f 77 20 69 | in the window i| 000025f0 73 20 63 6c 69 63 6b 65 64 20 6f 6e 20 74 68 65 |s clicked on the| 00002600 6e 20 61 20 63 68 65 63 6b 0a 69 73 20 6d 61 64 |n a check.is mad| 00002610 65 20 74 68 61 74 20 74 68 65 20 66 69 6c 65 6e |e that the filen| 00002620 61 6d 65 20 69 63 6f 6e 20 63 6f 6e 74 61 69 6e |ame icon contain| 00002630 73 20 61 20 76 61 6c 69 64 0a 70 61 74 68 20 6e |s a valid.path n| 00002640 61 6d 65 2c 20 67 65 6e 65 72 61 74 69 6e 67 20 |ame, generating | 00002650 61 6e 20 65 72 72 6f 72 20 69 66 20 69 74 20 64 |an error if it d| 00002660 6f 65 73 20 6e 6f 74 2e 0a 0a 4e 6f 74 65 20 74 |oes not...Note t| 00002670 68 61 74 20 74 68 65 20 74 68 69 72 64 20 70 61 |hat the third pa| 00002680 72 61 6d 65 74 65 72 20 63 61 6e 20 70 6f 69 6e |rameter can poin| 00002690 74 20 74 6f 20 61 20 68 65 61 70 0a 62 6c 6f 63 |t to a heap.bloc| 000026a0 6b 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 |k containing the| 000026b0 20 64 61 74 61 20 74 6f 20 73 61 76 65 20 77 68 | data to save wh| 000026c0 69 63 68 20 6d 65 61 6e 73 20 74 68 61 74 0a 74 |ich means that.t| 000026d0 68 65 20 64 61 74 61 20 6d 75 73 74 20 65 78 69 |he data must exi| 000026e0 73 74 20 69 6e 20 74 68 65 20 62 6c 6f 63 6b 20 |st in the block | 000026f0 28 6f 72 20 61 74 20 6c 65 61 73 74 20 74 68 65 |(or at least the| 00002700 0a 62 6c 6f 63 6b 20 6d 75 73 74 20 65 78 69 73 |.block must exis| 00002710 74 20 61 6e 64 20 62 65 20 74 68 65 20 63 6f 72 |t and be the cor| 00002720 72 65 63 74 20 73 69 7a 65 29 20 62 65 66 6f 72 |rect size) befor| 00002730 65 0a 74 68 69 73 20 72 6f 75 74 69 6e 65 20 69 |e.this routine i| 00002740 73 20 63 61 6c 6c 65 64 2e 20 49 66 20 74 68 69 |s called. If thi| 00002750 73 20 70 61 72 61 6d 65 74 65 72 20 69 73 20 3e |s parameter is >| 00002760 26 38 30 30 30 0a 69 74 20 69 73 20 74 61 6b 65 |&8000.it is take| 00002770 6e 20 74 6f 20 62 65 20 61 20 70 6f 69 6e 74 65 |n to be a pointe| 00002780 72 20 74 6f 20 74 68 65 20 68 65 61 70 20 62 6c |r to the heap bl| 00002790 6f 63 6b 2c 20 61 6e 64 0a 74 68 65 20 6e 61 6d |ock, and.the nam| 000027a0 65 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f |e of the functio| 000027b0 6e 20 74 6f 20 70 65 72 66 6f 72 6d 20 74 68 65 |n to perform the| 000027c0 20 73 61 76 65 20 69 73 0a 6f 70 74 69 6f 6e 61 | save is.optiona| 000027d0 6c 2e 0a 0a 41 6c 74 65 72 6e 61 74 69 76 65 6c |l...Alternativel| 000027e0 79 20 74 68 69 73 20 70 61 72 61 6d 65 74 65 72 |y this parameter| 000027f0 20 63 61 6e 20 62 65 20 61 6e 20 65 73 74 69 6d | can be an estim| 00002800 61 74 65 64 0a 66 69 6c 65 20 73 69 7a 65 20 28 |ated.file size (| 00002810 69 2e 65 2e 20 5c 3c 26 38 30 30 30 29 20 69 6e |i.e. \<&8000) in| 00002820 20 77 68 69 63 68 20 63 61 73 65 20 74 68 65 20 | which case the | 00002830 75 73 65 72 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 |user.function ma| 00002840 79 20 77 72 69 74 65 20 64 69 72 65 63 74 6c 79 |y write directly| 00002850 20 69 6e 74 6f 20 74 68 65 20 66 69 6c 65 20 77 | into the file w| 00002860 68 6f 73 65 0a 6e 61 6d 65 20 69 73 20 67 69 76 |hose.name is giv| 00002870 65 6e 20 61 73 20 61 20 70 61 72 61 6d 65 74 65 |en as a paramete| 00002880 72 20 74 6f 20 74 68 65 20 66 75 6e 63 74 69 6f |r to the functio| 00002890 6e 2e 20 52 41 4d 0a 74 72 61 6e 73 66 65 72 20 |n. RAM.transfer | 000028a0 69 73 20 6e 6f 74 20 70 6f 73 73 69 62 6c 65 20 |is not possible | 000028b0 69 66 20 74 68 69 73 20 69 73 20 74 68 65 20 63 |if this is the c| 000028c0 61 73 65 2e 0a 0a 0a 4c 69 62 72 61 72 79 20 47 |ase....Library G| 000028d0 72 6f 75 70 20 3d 3e 20 3c 45 76 65 6e 74 73 3d |roup => <Events=| 000028e0 3e 4c 69 62 47 72 6f 75 70 45 76 65 6e 74 73 3e |>LibGroupEvents>| 000028f0 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 |PROCshell_Attach| 00002900 4d 65 6e 75 28 29 0a 50 61 72 61 6d 73 20 3d 3e |Menu().Params =>| 00002910 20 20 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 | . int | 00002920 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 0a 20 | window handle. | 00002930 20 20 20 20 20 20 20 20 69 6e 74 20 20 69 63 6f | int ico| 00002940 6e 20 68 61 6e 64 6c 65 0a 20 20 20 20 20 20 20 |n handle. | 00002950 20 20 69 6e 74 20 20 6d 65 6e 75 20 68 61 6e 64 | int menu hand| 00002960 6c 65 0a 20 20 20 20 20 20 20 20 20 62 6f 6f 6c |le. bool| 00002970 20 73 68 69 66 74 20 66 6c 61 67 20 28 6e 6f 74 | shift flag (not| 00002980 20 69 6d 70 6c 65 6d 65 6e 74 65 64 29 0a 20 20 | implemented). | 00002990 20 20 20 20 20 20 20 62 6f 6f 6c 20 63 74 72 6c | bool ctrl| 000029a0 20 20 66 6c 61 67 20 28 6e 6f 74 20 69 6d 70 6c | flag (not impl| 000029b0 65 6d 65 6e 74 65 64 29 0a 20 20 20 20 20 20 20 |emented). | 000029c0 20 20 62 6f 6f 6c 20 61 6c 74 20 20 20 66 6c 61 | bool alt fla| 000029d0 67 20 28 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 |g (not implement| 000029e0 65 64 29 0a 0a 54 68 65 20 73 68 69 66 74 2c 20 |ed)..The shift, | 000029f0 63 74 72 6c 20 61 6e 64 20 61 6c 74 20 66 6c 61 |ctrl and alt fla| 00002a00 67 73 20 61 72 65 20 66 6f 72 20 66 75 74 75 72 |gs are for futur| 00002a10 65 0a 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20 74 |e.enhancements t| 00002a20 6f 20 74 68 65 20 6c 69 62 72 61 72 79 20 61 6e |o the library an| 00002a30 64 20 73 68 6f 75 6c 64 20 62 65 20 73 65 74 0a |d should be set.| 00002a40 74 6f 20 30 20 6f 6e 20 74 68 69 73 20 72 65 6c |to 0 on this rel| 00002a50 65 61 73 65 2e 0a 0a 49 66 20 74 68 65 20 6d 65 |ease...If the me| 00002a60 6e 75 20 69 73 20 61 74 74 61 63 68 65 64 20 74 |nu is attached t| 00002a70 6f 20 61 6e 20 69 63 6f 6e 20 28 72 61 74 68 65 |o an icon (rathe| 00002a80 72 20 74 68 61 6e 0a 61 20 77 69 6e 64 6f 77 20 |r than.a window | 00002a90 77 6f 72 6b 20 61 72 65 61 29 20 61 20 63 6c 69 |work area) a cli| 00002aa0 63 6b 20 77 69 74 68 20 53 45 4c 45 43 54 2c 20 |ck with SELECT, | 00002ab0 4d 45 4e 55 0a 6f 72 20 41 44 4a 55 53 54 20 77 |MENU.or ADJUST w| 00002ac0 69 6c 6c 20 6f 70 65 6e 20 74 68 65 20 6d 65 6e |ill open the men| 00002ad0 75 2e 20 41 6c 73 6f 20 74 68 65 20 62 75 74 74 |u. Also the butt| 00002ae0 6f 6e 0a 74 79 70 65 20 6f 66 20 74 68 65 20 69 |on.type of the i| 00002af0 63 6f 6e 20 69 73 20 63 68 61 6e 67 65 64 20 74 |con is changed t| 00002b00 6f 20 31 20 28 63 6c 69 63 6b 29 20 74 6f 0a 65 |o 1 (click) to.e| 00002b10 6e 73 75 72 65 20 74 68 65 20 6d 65 6e 75 20 70 |nsure the menu p| 00002b20 6f 70 73 20 75 70 20 77 68 65 6e 20 53 45 4c 45 |ops up when SELE| 00002b30 43 54 20 6f 72 20 41 44 4a 55 53 54 0a 69 73 20 |CT or ADJUST.is | 00002b40 75 73 65 64 2e 0a 0a 4c 69 62 72 61 72 79 20 47 |used...Library G| 00002b50 72 6f 75 70 20 3d 3e 20 3c 4d 65 6e 75 73 3d 3e |roup => <Menus=>| 00002b60 4c 69 62 47 72 6f 75 70 4d 65 6e 75 73 3e 2c 20 |LibGroupMenus>, | 00002b70 3c 45 76 65 6e 74 73 3d 3e 4c 69 62 47 72 6f 75 |<Events=>LibGrou| 00002b80 70 45 76 65 6e 74 73 3e 50 52 4f 43 73 68 65 6c |pEvents>PROCshel| 00002b90 6c 5f 41 74 74 61 63 68 4d 65 6e 75 4d 61 6b 65 |l_AttachMenuMake| 00002ba0 72 28 29 0a 50 61 72 61 6d 73 20 3d 3e 20 20 20 |r().Params => | 00002bb0 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 69 |. int wi| 00002bc0 6e 64 6f 77 20 68 61 6e 64 6c 65 20 20 20 0a 20 |ndow handle . | 00002bd0 20 20 20 20 20 20 20 20 69 6e 74 20 69 63 6f 6e | int icon| 00002be0 20 68 61 6e 64 6c 65 0a 20 20 20 20 20 20 20 20 | handle. | 00002bf0 20 73 74 72 20 3c 66 75 6e 63 74 69 6f 6e 20 6e | str <function n| 00002c00 61 6d 65 3d 3e 55 73 65 72 46 4e 31 36 3e 0a 0a |ame=>UserFN16>..| 00002c10 52 65 67 69 73 74 65 72 73 20 61 20 66 75 6e 63 |Registers a func| 00002c20 74 69 6f 6e 20 74 6f 20 62 65 20 63 61 6c 6c 65 |tion to be calle| 00002c30 64 20 62 65 66 6f 72 65 20 74 68 65 0a 6d 65 6e |d before the.men| 00002c40 75 20 69 73 20 6f 70 65 6e 65 64 2c 20 61 6c 6c |u is opened, all| 00002c50 6f 77 69 6e 67 20 74 69 63 6b 69 6e 67 2c 20 73 |owing ticking, s| 00002c60 68 61 64 69 6e 67 20 65 74 63 0a 6f 66 20 6d 65 |hading etc.of me| 00002c70 6e 75 20 69 74 65 6d 73 2e 0a 0a 4c 69 62 72 61 |nu items...Libra| 00002c80 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 4d 65 6e |ry Group => <Men| 00002c90 75 73 3d 3e 4c 69 62 47 72 6f 75 70 4d 65 6e 75 |us=>LibGroupMenu| 00002ca0 73 3e 2c 3c 45 76 65 6e 74 73 3d 3e 4c 69 62 47 |s>,<Events=>LibG| 00002cb0 72 6f 75 70 45 76 65 6e 74 73 3e 50 52 4f 43 73 |roupEvents>PROCs| 00002cc0 68 65 6c 6c 5f 41 74 74 61 63 68 43 6c 69 63 6b |hell_AttachClick| 00002cd0 53 65 6c 65 63 74 28 29 0a 50 61 72 61 6d 73 20 |Select().Params | 00002ce0 3d 3e 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 |=> . | 00002cf0 69 6e 74 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c |int window handl| 00002d00 65 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 |e . | 00002d10 20 20 69 6e 74 20 69 63 6f 6e 20 68 61 6e 64 6c | int icon handl| 00002d20 65 20 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 |e . str | 00002d30 3c 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 3d 3e |<function name=>| 00002d40 55 73 65 72 46 4e 31 33 3e 0a 0a 4c 69 62 72 61 |UserFN13>..Libra| 00002d50 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 45 76 65 |ry Group => <Eve| 00002d60 6e 74 73 3d 3e 4c 69 62 47 72 6f 75 70 45 76 65 |nts=>LibGroupEve| 00002d70 6e 74 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 41 74 |nts>PROCshell_At| 00002d80 74 61 63 68 43 6c 69 63 6b 41 64 6a 75 73 74 28 |tachClickAdjust(| 00002d90 29 0a 50 61 72 61 6d 73 20 3d 3e 20 20 20 20 20 |).Params => | 00002da0 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 69 |. int wi| 00002db0 6e 64 6f 77 20 68 61 6e 64 6c 65 20 20 20 20 20 |ndow handle | 00002dc0 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 | . | 00002dd0 69 6e 74 20 69 63 6f 6e 20 68 61 6e 64 6c 65 20 |int icon handle | 00002de0 20 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 3c | . str <| 00002df0 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 3d 3e 55 |function name=>U| 00002e00 73 65 72 46 4e 31 35 3e 0a 0a 4c 69 62 72 61 72 |serFN15>..Librar| 00002e10 79 20 47 72 6f 75 70 20 3d 3e 20 3c 45 76 65 6e |y Group => <Even| 00002e20 74 73 3d 3e 4c 69 62 47 72 6f 75 70 45 76 65 6e |ts=>LibGroupEven| 00002e30 74 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 |ts>PROCshell_Att| 00002e40 61 63 68 55 73 65 72 52 65 64 72 61 77 28 29 0a |achUserRedraw().| 00002e50 50 61 72 61 6d 73 20 3d 3e 20 20 20 20 20 20 0a |Params => .| 00002e60 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 69 6e | int win| 00002e70 64 6f 77 20 68 61 6e 64 6c 65 20 20 20 20 20 20 |dow handle | 00002e80 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 3c 66 |. str <f| 00002e90 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 3d 3e 55 73 |unction name=>Us| 00002ea0 65 72 46 4e 31 34 3e 0a 0a 41 20 63 68 65 63 6b |erFN14>..A check| 00002eb0 20 69 73 20 6d 61 64 65 20 74 6f 20 65 6e 73 75 | is made to ensu| 00002ec0 72 65 20 74 68 61 74 20 74 68 65 0a 27 41 75 74 |re that the.'Aut| 00002ed0 6f 20 72 65 64 72 61 77 27 20 66 6c 61 67 20 6f |o redraw' flag o| 00002ee0 66 20 74 68 65 20 77 69 6e 64 6f 77 20 69 73 0a |f the window is.| 00002ef0 6f 66 66 2c 20 61 6e 64 20 69 66 20 6e 65 63 65 |off, and if nece| 00002f00 73 73 61 72 79 20 74 68 65 20 62 69 74 20 69 73 |ssary the bit is| 00002f10 20 63 6c 65 61 72 65 64 0a 61 75 74 6f 6d 61 74 | cleared.automat| 00002f20 69 63 61 6c 6c 79 20 28 69 2e 65 2e 20 79 6f 75 |ically (i.e. you| 00002f30 20 64 6f 6e 27 74 20 68 61 76 65 20 74 6f 20 73 | don't have to s| 00002f40 65 74 0a 74 68 65 20 73 74 61 74 65 20 6f 66 20 |et.the state of | 00002f50 74 68 65 20 66 6c 61 67 20 75 73 69 6e 67 20 21 |the flag using !| 00002f60 46 6f 72 6d 45 64 20 6f 72 0a 73 69 6d 69 6c 61 |FormEd or.simila| 00002f70 72 29 2e 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f |r)...Library Gro| 00002f80 75 70 20 3d 3e 20 3c 45 76 65 6e 74 73 3d 3e 4c |up => <Events=>L| 00002f90 69 62 47 72 6f 75 70 45 76 65 6e 74 73 3e 50 52 |ibGroupEvents>PR| 00002fa0 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 44 72 |OCshell_AttachDr| 00002fb0 61 67 28 29 0a 50 61 72 61 6d 73 20 3d 3e 20 20 |ag().Params => | 00002fc0 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 | . | 00002fd0 69 6e 74 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c |int window handl| 00002fe0 65 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 |e . | 00002ff0 20 20 20 69 6e 74 20 69 63 6f 6e 20 68 61 6e 64 | int icon hand| 00003000 6c 65 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 |le . | 00003010 20 73 74 72 20 3c 66 75 6e 63 74 69 6f 6e 20 6e | str <function n| 00003020 61 6d 65 3d 3e 55 73 65 72 46 4e 32 32 3e 0a 0a |ame=>UserFN22>..| 00003030 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e |Library Group =>| 00003040 20 3c 45 76 65 6e 74 73 3d 3e 4c 69 62 47 72 6f | <Events=>LibGro| 00003050 75 70 45 76 65 6e 74 73 3e 50 52 4f 43 73 68 65 |upEvents>PROCshe| 00003060 6c 6c 5f 41 74 74 61 63 68 48 65 6c 70 54 61 67 |ll_AttachHelpTag| 00003070 28 29 0a 50 61 72 61 6d 73 20 3d 3e 20 20 20 20 |().Params => | 00003080 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 69 | . i| 00003090 6e 74 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 |nt window handle| 000030a0 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 | . | 000030b0 20 20 20 69 6e 74 20 69 63 6f 6e 20 68 61 6e 64 | int icon hand| 000030c0 6c 65 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 |le . | 000030d0 20 20 73 74 72 20 3c 6d 65 73 73 61 67 65 20 74 | str <message t| 000030e0 61 67 3d 3e 4d 65 73 73 61 67 65 54 61 67 3e 0a |ag=>MessageTag>.| 000030f0 0a 4e 6f 74 65 20 74 68 61 74 20 61 6e 79 20 6d |.Note that any m| 00003100 65 73 73 61 67 65 20 74 61 67 73 20 66 6f 75 6e |essage tags foun| 00003110 64 20 69 6e 20 69 63 6f 6e 0a 76 61 6c 69 64 61 |d in icon.valida| 00003120 74 69 6f 6e 20 73 74 72 69 6e 67 73 20 6f 76 65 |tion strings ove| 00003130 72 72 69 64 65 20 74 61 67 73 20 73 65 74 20 75 |rride tags set u| 00003140 70 20 62 79 0a 74 68 69 73 20 72 6f 75 74 69 6e |p by.this routin| 00003150 65 2e 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 |e...Library Grou| 00003160 70 20 3d 3e 20 3c 45 76 65 6e 74 73 3d 3e 4c 69 |p => <Events=>Li| 00003170 62 47 72 6f 75 70 45 76 65 6e 74 73 3e 50 52 4f |bGroupEvents>PRO| 00003180 43 57 69 6d 70 43 6c 6f 73 65 44 6f 77 6e 0a 50 |CWimpCloseDown.P| 00003190 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 |arams =>. | 000031a0 20 20 4e 6f 6e 65 0a 0a 4e 6f 74 20 75 73 65 64 | None..Not used| 000031b0 20 69 6e 20 45 76 6e 74 53 68 65 6c 6c 20 6c 69 | in EvntShell li| 000031c0 62 72 61 72 79 20 2d 20 75 73 65 20 3c 50 52 4f |brary - use <PRO| 000031d0 43 73 68 65 6c 6c 5f 57 69 6d 70 43 6c 6f 73 65 |Cshell_WimpClose| 000031e0 44 6f 77 6e 5f 49 3e 20 69 6e 73 74 65 61 64 2e |Down_I> instead.| 000031f0 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 |..Library Group | 00003200 3d 3e 20 3c 53 68 65 6c 6c 3d 3e 4c 69 62 47 72 |=> <Shell=>LibGr| 00003210 6f 75 70 53 68 65 6c 6c 3e 50 52 4f 43 73 68 65 |oupShell>PROCshe| 00003220 6c 6c 5f 57 69 6d 70 43 6c 6f 73 65 44 6f 77 6e |ll_WimpCloseDown| 00003230 5f 49 0a 50 61 72 61 6d 73 20 3d 3e 20 0a 20 20 |_I.Params => . | 00003240 20 20 20 20 20 20 20 4e 6f 6e 65 0a 0a 43 61 6c | None..Cal| 00003250 6c 65 64 20 77 68 65 6e 20 74 68 65 20 61 70 70 |led when the app| 00003260 6c 69 63 61 74 69 6f 6e 20 73 68 75 74 73 20 64 |lication shuts d| 00003270 6f 77 6e 0a 28 74 68 65 20 6c 69 62 72 61 72 79 |own.(the library| 00003280 20 63 61 6c 6c 73 20 74 68 69 73 20 61 75 74 6f | calls this auto| 00003290 6d 61 74 69 63 61 6c 6c 79 29 0a 0a 4c 69 62 72 |matically)..Libr| 000032a0 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 53 68 |ary Group => <Sh| 000032b0 65 6c 6c 3d 3e 4c 69 62 47 72 6f 75 70 53 68 65 |ell=>LibGroupShe| 000032c0 6c 6c 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 6e 69 |ll>PROCshell_Ini| 000032d0 74 0a 50 61 72 61 6d 73 20 3d 3e 20 20 0a 20 20 |t.Params => . | 000032e0 20 20 20 20 20 20 20 4e 6f 6e 65 0a 0a 4c 69 62 | None..Lib| 000032f0 72 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 53 |rary Group => <S| 00003300 68 65 6c 6c 3d 3e 4c 69 62 47 72 6f 75 70 53 68 |hell=>LibGroupSh| 00003310 65 6c 6c 3e 50 52 4f 43 73 68 65 6c 6c 5f 52 65 |ell>PROCshell_Re| 00003320 73 6f 75 72 63 65 73 49 6e 69 74 0a 50 61 72 61 |sourcesInit.Para| 00003330 6d 73 20 3d 3e 20 20 20 0a 20 20 20 20 20 20 20 |ms => . | 00003340 20 20 4e 6f 6e 65 0a 0a 4c 6f 61 64 73 20 77 69 | None..Loads wi| 00003350 6e 64 6f 77 20 74 65 6d 70 6c 61 74 65 73 2c 20 |ndow templates, | 00003360 73 70 72 69 74 65 73 20 61 6e 64 20 6d 65 73 73 |sprites and mess| 00003370 61 67 65 20 66 69 6c 65 73 2e 0a 54 68 69 73 20 |age files..This | 00003380 50 52 4f 43 20 6d 75 73 74 20 62 65 20 63 61 6c |PROC must be cal| 00003390 6c 65 64 20 65 61 72 6c 79 20 69 6e 20 74 68 65 |led early in the| 000033a0 20 70 72 6f 67 72 61 6d 2c 20 69 2e 65 0a 62 65 | program, i.e.be| 000033b0 66 6f 72 65 20 74 68 65 20 77 69 6d 70 20 70 6f |fore the wimp po| 000033c0 6c 6c 20 6c 6f 6f 70 20 73 74 61 72 74 73 2e 0a |ll loop starts..| 000033d0 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d |.Library Group =| 000033e0 3e 20 3c 53 68 65 6c 6c 3d 3e 4c 69 62 47 72 6f |> <Shell=>LibGro| 000033f0 75 70 53 68 65 6c 6c 3e 53 74 69 6c 6c 20 54 6f |upShell>Still To| 00003400 20 44 6f 20 4c 69 73 74 0a 20 48 61 6e 64 6c 69 | Do List. Handli| 00003410 6e 67 20 6f 66 20 66 69 6c 65 74 79 70 65 73 20 |ng of filetypes | 00003420 6f 74 68 65 72 20 74 68 61 6e 20 26 46 46 46 20 |other than &FFF | 00003430 6e 65 65 64 65 64 20 69 6e 20 44 61 74 61 53 61 |needed in DataSa| 00003440 76 65 20 28 4d 75 6c 74 69 70 6c 65 0a 20 66 69 |ve (Multiple. fi| 00003450 6c 65 74 79 70 65 73 2f 75 73 65 72 5f 46 4e 73 |letypes/user_FNs| 00003460 20 72 65 71 75 69 72 65 64 20 2d 20 73 65 74 20 | required - set | 00003470 75 70 20 6c 69 73 74 73 29 0a 20 46 6f 72 63 65 |up lists). Force| 00003480 20 65 76 61 6c 75 61 74 65 64 20 66 75 6e 63 74 | evaluated funct| 00003490 69 6f 6e 20 6e 61 6d 65 73 20 74 6f 20 73 74 61 |ion names to sta| 000034a0 72 74 20 77 69 74 68 20 27 5f 27 20 28 65 72 72 |rt with '_' (err| 000034b0 6f 72 20 6f 74 68 65 72 77 69 73 65 29 0a 20 57 |or otherwise). W| 000034c0 72 69 74 65 20 62 75 6d 70 20 69 63 6f 6e 20 68 |rite bump icon h| 000034d0 61 6e 64 6c 65 72 0a 20 57 72 69 74 65 20 6c 69 |andler. Write li| 000034e0 73 74 20 69 63 6f 6e 20 68 61 6e 64 6c 65 72 0a |st icon handler.| 000034f0 20 46 6f 72 20 21 41 70 70 42 75 69 6c 64 20 69 | For !AppBuild i| 00003500 63 6f 6e 62 61 72 20 6d 65 6e 75 20 74 69 74 6c |conbar menu titl| 00003510 65 20 6d 75 73 74 20 62 65 20 63 68 61 6e 67 65 |e must be change| 00003520 64 20 74 6f 20 4e 65 77 41 70 70 20 6e 61 6d 65 |d to NewApp name| 00003530 0a 20 52 65 44 72 61 77 20 65 76 65 6e 74 20 6d |. ReDraw event m| 00003540 75 73 74 20 62 65 20 69 6d 70 6c 65 6d 65 6e 74 |ust be implement| 00003550 65 64 20 69 6e 20 6c 69 62 72 61 72 79 0a 20 43 |ed in library. C| 00003560 68 65 63 6b 20 6f 75 74 20 4d 65 73 73 61 67 65 |heck out Message| 00003570 54 72 61 6e 73 5f 4d 65 6e 75 4d 61 6b 65 20 66 |Trans_MenuMake f| 00003580 6f 72 20 63 72 65 61 74 69 6e 67 20 6d 65 6e 75 |or creating menu| 00003590 73 20 66 72 6f 6d 20 6d 65 73 73 61 67 65 20 66 |s from message f| 000035a0 69 6c 65 73 0a 20 43 68 61 6e 67 65 20 6e 61 6d |iles. Change nam| 000035b0 65 73 20 6f 66 20 21 52 75 6e 49 6d 61 67 65 20 |es of !RunImage | 000035c0 74 6f 20 41 70 70 4e 61 6d 65 20 77 69 74 68 6f |to AppName witho| 000035d0 75 74 20 21 0a 20 50 6f 69 6e 74 65 72 20 73 68 |ut !. Pointer sh| 000035e0 61 70 65 20 63 68 61 6e 67 65 20 65 76 65 6e 74 |ape change event| 000035f0 20 6e 65 65 64 65 64 0a 20 49 6d 70 6c 65 6d 65 | needed. Impleme| 00003600 6e 74 20 53 74 72 6f 6e 67 48 6c 70 20 73 79 73 |nt StrongHlp sys| 00003610 74 65 6d 20 28 73 68 65 6c 6c 5f 49 6e 73 74 61 |tem (shell_Insta| 00003620 6c 6c 53 74 72 6f 6e 67 48 6c 70 29 0a 20 43 68 |llStrongHlp). Ch| 00003630 65 63 6b 20 6f 75 74 20 70 6f 73 73 69 62 69 6c |eck out possibil| 00003640 69 74 79 20 6f 66 20 49 4e 53 54 41 4c 4c 69 6e |ity of INSTALLin| 00003650 67 20 45 76 6e 74 53 68 65 6c 6c 20 6c 69 62 72 |g EvntShell libr| 00003660 61 72 79 0a 20 41 75 74 6f 73 63 72 6f 6c 6c 20 |ary. Autoscroll | 00003670 68 61 6e 64 6c 65 72 20 77 68 65 6e 20 64 72 61 |handler when dra| 00003680 67 67 69 6e 67 20 77 69 74 68 69 6e 20 61 20 77 |gging within a w| 00003690 69 6e 64 6f 77 0a 4a 61 6e 2d 48 65 72 6d 61 6e |indow.Jan-Herman| 000036a0 20 42 75 69 6e 69 6e 67 0a 4a 61 6e 2d 48 65 72 | Buining.Jan-Her| 000036b0 6d 61 6e 20 42 75 69 6e 69 6e 67 20 20 20 20 20 |man Buining | 000036c0 20 20 41 63 6f 72 6e 20 42 42 53 20 3a 20 20 20 | Acorn BBS : | 000036d0 20 28 30 32 30 29 36 36 33 31 38 34 39 0a 53 6f | (020)6631849.So| 000036e0 65 6e 64 61 73 74 72 61 61 74 20 31 33 33 20 20 |endastraat 133 | 000036f0 20 20 20 20 20 20 20 20 48 75 63 6f 20 42 42 53 | Huco BBS| 00003700 20 3a 20 20 20 20 28 30 31 38 30 34 29 33 30 37 | : (01804)307| 00003710 38 35 0a 39 37 31 35 20 4e 50 20 47 72 6f 6e 69 |85.9715 NP Groni| 00003720 6e 67 65 6e 20 20 20 20 20 20 4c 61 20 4c 75 6e |ngen La Lun| 00003730 61 20 42 42 53 20 3a 20 20 20 20 28 30 32 35 39 |a BBS : (0259| 00003740 33 29 34 31 38 39 31 0a 28 30 35 30 29 37 33 35 |3)41891.(050)735| 00003750 32 32 38 0a 54 68 65 20 4e 65 74 68 65 72 6c 61 |228.The Netherla| 00003760 6e 64 73 20 20 20 20 20 20 20 20 20 20 20 20 20 |nds | 00003770 20 45 75 6e 65 74 20 3a 20 6a 68 62 40 6e 65 61 | Eunet : jhb@nea| 00003780 62 62 73 2e 55 55 43 50 0a 0a 54 68 61 6e 6b 73 |bbs.UUCP..Thanks| 00003790 20 61 72 65 20 61 6c 73 6f 20 64 75 65 20 74 6f | are also due to| 000037a0 20 74 68 65 20 61 62 6f 76 65 20 66 6f 72 20 68 | the above for h| 000037b0 69 73 20 57 41 53 50 20 61 70 70 6c 69 63 61 74 |is WASP applicat| 000037c0 69 6f 6e 0a 73 68 65 6c 6c 20 77 69 74 68 6f 75 |ion.shell withou| 000037d0 74 20 77 68 69 63 68 20 49 20 77 6f 75 6c 64 20 |t which I would | 000037e0 68 61 76 65 20 6e 65 76 65 72 20 66 69 67 75 72 |have never figur| 000037f0 65 64 20 6f 75 74 20 68 6f 77 0a 74 6f 20 64 6f |ed out how.to do| 00003800 20 52 41 4d 20 66 69 6c 65 20 74 72 61 6e 73 66 | RAM file transf| 00003810 65 72 73 2e 20 41 6e 20 65 78 63 65 6c 6c 65 6e |ers. An excellen| 00003820 74 20 70 69 65 63 65 20 6f 66 0a 70 72 6f 67 72 |t piece of.progr| 00003830 61 6d 6d 69 6e 67 2c 20 62 75 74 20 61 20 6c 69 |amming, but a li| 00003840 74 74 6c 65 20 6c 69 6d 69 74 65 64 20 66 6f 72 |ttle limited for| 00003850 20 6d 79 20 74 61 73 74 65 2e 44 61 76 69 64 20 | my taste.David | 00003860 42 72 65 61 6b 77 65 6c 6c 0a 44 61 76 69 64 20 |Breakwell.David | 00003870 42 72 65 61 6b 77 65 6c 6c 0a 32 32 20 43 6f 62 |Breakwell.22 Cob| 00003880 73 20 57 61 79 0a 4e 65 77 20 48 61 77 2c 0a 41 |s Way.New Haw,.A| 00003890 64 64 6c 65 73 74 6f 6e 65 0a 53 75 72 72 65 79 |ddlestone.Surrey| 000038a0 0a 45 4e 47 4c 41 4e 44 0a 0a 53 68 6f 75 6c 64 |.ENGLAND..Should| 000038b0 20 62 65 20 67 65 74 74 69 6e 67 20 6d 6f 73 74 | be getting most| 000038c0 0a 6f 66 20 74 68 65 20 63 72 65 64 69 74 20 62 |.of the credit b| 000038d0 65 63 61 75 73 65 20 61 73 0a 66 61 72 20 61 73 |ecause as.far as| 000038e0 20 49 20 6b 6e 6f 77 20 68 65 20 68 61 64 20 74 | I know he had t| 000038f0 68 65 0a 69 64 65 61 20 69 6e 20 74 68 65 20 66 |he.idea in the f| 00003900 69 72 73 74 20 70 6c 61 63 65 2e 0a 48 65 20 70 |irst place..He p| 00003910 72 6f 76 69 64 65 64 20 6d 65 20 77 69 74 68 20 |rovided me with | 00003920 61 20 63 6f 70 79 0a 6f 66 20 61 6e 20 65 61 72 |a copy.of an ear| 00003930 6c 79 20 76 65 72 73 69 6f 6e 20 6f 66 20 68 69 |ly version of hi| 00003940 73 0a 61 70 70 6c 69 63 61 74 69 6f 6e 20 77 68 |s.application wh| 00003950 69 63 68 20 20 77 61 73 20 6d 75 63 68 0a 62 65 |ich was much.be| 00003960 74 74 65 72 20 63 6f 64 65 64 20 74 68 61 6e 20 |tter coded than | 00003970 6d 69 6e 65 20 62 75 74 0a 69 6e 63 6f 6d 70 6c |mine but.incompl| 00003980 65 74 65 2c 20 73 6f 20 49 20 63 61 6d 65 20 75 |ete, so I came u| 00003990 70 0a 77 69 74 68 20 6d 79 20 6f 77 6e 20 61 74 |p.with my own at| 000039a0 74 65 6d 70 74 2e 47 75 74 74 6f 72 6d 20 27 41 |tempt.Guttorm 'A| 000039b0 72 6d 73 74 72 6f 6e 67 27 20 56 69 6b 0a 47 75 |rmstrong' Vik.Gu| 000039c0 74 74 6f 72 6d 20 27 41 72 6d 73 74 72 6f 6e 67 |ttorm 'Armstrong| 000039d0 27 20 56 69 6b 0a 48 f8 6c 62 65 6b 6b 65 6e 20 |' Vik.H.lbekken | 000039e0 32 30 38 0a 35 32 36 32 20 41 72 6e 61 74 76 65 |208.5262 Arnatve| 000039f0 69 74 0a 4e 4f 52 57 41 59 0a 0a 50 72 6f 76 69 |it.NORWAY..Provi| 00003a00 64 65 72 20 6f 66 20 53 74 72 6f 6e 67 45 44 32 |der of StrongED2| 00003a10 20 77 68 69 63 68 20 77 61 73 0a 75 73 65 64 20 | which was.used | 00003a20 66 6f 72 20 64 65 76 65 6c 6f 70 69 6e 67 20 74 |for developing t| 00003a30 68 65 20 6c 69 62 72 61 72 79 0a 63 6f 64 65 2c |he library.code,| 00003a40 20 61 6e 64 20 53 74 72 6f 6e 67 48 6c 70 20 77 | and StrongHlp w| 00003a50 68 69 63 68 20 61 6c 6c 6f 77 73 0a 74 6f 20 72 |hich allows.to r| 00003a60 65 61 64 20 74 68 69 73 20 73 6f 20 6e 69 63 65 |ead this so nice| 00003a70 6c 79 2e 0a 0a 4e 6f 74 65 20 74 68 61 74 20 53 |ly...Note that S| 00003a80 74 72 6f 6e 67 45 44 2f 53 74 72 6f 6e 67 48 6c |trongED/StrongHl| 00003a90 70 20 61 72 65 0a 6e 6f 77 20 63 6f 6d 6d 65 72 |p are.now commer| 00003aa0 63 69 61 6c 20 70 72 6f 64 75 63 74 73 20 61 76 |cial products av| 00003ab0 61 69 6c 61 62 6c 65 0a 66 72 6f 6d 20 53 74 61 |ailable.from Sta| 00003ac0 6c 6c 69 6f 6e 20 53 6f 66 74 77 61 72 65 2e 43 |llion Software.C| 00003ad0 72 65 64 69 74 73 0a 41 20 73 70 65 63 69 61 6c |redits.A special| 00003ae0 20 6d 65 6e 74 69 6f 6e 20 66 6f 72 20 61 6c 6c | mention for all| 00003af0 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 | the contributor| 00003b00 73 20 28 68 6f 77 65 76 65 72 0a 75 6e 77 69 74 |s (however.unwit| 00003b10 74 69 6e 67 6c 79 21 29 20 74 6f 20 74 68 65 20 |tingly!) to the | 00003b20 45 76 6e 74 53 68 65 6c 6c 20 6c 69 62 72 61 72 |EvntShell librar| 00003b30 79 2e 0a 0a 23 54 61 62 6c 65 20 36 20 32 34 0a |y...#Table 6 24.| 00003b40 20 20 20 20 3c 44 61 76 69 64 20 42 72 65 61 6b | <David Break| 00003b50 77 65 6c 6c 20 20 20 20 20 20 3d 3e 42 72 65 61 |well =>Brea| 00003b60 6b 77 65 6c 6c 3e 0a 20 20 20 20 3c 4a 61 6e 2d |kwell>. <Jan-| 00003b70 48 65 72 6d 61 6e 20 42 75 69 6e 69 6e 67 20 20 |Herman Buining | 00003b80 20 3d 3e 42 75 69 6e 69 6e 67 3e 0a 20 20 20 20 | =>Buining>. | 00003b90 3c 53 69 6d 6f 6e 20 48 75 6e 74 69 6e 67 64 6f |<Simon Huntingdo| 00003ba0 6e 20 20 20 20 20 3d 3e 48 75 6e 74 69 6e 67 64 |n =>Huntingd| 00003bb0 6f 6e 3e 0a 20 20 20 20 3c 41 6c 65 78 20 50 65 |on>. <Alex Pe| 00003bc0 74 72 6f 76 20 20 20 20 20 20 20 20 20 20 3d 3e |trov =>| 00003bd0 50 65 74 72 6f 76 3e 0a 20 20 20 20 3c 52 6f 62 |Petrov>. <Rob| 00003be0 65 72 74 20 53 65 61 67 6f 20 20 20 20 20 20 20 |ert Seago | 00003bf0 20 20 3d 3e 53 65 61 67 6f 3e 0a 20 20 20 20 3c | =>Seago>. <| 00003c00 52 69 73 63 20 55 73 65 72 20 20 20 20 20 20 20 |Risc User | 00003c10 20 20 20 20 20 3d 3e 52 69 73 63 55 73 65 72 3e | =>RiscUser>| 00003c20 0a 20 20 20 20 3c 4a 6f 72 69 73 20 52 d6 6c 69 |. <Joris R.li| 00003c30 6e 67 20 20 20 20 20 20 20 20 20 3d 3e 6a 6f 72 |ng =>jor| 00003c40 69 73 3e 0a 20 20 20 20 3c 43 79 20 42 6f 6f 6b |is>. <Cy Book| 00003c50 65 72 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e |er =>| 00003c60 42 6f 6f 6b 65 72 3e 0a 20 20 20 20 3c 47 75 74 |Booker>. <Gut| 00003c70 74 6f 72 6d 20 56 69 6b 20 20 20 20 20 20 20 20 |torm Vik | 00003c80 20 20 3d 3e 56 69 6b 3e 0a 20 20 20 20 3c 4f 6c | =>Vik>. <Ol| 00003c90 61 66 20 4b 72 75 6d 6e 6f 77 20 20 20 20 20 20 |af Krumnow | 00003ca0 20 20 20 3d 3e 4b 72 75 6d 6e 6f 77 3e 0a 20 20 | =>Krumnow>. | 00003cb0 20 20 3c 48 65 72 62 65 72 74 20 7a 75 72 20 4e | <Herbert zur N| 00003cc0 65 64 64 65 6e 20 20 20 3d 3e 4e 65 64 64 65 6e |edden =>Nedden| 00003cd0 3e 0a 23 45 6e 64 54 61 62 6c 65 20 20 50 52 4f |>.#EndTable PRO| 00003ce0 43 73 68 65 6c 6c 5f 4f 70 65 6e 57 69 6e 64 6f |Cshell_OpenWindo| 00003cf0 77 28 29 0a 50 61 72 61 6d 73 20 3d 3e 20 20 20 |w().Params => | 00003d00 20 20 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 | . int | 00003d10 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 0a 20 20 |window handle. | 00003d20 20 20 20 20 20 20 20 69 6e 74 20 66 75 6c 6c 20 | int full | 00003d30 66 6c 61 67 0a 20 20 20 20 20 20 20 20 20 69 6e |flag. in| 00003d40 74 20 66 72 6f 6e 74 20 66 6c 61 67 0a 0a 41 6e |t front flag..An| 00003d50 79 20 70 61 6e 65 73 20 61 74 74 61 63 68 65 64 |y panes attached| 00003d60 20 74 6f 20 74 68 65 20 77 69 6e 64 6f 77 20 77 | to the window w| 00003d70 69 74 68 0a 3c 50 52 4f 43 73 68 65 6c 6c 5f 41 |ith.<PROCshell_A| 00003d80 74 74 61 63 68 50 61 6e 65 3e 20 77 69 6c 6c 20 |ttachPane> will | 00003d90 62 65 20 6f 70 65 6e 65 64 0a 61 75 74 6f 6d 61 |be opened.automa| 00003da0 74 69 63 61 6c 6c 79 2e 0a 0a 4c 69 62 72 61 72 |tically...Librar| 00003db0 79 20 47 72 6f 75 70 20 3d 5c 3e 20 3c 57 69 6e |y Group =\> <Win| 00003dc0 64 6f 77 73 3d 3e 4c 69 62 47 72 6f 75 70 57 69 |dows=>LibGroupWi| 00003dd0 6e 64 6f 77 73 3e 50 52 4f 43 73 68 65 6c 6c 5f |ndows>PROCshell_| 00003de0 43 6c 6f 73 65 57 69 6e 64 6f 77 28 29 0a 50 61 |CloseWindow().Pa| 00003df0 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 |rams =>. | 00003e00 20 69 6e 74 20 77 69 6e 64 6f 77 20 68 61 6e 64 | int window hand| 00003e10 6c 65 0a 0a 41 6e 79 20 70 61 6e 65 73 20 61 74 |le..Any panes at| 00003e20 74 61 63 68 65 64 20 74 6f 20 74 68 65 20 77 69 |tached to the wi| 00003e30 6e 64 6f 77 20 77 69 74 68 0a 3c 50 52 4f 43 73 |ndow with.<PROCs| 00003e40 68 65 6c 6c 5f 41 74 74 61 63 68 50 61 6e 65 3e |hell_AttachPane>| 00003e50 20 77 69 6c 6c 20 62 65 20 63 6c 6f 73 65 64 0a | will be closed.| 00003e60 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2e 0a 0a |automatically...| 00003e70 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e |Library Group =>| 00003e80 20 3c 57 69 6e 64 6f 77 73 3d 3e 4c 69 62 47 72 | <Windows=>LibGr| 00003e90 6f 75 70 57 69 6e 64 6f 77 73 3e 50 52 4f 43 73 |oupWindows>PROCs| 00003ea0 68 65 6c 6c 5f 49 63 6f 6e 62 61 72 53 65 74 54 |hell_IconbarSetT| 00003eb0 65 78 74 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a |ext().Params =>.| 00003ec0 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 69 6e | int win| 00003ed0 64 6f 77 20 68 61 6e 64 6c 65 20 20 20 20 20 0a |dow handle .| 00003ee0 20 20 20 20 20 20 20 20 20 69 6e 74 20 69 63 6f | int ico| 00003ef0 6e 20 68 61 6e 64 6c 65 0a 20 20 20 20 20 20 20 |n handle. | 00003f00 20 20 73 74 72 20 74 65 78 74 20 75 6e 64 65 72 | str text under| 00003f10 20 69 63 6f 6e 0a 0a 4c 69 62 72 61 72 79 20 47 | icon..Library G| 00003f20 72 6f 75 70 20 3d 3e 20 3c 49 63 6f 6e 73 3d 3e |roup => <Icons=>| 00003f30 4c 69 62 47 72 6f 75 70 49 63 6f 6e 73 3e 50 52 |LibGroupIcons>PR| 00003f40 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 50 75 74 44 |OCshell_IconPutD| 00003f50 61 74 61 28 29 0a 50 61 72 61 6d 73 20 3d 3e 20 |ata().Params => | 00003f60 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 69 |. int wi| 00003f70 6e 64 6f 77 20 68 61 6e 64 6c 65 20 0a 20 20 20 |ndow handle . | 00003f80 20 20 20 20 20 20 69 6e 74 20 69 63 6f 6e 20 68 | int icon h| 00003f90 61 6e 64 6c 65 0a 20 20 20 20 20 20 20 20 20 73 |andle. s| 00003fa0 74 72 20 74 65 78 74 20 74 6f 20 69 6e 73 65 72 |tr text to inser| 00003fb0 74 20 69 6e 74 6f 20 69 63 6f 6e 0a 20 20 20 20 |t into icon. | 00003fc0 20 20 20 20 20 69 6e 74 20 72 65 64 72 61 77 20 | int redraw | 00003fd0 66 6c 61 67 0a 0a 41 6e 20 65 72 72 6f 72 20 69 |flag..An error i| 00003fe0 73 20 67 65 6e 65 72 61 74 65 64 20 69 66 20 74 |s generated if t| 00003ff0 68 65 20 74 65 78 74 20 69 73 20 74 6f 6f 0a 6c |he text is too.l| 00004000 6f 6e 67 20 74 6f 20 66 69 74 20 69 6e 20 74 68 |ong to fit in th| 00004010 65 20 69 63 6f 6e 2e 0a 0a 49 66 20 74 68 65 20 |e icon...If the | 00004020 72 65 64 72 61 77 20 66 6c 61 67 20 69 73 20 54 |redraw flag is T| 00004030 52 55 45 20 77 69 6d 70 20 70 6f 6c 6c 20 69 73 |RUE wimp poll is| 00004040 0a 63 61 6c 6c 65 64 20 69 6d 6d 65 64 69 61 74 |.called immediat| 00004050 65 6c 79 20 74 6f 20 75 70 64 61 74 65 20 74 68 |ely to update th| 00004060 65 20 69 63 6f 6e 0a 63 6f 6e 74 65 6e 74 73 2e |e icon.contents.| 00004070 20 4e 6f 74 65 20 74 68 61 74 20 69 66 20 74 68 | Note that if th| 00004080 65 20 77 69 6e 64 6f 77 20 69 73 20 6e 6f 74 0a |e window is not.| 00004090 6f 70 65 6e 20 28 66 6f 72 20 65 78 61 6d 70 6c |open (for exampl| 000040a0 65 20 69 66 20 79 6f 75 20 61 72 65 20 63 61 6c |e if you are cal| 000040b0 6c 69 6e 67 20 74 68 69 73 0a 72 6f 75 74 69 6e |ling this.routin| 000040c0 65 20 69 6e 20 61 20 70 72 65 2d 6f 70 65 6e 20 |e in a pre-open | 000040d0 66 75 6e 63 74 69 6f 6e 29 20 74 68 65 6e 20 74 |function) then t| 000040e0 68 65 0a 72 65 64 72 61 77 20 66 6c 61 67 20 73 |he.redraw flag s| 000040f0 68 6f 75 6c 64 20 62 65 20 46 41 4c 53 45 20 61 |hould be FALSE a| 00004100 73 20 74 68 65 20 77 68 6f 6c 65 0a 77 69 6e 64 |s the whole.wind| 00004110 6f 77 20 77 69 6c 6c 20 62 65 20 72 65 64 72 61 |ow will be redra| 00004120 77 6e 20 77 68 65 6e 20 69 74 20 69 73 20 6f 70 |wn when it is op| 00004130 65 6e 65 64 2e 0a 0a 4c 69 62 72 61 72 79 20 47 |ened...Library G| 00004140 72 6f 75 70 20 3d 5c 3e 20 3c 49 63 6f 6e 73 3d |roup =\> <Icons=| 00004150 3e 4c 69 62 47 72 6f 75 70 49 63 6f 6e 73 3e 50 |>LibGroupIcons>P| 00004160 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 52 65 64 |ROCshell_IconRed| 00004170 72 61 77 28 29 0a 50 61 72 61 6d 73 20 3d 3e 20 |raw().Params => | 00004180 20 20 20 0a 20 20 20 20 20 20 20 20 20 69 6e 74 | . int| 00004190 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 20 20 | window handle | 000041a0 20 20 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 | . int | 000041b0 69 63 6f 6e 20 68 61 6e 64 6c 65 0a 0a 46 6f 72 |icon handle..For| 000041c0 63 65 20 61 20 72 65 64 72 61 77 20 6f 66 20 74 |ce a redraw of t| 000041d0 68 65 20 73 63 72 65 65 6e 0a 61 72 65 61 20 63 |he screen.area c| 000041e0 6f 76 65 72 65 64 20 62 79 20 74 68 65 20 67 69 |overed by the gi| 000041f0 76 65 6e 20 69 63 6f 6e 0a 28 69 6e 63 6c 75 64 |ven icon.(includ| 00004200 69 6e 67 20 61 6e 79 20 33 44 20 62 6f 72 64 65 |ing any 3D borde| 00004210 72 73 29 2e 0a 0a 4c 69 62 72 61 72 79 20 47 72 |rs)...Library Gr| 00004220 6f 75 70 20 3d 3e 20 3c 49 63 6f 6e 73 3d 3e 4c |oup => <Icons=>L| 00004230 69 62 47 72 6f 75 70 49 63 6f 6e 73 3e 50 52 4f |ibGroupIcons>PRO| 00004240 43 73 68 65 6c 6c 5f 49 63 6f 6e 50 75 74 56 61 |Cshell_IconPutVa| 00004250 6c 69 64 61 74 69 6f 6e 28 29 0a 50 61 72 61 6d |lidation().Param| 00004260 73 20 3d 3e 20 20 20 20 20 20 0a 20 20 20 20 20 |s => . | 00004270 20 20 20 20 69 6e 74 20 77 69 6e 64 6f 77 20 68 | int window h| 00004280 61 6e 64 6c 65 20 20 20 20 20 20 0a 20 20 20 20 |andle . | 00004290 20 20 20 20 20 69 6e 74 20 69 63 6f 6e 20 68 61 | int icon ha| 000042a0 6e 64 6c 65 0a 20 20 20 20 20 20 20 20 20 73 74 |ndle. st| 000042b0 72 20 6e 65 77 20 3c 76 61 6c 69 64 61 74 69 6f |r new <validatio| 000042c0 6e 20 73 74 72 69 6e 67 3d 3e 53 57 49 2e 77 69 |n string=>SWI.wi| 000042d0 6d 70 5f 76 61 6c 69 64 61 74 69 6f 6e 73 74 72 |mp_validationstr| 000042e0 69 6e 67 3e 0a 0a 53 65 65 20 61 6c 73 6f 20 3c |ing>..See also <| 000042f0 46 4e 73 68 65 6c 6c 5f 49 63 6f 6e 47 65 74 56 |FNshell_IconGetV| 00004300 61 6c 69 64 61 74 69 6f 6e 3e 2e 0a 0a 4c 69 62 |alidation>...Lib| 00004310 72 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 49 |rary Group => <I| 00004320 63 6f 6e 73 3d 3e 4c 69 62 47 72 6f 75 70 49 63 |cons=>LibGroupIc| 00004330 6f 6e 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 63 |ons>PROCshell_Ic| 00004340 6f 6e 53 65 6c 65 63 74 28 29 0a 50 61 72 61 6d |onSelect().Param| 00004350 73 20 3d 3e 20 20 20 20 20 20 20 20 0a 20 20 20 |s => . | 00004360 20 20 20 20 20 20 69 6e 74 20 77 69 6e 64 6f 77 | int window| 00004370 20 68 61 6e 64 6c 65 20 20 20 20 20 20 20 20 0a | handle .| 00004380 20 20 20 20 20 20 20 20 20 69 6e 74 20 69 63 6f | int ico| 00004390 6e 20 68 61 6e 64 6c 65 0a 0a 4d 61 6b 65 20 74 |n handle..Make t| 000043a0 68 65 20 73 70 65 63 69 66 69 65 64 20 69 63 6f |he specified ico| 000043b0 6e 20 73 65 6c 65 63 74 65 64 2e 0a 0a 4c 69 62 |n selected...Lib| 000043c0 72 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 49 |rary Group => <I| 000043d0 63 6f 6e 73 3d 3e 4c 69 62 47 72 6f 75 70 49 63 |cons=>LibGroupIc| 000043e0 6f 6e 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 63 |ons>PROCshell_Ic| 000043f0 6f 6e 44 65 73 65 6c 65 63 74 28 29 0a 50 61 72 |onDeselect().Par| 00004400 61 6d 73 20 3d 3e 20 20 20 20 20 20 20 20 20 0a |ams => .| 00004410 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 69 6e | int win| 00004420 64 6f 77 20 68 61 6e 64 6c 65 20 20 20 20 20 20 |dow handle | 00004430 20 20 20 0a 20 20 20 20 20 20 20 20 20 69 6e 74 | . int| 00004440 20 69 63 6f 6e 20 68 61 6e 64 6c 65 0a 0a 4c 69 | icon handle..Li| 00004450 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c |brary Group => <| 00004460 49 63 6f 6e 73 3d 3e 4c 69 62 47 72 6f 75 70 49 |Icons=>LibGroupI| 00004470 63 6f 6e 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 |cons>PROCshell_I| 00004480 63 6f 6e 55 6e 73 65 6c 65 63 74 61 62 6c 65 28 |conUnselectable(| 00004490 29 0a 50 61 72 61 6d 73 20 3d 3e 20 20 20 20 20 |).Params => | 000044a0 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 69 | . i| 000044b0 6e 74 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 |nt window handle| 000044c0 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 | . | 000044d0 20 20 20 20 69 6e 74 20 69 63 6f 6e 20 68 61 6e | int icon han| 000044e0 64 6c 65 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f |dle..Library Gro| 000044f0 75 70 20 3d 3e 20 3c 49 63 6f 6e 73 3d 3e 4c 69 |up => <Icons=>Li| 00004500 62 47 72 6f 75 70 49 63 6f 6e 73 3e 50 52 4f 43 |bGroupIcons>PROC| 00004510 73 68 65 6c 6c 5f 49 63 6f 6e 53 65 74 42 47 43 |shell_IconSetBGC| 00004520 6f 6c 6f 75 72 28 29 0a 50 61 72 61 6d 73 20 3d |olour().Params =| 00004530 3e 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 |> . | 00004540 20 20 20 20 20 20 69 6e 74 20 77 69 6e 64 6f 77 | int window| 00004550 20 68 61 6e 64 6c 65 20 20 20 20 20 20 20 20 20 | handle | 00004560 20 20 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 | . int | 00004570 69 63 6f 6e 20 68 61 6e 64 6c 65 20 0a 20 20 20 |icon handle . | 00004580 20 20 20 20 20 20 69 6e 74 20 62 61 63 6b 67 72 | int backgr| 00004590 6f 75 6e 64 20 63 6f 6c 6f 75 72 0a 0a 41 6e 20 |ound colour..An | 000045a0 65 72 72 6f 72 20 69 73 20 67 65 6e 65 72 61 74 |error is generat| 000045b0 65 64 20 69 66 20 74 68 65 20 63 6f 6c 6f 75 72 |ed if the colour| 000045c0 0a 6e 75 6d 62 65 72 20 69 73 20 6f 75 74 73 69 |.number is outsi| 000045d0 64 65 20 74 68 65 20 72 61 6e 67 65 20 30 2d 31 |de the range 0-1| 000045e0 35 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 3c 50 52 |5...See also <PR| 000045f0 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 53 65 74 46 |OCshell_IconSetF| 00004600 47 43 6f 6c 6f 75 72 3e 2e 0a 0a 4c 69 62 72 61 |GColour>...Libra| 00004610 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 49 63 6f |ry Group => <Ico| 00004620 6e 73 3d 3e 4c 69 62 47 72 6f 75 70 49 63 6f 6e |ns=>LibGroupIcon| 00004630 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e |s>PROCshell_Icon| 00004640 53 65 74 46 47 43 6f 6c 6f 75 72 28 29 0a 50 61 |SetFGColour().Pa| 00004650 72 61 6d 73 20 3d 3e 20 20 20 20 20 20 20 20 20 |rams => | 00004660 20 20 20 0a 20 20 20 20 20 20 20 20 20 69 6e 74 | . int| 00004670 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 20 20 | window handle | 00004680 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 | . | 00004690 20 20 20 20 69 6e 74 20 69 63 6f 6e 20 68 61 6e | int icon han| 000046a0 64 6c 65 20 20 0a 20 20 20 20 20 20 20 20 20 69 |dle . i| 000046b0 6e 74 20 66 6f 72 65 67 72 6f 75 6e 64 20 63 6f |nt foreground co| 000046c0 6c 6f 75 72 0a 0a 41 6e 20 65 72 72 6f 72 20 69 |lour..An error i| 000046d0 73 20 67 65 6e 65 72 61 74 65 64 20 69 66 20 74 |s generated if t| 000046e0 68 65 20 63 6f 6c 6f 75 72 0a 6e 75 6d 62 65 72 |he colour.number| 000046f0 20 69 73 20 6f 75 74 73 69 64 65 20 74 68 65 20 | is outside the | 00004700 72 61 6e 67 65 20 30 2d 31 35 2e 0a 0a 53 65 65 |range 0-15...See| 00004710 20 61 6c 73 6f 20 3c 50 52 4f 43 73 68 65 6c 6c | also <PROCshell| 00004720 5f 49 63 6f 6e 53 65 74 42 47 43 6f 6c 6f 75 72 |_IconSetBGColour| 00004730 3e 2e 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 |>...Library Grou| 00004740 70 20 3d 3e 20 3c 49 63 6f 6e 73 3d 3e 4c 69 62 |p => <Icons=>Lib| 00004750 47 72 6f 75 70 49 63 6f 6e 73 3e 50 52 4f 43 73 |GroupIcons>PROCs| 00004760 68 65 6c 6c 5f 43 61 72 65 74 53 65 74 50 6f 73 |hell_CaretSetPos| 00004770 69 74 69 6f 6e 28 29 0a 50 61 72 61 6d 73 20 3d |ition().Params =| 00004780 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 |> . | 00004790 20 20 20 20 20 20 20 20 69 6e 74 20 77 69 6e 64 | int wind| 000047a0 6f 77 20 68 61 6e 64 6c 65 20 20 20 20 20 20 20 |ow handle | 000047b0 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 | . | 000047c0 69 6e 74 20 69 63 6f 6e 20 68 61 6e 64 6c 65 0a |int icon handle.| 000047d0 20 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 6f | int x o| 000047e0 66 66 73 65 74 20 69 6e 20 69 63 6f 6e 20 28 75 |ffset in icon (u| 000047f0 73 75 61 6c 6c 79 20 2d 31 29 0a 20 20 20 20 20 |sually -1). | 00004800 20 20 20 20 69 6e 74 20 79 20 6f 66 66 73 65 74 | int y offset| 00004810 20 69 6e 20 69 63 6f 6e 20 28 75 73 75 61 6c 6c | in icon (usuall| 00004820 79 20 2d 31 29 0a 20 20 20 20 20 20 20 20 20 69 |y -1). i| 00004830 6e 74 20 68 65 69 67 68 74 20 28 75 73 75 61 6c |nt height (usual| 00004840 6c 79 20 2d 31 29 0a 20 20 20 20 20 20 20 20 20 |ly -1). | 00004850 69 6e 74 20 69 6e 64 65 78 0a 0a 41 6c 6c 6f 77 |int index..Allow| 00004860 73 20 74 68 65 20 63 61 72 65 74 20 74 6f 20 62 |s the caret to b| 00004870 65 20 70 6f 73 69 74 69 6f 6e 65 64 20 77 69 74 |e positioned wit| 00004880 68 69 6e 0a 61 6e 20 69 63 6f 6e 2e 20 74 68 65 |hin.an icon. the| 00004890 20 69 6e 64 65 78 20 70 61 72 61 6d 65 74 65 72 | index parameter| 000048a0 20 69 73 20 74 68 65 0a 6e 75 6d 62 65 72 20 6f | is the.number o| 000048b0 66 20 63 68 61 72 61 63 74 65 72 73 20 62 65 66 |f characters bef| 000048c0 6f 72 65 20 74 68 65 20 63 61 72 65 74 2e 0a 0a |ore the caret...| 000048d0 53 65 65 20 61 6c 73 6f 20 3c 50 52 4f 43 73 68 |See also <PROCsh| 000048e0 65 6c 6c 5f 43 61 72 65 74 53 65 74 52 69 67 68 |ell_CaretSetRigh| 000048f0 74 3e 2e 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f |t>...Library Gro| 00004900 75 70 20 3d 3e 20 3c 49 63 6f 6e 73 3d 3e 4c 69 |up => <Icons=>Li| 00004910 62 47 72 6f 75 70 49 63 6f 6e 73 3e 50 52 4f 43 |bGroupIcons>PROC| 00004920 73 68 65 6c 6c 5f 43 61 72 65 74 53 65 74 52 69 |shell_CaretSetRi| 00004930 67 68 74 28 29 0a 50 61 72 61 6d 73 20 3d 3e 20 |ght().Params => | 00004940 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 | . | 00004950 20 20 20 20 20 20 20 69 6e 74 20 77 69 6e 64 6f | int windo| 00004960 77 20 68 61 6e 64 6c 65 20 20 20 20 20 20 20 20 |w handle | 00004970 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 | . | 00004980 69 6e 74 20 69 63 6f 6e 20 68 61 6e 64 6c 65 0a |int icon handle.| 00004990 0a 50 6f 73 69 74 69 6f 6e 73 20 74 68 65 20 63 |.Positions the c| 000049a0 61 72 65 74 20 61 74 20 74 68 65 20 72 69 67 68 |aret at the righ| 000049b0 74 20 68 61 6e 64 0a 65 6e 64 20 6f 66 20 61 6e |t hand.end of an| 000049c0 79 20 74 65 78 74 20 69 6e 20 74 68 65 20 73 70 |y text in the sp| 000049d0 65 63 69 66 69 65 64 20 69 63 6f 6e 2e 0a 0a 53 |ecified icon...S| 000049e0 65 65 20 61 6c 73 6f 20 3c 50 52 4f 43 73 68 65 |ee also <PROCshe| 000049f0 6c 6c 5f 43 61 72 65 74 53 65 74 50 6f 73 69 74 |ll_CaretSetPosit| 00004a00 69 6f 6e 3e 2e 0a 0a 4c 69 62 72 61 72 79 20 47 |ion>...Library G| 00004a10 72 6f 75 70 20 3d 3e 20 3c 49 63 6f 6e 73 3d 3e |roup => <Icons=>| 00004a20 4c 69 62 47 72 6f 75 70 49 63 6f 6e 73 3e 49 63 |LibGroupIcons>Ic| 00004a30 6f 6e 73 0a 23 54 61 62 6c 65 20 31 33 20 32 30 |ons.#Table 13 20| 00004a40 0a 3c 49 63 6f 6e 62 61 72 20 20 20 20 20 20 20 |.<Iconbar | 00004a50 20 20 20 20 20 3d 3e 46 4e 73 68 65 6c 6c 5f 49 | =>FNshell_I| 00004a60 63 6f 6e 62 61 72 3e 0a 3c 49 63 6f 6e 62 61 72 |conbar>.<Iconbar| 00004a70 53 65 74 54 65 78 74 20 20 20 20 20 3d 3e 50 52 |SetText =>PR| 00004a80 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 62 61 72 53 |OCshell_IconbarS| 00004a90 65 74 54 65 78 74 3e 0a 3c 49 63 6f 6e 43 72 65 |etText>.<IconCre| 00004aa0 61 74 65 20 20 20 20 20 20 20 20 20 3d 3e 46 4e |ate =>FN| 00004ab0 73 68 65 6c 6c 5f 49 63 6f 6e 43 72 65 61 74 65 |shell_IconCreate| 00004ac0 3e 0a 3c 49 63 6f 6e 44 65 6c 65 74 65 20 20 20 |>.<IconDelete | 00004ad0 20 20 20 20 20 20 3d 3e 50 52 4f 43 73 68 65 6c | =>PROCshel| 00004ae0 6c 5f 49 63 6f 6e 44 65 6c 65 74 65 3e 0a 3c 49 |l_IconDelete>.<I| 00004af0 63 6f 6e 44 65 6c 65 74 65 32 20 20 20 20 20 20 |conDelete2 | 00004b00 20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 63 | =>PROCshell_Ic| 00004b10 6f 6e 44 65 6c 65 74 65 32 3e 0a 3c 49 63 6f 6e |onDelete2>.<Icon| 00004b20 44 65 73 65 6c 65 63 74 20 20 20 20 20 20 20 3d |Deselect =| 00004b30 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 44 |>PROCshell_IconD| 00004b40 65 73 65 6c 65 63 74 3e 0a 3c 49 63 6f 6e 44 65 |eselect>.<IconDe| 00004b50 73 65 6c 65 63 74 41 6c 6c 20 20 20 20 3d 3e 50 |selectAll =>P| 00004b60 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 44 65 73 |ROCshell_IconDes| 00004b70 65 6c 65 63 74 41 6c 6c 3e 0a 3c 49 63 6f 6e 47 |electAll>.<IconG| 00004b80 65 74 44 61 74 61 20 20 20 20 20 20 20 20 3d 3e |etData =>| 00004b90 46 4e 73 68 65 6c 6c 5f 49 63 6f 6e 47 65 74 44 |FNshell_IconGetD| 00004ba0 61 74 61 3e 0a 3c 49 63 6f 6e 47 65 74 43 6f 6d |ata>.<IconGetCom| 00004bb0 6d 61 6e 64 20 20 20 20 20 3d 3e 46 4e 73 68 65 |mand =>FNshe| 00004bc0 6c 6c 5f 49 63 6f 6e 47 65 74 43 6f 6d 6d 61 6e |ll_IconGetComman| 00004bd0 64 3e 0a 3c 49 63 6f 6e 47 65 74 56 61 6c 69 64 |d>.<IconGetValid| 00004be0 61 74 69 6f 6e 20 20 3d 3e 46 4e 73 68 65 6c 6c |ation =>FNshell| 00004bf0 5f 49 63 6f 6e 47 65 74 56 61 6c 69 64 61 74 69 |_IconGetValidati| 00004c00 6f 6e 3e 0a 3c 49 63 6f 6e 4d 6f 76 65 20 20 20 |on>.<IconMove | 00004c10 20 20 20 20 20 20 20 20 3d 3e 46 4e 73 68 65 6c | =>FNshel| 00004c20 6c 5f 49 63 6f 6e 4d 6f 76 65 3e 0a 3c 49 63 6f |l_IconMove>.<Ico| 00004c30 6e 4d 6f 76 65 32 20 20 20 20 20 20 20 20 20 20 |nMove2 | 00004c40 3d 3e 46 4e 73 68 65 6c 6c 5f 49 63 6f 6e 4d 6f |=>FNshell_IconMo| 00004c50 76 65 32 3e 0a 3c 49 63 6f 6e 4e 65 77 53 70 72 |ve2>.<IconNewSpr| 00004c60 69 74 65 20 20 20 20 20 20 3d 3e 46 4e 73 68 65 |ite =>FNshe| 00004c70 6c 6c 5f 49 63 6f 6e 4e 65 77 53 70 72 69 74 65 |ll_IconNewSprite| 00004c80 3e 0a 3c 49 63 6f 6e 50 75 74 44 61 74 61 20 20 |>.<IconPutData | 00004c90 20 20 20 20 20 20 3d 3e 50 52 4f 43 73 68 65 6c | =>PROCshel| 00004ca0 6c 5f 49 63 6f 6e 50 75 74 44 61 74 61 3e 0a 3c |l_IconPutData>.<| 00004cb0 49 63 6f 6e 50 75 74 56 61 6c 69 64 61 74 69 6f |IconPutValidatio| 00004cc0 6e 20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 |n =>PROCshell_I| 00004cd0 63 6f 6e 50 75 74 56 61 6c 69 64 61 74 69 6f 6e |conPutValidation| 00004ce0 3e 0a 3c 49 63 6f 6e 52 65 64 72 61 77 20 20 20 |>.<IconRedraw | 00004cf0 20 20 20 20 20 20 3d 3e 50 52 4f 43 73 68 65 6c | =>PROCshel| 00004d00 6c 5f 49 63 6f 6e 52 65 64 72 61 77 3e 0a 3c 49 |l_IconRedraw>.<I| 00004d10 63 6f 6e 52 65 73 69 7a 65 20 20 20 20 20 20 20 |conResize | 00004d20 20 20 3d 3e 46 4e 73 68 65 6c 6c 5f 49 63 6f 6e | =>FNshell_Icon| 00004d30 52 65 73 69 7a 65 3e 0a 3c 49 63 6f 6e 53 65 6c |Resize>.<IconSel| 00004d40 65 63 74 20 20 20 20 20 20 20 20 20 3d 3e 50 52 |ect =>PR| 00004d50 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 53 65 6c 65 |OCshell_IconSele| 00004d60 63 74 3e 0a 3c 49 63 6f 6e 53 65 6c 65 63 74 41 |ct>.<IconSelectA| 00004d70 6c 6c 20 20 20 20 20 20 3d 3e 50 52 4f 43 73 68 |ll =>PROCsh| 00004d80 65 6c 6c 5f 49 63 6f 6e 53 65 6c 65 63 74 41 6c |ell_IconSelectAl| 00004d90 6c 3e 0a 3c 49 63 6f 6e 53 65 74 20 20 20 20 20 |l>.<IconSet | 00004da0 20 20 20 20 20 20 20 3d 3e 50 52 4f 43 73 68 65 | =>PROCshe| 00004db0 6c 6c 5f 49 63 6f 6e 53 65 74 3e 0a 3c 49 63 6f |ll_IconSet>.<Ico| 00004dc0 6e 53 65 74 42 6f 72 64 65 72 20 20 20 20 20 20 |nSetBorder | 00004dd0 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e |=>PROCshell_Icon| 00004de0 53 65 74 42 6f 72 64 65 72 3e 0a 3c 49 63 6f 6e |SetBorder>.<Icon| 00004df0 53 65 74 42 47 43 6f 6c 6f 75 72 20 20 20 20 3d |SetBGColour =| 00004e00 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 53 |>PROCshell_IconS| 00004e10 65 74 42 47 43 6f 6c 6f 75 72 3e 0a 3c 49 63 6f |etBGColour>.<Ico| 00004e20 6e 53 65 74 42 75 74 74 6f 6e 54 79 70 65 20 20 |nSetButtonType | 00004e30 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e |=>PROCshell_Icon| 00004e40 53 65 74 42 75 74 74 6f 6e 54 79 70 65 3e 0a 3c |SetButtonType>.<| 00004e50 49 63 6f 6e 53 65 74 45 53 47 20 20 20 20 20 20 |IconSetESG | 00004e60 20 20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 | =>PROCshell_I| 00004e70 63 6f 6e 53 65 74 45 53 47 3e 0a 3c 49 63 6f 6e |conSetESG>.<Icon| 00004e80 53 65 74 46 69 6c 6c 65 64 20 20 20 20 20 20 3d |SetFilled =| 00004e90 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 53 |>PROCshell_IconS| 00004ea0 65 74 46 69 6c 6c 65 64 3e 0a 3c 49 63 6f 6e 53 |etFilled>.<IconS| 00004eb0 65 74 46 47 43 6f 6c 6f 75 72 20 20 20 20 3d 3e |etFGColour =>| 00004ec0 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 53 65 |PROCshell_IconSe| 00004ed0 74 46 47 43 6f 6c 6f 75 72 3e 0a 3c 49 63 6f 6e |tFGColour>.<Icon| 00004ee0 53 65 74 48 43 65 6e 74 72 65 64 20 20 20 20 3d |SetHCentred =| 00004ef0 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 53 |>PROCshell_IconS| 00004f00 65 74 48 43 65 6e 74 72 65 64 3e 0a 3c 49 63 6f |etHCentred>.<Ico| 00004f10 6e 53 65 74 4c 65 66 74 4a 75 73 74 20 20 20 20 |nSetLeftJust | 00004f20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e |=>PROCshell_Icon| 00004f30 53 65 74 4c 65 66 74 4a 75 73 74 3e 0a 3c 49 63 |SetLeftJust>.<Ic| 00004f40 6f 6e 53 65 74 52 69 67 68 74 4a 75 73 74 20 20 |onSetRightJust | 00004f50 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f | =>PROCshell_Ico| 00004f60 6e 53 65 74 52 69 67 68 74 4a 75 73 74 3e 0a 3c |nSetRightJust>.<| 00004f70 49 63 6f 6e 53 65 74 53 65 6c 65 63 74 65 64 20 |IconSetSelected | 00004f80 20 20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 | =>PROCshell_I| 00004f90 63 6f 6e 53 65 74 53 65 6c 65 63 74 65 64 3e 0a |conSetSelected>.| 00004fa0 3c 49 63 6f 6e 53 65 74 53 70 72 69 74 65 20 20 |<IconSetSprite | 00004fb0 20 20 20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f | =>PROCshell_| 00004fc0 49 63 6f 6e 53 65 74 53 70 72 69 74 65 3e 0a 3c |IconSetSprite>.<| 00004fd0 49 63 6f 6e 53 65 74 54 65 78 74 20 20 20 20 20 |IconSetText | 00004fe0 20 20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 | =>PROCshell_I| 00004ff0 63 6f 6e 53 65 74 54 65 78 74 3e 0a 3c 49 63 6f |conSetText>.<Ico| 00005000 6e 53 65 74 55 6e 73 65 6c 65 63 74 61 62 6c 65 |nSetUnselectable| 00005010 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e |=>PROCshell_Icon| 00005020 53 65 74 55 6e 73 65 6c 65 63 74 61 62 6c 65 3e |SetUnselectable>| 00005030 0a 3c 49 63 6f 6e 55 6e 73 65 6c 65 63 74 61 62 |.<IconUnselectab| 00005040 6c 65 20 20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c |le =>PROCshell| 00005050 5f 49 63 6f 6e 55 6e 73 65 6c 65 63 74 61 62 6c |_IconUnselectabl| 00005060 65 3e 0a 3c 49 63 6f 6e 53 65 74 56 43 65 6e 74 |e>.<IconSetVCent| 00005070 72 65 64 20 20 20 20 3d 3e 50 52 4f 43 73 68 65 |red =>PROCshe| 00005080 6c 6c 5f 49 63 6f 6e 53 65 74 56 43 65 6e 74 72 |ll_IconSetVCentr| 00005090 65 64 3e 0a 3c 49 73 49 63 6f 6e 53 65 6c 65 63 |ed>.<IsIconSelec| 000050a0 74 65 64 20 20 20 20 20 3d 3e 46 4e 73 68 65 6c |ted =>FNshel| 000050b0 6c 5f 49 73 49 63 6f 6e 53 65 6c 65 63 74 65 64 |l_IsIconSelected| 000050c0 3e 0a 0a 3c 43 61 72 65 74 53 65 74 50 6f 73 69 |>..<CaretSetPosi| 000050d0 74 69 6f 6e 20 20 20 3d 3e 50 52 4f 43 73 68 65 |tion =>PROCshe| 000050e0 6c 6c 5f 43 61 72 65 74 53 65 74 50 6f 73 69 74 |ll_CaretSetPosit| 000050f0 69 6f 6e 3e 0a 3c 43 61 72 65 74 53 65 74 52 69 |ion>.<CaretSetRi| 00005100 67 68 74 20 20 20 20 20 20 3d 3e 50 52 4f 43 73 |ght =>PROCs| 00005110 68 65 6c 6c 5f 43 61 72 65 74 53 65 74 52 69 67 |hell_CaretSetRig| 00005120 68 74 3e 0a 23 45 6e 64 54 61 62 6c 65 4d 65 6d |ht>.#EndTableMem| 00005130 6f 72 79 0a 3c 48 65 61 70 42 6c 6f 63 6b 45 78 |ory.<HeapBlockEx| 00005140 69 73 74 73 3d 3e 46 4e 73 68 65 6c 6c 5f 48 65 |ists=>FNshell_He| 00005150 61 70 42 6c 6f 63 6b 45 78 69 73 74 73 3e 0a 3c |apBlockExists>.<| 00005160 48 65 61 70 42 6c 6f 63 6b 45 78 74 65 6e 64 3d |HeapBlockExtend=| 00005170 3e 46 4e 73 68 65 6c 6c 5f 48 65 61 70 42 6c 6f |>FNshell_HeapBlo| 00005180 63 6b 45 78 74 65 6e 64 3e 0a 3c 48 65 61 70 42 |ckExtend>.<HeapB| 00005190 6c 6f 63 6b 46 65 74 63 68 20 3d 3e 46 4e 73 68 |lockFetch =>FNsh| 000051a0 65 6c 6c 5f 48 65 61 70 42 6c 6f 63 6b 46 65 74 |ell_HeapBlockFet| 000051b0 63 68 3e 0a 3c 48 65 61 70 42 6c 6f 63 6b 49 6e |ch>.<HeapBlockIn| 000051c0 66 6f 20 20 3d 3e 46 4e 73 68 65 6c 6c 5f 48 65 |fo =>FNshell_He| 000051d0 61 70 42 6c 6f 63 6b 49 6e 66 6f 3e 0a 3c 48 65 |apBlockInfo>.<He| 000051e0 61 70 42 6c 6f 63 6b 49 6e 69 74 20 20 3d 3e 50 |apBlockInit =>P| 000051f0 52 4f 43 73 68 65 6c 6c 5f 48 65 61 70 42 6c 6f |ROCshell_HeapBlo| 00005200 63 6b 49 6e 69 74 3e 0a 3c 48 65 61 70 42 6c 6f |ckInit>.<HeapBlo| 00005210 63 6b 52 65 74 75 72 6e 3d 3e 50 52 4f 43 73 68 |ckReturn=>PROCsh| 00005220 65 6c 6c 5f 48 65 61 70 42 6c 6f 63 6b 52 65 74 |ell_HeapBlockRet| 00005230 75 72 6e 3e 0a 3c 48 65 61 70 4d 61 6e 61 67 65 |urn>.<HeapManage| 00005240 72 49 6e 69 74 3d 3e 50 52 4f 43 73 68 65 6c 6c |rInit=>PROCshell| 00005250 5f 48 65 61 70 4d 61 6e 61 67 65 72 49 6e 69 74 |_HeapManagerInit| 00005260 3e 0a 3c 4d 65 6d 46 69 6c 6c 20 20 20 20 20 20 |>.<MemFill | 00005270 20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 4d 65 | =>PROCshell_Me| 00005280 6d 46 69 6c 6c 3e 4d 65 6e 75 73 0a 3c 41 74 74 |mFill>Menus.<Att| 00005290 61 63 68 46 6f 6e 74 53 75 62 4d 65 6e 75 20 3d |achFontSubMenu =| 000052a0 3e 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 |>PROCshell_Attac| 000052b0 68 46 6f 6e 74 53 75 62 4d 65 6e 75 3e 0a 3c 41 |hFontSubMenu>.<A| 000052c0 74 74 61 63 68 4d 65 6e 75 20 20 20 20 20 20 20 |ttachMenu | 000052d0 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 | =>PROCshell_Att| 000052e0 61 63 68 4d 65 6e 75 3e 0a 3c 41 74 74 61 63 68 |achMenu>.<Attach| 000052f0 4d 65 6e 75 4d 61 6b 65 72 20 20 20 3d 3e 50 52 |MenuMaker =>PR| 00005300 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 4d 65 |OCshell_AttachMe| 00005310 6e 75 4d 61 6b 65 72 3e 0a 3c 41 74 74 61 63 68 |nuMaker>.<Attach| 00005320 53 75 62 4d 65 6e 75 20 20 20 20 20 3d 3e 50 52 |SubMenu =>PR| 00005330 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 53 75 |OCshell_AttachSu| 00005340 62 4d 65 6e 75 3e 0a 3c 4d 65 6e 75 41 64 64 20 |bMenu>.<MenuAdd | 00005350 20 20 20 20 20 20 20 20 20 20 3d 3e 46 4e 73 68 | =>FNsh| 00005360 65 6c 6c 5f 4d 65 6e 75 41 64 64 3e 0a 3c 4d 65 |ell_MenuAdd>.<Me| 00005370 6e 75 43 6f 6c 6f 75 72 73 20 20 20 20 20 20 20 |nuColours | 00005380 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 4d 65 6e 75 |=>PROCshell_Menu| 00005390 43 6f 6c 6f 75 72 73 3e 0a 3c 4d 65 6e 75 44 6f |Colours>.<MenuDo| 000053a0 74 74 65 64 20 20 20 20 20 20 20 20 3d 3e 50 52 |tted =>PR| 000053b0 4f 43 73 68 65 6c 6c 5f 4d 65 6e 75 44 6f 74 74 |OCshell_MenuDott| 000053c0 65 64 3e 0a 3c 4d 65 6e 75 4c 61 73 74 58 50 6f |ed>.<MenuLastXPo| 000053d0 73 20 20 20 20 20 20 3d 3e 46 4e 73 68 65 6c 6c |s =>FNshell| 000053e0 5f 4d 65 6e 75 4c 61 73 74 58 50 6f 73 3e 0a 3c |_MenuLastXPos>.<| 000053f0 4d 65 6e 75 4c 61 73 74 59 50 6f 73 20 20 20 20 |MenuLastYPos | 00005400 20 20 3d 3e 46 4e 73 68 65 6c 6c 5f 4d 65 6e 75 | =>FNshell_Menu| 00005410 4c 61 73 74 59 50 6f 73 3e 0a 3c 4d 65 6e 75 4e |LastYPos>.<MenuN| 00005420 65 77 20 20 20 20 20 20 20 20 20 20 20 3d 3e 46 |ew =>F| 00005430 4e 73 68 65 6c 6c 5f 4d 65 6e 75 4e 65 77 3e 0a |Nshell_MenuNew>.| 00005440 3c 4d 65 6e 75 50 75 74 44 61 74 61 20 20 20 20 |<MenuPutData | 00005450 20 20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f 4d | =>PROCshell_M| 00005460 65 6e 75 50 75 74 44 61 74 61 3e 0a 3c 4d 65 6e |enuPutData>.<Men| 00005470 75 54 69 63 6b 20 20 20 20 20 20 20 20 20 20 3d |uTick =| 00005480 3e 50 52 4f 43 73 68 65 6c 6c 5f 4d 65 6e 75 54 |>PROCshell_MenuT| 00005490 69 63 6b 3e 0a 3c 4d 65 6e 75 54 69 63 6b 4f 6e |ick>.<MenuTickOn| 000054a0 6c 79 31 20 20 20 20 20 3d 3e 50 52 4f 43 73 68 |ly1 =>PROCsh| 000054b0 65 6c 6c 5f 4d 65 6e 75 54 69 63 6b 4f 6e 6c 79 |ell_MenuTickOnly| 000054c0 31 3e 0a 3c 4d 65 6e 75 54 69 63 6b 4f 6e 6c 79 |1>.<MenuTickOnly| 000054d0 32 20 20 20 20 20 3d 3e 50 52 4f 43 73 68 65 6c |2 =>PROCshel| 000054e0 6c 5f 4d 65 6e 75 54 69 63 6b 4f 6e 6c 79 32 3e |l_MenuTickOnly2>| 000054f0 0a 3c 4d 65 6e 75 53 68 61 64 65 20 20 20 20 20 |.<MenuShade | 00005500 20 20 20 20 3d 3e 50 52 4f 43 73 68 65 6c 6c 5f | =>PROCshell_| 00005510 4d 65 6e 75 53 68 61 64 65 3e 0a 3c 4d 65 6e 75 |MenuShade>.<Menu| 00005520 57 72 69 74 61 62 6c 65 20 20 20 20 20 20 3d 3e |Writable =>| 00005530 50 52 4f 43 73 68 65 6c 6c 5f 4d 65 6e 75 57 72 |PROCshell_MenuWr| 00005540 69 74 61 62 6c 65 3e 0a 3c 4f 70 65 6e 4d 65 6e |itable>.<OpenMen| 00005550 75 20 20 20 20 20 20 20 20 20 20 3d 3e 50 52 4f |u =>PRO| 00005560 43 73 68 65 6c 6c 5f 4f 70 65 6e 4d 65 6e 75 3e |Cshell_OpenMenu>| 00005570 46 4e 73 68 65 6c 6c 5f 4d 65 6e 75 42 61 73 65 |FNshell_MenuBase| 00005580 0a 50 61 72 61 6d 73 20 20 3d 5c 3e 0a 20 20 20 |.Params =\>. | 00005590 20 20 20 20 20 20 20 4e 6f 6e 65 0a 0a 20 20 20 | None.. | 000055a0 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 | \<=. | 000055b0 20 20 20 69 6e 74 20 61 64 64 72 65 73 73 20 6f | int address o| 000055c0 66 20 6c 6f 61 64 65 64 20 6d 65 6e 75 20 66 69 |f loaded menu fi| 000055d0 6c 65 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 |le..Library Grou| 000055e0 70 20 3d 5c 3e 20 3c 4d 65 6e 75 73 3d 3e 4c 69 |p =\> <Menus=>Li| 000055f0 62 47 72 6f 75 70 4d 65 6e 75 73 3e 46 4e 73 68 |bGroupMenus>FNsh| 00005600 65 6c 6c 5f 4d 65 6e 75 53 74 72 69 6e 67 28 29 |ell_MenuString()| 00005610 0a 50 61 72 61 6d 73 20 3d 5c 3e 0a 20 20 20 20 |.Params =\>. | 00005620 20 20 20 20 20 73 74 72 20 6d 65 6e 75 20 74 65 | str menu te| 00005630 78 74 0a 0a 20 20 20 20 20 20 20 5c 3c 3d 0a 20 |xt.. \<=. | 00005640 20 20 20 20 20 20 20 20 73 74 72 20 6d 65 6e 75 | str menu| 00005650 20 74 65 78 74 20 30 20 74 65 72 6d 69 6e 61 74 | text 0 terminat| 00005660 65 64 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 |ed..Library Grou| 00005670 70 20 3d 5c 3e 20 3c 4d 65 6e 75 73 3d 3e 4c 69 |p =\> <Menus=>Li| 00005680 62 47 72 6f 75 70 4d 65 6e 75 73 3e 46 4e 73 68 |bGroupMenus>FNsh| 00005690 65 6c 6c 5f 48 65 61 70 42 6c 6f 63 6b 45 78 74 |ell_HeapBlockExt| 000056a0 65 6e 64 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a |end().Params =>.| 000056b0 20 20 20 20 20 20 20 20 20 69 6e 74 20 61 64 64 | int add| 000056c0 72 65 73 73 20 6f 66 20 68 65 61 70 20 62 6c 6f |ress of heap blo| 000056d0 63 6b 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 |ck. int | 000056e0 61 6d 6f 75 6e 74 20 74 6f 20 69 6e 63 72 65 61 |amount to increa| 000056f0 73 65 20 6f 72 20 64 65 63 72 65 61 73 65 20 62 |se or decrease b| 00005700 6c 6f 63 6b 20 73 69 7a 65 20 62 79 0a 20 20 20 |lock size by. | 00005710 20 20 20 20 20 20 20 20 20 20 28 2d 76 65 20 74 | (-ve t| 00005720 6f 20 64 65 63 72 65 61 73 65 29 0a 0a 20 20 20 |o decrease).. | 00005730 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 | \<=. | 00005740 20 69 6e 74 20 61 64 64 72 65 73 73 20 6f 66 20 | int address of | 00005750 68 65 61 70 20 62 6c 6f 63 6b 0a 0a 49 6e 63 72 |heap block..Incr| 00005760 65 61 73 65 73 20 6f 72 20 64 65 63 72 65 61 73 |eases or decreas| 00005770 65 73 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 |es the size of t| 00005780 68 65 20 67 69 76 65 6e 20 68 65 61 70 20 62 6c |he given heap bl| 00005790 6f 63 6b 0a 77 68 69 63 68 20 6d 75 73 74 20 68 |ock.which must h| 000057a0 61 76 65 20 62 65 65 6e 20 61 6c 6c 6f 63 61 74 |ave been allocat| 000057b0 65 64 20 77 69 74 68 20 3c 46 4e 73 68 65 6c 6c |ed with <FNshell| 000057c0 5f 48 65 61 70 42 6c 6f 63 6b 46 65 74 63 68 3e |_HeapBlockFetch>| 000057d0 2e 0a 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 |..Note that the | 000057e0 68 65 61 70 20 62 6c 6f 63 6b 20 6d 61 79 20 62 |heap block may b| 000057f0 65 20 6d 6f 76 65 64 20 74 6f 20 6d 61 6b 65 20 |e moved to make | 00005800 69 74 20 66 69 74 20 73 6f 20 79 6f 75 0a 73 68 |it fit so you.sh| 00005810 6f 75 6c 64 20 61 6c 77 61 79 73 20 75 73 65 20 |ould always use | 00005820 74 68 65 20 72 65 74 75 72 6e 65 64 20 76 61 6c |the returned val| 00005830 75 65 20 66 6f 72 20 74 68 65 20 68 65 61 70 20 |ue for the heap | 00005840 62 6c 6f 63 6b 0a 61 64 64 72 65 73 73 20 61 66 |block.address af| 00005850 74 65 72 20 74 68 69 73 20 63 61 6c 6c 2e 0a 0a |ter this call...| 00005860 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e |Library Group =>| 00005870 20 3c 4d 65 6d 6f 72 79 3d 3e 4c 69 62 47 72 6f | <Memory=>LibGro| 00005880 75 70 4d 65 6d 6f 72 79 3e 46 4e 73 68 65 6c 6c |upMemory>FNshell| 00005890 5f 48 65 61 70 42 6c 6f 63 6b 46 65 74 63 68 28 |_HeapBlockFetch(| 000058a0 29 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 |).Params =>. | 000058b0 20 20 20 20 20 69 6e 74 20 73 69 7a 65 20 6f 66 | int size of| 000058c0 20 62 6c 6f 63 6b 20 74 6f 20 66 65 74 63 68 20 | block to fetch | 000058d0 66 72 6f 6d 20 68 65 61 70 0a 0a 20 20 20 20 20 |from heap.. | 000058e0 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 20 69 | \<=. i| 000058f0 6e 74 20 61 64 64 72 65 73 73 20 6f 66 20 68 65 |nt address of he| 00005900 61 70 62 6c 6f 63 6b 20 61 6c 6c 6f 63 61 74 65 |apblock allocate| 00005910 64 0a 0a 52 65 74 75 72 6e 73 20 61 64 64 72 65 |d..Returns addre| 00005920 73 73 20 6f 66 20 68 65 61 70 62 6c 6f 63 6b 20 |ss of heapblock | 00005930 6f 72 20 63 61 75 73 65 73 20 61 6e 20 22 4f 75 |or causes an "Ou| 00005940 74 0a 6f 66 20 6d 65 6d 6f 72 79 22 20 65 72 72 |t.of memory" err| 00005950 6f 72 20 69 66 20 74 68 65 20 62 6c 6f 63 6b 20 |or if the block | 00005960 63 61 6e 6e 6f 74 20 62 65 0a 61 6c 6c 6f 63 61 |cannot be.alloca| 00005970 74 65 64 2e 0a 0a 4c 69 62 72 61 72 79 20 47 72 |ted...Library Gr| 00005980 6f 75 70 20 3d 3e 20 3c 4d 65 6d 6f 72 79 3d 3e |oup => <Memory=>| 00005990 4c 69 62 47 72 6f 75 70 4d 65 6d 6f 72 79 3e 46 |LibGroupMemory>F| 000059a0 4e 73 68 65 6c 6c 5f 48 65 61 70 42 6c 6f 63 6b |Nshell_HeapBlock| 000059b0 49 6e 66 6f 28 29 0a 50 61 72 61 6d 73 20 3d 3e |Info().Params =>| 000059c0 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 61 64 |. int ad| 000059d0 64 72 65 73 73 20 6f 66 20 68 65 61 70 20 62 6c |dress of heap bl| 000059e0 6f 63 6b 0a 0a 20 20 20 20 20 20 20 5c 3c 3d 0a |ock.. \<=.| 000059f0 20 20 20 20 20 20 20 20 20 69 6e 74 20 73 69 7a | int siz| 00005a00 65 20 6f 66 20 68 65 61 70 20 62 6c 6f 63 6b 20 |e of heap block | 00005a10 28 4e 6f 74 65 20 74 68 61 74 20 74 68 69 73 0a |(Note that this.| 00005a20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 73 20 | is | 00005a30 34 20 62 79 74 65 73 20 6c 61 72 67 65 72 20 74 |4 bytes larger t| 00005a40 68 61 6e 20 74 68 65 20 73 69 7a 65 0a 20 20 20 |han the size. | 00005a50 20 20 20 20 20 20 20 20 20 20 72 65 71 75 65 73 | reques| 00005a60 74 65 64 20 77 69 74 68 20 3c 46 4e 73 68 65 6c |ted with <FNshel| 00005a70 6c 5f 48 65 61 70 42 6c 6f 63 6b 46 65 74 63 68 |l_HeapBlockFetch| 00005a80 3e 29 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 |>)..Library Grou| 00005a90 70 20 3d 3e 20 3c 4d 65 6d 6f 72 79 3d 3e 4c 69 |p => <Memory=>Li| 00005aa0 62 47 72 6f 75 70 4d 65 6d 6f 72 79 3e 46 4e 73 |bGroupMemory>FNs| 00005ab0 68 65 6c 6c 5f 49 63 6f 6e 47 65 74 44 61 74 61 |hell_IconGetData| 00005ac0 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 |().Params =>. | 00005ad0 20 20 20 20 20 20 69 6e 74 20 77 69 6e 64 6f 77 | int window| 00005ae0 20 68 61 6e 64 6c 65 20 20 0a 20 20 20 20 20 20 | handle . | 00005af0 20 20 20 69 6e 74 20 69 63 6f 6e 20 68 61 6e 64 | int icon hand| 00005b00 6c 65 0a 0a 20 20 20 20 20 20 20 5c 3c 3d 0a 20 |le.. \<=. | 00005b10 20 20 20 20 20 20 20 20 73 74 72 20 69 63 6f 6e | str icon| 00005b20 20 74 65 78 74 0a 0a 53 65 65 20 61 6c 73 6f 20 | text..See also | 00005b30 3c 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 50 |<PROCshell_IconP| 00005b40 75 74 44 61 74 61 3e 2e 0a 0a 4c 69 62 72 61 72 |utData>...Librar| 00005b50 79 20 47 72 6f 75 70 20 3d 3e 20 3c 49 63 6f 6e |y Group => <Icon| 00005b60 73 3d 3e 4c 69 62 47 72 6f 75 70 49 63 6f 6e 73 |s=>LibGroupIcons| 00005b70 3e 46 4e 73 68 65 6c 6c 5f 46 69 6c 65 45 78 69 |>FNshell_FileExi| 00005b80 73 74 73 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a |sts().Params =>.| 00005b90 20 20 20 20 20 20 20 20 20 73 74 72 20 20 66 69 | str fi| 00005ba0 6c 65 20 6e 61 6d 65 20 20 20 20 20 0a 20 20 20 |le name . | 00005bb0 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 | \<=. | 00005bc0 20 62 6f 6f 6c 20 54 52 55 45 20 69 66 20 66 69 | bool TRUE if fi| 00005bd0 6c 65 20 65 78 69 73 74 73 2c 0a 20 20 20 20 20 |le exists,. | 00005be0 20 20 20 20 20 20 20 20 20 46 41 4c 53 45 20 6f | FALSE o| 00005bf0 74 68 65 72 77 69 73 65 0a 0a 4c 69 62 72 61 72 |therwise..Librar| 00005c00 79 20 47 72 6f 75 70 20 3d 5c 3e 20 3c 46 69 6c |y Group =\> <Fil| 00005c10 65 73 3d 3e 4c 69 62 47 72 6f 75 70 46 69 6c 65 |es=>LibGroupFile| 00005c20 73 3e 46 4e 73 68 65 6c 6c 5f 47 65 74 53 74 72 |s>FNshell_GetStr| 00005c30 69 6e 67 28 29 0a 52 65 74 75 72 6e 73 20 74 68 |ing().Returns th| 00005c40 65 20 73 74 72 69 6e 67 20 61 74 20 74 68 65 20 |e string at the | 00005c50 67 69 76 65 6e 20 61 64 64 72 65 73 73 2e 0a 54 |given address..T| 00005c60 65 72 6d 69 6e 61 74 6f 72 73 20 6d 61 79 20 62 |erminators may b| 00005c70 65 20 61 6e 79 20 63 68 61 72 61 63 74 65 72 20 |e any character | 00005c80 62 65 6c 6f 77 0a 41 53 43 49 49 20 33 32 2e 0a |below.ASCII 32..| 00005c90 20 0a 50 61 72 61 6d 73 20 20 3d 3e 0a 20 20 20 | .Params =>. | 00005ca0 20 20 20 20 20 20 69 6e 74 20 61 64 64 72 65 73 | int addres| 00005cb0 73 0a 0a 20 20 20 20 20 20 20 20 5c 3c 3d 0a 20 |s.. \<=. | 00005cc0 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 20 66 | string f| 00005cd0 6f 75 6e 64 20 61 74 20 61 64 64 72 65 73 73 46 |ound at addressF| 00005ce0 4e 73 68 65 6c 6c 5f 49 63 6f 6e 62 61 72 28 29 |Nshell_Iconbar()| 00005cf0 0a 50 6c 61 63 65 20 61 20 73 70 72 69 74 65 20 |.Place a sprite | 00005d00 6f 6e 20 74 68 65 20 69 63 6f 6e 20 62 61 72 20 |on the icon bar | 00005d10 61 6e 64 20 61 74 74 61 63 68 20 61 0a 6d 65 6e |and attach a.men| 00005d20 75 20 74 6f 20 69 74 2e 0a 0a 50 61 72 61 6d 73 |u to it...Params| 00005d30 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 69 6e 74 | =>. int| 00005d40 20 20 2d 31 20 66 6f 72 20 72 69 67 68 74 20 73 | -1 for right s| 00005d50 69 64 65 20 6f 66 20 62 61 72 2c 20 2d 32 20 66 |ide of bar, -2 f| 00005d60 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 |or. | 00005d70 20 6c 65 66 74 20 73 69 64 65 0a 20 20 20 20 20 | left side. | 00005d80 20 20 20 20 73 74 72 20 20 73 70 72 69 74 65 20 | str sprite | 00005d90 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 73 74 |name. st| 00005da0 72 20 20 74 65 78 74 20 75 6e 64 65 72 20 69 63 |r text under ic| 00005db0 6f 6e 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 |on. int | 00005dc0 20 77 69 64 74 68 20 6f 66 20 69 63 6f 6e 2f 74 | width of icon/t| 00005dd0 65 78 74 20 28 77 68 69 63 68 65 76 65 72 20 69 |ext (whichever i| 00005de0 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |s. | 00005df0 6c 61 72 67 65 72 29 0a 20 20 20 20 20 20 20 20 |larger). | 00005e00 20 73 74 72 20 20 6d 65 6e 75 20 68 61 6e 64 6c | str menu handl| 00005e10 65 0a 20 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 |e. bool | 00005e20 73 68 69 66 74 20 66 6c 61 67 20 28 6e 6f 74 20 |shift flag (not | 00005e30 69 6d 70 6c 65 6d 65 6e 74 65 64 29 0a 20 20 20 |implemented). | 00005e40 20 20 20 20 20 20 62 6f 6f 6c 20 63 74 72 6c 20 | bool ctrl | 00005e50 20 66 6c 61 67 20 28 6e 6f 74 20 69 6d 70 6c 65 | flag (not imple| 00005e60 6d 65 6e 74 65 64 29 0a 20 20 20 20 20 20 20 20 |mented). | 00005e70 20 62 6f 6f 6c 20 61 6c 74 20 20 20 66 6c 61 67 | bool alt flag| 00005e80 20 28 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 65 | (not implemente| 00005e90 64 29 0a 0a 54 68 65 20 73 68 69 66 74 2c 20 63 |d)..The shift, c| 00005ea0 74 72 6c 20 61 6e 64 20 61 6c 74 20 66 6c 61 67 |trl and alt flag| 00005eb0 73 20 61 72 65 20 66 6f 72 20 66 75 74 75 72 65 |s are for future| 00005ec0 0a 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20 74 6f |.enhancements to| 00005ed0 20 74 68 65 20 6c 69 62 72 61 72 79 20 61 6e 64 | the library and| 00005ee0 20 73 68 6f 75 6c 64 20 62 65 20 73 65 74 0a 74 | should be set.t| 00005ef0 6f 20 30 20 6f 6e 20 74 68 69 73 20 72 65 6c 65 |o 0 on this rele| 00005f00 61 73 65 2e 0a 0a 3c 45 78 61 6d 70 6c 65 20 63 |ase...<Example c| 00005f10 6f 64 65 2e 2e 2e 3d 3e 45 78 5f 49 63 6f 6e 62 |ode...=>Ex_Iconb| 00005f20 61 72 3e 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f |ar>..Library Gro| 00005f30 75 70 20 3d 3e 20 3c 49 63 6f 6e 73 3d 3e 4c 69 |up => <Icons=>Li| 00005f40 62 47 72 6f 75 70 49 63 6f 6e 73 3e 46 4e 73 68 |bGroupIcons>FNsh| 00005f50 65 6c 6c 5f 49 63 6f 6e 47 65 74 56 61 6c 69 64 |ell_IconGetValid| 00005f60 61 74 69 6f 6e 28 29 0a 50 61 72 61 6d 73 20 3d |ation().Params =| 00005f70 3e 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 |>. int w| 00005f80 69 6e 64 6f 77 20 68 61 6e 64 6c 65 20 20 20 20 |indow handle | 00005f90 20 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 69 | . int i| 00005fa0 63 6f 6e 20 68 61 6e 64 6c 65 0a 20 20 20 20 20 |con handle. | 00005fb0 20 20 20 20 0a 20 20 20 20 20 20 20 5c 3c 3d 0a | . \<=.| 00005fc0 20 20 20 20 20 20 20 20 20 73 74 72 20 3c 76 61 | str <va| 00005fd0 6c 69 64 61 74 69 6f 6e 20 73 74 72 69 6e 67 3d |lidation string=| 00005fe0 3e 53 57 49 2e 77 69 6d 70 5f 76 61 6c 69 64 61 |>SWI.wimp_valida| 00005ff0 74 69 6f 6e 73 74 72 69 6e 67 3e 0a 0a 53 65 65 |tionstring>..See| 00006000 20 61 6c 73 6f 20 3c 50 52 4f 43 73 68 65 6c 6c | also <PROCshell| 00006010 5f 49 63 6f 6e 50 75 74 56 61 6c 69 64 61 74 69 |_IconPutValidati| 00006020 6f 6e 3e 2e 0a 0a 4c 69 62 72 61 72 79 20 47 72 |on>...Library Gr| 00006030 6f 75 70 20 3d 3e 20 3c 49 63 6f 6e 73 3d 3e 4c |oup => <Icons=>L| 00006040 69 62 47 72 6f 75 70 49 63 6f 6e 73 3e 46 4e 73 |ibGroupIcons>FNs| 00006050 68 65 6c 6c 5f 49 63 6f 6e 4e 65 77 53 70 72 69 |hell_IconNewSpri| 00006060 74 65 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 |te().Params =>. | 00006070 20 20 20 20 20 20 20 20 69 6e 74 20 77 69 6e 64 | int wind| 00006080 6f 77 20 68 61 6e 64 6c 65 20 20 20 0a 20 20 20 |ow handle . | 00006090 20 20 20 20 20 20 69 6e 74 20 69 63 6f 6e 20 68 | int icon h| 000060a0 61 6e 64 6c 65 0a 20 20 20 20 20 20 20 20 20 73 |andle. s| 000060b0 74 72 20 6e 65 77 20 73 70 72 69 74 65 20 6e 61 |tr new sprite na| 000060c0 6d 65 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 |me. int | 000060d0 72 65 64 72 61 77 20 66 6c 61 67 0a 0a 20 20 20 |redraw flag.. | 000060e0 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 | \<=. | 000060f0 20 69 6e 74 20 6e 65 77 20 69 63 6f 6e 20 68 61 | int new icon ha| 00006100 6e 64 6c 65 0a 0a 4c 69 62 72 61 72 79 20 47 72 |ndle..Library Gr| 00006110 6f 75 70 20 3d 3e 20 3c 49 63 6f 6e 73 3d 3e 4c |oup => <Icons=>L| 00006120 69 62 47 72 6f 75 70 49 63 6f 6e 73 3e 46 4e 73 |ibGroupIcons>FNs| 00006130 68 65 6c 6c 5f 49 73 49 63 6f 6e 53 65 6c 65 63 |hell_IsIconSelec| 00006140 74 65 64 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a |ted().Params =>.| 00006150 20 20 20 20 20 20 20 20 20 69 6e 74 20 20 77 69 | int wi| 00006160 6e 64 6f 77 20 68 61 6e 64 6c 65 20 20 20 20 20 |ndow handle | 00006170 20 20 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 | . int | 00006180 20 69 63 6f 6e 20 68 61 6e 64 6c 65 0a 0a 20 20 | icon handle.. | 00006190 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 | \<=. | 000061a0 20 20 62 6f 6f 6c 20 54 52 55 45 20 69 66 20 73 | bool TRUE if s| 000061b0 65 6c 65 63 74 65 64 2c 20 46 41 4c 53 45 20 6f |elected, FALSE o| 000061c0 74 68 65 72 77 69 73 65 0a 0a 4c 69 62 72 61 72 |therwise..Librar| 000061d0 79 20 47 72 6f 75 70 20 3d 3e 20 3c 49 63 6f 6e |y Group => <Icon| 000061e0 73 3d 3e 4c 69 62 47 72 6f 75 70 49 63 6f 6e 73 |s=>LibGroupIcons| 000061f0 3e 46 4e 73 68 65 6c 6c 5f 4d 65 73 73 61 67 65 |>FNshell_Message| 00006200 57 69 6e 64 6f 77 28 29 0a 50 61 72 61 6d 73 20 |Window().Params | 00006210 3d 3e 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 |=>. str | 00006220 6d 65 73 73 61 67 65 20 74 65 78 74 20 20 20 0a |message text .| 00006230 20 20 20 20 20 20 20 20 20 69 6e 74 20 3c 63 61 | int <ca| 00006240 6e 63 65 6c 20 66 6c 61 67 3d 3e 4d 73 67 57 69 |ncel flag=>MsgWi| 00006250 6e 43 46 6c 61 67 3e 0a 20 20 20 20 20 20 20 20 |nCFlag>. | 00006260 20 73 74 72 20 3c 70 72 6f 67 72 61 6d 20 6e 61 | str <program na| 00006270 6d 65 3d 3e 4d 73 67 57 69 6e 50 72 6f 67 3e 0a |me=>MsgWinProg>.| 00006280 20 20 20 20 20 20 20 20 20 73 74 72 20 3c 68 65 | str <he| 00006290 61 64 65 72 3d 3e 4d 73 67 57 69 6e 48 65 61 64 |ader=>MsgWinHead| 000062a0 3e 0a 0a 20 20 20 20 20 20 20 5c 3c 3d 0a 20 20 |>.. \<=. | 000062b0 20 20 20 20 20 20 20 69 6e 74 20 72 65 73 75 6c | int resul| 000062c0 74 0a 0a 54 68 69 73 20 72 6f 75 74 69 6e 65 20 |t..This routine | 000062d0 69 73 20 75 73 65 66 75 6c 20 66 6f 72 20 4f 4b |is useful for OK| 000062e0 20 74 6f 20 71 75 69 74 20 74 79 70 65 0a 77 69 | to quit type.wi| 000062f0 6e 64 6f 77 73 2e 20 54 68 65 20 72 65 74 75 72 |ndows. The retur| 00006300 6e 65 64 20 72 65 73 75 6c 74 20 69 73 20 31 20 |ned result is 1 | 00006310 69 66 20 4f 4b 0a 77 61 73 20 63 6c 69 63 6b 65 |if OK.was clicke| 00006320 64 2c 20 32 20 69 66 20 43 61 6e 63 65 6c 20 77 |d, 2 if Cancel w| 00006330 61 73 20 73 65 6c 65 63 74 65 64 2e 0a 0a 4c 69 |as selected...Li| 00006340 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c |brary Group => <| 00006350 57 69 6e 64 6f 77 73 3d 3e 4c 69 62 47 72 6f 75 |Windows=>LibGrou| 00006360 70 57 69 6e 64 6f 77 73 3e 46 4e 73 68 65 6c 6c |pWindows>FNshell| 00006370 5f 57 69 6d 70 49 6e 69 74 28 29 0a 50 61 72 61 |_WimpInit().Para| 00006380 6d 73 20 3d 5c 3e 0a 20 20 20 20 20 20 20 20 20 |ms =\>. | 00006390 69 6e 74 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 |int version numb| 000063a0 65 72 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 |er. str | 000063b0 74 61 73 6b 20 6e 61 6d 65 0a 0a 4e 6f 74 20 75 |task name..Not u| 000063c0 73 65 64 20 69 6e 20 45 76 6e 74 53 68 65 6c 6c |sed in EvntShell| 000063d0 20 6c 69 62 72 61 72 79 20 2d 20 75 73 65 20 3c | library - use <| 000063e0 46 4e 73 68 65 6c 6c 5f 57 69 6d 70 49 6e 69 74 |FNshell_WimpInit| 000063f0 5f 49 3e 20 69 6e 73 74 65 61 64 2e 0a 0a 4c 69 |_I> instead...Li| 00006400 62 72 61 72 79 20 47 72 6f 75 70 20 3d 5c 3e 20 |brary Group =\> | 00006410 3c 53 68 65 6c 6c 3d 3e 4c 69 62 47 72 6f 75 70 |<Shell=>LibGroup| 00006420 53 68 65 6c 6c 3e 46 4e 73 68 65 6c 6c 5f 57 69 |Shell>FNshell_Wi| 00006430 6d 70 49 6e 69 74 5f 49 28 29 0a 50 61 72 61 6d |mpInit_I().Param| 00006440 73 20 3d 5c 3e 0a 20 20 20 20 20 20 20 20 20 69 |s =\>. i| 00006450 6e 74 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 |nt version numbe| 00006460 72 20 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 |r . str | 00006470 74 61 73 6b 20 6e 61 6d 65 0a 0a 41 6c 73 6f 20 |task name..Also | 00006480 69 6e 69 74 69 61 6c 69 73 65 73 20 49 6e 74 65 |initialises Inte| 00006490 72 66 61 63 65 20 6d 6f 64 75 6c 65 2e 0a 0a 4c |rface module...L| 000064a0 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d 5c 3e |ibrary Group =\>| 000064b0 20 3c 53 68 65 6c 6c 3d 3e 4c 69 62 47 72 6f 75 | <Shell=>LibGrou| 000064c0 70 53 68 65 6c 6c 3e 50 52 4f 43 73 68 65 6c 6c |pShell>PROCshell| 000064d0 5f 57 69 6e 64 6f 77 4d 6f 76 65 54 6f 28 29 0a |_WindowMoveTo().| 000064e0 50 61 72 61 6d 73 20 3d 5c 3e 0a 20 20 20 20 20 |Params =\>. | 000064f0 20 20 20 20 69 6e 74 20 77 69 6e 64 6f 77 20 68 | int window h| 00006500 61 6e 64 6c 65 20 74 6f 20 6d 6f 76 65 0a 20 20 |andle to move. | 00006510 20 20 20 20 20 20 20 69 6e 74 20 78 20 63 6f 6f | int x coo| 00006520 72 64 20 74 6f 20 6d 6f 76 65 20 74 6f 0a 20 20 |rd to move to. | 00006530 20 20 20 20 20 20 20 69 6e 74 20 79 20 63 6f 6f | int y coo| 00006540 72 64 20 74 6f 20 6d 6f 76 65 20 74 6f 0a 0a 53 |rd to move to..S| 00006550 65 65 20 61 6c 73 6f 20 3c 50 52 4f 43 73 68 65 |ee also <PROCshe| 00006560 6c 6c 5f 57 69 6e 64 6f 77 4d 6f 76 65 54 6f 49 |ll_WindowMoveToI| 00006570 63 6f 6e 3e 2e 0a 0a 4c 69 62 72 61 72 79 20 47 |con>...Library G| 00006580 72 6f 75 70 20 3d 5c 3e 20 3c 57 69 6e 64 6f 77 |roup =\> <Window| 00006590 73 3d 3e 4c 69 62 47 72 6f 75 70 57 69 6e 64 6f |s=>LibGroupWindo| 000065a0 77 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 57 69 6e |ws>PROCshell_Win| 000065b0 64 6f 77 4d 6f 76 65 54 6f 49 63 6f 6e 28 29 0a |dowMoveToIcon().| 000065c0 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 |Params =>. | 000065d0 20 20 20 69 6e 74 20 77 69 6e 64 6f 77 20 68 61 | int window ha| 000065e0 6e 64 6c 65 20 74 6f 20 6d 6f 76 65 0a 20 20 20 |ndle to move. | 000065f0 20 20 20 20 20 20 69 6e 74 20 77 69 6e 64 6f 77 | int window| 00006600 20 68 61 6e 64 6c 65 20 63 6f 6e 74 61 69 6e 69 | handle containi| 00006610 6e 67 20 69 63 6f 6e 0a 20 20 20 20 20 20 20 20 |ng icon. | 00006620 20 69 6e 74 20 69 63 6f 6e 20 68 61 6e 64 6c 65 | int icon handle| 00006630 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 |. int x | 00006640 6f 66 66 73 65 74 20 6f 66 20 6d 6f 76 65 64 20 |offset of moved | 00006650 77 69 6e 64 6f 77 20 66 72 6f 6d 20 69 63 6f 6e |window from icon| 00006660 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 79 20 |. int y | 00006670 6f 66 66 73 65 74 20 6f 66 20 6d 6f 76 65 64 20 |offset of moved | 00006680 77 69 6e 64 6f 77 20 66 72 6f 6d 20 69 63 6f 6e |window from icon| 00006690 0a 0a 53 65 65 20 61 6c 73 6f 20 3c 50 52 4f 43 |..See also <PROC| 000066a0 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 4d 6f 76 65 |shell_WindowMove| 000066b0 54 6f 3e 2e 0a 0a 4c 69 62 72 61 72 79 20 47 72 |To>...Library Gr| 000066c0 6f 75 70 20 3d 3e 20 3c 57 69 6e 64 6f 77 73 3d |oup => <Windows=| 000066d0 3e 4c 69 62 47 72 6f 75 70 57 69 6e 64 6f 77 73 |>LibGroupWindows| 000066e0 3e 50 52 4f 43 73 68 65 6c 6c 5f 43 72 65 61 74 |>PROCshell_Creat| 000066f0 65 57 69 6e 64 6f 77 28 29 0a 50 61 72 61 6d 73 |eWindow().Params| 00006700 20 3d 5c 3e 0a 20 20 20 20 20 20 20 20 20 73 74 | =\>. st| 00006710 72 20 77 69 6e 64 6f 77 20 69 64 65 6e 74 69 66 |r window identif| 00006720 69 65 72 0a 20 20 20 20 20 20 20 20 20 69 6e 74 |ier. int| 00006730 20 28 69 67 6e 6f 72 65 64 20 6f 6e 20 65 6e 74 | (ignored on ent| 00006740 72 79 29 0a 0a 20 20 20 20 20 20 20 5c 3c 3d 0a |ry).. \<=.| 00006750 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 69 6e | int win| 00006760 64 6f 77 20 68 61 6e 64 6c 65 20 6f 66 20 6e 65 |dow handle of ne| 00006770 77 6c 79 20 63 72 65 61 74 65 64 20 77 69 6e 64 |wly created wind| 00006780 6f 77 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 |ow..Library Grou| 00006790 70 20 3d 5c 3e 20 3c 57 69 6e 64 6f 77 73 3d 3e |p =\> <Windows=>| 000067a0 4c 69 62 47 72 6f 75 70 57 69 6e 64 6f 77 73 3e |LibGroupWindows>| 000067b0 53 69 6d 6f 6e 20 48 75 6e 74 69 6e 67 64 6f 6e |Simon Huntingdon| 000067c0 0a 46 6f 72 20 74 68 65 20 49 6e 74 65 72 66 61 |.For the Interfa| 000067d0 63 65 20 6d 6f 64 75 6c 65 20 2d 20 65 76 65 6e |ce module - even| 000067e0 20 41 63 6f 72 6e 0a 68 61 76 65 20 72 65 61 6c | Acorn.have real| 000067f0 69 73 65 64 20 77 69 74 68 20 52 49 53 43 2d 4f |ised with RISC-O| 00006800 53 20 33 20 74 68 61 74 20 74 68 69 73 0a 69 73 |S 3 that this.is| 00006810 20 77 68 61 74 20 74 68 65 20 75 73 65 72 73 20 | what the users | 00006820 77 61 6e 74 21 0a 0a 43 6f 6e 74 61 63 74 73 3a |want!..Contacts:| 00006830 0a 20 20 20 20 20 20 20 41 72 63 61 64 65 20 42 |. Arcade B| 00006840 42 53 20 20 20 20 20 20 20 20 20 20 28 30 38 31 |BS (081| 00006850 20 36 35 34 20 32 32 31 32 29 0a 0a 20 20 20 20 | 654 2212).. | 00006860 20 20 20 41 6c 6c 20 6d 61 69 6c 20 6f 6e 20 74 | All mail on t| 00006870 68 65 20 61 62 6f 76 65 20 42 75 6c 6c 65 74 69 |he above Bulleti| 00006880 6e 0a 20 20 20 20 20 20 20 42 6f 61 72 64 73 20 |n. Boards | 00006890 73 68 6f 75 6c 64 20 62 65 20 6d 61 69 6c 65 64 |should be mailed| 000068a0 20 74 6f 20 4a 49 43 4b 52 6f 62 65 72 74 20 53 | to JICKRobert S| 000068b0 65 61 67 6f 0a 46 6f 72 20 75 73 69 6e 67 20 6d |eago.For using m| 000068c0 79 20 6f 72 69 67 69 6e 61 6c 20 73 68 65 6c 6c |y original shell| 000068d0 20 70 72 6f 67 72 61 6d 20 66 6f 72 0a 74 68 69 | program for.thi| 000068e0 6e 67 73 20 49 20 77 6f 75 6c 64 20 65 76 65 6e |ngs I would even| 000068f0 20 64 72 65 61 6d 20 6f 66 20 61 74 74 65 6d 70 | dream of attemp| 00006900 74 69 6e 67 21 49 6e 74 72 6f 64 75 63 74 69 6f |ting!Introductio| 00006910 6e 0a 54 68 65 72 65 20 61 72 65 20 61 20 6c 6f |n.There are a lo| 00006920 74 20 6f 66 20 27 53 68 65 6c 6c 27 20 74 79 70 |t of 'Shell' typ| 00006930 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 61 |e applications a| 00006940 6c 72 65 61 64 79 20 69 6e 0a 74 68 65 20 50 75 |lready in.the Pu| 00006950 62 6c 69 63 20 44 6f 6d 61 69 6e 20 28 74 68 69 |blic Domain (thi| 00006960 73 20 69 73 20 74 68 65 20 73 65 63 6f 6e 64 20 |s is the second | 00006970 6f 6e 65 20 49 20 68 61 76 65 20 77 72 69 74 74 |one I have writt| 00006980 65 6e 21 29 0a 73 6f 20 77 68 79 20 64 6f 20 77 |en!).so why do w| 00006990 65 20 6e 65 65 64 20 61 6e 6f 74 68 65 72 20 6f |e need another o| 000069a0 6e 65 3f 0a 0a 54 68 65 20 72 65 61 73 6f 6e 20 |ne?..The reason | 000069b0 69 73 20 74 68 61 74 20 65 78 69 73 74 69 6e 67 |is that existing| 000069c0 20 73 68 65 6c 6c 20 70 72 6f 67 72 61 6d 73 20 | shell programs | 000069d0 61 72 65 20 65 69 74 68 65 72 20 74 6f 6f 0a 69 |are either too.i| 000069e0 6e 66 6c 65 78 69 62 6c 65 20 6f 72 20 74 6f 6f |nflexible or too| 000069f0 20 63 6f 6d 70 6c 69 63 61 74 65 64 2e 20 41 6c | complicated. Al| 00006a00 6c 20 6f 66 20 74 68 65 6d 20 49 20 68 61 76 65 |l of them I have| 00006a10 20 73 65 65 6e 0a 69 6e 76 6f 6c 76 65 20 65 64 | seen.involve ed| 00006a20 69 74 69 6e 67 20 74 68 65 20 73 68 65 6c 6c 20 |iting the shell | 00006a30 63 6f 64 65 20 69 6e 74 72 6f 64 75 63 69 6e 67 |code introducing| 00006a40 20 74 68 65 0a 70 6f 73 73 69 62 69 6c 69 74 79 | the.possibility| 00006a50 20 6f 66 20 6d 61 6b 69 6e 67 20 6d 69 73 74 61 | of making mista| 00006a60 6b 65 73 20 77 68 69 63 68 20 75 73 75 61 6c 6c |kes which usuall| 00006a70 79 20 72 65 73 75 6c 74 20 69 6e 20 61 0a 63 72 |y result in a.cr| 00006a80 61 73 68 65 64 20 63 6f 6d 70 75 74 65 72 2e 20 |ashed computer. | 00006a90 54 68 69 73 20 6f 6e 65 20 69 73 20 64 69 66 66 |This one is diff| 00006aa0 65 72 65 6e 74 20 62 65 63 61 75 73 65 20 74 68 |erent because th| 00006ab0 65 20 75 73 65 72 0a 61 70 70 6c 69 63 61 74 69 |e user.applicati| 00006ac0 6f 6e 20 6e 6f 74 69 66 69 65 73 20 74 68 65 20 |on notifies the | 00006ad0 73 68 65 6c 6c 20 77 68 69 63 68 20 27 65 76 65 |shell which 'eve| 00006ae0 6e 74 73 27 20 69 74 20 69 73 0a 69 6e 74 65 72 |nts' it is.inter| 00006af0 65 73 74 65 64 20 69 6e 20 61 6e 64 20 74 68 65 |ested in and the| 00006b00 20 73 68 65 6c 6c 20 74 68 65 6e 20 63 61 6c 6c | shell then call| 00006b10 73 20 74 68 65 20 75 73 65 72 0a 61 70 70 6c 69 |s the user.appli| 00006b20 63 61 74 69 6f 6e 20 77 68 65 6e 20 74 68 65 20 |cation when the | 00006b30 65 76 65 6e 74 20 6f 63 63 75 72 73 2e 0a 0a 3c |event occurs...<| 00006b40 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 |PROCshell_Attach| 00006b50 4d 6f 64 65 43 68 61 6e 67 65 48 61 6e 64 6c 65 |ModeChangeHandle| 00006b60 72 3e 20 69 73 20 61 20 76 65 72 79 20 73 69 6d |r> is a very sim| 00006b70 70 6c 65 0a 65 78 61 6d 70 6c 65 20 77 68 69 63 |ple.example whic| 00006b80 68 20 63 61 6c 6c 73 20 61 20 66 75 6e 63 74 69 |h calls a functi| 00006b90 6f 6e 20 69 6e 20 74 68 65 20 75 73 65 72 20 61 |on in the user a| 00006ba0 70 70 6c 69 63 61 74 69 6f 6e 0a 77 68 65 6e 20 |pplication.when | 00006bb0 74 68 65 20 73 63 72 65 65 6e 20 6d 6f 64 65 20 |the screen mode | 00006bc0 63 68 61 6e 67 65 73 2e 20 41 20 6d 6f 72 65 20 |changes. A more | 00006bd0 63 6f 6d 70 6c 69 63 61 74 65 64 20 65 78 61 6d |complicated exam| 00006be0 70 6c 65 0a 69 73 20 3c 50 52 4f 43 73 68 65 6c |ple.is <PROCshel| 00006bf0 6c 5f 41 74 74 61 63 68 50 61 6e 65 3e 20 77 68 |l_AttachPane> wh| 00006c00 69 63 68 20 61 6c 6c 6f 77 73 20 74 68 65 20 61 |ich allows the a| 00006c10 74 74 61 63 68 6d 65 6e 74 20 6f 66 0a 70 61 6e |ttachment of.pan| 00006c20 65 20 77 69 6e 64 6f 77 73 20 74 6f 20 61 20 70 |e windows to a p| 00006c30 61 72 65 6e 74 20 77 69 6e 64 6f 77 2e 20 41 6c |arent window. Al| 00006c40 6c 20 6f 70 65 6e 69 6e 67 20 61 6e 64 20 63 6c |l opening and cl| 00006c50 6f 73 69 6e 67 0a 6f 66 20 77 69 6e 64 6f 77 73 |osing.of windows| 00006c60 20 61 6e 64 20 70 61 6e 65 73 20 69 73 20 68 61 | and panes is ha| 00006c70 6e 64 6c 65 64 20 74 6f 74 61 6c 6c 79 20 62 79 |ndled totally by| 00006c80 20 74 68 65 20 73 68 65 6c 6c 0a 6c 69 62 72 61 | the shell.libra| 00006c90 72 79 2e 0a 0a 54 68 65 20 61 64 76 61 6e 74 61 |ry...The advanta| 00006ca0 67 65 20 69 73 20 74 68 65 72 65 66 6f 72 65 20 |ge is therefore | 00006cb0 74 68 61 74 20 74 68 65 20 73 68 65 6c 6c 20 63 |that the shell c| 00006cc0 6f 64 65 20 61 6e 64 20 74 68 65 0a 75 73 65 72 |ode and the.user| 00006cd0 20 63 6f 64 65 20 69 73 20 6b 65 70 74 20 63 6f | code is kept co| 00006ce0 6d 70 6c 65 74 65 6c 79 20 73 65 70 65 72 61 74 |mpletely seperat| 00006cf0 65 20 72 65 73 75 6c 74 69 6e 67 20 69 6e 20 61 |e resulting in a| 00006d00 0a 28 68 6f 70 65 66 75 6c 6c 79 29 20 6d 75 63 |.(hopefully) muc| 00006d10 68 20 6d 6f 72 65 20 75 6e 64 65 72 73 74 61 6e |h more understan| 00006d20 64 61 62 6c 65 20 61 6e 64 20 72 6f 62 75 73 74 |dable and robust| 00006d30 20 75 73 65 72 0a 61 70 70 6c 69 63 61 74 69 6f | user.applicatio| 00006d40 6e 2e 54 68 65 20 41 75 74 68 6f 72 0a 4f 4b 20 |n.The Author.OK | 00006d50 49 20 6c 69 65 64 20 61 62 6f 75 74 20 6e 6f 74 |I lied about not| 00006d60 20 61 73 6b 69 6e 67 20 66 6f 72 20 6d 6f 6e 65 | asking for mone| 00006d70 79 2e 20 49 66 20 79 6f 75 20 73 65 6e 64 0a 6d |y. If you send.m| 00006d80 65 20 3c a3 35 2e 30 30 70 3d 3e 43 61 73 68 3e |e <.5.00p=>Cash>| 00006d90 20 79 6f 75 20 77 69 6c 6c 20 6d 61 6b 65 20 3c | you will make <| 00006da0 54 68 65 20 57 69 66 65 3d 3e 57 69 66 65 3e 20 |The Wife=>Wife> | 00006db0 61 6e 64 20 6d 65 20 76 65 72 79 0a 68 61 70 70 |and me very.happ| 00006dc0 79 2e 20 59 6f 75 20 63 6f 75 6c 64 20 65 76 65 |y. You could eve| 00006dd0 6e 20 72 65 63 65 69 76 65 20 75 70 64 61 74 65 |n receive update| 00006de0 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 0a 61 6c |d versions of.al| 00006df0 6c 20 6d 79 20 77 6f 6e 64 65 72 66 75 6c 20 3c |l my wonderful <| 00006e00 50 72 6f 67 72 61 6d 73 3e 2e 20 49 20 6b 6e 6f |Programs>. I kno| 00006e10 77 20 69 66 20 79 6f 75 20 72 65 67 69 73 74 65 |w if you registe| 00006e20 72 0a 61 6c 6c 20 6f 66 20 74 68 65 20 27 53 68 |r.all of the 'Sh| 00006e30 61 72 65 57 61 72 65 27 20 28 77 68 69 63 68 20 |areWare' (which | 00006e40 69 73 20 77 68 61 74 20 74 68 65 20 45 76 6e 74 |is what the Evnt| 00006e50 73 68 65 6c 6c 0a 6c 69 62 72 61 72 79 20 69 73 |shell.library is| 00006e60 29 20 79 6f 75 20 68 61 76 65 20 69 74 20 77 6f |) you have it wo| 00006e70 75 6c 64 20 63 6f 73 74 20 61 20 66 61 69 72 20 |uld cost a fair | 00006e80 62 69 74 20 6f 66 0a 63 61 73 68 2c 20 62 75 74 |bit of.cash, but| 00006e90 20 63 6f 6e 73 69 64 65 72 20 74 68 65 20 74 69 | consider the ti| 00006ea0 6d 65 20 61 6e 64 20 65 66 66 6f 72 74 20 49 20 |me and effort I | 00006eb0 61 6e 64 20 74 68 65 0a 6f 74 68 65 72 20 61 75 |and the.other au| 00006ec0 74 68 6f 72 73 20 68 61 76 65 20 70 75 74 20 69 |thors have put i| 00006ed0 6e 74 6f 20 61 6c 6c 20 74 68 69 73 21 0a 0a 43 |nto all this!..C| 00006ee0 6c 69 63 6b 20 3c 68 65 72 65 3d 3e 41 75 74 68 |lick <here=>Auth| 00006ef0 6f 72 32 3e 20 66 6f 72 20 6d 79 20 61 64 64 72 |or2> for my addr| 00006f00 65 73 73 2e 2e 2e 54 68 65 20 57 69 66 65 0a 48 |ess...The Wife.H| 00006f10 65 72 20 6e 61 6d 65 20 69 73 20 48 69 6c 6b 65 |er name is Hilke| 00006f20 20 62 79 20 74 68 65 20 77 61 79 2e 20 57 68 65 | by the way. Whe| 00006f30 6e 20 47 75 74 74 6f 72 6d 0a 69 6d 70 72 6f 76 |n Guttorm.improv| 00006f40 65 73 20 53 74 72 6f 6e 67 48 6c 70 20 74 6f 20 |es StrongHlp to | 00006f50 69 6e 63 6c 75 64 65 20 73 70 72 69 74 65 20 66 |include sprite f| 00006f60 69 6c 65 0a 64 69 73 70 6c 61 79 73 20 49 27 6c |ile.displays I'l| 00006f70 6c 20 62 65 20 61 62 6c 65 20 74 6f 20 20 73 68 |l be able to sh| 00006f80 6f 77 20 79 6f 75 20 61 20 70 69 63 74 75 72 65 |ow you a picture| 00006f90 0a 6f 66 20 68 65 72 2e 20 54 68 61 74 20 69 73 |.of her. That is| 00006fa0 20 69 66 20 73 68 65 20 64 69 64 6e 27 74 20 74 | if she didn't t| 00006fb0 68 69 6e 6b 20 74 68 61 74 20 6e 65 77 0a 63 75 |hink that new.cu| 00006fc0 72 74 61 69 6e 73 20 77 65 72 65 20 6d 6f 72 65 |rtains were more| 00006fd0 20 69 6d 70 6f 72 74 61 6e 74 20 74 68 61 6e 20 | important than | 00006fe0 73 63 61 6e 6e 65 72 73 0a 6f 72 20 61 20 6e 65 |scanners.or a ne| 00006ff0 77 20 41 52 43 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 55 |w ARC..........U| 00007000 73 65 72 20 47 75 69 64 65 0a 3c 43 68 61 6e 67 |ser Guide.<Chang| 00007010 65 20 48 69 73 74 6f 72 79 20 20 20 3d 3e 48 69 |e History =>Hi| 00007020 73 74 6f 72 79 3e 0a 3c 43 6f 6d 6d 6f 6e 20 51 |story>.<Common Q| 00007030 75 65 73 74 69 6f 6e 73 20 3d 3e 71 75 65 73 74 |uestions =>quest| 00007040 69 6f 6e 73 3e 0a 3c 43 6f 6d 70 72 65 73 73 69 |ions>.<Compressi| 00007050 6e 67 20 20 20 20 20 20 3e 0a 3c 43 6f 70 79 72 |ng >.<Copyr| 00007060 69 67 68 74 20 20 20 20 20 20 20 20 3e 0a 3c 44 |ight >.<D| 00007070 65 62 75 67 67 69 6e 67 20 20 20 20 20 20 20 20 |ebugging | 00007080 3e 0a 3c 44 79 6e 61 6d 69 63 20 57 69 6e 64 6f |>.<Dynamic Windo| 00007090 77 73 20 20 3d 3e 44 79 6e 61 6d 69 63 57 69 6e |ws =>DynamicWin| 000070a0 64 6f 77 73 3e 0a 3c 49 6e 74 65 72 61 63 74 69 |dows>.<Interacti| 000070b0 76 65 20 48 65 6c 70 20 3d 3e 49 6e 74 65 72 48 |ve Help =>InterH| 000070c0 6c 70 3e 0a 3c 49 6e 74 65 72 66 61 63 65 20 4d |lp>.<Interface M| 000070d0 6f 64 75 6c 65 20 3d 3e 49 6e 74 65 72 66 61 63 |odule =>Interfac| 000070e0 65 3e 0a 3c 4c 6f 61 64 69 6e 67 20 46 69 6c 65 |e>.<Loading File| 000070f0 73 20 20 20 20 3d 3e 4c 6f 61 64 69 6e 67 3e 0a |s =>Loading>.| 00007100 3c 4d 65 6d 6f 72 79 20 4d 61 6e 61 67 65 6d 65 |<Memory Manageme| 00007110 6e 74 3d 3e 4d 65 6d 4d 61 6e 3e 0a 3c 4d 65 6e |nt=>MemMan>.<Men| 00007120 75 73 20 20 20 20 20 20 20 20 20 20 20 20 3e 0a |us >.| 00007130 3c 4d 65 73 73 61 67 65 73 20 20 20 20 20 20 20 |<Messages | 00007140 20 20 3e 0a 3c 4f 75 74 6c 69 6e 65 20 46 6f 6e | >.<Outline Fon| 00007150 74 73 20 20 20 20 3d 3e 66 6f 6e 74 73 3e 0a 3c |ts =>fonts>.<| 00007160 52 65 73 46 69 6e 64 20 20 20 20 20 20 20 20 20 |ResFind | 00007170 20 3d 3e 52 65 73 46 69 6e 64 3e 0a 3c 52 49 53 | =>ResFind>.<RIS| 00007180 43 2d 4f 53 20 33 20 20 20 20 20 20 20 20 3d 3e |C-OS 3 =>| 00007190 52 49 53 43 4f 53 33 3e 0a 3c 53 74 61 74 69 63 |RISCOS3>.<Static| 000071a0 20 57 69 6e 64 6f 77 73 20 20 20 3d 3e 53 74 61 | Windows =>Sta| 000071b0 74 69 63 57 69 6e 64 6f 77 73 3e 0a 3c 53 74 72 |ticWindows>.<Str| 000071c0 6f 6e 67 48 6c 70 20 20 20 20 20 20 20 20 3e 0a |ongHlp >.| 000071d0 3c 53 61 76 69 6e 67 20 46 69 6c 65 73 20 20 20 |<Saving Files | 000071e0 20 20 3d 3e 53 61 76 69 6e 67 3e 0a 3c 53 70 72 | =>Saving>.<Spr| 000071f0 69 74 65 73 20 20 20 20 20 20 20 20 20 20 3e 0a |ites >.| 00007200 3c 54 65 6d 70 6c 61 74 65 73 20 20 20 20 20 20 |<Templates | 00007210 20 20 3e 0a 0a 3c 54 68 65 20 4e 65 78 74 20 52 | >..<The Next R| 00007220 65 6c 65 61 73 65 3d 3e 4e 65 78 74 52 65 6c 65 |elease=>NextRele| 00007230 61 73 65 3e 54 68 65 20 4e 65 78 74 20 72 65 6c |ase>The Next rel| 00007240 65 61 73 65 0a 20 4e 6f 20 70 72 6f 6d 69 73 65 |ease. No promise| 00007250 73 20 6d 69 6e 64 2e 2e 2e 0a 0a 2d 20 53 75 70 |s mind.....- Sup| 00007260 70 6f 72 74 20 66 6f 72 20 61 75 74 6f 6d 61 74 |port for automat| 00007270 69 63 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 6d |ic handling of m| 00007280 6f 72 65 0a 20 20 63 6f 6d 70 6c 69 63 61 74 65 |ore. complicate| 00007290 64 20 69 63 6f 6e 20 74 79 70 65 73 2c 20 66 6f |d icon types, fo| 000072a0 72 20 65 78 61 6d 70 6c 65 0a 20 20 73 6c 69 64 |r example. slid| 000072b0 65 72 73 2c 20 72 6f 74 61 74 69 6e 67 20 6b 6e |ers, rotating kn| 000072c0 6f 62 73 20 65 74 63 0a 20 20 28 73 74 65 61 64 |obs etc. (stead| 000072d0 79 20 6e 6f 77 20 64 6f 6e 27 74 20 67 65 74 20 |y now don't get | 000072e0 63 61 72 72 69 65 64 20 61 77 61 79 29 0a 2d 20 |carried away).- | 000072f0 49 6d 70 6f 72 74 20 61 6e 64 20 64 69 73 70 6c |Import and displ| 00007300 61 79 20 6f 66 20 44 72 61 77 46 69 6c 65 73 20 |ay of DrawFiles | 00007310 61 6e 64 0a 20 20 53 70 72 69 74 65 73 0a 2d 20 |and. Sprites.- | 00007320 49 6e 63 6c 75 73 69 6f 6e 20 6f 66 20 6d 6f 72 |Inclusion of mor| 00007330 65 20 64 65 62 75 67 67 69 6e 67 20 61 69 64 73 |e debugging aids| 00007340 0a 2d 20 4d 6f 72 65 20 64 72 61 67 20 74 79 70 |.- More drag typ| 00007350 65 73 0a 2d 20 41 75 74 6f 73 63 72 6f 6c 6c 20 |es.- Autoscroll | 00007360 68 61 6e 64 6c 65 72 20 77 68 65 6e 20 6f 62 6a |handler when obj| 00007370 65 63 74 20 69 73 0a 20 20 64 72 61 67 67 65 64 |ect is. dragged| 00007380 20 77 69 74 68 69 6e 20 61 20 77 69 6e 64 6f 77 | within a window| 00007390 0a 2d 20 43 6f 6c 6f 75 72 20 70 69 63 6b 20 64 |.- Colour pick d| 000073a0 69 61 6c 6f 67 73 0a 2d 20 41 75 74 6f 6d 61 74 |ialogs.- Automat| 000073b0 69 63 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 6e |ic handling of n| 000073c0 6f 6e 2d 69 63 6f 6e 20 74 65 78 74 0a 20 20 77 |on-icon text. w| 000073d0 69 74 68 69 6e 20 61 20 77 69 6e 64 6f 77 20 28 |ithin a window (| 000073e0 6c 69 6b 65 20 43 20 74 78 74 20 6f 62 6a 65 63 |like C txt objec| 000073f0 74 73 29 0a 2d 20 50 6c 61 79 69 6e 67 20 6f 66 |ts).- Playing of| 00007400 20 4d 61 65 73 74 72 6f 20 74 75 6e 65 73 20 28 | Maestro tunes (| 00007410 41 72 63 68 57 61 79 20 64 6f 65 73 21 29 0a 2d |ArchWay does!).-| 00007420 20 45 78 74 65 6e 64 69 6e 67 20 6d 65 73 73 61 | Extending messa| 00007430 67 65 20 66 69 6c 65 20 75 73 65 61 67 65 20 74 |ge file useage t| 00007440 6f 20 69 63 6f 6e 73 2f 0a 20 20 77 69 6e 64 6f |o icons/. windo| 00007450 77 73 2f 6d 65 6e 75 73 0a 2d 20 52 65 70 6c 61 |ws/menus.- Repla| 00007460 79 20 46 69 6c 6d 73 20 28 21 21 21 29 0a 2d 20 |y Films (!!!).- | 00007470 42 65 74 74 65 72 20 6d 75 6c 74 69 70 6c 65 20 |Better multiple | 00007480 66 69 6c 65 20 62 75 66 66 65 72 73 0a 2d 20 43 |file buffers.- C| 00007490 6f 6d 70 6c 65 74 65 20 47 65 72 6d 61 6e 20 6d |omplete German m| 000074a0 65 73 73 61 67 65 20 66 69 6c 65 73 0a 2d 20 41 |essage files.- A| 000074b0 75 74 6f 6d 61 74 69 63 20 61 74 74 61 63 68 69 |utomatic attachi| 000074c0 6e 67 20 6f 66 20 27 68 6f 74 20 6b 65 79 27 20 |ng of 'hot key' | 000074d0 65 76 65 6e 74 73 0a 20 20 62 79 20 65 78 61 6d |events. by exam| 000074e0 69 6e 69 6e 67 20 6d 65 6e 75 20 74 65 78 74 52 |ining menu textR| 000074f0 49 53 43 2d 4f 53 20 33 0a 41 6c 6c 20 73 75 70 |ISC-OS 3.All sup| 00007500 70 6c 69 65 64 20 61 70 70 73 20 68 61 76 65 20 |plied apps have | 00007510 62 65 65 6e 20 74 65 73 74 65 64 20 75 6e 64 65 |been tested unde| 00007520 72 20 52 49 53 43 2d 4f 53 20 33 2e 31 0a 72 75 |r RISC-OS 3.1.ru| 00007530 6e 6e 69 6e 67 20 6f 6e 20 61 20 34 4d 65 67 20 |nning on a 4Meg | 00007540 41 33 31 30 20 61 6e 64 20 6f 6e 20 61 6e 20 41 |A310 and on an A| 00007550 34 2c 20 62 75 74 20 61 74 20 74 68 65 20 6d 6f |4, but at the mo| 00007560 6d 65 6e 74 0a 6d 61 6b 65 20 6c 69 74 74 6c 65 |ment.make little| 00007570 20 75 73 65 20 6f 66 20 74 68 65 20 6e 65 77 20 | use of the new | 00007580 66 65 61 74 75 72 65 73 2e 0a 0a 41 70 61 72 74 |features...Apart| 00007590 20 66 72 6f 6d 20 73 75 70 70 6f 72 74 69 6e 67 | from supporting| 000075a0 20 73 6f 6c 69 64 20 73 70 72 69 74 65 20 64 72 | solid sprite dr| 000075b0 61 67 67 69 6e 67 2e 20 28 54 68 61 74 27 73 0a |agging. (That's.| 000075c0 6f 6e 65 20 75 70 20 6f 6e 20 52 49 53 43 5f 4f |one up on RISC_O| 000075d0 53 4c 69 62 20 61 6e 79 77 61 79 2e 2e 29 0a 0a |SLib anyway..)..| 000075e0 4f 68 20 79 65 73 2c 20 61 6e 64 20 74 68 65 20 |Oh yes, and the | 000075f0 62 6f 6f 74 20 66 69 6c 65 20 6d 65 73 73 61 67 |boot file messag| 00007600 65 2e 52 65 63 6f 6d 70 65 6e 73 65 0a 4f 72 20 |e.Recompense.Or | 00007610 74 68 65 20 65 71 75 69 76 61 6c 65 6e 74 0a 69 |the equivalent.i| 00007620 6e 20 63 68 6f 63 6f 6c 61 74 65 44 65 62 75 67 |n chocolateDebug| 00007630 67 69 6e 67 0a 54 68 65 20 45 76 6e 74 53 68 65 |ging.The EvntShe| 00007640 6c 6c 20 6c 69 62 72 61 72 79 20 6f 75 74 70 75 |ll library outpu| 00007650 74 73 20 61 20 63 6f 6d 6d 65 6e 74 61 72 79 20 |ts a commentary | 00007660 6f 6e 0a 77 68 61 74 20 69 74 20 69 73 20 64 6f |on.what it is do| 00007670 69 6e 67 20 69 6e 74 6f 20 61 20 74 72 61 63 65 |ing into a trace| 00007680 66 69 6c 65 2c 20 70 72 6f 76 69 64 69 6e 67 0a |file, providing.| 00007690 74 68 61 74 20 3c 50 52 4f 43 73 68 65 6c 6c 5f |that <PROCshell_| 000076a0 54 72 61 63 65 49 6e 69 74 3e 20 61 6e 64 20 3c |TraceInit> and <| 000076b0 50 52 4f 43 73 68 65 6c 6c 5f 54 72 61 63 65 4f |PROCshell_TraceO| 000076c0 6e 3e 0a 68 61 76 65 20 62 65 65 6e 20 63 61 6c |n>.have been cal| 000076d0 6c 65 64 2e 20 54 68 65 20 75 73 65 72 20 61 70 |led. The user ap| 000076e0 70 6c 69 63 61 74 69 6f 6e 20 63 61 6e 20 61 6c |plication can al| 000076f0 73 6f 0a 70 6c 61 63 65 20 6f 75 74 70 75 74 20 |so.place output | 00007700 69 6e 20 74 68 69 73 20 66 69 6c 65 20 75 73 69 |in this file usi| 00007710 6e 67 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 54 72 |ng <PROCshell_Tr| 00007720 61 63 65 66 30 3e 2e 0a 0a 4f 75 74 70 75 74 74 |acef0>...Outputt| 00007730 69 6e 67 20 74 72 61 63 65 20 69 6e 66 6f 72 6d |ing trace inform| 00007740 61 74 69 6f 6e 20 77 69 6c 6c 20 73 6c 6f 77 20 |ation will slow | 00007750 74 68 65 20 75 73 65 72 0a 61 70 70 6c 69 63 61 |the user.applica| 00007760 74 69 6f 6e 20 6e 6f 74 69 63 65 61 62 6c 79 2c |tion noticeably,| 00007770 20 65 73 70 65 63 69 61 6c 6c 79 20 77 68 65 6e | especially when| 00007780 20 73 74 61 72 74 69 6e 67 20 75 70 0a 61 73 20 | starting up.as | 00007790 61 20 6c 6f 74 20 6f 66 20 74 72 61 63 65 20 69 |a lot of trace i| 000077a0 6e 66 6f 20 69 73 20 67 65 6e 65 72 61 74 65 64 |nfo is generated| 000077b0 20 62 79 20 74 68 65 20 63 61 6c 6c 20 74 6f 0a | by the call to.| 000077c0 3c 50 52 4f 43 73 68 65 6c 6c 5f 52 65 73 6f 75 |<PROCshell_Resou| 000077d0 72 63 65 73 49 6e 69 74 3e 2e 20 54 68 65 72 65 |rcesInit>. There| 000077e0 66 6f 72 65 20 69 74 20 69 73 20 62 65 73 74 20 |fore it is best | 000077f0 74 6f 0a 6f 6e 6c 79 20 74 75 72 6e 20 6f 6e 20 |to.only turn on | 00007800 74 72 61 63 69 6e 67 20 77 68 65 6e 20 6e 65 63 |tracing when nec| 00007810 65 73 73 61 72 79 2c 20 61 6e 64 20 6f 66 20 63 |essary, and of c| 00007820 6f 75 72 73 65 0a 6d 61 6b 65 20 73 75 72 65 20 |ourse.make sure | 00007830 74 68 61 74 20 74 72 61 63 69 6e 67 20 69 73 20 |that tracing is | 00007840 6f 66 66 20 6f 6e 20 61 6e 79 20 61 70 70 6c 69 |off on any appli| 00007850 63 61 74 69 6f 6e 73 0a 79 6f 75 20 64 69 73 74 |cations.you dist| 00007860 72 69 62 75 74 65 21 0a 0a 41 20 73 65 70 65 72 |ribute!..A seper| 00007870 61 74 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 2c |ate application,| 00007880 20 21 53 68 65 6c 6c 44 42 75 67 20 61 6c 6c 6f | !ShellDBug allo| 00007890 77 73 20 74 68 65 20 74 72 61 63 65 0a 6d 65 73 |ws the trace.mes| 000078a0 73 61 67 65 73 20 74 6f 20 62 65 20 76 69 65 77 |sages to be view| 000078b0 65 64 20 69 6e 20 61 20 77 69 6e 64 6f 77 20 61 |ed in a window a| 000078c0 73 20 74 68 65 20 75 73 65 72 0a 61 70 70 6c 69 |s the user.appli| 000078d0 63 61 74 69 6f 6e 20 72 75 6e 73 2e 44 79 6e 61 |cation runs.Dyna| 000078e0 6d 69 63 20 44 69 61 6c 6f 67 20 57 69 6e 64 6f |mic Dialog Windo| 000078f0 77 73 0a 44 79 6e 61 6d 69 63 20 77 69 6e 64 6f |ws.Dynamic windo| 00007900 77 73 20 61 72 65 20 74 68 6f 73 65 20 63 72 65 |ws are those cre| 00007910 61 74 65 64 20 62 79 20 6d 6f 76 69 6e 67 20 74 |ated by moving t| 00007920 68 65 20 70 6f 69 6e 74 65 72 20 0a 6f 76 65 72 |he pointer .over| 00007930 20 61 20 73 75 62 6d 65 6e 75 20 70 6f 69 6e 74 | a submenu point| 00007940 65 72 20 61 72 72 6f 77 20 28 69 2e 65 20 74 68 |er arrow (i.e th| 00007950 65 20 6e 6f 72 6d 61 6c 20 27 41 62 6f 75 74 20 |e normal 'About | 00007960 74 68 69 73 20 0a 70 72 6f 67 72 61 6d 27 20 77 |this .program' w| 00007970 69 6e 64 6f 77 20 70 72 6f 64 75 63 65 64 20 62 |indow produced b| 00007980 79 20 74 68 65 20 27 49 6e 66 6f 27 20 65 6e 74 |y the 'Info' ent| 00007990 72 79 20 6f 6e 20 74 68 65 20 0a 69 63 6f 6e 62 |ry on the .iconb| 000079a0 61 72 20 6d 65 6e 75 29 20 6f 72 20 6f 70 74 69 |ar menu) or opti| 000079b0 6f 6e 61 6c 6c 79 20 77 68 65 6e 20 61 20 27 68 |onally when a 'h| 000079c0 6f 74 20 6b 65 79 27 20 69 73 20 70 72 65 73 73 |ot key' is press| 000079d0 65 64 2e 20 0a 54 68 65 79 20 61 72 65 20 6f 70 |ed. .They are op| 000079e0 65 6e 65 64 20 77 69 74 68 20 61 20 63 61 6c 6c |ened with a call| 000079f0 20 74 6f 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 4f | to <PROCshell_O| 00007a00 70 65 6e 57 69 6e 64 6f 77 44 79 6e 61 6d 69 63 |penWindowDynamic| 00007a10 3e 2e 0a 0a 57 68 65 6e 20 77 72 69 74 65 61 62 |>...When writeab| 00007a20 6c 65 20 69 63 6f 6e 73 20 65 78 69 73 74 20 69 |le icons exist i| 00007a30 6e 20 74 68 65 20 64 79 6e 61 6d 69 63 20 77 69 |n the dynamic wi| 00007a40 6e 64 6f 77 20 75 70 2f 64 6f 77 6e 20 0a 63 75 |ndow up/down .cu| 00007a50 72 73 6f 72 20 6b 65 79 70 72 65 73 73 65 73 20 |rsor keypresses | 00007a60 6d 6f 76 65 20 74 68 65 20 63 61 72 65 74 20 62 |move the caret b| 00007a70 65 74 77 65 65 6e 20 74 68 65 20 69 63 6f 6e 73 |etween the icons| 00007a80 20 75 73 69 6e 67 20 0a 74 68 65 20 69 63 6f 6e | using .the icon| 00007a90 20 68 61 6e 64 6c 65 73 20 74 6f 20 64 65 74 65 | handles to dete| 00007aa0 72 6d 69 6e 65 20 77 68 65 72 65 20 74 6f 20 6d |rmine where to m| 00007ab0 6f 76 65 20 6e 65 78 74 2e 20 59 6f 75 20 0a 73 |ove next. You .s| 00007ac0 68 6f 75 6c 64 20 65 6e 73 75 72 65 20 74 68 65 |hould ensure the| 00007ad0 72 65 66 6f 72 65 20 74 68 61 74 20 74 68 65 20 |refore that the | 00007ae0 6f 72 64 65 72 20 6f 66 20 74 68 65 20 69 63 6f |order of the ico| 00007af0 6e 20 68 61 6e 64 6c 65 73 0a 69 73 20 61 20 6c |n handles.is a l| 00007b00 6f 67 69 63 61 6c 20 70 72 6f 67 72 65 73 73 69 |ogical progressi| 00007b10 6f 6e 20 74 68 72 6f 75 67 68 20 74 68 65 20 64 |on through the d| 00007b20 69 61 6c 6f 67 20 62 6f 78 2e 20 49 63 6f 6e 73 |ialog box. Icons| 00007b30 20 74 68 61 74 0a 61 72 65 20 75 6e 73 65 6c 65 | that.are unsele| 00007b40 63 74 61 62 6c 65 20 28 69 2e 65 2e 20 67 72 65 |ctable (i.e. gre| 00007b50 79 65 64 20 6f 75 74 29 20 77 69 6c 6c 20 62 65 |yed out) will be| 00007b60 20 69 67 6e 6f 72 65 64 2e 20 50 72 65 73 73 69 | ignored. Pressi| 00007b70 6e 67 20 0a 74 68 65 20 5c 3c 52 45 54 55 52 4e |ng .the \<RETURN| 00007b80 3e 20 6b 65 79 20 6d 6f 76 65 73 20 74 68 65 20 |> key moves the | 00007b90 63 61 72 65 74 20 74 6f 20 74 68 65 20 6e 65 78 |caret to the nex| 00007ba0 74 20 69 63 6f 6e 2c 20 75 6e 6c 65 73 73 20 0a |t icon, unless .| 00007bb0 74 68 65 20 63 61 72 65 74 20 69 73 20 61 6c 72 |the caret is alr| 00007bc0 65 61 64 79 20 69 6e 20 74 68 65 20 6c 61 73 74 |eady in the last| 00007bd0 20 77 72 69 74 65 61 62 6c 65 20 69 63 6f 6e 2c | writeable icon,| 00007be0 20 69 6e 20 77 68 69 63 68 20 0a 63 61 73 65 20 | in which .case | 00007bf0 69 63 6f 6e 20 30 20 28 6e 6f 72 6d 61 6c 6c 79 |icon 0 (normally| 00007c00 20 61 20 27 64 65 66 61 75 6c 74 20 61 63 74 69 | a 'default acti| 00007c10 6f 6e 27 20 69 63 6f 6e 20 77 69 74 68 20 61 6e |on' icon with an| 00007c20 20 65 78 74 72 61 0a 62 6f 72 64 65 72 29 20 69 | extra.border) i| 00007c30 73 20 70 72 65 73 73 65 64 20 61 6e 64 20 74 68 |s pressed and th| 00007c40 65 20 6d 65 6e 75 2f 64 69 61 6c 6f 67 20 62 6f |e menu/dialog bo| 00007c50 78 20 63 6c 6f 73 65 64 2e 20 41 63 74 75 61 6c |x closed. Actual| 00007c60 6c 79 20 0a 63 6c 69 63 6b 69 6e 67 20 5c 3c 53 |ly .clicking \<S| 00007c70 45 4c 45 43 54 3e 20 6f 6e 20 69 63 6f 6e 20 30 |ELECT> on icon 0| 00007c80 20 6f 66 20 61 20 64 79 6e 61 6d 69 63 20 64 69 | of a dynamic di| 00007c90 61 6c 6f 67 20 62 6f 78 20 77 69 6c 6c 20 0a 63 |alog box will .c| 00007ca0 61 75 73 65 20 74 68 65 20 73 68 65 6c 6c 20 6c |ause the shell l| 00007cb0 69 62 72 61 72 79 20 74 6f 20 63 6c 6f 73 65 20 |ibrary to close | 00007cc0 74 68 65 20 77 69 6e 64 6f 77 20 61 73 20 77 65 |the window as we| 00007cd0 6c 6c 2e 0a 0a 57 68 65 6e 20 61 20 27 68 6f 74 |ll...When a 'hot| 00007ce0 20 6b 65 79 27 20 69 73 20 70 72 65 73 73 65 64 | key' is pressed| 00007cf0 20 79 6f 75 20 68 61 76 65 20 74 68 65 20 6f 70 | you have the op| 00007d00 74 69 6f 6e 20 6f 66 20 6f 70 65 6e 69 6e 67 20 |tion of opening | 00007d10 0a 61 20 64 79 6e 61 6d 69 63 20 64 69 61 6c 6f |.a dynamic dialo| 00007d20 67 20 62 6f 78 20 77 68 69 63 68 20 77 69 6c 6c |g box which will| 00007d30 20 64 69 73 61 70 70 65 61 72 20 77 68 65 6e 20 | disappear when | 00007d40 61 20 6d 6f 75 73 65 20 63 6c 69 63 6b 0a 69 73 |a mouse click.is| 00007d50 20 6d 61 64 65 20 6f 75 74 73 69 64 65 20 69 74 | made outside it| 00007d60 20 6f 72 20 74 68 65 20 5c 3c 45 53 43 3e 20 6b | or the \<ESC> k| 00007d70 65 79 20 69 73 20 70 72 65 73 73 65 64 2c 20 6f |ey is pressed, o| 00007d80 72 20 61 73 20 61 20 0a 27 53 74 61 74 69 63 27 |r as a .'Static'| 00007d90 20 64 69 61 6c 6f 67 20 62 6f 78 20 77 68 69 63 | dialog box whic| 00007da0 68 20 6d 75 73 74 20 62 65 20 65 78 70 6c 69 63 |h must be explic| 00007db0 69 74 6c 79 20 63 6c 6f 73 65 64 20 62 79 20 74 |itly closed by t| 00007dc0 68 65 20 0a 75 73 65 72 20 61 70 70 6c 69 63 61 |he .user applica| 00007dd0 74 69 6f 6e 20 70 72 6f 67 72 61 6d 2e 0a 0a 44 |tion program...D| 00007de0 6f 20 6e 6f 74 20 61 74 74 65 6d 70 74 20 74 6f |o not attempt to| 00007df0 20 63 6c 6f 73 65 20 61 20 64 79 6e 61 6d 69 63 | close a dynamic| 00007e00 20 64 69 61 6c 6f 67 20 62 6f 78 20 77 69 74 68 | dialog box with| 00007e10 20 61 20 63 61 6c 6c 20 74 6f 20 0a 3c 50 52 4f | a call to .<PRO| 00007e20 43 73 68 65 6c 6c 5f 43 6c 6f 73 65 57 69 6e 64 |Cshell_CloseWind| 00007e30 6f 77 3e 20 6f 72 20 3c 50 52 4f 43 73 68 65 6c |ow> or <PROCshel| 00007e40 6c 5f 44 65 6c 65 74 65 57 69 6e 64 6f 77 3e 20 |l_DeleteWindow> | 00007e50 61 73 20 74 68 69 73 20 0a 77 69 6c 6c 20 63 61 |as this .will ca| 00007e60 75 73 65 20 61 6e 20 65 72 72 6f 72 20 77 68 65 |use an error whe| 00007e70 6e 20 74 68 65 20 73 68 65 6c 6c 20 6c 69 62 72 |n the shell libr| 00007e80 61 72 79 20 74 72 69 65 73 20 74 6f 20 63 6c 6f |ary tries to clo| 00007e90 73 65 20 6f 72 0a 64 65 6c 65 74 65 20 74 68 65 |se or.delete the| 00007ea0 20 77 69 6e 64 6f 77 2e 53 74 61 74 69 63 20 57 | window.Static W| 00007eb0 69 6e 64 6f 77 73 0a 54 68 65 73 65 20 61 72 65 |indows.These are| 00007ec0 20 6f 70 65 6e 65 64 20 77 69 74 68 20 61 20 63 | opened with a c| 00007ed0 61 6c 6c 20 74 6f 20 3c 50 52 4f 43 73 68 65 6c |all to <PROCshel| 00007ee0 6c 5f 4f 70 65 6e 57 69 6e 64 6f 77 53 74 61 74 |l_OpenWindowStat| 00007ef0 69 63 3e 20 61 6e 64 0a 72 65 73 70 6f 6e 64 20 |ic> and.respond | 00007f00 74 6f 20 63 75 72 73 6f 72 20 61 6e 64 20 5c 3c |to cursor and \<| 00007f10 52 45 54 55 52 4e 3e 20 6b 65 79 70 72 65 73 73 |RETURN> keypress| 00007f20 65 73 20 6c 69 6b 65 20 64 79 6e 61 6d 69 63 20 |es like dynamic | 00007f30 0a 64 69 61 6c 6f 67 20 62 6f 78 65 73 20 65 78 |.dialog boxes ex| 00007f40 63 65 70 74 20 74 68 61 74 20 70 72 65 73 73 69 |cept that pressi| 00007f50 6e 67 20 5c 3c 52 45 54 55 52 4e 3e 20 69 6e 20 |ng \<RETURN> in | 00007f60 74 68 65 20 6c 61 73 74 20 0a 77 72 69 74 65 61 |the last .writea| 00007f70 62 6c 65 20 69 63 6f 6e 20 77 69 6c 6c 20 6e 6f |ble icon will no| 00007f80 74 20 63 6c 6f 73 65 20 74 68 65 20 77 69 6e 64 |t close the wind| 00007f90 6f 77 2e 20 53 74 61 74 69 63 20 77 69 6e 64 6f |ow. Static windo| 00007fa0 77 73 0a 6d 75 73 74 20 62 65 20 63 72 65 61 74 |ws.must be creat| 00007fb0 65 64 20 77 69 74 68 20 61 20 63 61 6c 6c 20 74 |ed with a call t| 00007fc0 6f 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 43 72 65 |o <PROCshell_Cre| 00007fd0 61 74 65 57 69 6e 64 6f 77 53 74 61 74 69 63 3e |ateWindowStatic>| 00007fe0 2e 0a 0a 43 6c 6f 73 69 6e 67 20 74 68 65 73 65 |...Closing these| 00007ff0 20 77 69 6e 64 6f 77 73 20 69 73 20 74 68 65 20 | windows is the | 00008000 72 65 73 70 6f 6e 73 69 62 69 6c 69 74 79 20 6f |responsibility o| 00008010 66 20 74 68 65 20 0a 61 70 70 6c 69 63 61 74 69 |f the .applicati| 00008020 6f 6e 20 70 72 6f 67 72 61 6d 20 28 75 73 65 20 |on program (use | 00008030 3c 50 52 4f 43 73 68 65 6c 6c 5f 43 6c 6f 73 65 |<PROCshell_Close| 00008040 57 69 6e 64 6f 77 3e 29 20 65 78 63 65 70 74 20 |Window>) except | 00008050 69 6e 0a 74 68 65 20 63 61 73 65 20 6f 66 20 61 |in.the case of a| 00008060 20 63 6c 69 63 6b 20 6f 6e 20 74 68 65 20 27 43 | click on the 'C| 00008070 6c 6f 73 65 27 20 69 63 6f 6e 20 69 6e 20 74 68 |lose' icon in th| 00008080 65 20 74 69 74 6c 65 20 62 61 72 0a 69 63 6f 6e |e title bar.icon| 00008090 20 28 69 66 20 70 72 65 73 65 6e 74 29 2e 0a 0a | (if present)...| 000080a0 59 6f 75 20 77 6f 75 6c 64 20 75 73 65 20 61 20 |You would use a | 000080b0 73 74 61 74 69 63 20 77 69 6e 64 6f 77 20 66 6f |static window fo| 000080c0 72 20 74 68 65 20 6d 61 69 6e 20 77 69 6e 64 6f |r the main windo| 000080d0 77 20 6f 66 20 61 6e 20 0a 61 70 70 6c 69 63 61 |w of an .applica| 000080e0 74 69 6f 6e 2c 20 6f 72 20 70 65 72 68 61 70 73 |tion, or perhaps| 000080f0 20 66 6f 72 20 61 20 73 61 76 65 20 62 6f 78 20 | for a save box | 00008100 61 73 20 69 6e 20 74 68 65 20 63 61 73 65 20 6f |as in the case o| 00008110 66 20 74 68 65 0a 21 57 69 6e 53 61 76 65 32 20 |f the.!WinSave2 | 00008120 65 78 61 6d 70 6c 65 2e 20 54 68 65 20 61 64 76 |example. The adv| 00008130 61 6e 74 61 67 65 20 6f 66 20 75 73 69 6e 67 20 |antage of using | 00008140 61 20 73 74 61 74 69 63 20 77 69 6e 64 6f 77 20 |a static window | 00008150 69 6e 20 0a 74 68 69 73 20 63 61 73 65 20 69 73 |in .this case is| 00008160 20 74 68 61 74 20 74 68 69 73 20 61 6c 6c 6f 77 | that this allow| 00008170 73 20 74 68 65 20 75 73 65 72 20 74 6f 20 6f 70 |s the user to op| 00008180 65 6e 20 64 69 72 65 63 74 6f 72 79 20 0a 76 69 |en directory .vi| 00008190 65 77 65 72 73 20 6f 72 20 73 74 61 72 74 20 6f |ewers or start o| 000081a0 74 68 65 72 20 61 70 70 6c 69 63 61 74 69 6f 6e |ther application| 000081b0 73 20 77 68 69 6c 65 20 6b 65 65 70 69 6e 67 20 |s while keeping | 000081c0 74 68 65 20 73 61 76 65 20 0a 62 6f 78 20 6f 6e |the save .box on| 000081d0 20 74 68 65 20 73 63 72 65 65 6e 2e 54 65 6d 70 | the screen.Temp| 000081e0 6c 61 74 65 73 0a 41 6c 6c 20 77 69 6e 64 6f 77 |lates.All window| 000081f0 73 20 75 73 65 64 20 62 79 20 70 72 6f 67 72 61 |s used by progra| 00008200 6d 73 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 |ms based on the | 00008210 73 68 65 6c 6c 20 6c 69 62 72 61 72 79 20 77 6f |shell library wo| 00008220 75 6c 64 20 6e 6f 72 6d 61 6c 6c 79 20 0a 62 65 |uld normally .be| 00008230 20 64 65 66 69 6e 65 64 20 75 73 69 6e 67 20 61 | defined using a| 00008240 20 74 65 6d 70 6c 61 74 65 20 65 64 69 74 6f 72 | template editor| 00008250 20 61 73 20 74 68 69 73 20 69 73 20 66 61 72 20 | as this is far | 00008260 73 69 6d 70 6c 65 72 20 74 68 61 6e 20 0a 63 72 |simpler than .cr| 00008270 65 61 74 69 6e 67 20 74 68 65 20 77 69 6e 64 6f |eating the windo| 00008280 77 73 2f 69 63 6f 6e 73 20 69 6e 20 74 68 65 20 |ws/icons in the | 00008290 75 73 65 72 20 70 72 6f 67 72 61 6d 2e 20 54 68 |user program. Th| 000082a0 69 73 20 69 73 20 6e 6f 74 20 61 73 20 69 6e 66 |is is not as inf| 000082b0 6c 65 78 69 62 6c 65 0a 61 73 20 69 74 20 6d 61 |lexible.as it ma| 000082c0 79 20 73 6f 75 6e 64 20 61 73 20 77 69 6e 64 6f |y sound as windo| 000082d0 77 73 20 63 61 6e 20 62 65 20 72 65 73 69 7a 65 |ws can be resize| 000082e0 64 2c 20 6d 6f 76 65 64 20 6f 72 20 6f 74 68 65 |d, moved or othe| 000082f0 72 77 69 73 65 20 61 6c 74 65 72 65 64 20 62 79 |rwise altered by| 00008300 20 0a 73 68 65 6c 6c 20 6c 69 62 72 61 72 79 20 | .shell library | 00008310 72 6f 75 74 69 6e 65 73 2e 0a 0a 54 68 65 20 74 |routines...The t| 00008320 65 6d 70 6c 61 74 65 20 66 69 6c 65 20 6d 75 73 |emplate file mus| 00008330 74 20 62 65 20 63 61 6c 6c 65 64 20 27 54 65 6d |t be called 'Tem| 00008340 70 6c 61 74 65 73 27 20 61 6e 64 20 62 65 20 65 |plates' and be e| 00008350 69 74 68 65 72 20 69 6e 20 74 68 65 0a 61 70 70 |ither in the.app| 00008360 6c 69 63 61 74 69 6f 6e 20 64 69 72 65 63 74 6f |lication directo| 00008370 72 79 20 6f 72 20 69 6e 20 74 68 65 20 61 70 70 |ry or in the app| 00008380 72 6f 70 72 69 61 74 65 20 6c 61 6e 67 75 61 67 |ropriate languag| 00008390 65 20 64 69 72 65 63 74 6f 72 79 20 69 66 20 52 |e directory if R| 000083a0 65 73 46 69 6e 64 0a 69 73 20 69 6e 20 75 73 65 |esFind.is in use| 000083b0 2e 20 4e 6f 74 65 20 74 68 61 74 20 69 66 20 79 |. Note that if y| 000083c0 6f 75 20 61 72 65 20 75 73 69 6e 67 20 64 69 66 |ou are using dif| 000083d0 66 65 72 65 6e 74 20 74 65 6d 70 6c 61 74 65 73 |ferent templates| 000083e0 20 66 6f 72 20 64 69 66 66 65 72 65 6e 74 0a 6c | for different.l| 000083f0 61 6e 67 75 61 67 65 73 20 79 6f 75 20 6d 75 73 |anguages you mus| 00008400 74 20 75 73 65 20 52 65 73 46 69 6e 64 2e 20 49 |t use ResFind. I| 00008410 6e 20 6d 6f 73 74 20 63 61 73 65 73 2c 20 68 6f |n most cases, ho| 00008420 77 65 76 65 72 2c 20 69 74 20 69 73 20 73 75 66 |wever, it is suf| 00008430 66 69 63 69 65 6e 74 0a 74 6f 20 68 61 76 65 20 |ficient.to have | 00008440 6f 6e 6c 79 20 6f 6e 65 20 74 65 6d 70 6c 61 74 |only one templat| 00008450 65 20 66 69 6c 65 20 69 6e 20 74 68 65 20 61 70 |e file in the ap| 00008460 70 6c 69 63 61 74 69 6f 6e 20 64 69 72 65 63 74 |plication direct| 00008470 6f 72 79 20 61 6e 64 20 74 6f 20 69 6e 73 65 72 |ory and to inser| 00008480 74 0a 74 68 65 20 74 65 78 74 20 74 61 6b 65 6e |t.the text taken| 00008490 20 66 72 6f 6d 20 74 68 65 20 6d 65 73 73 61 67 | from the messag| 000084a0 65 20 66 69 6c 65 20 69 6e 20 74 68 65 20 6c 61 |e file in the la| 000084b0 6e 67 75 61 67 65 20 6f 66 20 63 68 6f 69 63 65 |nguage of choice| 000084c0 20 69 6e 74 6f 20 74 68 65 0a 69 63 6f 6e 73 2e | into the.icons.| 000084d0 0a 0a 41 20 63 61 6c 6c 20 74 6f 20 3c 50 52 4f |..A call to <PRO| 000084e0 43 73 68 65 6c 6c 5f 52 65 73 6f 75 72 63 65 73 |Cshell_Resources| 000084f0 49 6e 69 74 3e 20 77 69 6c 6c 20 66 69 6e 64 20 |Init> will find | 00008500 74 68 65 20 74 65 6d 70 6c 61 74 65 20 66 69 6c |the template fil| 00008510 65 20 61 6e 64 20 6c 6f 61 64 0a 61 6c 6c 20 74 |e and load.all t| 00008520 68 65 20 74 65 6d 70 6c 61 74 65 73 20 69 74 20 |he templates it | 00008530 63 6f 6e 74 61 69 6e 73 20 61 6c 6c 6f 63 61 74 |contains allocat| 00008540 69 6e 67 20 6d 65 6d 6f 72 79 20 61 73 20 72 65 |ing memory as re| 00008550 71 75 69 72 65 64 2e 4d 65 6e 75 73 0a 4d 65 6e |quired.Menus.Men| 00008560 75 73 20 61 72 65 20 6e 6f 77 20 68 61 6e 64 6c |us are now handl| 00008570 65 64 20 62 79 20 4d 65 6e 75 55 74 69 6c 73 20 |ed by MenuUtils | 00008580 77 68 69 63 68 20 77 61 73 20 77 72 69 74 74 65 |which was writte| 00008590 6e 0a 62 79 20 3c 41 6c 65 78 20 50 65 74 72 6f |n.by <Alex Petro| 000085a0 76 3d 3e 50 65 74 72 6f 76 3e 2e 20 56 65 72 73 |v=>Petrov>. Vers| 000085b0 69 6f 6e 73 20 6f 66 20 74 68 65 20 6c 69 62 72 |ions of the libr| 000085c0 61 72 79 20 70 72 69 6f 72 20 74 6f 20 31 2e 32 |ary prior to 1.2| 000085d0 30 0a 75 73 65 64 20 61 20 6d 65 6e 75 20 65 64 |0.used a menu ed| 000085e0 69 74 6f 72 20 74 6f 20 63 72 65 61 74 65 20 61 |itor to create a| 000085f0 20 73 65 70 65 72 61 74 65 20 6d 65 6e 75 20 74 | seperate menu t| 00008600 65 6d 70 6c 61 74 65 0a 66 69 6c 65 2c 20 62 75 |emplate.file, bu| 00008610 74 20 49 20 68 61 76 65 20 6e 6f 77 20 61 62 61 |t I have now aba| 00008620 6e 64 6f 6e 65 64 20 74 68 69 73 20 61 73 20 69 |ndoned this as i| 00008630 74 20 77 61 73 20 72 61 74 68 65 72 0a 69 6e 66 |t was rather.inf| 00008640 6c 65 78 69 62 6c 65 2e 0a 0a 54 68 65 20 75 73 |lexible...The us| 00008650 65 20 6f 66 20 4d 65 6e 75 55 74 69 6c 73 20 68 |e of MenuUtils h| 00008660 61 73 20 65 6e 61 62 6c 65 64 20 6d 65 20 74 6f |as enabled me to| 00008670 20 72 65 6d 6f 76 65 20 6c 61 72 67 65 0a 63 68 | remove large.ch| 00008680 75 6e 6b 73 20 6f 66 20 73 6c 6f 77 20 42 41 53 |unks of slow BAS| 00008690 49 43 20 63 6f 64 65 20 61 6e 64 20 74 6f 20 70 |IC code and to p| 000086a0 72 6f 76 69 64 65 20 6d 61 6e 79 20 6d 6f 72 65 |rovide many more| 000086b0 0a 66 65 61 74 75 72 65 73 2c 20 73 75 63 68 20 |.features, such | 000086c0 61 73 20 63 72 65 61 74 69 6f 6e 20 61 6e 64 20 |as creation and | 000086d0 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 |modification of | 000086e0 6d 65 6e 75 73 0a 75 6e 64 65 72 20 70 72 6f 67 |menus.under prog| 000086f0 72 61 6d 20 63 6f 6e 74 72 6f 6c 2e 20 54 68 65 |ram control. The| 00008700 20 6d 65 6e 75 73 20 74 68 65 6d 73 65 6c 76 65 | menus themselve| 00008710 73 20 61 70 70 65 61 72 0a 6d 6f 72 65 20 71 75 |s appear.more qu| 00008720 69 63 6b 6c 79 20 61 73 20 77 65 6c 6c 20 28 4f |ickly as well (O| 00008730 4b 20 43 79 3f 29 2e 0a 0a 54 68 65 20 20 73 75 |K Cy?)...The su| 00008740 70 70 6f 72 74 20 6d 6f 64 75 6c 65 20 69 73 20 |pport module is | 00008750 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 6c 6f |automatically lo| 00008760 61 64 65 64 20 62 79 20 74 68 65 0a 21 52 75 6e |aded by the.!Run| 00008770 20 66 69 6c 65 20 74 6f 20 70 72 6f 76 69 64 65 | file to provide| 00008780 20 74 68 65 20 6e 65 77 20 6d 65 6e 75 20 68 61 | the new menu ha| 00008790 6e 64 6c 69 6e 67 20 53 57 49 73 20 75 73 65 64 |ndling SWIs used| 000087a0 0a 62 79 20 74 68 65 20 45 76 6e 74 53 68 65 6c |.by the EvntShel| 000087b0 6c 20 6c 69 62 72 61 72 79 2e 4d 65 73 73 61 67 |l library.Messag| 000087c0 65 20 46 69 6c 65 73 0a 54 68 65 20 6d 65 73 73 |e Files.The mess| 000087d0 61 67 65 20 66 69 6c 65 20 69 73 20 61 20 6e 6f |age file is a no| 000087e0 72 6d 61 6c 20 41 53 43 49 49 20 66 69 6c 65 20 |rmal ASCII file | 000087f0 77 72 69 74 74 65 6e 20 75 73 69 6e 67 20 21 45 |written using !E| 00008800 64 69 74 20 6f 72 20 73 69 6d 69 6c 61 72 20 0a |dit or similar .| 00008810 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 6d 65 |that contains me| 00008820 73 73 61 67 65 20 73 74 72 69 6e 67 73 20 70 72 |ssage strings pr| 00008830 65 63 65 65 64 65 64 20 62 79 20 61 20 6d 65 73 |eceeded by a mes| 00008840 73 61 67 65 20 74 61 67 2e 20 54 68 65 20 0a 61 |sage tag. The .a| 00008850 70 70 6c 69 63 61 74 69 6f 6e 20 70 72 6f 67 72 |pplication progr| 00008860 61 6d 20 73 68 6f 75 6c 64 20 66 69 6e 64 20 74 |am should find t| 00008870 68 65 20 6d 65 73 73 61 67 65 73 20 61 73 20 72 |he messages as r| 00008880 65 71 75 69 72 65 64 20 62 79 20 74 61 67 20 6e |equired by tag n| 00008890 61 6d 65 20 0a 77 68 69 63 68 20 61 6c 6c 6f 77 |ame .which allow| 000088a0 73 20 74 68 65 20 70 72 6f 64 75 63 74 69 6f 6e |s the production| 000088b0 20 6f 66 20 66 6f 72 65 69 67 6e 20 6c 61 6e 67 | of foreign lang| 000088c0 75 61 67 65 20 76 65 72 73 69 6f 6e 73 20 28 70 |uage versions (p| 000088d0 72 6f 62 61 62 6c 79 20 62 79 20 0a 73 6f 6d 65 |robably by .some| 000088e0 6f 6e 65 20 65 6c 73 65 21 29 2e 20 49 74 20 69 |one else!). It i| 000088f0 73 20 61 6c 73 6f 20 66 61 72 20 65 61 73 69 65 |s also far easie| 00008900 72 20 74 6f 20 65 64 69 74 20 74 68 65 20 6d 65 |r to edit the me| 00008910 73 73 61 67 65 20 66 69 6c 65 20 74 6f 20 0a 63 |ssage file to .c| 00008920 68 61 6e 67 65 20 74 65 78 74 20 64 69 73 70 6c |hange text displ| 00008930 61 79 65 64 20 62 79 20 74 68 65 20 61 70 70 6c |ayed by the appl| 00008940 69 63 61 74 69 6f 6e 20 74 68 61 6e 20 75 73 69 |ication than usi| 00008950 6e 67 20 21 46 6f 72 6d 45 64 20 6f 72 20 73 69 |ng !FormEd or si| 00008960 6d 69 6c 61 72 2e 0a 0a 54 68 65 20 21 52 75 6e |milar...The !Run| 00008970 20 66 69 6c 65 20 61 75 74 6f 6d 61 74 69 63 61 | file automatica| 00008980 6c 6c 79 20 6c 6f 61 64 73 20 61 20 73 75 70 70 |lly loads a supp| 00008990 6f 72 74 20 6d 6f 64 75 6c 65 20 27 4d 73 67 54 |ort module 'MsgT| 000089a0 72 61 6e 73 27 20 69 66 0a 72 65 71 75 69 72 65 |rans' if.require| 000089b0 64 20 28 69 74 20 69 73 20 62 75 69 6c 74 20 69 |d (it is built i| 000089c0 6e 20 74 6f 20 52 49 53 43 2d 4f 53 20 33 29 20 |n to RISC-OS 3) | 000089d0 74 6f 20 70 72 6f 76 69 64 65 20 74 68 69 73 20 |to provide this | 000089e0 66 61 63 69 6c 69 74 79 2e 0a 0a 54 68 65 20 6d |facility...The m| 000089f0 65 73 73 61 67 65 20 66 69 6c 65 20 6d 75 73 74 |essage file must| 00008a00 20 62 65 20 63 61 6c 6c 65 64 20 27 4d 65 73 73 | be called 'Mess| 00008a10 61 67 65 73 27 20 61 6e 64 20 62 65 20 69 6e 20 |ages' and be in | 00008a20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 0a |the application.| 00008a30 64 69 72 65 63 74 6f 72 79 20 6f 72 20 69 6e 20 |directory or in | 00008a40 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 |the appropriate | 00008a50 6c 61 6e 67 75 61 67 65 20 64 69 72 65 63 74 6f |language directo| 00008a60 72 79 20 69 66 20 52 65 73 46 69 6e 64 20 69 73 |ry if ResFind is| 00008a70 20 69 6e 0a 75 73 65 2e 20 41 20 63 61 6c 6c 20 | in.use. A call | 00008a80 74 6f 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 52 65 |to <PROCshell_Re| 00008a90 73 6f 75 72 63 65 73 49 6e 69 74 3e 20 77 69 6c |sourcesInit> wil| 00008aa0 6c 20 66 69 6e 64 20 74 68 65 20 66 69 6c 65 20 |l find the file | 00008ab0 69 66 20 69 74 20 65 78 69 73 74 73 0a 61 6e 64 |if it exists.and| 00008ac0 20 6c 6f 61 64 20 61 6c 6c 20 74 68 65 20 6d 65 | load all the me| 00008ad0 73 73 61 67 65 73 20 69 74 20 63 6f 6e 74 61 69 |ssages it contai| 00008ae0 6e 73 20 61 6c 6c 6f 63 61 74 69 6e 67 20 6d 65 |ns allocating me| 00008af0 6d 6f 72 79 20 61 73 20 72 65 71 75 69 72 65 64 |mory as required| 00008b00 2e 0a 0a 54 68 65 20 6d 65 73 73 61 67 65 73 20 |...The messages | 00008b10 69 73 73 75 65 64 20 62 79 20 74 68 65 20 6c 69 |issued by the li| 00008b20 62 72 61 72 79 20 63 6f 64 65 20 61 72 65 20 73 |brary code are s| 00008b30 74 6f 72 65 64 20 69 6e 20 61 20 66 69 6c 65 20 |tored in a file | 00008b40 63 61 6c 6c 65 64 0a 27 53 68 65 6c 6c 4d 73 67 |called.'ShellMsg| 00008b50 73 27 20 69 6e 73 69 64 65 20 74 68 65 20 21 53 |s' inside the !S| 00008b60 68 65 6c 6c 53 79 73 2e 52 65 73 6f 75 72 63 65 |hellSys.Resource| 00008b70 73 2e 55 4b 20 64 69 72 65 63 74 6f 72 79 2e 20 |s.UK directory. | 00008b80 49 66 20 74 68 69 73 20 66 69 6c 65 0a 69 73 20 |If this file.is | 00008b90 70 72 65 73 65 6e 74 20 69 6e 20 74 68 65 20 75 |present in the u| 00008ba0 73 65 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 |ser application | 00008bb0 64 69 72 65 63 74 6f 72 79 20 74 68 65 6e 20 69 |directory then i| 00008bc0 74 20 69 73 20 6c 6f 61 64 65 64 20 66 72 6f 6d |t is loaded from| 00008bd0 0a 74 68 65 72 65 2c 20 69 66 20 6e 6f 74 20 69 |.there, if not i| 00008be0 74 20 69 73 20 6c 6f 61 64 65 64 20 66 72 6f 6d |t is loaded from| 00008bf0 20 21 53 68 65 6c 6c 53 79 73 2e 20 54 68 69 73 | !ShellSys. This| 00008c00 20 69 73 20 74 6f 20 61 69 64 20 74 68 65 0a 63 | is to aid the.c| 00008c10 6f 6e 73 74 72 75 63 74 69 6f 6e 20 6f 66 20 73 |onstruction of s| 00008c20 74 61 6e 64 20 61 6c 6f 6e 65 20 61 70 70 6c 69 |tand alone appli| 00008c30 63 61 74 69 6f 6e 73 2e 53 70 72 69 74 65 73 0a |cations.Sprites.| 00008c40 54 68 65 20 73 70 72 69 74 65 20 66 69 6c 65 20 |The sprite file | 00008c50 6d 75 73 74 20 62 65 20 63 61 6c 6c 65 64 20 27 |must be called '| 00008c60 53 70 72 69 74 65 73 27 20 61 6e 64 20 62 65 20 |Sprites' and be | 00008c70 65 69 74 68 65 72 20 69 6e 20 74 68 65 0a 61 70 |either in the.ap| 00008c80 70 6c 69 63 61 74 69 6f 6e 20 64 69 72 65 63 74 |plication direct| 00008c90 6f 72 79 20 6f 72 20 69 6e 20 74 68 65 20 61 70 |ory or in the ap| 00008ca0 70 72 6f 70 72 69 61 74 65 20 6c 61 6e 67 75 61 |propriate langua| 00008cb0 67 65 20 64 69 72 65 63 74 6f 72 79 0a 69 66 20 |ge directory.if | 00008cc0 52 65 73 46 69 6e 64 20 69 73 20 69 6e 20 75 73 |ResFind is in us| 00008cd0 65 2e 20 41 20 63 61 6c 6c 20 74 6f 20 3c 50 52 |e. A call to <PR| 00008ce0 4f 43 73 68 65 6c 6c 5f 52 65 73 6f 75 72 63 65 |OCshell_Resource| 00008cf0 73 49 6e 69 74 3e 20 77 69 6c 6c 0a 66 69 6e 64 |sInit> will.find| 00008d00 20 74 68 65 20 66 69 6c 65 20 69 66 20 69 74 20 | the file if it | 00008d10 65 78 69 73 74 73 20 61 6e 64 20 6c 6f 61 64 20 |exists and load | 00008d20 61 6c 6c 20 74 68 65 20 73 70 72 69 74 65 73 20 |all the sprites | 00008d30 69 74 20 63 6f 6e 74 61 69 6e 73 0a 61 6c 6c 6f |it contains.allo| 00008d40 63 61 74 69 6e 67 20 6d 65 6d 6f 72 79 20 61 73 |cating memory as| 00008d50 20 72 65 71 75 69 72 65 64 2e 0a 0a 54 68 65 20 | required...The | 00008d60 73 70 72 69 74 65 20 61 72 65 61 20 70 6f 69 6e |sprite area poin| 00008d70 74 65 72 20 66 6f 72 20 65 61 63 68 20 6c 6f 61 |ter for each loa| 00008d80 64 65 64 20 74 65 6d 70 6c 61 74 65 20 77 69 6c |ded template wil| 00008d90 6c 20 62 65 20 73 65 74 20 74 6f 0a 70 6f 69 6e |l be set to.poin| 00008da0 74 20 74 6f 20 74 68 65 20 75 73 65 72 20 73 70 |t to the user sp| 00008db0 72 69 74 65 20 61 72 65 61 2c 20 77 68 69 63 68 |rite area, which| 00008dc0 20 70 75 74 20 73 69 6d 70 6c 79 20 74 68 69 73 | put simply this| 00008dd0 20 6d 65 61 6e 73 20 74 68 61 74 0a 61 6c 6c 20 | means that.all | 00008de0 73 70 72 69 74 65 73 20 64 69 73 70 6c 61 79 65 |sprites displaye| 00008df0 64 20 69 6e 20 77 69 6e 64 6f 77 73 20 6d 75 73 |d in windows mus| 00008e00 74 20 62 65 20 70 72 65 73 65 6e 74 20 69 6e 20 |t be present in | 00008e10 74 68 65 0a 27 53 70 72 69 74 65 73 27 20 66 69 |the.'Sprites' fi| 00008e20 6c 65 2e 20 54 68 69 73 20 6d 61 79 2c 20 68 6f |le. This may, ho| 00008e30 77 65 76 65 72 2c 20 62 65 20 63 68 61 6e 67 65 |wever, be change| 00008e40 64 20 61 66 74 65 72 20 6c 6f 61 64 69 6e 67 2e |d after loading.| 00008e50 49 6e 74 65 72 66 61 63 65 20 4d 6f 64 75 6c 65 |Interface Module| 00008e60 0a 54 68 65 20 73 68 65 6c 6c 20 6c 69 62 72 61 |.The shell libra| 00008e70 72 79 20 6d 61 6b 65 73 20 74 68 65 20 61 73 73 |ry makes the ass| 00008e80 75 6d 70 74 69 6f 6e 20 74 68 61 74 20 74 68 65 |umption that the| 00008e90 20 69 6e 74 65 72 66 61 63 65 20 6d 6f 64 75 6c | interface modul| 00008ea0 65 20 0a 77 69 6c 6c 20 61 6c 77 61 79 73 20 62 |e .will always b| 00008eb0 65 20 75 73 65 64 2e 20 54 68 65 20 72 65 61 73 |e used. The reas| 00008ec0 6f 6e 20 69 73 20 74 68 61 74 20 66 69 72 73 74 |on is that first| 00008ed0 6c 79 20 74 68 61 74 20 69 74 20 69 73 20 68 69 |ly that it is hi| 00008ee0 67 68 6c 79 20 0a 6c 69 6b 65 6c 79 20 74 68 61 |ghly .likely tha| 00008ef0 74 20 73 6f 6d 65 20 6f 74 68 65 72 20 50 44 20 |t some other PD | 00008f00 70 72 6f 67 72 61 6d 20 77 69 6c 6c 20 68 61 76 |program will hav| 00008f10 65 20 61 6c 72 65 61 64 79 20 6c 6f 61 64 65 64 |e already loaded| 00008f20 20 69 74 2c 20 0a 61 6e 64 20 73 65 63 6f 6e 64 | it, .and second| 00008f30 6c 79 20 74 68 61 74 20 74 68 65 20 66 61 63 69 |ly that the faci| 00008f40 6c 69 74 69 65 73 20 69 74 20 70 72 6f 76 69 64 |lities it provid| 00008f50 65 73 20 66 6f 72 20 63 68 61 6e 67 69 6e 67 20 |es for changing | 00008f60 70 6f 69 6e 74 65 72 20 0a 73 68 61 70 65 73 20 |pointer .shapes | 00008f70 6f 76 65 72 20 63 65 72 74 61 69 6e 20 69 63 6f |over certain ico| 00008f80 6e 73 20 69 73 20 65 78 74 72 65 6d 65 6c 79 20 |ns is extremely | 00008f90 75 73 65 66 75 6c 20 61 73 20 61 20 70 72 6f 6d |useful as a prom| 00008fa0 70 74 20 66 6f 72 20 0a 77 68 61 74 20 74 68 65 |pt for .what the| 00008fb0 20 69 63 6f 6e 20 69 73 20 66 6f 72 2e 20 49 6e | icon is for. In| 00008fc0 64 65 65 64 20 52 49 53 43 2d 4f 53 20 33 20 68 |deed RISC-OS 3 h| 00008fd0 61 73 20 74 68 69 73 20 62 75 69 6c 74 20 69 6e |as this built in| 00008fe0 20 73 6f 20 65 76 65 6e 20 0a 41 63 6f 72 6e 20 | so even .Acorn | 00008ff0 61 72 65 20 73 75 70 70 6f 72 74 69 6e 67 20 33 |are supporting 3| 00009000 44 20 62 75 74 74 6f 6e 73 20 65 74 63 2e 2e 2e |D buttons etc...| 00009010 2e 0a 0a 54 68 65 20 6d 6f 64 75 6c 65 20 69 73 |...The module is| 00009020 20 6c 6f 61 64 65 64 20 62 79 20 74 68 65 20 21 | loaded by the !| 00009030 52 75 6e 20 66 69 6c 65 20 69 66 20 6e 6f 74 20 |Run file if not | 00009040 61 6c 72 65 61 64 79 20 6c 6f 61 64 65 64 2e 20 |already loaded. | 00009050 55 73 69 6e 67 0a 61 20 74 65 6d 70 6c 61 74 65 |Using.a template| 00009060 20 65 64 69 74 6f 72 20 74 68 61 74 20 69 73 20 | editor that is | 00009070 27 49 6e 74 65 72 66 61 63 65 20 41 77 61 72 65 |'Interface Aware| 00009080 27 20 6d 61 6b 65 73 20 69 6e 63 6f 72 70 6f 72 |' makes incorpor| 00009090 61 74 69 6e 67 20 0a 74 68 65 73 65 20 65 66 66 |ating .these eff| 000090a0 65 63 74 73 20 69 6e 74 6f 20 61 20 75 73 65 72 |ects into a user| 000090b0 20 70 72 6f 67 72 61 6d 20 65 61 73 79 20 61 73 | program easy as| 000090c0 20 6f 6e 63 65 20 74 68 65 20 69 63 6f 6e 73 20 | once the icons | 000090d0 68 61 76 65 20 62 65 65 6e 0a 64 65 73 69 67 6e |have been.design| 000090e0 65 64 20 61 6e 64 20 70 6c 61 63 65 64 20 74 68 |ed and placed th| 000090f0 65 20 73 68 65 6c 6c 20 6c 69 62 72 61 72 79 20 |e shell library | 00009100 68 61 6e 64 6c 65 73 20 61 6c 6c 20 74 68 65 20 |handles all the | 00009110 72 65 64 72 61 77 69 6e 67 20 0a 61 75 74 6f 6d |redrawing .autom| 00009120 61 74 69 63 61 6c 6c 79 2e 0a 0a 4e 6f 74 65 20 |atically...Note | 00009130 74 68 61 74 20 77 69 6e 64 6f 77 73 20 63 6f 6e |that windows con| 00009140 74 61 69 6e 69 6e 67 20 33 64 20 69 6e 74 65 72 |taining 3d inter| 00009150 66 61 63 65 20 69 63 6f 6e 73 20 6d 75 73 74 20 |face icons must | 00009160 68 61 76 65 20 74 68 65 20 27 41 75 74 6f 0a 52 |have the 'Auto.R| 00009170 65 64 72 61 77 27 20 66 6c 61 67 20 6f 66 66 2c |edraw' flag off,| 00009180 20 62 75 74 20 69 66 20 74 68 65 20 74 65 6d 70 | but if the temp| 00009190 6c 61 74 65 20 65 64 69 74 6f 72 20 64 69 73 70 |late editor disp| 000091a0 6c 61 79 73 20 69 6e 74 65 72 66 61 63 65 20 0a |lays interface .| 000091b0 69 63 6f 6e 73 20 74 68 65 6e 20 74 68 65 20 75 |icons then the u| 000091c0 73 65 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 |ser application | 000091d0 77 69 6c 6c 20 61 73 20 77 65 6c 6c 2e 50 61 6e |will as well.Pan| 000091e0 65 73 0a 41 20 70 61 6e 65 20 77 69 6e 64 6f 77 |es.A pane window| 000091f0 20 69 73 20 61 20 77 69 6e 64 6f 77 20 61 74 74 | is a window att| 00009200 61 63 68 65 64 20 74 6f 20 61 20 70 61 72 65 6e |ached to a paren| 00009210 74 20 77 69 6e 64 6f 77 20 77 68 69 63 68 20 68 |t window which h| 00009220 61 73 20 0a 64 69 66 66 65 72 65 6e 74 20 70 72 |as .different pr| 00009230 6f 70 65 72 74 69 65 73 20 74 6f 20 74 68 65 20 |operties to the | 00009240 70 61 72 65 6e 74 2e 20 41 20 77 65 6c 6c 2d 6b |parent. A well-k| 00009250 6e 6f 77 6e 20 65 78 61 6d 70 6c 65 20 69 73 20 |nown example is | 00009260 74 68 65 20 0a 27 54 6f 6f 6c 42 6f 78 27 20 70 |the .'ToolBox' p| 00009270 61 6e 65 20 61 74 74 61 63 68 65 64 20 74 6f 20 |ane attached to | 00009280 61 20 21 44 72 61 77 20 77 69 6e 64 6f 77 20 77 |a !Draw window w| 00009290 68 69 63 68 20 61 6c 77 61 79 73 20 61 70 70 65 |hich always appe| 000092a0 61 72 73 20 0a 61 74 20 74 68 65 20 74 6f 70 20 |ars .at the top | 000092b0 6c 65 66 74 20 6f 66 20 74 68 65 20 70 61 72 65 |left of the pare| 000092c0 6e 74 20 77 69 6e 64 6f 77 20 68 6f 77 65 76 65 |nt window howeve| 000092d0 72 20 74 68 65 20 70 61 72 65 6e 74 20 77 69 6e |r the parent win| 000092e0 64 6f 77 20 0a 69 73 20 73 63 72 6f 6c 6c 65 64 |dow .is scrolled| 000092f0 2e 20 41 6e 6f 74 68 65 72 20 65 78 61 6d 70 6c |. Another exampl| 00009300 65 20 63 6f 75 6c 64 20 62 65 20 61 20 70 61 72 |e could be a par| 00009310 65 6e 74 20 77 69 6e 64 6f 77 20 77 69 74 68 6f |ent window witho| 00009320 75 74 20 0a 73 63 72 6f 6c 6c 62 61 72 73 20 77 |ut .scrollbars w| 00009330 68 69 63 68 20 68 61 73 20 61 20 73 63 72 6f 6c |hich has a scrol| 00009340 6c 69 6e 67 20 70 61 6e 65 20 61 74 74 61 63 68 |ling pane attach| 00009350 65 64 20 74 6f 20 74 68 65 20 77 6f 72 6b 20 61 |ed to the work a| 00009360 72 65 61 20 0a 77 68 69 63 68 20 6d 69 67 68 74 |rea .which might| 00009370 20 62 65 20 75 73 65 64 20 69 6e 20 61 20 27 46 | be used in a 'F| 00009380 69 6e 64 46 69 6c 65 27 20 61 70 70 6c 69 63 61 |indFile' applica| 00009390 74 69 6f 6e 20 74 6f 20 64 69 73 70 6c 61 79 20 |tion to display | 000093a0 61 20 0a 6c 69 73 74 20 6f 66 20 66 69 6e 64 73 |a .list of finds| 000093b0 2e 0a 0a 50 61 6e 65 73 20 61 72 65 20 63 72 65 |...Panes are cre| 000093c0 61 74 65 64 20 75 73 69 6e 67 20 21 46 6f 72 6d |ated using !Form| 000093d0 45 64 20 6f 72 20 73 69 6d 69 6c 61 72 20 77 69 |Ed or similar wi| 000093e0 74 68 20 74 68 65 20 27 70 61 6e 65 27 20 66 6c |th the 'pane' fl| 000093f0 61 67 20 0a 73 65 74 2e 20 41 20 63 61 6c 6c 20 |ag .set. A call | 00009400 74 6f 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 41 74 |to <PROCshell_At| 00009410 74 61 63 68 50 61 6e 65 3e 20 73 70 65 63 69 66 |tachPane> specif| 00009420 69 65 73 20 77 68 69 63 68 20 70 61 6e 65 20 69 |ies which pane i| 00009430 73 20 0a 61 74 74 61 63 68 65 64 20 74 6f 20 77 |s .attached to w| 00009440 68 69 63 68 20 77 69 6e 64 6f 77 20 61 6e 64 20 |hich window and | 00009450 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 |the position of | 00009460 74 68 65 20 70 61 6e 65 2e 20 4d 75 6c 74 69 70 |the pane. Multip| 00009470 6c 65 20 0a 70 61 6e 65 73 20 6d 61 79 20 74 6f |le .panes may to| 00009480 20 61 74 74 61 63 68 65 64 20 74 6f 20 61 20 70 | attached to a p| 00009490 61 72 65 6e 74 20 77 69 6e 64 6f 77 20 28 73 65 |arent window (se| 000094a0 65 20 74 68 65 20 65 78 61 6d 70 6c 65 20 0a 61 |e the example .a| 000094b0 70 70 6c 69 63 61 74 69 6f 6e 20 21 50 61 6e 65 |pplication !Pane| 000094c0 73 29 2e 0a 0a 54 68 65 20 6f 70 65 6e 69 6e 67 |s)...The opening| 000094d0 20 61 6e 64 20 63 6c 6f 73 69 6e 67 20 6f 66 20 | and closing of | 000094e0 70 61 6e 65 73 20 69 73 20 68 61 6e 64 6c 65 64 |panes is handled| 000094f0 20 74 6f 74 61 6c 6c 79 20 62 79 20 74 68 65 20 | totally by the | 00009500 73 68 65 6c 6c 0a 6c 69 62 72 61 72 79 20 2d 20 |shell.library - | 00009510 61 20 63 61 6c 6c 20 74 6f 20 3c 50 52 4f 43 73 |a call to <PROCs| 00009520 68 65 6c 6c 5f 4f 70 65 6e 57 69 6e 64 6f 77 3e |hell_OpenWindow>| 00009530 20 61 66 74 65 72 20 61 74 74 61 63 68 69 6e 67 | after attaching| 00009540 20 74 68 65 0a 70 61 6e 65 73 20 77 69 6c 6c 20 | the.panes will | 00009550 6f 70 65 6e 20 74 68 65 20 70 61 72 65 6e 74 20 |open the parent | 00009560 77 69 6e 64 6f 77 20 61 6e 64 20 74 68 65 20 70 |window and the p| 00009570 61 6e 65 73 20 74 6f 67 65 74 68 65 72 2e 53 61 |anes together.Sa| 00009580 76 69 6e 67 20 44 61 74 61 0a 54 68 69 73 20 69 |ving Data.This i| 00009590 73 20 61 63 68 69 65 76 65 64 20 62 79 20 61 20 |s achieved by a | 000095a0 63 61 6c 6c 20 74 6f 20 3c 50 52 4f 43 73 68 65 |call to <PROCshe| 000095b0 6c 6c 5f 41 74 74 61 63 68 44 61 74 61 53 61 76 |ll_AttachDataSav| 000095c0 65 3e 20 77 68 69 63 68 20 0a 73 70 65 63 69 66 |e> which .specif| 000095d0 69 65 73 20 77 68 69 63 68 20 66 69 6c 65 74 79 |ies which filety| 000095e0 70 65 20 74 68 65 20 73 61 76 65 64 20 66 69 6c |pe the saved fil| 000095f0 65 20 73 68 6f 75 6c 64 20 62 65 20 67 69 76 65 |e should be give| 00009600 6e 2c 20 74 68 65 20 6e 61 6d 65 20 0a 6f 66 20 |n, the name .of | 00009610 61 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 |a function which| 00009620 20 77 69 6c 6c 20 61 63 74 75 61 6c 6c 79 20 70 | will actually p| 00009630 65 72 66 6f 72 6d 20 74 68 65 20 73 61 76 65 20 |erform the save | 00009640 61 6e 64 20 74 68 65 20 0a 77 69 6e 64 6f 77 2f |and the .window/| 00009650 69 63 6f 6e 20 68 61 6e 64 6c 65 73 20 74 68 65 |icon handles the| 00009660 20 64 72 61 67 20 73 61 76 65 20 65 76 65 6e 74 | drag save event| 00009670 20 69 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 | is associated w| 00009680 69 74 68 2e 20 49 74 20 69 73 20 0a 74 68 65 72 |ith. It is .ther| 00009690 65 66 6f 72 65 20 70 6f 73 73 69 62 6c 65 20 74 |efore possible t| 000096a0 6f 20 68 61 76 65 20 64 69 66 66 65 72 65 6e 74 |o have different| 000096b0 20 64 72 61 67 20 73 61 76 65 20 65 76 65 6e 74 | drag save event| 000096c0 73 20 61 74 74 61 63 68 65 64 20 74 6f 20 0a 64 |s attached to .d| 000096d0 69 66 66 65 72 65 6e 74 20 69 63 6f 6e 73 20 69 |ifferent icons i| 000096e0 6e 20 74 68 65 20 73 61 6d 65 20 77 69 6e 64 6f |n the same windo| 000096f0 77 2e 20 54 68 69 73 20 69 73 20 75 73 65 66 75 |w. This is usefu| 00009700 6c 20 77 68 65 72 65 20 69 74 20 69 73 20 0a 70 |l where it is .p| 00009710 6f 73 73 69 62 6c 65 20 74 6f 20 73 61 76 65 20 |ossible to save | 00009720 74 68 65 20 66 69 6c 65 20 61 73 20 6d 6f 72 65 |the file as more| 00009730 20 74 68 61 6e 20 6f 6e 65 20 74 79 70 65 20 2d | than one type -| 00009740 20 79 6f 75 20 63 61 6e 20 68 61 76 65 20 0a 6d | you can have .m| 00009750 75 6c 74 69 70 6c 65 20 66 69 6c 65 74 79 70 65 |ultiple filetype| 00009760 20 69 63 6f 6e 73 20 69 6e 20 74 68 65 20 73 61 | icons in the sa| 00009770 76 65 20 77 69 6e 64 6f 77 2e 20 0a 0a 54 68 65 |ve window. ..The| 00009780 20 45 76 6e 74 53 68 65 6c 6c 20 6c 69 62 72 61 | EvntShell libra| 00009790 72 79 20 73 75 70 70 6f 72 74 73 20 52 41 4d 20 |ry supports RAM | 000097a0 66 69 6c 65 20 74 72 61 6e 73 66 65 72 20 66 6f |file transfer fo| 000097b0 72 20 73 70 65 65 64 20 77 68 65 6e 0a 73 61 76 |r speed when.sav| 000097c0 69 6e 67 20 64 61 74 61 20 74 6f 20 63 6f 6e 73 |ing data to cons| 000097d0 65 6e 74 69 6e 67 20 61 70 70 6c 69 63 61 74 69 |enting applicati| 000097e0 6f 6e 73 2e 0a 0a 53 65 65 20 74 68 65 20 21 57 |ons...See the !W| 000097f0 69 6e 53 61 76 65 20 61 6e 64 20 21 56 42 61 73 |inSave and !VBas| 00009800 65 32 20 65 78 61 6d 70 6c 65 20 61 70 70 6c 69 |e2 example appli| 00009810 63 61 74 69 6f 6e 73 20 66 6f 72 20 68 6f 77 20 |cations for how | 00009820 74 6f 20 75 73 65 20 0a 74 68 69 73 20 72 6f 75 |to use .this rou| 00009830 74 69 6e 65 2e 4c 6f 61 64 69 6e 67 20 44 61 74 |tine.Loading Dat| 00009840 61 0a 0a 54 68 69 73 20 69 73 20 61 63 68 69 65 |a..This is achie| 00009850 76 65 64 20 62 79 20 61 20 63 61 6c 6c 20 74 6f |ved by a call to| 00009860 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 | <PROCshell_Atta| 00009870 63 68 44 61 74 61 4c 6f 61 64 3e 20 77 68 69 63 |chDataLoad> whic| 00009880 68 20 0a 74 65 6c 6c 73 20 74 68 65 20 45 76 6e |h .tells the Evn| 00009890 74 53 68 65 6c 6c 20 6c 69 62 72 61 72 79 20 77 |tShell library w| 000098a0 68 69 63 68 20 66 69 6c 65 74 79 70 65 73 20 74 |hich filetypes t| 000098b0 68 65 20 75 73 65 72 20 61 70 70 6c 69 63 61 74 |he user applicat| 000098c0 69 6f 6e 0a 69 73 20 69 6e 74 65 72 65 73 74 65 |ion.is intereste| 000098d0 64 20 69 6e 20 61 6e 64 20 74 68 65 20 6e 61 6d |d in and the nam| 000098e0 65 20 6f 66 20 61 20 66 75 6e 63 74 69 6f 6e 20 |e of a function | 000098f0 74 6f 20 63 61 6c 6c 20 77 68 65 6e 20 61 20 6c |to call when a l| 00009900 6f 61 64 0a 65 76 65 6e 74 20 6f 63 63 75 72 73 |oad.event occurs| 00009910 2e 20 4d 75 6c 74 69 70 6c 65 20 66 69 6c 65 73 |. Multiple files| 00009920 20 6d 61 79 20 62 65 20 6c 6f 61 64 65 64 2c 20 | may be loaded, | 00009930 62 75 74 20 69 6e 20 74 68 65 20 63 75 72 72 65 |but in the curre| 00009940 6e 74 0a 72 65 6c 65 61 73 65 20 6f 66 20 74 68 |nt.release of th| 00009950 65 20 6c 69 62 72 61 72 79 20 69 74 20 69 73 20 |e library it is | 00009960 75 70 20 74 6f 20 74 68 65 20 75 73 65 72 20 61 |up to the user a| 00009970 70 70 6c 69 63 61 74 69 6f 6e 20 74 6f 20 6b 65 |pplication to ke| 00009980 65 70 0a 74 72 61 63 6b 20 6f 66 20 77 68 65 72 |ep.track of wher| 00009990 65 20 74 68 65 79 20 61 72 65 20 6c 6f 61 64 65 |e they are loade| 000099a0 64 20 61 6e 64 20 69 66 20 74 68 65 79 20 68 61 |d and if they ha| 000099b0 76 65 20 62 65 65 6e 20 6d 6f 64 69 66 69 65 64 |ve been modified| 000099c0 2e 0a 54 68 69 73 20 77 69 6c 6c 20 63 68 61 6e |..This will chan| 000099d0 67 65 20 69 6e 20 61 20 66 75 74 75 72 65 20 72 |ge in a future r| 000099e0 65 6c 65 61 73 65 2e 0a 0a 49 66 20 72 65 71 75 |elease...If requ| 000099f0 69 72 65 64 20 74 68 65 20 66 69 6c 65 73 20 63 |ired the files c| 00009a00 61 6e 20 62 65 20 6c 6f 61 64 65 64 20 61 75 74 |an be loaded aut| 00009a10 6f 6d 61 74 69 63 61 6c 6c 79 20 69 6e 74 6f 20 |omatically into | 00009a20 61 20 72 65 73 65 72 76 65 64 0a 62 6c 6f 63 6b |a reserved.block| 00009a30 20 6f 66 20 6d 65 6d 6f 72 79 2c 20 6f 72 20 74 | of memory, or t| 00009a40 68 65 20 75 73 65 72 20 61 70 70 6c 69 63 61 74 |he user applicat| 00009a50 69 6f 6e 20 63 61 6e 20 68 61 76 65 20 74 6f 74 |ion can have tot| 00009a60 61 6c 20 63 6f 6e 74 72 6f 6c 0a 6f 76 65 72 20 |al control.over | 00009a70 6c 6f 61 64 69 6e 67 20 61 6e 64 20 70 72 6f 63 |loading and proc| 00009a80 65 73 73 69 6e 67 20 74 68 65 20 66 69 6c 65 2e |essing the file.| 00009a90 0a 0a 54 68 65 20 45 76 6e 74 53 68 65 6c 6c 20 |..The EvntShell | 00009aa0 6c 69 62 72 61 72 79 20 73 75 70 70 6f 72 74 73 |library supports| 00009ab0 20 52 41 4d 20 66 69 6c 65 20 74 72 61 6e 73 66 | RAM file transf| 00009ac0 65 72 20 66 6f 72 20 73 70 65 65 64 20 77 68 65 |er for speed whe| 00009ad0 6e 0a 6c 6f 61 64 69 6e 67 20 64 61 74 61 20 66 |n.loading data f| 00009ae0 72 6f 6d 20 63 6f 6e 73 65 6e 74 69 6e 67 20 61 |rom consenting a| 00009af0 70 70 6c 69 63 61 74 69 6f 6e 73 2e 0a 0a 49 74 |pplications...It| 00009b00 20 69 73 20 61 6c 73 6f 20 70 6f 73 73 69 62 6c | is also possibl| 00009b10 65 20 74 6f 20 61 72 72 61 6e 67 65 20 66 6f 72 |e to arrange for| 00009b20 20 74 68 65 20 75 73 65 72 20 61 70 70 6c 69 63 | the user applic| 00009b30 61 74 69 6f 6e 20 74 6f 20 72 65 73 70 6f 6e 64 |ation to respond| 00009b40 20 0a 74 6f 20 61 20 72 61 6e 67 65 20 6f 66 20 | .to a range of | 00009b50 66 69 6c 65 74 79 70 65 73 20 62 79 20 61 74 74 |filetypes by att| 00009b60 61 63 68 69 6e 67 20 6d 6f 72 65 20 74 68 61 6e |aching more than| 00009b70 20 6f 6e 65 20 68 61 6e 64 6c 65 72 2e 43 6f 6d | one handler.Com| 00009b80 70 72 65 73 73 69 6e 67 20 54 68 65 20 41 70 70 |pressing The App| 00009b90 6c 69 63 61 74 69 6f 6e 0a 49 20 72 65 63 6f 6d |lication.I recom| 00009ba0 6d 65 6e 64 20 21 42 61 73 53 68 72 69 6e 6b 20 |mend !BasShrink | 00009bb0 6f 72 20 21 53 68 72 69 6e 6b 5f 50 44 20 28 74 |or !Shrink_PD (t| 00009bc0 68 65 20 50 75 62 6c 69 63 20 44 6f 6d 61 69 6e |he Public Domain| 00009bd0 20 76 65 72 73 69 6f 6e 20 0a 6f 66 20 21 42 61 | version .of !Ba| 00009be0 73 53 68 72 69 6e 6b 29 20 62 79 20 3c 4a 6f 68 |sShrink) by <Joh| 00009bf0 6e 20 57 61 6c 6c 61 63 65 3d 3e 57 61 6c 6c 61 |n Wallace=>Walla| 00009c00 63 65 3e 2e 20 49 74 20 69 73 20 70 6f 73 73 69 |ce>. It is possi| 00009c10 62 6c 65 20 66 6f 72 20 0a 65 78 61 6d 70 6c 65 |ble for .example| 00009c20 20 74 6f 20 63 6f 6d 62 69 6e 65 20 74 68 65 20 | to combine the | 00009c30 21 50 61 6e 65 73 20 61 70 70 6c 69 63 61 74 69 |!Panes applicati| 00009c40 6f 6e 20 61 6e 64 20 74 68 65 20 73 68 65 6c 6c |on and the shell| 00009c50 20 6c 69 62 72 61 72 79 20 0a 74 6f 20 66 6f 72 | library .to for| 00009c60 6d 20 61 20 73 74 61 6e 64 20 61 6c 6f 6e 65 20 |m a stand alone | 00009c70 70 72 6f 67 72 61 6d 20 61 6e 64 20 74 68 65 6e |program and then| 00009c80 20 75 73 65 20 21 42 61 73 53 68 72 69 6e 6b 20 | use !BasShrink | 00009c90 74 6f 20 72 65 64 75 63 65 20 0a 69 74 20 66 72 |to reduce .it fr| 00009ca0 6f 6d 20 35 31 4b 20 74 6f 20 61 72 6f 75 6e 64 |om 51K to around| 00009cb0 20 32 30 4b 2e 0a 0a 46 75 74 75 72 65 20 76 65 | 20K...Future ve| 00009cc0 72 73 69 6f 6e 73 20 6f 66 20 21 42 61 73 53 68 |rsions of !BasSh| 00009cd0 72 69 6e 6b 20 73 68 6f 75 6c 64 20 62 65 20 61 |rink should be a| 00009ce0 62 6c 65 20 74 6f 20 72 65 6d 6f 76 65 20 75 6e |ble to remove un| 00009cf0 75 73 65 64 0a 72 6f 75 74 69 6e 65 73 20 74 6f |used.routines to| 00009d00 20 73 61 76 65 20 65 76 65 6e 20 6d 6f 72 65 20 | save even more | 00009d10 73 70 61 63 65 2c 20 6f 72 20 61 6c 74 65 72 6e |space, or altern| 00009d20 61 74 69 76 65 6c 79 20 42 4c 69 62 49 49 20 63 |atively BLibII c| 00009d30 61 6e 20 62 65 0a 75 73 65 64 20 74 6f 20 70 72 |an be.used to pr| 00009d40 65 2d 70 72 6f 63 65 73 73 20 74 68 65 20 61 70 |e-process the ap| 00009d50 70 6c 69 63 61 74 69 6f 6e 20 74 6f 20 6c 69 6e |plication to lin| 00009d60 6b 20 69 6e 20 6f 6e 6c 79 20 74 68 65 20 72 6f |k in only the ro| 00009d70 75 74 69 6e 65 73 20 74 68 61 74 0a 61 72 65 20 |utines that.are | 00009d80 61 63 74 75 61 6c 6c 79 20 75 73 65 64 2e 20 53 |actually used. S| 00009d90 65 65 20 74 68 65 20 6d 61 6e 75 61 6c 20 73 65 |ee the manual se| 00009da0 63 74 69 6f 6e 20 27 4f 74 68 65 72 20 54 6f 6f |ction 'Other Too| 00009db0 6c 73 27 20 66 6f 72 20 6d 6f 72 65 0a 64 65 74 |ls' for more.det| 00009dc0 61 69 6c 73 2e 0a 0a 54 68 65 72 65 20 69 73 20 |ails...There is | 00009dd0 6f 6e 65 20 69 6d 70 6f 72 74 61 6e 74 20 70 6f |one important po| 00009de0 69 6e 74 20 74 6f 20 62 65 61 72 20 69 6e 20 6d |int to bear in m| 00009df0 69 6e 64 20 77 68 65 6e 20 75 73 69 6e 67 20 74 |ind when using t| 00009e00 68 65 20 73 68 65 6c 6c 20 0a 6c 69 62 72 61 72 |he shell .librar| 00009e10 79 20 61 6e 64 20 21 42 61 73 53 68 72 69 6e 6b |y and !BasShrink| 00009e20 20 74 6f 67 65 74 68 65 72 20 2d 20 66 75 6e 63 | together - func| 00009e30 74 69 6f 6e 20 6e 61 6d 65 73 20 74 68 61 74 20 |tion names that | 00009e40 61 72 65 20 45 56 41 4c 75 61 74 65 64 20 0a 62 |are EVALuated .b| 00009e50 79 20 74 68 65 20 73 68 65 6c 6c 20 6c 69 62 72 |y the shell libr| 00009e60 61 72 79 20 73 68 6f 75 6c 64 20 62 65 67 69 6e |ary should begin| 00009e70 20 77 69 74 68 20 61 20 27 5f 27 20 63 68 61 72 | with a '_' char| 00009e80 61 63 74 65 72 20 61 6e 64 20 74 68 65 20 0a 27 |acter and the .'| 00009e90 50 72 65 73 65 72 76 65 20 6e 61 6d 65 73 20 73 |Preserve names s| 00009ea0 74 61 72 74 69 6e 67 20 77 69 74 68 27 20 72 61 |tarting with' ra| 00009eb0 64 69 6f 20 62 75 74 74 6f 6e 20 69 6e 20 74 68 |dio button in th| 00009ec0 65 20 21 42 61 73 53 68 72 69 6e 6b 20 0a 77 69 |e !BasShrink .wi| 00009ed0 6e 64 6f 77 20 6d 75 73 74 20 62 65 20 4f 4e 2e |ndow must be ON.| 00009ee0 20 49 6e 20 73 68 6f 72 74 20 69 66 20 79 6f 75 | In short if you| 00009ef0 20 61 72 65 20 63 61 6c 6c 69 6e 67 20 61 6e 79 | are calling any| 00009f00 20 73 68 65 6c 6c 20 6c 69 62 72 61 72 79 20 0a | shell library .| 00009f10 72 6f 75 74 69 6e 65 20 74 68 61 74 20 68 61 73 |routine that has| 00009f20 20 61 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 | a function name| 00009f30 20 61 73 20 61 20 70 61 72 61 6d 65 74 65 72 20 | as a parameter | 00009f40 74 68 65 6e 20 74 68 61 74 20 6e 61 6d 65 20 6d |then that name m| 00009f50 75 73 74 20 0a 73 74 61 72 74 20 77 69 74 68 20 |ust .start with | 00009f60 61 20 27 5f 27 2e 20 46 61 69 6c 75 72 65 20 74 |a '_'. Failure t| 00009f70 6f 20 6f 62 73 65 72 76 65 20 74 68 69 73 20 72 |o observe this r| 00009f80 75 6c 65 20 77 69 6c 6c 20 72 65 73 75 6c 74 20 |ule will result | 00009f90 69 6e 20 61 20 0a 6e 6f 6e 2d 77 6f 72 6b 69 6e |in a .non-workin| 00009fa0 67 20 63 6f 6d 70 72 65 73 73 65 64 20 70 72 6f |g compressed pro| 00009fb0 67 72 61 6d 21 0a 0a 41 73 73 75 6d 69 6e 67 20 |gram!..Assuming | 00009fc0 79 6f 75 20 68 61 76 65 20 21 42 61 73 53 68 72 |you have !BasShr| 00009fd0 69 6e 6b 20 32 2e 31 34 20 6f 72 20 6c 61 74 65 |ink 2.14 or late| 00009fe0 72 20 74 68 65 20 45 76 6e 74 53 68 65 6c 6c 20 |r the EvntShell | 00009ff0 6c 69 62 72 61 72 79 0a 63 61 6e 20 62 65 20 63 |library.can be c| 0000a000 6f 6d 70 72 65 73 73 65 64 20 77 69 74 68 20 61 |ompressed with a| 0000a010 6c 6c 20 73 77 69 74 63 68 65 73 20 6f 6e 20 65 |ll switches on e| 0000a020 78 63 65 70 74 20 27 53 68 6f 72 74 65 6e 20 46 |xcept 'Shorten F| 0000a030 4e 20 6e 61 6d 65 73 27 2c 0a 27 53 68 6f 72 74 |N names',.'Short| 0000a040 65 6e 20 50 52 4f 43 20 6e 61 6d 65 73 27 20 61 |en PROC names' a| 0000a050 6e 64 20 27 52 65 6d 6f 76 65 20 2a 20 63 6f 6d |nd 'Remove * com| 0000a060 6d 65 6e 74 73 27 2e 20 49 66 20 79 6f 75 20 61 |ments'. If you a| 0000a070 72 65 20 6e 6f 74 20 67 6f 69 6e 67 0a 74 6f 20 |re not going.to | 0000a080 75 73 65 20 21 42 4c 69 62 49 49 20 79 6f 75 20 |use !BLibII you | 0000a090 63 61 6e 20 73 77 69 74 63 68 20 6f 6e 20 27 52 |can switch on 'R| 0000a0a0 65 6d 6f 76 65 20 2a 20 63 6f 6d 6d 65 6e 74 73 |emove * comments| 0000a0b0 27 20 74 6f 20 73 74 72 69 70 20 6f 75 74 0a 74 |' to strip out.t| 0000a0c0 68 65 20 21 42 4c 69 62 49 49 20 63 6f 6d 6d 61 |he !BLibII comma| 0000a0d0 6e 64 73 2e 0a 0a 49 66 20 79 6f 75 20 61 70 70 |nds...If you app| 0000a0e0 65 6e 64 20 74 68 65 20 45 76 6e 74 53 68 65 6c |end the EvntShel| 0000a0f0 6c 20 6c 69 62 72 61 72 79 20 74 6f 20 74 68 65 |l library to the| 0000a100 20 75 73 65 72 20 61 70 70 6c 69 63 61 74 69 6f | user applicatio| 0000a110 6e 0a 6d 61 6e 75 61 6c 6c 79 20 6f 72 20 62 79 |n.manually or by| 0000a120 20 75 73 69 6e 67 20 42 4c 69 62 49 49 20 79 6f | using BLibII yo| 0000a130 75 20 63 61 6e 20 63 6f 6d 70 72 65 73 73 20 74 |u can compress t| 0000a140 68 65 20 63 6f 6d 70 6c 65 74 65 20 70 72 6f 67 |he complete prog| 0000a150 72 61 6d 0a 77 69 74 68 20 61 6c 6c 20 73 77 69 |ram.with all swi| 0000a160 74 63 68 65 73 20 6f 6e 2e 4a 6f 68 6e 20 57 61 |tches on.John Wa| 0000a170 6c 6c 61 63 65 20 28 41 72 63 68 69 74 79 70 65 |llace (Architype| 0000a180 20 53 6f 66 74 57 61 72 65 29 0a 53 75 70 70 6c | SoftWare).Suppl| 0000a190 69 65 72 20 6f 66 20 21 42 61 73 53 68 72 69 6e |ier of !BasShrin| 0000a1a0 6b 20 77 68 69 63 68 20 63 6f 73 74 73 20 35 2e |k which costs 5.| 0000a1b0 30 30 70 2e 20 21 42 61 73 53 68 72 69 6e 6b 5f |00p. !BasShrink_| 0000a1c0 50 44 20 69 73 20 74 68 65 20 0a 50 75 62 6c 69 |PD is the .Publi| 0000a1d0 63 20 44 6f 6d 61 69 6e 20 76 65 72 73 69 6f 6e |c Domain version| 0000a1e0 20 61 6e 64 20 69 73 20 61 76 61 69 6c 61 62 6c | and is availabl| 0000a1f0 65 20 66 72 6f 6d 20 76 61 72 69 6f 75 73 20 50 |e from various P| 0000a200 44 20 6c 69 62 72 61 72 69 65 73 2e 0a 0a 4a 6f |D libraries...Jo| 0000a210 68 6e 20 57 61 6c 6c 61 63 65 2c 20 41 72 63 68 |hn Wallace, Arch| 0000a220 69 74 79 70 65 20 53 6f 66 74 77 61 72 65 2c 20 |itype Software, | 0000a230 35 34 20 50 61 72 6b 65 73 20 48 61 6c 6c 20 52 |54 Parkes Hall R| 0000a240 6f 61 64 2c 20 57 6f 6f 64 73 65 74 74 6f 6e 2c |oad, Woodsetton,| 0000a250 0a 44 75 64 6c 65 79 2c 20 57 65 73 74 20 4d 69 |.Dudley, West Mi| 0000a260 64 6c 61 6e 64 73 2c 20 44 59 31 20 33 53 52 20 |dlands, DY1 3SR | 0000a270 45 4e 47 4c 41 4e 44 2e 50 72 6f 67 72 61 6d 73 |ENGLAND.Programs| 0000a280 0a 21 44 61 74 61 4c 6f 61 64 20 20 20 2d 20 45 |.!DataLoad - E| 0000a290 76 6e 74 53 68 65 6c 6c 20 44 65 6d 6f 20 6f 66 |vntShell Demo of| 0000a2a0 20 6c 6f 61 64 69 6e 67 20 64 61 74 61 20 66 69 | loading data fi| 0000a2b0 6c 65 73 0a 21 45 76 6e 74 53 68 65 6c 6c 20 20 |les.!EvntShell | 0000a2c0 2d 20 45 76 6e 74 53 68 65 6c 6c 20 44 65 6d 6f |- EvntShell Demo| 0000a2d0 20 77 68 69 63 68 20 64 65 6d 6f 6e 73 74 72 61 | which demonstra| 0000a2e0 74 65 73 20 61 6e 20 27 61 64 64 72 65 73 73 20 |tes an 'address | 0000a2f0 62 6f 6f 6b 27 0a 20 20 20 20 20 20 20 20 20 20 |book'. | 0000a300 20 20 20 20 74 79 70 65 20 64 61 74 61 20 65 64 | type data ed| 0000a310 69 74 6f 72 2c 20 69 6e 63 6c 75 64 69 6e 67 20 |itor, including | 0000a320 6c 6f 61 64 69 6e 67 20 61 20 73 70 65 63 69 61 |loading a specia| 0000a330 6c 20 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 |l file. | 0000a340 20 20 20 20 20 74 79 70 65 0a 21 53 68 65 6c 6c | type.!Shell| 0000a350 44 42 75 67 20 20 2d 20 44 69 73 70 6c 61 79 20 |DBug - Display | 0000a360 74 72 61 63 65 20 6d 65 73 73 61 67 65 73 20 66 |trace messages f| 0000a370 72 6f 6d 20 45 76 6e 74 53 68 65 6c 6c 20 61 70 |rom EvntShell ap| 0000a380 70 6c 69 63 61 74 69 6f 6e 73 0a 21 50 61 6e 65 |plications.!Pane| 0000a390 73 20 20 20 20 20 20 2d 20 45 76 6e 74 53 68 65 |s - EvntShe| 0000a3a0 6c 6c 20 44 65 6d 6f 20 77 68 69 63 68 20 64 65 |ll Demo which de| 0000a3b0 6d 6f 6e 73 74 72 61 74 65 73 20 70 61 72 65 6e |monstrates paren| 0000a3c0 74 20 77 69 6e 64 6f 77 73 0a 20 20 20 20 20 20 |t windows. | 0000a3d0 20 20 20 20 20 20 20 20 61 6e 64 20 70 61 6e 65 | and pane| 0000a3e0 73 0a 21 56 42 61 73 65 32 20 20 20 20 20 2d 20 |s.!VBase2 - | 0000a3f0 45 76 6e 74 53 68 65 6c 6c 20 44 65 6d 6f 20 77 |EvntShell Demo w| 0000a400 68 69 63 68 20 64 65 6d 6f 6e 73 74 72 61 74 65 |hich demonstrate| 0000a410 73 20 68 6f 74 20 6b 65 79 73 2c 20 64 79 6e 61 |s hot keys, dyna| 0000a420 6d 69 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 |mic. | 0000a430 20 20 64 69 61 6c 6f 67 20 62 6f 78 65 73 20 61 | dialog boxes a| 0000a440 6e 64 20 73 61 76 69 6e 67 20 64 61 74 61 0a 21 |nd saving data.!| 0000a450 57 69 6e 53 61 76 65 20 20 20 20 2d 20 45 76 6e |WinSave - Evn| 0000a460 74 53 68 65 6c 6c 20 44 65 6d 6f 20 62 75 74 20 |tShell Demo but | 0000a470 75 73 65 66 75 6c 20 61 73 20 77 65 6c 6c 2e 20 |useful as well. | 0000a480 41 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 61 20 |An example of a | 0000a490 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 |. r| 0000a4a0 65 61 6c 20 77 6f 72 6b 69 6e 67 20 61 70 70 6c |eal working appl| 0000a4b0 69 63 61 74 69 6f 6e 20 75 73 69 6e 67 20 74 68 |ication using th| 0000a4c0 65 20 45 76 6e 74 53 68 65 6c 6c 20 6c 69 62 72 |e EvntShell libr| 0000a4d0 61 72 79 2e 0a 20 20 20 20 20 20 20 20 20 20 20 |ary.. | 0000a4e0 20 20 20 54 68 69 73 20 61 70 70 20 73 61 76 65 | This app save| 0000a4f0 73 20 64 65 73 6b 74 6f 70 20 77 69 6e 64 6f 77 |s desktop window| 0000a500 73 20 61 73 20 61 20 73 70 72 69 74 65 20 66 69 |s as a sprite fi| 0000a510 6c 65 20 66 6f 72 0a 20 20 20 20 20 20 20 20 20 |le for. | 0000a520 20 20 20 20 20 69 6e 63 6c 75 73 69 6f 6e 20 69 | inclusion i| 0000a530 6e 20 44 54 50 20 65 74 63 2e 0a 21 46 6f 72 6d |n DTP etc..!Form| 0000a540 45 64 32 20 20 20 20 2d 20 42 61 73 65 64 20 6f |Ed2 - Based o| 0000a550 6e 20 52 69 73 63 20 53 71 75 61 64 20 76 65 72 |n Risc Squad ver| 0000a560 73 69 6f 6e 20 32 2e 38 34 62 20 6c 69 67 68 74 |sion 2.84b light| 0000a570 6c 79 20 6d 6f 64 69 66 69 65 64 0a 20 20 20 20 |ly modified. | 0000a580 20 20 20 20 20 20 20 20 20 20 74 6f 20 73 75 70 | to sup| 0000a590 70 6f 72 74 20 69 6e 74 65 72 66 61 63 65 20 73 |port interface s| 0000a5a0 74 79 6c 65 20 69 63 6f 6e 73 0a 21 46 6f 72 6d |tyle icons.!Form| 0000a5b0 45 64 33 20 20 20 20 2d 20 45 76 6e 74 53 68 65 |Ed3 - EvntShe| 0000a5c0 6c 6c 20 6d 65 6e 75 20 74 65 73 74 69 6e 67 20 |ll menu testing | 0000a5d0 61 70 70 6c 69 63 61 74 69 6f 6e 0a 21 41 70 70 |application.!App| 0000a5e0 42 75 69 6c 64 20 20 20 2d 20 50 72 6f 64 75 63 |Build - Produc| 0000a5f0 65 73 20 61 20 63 75 73 74 6f 6d 69 73 65 64 20 |es a customised | 0000a600 76 65 72 73 69 6f 6e 20 6f 66 20 21 45 76 6e 74 |version of !Evnt| 0000a610 53 68 65 6c 6c 20 74 6f 20 75 73 65 0a 20 20 20 |Shell to use. | 0000a620 20 20 20 20 20 20 20 20 20 20 20 61 73 20 61 20 | as a | 0000a630 62 61 73 69 73 20 66 6f 72 20 6e 65 77 20 61 70 |basis for new ap| 0000a640 70 6c 69 63 61 74 69 6f 6e 73 0a 0a 21 49 6e 6c |plications..!Inl| 0000a650 61 79 50 72 6e 74 20 20 2d 20 43 61 73 73 65 74 |ayPrnt - Casset| 0000a660 74 65 20 69 6e 6c 61 79 20 70 72 69 6e 74 65 72 |te inlay printer| 0000a670 0a 21 56 42 61 73 65 20 20 20 20 20 20 2d 20 56 |.!VBase - V| 0000a680 69 64 65 6f 20 43 61 73 73 65 74 74 65 20 44 61 |ideo Cassette Da| 0000a690 74 61 42 61 73 65 20 28 76 31 2e 35 31 29 0a 21 |taBase (v1.51).!| 0000a6a0 54 65 78 74 2d 44 54 50 20 20 20 2d 20 43 6f 6e |Text-DTP - Con| 0000a6b0 76 65 72 73 69 6f 6e 20 6f 66 20 66 6f 72 6d 61 |version of forma| 0000a6c0 74 74 65 64 20 74 65 78 74 20 66 69 6c 65 73 20 |tted text files | 0000a6d0 66 6f 72 20 44 54 50 4d 69 73 63 0a 4e 6f 20 52 |for DTPMisc.No R| 0000a6e0 6f 75 74 69 6e 65 73 20 68 65 72 65 20 79 65 74 |outines here yet| 0000a6f0 21 43 61 6e 63 65 6c 20 46 6c 61 67 0a 46 41 4c |!Cancel Flag.FAL| 0000a700 53 45 20 3d 20 64 6f 6e 27 74 20 64 69 73 70 6c |SE = don't displ| 0000a710 61 79 20 61 20 43 41 4e 43 45 4c 20 69 63 6f 6e |ay a CANCEL icon| 0000a720 0a 54 52 55 45 20 20 3d 20 6d 65 73 73 61 67 65 |.TRUE = message| 0000a730 20 77 69 6e 64 6f 77 20 68 61 73 20 61 20 43 41 | window has a CA| 0000a740 4e 43 45 4c 20 69 63 6f 6e 50 72 6f 67 72 61 6d |NCEL iconProgram| 0000a750 20 4e 61 6d 65 0a 44 69 73 70 6c 61 79 65 64 20 | Name.Displayed | 0000a760 69 6e 20 74 68 65 20 74 69 74 6c 65 20 62 61 72 |in the title bar| 0000a770 20 6f 66 20 74 68 65 0a 6d 65 73 73 61 67 65 20 | of the.message | 0000a780 77 69 6e 64 6f 77 48 65 61 64 65 72 0a 57 68 65 |windowHeader.Whe| 0000a790 6e 20 6e 75 6c 6c 20 74 68 65 6e 20 74 68 65 20 |n null then the | 0000a7a0 74 69 74 6c 65 20 62 61 72 20 77 69 6c 6c 20 72 |title bar will r| 0000a7b0 65 61 64 0a 22 4d 65 73 73 61 67 65 20 66 72 6f |ead."Message fro| 0000a7c0 6d 20 41 70 70 4e 61 6d 65 22 2e 20 57 68 65 6e |m AppName". When| 0000a7d0 20 6e 6f 6e 2d 6e 75 6c 6c 0a 74 68 65 20 68 65 | non-null.the he| 0000a7e0 61 64 65 72 20 69 73 20 64 69 73 70 6c 61 79 65 |ader is displaye| 0000a7f0 64 20 69 6e 73 74 65 61 64 46 4e 73 68 65 6c 6c |d insteadFNshell| 0000a800 5f 49 63 6f 6e 43 72 65 61 74 65 28 29 0a 50 61 |_IconCreate().Pa| 0000a810 72 61 6d 73 20 3d 3e 20 0a 20 20 20 20 20 20 20 |rams => . | 0000a820 20 20 69 6e 74 20 77 69 6e 64 6f 77 20 68 61 6e | int window han| 0000a830 64 6c 65 20 0a 20 20 20 20 20 20 20 20 20 69 6e |dle . in| 0000a840 74 20 6d 69 6e 20 78 20 63 6f 6f 72 64 20 6f 66 |t min x coord of| 0000a850 20 69 63 6f 6e 0a 20 20 20 20 20 20 20 20 20 69 | icon. i| 0000a860 6e 74 20 6d 69 6e 20 79 20 63 6f 6f 72 64 20 6f |nt min y coord o| 0000a870 66 20 69 63 6f 6e 0a 20 20 20 20 20 20 20 20 20 |f icon. | 0000a880 69 6e 74 20 77 69 64 74 68 20 6f 66 20 69 63 6f |int width of ico| 0000a890 6e 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 68 |n. int h| 0000a8a0 65 69 67 68 74 20 6f 66 20 69 63 6f 6e 0a 20 20 |eight of icon. | 0000a8b0 20 20 20 20 20 20 20 69 6e 74 20 66 6f 72 65 67 | int foreg| 0000a8c0 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 0a 20 20 20 |round colour. | 0000a8d0 20 20 20 20 20 20 69 6e 74 20 62 61 63 6b 67 72 | int backgr| 0000a8e0 6f 75 6e 64 20 63 6f 6c 6f 75 72 0a 20 20 20 20 |ound colour. | 0000a8f0 20 20 20 20 20 69 6e 74 20 3c 69 63 6f 6e 20 66 | int <icon f| 0000a900 6c 61 67 73 3d 3e 53 57 49 2e 57 69 6d 70 5f 69 |lags=>SWI.Wimp_i| 0000a910 63 6f 6e 66 6c 61 67 73 3e 0a 20 20 20 20 20 20 |conflags>. | 0000a920 20 20 20 73 74 72 20 74 65 78 74 20 74 6f 20 69 | str text to i| 0000a930 6e 73 65 72 74 20 69 6e 74 6f 20 69 63 6f 6e 0a |nsert into icon.| 0000a940 20 20 20 20 20 20 20 20 20 69 6e 74 20 61 64 64 | int add| 0000a950 72 65 73 73 20 6f 66 20 69 6e 64 69 72 65 63 74 |ress of indirect| 0000a960 65 64 20 64 61 74 61 0a 20 20 20 20 20 20 20 20 |ed data. | 0000a970 20 20 20 20 20 28 69 67 6e 6f 72 65 64 20 77 68 | (ignored wh| 0000a980 65 6e 20 6e 6f 74 20 69 6e 64 69 72 65 63 74 65 |en not indirecte| 0000a990 64 29 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 |d). int | 0000a9a0 6c 65 6e 67 74 68 20 6f 66 20 69 6e 64 69 72 65 |length of indire| 0000a9b0 63 74 65 64 20 62 75 66 66 65 72 0a 20 20 20 20 |cted buffer. | 0000a9c0 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 | (ignore| 0000a9d0 64 20 77 68 65 6e 20 6e 6f 74 20 69 6e 64 69 72 |d when not indir| 0000a9e0 65 63 74 65 64 29 0a 20 20 20 20 20 20 20 20 20 |ected). | 0000a9f0 73 74 72 20 3c 76 61 6c 69 64 61 74 69 6f 6e 20 |str <validation | 0000aa00 73 74 72 69 6e 67 3d 3e 73 77 69 2e 77 69 6d 70 |string=>swi.wimp| 0000aa10 5f 76 61 6c 69 64 61 74 69 6f 6e 73 74 72 69 6e |_validationstrin| 0000aa20 67 3e 0a 0a 20 20 20 20 20 20 20 5c 3c 3d 0a 20 |g>.. \<=. | 0000aa30 20 20 20 20 20 20 20 20 69 6e 74 20 68 61 6e 64 | int hand| 0000aa40 6c 65 20 6f 66 20 6e 65 77 20 69 63 6f 6e 0a 20 |le of new icon. | 0000aa50 20 20 20 20 20 20 20 20 0a 54 68 69 73 20 72 6f | .This ro| 0000aa60 75 74 69 6e 65 20 69 73 20 6f 6e 6c 79 20 75 73 |utine is only us| 0000aa70 65 64 20 77 68 65 6e 20 74 68 65 20 61 70 70 6c |ed when the appl| 0000aa80 69 63 61 74 69 6f 6e 0a 6e 65 65 64 73 20 74 6f |ication.needs to| 0000aa90 20 63 72 65 61 74 65 20 69 63 6f 6e 73 20 69 74 | create icons it| 0000aaa0 73 65 6c 66 20 72 61 74 68 65 72 20 74 68 61 6e |self rather than| 0000aab0 0a 6c 6f 61 64 69 6e 67 20 74 68 65 6d 20 61 73 |.loading them as| 0000aac0 20 70 61 72 74 20 6f 66 20 61 20 77 69 6e 64 6f | part of a windo| 0000aad0 77 20 64 65 66 69 6e 69 74 69 6f 6e 20 69 6e 0a |w definition in.| 0000aae0 61 20 74 65 6d 70 6c 61 74 65 2e 0a 0a 49 74 20 |a template...It | 0000aaf0 64 6f 65 73 20 6e 6f 74 20 72 65 64 72 61 77 20 |does not redraw | 0000ab00 74 68 65 20 61 72 65 61 20 6f 66 20 74 68 65 20 |the area of the | 0000ab10 77 69 6e 64 6f 77 20 6f 63 63 75 70 69 65 64 0a |window occupied.| 0000ab20 62 79 20 74 68 65 20 6e 65 77 20 69 63 6f 6e 2e |by the new icon.| 0000ab30 20 49 66 20 74 68 65 20 77 69 6e 64 6f 77 20 69 | If the window i| 0000ab40 73 20 6f 70 65 6e 20 69 74 20 6d 61 79 20 62 65 |s open it may be| 0000ab50 0a 6e 65 63 65 73 73 61 72 79 20 74 6f 20 63 61 |.necessary to ca| 0000ab60 6c 6c 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 49 63 |ll <PROCshell_Ic| 0000ab70 6f 6e 52 65 64 72 61 77 3e 20 74 6f 20 75 70 64 |onRedraw> to upd| 0000ab80 61 74 65 0a 74 68 65 20 77 69 6e 64 6f 77 20 61 |ate.the window a| 0000ab90 72 65 61 20 63 6f 76 65 72 65 64 20 62 79 20 74 |rea covered by t| 0000aba0 68 65 20 69 63 6f 6e 2e 0a 0a 4c 69 62 72 61 72 |he icon...Librar| 0000abb0 79 20 47 72 6f 75 70 20 3d 3e 20 3c 49 63 6f 6e |y Group => <Icon| 0000abc0 73 3d 3e 4c 69 62 47 72 6f 75 70 49 63 6f 6e 73 |s=>LibGroupIcons| 0000abd0 3e 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 |>PROCshell_Attac| 0000abe0 68 4d 65 6e 75 44 42 6f 78 28 29 0a 50 61 72 61 |hMenuDBox().Para| 0000abf0 6d 73 20 3d 3e 20 20 0a 20 20 20 20 20 20 20 20 |ms => . | 0000ac00 20 73 74 72 20 3c 6d 65 6e 75 20 73 65 6c 65 63 | str <menu selec| 0000ac10 74 69 6f 6e 20 73 74 72 69 6e 67 3d 3e 6d 65 6e |tion string=>men| 0000ac20 75 64 62 6f 78 73 65 6c 73 74 72 3e 0a 20 20 20 |udboxselstr>. | 0000ac30 20 20 20 20 20 20 73 74 72 20 77 69 6e 64 6f 77 | str window| 0000ac40 20 69 64 65 6e 74 69 66 69 65 72 0a 20 20 20 20 | identifier. | 0000ac50 20 20 20 20 20 73 74 72 20 3c 66 75 6e 63 74 69 | str <functi| 0000ac60 6f 6e 20 6e 61 6d 65 3d 3e 55 73 65 72 46 4e 30 |on name=>UserFN0| 0000ac70 37 3e 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 |7>. str | 0000ac80 3c 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 3d 3e |<function name=>| 0000ac90 55 73 65 72 46 4e 30 38 3e 0a 0a 43 61 6c 6c 69 |UserFN08>..Calli| 0000aca0 6e 67 20 74 68 69 73 20 72 6f 75 74 69 6e 65 20 |ng this routine | 0000acb0 77 69 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c |will automatical| 0000acc0 6c 79 20 73 65 74 75 70 20 74 68 65 20 73 75 62 |ly setup the sub| 0000acd0 0a 6d 65 6e 75 20 61 72 72 6f 77 20 6f 6e 20 74 |.menu arrow on t| 0000ace0 68 65 20 6d 65 6e 75 20 69 74 65 6d 2c 20 61 6e |he menu item, an| 0000acf0 64 20 61 6c 73 6f 20 73 65 74 20 74 68 65 20 27 |d also set the '| 0000ad00 6d 65 6e 75 0a 77 61 72 6e 69 6e 67 27 20 66 6c |menu.warning' fl| 0000ad10 61 67 2e 20 49 74 20 69 73 20 6e 6f 74 20 6e 65 |ag. It is not ne| 0000ad20 63 65 73 73 61 72 79 20 74 6f 20 64 6f 20 74 68 |cessary to do th| 0000ad30 69 73 20 69 6e 20 74 68 65 0a 6d 65 6e 75 20 65 |is in the.menu e| 0000ad40 64 69 74 6f 72 2e 0a 0a 4c 69 62 72 61 72 79 20 |ditor...Library | 0000ad50 47 72 6f 75 70 20 3d 3e 20 3c 45 76 65 6e 74 73 |Group => <Events| 0000ad60 3d 3e 4c 69 62 47 72 6f 75 70 45 76 65 6e 74 73 |=>LibGroupEvents| 0000ad70 3e 55 73 65 72 20 46 4e 20 28 50 52 4f 43 73 68 |>User FN (PROCsh| 0000ad80 65 6c 6c 5f 41 74 74 61 63 68 4d 65 6e 75 44 42 |ell_AttachMenuDB| 0000ad90 6f 78 29 0a 50 61 72 61 6d 73 20 3d 3e 20 0a 20 |ox).Params => . | 0000ada0 20 20 20 20 20 20 20 20 69 6e 74 20 77 69 6e 64 | int wind| 0000adb0 6f 77 20 68 61 6e 64 6c 65 0a 20 0a 54 68 65 20 |ow handle. .The | 0000adc0 66 75 6e 63 74 69 6f 6e 20 74 6f 20 63 61 6c 6c |function to call| 0000add0 20 61 66 74 65 72 20 63 72 65 61 74 69 6e 67 20 | after creating | 0000ade0 74 68 65 20 77 69 6e 64 6f 77 0a 62 75 74 20 62 |the window.but b| 0000adf0 65 66 6f 72 65 20 6f 70 65 6e 69 6e 67 20 69 74 |efore opening it| 0000ae00 2e 20 54 68 69 73 20 63 61 6e 20 62 65 20 75 73 |. This can be us| 0000ae10 65 64 20 74 6f 20 66 69 6c 6c 0a 69 6e 20 69 63 |ed to fill.in ic| 0000ae20 6f 6e 20 66 69 65 6c 64 73 20 65 74 63 2e 20 41 |on fields etc. A| 0000ae30 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 6f | function name o| 0000ae40 66 20 22 22 20 6d 61 79 0a 62 65 20 75 73 65 64 |f "" may.be used| 0000ae50 20 69 66 20 79 6f 75 20 64 6f 6e 27 74 20 6e 65 | if you don't ne| 0000ae60 65 64 20 74 6f 20 63 61 6c 6c 20 61 20 66 75 6e |ed to call a fun| 0000ae70 63 74 69 6f 6e 2e 55 73 65 72 20 46 4e 20 28 50 |ction.User FN (P| 0000ae80 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 4d |ROCshell_AttachM| 0000ae90 65 6e 75 44 42 6f 78 29 0a 50 61 72 61 6d 73 20 |enuDBox).Params | 0000aea0 3d 3e 20 0a 20 20 20 20 20 20 20 20 20 69 6e 74 |=> . int| 0000aeb0 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 0a 20 | window handle. | 0000aec0 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f |.The function to| 0000aed0 20 63 61 6c 6c 20 61 66 74 65 72 20 6f 70 65 6e | call after open| 0000aee0 69 6e 67 20 74 68 65 20 77 69 6e 64 6f 77 2e 0a |ing the window..| 0000aef0 41 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 |A function name | 0000af00 6f 66 20 22 22 20 6d 61 79 20 62 65 20 75 73 65 |of "" may be use| 0000af10 64 20 69 66 20 79 6f 75 20 64 6f 6e 27 74 0a 6e |d if you don't.n| 0000af20 65 65 64 20 74 6f 20 63 61 6c 6c 20 61 20 66 75 |eed to call a fu| 0000af30 6e 63 74 69 6f 6e 2e 50 52 4f 43 73 68 65 6c 6c |nction.PROCshell| 0000af40 5f 41 74 74 61 63 68 48 6f 74 4b 65 79 28 29 0a |_AttachHotKey().| 0000af50 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 |Params =>. | 0000af60 20 20 20 73 74 72 20 20 3c 6b 65 79 3d 3e 48 6f | str <key=>Ho| 0000af70 74 4b 65 79 4b 65 79 3e 0a 20 20 20 20 20 20 20 |tKeyKey>. | 0000af80 20 20 62 6f 6f 6c 20 73 68 69 66 74 20 66 6c 61 | bool shift fla| 0000af90 67 0a 20 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 |g. bool | 0000afa0 63 74 72 6c 20 20 66 6c 61 67 0a 20 20 20 20 20 |ctrl flag. | 0000afb0 20 20 20 20 62 6f 6f 6c 20 61 6c 74 20 20 20 66 | bool alt f| 0000afc0 6c 61 67 0a 20 20 20 20 20 20 20 20 20 73 74 72 |lag. str| 0000afd0 20 20 3c 77 69 6e 64 6f 77 20 69 64 65 6e 74 69 | <window identi| 0000afe0 66 69 65 72 3d 3e 48 6f 74 4b 65 79 57 69 6e 3e |fier=>HotKeyWin>| 0000aff0 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 20 3c |. int <| 0000b000 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 3d 3e 48 |window handle=>H| 0000b010 6f 74 4b 65 79 53 74 61 74 69 63 3e 0a 20 20 20 |otKeyStatic>. | 0000b020 20 20 20 20 20 20 73 74 72 20 20 3c 66 75 6e 63 | str <func| 0000b030 74 69 6f 6e 20 6e 61 6d 65 3d 3e 55 73 65 72 46 |tion name=>UserF| 0000b040 4e 30 39 3e 0a 20 20 20 20 20 20 20 20 20 73 74 |N09>. st| 0000b050 72 20 20 3c 66 75 6e 63 74 69 6f 6e 20 6e 61 6d |r <function nam| 0000b060 65 3d 3e 55 73 65 72 46 4e 31 30 3e 0a 0a 53 65 |e=>UserFN10>..Se| 0000b070 74 73 20 75 70 20 61 20 27 68 6f 74 6b 65 79 27 |ts up a 'hotkey'| 0000b080 20 65 76 65 6e 74 2e 20 46 75 6e 63 74 69 6f 6e | event. Function| 0000b090 20 6b 65 79 73 20 46 30 2d 46 31 31 0a 28 6e 6f | keys F0-F11.(no| 0000b0a0 74 65 20 4e 4f 54 20 46 31 32 20 61 73 20 74 68 |te NOT F12 as th| 0000b0b0 65 20 74 61 73 6b 20 6d 61 6e 61 67 65 72 20 75 |e task manager u| 0000b0c0 73 65 73 20 69 74 20 75 6e 64 65 72 0a 52 49 53 |ses it under.RIS| 0000b0d0 43 2d 4f 53 20 33 29 20 61 72 65 20 73 75 70 70 |C-OS 3) are supp| 0000b0e0 6f 72 74 65 64 2e 0a 0a 4c 69 62 72 61 72 79 20 |orted...Library | 0000b0f0 47 72 6f 75 70 20 3d 3e 20 3c 45 76 65 6e 74 73 |Group => <Events| 0000b100 3d 3e 4c 69 62 47 72 6f 75 70 45 76 65 6e 74 73 |=>LibGroupEvents| 0000b110 3e 55 73 65 72 20 46 4e 20 28 50 52 4f 43 73 68 |>User FN (PROCsh| 0000b120 65 6c 6c 5f 41 74 74 61 63 68 48 6f 74 4b 65 79 |ell_AttachHotKey| 0000b130 29 0a 50 61 72 61 6d 73 20 3d 3e 20 0a 20 20 20 |).Params => . | 0000b140 20 20 20 20 20 20 69 6e 74 20 77 69 6e 64 6f 77 | int window| 0000b150 20 68 61 6e 64 6c 65 0a 20 0a 54 68 65 20 66 75 | handle. .The fu| 0000b160 6e 63 74 69 6f 6e 20 74 6f 20 63 61 6c 6c 20 62 |nction to call b| 0000b170 65 66 6f 72 65 20 6f 70 65 6e 69 6e 67 20 74 68 |efore opening th| 0000b180 65 20 77 69 6e 64 6f 77 2e 0a 41 20 66 75 6e 63 |e window..A func| 0000b190 74 69 6f 6e 20 6e 61 6d 65 20 6f 66 20 22 22 20 |tion name of "" | 0000b1a0 6d 61 79 20 62 65 20 75 73 65 64 20 69 66 20 79 |may be used if y| 0000b1b0 6f 75 20 64 6f 6e 27 74 0a 6e 65 65 64 20 74 6f |ou don't.need to| 0000b1c0 20 63 61 6c 6c 20 61 20 66 75 6e 63 74 69 6f 6e | call a function| 0000b1d0 2e 20 54 68 69 73 20 77 6f 75 6c 64 20 6e 6f 72 |. This would nor| 0000b1e0 6d 61 6c 6c 79 20 62 65 0a 75 73 65 64 20 74 6f |mally be.used to| 0000b1f0 20 66 69 6c 6c 20 69 6e 20 69 63 6f 6e 20 66 69 | fill in icon fi| 0000b200 65 6c 64 73 20 61 6e 64 20 73 65 74 20 74 68 65 |elds and set the| 0000b210 20 73 74 61 74 65 0a 6f 66 20 72 61 64 69 6f 20 | state.of radio | 0000b220 62 75 74 74 6f 6e 73 55 73 65 72 20 46 4e 20 28 |buttonsUser FN (| 0000b230 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 |PROCshell_Attach| 0000b240 48 6f 74 4b 65 79 29 0a 50 61 72 61 6d 73 20 3d |HotKey).Params =| 0000b250 3e 20 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 |> . int | 0000b260 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 0a 20 0a |window handle. .| 0000b270 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 |The function to | 0000b280 63 61 6c 6c 20 61 66 74 65 72 20 6f 70 65 6e 69 |call after openi| 0000b290 6e 67 20 74 68 65 20 77 69 6e 64 6f 77 2e 0a 41 |ng the window..A| 0000b2a0 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 6f | function name o| 0000b2b0 66 20 22 22 20 6d 61 79 20 62 65 20 75 73 65 64 |f "" may be used| 0000b2c0 20 69 66 20 79 6f 75 20 64 6f 6e 27 74 0a 6e 65 | if you don't.ne| 0000b2d0 65 64 20 74 6f 20 63 61 6c 6c 20 61 20 66 75 6e |ed to call a fun| 0000b2e0 63 74 69 6f 6e 2e 4b 65 79 20 28 50 52 4f 43 73 |ction.Key (PROCs| 0000b2f0 68 65 6c 6c 5f 41 74 74 61 63 68 48 6f 74 4b 65 |hell_AttachHotKe| 0000b300 79 29 0a 54 68 65 20 6b 65 79 20 73 74 72 69 6e |y).The key strin| 0000b310 67 20 6e 6f 72 6d 61 6c 6c 79 20 63 6f 6e 73 69 |g normally consi| 0000b320 73 74 73 20 6f 66 20 6f 6e 65 20 41 53 43 49 49 |sts of one ASCII| 0000b330 0a 63 68 61 72 61 63 74 65 72 20 69 2e 65 2e 20 |.character i.e. | 0000b340 22 52 22 2e 20 57 68 65 6e 20 74 68 65 20 63 74 |"R". When the ct| 0000b350 72 6c 20 66 6c 61 67 20 69 73 20 73 65 74 0a 74 |rl flag is set.t| 0000b360 68 69 73 20 77 6f 75 6c 64 20 63 61 75 73 65 20 |his would cause | 0000b370 74 68 65 20 61 63 74 69 6f 6e 73 20 74 6f 20 62 |the actions to b| 0000b380 65 20 63 61 72 72 69 65 64 20 6f 75 74 0a 77 68 |e carried out.wh| 0000b390 65 6e 20 43 54 52 4c 2d 52 20 69 73 20 70 72 65 |en CTRL-R is pre| 0000b3a0 73 73 65 64 2e 0a 0a 54 68 65 20 73 74 72 69 6e |ssed...The strin| 0000b3b0 67 20 6d 61 79 20 61 6c 73 6f 20 63 6f 6e 74 61 |g may also conta| 0000b3c0 69 6e 20 22 46 31 22 20 74 6f 20 22 46 31 31 22 |in "F1" to "F11"| 0000b3d0 20 74 6f 0a 61 6c 6c 6f 77 20 66 75 6e 63 74 69 | to.allow functi| 0000b3e0 6f 6e 20 6b 65 79 73 20 74 6f 20 62 65 20 75 73 |on keys to be us| 0000b3f0 65 64 2e 20 4e 6f 20 63 68 65 63 6b 69 6e 67 20 |ed. No checking | 0000b400 69 73 0a 70 65 72 66 6f 72 6d 65 64 20 6f 6e 20 |is.performed on | 0000b410 74 68 65 20 73 74 72 69 6e 67 2e 57 69 6e 64 6f |the string.Windo| 0000b420 77 20 28 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 |w (PROCshell_Att| 0000b430 61 63 68 48 6f 74 4b 65 79 29 0a 54 68 65 20 77 |achHotKey).The w| 0000b440 69 6e 64 6f 77 20 69 64 65 6e 74 69 66 69 65 72 |indow identifier| 0000b450 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 6e | specifies the n| 0000b460 61 6d 65 0a 6f 66 20 74 68 65 20 77 69 6e 64 6f |ame.of the windo| 0000b470 77 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 61 70 |w you want to ap| 0000b480 70 65 61 72 20 77 68 65 6e 20 74 68 65 0a 6b 65 |pear when the.ke| 0000b490 79 70 72 65 73 73 20 69 73 20 72 65 63 65 69 76 |ypress is receiv| 0000b4a0 65 64 2e 20 54 68 69 73 20 70 61 72 61 6d 65 74 |ed. This paramet| 0000b4b0 65 72 20 69 73 0a 6f 70 74 69 6f 6e 61 6c 20 61 |er is.optional a| 0000b4c0 73 20 79 6f 75 20 6d 69 67 68 74 20 6e 6f 74 20 |s you might not | 0000b4d0 61 6c 77 61 79 73 20 77 61 6e 74 20 74 6f 0a 6f |always want to.o| 0000b4e0 70 65 6e 20 61 20 77 69 6e 64 6f 77 2e 0a 0a 54 |pen a window...T| 0000b4f0 68 65 20 77 69 6e 64 6f 77 20 69 73 20 61 20 27 |he window is a '| 0000b500 64 79 6e 61 6d 69 63 27 20 64 69 61 6c 6f 67 20 |dynamic' dialog | 0000b510 62 6f 78 20 77 68 69 63 68 0a 77 69 6c 6c 20 64 |box which.will d| 0000b520 69 73 61 70 70 65 61 72 20 77 68 65 6e 20 5c 3c |isappear when \<| 0000b530 45 53 43 3e 20 69 73 20 70 72 65 73 73 65 64 20 |ESC> is pressed | 0000b540 61 6e 64 0a 69 73 20 6f 70 65 6e 65 64 20 69 6e |and.is opened in| 0000b550 20 73 75 63 68 20 61 20 70 6f 73 69 74 69 6f 6e | such a position| 0000b560 20 74 68 61 74 20 74 68 65 20 6d 6f 75 73 65 0a | that the mouse.| 0000b570 70 6f 69 6e 74 65 72 20 69 73 20 69 6e 20 74 68 |pointer is in th| 0000b580 65 20 6d 69 64 64 6c 65 20 6f 66 20 74 68 65 20 |e middle of the | 0000b590 77 69 6e 64 6f 77 0a 28 77 68 65 72 65 20 70 6f |window.(where po| 0000b5a0 73 73 69 62 6c 65 29 2e 57 69 6e 64 6f 77 20 48 |ssible).Window H| 0000b5b0 61 6e 64 6c 65 20 28 73 68 65 6c 6c 5f 41 74 74 |andle (shell_Att| 0000b5c0 61 63 68 48 6f 74 4b 65 79 29 0a 57 68 65 6e 20 |achHotKey).When | 0000b5d0 74 68 69 73 20 69 73 20 3e 30 20 74 68 65 6e 20 |this is >0 then | 0000b5e0 74 68 65 20 77 69 6e 64 6f 77 0a 63 72 65 61 74 |the window.creat| 0000b5f0 65 64 20 77 69 6c 6c 20 62 65 20 73 74 61 74 69 |ed will be stati| 0000b600 63 20 69 2e 65 2e 20 69 74 20 77 69 6c 6c 20 6e |c i.e. it will n| 0000b610 6f 74 0a 62 65 20 72 65 6d 6f 76 65 64 20 77 68 |ot.be removed wh| 0000b620 65 6e 20 74 68 65 20 6d 6f 75 73 65 20 69 73 20 |en the mouse is | 0000b630 63 6c 69 63 6b 65 64 0a 6f 75 74 73 69 64 65 20 |clicked.outside | 0000b640 69 74 2c 20 6f 72 20 77 68 65 6e 20 5c 3c 45 53 |it, or when \<ES| 0000b650 43 3e 20 69 73 20 70 72 65 73 73 65 64 2e 55 73 |C> is pressed.Us| 0000b660 65 72 20 46 4e 20 28 50 52 4f 43 73 68 65 6c 6c |er FN (PROCshell| 0000b670 5f 41 74 74 61 63 68 55 73 65 72 52 65 64 72 61 |_AttachUserRedra| 0000b680 77 29 0a 50 61 72 61 6d 73 20 3d 3e 20 0a 20 20 |w).Params => . | 0000b690 20 20 20 20 20 20 20 69 6e 74 20 61 64 64 72 65 | int addre| 0000b6a0 73 73 20 6f 66 20 3c 62 6c 6f 63 6b 3d 3e 53 57 |ss of <block=>SW| 0000b6b0 49 2e 77 69 6d 70 5f 67 65 74 72 65 63 74 61 6e |I.wimp_getrectan| 0000b6c0 67 6c 65 30 3e 20 72 65 74 75 72 6e 65 64 20 62 |gle0> returned b| 0000b6d0 79 20 72 65 64 72 61 77 0a 20 20 20 20 20 20 20 |y redraw. | 0000b6e0 20 20 20 20 20 20 72 65 71 75 65 73 74 0a 20 20 | request. | 0000b6f0 20 20 20 20 20 20 20 69 6e 74 20 78 20 6f 72 69 | int x ori| 0000b700 67 69 6e 20 6f 66 20 77 69 6e 64 6f 77 20 28 73 |gin of window (s| 0000b710 63 72 65 65 6e 20 63 6f 6f 72 64 73 29 0a 20 20 |creen coords). | 0000b720 20 20 20 20 20 20 20 69 6e 74 20 79 20 6f 72 69 | int y ori| 0000b730 67 69 6e 20 6f 66 20 77 69 6e 64 6f 77 20 28 73 |gin of window (s| 0000b740 63 72 65 65 6e 20 63 6f 6f 72 64 73 29 0a 20 0a |creen coords). .| 0000b750 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 |The function to | 0000b760 63 61 6c 6c 20 77 68 65 6e 20 61 20 72 65 64 72 |call when a redr| 0000b770 61 77 20 72 65 71 75 65 73 74 0a 69 73 20 6d 61 |aw request.is ma| 0000b780 64 65 2e 55 73 65 72 20 46 4e 20 28 50 52 4f 43 |de.User FN (PROC| 0000b790 73 68 65 6c 6c 5f 41 74 74 61 63 68 43 6c 69 63 |shell_AttachClic| 0000b7a0 6b 53 65 6c 65 63 74 29 0a 50 61 72 61 6d 73 20 |kSelect).Params | 0000b7b0 3d 3e 20 0a 20 20 20 20 20 20 20 20 20 69 6e 74 |=> . int| 0000b7c0 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 0a 20 | window handle. | 0000b7d0 20 20 20 20 20 20 20 20 69 6e 74 20 69 63 6f 6e | int icon| 0000b7e0 20 68 61 6e 64 6c 65 20 20 20 20 20 20 20 20 20 | handle | 0000b7f0 20 20 20 20 20 20 20 20 55 73 65 72 20 46 4e 20 | User FN | 0000b800 28 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 |(PROCshell_Attac| 0000b810 68 43 6c 69 63 6b 41 64 6a 75 73 74 29 0a 50 61 |hClickAdjust).Pa| 0000b820 72 61 6d 73 20 3d 3e 20 0a 20 20 20 20 20 20 20 |rams => . | 0000b830 20 20 69 6e 74 20 77 69 6e 64 6f 77 20 68 61 6e | int window han| 0000b840 64 6c 65 0a 20 20 20 20 20 20 20 20 20 69 6e 74 |dle. int| 0000b850 20 69 63 6f 6e 20 68 61 6e 64 6c 65 20 20 20 20 | icon handle | 0000b860 20 20 20 20 20 20 20 20 20 20 20 20 20 50 52 4f | PRO| 0000b870 43 73 68 65 6c 6c 5f 4f 70 65 6e 57 69 6e 64 6f |Cshell_OpenWindo| 0000b880 77 53 74 61 74 69 63 28 29 0a 50 61 72 61 6d 73 |wStatic().Params| 0000b890 20 3d 3e 20 20 20 20 20 0a 20 20 20 20 20 20 20 | => . | 0000b8a0 20 20 69 6e 74 20 77 69 6e 64 6f 77 20 68 61 6e | int window han| 0000b8b0 64 6c 65 0a 0a 54 68 65 20 77 69 6e 64 6f 77 20 |dle..The window | 0000b8c0 77 69 6c 6c 20 62 65 20 62 72 6f 75 67 68 74 20 |will be brought | 0000b8d0 74 6f 20 74 68 65 20 74 6f 70 0a 6f 66 20 74 68 |to the top.of th| 0000b8e0 65 20 73 74 61 63 6b 20 62 79 20 74 68 69 73 20 |e stack by this | 0000b8f0 63 61 6c 6c 2e 20 54 68 65 20 77 69 6e 64 6f 77 |call. The window| 0000b900 0a 6d 75 73 74 20 68 61 76 65 20 62 65 65 6e 20 |.must have been | 0000b910 63 72 65 61 74 65 64 20 77 69 74 68 20 61 20 63 |created with a c| 0000b920 61 6c 6c 20 74 6f 0a 3c 50 52 4f 43 73 68 65 6c |all to.<PROCshel| 0000b930 6c 5f 43 72 65 61 74 65 57 69 6e 64 6f 77 53 74 |l_CreateWindowSt| 0000b940 61 74 69 63 3e 20 2d 20 61 6e 20 65 72 72 6f 72 |atic> - an error| 0000b950 0a 77 69 6c 6c 20 62 65 20 67 65 6e 65 72 61 74 |.will be generat| 0000b960 65 64 20 69 66 20 74 68 69 73 20 69 73 20 6e 6f |ed if this is no| 0000b970 74 20 74 68 65 0a 63 61 73 65 2e 0a 0a 41 6e 79 |t the.case...Any| 0000b980 20 70 61 6e 65 73 20 61 74 74 61 63 68 65 64 20 | panes attached | 0000b990 74 6f 20 74 68 65 20 77 69 6e 64 6f 77 20 77 69 |to the window wi| 0000b9a0 74 68 0a 3c 50 52 4f 43 73 68 65 6c 6c 5f 41 74 |th.<PROCshell_At| 0000b9b0 74 61 63 68 50 61 6e 65 3e 20 77 69 6c 6c 20 62 |tachPane> will b| 0000b9c0 65 20 6f 70 65 6e 65 64 0a 61 75 74 6f 6d 61 74 |e opened.automat| 0000b9d0 69 63 61 6c 6c 79 2e 0a 0a 4c 69 62 72 61 72 79 |ically...Library| 0000b9e0 20 47 72 6f 75 70 20 3d 5c 3e 20 3c 57 69 6e 64 | Group =\> <Wind| 0000b9f0 6f 77 73 3d 3e 4c 69 62 47 72 6f 75 70 57 69 6e |ows=>LibGroupWin| 0000ba00 64 6f 77 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 43 |dows>PROCshell_C| 0000ba10 72 65 61 74 65 57 69 6e 64 6f 77 53 74 61 74 69 |reateWindowStati| 0000ba20 63 28 29 0a 50 61 72 61 6d 73 20 3d 5c 3e 0a 20 |c().Params =\>. | 0000ba30 20 20 20 20 20 20 20 20 73 74 72 20 77 69 6e 64 | str wind| 0000ba40 6f 77 20 69 64 65 6e 74 69 66 69 65 72 0a 20 20 |ow identifier. | 0000ba50 20 20 20 20 20 20 20 69 6e 74 20 28 69 67 6e 6f | int (igno| 0000ba60 72 65 64 20 6f 6e 20 65 6e 74 72 79 29 0a 0a 20 |red on entry).. | 0000ba70 20 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 | \<=. | 0000ba80 20 20 20 69 6e 74 20 77 69 6e 64 6f 77 20 68 61 | int window ha| 0000ba90 6e 64 6c 65 20 6f 66 20 6e 65 77 6c 79 20 63 72 |ndle of newly cr| 0000baa0 65 61 74 65 64 20 77 69 6e 64 6f 77 0a 0a 4c 69 |eated window..Li| 0000bab0 62 72 61 72 79 20 47 72 6f 75 70 20 3d 5c 3e 20 |brary Group =\> | 0000bac0 3c 57 69 6e 64 6f 77 73 3d 3e 4c 69 62 47 72 6f |<Windows=>LibGro| 0000bad0 75 70 57 69 6e 64 6f 77 73 3e 4d 65 6e 75 20 53 |upWindows>Menu S| 0000bae0 74 72 69 6e 67 20 28 50 52 4f 43 73 68 65 6c 6c |tring (PROCshell| 0000baf0 5f 41 74 74 61 63 68 4d 65 6e 75 44 42 6f 78 29 |_AttachMenuDBox)| 0000bb00 0a 4e 6f 74 65 20 74 68 61 74 20 74 68 69 73 20 |.Note that this | 0000bb10 73 74 72 69 6e 67 20 69 73 20 74 72 65 61 74 65 |string is treate| 0000bb20 64 20 61 73 20 61 20 6c 69 73 74 20 6f 66 0a 3c |d as a list of.<| 0000bb30 6d 65 73 73 61 67 65 20 74 61 67 73 3d 3e 4d 65 |message tags=>Me| 0000bb40 73 73 61 67 65 54 61 67 3e 2c 20 61 6e 64 20 61 |ssageTag>, and a| 0000bb50 6e 79 20 74 6f 6b 65 6e 73 20 66 6f 75 6e 64 20 |ny tokens found | 0000bb60 69 6e 20 74 68 65 0a 6d 65 73 73 61 67 65 20 66 |in the.message f| 0000bb70 69 6c 65 20 77 69 6c 6c 20 62 65 20 72 65 70 6c |ile will be repl| 0000bb80 61 63 65 64 2e 20 49 66 20 74 68 65 20 74 61 67 |aced. If the tag| 0000bb90 20 69 73 0a 6e 6f 74 20 66 6f 75 6e 64 20 6e 6f | is.not found no| 0000bba0 20 73 75 62 73 74 69 74 75 74 69 6f 6e 20 77 69 | substitution wi| 0000bbb0 6c 6c 20 6f 63 63 75 72 2e 0a 0a 54 68 69 73 20 |ll occur...This | 0000bbc0 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 69 67 |allows you to ig| 0000bbd0 6e 6f 72 65 20 74 68 65 20 61 62 69 6c 69 74 79 |nore the ability| 0000bbe0 20 6f 66 20 74 68 65 0a 45 76 6e 74 53 68 65 6c | of the.EvntShel| 0000bbf0 6c 20 6c 69 62 72 61 72 79 20 74 6f 20 68 61 6e |l library to han| 0000bc00 64 6c 65 20 6d 75 6c 74 69 2d 6c 69 6e 67 75 61 |dle multi-lingua| 0000bc10 6c 20 6d 65 6e 75 73 0a 69 66 20 72 65 71 75 69 |l menus.if requi| 0000bc20 72 65 64 2e 49 6e 74 65 72 61 63 74 69 76 65 20 |red.Interactive | 0000bc30 48 65 6c 70 0a 54 68 65 20 45 76 6e 74 53 68 65 |Help.The EvntShe| 0000bc40 6c 6c 20 6c 69 62 72 61 79 20 73 75 70 70 6f 72 |ll libray suppor| 0000bc50 74 73 20 41 63 6f 72 6e 27 73 20 49 6e 74 65 72 |ts Acorn's Inter| 0000bc60 61 63 74 69 76 65 20 48 65 6c 70 0a 61 70 70 6c |active Help.appl| 0000bc70 69 63 61 74 69 6f 6e 20 21 48 65 6c 70 20 62 79 |ication !Help by| 0000bc80 20 73 65 61 72 63 68 69 6e 67 20 69 63 6f 6e 20 | searching icon | 0000bc90 76 61 6c 69 64 61 74 69 6f 6e 20 73 74 72 69 6e |validation strin| 0000bca0 67 73 0a 66 6f 72 20 74 68 65 20 27 49 27 20 63 |gs.for the 'I' c| 0000bcb0 6f 6d 6d 61 6e 64 20 28 61 73 20 72 65 63 6f 6d |ommand (as recom| 0000bcc0 6d 65 6e 64 65 64 20 62 79 20 74 68 65 20 61 75 |mended by the au| 0000bcd0 74 68 6f 72 20 6f 66 0a 74 68 65 20 49 6e 74 65 |thor of.the Inte| 0000bce0 72 66 61 63 65 20 6d 6f 64 75 6c 65 29 20 66 6f |rface module) fo| 0000bcf0 72 20 61 20 3c 6d 65 73 73 61 67 65 20 74 61 67 |r a <message tag| 0000bd00 3d 3e 4d 65 73 73 61 67 65 54 61 67 3e 2e 0a 0a |=>MessageTag>...| 0000bd10 54 68 65 20 6d 65 73 73 61 67 65 20 62 65 6c 6f |The message belo| 0000bd20 6e 67 69 6e 67 20 74 6f 20 74 68 65 20 74 61 67 |nging to the tag| 0000bd30 20 77 69 6c 6c 20 62 65 20 6c 6f 6f 6b 65 64 20 | will be looked | 0000bd40 75 70 20 61 6e 64 0a 73 65 6e 74 20 74 6f 20 21 |up and.sent to !| 0000bd50 48 65 6c 70 20 28 69 66 20 21 48 65 6c 70 20 69 |Help (if !Help i| 0000bd60 73 20 72 75 6e 6e 69 6e 67 29 2e 20 41 6e 20 65 |s running). An e| 0000bd70 78 61 6d 70 6c 65 20 77 6f 75 6c 64 0a 62 65 20 |xample would.be | 0000bd80 61 20 76 61 6c 69 64 61 74 69 6f 6e 20 73 74 72 |a validation str| 0000bd90 69 6e 67 20 6f 66 20 22 69 4d 65 73 73 54 61 67 |ing of "iMessTag| 0000bda0 30 31 22 2c 20 77 68 65 72 65 20 74 68 65 20 66 |01", where the f| 0000bdb0 69 6c 65 0a 27 4d 65 73 73 61 67 65 73 27 20 63 |ile.'Messages' c| 0000bdc0 6f 6e 74 61 69 6e 73 20 74 68 65 20 6c 69 6e 65 |ontains the line| 0000bdd0 20 27 4d 65 73 73 54 61 67 30 31 3a 54 68 69 73 | 'MessTag01:This| 0000bde0 20 69 73 20 61 20 74 65 73 74 27 2e 0a 27 54 68 | is a test'..'Th| 0000bdf0 69 73 20 69 73 20 61 20 74 65 73 74 27 20 77 6f |is is a test' wo| 0000be00 75 6c 64 20 62 65 20 74 68 65 20 6d 65 73 73 61 |uld be the messa| 0000be10 67 65 20 64 69 73 70 6c 61 79 65 64 2e 0a 0a 49 |ge displayed...I| 0000be20 74 20 69 73 20 61 6c 73 6f 20 70 6f 73 73 69 62 |t is also possib| 0000be30 6c 65 20 74 6f 20 61 74 74 61 63 68 20 61 20 6d |le to attach a m| 0000be40 65 73 73 61 67 65 20 74 61 67 20 74 6f 20 61 20 |essage tag to a | 0000be50 77 69 6e 64 6f 77 0a 6f 72 20 61 20 77 69 6e 64 |window.or a wind| 0000be60 6f 77 2f 69 63 6f 6e 20 75 73 69 6e 67 20 3c 50 |ow/icon using <P| 0000be70 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 48 |ROCshell_AttachH| 0000be80 65 6c 70 54 61 67 3e 2e 4d 65 73 73 61 67 65 20 |elpTag>.Message | 0000be90 54 61 67 73 0a 41 20 6d 65 73 73 61 67 65 20 74 |Tags.A message t| 0000bea0 61 67 20 69 73 20 61 20 73 74 72 69 6e 67 20 6e |ag is a string n| 0000beb0 6f 74 20 6d 6f 72 65 20 74 68 61 6e 20 31 31 0a |ot more than 11.| 0000bec0 63 68 61 72 61 63 74 65 72 73 20 6c 6f 6e 67 20 |characters long | 0000bed0 61 6e 64 20 72 65 70 72 65 73 65 6e 74 73 20 61 |and represents a| 0000bee0 20 6d 65 73 73 61 67 65 0a 73 74 72 69 6e 67 20 | message.string | 0000bef0 74 6f 20 62 65 20 66 6f 75 6e 64 20 69 6e 20 74 |to be found in t| 0000bf00 68 65 20 27 4d 65 73 73 61 67 65 73 27 20 66 69 |he 'Messages' fi| 0000bf10 6c 65 2e 46 4e 73 68 65 6c 6c 5f 4d 65 6e 75 4c |le.FNshell_MenuL| 0000bf20 61 73 74 58 50 6f 73 0a 52 65 74 75 72 6e 73 20 |astXPos.Returns | 0000bf30 74 68 65 20 58 20 63 6f 6f 72 64 69 6e 61 74 65 |the X coordinate| 0000bf40 20 6f 66 20 74 68 65 20 6c 61 73 74 20 6d 65 6e | of the last men| 0000bf50 75 0a 6f 70 65 6e 65 64 20 62 79 20 3c 50 52 4f |u.opened by <PRO| 0000bf60 43 73 68 65 6c 6c 5f 4f 70 65 6e 4d 65 6e 75 3e |Cshell_OpenMenu>| 0000bf70 2e 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 |...Library Group| 0000bf80 20 3d 3e 20 3c 4d 65 6e 75 73 3d 3e 4c 69 62 47 | => <Menus=>LibG| 0000bf90 72 6f 75 70 4d 65 6e 75 73 3e 46 4e 73 68 65 6c |roupMenus>FNshel| 0000bfa0 6c 5f 4d 65 6e 75 4c 61 73 74 59 50 6f 73 0a 52 |l_MenuLastYPos.R| 0000bfb0 65 74 75 72 6e 73 20 74 68 65 20 59 20 63 6f 6f |eturns the Y coo| 0000bfc0 72 64 69 6e 61 74 65 20 6f 66 20 74 68 65 20 6c |rdinate of the l| 0000bfd0 61 73 74 20 6d 65 6e 75 0a 6f 70 65 6e 65 64 20 |ast menu.opened | 0000bfe0 62 79 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 4f 70 |by <PROCshell_Op| 0000bff0 65 6e 4d 65 6e 75 3e 2e 0a 0a 4c 69 62 72 61 72 |enMenu>...Librar| 0000c000 79 20 47 72 6f 75 70 20 3d 3e 20 3c 4d 65 6e 75 |y Group => <Menu| 0000c010 73 3d 3e 4c 69 62 47 72 6f 75 70 4d 65 6e 75 73 |s=>LibGroupMenus| 0000c020 3e 50 52 4f 43 73 68 65 6c 6c 5f 4f 70 65 6e 4d |>PROCshell_OpenM| 0000c030 65 6e 75 28 29 0a 50 61 72 61 6d 73 20 3d 3e 20 |enu().Params => | 0000c040 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 69 6e | . in| 0000c050 74 20 6d 65 6e 75 20 78 20 63 6f 6f 72 64 69 6e |t menu x coordin| 0000c060 61 74 65 0a 20 20 20 20 20 20 20 20 20 69 6e 74 |ate. int| 0000c070 20 6d 65 6e 75 20 79 20 63 6f 6f 72 64 69 6e 61 | menu y coordina| 0000c080 74 65 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 |te. int | 0000c090 68 61 6e 64 6c 65 20 6f 66 20 6d 65 6e 75 20 74 |handle of menu t| 0000c0a0 6f 20 6f 70 65 6e 0a 0a 4e 6f 72 6d 61 6c 6c 79 |o open..Normally| 0000c0b0 20 74 68 69 73 20 72 6f 75 74 69 6e 65 20 69 73 | this routine is| 0000c0c0 20 63 61 6c 6c 65 64 20 69 6e 74 65 72 6e 61 6c | called internal| 0000c0d0 6c 79 0a 62 79 20 74 68 65 20 6c 69 62 72 61 72 |ly.by the librar| 0000c0e0 79 20 72 6f 75 74 69 6e 65 73 20 69 6e 20 72 65 |y routines in re| 0000c0f0 73 70 6f 6e 73 65 20 74 6f 20 6d 65 6e 75 0a 6f |sponse to menu.o| 0000c100 70 65 6e 20 65 76 65 6e 74 73 20 73 65 74 20 75 |pen events set u| 0000c110 70 20 62 79 20 3c 50 52 4f 43 73 68 65 6c 6c 5f |p by <PROCshell_| 0000c120 41 74 74 61 63 68 4d 65 6e 75 3e 2e 0a 49 6e 20 |AttachMenu>..In | 0000c130 73 6f 6d 65 20 63 69 72 63 75 6d 73 74 61 6e 63 |some circumstanc| 0000c140 65 73 20 69 74 20 6d 61 79 20 62 65 20 61 64 76 |es it may be adv| 0000c150 61 6e 74 61 67 65 6f 75 73 0a 74 6f 20 63 61 6c |antageous.to cal| 0000c160 6c 20 69 74 20 66 72 6f 6d 20 74 68 65 20 75 73 |l it from the us| 0000c170 65 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 2e |er applications.| 0000c180 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 |..Library Group | 0000c190 3d 3e 20 3c 4d 65 6e 75 73 3d 3e 4c 69 62 47 72 |=> <Menus=>LibGr| 0000c1a0 6f 75 70 4d 65 6e 75 73 3e 50 52 4f 43 73 68 65 |oupMenus>PROCshe| 0000c1b0 6c 6c 5f 54 72 61 63 65 45 78 69 74 0a 50 61 72 |ll_TraceExit.Par| 0000c1c0 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 |ams =>. | 0000c1d0 6e 6f 6e 65 0a 0a 43 6c 6f 73 65 73 20 74 68 65 |none..Closes the| 0000c1e0 20 74 72 61 63 65 20 66 69 6c 65 20 69 66 20 69 | trace file if i| 0000c1f0 74 20 69 73 20 6f 70 65 6e 2e 20 4e 6f 72 6d 61 |t is open. Norma| 0000c200 6c 6c 79 0a 6f 6e 6c 79 20 63 61 6c 6c 65 64 20 |lly.only called | 0000c210 62 79 20 74 68 65 20 45 76 6e 74 53 68 65 6c 6c |by the EvntShell| 0000c220 20 6c 69 62 72 61 72 79 20 77 68 65 6e 20 74 68 | library when th| 0000c230 65 0a 61 70 70 6c 69 63 61 74 69 6f 6e 20 63 6c |e.application cl| 0000c240 6f 73 65 73 20 64 6f 77 6e 2e 0a 0a 4c 69 62 72 |oses down...Libr| 0000c250 61 72 79 20 47 72 6f 75 70 20 3d 5c 3e 20 3c 44 |ary Group =\> <D| 0000c260 65 62 75 67 3d 3e 4c 69 62 47 72 6f 75 70 44 65 |ebug=>LibGroupDe| 0000c270 62 75 67 3e 50 52 4f 43 73 68 65 6c 6c 5f 54 72 |bug>PROCshell_Tr| 0000c280 61 63 65 66 30 28 29 0a 50 61 72 61 6d 73 20 3d |acef0().Params =| 0000c290 3e 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 74 |>. str t| 0000c2a0 72 61 63 65 20 6f 75 74 70 75 74 0a 0a 57 72 69 |race output..Wri| 0000c2b0 74 65 73 20 74 68 65 20 67 69 76 65 6e 20 73 74 |tes the given st| 0000c2c0 72 69 6e 67 20 69 6e 74 6f 20 74 68 65 20 74 72 |ring into the tr| 0000c2d0 61 63 65 20 66 69 6c 65 20 69 66 0a 69 74 20 69 |ace file if.it i| 0000c2e0 73 20 6f 70 65 6e 2e 20 49 66 20 3c 50 52 4f 43 |s open. If <PROC| 0000c2f0 73 68 65 6c 6c 5f 54 72 61 63 65 49 6e 69 74 3e |shell_TraceInit>| 0000c300 20 77 61 73 20 63 61 6c 6c 65 64 0a 77 69 74 68 | was called.with| 0000c310 20 61 20 6e 75 6c 6c 20 66 69 6c 65 6e 61 6d 65 | a null filename| 0000c320 20 28 22 22 29 20 74 68 65 6e 20 74 68 65 20 74 | ("") then the t| 0000c330 72 61 63 65 20 6f 75 74 70 75 74 0a 77 69 6c 6c |race output.will| 0000c340 20 62 65 20 62 72 6f 61 64 63 61 73 74 20 75 73 | be broadcast us| 0000c350 69 6e 67 20 41 63 6f 72 6e 27 73 20 6d 65 73 73 |ing Acorn's mess| 0000c360 61 67 65 20 73 79 73 74 65 6d 0a 74 6f 20 62 65 |age system.to be| 0000c370 20 70 69 63 6b 65 64 20 75 70 20 61 6e 64 20 64 | picked up and d| 0000c380 69 73 70 6c 61 79 65 64 20 62 79 20 21 53 68 65 |isplayed by !She| 0000c390 6c 6c 44 42 75 67 20 69 66 0a 69 74 20 69 73 20 |llDBug if.it is | 0000c3a0 72 75 6e 6e 69 6e 67 2e 0a 0a 4c 69 62 72 61 72 |running...Librar| 0000c3b0 79 20 47 72 6f 75 70 20 3d 5c 3e 20 3c 44 65 62 |y Group =\> <Deb| 0000c3c0 75 67 3d 3e 4c 69 62 47 72 6f 75 70 44 65 62 75 |ug=>LibGroupDebu| 0000c3d0 67 3e 50 52 4f 43 73 68 65 6c 6c 5f 54 72 61 63 |g>PROCshell_Trac| 0000c3e0 65 49 6e 69 74 28 29 0a 50 61 72 61 6d 73 20 3d |eInit().Params =| 0000c3f0 3e 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 66 |>. str f| 0000c400 69 6c 65 20 6e 61 6d 65 20 66 6f 72 20 74 72 61 |ile name for tra| 0000c410 63 65 20 6f 75 74 70 75 74 0a 20 20 20 20 20 20 |ce output. | 0000c420 20 20 20 20 20 20 20 28 63 61 6e 20 62 65 20 22 | (can be "| 0000c430 22 20 2d 20 73 65 65 20 62 65 6c 6f 77 29 0a 0a |" - see below)..| 0000c440 49 6e 69 74 69 61 6c 69 73 65 73 20 74 68 65 20 |Initialises the | 0000c450 74 72 61 63 65 20 66 69 6c 65 20 28 6d 75 73 74 |trace file (must| 0000c460 20 62 65 20 63 61 6c 6c 65 64 0a 62 65 66 6f 72 | be called.befor| 0000c470 65 20 61 6e 79 20 6f 74 68 65 72 20 74 72 61 63 |e any other trac| 0000c480 65 20 66 75 6e 63 74 69 6f 6e 73 29 2e 20 49 66 |e functions). If| 0000c490 20 74 68 65 0a 66 69 6c 65 20 6e 61 6d 65 20 69 | the.file name i| 0000c4a0 73 20 22 22 20 74 68 65 6e 20 6e 6f 20 66 69 6c |s "" then no fil| 0000c4b0 65 20 69 73 20 6f 70 65 6e 65 64 2c 20 74 72 61 |e is opened, tra| 0000c4c0 63 65 0a 6f 75 74 70 75 74 20 69 73 20 62 72 6f |ce.output is bro| 0000c4d0 61 64 63 61 73 74 20 61 73 20 61 20 75 73 65 72 |adcast as a user| 0000c4e0 20 6d 65 73 73 61 67 65 20 74 6f 20 62 65 0a 64 | message to be.d| 0000c4f0 69 73 70 6c 61 79 65 64 20 62 79 20 21 53 68 65 |isplayed by !She| 0000c500 6c 6c 44 42 75 67 2e 0a 0a 4c 69 62 72 61 72 79 |llDBug...Library| 0000c510 20 47 72 6f 75 70 20 3d 5c 3e 20 3c 44 65 62 75 | Group =\> <Debu| 0000c520 67 3d 3e 4c 69 62 47 72 6f 75 70 44 65 62 75 67 |g=>LibGroupDebug| 0000c530 3e 46 4e 73 68 65 6c 6c 5f 54 72 61 63 65 49 73 |>FNshell_TraceIs| 0000c540 4f 6e 0a 50 61 72 61 6d 73 20 20 3d 3e 0a 20 20 |On.Params =>. | 0000c550 20 20 20 20 20 20 20 20 6e 6f 6e 65 0a 0a 20 20 | none.. | 0000c560 20 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 | \<=. | 0000c570 20 20 20 20 54 52 55 45 20 69 66 20 74 72 61 63 | TRUE if trac| 0000c580 65 20 69 73 20 65 6e 61 62 6c 65 64 2c 20 46 41 |e is enabled, FA| 0000c590 4c 53 45 20 6f 74 68 65 72 77 69 73 65 2e 0a 0a |LSE otherwise...| 0000c5a0 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d 5c |Library Group =\| 0000c5b0 3e 20 3c 44 65 62 75 67 3d 3e 4c 69 62 47 72 6f |> <Debug=>LibGro| 0000c5c0 75 70 44 65 62 75 67 3e 50 52 4f 43 73 68 65 6c |upDebug>PROCshel| 0000c5d0 6c 5f 54 72 61 63 65 4f 66 66 0a 50 61 72 61 6d |l_TraceOff.Param| 0000c5e0 73 20 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 20 |s =>. | 0000c5f0 6e 6f 6e 65 0a 0a 54 75 72 6e 73 20 6f 66 66 20 |none..Turns off | 0000c600 74 72 61 63 65 20 6f 75 74 70 75 74 2e 0a 0a 4c |trace output...L| 0000c610 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d 5c 3e |ibrary Group =\>| 0000c620 20 3c 44 65 62 75 67 3d 3e 4c 69 62 47 72 6f 75 | <Debug=>LibGrou| 0000c630 70 44 65 62 75 67 3e 50 52 4f 43 73 68 65 6c 6c |pDebug>PROCshell| 0000c640 5f 54 72 61 63 65 4f 6e 0a 50 61 72 61 6d 73 20 |_TraceOn.Params | 0000c650 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 20 6e 6f | =>. no| 0000c660 6e 65 0a 0a 54 75 72 6e 73 20 6f 6e 20 74 72 61 |ne..Turns on tra| 0000c670 63 65 20 6f 75 74 70 75 74 2e 0a 0a 4c 69 62 72 |ce output...Libr| 0000c680 61 72 79 20 47 72 6f 75 70 20 3d 5c 3e 20 3c 44 |ary Group =\> <D| 0000c690 65 62 75 67 3d 3e 4c 69 62 47 72 6f 75 70 44 65 |ebug=>LibGroupDe| 0000c6a0 62 75 67 3e 44 72 61 77 0a 4e 6f 20 52 6f 75 74 |bug>Draw.No Rout| 0000c6b0 69 6e 65 73 20 68 65 72 65 20 79 65 74 21 46 4e |ines here yet!FN| 0000c6c0 73 68 65 6c 6c 5f 46 69 6c 65 4c 65 6e 67 74 68 |shell_FileLength| 0000c6d0 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 |().Params =>. | 0000c6e0 20 20 20 20 20 20 73 74 72 20 66 69 6c 65 20 6e | str file n| 0000c6f0 61 6d 65 20 20 20 20 20 0a 0a 20 20 20 20 20 20 |ame .. | 0000c700 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 20 69 6e | \<=. in| 0000c710 74 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 |t length of the | 0000c720 73 70 65 63 69 66 69 65 64 20 66 69 6c 65 0a 0a |specified file..| 0000c730 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e |Library Group =>| 0000c740 20 3c 46 69 6c 65 73 3d 3e 4c 69 62 47 72 6f 75 | <Files=>LibGrou| 0000c750 70 46 69 6c 65 73 3e 50 52 4f 43 73 68 65 6c 6c |pFiles>PROCshell| 0000c760 5f 4d 6f 75 73 65 4c 69 6d 69 74 28 29 0a 50 61 |_MouseLimit().Pa| 0000c770 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 |rams =>. | 0000c780 20 69 6e 74 20 61 64 64 72 65 73 73 20 6f 66 20 | int address of | 0000c790 77 6f 72 6b 73 70 61 63 65 20 70 61 72 61 6d 65 |workspace parame| 0000c7a0 74 65 72 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 |ter block. | 0000c7b0 20 20 20 69 6e 74 20 77 69 6e 64 6f 77 20 68 61 | int window ha| 0000c7c0 6e 64 6c 65 0a 0a 4c 69 6d 69 74 73 20 6d 6f 75 |ndle..Limits mou| 0000c7d0 73 65 20 70 6f 69 6e 74 65 72 20 6d 6f 76 65 6d |se pointer movem| 0000c7e0 65 6e 74 20 74 6f 20 74 68 65 20 61 72 65 61 20 |ent to the area | 0000c7f0 6f 66 20 74 68 65 0a 73 70 65 63 69 66 69 65 64 |of the.specified| 0000c800 20 77 69 6e 64 6f 77 2e 0a 0a 4c 69 62 72 61 72 | window...Librar| 0000c810 79 20 47 72 6f 75 70 20 3d 3e 20 3c 4d 6f 75 73 |y Group => <Mous| 0000c820 65 3d 3e 4c 69 62 47 72 6f 75 70 4d 6f 75 73 65 |e=>LibGroupMouse| 0000c830 3e 46 4e 73 68 65 6c 6c 5f 4f 53 56 61 72 45 78 |>FNshell_OSVarEx| 0000c840 69 73 74 73 28 29 0a 50 61 72 61 6d 73 20 3d 3e |ists().Params =>| 0000c850 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 20 77 |. int w| 0000c860 6f 72 6b 73 70 61 63 65 20 62 75 66 66 65 72 0a |orkspace buffer.| 0000c870 20 20 20 20 20 20 20 20 20 73 74 72 20 20 6f 73 | str os| 0000c880 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 0a 0a | variable name..| 0000c890 20 20 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 | \<=. | 0000c8a0 20 20 20 20 62 6f 6f 6c 20 54 52 55 45 20 6f 72 | bool TRUE or| 0000c8b0 20 46 41 4c 53 45 0a 0a 4c 69 62 72 61 72 79 20 | FALSE..Library | 0000c8c0 47 72 6f 75 70 20 3d 3e 20 3c 4f 53 3d 3e 4c 69 |Group => <OS=>Li| 0000c8d0 62 47 72 6f 75 70 4f 53 3e 46 4e 73 68 65 6c 6c |bGroupOS>FNshell| 0000c8e0 5f 4f 53 56 61 72 47 65 74 56 61 6c 28 29 0a 50 |_OSVarGetVal().P| 0000c8f0 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 |arams =>. | 0000c900 20 20 69 6e 74 20 20 77 6f 72 6b 73 70 61 63 65 | int workspace| 0000c910 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 | buffer. | 0000c920 20 69 6e 74 20 20 73 69 7a 65 20 6f 66 20 62 75 | int size of bu| 0000c930 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 73 74 |ffer. st| 0000c940 72 20 20 6f 73 20 76 61 72 69 61 62 6c 65 20 6e |r os variable n| 0000c950 61 6d 65 0a 20 20 20 20 20 20 20 20 20 62 6f 6f |ame. boo| 0000c960 6c 20 65 78 70 61 6e 64 20 66 6c 61 67 0a 0a 20 |l expand flag.. | 0000c970 20 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 | \<=. | 0000c980 20 20 20 73 74 72 20 20 76 61 6c 75 65 20 6f 66 | str value of| 0000c990 20 76 61 72 69 61 62 6c 65 0a 0a 4c 69 62 72 61 | variable..Libra| 0000c9a0 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 4f 53 3d |ry Group => <OS=| 0000c9b0 3e 4c 69 62 47 72 6f 75 70 4f 53 3e 46 4e 73 68 |>LibGroupOS>FNsh| 0000c9c0 65 6c 6c 5f 4f 53 52 65 61 64 43 6f 6d 6d 61 6e |ell_OSReadComman| 0000c9d0 64 41 72 67 28 29 0a 50 61 72 61 6d 73 20 3d 3e |dArg().Params =>| 0000c9e0 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 20 6f |. int o| 0000c9f0 70 74 69 6f 6e 20 28 6d 75 73 74 20 62 65 20 30 |ption (must be 0| 0000ca00 20 6f 72 20 31 29 0a 0a 20 20 20 20 20 20 20 5c | or 1).. \| 0000ca10 3c 3d 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 |<=. str | 0000ca20 20 63 6f 6d 6d 61 6e 64 20 73 74 72 69 6e 67 0a | command string.| 0000ca30 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d |.Library Group =| 0000ca40 3e 20 3c 4f 53 3d 3e 4c 69 62 47 72 6f 75 70 4f |> <OS=>LibGroupO| 0000ca50 53 3e 46 4e 73 68 65 6c 6c 5f 53 74 72 69 6e 67 |S>FNshell_String| 0000ca60 41 72 72 61 79 47 65 74 4c 6f 6e 67 65 73 74 28 |ArrayGetLongest(| 0000ca70 29 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 |).Params =>. | 0000ca80 20 20 20 20 20 61 72 72 61 79 20 6e 61 6d 65 20 | array name | 0000ca90 6f 66 20 73 74 72 69 6e 67 20 61 72 72 61 79 0a |of string array.| 0000caa0 20 20 20 20 20 20 20 20 20 69 6e 74 20 20 20 6e | int n| 0000cab0 75 6d 62 65 72 20 6f 66 20 65 6c 65 6d 65 6e 74 |umber of element| 0000cac0 73 0a 0a 20 20 20 20 20 20 20 5c 3c 3d 0a 20 20 |s.. \<=. | 0000cad0 20 20 20 20 20 20 20 69 6e 74 20 20 20 6c 65 6e | int len| 0000cae0 67 74 68 20 6f 66 20 6c 6f 6e 67 65 73 74 20 65 |gth of longest e| 0000caf0 6c 65 6d 65 6e 74 0a 0a 4c 69 62 72 61 72 79 20 |lement..Library | 0000cb00 47 72 6f 75 70 20 3d 3e 20 3c 53 74 72 69 6e 67 |Group => <String| 0000cb10 73 3d 3e 4c 69 62 47 72 6f 75 70 53 74 72 69 6e |s=>LibGroupStrin| 0000cb20 67 73 3e 46 4e 73 68 65 6c 6c 5f 53 74 72 69 6e |gs>FNshell_Strin| 0000cb30 67 45 78 63 68 61 6e 67 65 28 29 0a 50 61 72 61 |gExchange().Para| 0000cb40 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 73 |ms =>. s| 0000cb50 74 72 20 73 6f 75 72 63 65 20 73 74 72 69 6e 67 |tr source string| 0000cb60 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 74 61 |. str ta| 0000cb70 72 67 65 74 20 73 74 72 69 6e 67 0a 20 20 20 20 |rget string. | 0000cb80 20 20 20 20 20 73 74 72 20 73 75 62 73 74 69 74 | str substit| 0000cb90 75 74 69 6f 6e 20 73 74 72 69 6e 67 0a 0a 20 20 |ution string.. | 0000cba0 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 | \<=. | 0000cbb0 20 20 73 74 72 20 74 72 61 6e 73 66 6f 72 6d 65 | str transforme| 0000cbc0 64 20 73 74 72 69 6e 67 0a 0a 4c 69 62 72 61 72 |d string..Librar| 0000cbd0 79 20 47 72 6f 75 70 20 3d 3e 20 3c 53 74 72 69 |y Group => <Stri| 0000cbe0 6e 67 73 3d 3e 4c 69 62 47 72 6f 75 70 53 74 72 |ngs=>LibGroupStr| 0000cbf0 69 6e 67 73 3e 46 4e 73 68 65 6c 6c 5f 53 74 72 |ings>FNshell_Str| 0000cc00 69 6e 67 55 70 70 65 72 43 61 73 65 28 29 0a 50 |ingUpperCase().P| 0000cc10 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 |arams =>. | 0000cc20 20 20 73 74 72 20 73 6f 75 72 63 65 20 73 74 72 | str source str| 0000cc30 69 6e 67 0a 0a 20 20 20 20 20 20 20 5c 3c 3d 0a |ing.. \<=.| 0000cc40 20 20 20 20 20 20 20 20 20 73 74 72 20 74 72 61 | str tra| 0000cc50 6e 73 66 6f 72 6d 65 64 20 73 74 72 69 6e 67 0a |nsformed string.| 0000cc60 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d |.Library Group =| 0000cc70 3e 20 3c 53 74 72 69 6e 67 73 3d 3e 4c 69 62 47 |> <Strings=>LibG| 0000cc80 72 6f 75 70 53 74 72 69 6e 67 73 3e 46 4e 73 68 |roupStrings>FNsh| 0000cc90 65 6c 6c 5f 53 74 72 69 6e 67 4c 6f 77 65 72 43 |ell_StringLowerC| 0000cca0 61 73 65 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a |ase().Params =>.| 0000ccb0 20 20 20 20 20 20 20 20 20 73 74 72 20 73 6f 75 | str sou| 0000ccc0 72 63 65 20 73 74 72 69 6e 67 0a 0a 20 20 20 20 |rce string.. | 0000ccd0 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 20 | \<=. | 0000cce0 73 74 72 20 74 72 61 6e 73 66 6f 72 6d 65 64 20 |str transformed | 0000ccf0 73 74 72 69 6e 67 0a 0a 4c 69 62 72 61 72 79 20 |string..Library | 0000cd00 47 72 6f 75 70 20 3d 3e 20 3c 53 74 72 69 6e 67 |Group => <String| 0000cd10 73 3d 3e 4c 69 62 47 72 6f 75 70 53 74 72 69 6e |s=>LibGroupStrin| 0000cd20 67 73 3e 46 4e 73 68 65 6c 6c 5f 53 74 72 69 6e |gs>FNshell_Strin| 0000cd30 67 50 61 64 4c 65 61 64 69 6e 67 28 29 0a 50 61 |gPadLeading().Pa| 0000cd40 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 |rams =>. | 0000cd50 20 73 74 72 20 73 6f 75 72 63 65 20 73 74 72 69 | str source stri| 0000cd60 6e 67 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 |ng. str | 0000cd70 70 61 64 20 63 68 61 72 61 63 74 65 72 0a 20 20 |pad character. | 0000cd80 20 20 20 20 20 20 20 69 6e 74 20 6c 65 6e 67 74 | int lengt| 0000cd90 68 20 74 6f 20 70 61 64 20 74 6f 0a 0a 20 20 20 |h to pad to.. | 0000cda0 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 | \<=. | 0000cdb0 20 73 74 72 20 74 72 61 6e 73 66 6f 72 6d 65 64 | str transformed| 0000cdc0 20 73 74 72 69 6e 67 0a 0a 4c 69 62 72 61 72 79 | string..Library| 0000cdd0 20 47 72 6f 75 70 20 3d 3e 20 3c 53 74 72 69 6e | Group => <Strin| 0000cde0 67 73 3d 3e 4c 69 62 47 72 6f 75 70 53 74 72 69 |gs=>LibGroupStri| 0000cdf0 6e 67 73 3e 46 4e 73 68 65 6c 6c 5f 53 74 72 69 |ngs>FNshell_Stri| 0000ce00 6e 67 50 61 64 54 72 61 69 6c 69 6e 67 28 29 0a |ngPadTrailing().| 0000ce10 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 |Params =>. | 0000ce20 20 20 20 73 74 72 20 73 6f 75 72 63 65 20 73 74 | str source st| 0000ce30 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 73 74 |ring. st| 0000ce40 72 20 70 61 64 20 63 68 61 72 61 63 74 65 72 0a |r pad character.| 0000ce50 20 20 20 20 20 20 20 20 20 69 6e 74 20 6c 65 6e | int len| 0000ce60 67 74 68 20 74 6f 20 70 61 64 20 74 6f 0a 0a 20 |gth to pad to.. | 0000ce70 20 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 | \<=. | 0000ce80 20 20 20 73 74 72 20 74 72 61 6e 73 66 6f 72 6d | str transform| 0000ce90 65 64 20 73 74 72 69 6e 67 0a 0a 4c 69 62 72 61 |ed string..Libra| 0000cea0 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 53 74 72 |ry Group => <Str| 0000ceb0 69 6e 67 73 3d 3e 4c 69 62 47 72 6f 75 70 53 74 |ings=>LibGroupSt| 0000cec0 72 69 6e 67 73 3e 46 4e 73 68 65 6c 6c 5f 53 74 |rings>FNshell_St| 0000ced0 72 69 6e 67 53 74 72 69 70 41 6c 6c 28 29 0a 50 |ringStripAll().P| 0000cee0 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 |arams =>. | 0000cef0 20 20 73 74 72 20 73 6f 75 72 63 65 20 73 74 72 | str source str| 0000cf00 69 6e 67 0a 20 20 20 20 20 20 20 20 20 73 74 72 |ing. str| 0000cf10 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 73 74 | character to st| 0000cf20 72 69 70 0a 0a 20 20 20 20 20 20 20 5c 3c 3d 0a |rip.. \<=.| 0000cf30 20 20 20 20 20 20 20 20 20 73 74 72 20 74 72 61 | str tra| 0000cf40 6e 73 66 6f 72 6d 65 64 20 73 74 72 69 6e 67 0a |nsformed string.| 0000cf50 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d |.Library Group =| 0000cf60 3e 20 3c 53 74 72 69 6e 67 73 3d 3e 4c 69 62 47 |> <Strings=>LibG| 0000cf70 72 6f 75 70 53 74 72 69 6e 67 73 3e 46 4e 73 68 |roupStrings>FNsh| 0000cf80 65 6c 6c 5f 53 74 72 69 6e 67 53 74 72 69 70 4c |ell_StringStripL| 0000cf90 65 61 64 69 6e 67 28 29 0a 50 61 72 61 6d 73 20 |eading().Params | 0000cfa0 3d 3e 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 |=>. str | 0000cfb0 73 6f 75 72 63 65 20 73 74 72 69 6e 67 0a 20 20 |source string. | 0000cfc0 20 20 20 20 20 20 20 73 74 72 20 63 68 61 72 61 | str chara| 0000cfd0 63 74 65 72 20 74 6f 20 73 74 72 69 70 0a 0a 20 |cter to strip.. | 0000cfe0 20 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 | \<=. | 0000cff0 20 20 20 73 74 72 20 74 72 61 6e 73 66 6f 72 6d | str transform| 0000d000 65 64 20 73 74 72 69 6e 67 20 20 20 0a 0a 4c 69 |ed string ..Li| 0000d010 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c |brary Group => <| 0000d020 53 74 72 69 6e 67 73 3d 3e 4c 69 62 47 72 6f 75 |Strings=>LibGrou| 0000d030 70 53 74 72 69 6e 67 73 3e 46 4e 73 68 65 6c 6c |pStrings>FNshell| 0000d040 5f 53 74 72 69 6e 67 53 74 72 69 70 54 72 61 69 |_StringStripTrai| 0000d050 6c 69 6e 67 28 29 0a 50 61 72 61 6d 73 20 3d 3e |ling().Params =>| 0000d060 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 73 6f |. str so| 0000d070 75 72 63 65 20 73 74 72 69 6e 67 20 20 20 20 20 |urce string | 0000d080 20 20 20 0a 20 20 20 20 20 20 20 20 20 73 74 72 | . str| 0000d090 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 73 74 | character to st| 0000d0a0 72 69 70 0a 0a 20 20 20 20 20 20 20 5c 3c 3d 0a |rip.. \<=.| 0000d0b0 20 20 20 20 20 20 20 20 20 73 74 72 20 74 72 61 | str tra| 0000d0c0 6e 73 66 6f 72 6d 65 64 20 73 74 72 69 6e 67 0a |nsformed string.| 0000d0d0 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d |.Library Group =| 0000d0e0 3e 20 3c 53 74 72 69 6e 67 73 3d 3e 4c 69 62 47 |> <Strings=>LibG| 0000d0f0 72 6f 75 70 53 74 72 69 6e 67 73 3e 46 4e 73 68 |roupStrings>FNsh| 0000d100 65 6c 6c 5f 47 65 74 41 70 70 4e 61 6d 65 0a 50 |ell_GetAppName.P| 0000d110 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 |arams =>. | 0000d120 20 20 6e 6f 6e 65 0a 0a 20 20 20 20 20 20 20 5c | none.. \| 0000d130 3c 3d 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 |<=. str | 0000d140 6e 61 6d 65 20 6f 66 20 61 70 70 6c 69 63 61 74 |name of applicat| 0000d150 69 6f 6e 20 28 61 63 74 75 61 6c 6c 79 20 74 68 |ion (actually th| 0000d160 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 |e. '| 0000d170 6c 65 61 66 27 20 6e 61 6d 65 20 6f 66 20 74 68 |leaf' name of th| 0000d180 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 0a 20 20 |e application. | 0000d190 20 20 20 20 20 20 20 20 20 20 20 64 69 72 65 63 | direc| 0000d1a0 74 6f 72 79 20 6d 69 6e 75 73 20 74 68 65 20 27 |tory minus the '| 0000d1b0 21 27 29 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f |!')..Library Gro| 0000d1c0 75 70 20 3d 3e 20 3c 53 68 65 6c 6c 3d 3e 4c 69 |up => <Shell=>Li| 0000d1d0 62 47 72 6f 75 70 53 68 65 6c 6c 3e 46 4e 73 68 |bGroupShell>FNsh| 0000d1e0 65 6c 6c 5f 47 65 74 41 70 70 44 69 72 0a 50 61 |ell_GetAppDir.Pa| 0000d1f0 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 |rams =>. | 0000d200 20 6e 6f 6e 65 0a 0a 20 20 20 20 20 20 20 5c 3c | none.. \<| 0000d210 3d 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 66 |=. str f| 0000d220 75 6c 6c 20 70 61 74 68 20 6e 61 6d 65 20 6f 66 |ull path name of| 0000d230 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e | the application| 0000d240 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 |. di| 0000d250 72 65 63 74 6f 72 79 0a 0a 4c 69 62 72 61 72 79 |rectory..Library| 0000d260 20 47 72 6f 75 70 20 3d 3e 20 3c 53 68 65 6c 6c | Group => <Shell| 0000d270 3d 3e 4c 69 62 47 72 6f 75 70 53 68 65 6c 6c 3e |=>LibGroupShell>| 0000d280 46 4e 73 68 65 6c 6c 5f 47 65 74 41 70 70 44 61 |FNshell_GetAppDa| 0000d290 74 61 44 69 72 0a 50 61 72 61 6d 73 20 3d 3e 0a |taDir.Params =>.| 0000d2a0 20 20 20 20 20 20 20 20 20 6e 6f 6e 65 0a 0a 20 | none.. | 0000d2b0 20 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 | \<=. | 0000d2c0 20 20 20 73 74 72 20 66 75 6c 6c 20 70 61 74 68 | str full path| 0000d2d0 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 61 70 70 | name of the app| 0000d2e0 6c 69 63 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 |lication. | 0000d2f0 20 20 20 20 20 20 64 61 74 61 20 66 69 6c 65 20 | data file | 0000d300 64 69 72 65 63 74 6f 72 79 0a 0a 4c 69 62 72 61 |directory..Libra| 0000d310 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 53 68 65 |ry Group => <She| 0000d320 6c 6c 3d 3e 4c 69 62 47 72 6f 75 70 53 68 65 6c |ll=>LibGroupShel| 0000d330 6c 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 6e 69 74 |l>PROCshell_Init| 0000d340 48 65 6c 70 53 79 73 74 65 6d 28 29 0a 50 61 72 |HelpSystem().Par| 0000d350 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 |ams =>. | 0000d360 73 74 72 20 20 70 61 74 68 20 6e 61 6d 65 20 6f |str path name o| 0000d370 66 20 68 65 6c 70 20 66 69 6c 65 73 0a 20 20 20 |f help files. | 0000d380 20 20 20 20 20 20 62 6f 6f 6c 20 3c 44 69 65 57 | bool <DieW| 0000d390 69 74 68 54 61 73 6b 3e 20 66 6c 61 67 0a 0a 55 |ithTask> flag..U| 0000d3a0 73 65 64 20 74 6f 20 72 65 67 69 73 74 65 72 20 |sed to register | 0000d3b0 61 20 6e 65 77 20 68 65 6c 70 20 73 79 73 74 65 |a new help syste| 0000d3c0 6d 20 77 69 74 68 20 53 74 72 6f 6e 67 48 6c 70 |m with StrongHlp| 0000d3d0 2e 0a 41 66 74 65 72 20 6d 61 6b 69 6e 67 20 74 |..After making t| 0000d3e0 68 69 73 20 63 61 6c 6c 20 53 74 72 6f 6e 67 48 |his call StrongH| 0000d3f0 6c 70 20 77 69 6c 6c 20 61 64 64 20 74 68 65 20 |lp will add the | 0000d400 68 65 6c 70 0a 73 79 73 74 65 6d 20 66 6f 75 6e |help.system foun| 0000d410 64 20 69 6e 20 74 68 65 20 67 69 76 65 6e 20 70 |d in the given p| 0000d420 61 74 68 20 74 6f 20 69 74 73 20 69 63 6f 6e 20 |ath to its icon | 0000d430 62 61 72 20 6d 65 6e 75 2e 0a 0a 53 74 72 6f 6e |bar menu...Stron| 0000d440 67 48 6c 70 20 77 69 6c 6c 20 62 65 20 73 74 61 |gHlp will be sta| 0000d450 72 74 65 64 20 69 66 20 69 74 20 69 73 20 6e 6f |rted if it is no| 0000d460 74 20 61 6c 72 65 61 64 79 0a 72 75 6e 6e 69 6e |t already.runnin| 0000d470 67 20 61 6e 64 20 53 74 72 6f 6e 67 48 65 6c 70 |g and StrongHelp| 0000d480 24 44 69 72 20 68 61 73 20 62 65 65 6e 20 64 65 |$Dir has been de| 0000d490 66 69 6e 65 64 2e 20 49 66 0a 53 74 72 6f 6e 67 |fined. If.Strong| 0000d4a0 48 6c 70 20 63 61 6e 6e 6f 74 20 62 65 20 66 6f |Hlp cannot be fo| 0000d4b0 75 6e 64 20 74 68 65 6e 20 74 68 65 20 69 6e 69 |und then the ini| 0000d4c0 74 69 61 6c 69 73 61 74 69 6f 6e 0a 63 6f 6d 6d |tialisation.comm| 0000d4d0 61 6e 64 20 69 73 20 73 74 6f 72 65 64 20 61 6e |and is stored an| 0000d4e0 64 20 73 65 6e 74 20 77 68 65 6e 20 53 74 72 6f |d sent when Stro| 0000d4f0 6e 67 48 6c 70 20 69 73 20 73 74 61 72 74 65 64 |ngHlp is started| 0000d500 2e 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 |...Library Group| 0000d510 20 3d 3e 20 3c 53 74 72 6f 6e 67 48 6c 70 3d 3e | => <StrongHlp=>| 0000d520 4c 69 62 47 72 6f 75 70 48 65 6c 70 3e 50 52 4f |LibGroupHelp>PRO| 0000d530 43 73 68 65 6c 6c 5f 48 65 6c 70 57 6f 72 64 28 |Cshell_HelpWord(| 0000d540 29 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 |).Params =>. | 0000d550 20 20 20 20 20 73 74 72 20 77 6f 72 64 20 66 6f | str word fo| 0000d560 72 20 77 68 69 63 68 20 68 65 6c 70 20 69 73 20 |r which help is | 0000d570 74 6f 20 62 65 20 64 69 73 70 6c 61 79 65 64 0a |to be displayed.| 0000d580 0a 55 73 65 64 20 74 6f 20 73 65 6e 64 20 61 20 |.Used to send a | 0000d590 68 65 6c 70 20 72 65 71 75 65 73 74 20 74 6f 20 |help request to | 0000d5a0 53 74 72 6f 6e 67 48 6c 70 2e 20 49 66 20 74 68 |StrongHlp. If th| 0000d5b0 65 20 77 6f 72 64 0a 69 73 20 66 6f 75 6e 64 20 |e word.is found | 0000d5c0 69 6e 20 74 68 65 20 68 65 6c 70 20 73 79 73 74 |in the help syst| 0000d5d0 65 6d 20 74 68 65 20 61 70 70 72 6f 70 72 69 61 |em the appropria| 0000d5e0 74 65 20 68 65 6c 70 20 74 65 78 74 0a 77 69 6c |te help text.wil| 0000d5f0 6c 20 62 65 20 64 69 73 70 6c 61 79 65 64 2e 0a |l be displayed..| 0000d600 0a 53 74 72 6f 6e 67 48 6c 70 20 77 69 6c 6c 20 |.StrongHlp will | 0000d610 62 65 20 73 74 61 72 74 65 64 20 69 66 20 69 74 |be started if it| 0000d620 20 69 73 20 6e 6f 74 20 61 6c 72 65 61 64 79 0a | is not already.| 0000d630 72 75 6e 6e 69 6e 67 20 61 6e 64 20 53 74 72 6f |running and Stro| 0000d640 6e 67 48 65 6c 70 24 44 69 72 20 68 61 73 20 62 |ngHelp$Dir has b| 0000d650 65 65 6e 20 64 65 66 69 6e 65 64 2e 20 49 66 0a |een defined. If.| 0000d660 53 74 72 6f 6e 67 48 6c 70 20 63 61 6e 6e 6f 74 |StrongHlp cannot| 0000d670 20 62 65 20 66 6f 75 6e 64 20 74 68 65 6e 20 74 | be found then t| 0000d680 68 65 20 69 6e 69 74 69 61 6c 69 73 61 74 69 6f |he initialisatio| 0000d690 6e 0a 63 6f 6d 6d 61 6e 64 20 69 73 20 73 74 6f |n.command is sto| 0000d6a0 72 65 64 20 61 6e 64 20 73 65 6e 74 20 77 68 65 |red and sent whe| 0000d6b0 6e 20 53 74 72 6f 6e 67 48 6c 70 20 69 73 20 73 |n StrongHlp is s| 0000d6c0 74 61 72 74 65 64 2e 0a 0a 4c 69 62 72 61 72 79 |tarted...Library| 0000d6d0 20 47 72 6f 75 70 20 3d 3e 20 3c 53 74 72 6f 6e | Group => <Stron| 0000d6e0 67 48 6c 70 3d 3e 4c 69 62 47 72 6f 75 70 48 65 |gHlp=>LibGroupHe| 0000d6f0 6c 70 3e 2d 44 69 65 57 69 74 68 54 61 73 6b 20 |lp>-DieWithTask | 0000d700 46 6c 61 67 0a 57 68 65 6e 20 54 52 55 45 20 74 |Flag.When TRUE t| 0000d710 68 65 20 68 65 6c 70 20 73 79 73 74 65 6d 20 77 |he help system w| 0000d720 69 6c 6c 20 6f 6e 6c 79 20 62 65 20 61 64 64 65 |ill only be adde| 0000d730 64 20 74 6f 20 0a 74 68 65 20 53 74 72 6f 6e 67 |d to .the Strong| 0000d740 48 6c 70 20 69 63 6f 6e 20 62 61 72 20 6d 65 6e |Hlp icon bar men| 0000d750 75 20 77 68 69 6c 65 20 74 68 65 20 75 73 65 72 |u while the user| 0000d760 20 0a 61 70 70 6c 69 63 61 74 69 6f 6e 20 69 73 | .application is| 0000d770 20 61 63 74 75 61 6c 6c 79 20 72 75 6e 6e 69 6e | actually runnin| 0000d780 67 2e 20 57 68 65 6e 20 46 41 4c 53 45 20 69 74 |g. When FALSE it| 0000d790 0a 72 65 6d 61 69 6e 73 20 61 76 61 69 6c 61 62 |.remains availab| 0000d7a0 6c 65 20 77 68 65 6e 20 74 68 65 20 61 70 70 6c |le when the appl| 0000d7b0 69 63 61 74 69 6f 6e 20 71 75 69 74 73 2e 53 74 |ication quits.St| 0000d7c0 72 6f 6e 67 48 6c 70 0a 3c 48 65 6c 70 57 6f 72 |rongHlp.<HelpWor| 0000d7d0 64 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 50 |d =>P| 0000d7e0 52 4f 43 73 68 65 6c 6c 5f 48 65 6c 70 57 6f 72 |ROCshell_HelpWor| 0000d7f0 64 3e 0a 3c 49 6e 69 74 48 65 6c 70 53 79 73 74 |d>.<InitHelpSyst| 0000d800 65 6d 20 20 20 20 20 20 3d 3e 50 52 4f 43 73 68 |em =>PROCsh| 0000d810 65 6c 6c 5f 49 6e 69 74 48 65 6c 70 53 79 73 74 |ell_InitHelpSyst| 0000d820 65 6d 3e 0a 3c 53 74 72 6f 6e 67 48 6c 70 49 73 |em>.<StrongHlpIs| 0000d830 41 76 61 69 6c 61 62 6c 65 3d 3e 46 4e 73 68 65 |Available=>FNshe| 0000d840 6c 6c 5f 53 74 72 6f 6e 67 48 6c 70 49 73 41 76 |ll_StrongHlpIsAv| 0000d850 61 69 6c 61 62 6c 65 3e 53 74 72 6f 6e 67 48 6c |ailable>StrongHl| 0000d860 70 0a 54 68 69 73 20 69 73 20 61 20 68 79 70 65 |p.This is a hype| 0000d870 72 74 65 78 74 20 61 70 70 6c 69 63 61 74 69 6f |rtext applicatio| 0000d880 6e 20 77 72 69 74 74 65 6e 20 62 79 20 3c 47 75 |n written by <Gu| 0000d890 74 74 6f 72 6d 20 56 69 6b 3d 3e 56 69 6b 3e 20 |ttorm Vik=>Vik> | 0000d8a0 77 68 69 63 68 0a 66 75 6e 63 74 69 6f 6e 73 20 |which.functions | 0000d8b0 61 73 20 61 6e 20 6f 6e 2d 6c 69 6e 65 20 6d 61 |as an on-line ma| 0000d8c0 6e 75 61 6c 2e 20 49 74 20 63 6f 6d 65 73 20 77 |nual. It comes w| 0000d8d0 69 74 68 20 64 61 74 61 20 66 69 6c 65 20 66 6f |ith data file fo| 0000d8e0 72 20 42 41 53 49 43 2c 0a 53 57 49 20 63 61 6c |r BASIC,.SWI cal| 0000d8f0 6c 73 20 70 6c 75 73 20 6d 61 6e 79 20 6f 74 68 |ls plus many oth| 0000d900 65 72 73 20 61 6e 64 20 49 20 68 61 76 65 20 61 |ers and I have a| 0000d910 64 6f 70 74 65 64 20 69 74 20 74 6f 20 73 75 70 |dopted it to sup| 0000d920 70 6c 79 20 74 68 65 0a 64 6f 63 75 6d 65 6e 74 |ply the.document| 0000d930 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 45 76 |ation for the Ev| 0000d940 6e 74 53 68 65 6c 6c 20 6c 69 62 72 61 72 79 2e |ntShell library.| 0000d950 20 59 6f 75 20 6f 6e 6c 79 20 68 61 76 65 20 74 | You only have t| 0000d960 6f 20 75 73 65 20 69 74 20 74 6f 0a 73 65 65 20 |o use it to.see | 0000d970 74 68 65 20 61 64 76 61 6e 74 61 67 65 73 2c 20 |the advantages, | 0000d980 62 75 74 20 74 68 65 20 62 69 67 67 65 73 74 20 |but the biggest | 0000d990 61 64 76 61 6e 74 61 67 65 20 69 73 20 74 68 61 |advantage is tha| 0000d9a0 74 20 77 68 65 6e 20 79 6f 75 20 65 64 69 74 0a |t when you edit.| 0000d9b0 70 72 6f 67 72 61 6d 20 73 6f 75 72 63 65 20 63 |program source c| 0000d9c0 6f 64 65 20 75 73 69 6e 67 20 3c 53 74 72 6f 6e |ode using <Stron| 0000d9d0 67 45 44 32 3d 3e 53 74 72 6f 6e 67 45 44 32 2e |gED2=>StrongED2.| 0000d9e0 24 3e 20 68 65 6c 70 20 63 61 6e 20 62 65 20 6f |$> help can be o| 0000d9f0 62 74 61 69 6e 65 64 0a 73 69 6d 70 6c 79 20 62 |btained.simply b| 0000da00 79 20 70 72 65 73 73 69 6e 67 20 46 31 2e 20 4d |y pressing F1. M| 0000da10 6f 72 65 20 64 65 74 61 69 6c 73 20 63 61 6e 20 |ore details can | 0000da20 62 65 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 |be found in the | 0000da30 3c 53 74 72 6f 6e 67 48 6c 70 3d 3e 53 74 72 6f |<StrongHlp=>Stro| 0000da40 6e 67 48 65 6c 70 2e 24 3e 0a 68 65 6c 70 20 66 |ngHelp.$>.help f| 0000da50 69 6c 65 73 2e 0a 0a 54 68 65 20 45 76 6e 74 53 |iles...The EvntS| 0000da60 68 65 6c 6c 20 6c 69 62 72 61 72 79 20 61 6c 73 |hell library als| 0000da70 6f 20 68 61 73 20 61 20 66 65 77 20 50 52 4f 43 |o has a few PROC| 0000da80 73 20 74 6f 20 69 6e 74 65 72 66 61 63 65 20 77 |s to interface w| 0000da90 69 74 68 20 53 74 72 6f 6e 67 48 6c 70 0a 74 6f |ith StrongHlp.to| 0000daa0 20 65 6e 61 62 6c 65 20 75 73 65 72 20 61 70 70 | enable user app| 0000dab0 6c 69 63 61 74 69 6f 6e 73 20 74 6f 20 72 65 67 |lications to reg| 0000dac0 69 73 74 65 72 20 68 65 6c 70 20 73 79 73 74 65 |ister help syste| 0000dad0 6d 73 2e 0a 0a 57 68 65 6e 20 61 20 72 65 71 75 |ms...When a requ| 0000dae0 65 73 74 20 69 73 20 73 65 6e 74 20 74 6f 20 53 |est is sent to S| 0000daf0 74 72 6f 6e 67 48 6c 70 20 74 68 65 20 61 63 74 |trongHlp the act| 0000db00 69 76 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 |ive applications| 0000db10 20 6f 6e 20 74 68 65 20 69 63 6f 6e 0a 62 61 72 | on the icon.bar| 0000db20 20 61 72 65 20 63 68 65 63 6b 65 64 20 74 6f 20 | are checked to | 0000db30 73 65 65 20 69 66 20 53 74 72 6f 6e 67 48 6c 70 |see if StrongHlp| 0000db40 20 69 73 20 72 75 6e 6e 69 6e 67 2e 20 49 66 20 | is running. If | 0000db50 69 74 20 69 73 20 6e 6f 74 20 61 6e 64 20 69 74 |it is not and it| 0000db60 73 0a 21 42 6f 6f 74 20 66 69 6c 65 20 68 61 73 |s.!Boot file has| 0000db70 20 62 65 65 6e 20 27 73 65 65 6e 27 20 62 79 20 | been 'seen' by | 0000db80 74 68 65 20 46 69 6c 65 72 20 74 68 65 6e 20 69 |the Filer then i| 0000db90 74 20 77 69 6c 6c 20 62 65 20 73 74 61 72 74 65 |t will be starte| 0000dba0 64 0a 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2e |d.automatically.| 0000dbb0 20 49 66 20 53 74 72 6f 6e 67 48 6c 70 20 68 61 | If StrongHlp ha| 0000dbc0 73 20 6e 6f 74 20 62 65 65 6e 20 27 73 65 65 6e |s not been 'seen| 0000dbd0 27 20 74 68 65 6e 20 61 6e 20 65 72 72 6f 72 20 |' then an error | 0000dbe0 77 69 6c 6c 20 62 65 0a 67 65 6e 65 72 61 74 65 |will be.generate| 0000dbf0 64 2e 0a 0a 4e 6f 74 65 20 74 68 61 74 20 66 6f |d...Note that fo| 0000dc00 72 20 74 68 65 20 61 62 6f 76 65 20 74 6f 20 77 |r the above to w| 0000dc10 6f 72 6b 20 69 74 20 69 73 20 76 69 74 61 6c 20 |ork it is vital | 0000dc20 74 68 61 74 20 74 68 65 20 68 65 6c 70 20 73 79 |that the help sy| 0000dc30 73 74 65 6d 0a 64 69 72 65 63 74 6f 72 79 20 68 |stem.directory h| 0000dc40 61 73 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 |as the same name| 0000dc50 20 61 73 20 74 68 65 20 61 70 70 6c 69 63 61 74 | as the applicat| 0000dc60 69 6f 6e 20 28 6d 69 6e 75 73 20 74 68 65 20 27 |ion (minus the '| 0000dc70 21 27 29 2e 50 52 4f 43 73 68 65 6c 6c 5f 49 63 |!').PROCshell_Ic| 0000dc80 6f 6e 53 65 74 28 29 0a 50 61 72 61 6d 73 20 3d |onSet().Params =| 0000dc90 3e 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 |> . | 0000dca0 20 20 20 20 69 6e 74 20 20 77 69 6e 64 6f 77 20 | int window | 0000dcb0 68 61 6e 64 6c 65 0a 20 20 20 20 20 20 20 20 20 |handle. | 0000dcc0 69 6e 74 20 20 69 63 6f 6e 20 68 61 6e 64 6c 65 |int icon handle| 0000dcd0 0a 20 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 73 |. bool s| 0000dce0 74 61 74 65 20 28 30 20 66 6f 72 20 64 65 73 65 |tate (0 for dese| 0000dcf0 6c 65 63 74 65 64 2c 20 6e 6f 6e 20 30 0a 20 20 |lected, non 0. | 0000dd00 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 | for | 0000dd10 73 65 6c 65 63 74 65 64 29 0a 0a 54 68 69 73 20 |selected)..This | 0000dd20 63 61 6c 6c 20 69 73 20 75 73 65 64 20 74 6f 20 |call is used to | 0000dd30 73 65 6c 65 63 74 20 6f 72 20 64 65 73 65 6c 65 |select or desele| 0000dd40 63 74 20 69 63 6f 6e 73 0a 64 65 70 65 6e 64 69 |ct icons.dependi| 0000dd50 6e 67 20 6f 6e 20 74 68 65 20 76 61 6c 75 65 20 |ng on the value | 0000dd60 6f 66 20 74 68 65 20 73 74 61 74 65 20 66 6c 61 |of the state fla| 0000dd70 67 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 |g..Library Group| 0000dd80 20 3d 3e 20 3c 49 63 6f 6e 73 3d 3e 4c 69 62 47 | => <Icons=>LibG| 0000dd90 72 6f 75 70 49 63 6f 6e 73 3e 46 4e 73 68 65 6c |roupIcons>FNshel| 0000dda0 6c 5f 4c 69 62 72 61 72 79 56 65 72 73 69 6f 6e |l_LibraryVersion| 0000ddb0 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 |.Params =>. | 0000ddc0 20 20 20 20 6e 6f 6e 65 0a 0a 20 20 20 20 20 20 | none.. | 0000ddd0 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 20 69 6e | \<=. in| 0000dde0 74 20 6c 69 62 72 61 72 79 20 76 65 72 73 69 6f |t library versio| 0000ddf0 6e 20 2a 20 31 30 30 20 69 2e 65 20 76 65 72 73 |n * 100 i.e vers| 0000de00 69 6f 6e 20 31 2e 30 32 0a 20 20 20 20 20 20 20 |ion 1.02. | 0000de10 20 20 20 20 20 20 72 65 74 75 72 6e 73 20 31 30 | returns 10| 0000de20 32 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 |2..Library Group| 0000de30 20 3d 5c 3e 20 3c 53 68 65 6c 6c 3d 3e 4c 69 62 | =\> <Shell=>Lib| 0000de40 47 72 6f 75 70 53 68 65 6c 6c 3e 4c 69 62 72 61 |GroupShell>Libra| 0000de50 72 79 20 56 65 72 73 69 6f 6e 73 0a 31 2e 30 30 |ry Versions.1.00| 0000de60 20 2d 20 49 6e 69 74 69 61 6c 20 72 65 6c 65 61 | - Initial relea| 0000de70 73 65 0a 0a 31 2e 30 31 20 2d 20 41 64 64 65 64 |se..1.01 - Added| 0000de80 20 73 75 70 70 6f 72 74 20 66 6f 72 20 53 74 72 | support for Str| 0000de90 6f 6e 67 48 6c 70 20 68 65 6c 70 20 73 79 73 74 |ongHlp help syst| 0000dea0 65 6d 73 0a 20 20 20 20 20 2d 20 41 64 64 65 64 |ems. - Added| 0000deb0 20 75 73 65 72 20 72 65 64 72 61 77 20 65 76 65 | user redraw eve| 0000dec0 6e 74 73 0a 20 20 20 20 20 2d 20 49 6d 70 72 6f |nts. - Impro| 0000ded0 76 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f |ved documentatio| 0000dee0 6e 0a 20 20 20 20 20 2d 20 41 64 64 65 64 20 72 |n. - Added r| 0000def0 75 6e 20 74 69 6d 65 20 76 65 72 73 69 6f 6e 20 |un time version | 0000df00 6f 66 20 6c 69 62 72 61 72 79 0a 20 20 20 20 20 |of library. | 0000df10 2d 20 43 68 61 6e 67 65 73 20 74 6f 20 67 6c 6f |- Changes to glo| 0000df20 62 61 6c 20 76 61 72 69 61 62 6c 65 20 6e 61 6d |bal variable nam| 0000df30 65 73 20 74 6f 20 61 6c 6c 6f 77 0a 20 20 20 20 |es to allow. | 0000df40 20 20 20 63 6f 6d 70 72 65 73 73 69 6f 6e 20 77 | compression w| 0000df50 69 74 68 20 42 61 73 53 68 72 69 6e 6b 0a 20 20 |ith BasShrink. | 0000df60 20 20 20 2d 20 52 65 6c 65 61 73 65 64 20 74 6f | - Released to| 0000df70 20 41 50 44 4c 0a 0a 31 2e 30 32 20 2d 20 42 75 | APDL..1.02 - Bu| 0000df80 67 20 66 69 78 65 73 20 74 6f 20 5c 3c 57 69 6d |g fixes to \<Wim| 0000df90 70 24 53 63 72 61 70 3e 20 66 69 6c 65 20 74 72 |p$Scrap> file tr| 0000dfa0 61 6e 73 66 65 72 20 72 6f 75 74 69 6e 65 0a 20 |ansfer routine. | 0000dfb0 20 20 20 20 20 20 28 77 61 73 20 6e 6f 74 20 73 | (was not s| 0000dfc0 65 6e 64 69 6e 67 20 63 6f 72 72 65 63 74 20 6d |ending correct m| 0000dfd0 65 73 73 61 67 65 20 72 65 73 75 6c 74 69 6e 67 |essage resulting| 0000dfe0 20 69 6e 20 74 68 65 0a 20 20 20 20 20 20 20 66 | in the. f| 0000dff0 69 6c 65 20 6e 6f 74 20 62 65 69 6e 67 20 6c 6f |ile not being lo| 0000e000 61 64 65 64 20 62 79 20 74 68 65 20 74 61 72 67 |aded by the targ| 0000e010 65 74 20 61 70 70 6c 69 63 61 74 69 6f 6e 29 0a |et application).| 0000e020 20 20 20 20 20 2d 20 44 61 74 61 53 61 76 65 20 | - DataSave | 0000e030 65 76 65 6e 74 20 68 61 6e 64 6c 65 72 20 64 6f |event handler do| 0000e040 65 73 20 6e 6f 74 20 6e 6f 77 20 72 65 71 75 69 |es not now requi| 0000e050 72 65 20 74 68 61 74 0a 20 20 20 20 20 20 20 74 |re that. t| 0000e060 68 65 20 66 69 6c 65 20 65 78 69 73 74 20 69 6e |he file exist in| 0000e070 20 61 20 68 65 61 70 20 62 6c 6f 63 6b 2e 20 54 | a heap block. T| 0000e080 68 65 20 64 61 74 61 20 63 61 6e 20 62 65 0a 20 |he data can be. | 0000e090 20 20 20 20 20 20 77 72 69 74 74 65 6e 20 64 69 | written di| 0000e0a0 72 65 63 74 6c 79 20 74 6f 20 61 20 64 69 73 6b |rectly to a disk| 0000e0b0 20 66 69 6c 65 20 77 68 65 6e 20 74 68 65 20 64 | file when the d| 0000e0c0 61 74 61 73 61 76 65 0a 20 20 20 20 20 20 20 75 |atasave. u| 0000e0d0 73 65 72 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 |ser function is | 0000e0e0 63 61 6c 6c 65 64 0a 0a 31 2e 30 33 20 2d 20 42 |called..1.03 - B| 0000e0f0 75 67 20 66 69 78 20 66 6f 72 20 77 69 6e 64 6f |ug fix for windo| 0000e100 77 73 20 77 69 74 68 6f 75 74 20 6d 65 6e 75 73 |ws without menus| 0000e110 20 61 74 74 61 63 68 65 64 2e 20 54 68 65 0a 20 | attached. The. | 0000e120 20 20 20 20 20 20 6d 65 6d 6f 72 79 20 6c 6f 63 | memory loc| 0000e130 61 74 69 6f 6e 20 68 6f 6c 64 69 6e 67 20 74 68 |ation holding th| 0000e140 65 20 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 |e address of the| 0000e150 20 6d 65 6e 75 0a 20 20 20 20 20 20 20 77 61 73 | menu. was| 0000e160 20 6e 6f 74 20 62 65 69 6e 67 20 69 6e 69 74 69 | not being initi| 0000e170 61 6c 69 73 65 64 20 6c 65 61 64 69 6e 67 20 74 |alised leading t| 0000e180 6f 20 74 68 65 20 6c 69 62 72 61 72 79 0a 20 20 |o the library. | 0000e190 20 20 20 20 20 74 68 69 6e 6b 69 6e 67 20 61 20 | thinking a | 0000e1a0 6d 65 6e 75 20 68 61 64 20 62 65 65 6e 20 61 74 |menu had been at| 0000e1b0 74 61 63 68 65 64 20 74 6f 20 61 20 77 69 6e 64 |tached to a wind| 0000e1c0 6f 77 20 77 68 65 6e 0a 20 20 20 20 20 20 20 69 |ow when. i| 0000e1d0 74 20 68 61 64 6e 27 74 21 0a 0a 31 2e 30 34 20 |t hadn't!..1.04 | 0000e1e0 2d 20 48 65 6c 70 20 74 61 67 73 20 6e 6f 77 20 |- Help tags now | 0000e1f0 77 6f 72 6b 20 74 68 65 20 77 61 79 20 49 20 6f |work the way I o| 0000e200 72 69 67 69 6e 61 6c 6c 79 20 69 6e 74 65 6e 64 |riginally intend| 0000e210 65 64 2c 0a 20 20 20 20 20 20 20 69 6e 20 74 68 |ed,. in th| 0000e220 61 74 20 6d 65 73 73 61 67 65 20 74 61 67 73 20 |at message tags | 0000e230 69 6e 20 69 63 6f 6e 20 76 61 6c 69 64 61 74 69 |in icon validati| 0000e240 6f 6e 20 73 74 72 69 6e 67 73 0a 20 20 20 20 20 |on strings. | 0000e250 20 20 6f 76 65 72 72 69 64 65 20 74 61 67 73 20 | override tags | 0000e260 73 65 74 20 75 70 20 62 79 20 73 68 65 6c 6c 5f |set up by shell_| 0000e270 41 74 74 61 63 68 48 65 6c 70 54 61 67 2e 0a 20 |AttachHelpTag.. | 0000e280 20 20 20 20 2d 20 3c 50 52 4f 43 73 68 65 6c 6c | - <PROCshell| 0000e290 5f 49 63 6f 6e 50 75 74 44 61 74 61 3e 20 6e 6f |_IconPutData> no| 0000e2a0 77 20 75 70 64 61 74 65 73 20 69 63 6f 6e 20 63 |w updates icon c| 0000e2b0 6f 6e 74 65 6e 74 73 0a 20 20 20 20 20 20 20 69 |ontents. i| 0000e2c0 6d 6d 65 64 69 61 74 65 6c 79 20 69 6e 73 74 65 |mmediately inste| 0000e2d0 61 64 20 6f 66 20 77 61 69 74 69 6e 67 20 66 6f |ad of waiting fo| 0000e2e0 72 20 74 68 65 20 6e 65 78 74 20 77 69 6d 70 0a |r the next wimp.| 0000e2f0 20 20 20 20 20 20 20 70 6f 6c 6c 20 65 76 65 6e | poll even| 0000e300 74 2e 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 6d |t. This allows m| 0000e310 65 73 73 61 67 65 73 20 74 6f 20 62 65 20 64 69 |essages to be di| 0000e320 73 70 6c 61 79 65 64 0a 20 20 20 20 20 20 20 69 |splayed. i| 0000e330 6e 20 69 63 6f 6e 73 20 64 75 72 69 6e 67 20 70 |n icons during p| 0000e340 72 6f 67 72 61 6d 20 73 65 63 74 69 6f 6e 73 20 |rogram sections | 0000e350 74 68 61 74 20 64 6f 20 6e 6f 74 20 63 61 6c 6c |that do not call| 0000e360 0a 20 20 20 20 20 20 20 74 68 65 20 70 6f 6c 6c |. the poll| 0000e370 69 6e 67 20 6c 6f 6f 70 20 28 73 65 65 20 21 41 |ing loop (see !A| 0000e380 70 70 42 75 69 6c 64 29 0a 20 20 20 20 20 2d 20 |ppBuild). - | 0000e390 4e 65 77 20 52 6f 75 74 69 6e 65 20 3c 46 4e 73 |New Routine <FNs| 0000e3a0 68 65 6c 6c 5f 4c 65 61 66 3e 0a 20 20 20 20 20 |hell_Leaf>. | 0000e3b0 2d 20 4e 65 77 20 52 6f 75 74 69 6e 65 20 3c 46 |- New Routine <F| 0000e3c0 4e 73 68 65 6c 6c 5f 42 72 61 6e 63 68 3e 0a 20 |Nshell_Branch>. | 0000e3d0 20 20 20 20 2d 20 4e 65 77 20 52 6f 75 74 69 6e | - New Routin| 0000e3e0 65 20 3c 46 4e 73 68 65 6c 6c 5f 46 69 6c 65 54 |e <FNshell_FileT| 0000e3f0 79 70 65 3e 0a 20 20 20 20 20 2d 20 4e 65 77 20 |ype>. - New | 0000e400 52 6f 75 74 69 6e 65 20 3c 50 52 4f 43 73 68 65 |Routine <PROCshe| 0000e410 6c 6c 5f 4d 65 6d 46 69 6c 6c 3e 0a 20 20 20 20 |ll_MemFill>. | 0000e420 20 2d 20 4e 65 77 20 52 6f 75 74 69 6e 65 20 3c | - New Routine <| 0000e430 46 4e 73 68 65 6c 6c 5f 49 63 6f 6e 52 65 73 69 |FNshell_IconResi| 0000e440 7a 65 3e 0a 20 20 20 20 20 2d 20 41 64 64 65 64 |ze>. - Added| 0000e450 20 73 75 70 70 6f 72 74 20 66 6f 72 20 53 68 65 | support for She| 0000e460 6c 6c 44 42 75 67 20 74 6f 20 73 65 6e 64 20 74 |llDBug to send t| 0000e470 72 61 63 65 20 6d 65 73 73 61 67 65 73 0a 20 20 |race messages. | 0000e480 20 20 20 20 20 74 6f 20 61 20 77 69 6e 64 6f 77 | to a window| 0000e490 0a 20 20 20 20 20 2d 20 52 65 6c 65 61 73 65 64 |. - Released| 0000e4a0 20 74 6f 20 41 50 44 4c 0a 0a 31 2e 30 35 20 2d | to APDL..1.05 -| 0000e4b0 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 48 65 6c 70 | <PROCshell_Help| 0000e4c0 57 6f 72 64 3e 20 6e 6f 77 20 77 6f 72 6b 69 6e |Word> now workin| 0000e4d0 67 20 28 73 65 65 20 21 56 42 61 73 65 32 29 0a |g (see !VBase2).| 0000e4e0 20 20 20 20 20 2d 20 41 74 74 65 6d 70 74 69 6e | - Attemptin| 0000e4f0 67 20 74 6f 20 73 65 6e 64 20 61 20 68 65 6c 70 |g to send a help| 0000e500 20 72 65 71 75 65 73 74 20 74 6f 20 21 53 74 72 | request to !Str| 0000e510 6f 6e 67 48 6c 70 20 77 68 65 6e 0a 20 20 20 20 |ongHlp when. | 0000e520 20 20 20 53 74 72 6f 6e 67 48 6c 70 20 69 73 20 | StrongHlp is | 0000e530 6e 6f 74 20 72 75 6e 6e 69 6e 67 20 77 69 6c 6c |not running will| 0000e540 20 6e 6f 77 20 73 74 61 72 74 20 21 53 74 72 6f | now start !Stro| 0000e550 6e 67 48 6c 70 0a 20 20 20 20 20 20 20 66 6f 72 |ngHlp. for| 0000e560 20 79 6f 75 20 28 54 68 61 6e 6b 73 20 47 75 74 | you (Thanks Gut| 0000e570 74 6f 72 6d 20 66 6f 72 20 73 6f 72 74 69 6e 67 |torm for sorting| 0000e580 20 74 68 69 73 20 6f 6e 65 20 6f 75 74 21 29 0a | this one out!).| 0000e590 20 20 20 20 20 2d 20 4e 6f 6e 20 66 61 74 61 6c | - Non fatal| 0000e5a0 20 65 72 72 6f 72 73 20 64 6f 20 6e 6f 74 20 6e | errors do not n| 0000e5b0 6f 77 20 6b 69 6c 6c 20 74 68 65 20 74 72 61 63 |ow kill the trac| 0000e5c0 65 20 6f 75 74 70 75 74 0a 20 20 20 20 20 2d 20 |e output. - | 0000e5d0 44 72 61 67 67 69 6e 67 20 61 6e 20 69 63 6f 6e |Dragging an icon| 0000e5e0 20 74 68 61 74 20 64 6f 65 73 20 6e 6f 74 20 68 | that does not h| 0000e5f0 61 76 65 20 61 20 64 72 61 67 20 65 76 65 6e 74 |ave a drag event| 0000e600 0a 20 20 20 20 20 20 20 72 65 67 69 73 74 65 72 |. register| 0000e610 65 64 20 6e 6f 77 20 64 69 73 70 6c 61 79 73 20 |ed now displays | 0000e620 61 20 77 61 72 6e 69 6e 67 20 6d 65 73 73 61 67 |a warning messag| 0000e630 65 20 69 6e 73 74 65 61 64 20 6f 66 0a 20 20 20 |e instead of. | 0000e640 20 20 20 20 67 65 6e 65 72 61 74 69 6e 67 20 61 | generating a| 0000e650 6e 20 65 72 72 6f 72 0a 20 20 20 20 20 2d 20 4d |n error. - M| 0000e660 6f 72 65 20 6d 65 73 73 61 67 65 73 20 61 64 64 |ore messages add| 0000e670 65 64 20 74 6f 20 74 68 65 20 6d 65 73 73 61 67 |ed to the messag| 0000e680 65 20 66 69 6c 65 0a 20 20 20 20 20 2d 20 50 72 |e file. - Pr| 0000e690 6f 62 6c 65 6d 20 77 69 74 68 20 44 61 74 61 53 |oblem with DataS| 0000e6a0 61 76 65 20 65 76 65 6e 74 20 6e 6f 74 20 62 65 |ave event not be| 0000e6b0 69 6e 67 20 64 65 6c 65 74 65 64 20 70 72 6f 70 |ing deleted prop| 0000e6c0 65 72 6c 79 0a 20 20 20 20 20 20 20 66 69 78 65 |erly. fixe| 0000e6d0 64 2e 20 54 68 69 73 20 6c 65 64 20 74 6f 20 74 |d. This led to t| 0000e6e0 68 65 20 65 76 65 6e 74 20 62 65 69 6e 67 20 61 |he event being a| 0000e6f0 74 74 61 63 68 65 64 20 74 6f 20 74 68 65 0a 20 |ttached to the. | 0000e700 20 20 20 20 20 20 77 72 6f 6e 67 20 77 69 6e 64 | wrong wind| 0000e710 6f 77 2f 69 63 6f 6e 20 73 6f 6d 65 74 69 6d 65 |ow/icon sometime| 0000e720 73 0a 20 20 20 20 20 2d 20 4d 69 6e 6f 72 20 62 |s. - Minor b| 0000e730 75 67 20 66 69 78 20 74 6f 20 69 6e 74 65 72 61 |ug fix to intera| 0000e740 63 74 69 76 65 20 68 65 6c 70 20 72 6f 75 74 69 |ctive help routi| 0000e750 6e 65 20 77 68 69 63 68 0a 20 20 20 20 20 20 20 |ne which. | 0000e760 73 6f 6d 65 74 69 6d 65 73 20 70 72 65 76 65 6e |sometimes preven| 0000e770 74 65 64 20 68 65 6c 70 20 6d 65 73 73 61 67 65 |ted help message| 0000e780 73 20 62 65 69 6e 67 20 73 65 6e 74 0a 20 20 20 |s being sent. | 0000e790 20 20 2d 20 43 6c 69 63 6b 20 6f 6e 20 69 63 6f | - Click on ico| 0000e7a0 6e 20 30 20 6f 66 20 73 74 61 74 69 63 20 77 69 |n 0 of static wi| 0000e7b0 6e 64 6f 77 20 64 6f 65 73 20 6e 6f 74 20 6e 6f |ndow does not no| 0000e7c0 77 20 63 6c 6f 73 65 0a 20 20 20 20 20 20 20 74 |w close. t| 0000e7d0 68 65 20 77 69 6e 64 6f 77 2e 20 28 41 6c 73 6f |he window. (Also| 0000e7e0 20 74 72 75 65 20 6f 66 20 70 72 65 73 73 69 6e | true of pressin| 0000e7f0 67 20 52 45 54 55 52 4e 20 77 68 65 6e 20 63 61 |g RETURN when ca| 0000e800 72 65 74 0a 20 20 20 20 20 20 20 69 73 20 69 6e |ret. is in| 0000e810 20 6c 61 73 74 20 77 72 69 74 65 61 62 6c 65 20 | last writeable | 0000e820 69 63 6f 6e 20 6f 66 20 61 20 73 74 61 74 69 63 |icon of a static| 0000e830 20 77 69 6e 64 6f 77 29 2e 0a 20 20 20 20 20 2d | window).. -| 0000e840 20 4e 65 77 20 52 6f 75 74 69 6e 65 20 3c 50 52 | New Routine <PR| 0000e850 4f 43 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 42 72 |OCshell_WindowBr| 0000e860 69 6e 67 54 6f 54 6f 70 3e 0a 20 20 20 20 20 2d |ingToTop>. -| 0000e870 20 4e 65 77 20 52 6f 75 74 69 6e 65 20 3c 46 4e | New Routine <FN| 0000e880 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 49 73 4f 6e |shell_WindowIsOn| 0000e890 54 6f 70 3e 0a 20 20 20 20 20 2d 20 4e 65 77 20 |Top>. - New | 0000e8a0 52 6f 75 74 69 6e 65 20 3c 50 52 4f 43 73 68 65 |Routine <PROCshe| 0000e8b0 6c 6c 5f 4d 65 6e 75 54 69 63 6b 3e 0a 20 20 20 |ll_MenuTick>. | 0000e8c0 20 20 2d 20 4e 65 77 20 52 6f 75 74 69 6e 65 20 | - New Routine | 0000e8d0 3c 50 52 4f 43 73 68 65 6c 6c 5f 4d 65 6e 75 53 |<PROCshell_MenuS| 0000e8e0 68 61 64 65 3e 0a 20 20 20 20 20 2d 20 52 6f 75 |hade>. - Rou| 0000e8f0 74 69 6e 65 20 49 6d 70 72 6f 76 65 64 20 3c 50 |tine Improved <P| 0000e900 52 4f 43 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 52 |ROCshell_WindowR| 0000e910 65 74 69 74 6c 65 3e 0a 20 20 20 20 20 2d 20 52 |etitle>. - R| 0000e920 6f 75 74 69 6e 65 20 49 6d 70 72 6f 76 65 64 20 |outine Improved | 0000e930 3c 50 52 4f 43 73 68 65 6c 6c 5f 57 69 6e 64 6f |<PROCshell_Windo| 0000e940 77 4d 6f 76 65 54 6f 49 63 6f 6e 3e 0a 20 20 20 |wMoveToIcon>. | 0000e950 20 20 2d 20 52 6f 75 74 69 6e 65 20 49 6d 70 72 | - Routine Impr| 0000e960 6f 76 65 64 20 3c 50 52 4f 43 73 68 65 6c 6c 5f |oved <PROCshell_| 0000e970 57 69 6e 64 6f 77 4d 6f 76 65 54 6f 3e 0a 20 20 |WindowMoveTo>. | 0000e980 20 20 20 2d 20 43 6c 69 63 6b 69 6e 67 20 6f 6e | - Clicking on| 0000e990 20 27 69 6e 74 65 72 66 61 63 65 27 20 73 74 79 | 'interface' sty| 0000e9a0 6c 65 20 69 63 6f 6e 73 20 77 69 74 68 6f 75 74 |le icons without| 0000e9b0 20 65 76 65 6e 74 73 0a 20 20 20 20 20 20 20 61 | events. a| 0000e9c0 74 74 61 63 68 65 64 20 6e 6f 77 20 64 6f 65 73 |ttached now does| 0000e9d0 20 6e 6f 74 20 27 73 6c 61 62 27 20 74 68 65 20 | not 'slab' the | 0000e9e0 69 63 6f 6e 0a 0a 31 2e 30 36 20 2d 20 4e 65 77 |icon..1.06 - New| 0000e9f0 20 52 6f 75 74 69 6e 65 20 3c 46 4e 73 68 65 6c | Routine <FNshel| 0000ea00 6c 5f 57 69 6e 64 6f 77 48 61 73 54 69 74 6c 65 |l_WindowHasTitle| 0000ea10 42 61 72 3e 0a 20 20 20 20 20 2d 20 4e 65 77 20 |Bar>. - New | 0000ea20 52 6f 75 74 69 6e 65 20 3c 46 4e 73 68 65 6c 6c |Routine <FNshell| 0000ea30 5f 57 69 6e 64 6f 77 49 73 4d 6f 76 65 61 62 6c |_WindowIsMoveabl| 0000ea40 65 3e 0a 20 20 20 20 20 2d 20 4e 65 77 20 52 6f |e>. - New Ro| 0000ea50 75 74 69 6e 65 20 3c 46 4e 73 68 65 6c 6c 5f 57 |utine <FNshell_W| 0000ea60 69 6e 64 6f 77 49 73 41 50 61 6e 65 3e 0a 20 20 |indowIsAPane>. | 0000ea70 20 20 20 2d 20 4e 65 77 20 52 6f 75 74 69 6e 65 | - New Routine| 0000ea80 20 3c 46 4e 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 | <FNshell_Window| 0000ea90 49 73 4e 6f 74 42 6f 75 6e 64 65 64 3e 0a 20 20 |IsNotBounded>. | 0000eaa0 20 20 20 2d 20 4e 65 77 20 52 6f 75 74 69 6e 65 | - New Routine| 0000eab0 20 3c 46 4e 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 | <FNshell_Window| 0000eac0 54 72 61 70 73 48 6f 74 4b 65 79 73 3e 0a 20 20 |TrapsHotKeys>. | 0000ead0 20 20 20 2d 20 4e 65 77 20 52 6f 75 74 69 6e 65 | - New Routine| 0000eae0 20 3c 46 4e 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 | <FNshell_Window| 0000eaf0 49 73 4f 70 65 6e 3e 0a 20 20 20 20 20 2d 20 4e |IsOpen>. - N| 0000eb00 65 77 20 52 6f 75 74 69 6e 65 20 3c 46 4e 73 68 |ew Routine <FNsh| 0000eb10 65 6c 6c 5f 57 69 6e 64 6f 77 48 61 73 42 65 65 |ell_WindowHasBee| 0000eb20 6e 54 6f 67 67 6c 65 64 3e 0a 20 20 20 20 20 2d |nToggled>. -| 0000eb30 20 4e 65 77 20 52 6f 75 74 69 6e 65 20 3c 46 4e | New Routine <FN| 0000eb40 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 48 61 73 49 |shell_WindowHasI| 0000eb50 6e 70 75 74 46 6f 63 75 73 3e 0a 20 20 20 20 20 |nputFocus>. | 0000eb60 2d 20 4e 65 77 20 52 6f 75 74 69 6e 65 20 3c 46 |- New Routine <F| 0000eb70 4e 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 48 61 73 |Nshell_WindowHas| 0000eb80 42 61 63 6b 49 63 6f 6e 3e 0a 20 20 20 20 20 2d |BackIcon>. -| 0000eb90 20 4e 65 77 20 52 6f 75 74 69 6e 65 20 3c 46 4e | New Routine <FN| 0000eba0 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 48 61 73 43 |shell_WindowHasC| 0000ebb0 6c 6f 73 65 49 63 6f 6e 3e 0a 20 20 20 20 20 2d |loseIcon>. -| 0000ebc0 20 4e 65 77 20 52 6f 75 74 69 6e 65 20 3c 46 4e | New Routine <FN| 0000ebd0 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 48 61 73 54 |shell_WindowHasT| 0000ebe0 6f 67 67 6c 65 49 63 6f 6e 3e 0a 20 20 20 20 20 |oggleIcon>. | 0000ebf0 2d 20 4e 65 77 20 52 6f 75 74 69 6e 65 20 3c 46 |- New Routine <F| 0000ec00 4e 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 48 61 73 |Nshell_WindowHas| 0000ec10 56 53 63 72 6f 6c 6c 42 61 72 3e 0a 20 20 20 20 |VScrollBar>. | 0000ec20 20 2d 20 4e 65 77 20 52 6f 75 74 69 6e 65 20 3c | - New Routine <| 0000ec30 46 4e 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 48 61 |FNshell_WindowHa| 0000ec40 73 41 64 6a 75 73 74 53 69 7a 65 49 63 6f 6e 3e |sAdjustSizeIcon>| 0000ec50 0a 20 20 20 20 20 2d 20 4e 65 77 20 52 6f 75 74 |. - New Rout| 0000ec60 69 6e 65 20 3c 46 4e 73 68 65 6c 6c 5f 57 69 6e |ine <FNshell_Win| 0000ec70 64 6f 77 48 61 73 48 53 63 72 6f 6c 6c 42 61 72 |dowHasHScrollBar| 0000ec80 3e 0a 20 20 20 20 20 2d 20 4e 65 77 20 52 6f 75 |>. - New Rou| 0000ec90 74 69 6e 65 20 3c 46 4e 73 68 65 6c 6c 5f 57 69 |tine <FNshell_Wi| 0000eca0 6e 64 6f 77 47 65 74 54 69 74 6c 65 3e 0a 20 20 |ndowGetTitle>. | 0000ecb0 20 20 20 2d 20 4e 65 77 20 52 6f 75 74 69 6e 65 | - New Routine| 0000ecc0 20 3c 46 4e 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 | <FNshell_Window| 0000ecd0 54 69 74 6c 65 42 75 66 66 65 72 4c 65 6e 67 74 |TitleBufferLengt| 0000ece0 68 3e 0a 20 20 20 20 20 2d 20 4e 65 77 20 52 6f |h>. - New Ro| 0000ecf0 75 74 69 6e 65 20 3c 46 4e 73 68 65 6c 6c 5f 57 |utine <FNshell_W| 0000ed00 69 6e 64 6f 77 4c 6f 61 64 65 64 3e 0a 20 20 20 |indowLoaded>. | 0000ed10 20 20 2d 20 4e 65 77 20 52 6f 75 74 69 6e 65 20 | - New Routine | 0000ed20 3c 46 4e 73 68 65 6c 6c 5f 49 63 6f 6e 4d 6f 76 |<FNshell_IconMov| 0000ed30 65 3e 0a 20 20 20 20 20 2d 20 4e 65 77 20 52 6f |e>. - New Ro| 0000ed40 75 74 69 6e 65 20 3c 46 4e 73 68 65 6c 6c 5f 49 |utine <FNshell_I| 0000ed50 63 6f 6e 4d 6f 76 65 32 3e 0a 20 20 20 20 20 2d |conMove2>. -| 0000ed60 20 4e 65 77 20 52 6f 75 74 69 6e 65 20 3c 46 4e | New Routine <FN| 0000ed70 73 68 65 6c 6c 5f 46 6f 6e 74 4d 65 6e 75 47 65 |shell_FontMenuGe| 0000ed80 74 4c 61 73 74 53 65 6c 65 63 74 65 64 46 6f 6e |tLastSelectedFon| 0000ed90 74 3e 0a 20 20 20 20 20 2d 20 4e 65 77 20 52 6f |t>. - New Ro| 0000eda0 75 74 69 6e 65 20 3c 50 52 4f 43 73 68 65 6c 6c |utine <PROCshell| 0000edb0 5f 49 63 6f 6e 44 65 6c 65 74 65 3e 0a 20 20 20 |_IconDelete>. | 0000edc0 20 20 2d 20 4e 65 77 20 52 6f 75 74 69 6e 65 20 | - New Routine | 0000edd0 3c 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 44 |<PROCshell_IconD| 0000ede0 65 6c 65 74 65 32 3e 0a 20 20 20 20 20 2d 20 4e |elete2>. - N| 0000edf0 65 77 20 52 6f 75 74 69 6e 65 20 3c 50 52 4f 43 |ew Routine <PROC| 0000ee00 73 68 65 6c 6c 5f 44 6f 42 61 63 6b 67 72 6f 75 |shell_DoBackgrou| 0000ee10 6e 64 54 61 73 6b 3e 0a 20 20 20 20 20 2d 20 4e |ndTask>. - N| 0000ee20 65 77 20 52 6f 75 74 69 6e 65 20 3c 50 52 4f 43 |ew Routine <PROC| 0000ee30 73 68 65 6c 6c 5f 48 61 6e 64 6c 65 55 6e 6b 6e |shell_HandleUnkn| 0000ee40 6f 77 6e 4d 65 73 73 61 67 65 3e 0a 20 20 20 20 |ownMessage>. | 0000ee50 20 2d 20 4e 65 77 20 52 6f 75 74 69 6e 65 20 3c | - New Routine <| 0000ee60 50 52 4f 43 73 68 65 6c 6c 5f 4d 65 6e 75 50 75 |PROCshell_MenuPu| 0000ee70 74 44 61 74 61 3e 0a 20 20 20 20 20 2d 20 4e 65 |tData>. - Ne| 0000ee80 77 20 52 6f 75 74 69 6e 65 20 3c 50 52 4f 43 73 |w Routine <PROCs| 0000ee90 68 65 6c 6c 5f 41 74 74 61 63 68 53 75 62 4d 65 |hell_AttachSubMe| 0000eea0 6e 75 3e 0a 20 20 20 20 20 2d 20 4e 65 77 20 52 |nu>. - New R| 0000eeb0 6f 75 74 69 6e 65 20 3c 50 52 4f 43 73 68 65 6c |outine <PROCshel| 0000eec0 6c 5f 41 74 74 61 63 68 46 6f 6e 74 53 75 62 4d |l_AttachFontSubM| 0000eed0 65 6e 75 3e 0a 20 20 20 20 20 2d 20 4e 65 77 20 |enu>. - New | 0000eee0 52 6f 75 74 69 6e 65 20 3c 50 52 4f 43 73 68 65 |Routine <PROCshe| 0000eef0 6c 6c 5f 41 74 74 61 63 68 46 6f 6e 74 4d 65 6e |ll_AttachFontMen| 0000ef00 75 3e 0a 20 20 20 20 20 2d 20 4e 65 77 20 52 6f |u>. - New Ro| 0000ef10 75 74 69 6e 65 20 3c 50 52 4f 43 73 68 65 6c 6c |utine <PROCshell| 0000ef20 5f 46 6f 6e 74 4d 65 6e 75 53 65 6c 65 63 74 46 |_FontMenuSelectF| 0000ef30 6f 6e 74 3e 0a 20 20 20 20 20 2d 20 41 64 64 65 |ont>. - Adde| 0000ef40 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 53 68 |d support for Sh| 0000ef50 65 6c 6c 44 42 75 67 20 74 6f 20 74 75 72 6e 20 |ellDBug to turn | 0000ef60 74 72 61 63 69 6e 67 20 6f 6e 2f 6f 66 66 0a 20 |tracing on/off. | 0000ef70 20 20 20 20 2d 20 52 65 76 69 73 65 64 20 70 61 | - Revised pa| 0000ef80 72 61 6d 65 74 65 72 73 20 66 6f 72 20 75 73 65 |rameters for use| 0000ef90 72 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 65 |r function calle| 0000efa0 64 20 62 79 0a 20 20 20 20 20 20 20 3c 50 52 4f |d by. <PRO| 0000efb0 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 4d 65 6e |Cshell_AttachMen| 0000efc0 75 4d 61 6b 65 72 3e 2e 20 4e 6f 77 20 70 61 73 |uMaker>. Now pas| 0000efd0 73 65 73 20 68 61 6e 64 6c 65 20 6f 66 0a 20 20 |ses handle of. | 0000efe0 20 20 20 20 20 77 69 6e 64 6f 77 20 61 6e 64 20 | window and | 0000eff0 69 63 6f 6e 20 74 68 61 74 20 77 61 73 20 63 6c |icon that was cl| 0000f000 69 63 6b 65 64 20 6f 76 65 72 2e 20 54 68 69 73 |icked over. This| 0000f010 20 61 6c 6c 6f 77 73 0a 20 20 20 20 20 20 20 79 | allows. y| 0000f020 6f 75 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 |ou to set up the| 0000f030 20 6d 65 6e 75 20 64 65 70 65 6e 64 69 6e 67 20 | menu depending | 0000f040 6f 6e 20 74 68 65 20 77 69 6e 64 6f 77 2f 69 63 |on the window/ic| 0000f050 6f 6e 20 0a 20 20 20 20 20 20 20 68 61 6e 64 6c |on . handl| 0000f060 65 73 2e 0a 20 20 20 20 20 2d 20 52 65 76 69 73 |es.. - Revis| 0000f070 65 64 20 70 61 72 61 6d 65 74 65 72 73 20 66 6f |ed parameters fo| 0000f080 72 20 3c 46 4e 73 68 65 6c 6c 5f 49 63 6f 6e 43 |r <FNshell_IconC| 0000f090 72 65 61 74 65 3e 20 28 61 64 64 65 64 0a 20 20 |reate> (added. | 0000f0a0 20 20 20 20 20 76 61 6c 69 64 61 74 69 6f 6e 20 | validation | 0000f0b0 73 74 72 69 6e 67 20 70 61 72 61 6d 65 74 65 72 |string parameter| 0000f0c0 29 0a 20 20 20 20 20 2d 20 52 65 76 69 73 65 64 |). - Revised| 0000f0d0 20 70 61 72 61 6d 65 74 65 72 73 20 66 6f 72 20 | parameters for | 0000f0e0 3c 46 4e 73 68 65 6c 6c 5f 49 63 6f 6e 52 65 73 |<FNshell_IconRes| 0000f0f0 69 7a 65 3e 20 28 72 65 6d 6f 76 65 64 0a 20 20 |ize> (removed. | 0000f100 20 20 20 20 20 62 6f 72 64 65 72 20 77 69 64 74 | border widt| 0000f110 68 20 70 61 72 61 6d 65 74 65 72 20 61 73 20 74 |h parameter as t| 0000f120 68 69 73 20 69 73 20 63 61 6c 63 75 6c 61 74 65 |his is calculate| 0000f130 64 20 62 79 20 74 68 65 0a 20 20 20 20 20 20 20 |d by the. | 0000f140 72 6f 75 74 69 6e 65 20 6e 6f 77 29 0a 20 20 20 |routine now). | 0000f150 20 20 2d 20 4d 69 6e 6f 72 20 62 75 67 20 66 69 | - Minor bug fi| 0000f160 78 65 64 20 74 68 61 74 20 72 65 73 75 6c 74 65 |xed that resulte| 0000f170 64 20 69 6e 20 66 69 6c 65 73 20 6e 6f 74 20 62 |d in files not b| 0000f180 65 69 6e 67 0a 20 20 20 20 20 20 20 74 72 61 6e |eing. tran| 0000f190 73 66 65 72 72 65 64 20 63 6f 72 72 65 63 74 6c |sferred correctl| 0000f1a0 79 20 74 6f 20 21 53 74 72 6f 6e 67 45 64 32 20 |y to !StrongEd2 | 0000f1b0 28 65 76 65 72 79 20 6f 74 68 65 72 0a 20 20 20 |(every other. | 0000f1c0 20 20 20 20 52 49 53 43 2d 4f 53 20 74 65 78 74 | RISC-OS text| 0000f1d0 20 68 61 6e 64 6c 69 6e 67 20 70 72 6f 67 72 61 | handling progra| 0000f1e0 6d 20 66 72 6f 6d 20 21 49 6d 70 72 65 73 73 69 |m from !Impressi| 0000f1f0 6f 6e 20 64 6f 77 6e 0a 20 20 20 20 20 20 20 77 |on down. w| 0000f200 6f 72 6b 65 64 20 4f 4b 20 74 68 6f 75 67 68 21 |orked OK though!| 0000f210 29 0a 20 20 20 20 20 2d 20 41 64 64 65 64 20 73 |). - Added s| 0000f220 75 70 70 6f 72 74 20 66 6f 72 20 6f 75 74 6c 69 |upport for outli| 0000f230 6e 65 20 66 6f 6e 74 73 2e 20 54 65 6d 70 6c 61 |ne fonts. Templa| 0000f240 74 65 73 20 75 73 69 6e 67 0a 20 20 20 20 20 20 |tes using. | 0000f250 20 66 6f 6e 74 73 20 63 61 6e 20 6e 6f 77 20 62 | fonts can now b| 0000f260 65 20 6c 6f 61 64 65 64 2c 20 62 75 74 20 6d 69 |e loaded, but mi| 0000f270 73 73 69 6e 67 20 66 6f 6e 74 73 20 6d 61 79 20 |ssing fonts may | 0000f280 73 74 69 6c 6c 0a 20 20 20 20 20 20 20 63 61 75 |still. cau| 0000f290 73 65 20 70 72 6f 62 6c 65 6d 73 21 0a 0a 31 2e |se problems!..1.| 0000f2a0 30 37 20 2d 20 4e 65 77 20 52 6f 75 74 69 6e 65 |07 - New Routine| 0000f2b0 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e | <PROCshell_Icon| 0000f2c0 44 65 73 65 6c 65 63 74 41 6c 6c 3e 0a 20 20 20 |DeselectAll>. | 0000f2d0 20 20 2d 20 4e 65 77 20 52 6f 75 74 69 6e 65 20 | - New Routine | 0000f2e0 3c 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 53 |<PROCshell_IconS| 0000f2f0 65 6c 65 63 74 41 6c 6c 3e 0a 20 20 20 20 20 2d |electAll>. -| 0000f300 20 49 66 20 61 20 6d 65 6e 75 20 68 61 73 20 62 | If a menu has b| 0000f310 65 65 6e 20 61 74 74 61 63 68 65 64 20 74 6f 20 |een attached to | 0000f320 61 6e 20 69 63 6f 6e 2c 20 53 45 4c 45 43 54 2c |an icon, SELECT,| 0000f330 20 4d 45 4e 55 0a 20 20 20 20 20 20 20 6f 72 20 | MENU. or | 0000f340 41 44 4a 55 53 54 20 77 69 6c 6c 20 6e 6f 77 20 |ADJUST will now | 0000f350 6f 70 65 6e 20 69 74 20 28 69 6e 73 74 65 61 64 |open it (instead| 0000f360 20 6f 66 20 6a 75 73 74 20 4d 45 4e 55 20 61 73 | of just MENU as| 0000f370 0a 20 20 20 20 20 20 20 62 65 66 6f 72 65 29 0a |. before).| 0000f380 31 2e 30 38 20 2d 20 42 75 67 20 66 69 78 20 74 |1.08 - Bug fix t| 0000f390 6f 20 53 45 4c 45 43 54 2f 41 44 4a 55 53 54 20 |o SELECT/ADJUST | 0000f3a0 6f 70 65 6e 69 6e 67 20 61 20 6d 65 6e 75 20 28 |opening a menu (| 0000f3b0 6f 70 65 6e 65 64 20 6d 65 6e 75 73 0a 20 20 20 |opened menus. | 0000f3c0 20 20 20 20 77 68 65 6e 20 69 74 20 73 68 6f 75 | when it shou| 0000f3d0 6c 64 6e 27 74 20 68 61 76 65 2e 20 47 72 72 72 |ldn't have. Grrr| 0000f3e0 72 72 72 21 29 0a 20 20 20 20 20 2d 20 41 64 64 |rrr!). - Add| 0000f3f0 65 64 20 27 6e 6f 20 6c 6f 61 64 27 20 66 6c 61 |ed 'no load' fla| 0000f400 67 20 74 6f 20 3c 50 52 4f 43 73 68 65 6c 6c 5f |g to <PROCshell_| 0000f410 41 74 74 61 63 68 44 61 74 61 4c 6f 61 64 3e 0a |AttachDataLoad>.| 0000f420 20 20 20 20 20 2d 20 46 69 78 65 64 20 62 75 67 | - Fixed bug| 0000f430 20 69 6e 20 61 74 74 61 63 68 20 64 61 74 61 6c | in attach datal| 0000f440 6f 61 64 20 72 6f 75 74 69 6e 65 0a 20 20 20 20 |oad routine. | 0000f450 20 2d 20 41 64 64 65 64 20 73 75 70 70 6f 72 74 | - Added support| 0000f460 20 66 6f 72 20 52 49 53 43 2d 4f 53 20 33 20 62 | for RISC-OS 3 b| 0000f470 6f 6f 74 20 6d 65 73 73 61 67 65 0a 20 20 20 20 |oot message. | 0000f480 20 2d 20 53 68 65 6c 6c 20 6d 65 73 73 61 67 65 | - Shell message| 0000f490 73 20 68 65 6c 64 20 69 6e 20 73 65 70 65 72 61 |s held in sepera| 0000f4a0 74 65 20 66 69 6c 65 20 28 74 68 61 6e 6b 73 20 |te file (thanks | 0000f4b0 66 6f 72 20 74 68 65 0a 20 20 20 20 20 20 20 73 |for the. s| 0000f4c0 75 67 67 65 73 74 69 6f 6e 20 61 6e 64 20 69 6e |uggestion and in| 0000f4d0 66 6f 20 43 79 21 29 0a 20 20 20 20 20 2d 20 53 |fo Cy!). - S| 0000f4e0 6d 61 6c 6c 20 27 46 6f 6e 74 4d 65 6e 75 27 20 |mall 'FontMenu' | 0000f4f0 62 75 67 65 74 74 65 20 66 69 78 65 64 20 28 73 |bugette fixed (s| 0000f500 65 6c 65 63 74 65 64 20 66 6f 6e 74 20 77 61 73 |elected font was| 0000f510 20 6e 6f 74 0a 20 20 20 20 20 20 20 62 65 69 6e | not. bein| 0000f520 67 20 74 69 63 6b 65 64 20 69 6e 20 74 68 65 20 |g ticked in the | 0000f530 6d 65 6e 75 20 69 66 20 74 68 65 20 6d 65 6e 75 |menu if the menu| 0000f540 20 77 61 73 20 61 74 74 61 63 68 65 64 20 74 6f | was attached to| 0000f550 0a 20 20 20 20 20 20 20 61 20 77 69 6e 64 6f 77 |. a window| 0000f560 20 69 6e 73 74 65 61 64 20 6f 66 20 61 6e 6f 74 | instead of anot| 0000f570 68 65 72 20 6d 65 6e 75 29 0a 31 2e 30 39 20 2d |her menu).1.09 -| 0000f580 20 4e 65 77 20 72 6f 75 74 69 6e 65 20 3c 50 52 | New routine <PR| 0000f590 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 42 75 |OCshell_AttachBu| 0000f5a0 6d 70 48 61 6e 64 6c 65 72 3e 0a 20 20 20 20 20 |mpHandler>. | 0000f5b0 2d 20 4e 65 77 20 72 6f 75 74 69 6e 65 20 3c 46 |- New routine <F| 0000f5c0 4e 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 53 65 74 |Nshell_WindowSet| 0000f5d0 53 70 72 69 74 65 41 72 65 61 3e 0a 20 20 20 20 |SpriteArea>. | 0000f5e0 20 2d 20 43 6f 72 72 65 63 74 65 64 20 64 6f 63 | - Corrected doc| 0000f5f0 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 50 |umentation for P| 0000f600 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 55 |ROCshell_AttachU| 0000f610 73 65 72 52 65 64 72 61 77 0a 31 2e 31 30 20 2d |serRedraw.1.10 -| 0000f620 20 43 6f 72 72 65 63 74 65 64 20 64 6f 63 75 6d | Corrected docum| 0000f630 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 50 52 4f |entation for PRO| 0000f640 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 48 6f 74 |Cshell_AttachHot| 0000f650 4b 65 79 0a 31 2e 31 31 20 2d 20 41 64 64 65 64 |Key.1.11 - Added| 0000f660 20 73 75 70 70 6f 72 74 20 66 6f 72 20 21 42 4c | support for !BL| 0000f670 69 62 49 49 20 6c 69 6e 6b 65 72 0a 20 20 20 20 |ibII linker. | 0000f680 20 2d 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 41 74 | - <PROCshell_At| 0000f690 74 61 63 68 55 73 65 72 52 65 64 72 61 77 3e 20 |tachUserRedraw> | 0000f6a0 6e 6f 77 20 63 68 61 6e 67 65 73 20 61 75 74 6f |now changes auto| 0000f6b0 20 72 65 64 72 61 77 0a 20 20 20 20 20 20 20 66 | redraw. f| 0000f6c0 6c 61 67 20 66 6f 72 20 74 68 65 20 77 69 6e 64 |lag for the wind| 0000f6d0 6f 77 20 69 66 20 6e 65 63 65 73 73 61 72 79 0a |ow if necessary.| 0000f6e0 31 2e 31 32 20 2d 20 44 61 74 61 53 61 76 65 20 |1.12 - DataSave | 0000f6f0 72 6f 75 74 69 6e 65 20 6e 6f 77 20 61 75 74 6f |routine now auto| 0000f700 6d 61 74 69 63 61 6c 6c 79 20 73 61 76 65 73 20 |matically saves | 0000f710 64 61 74 61 20 69 66 20 64 61 74 61 0a 20 20 20 |data if data. | 0000f720 20 20 20 20 69 73 20 69 6e 20 61 20 68 65 61 70 | is in a heap| 0000f730 62 6c 6f 63 6b 20 61 6e 64 20 6e 6f 20 46 4e 20 |block and no FN | 0000f740 69 73 20 6e 61 6d 65 64 20 74 6f 20 61 63 74 75 |is named to actu| 0000f750 61 6c 6c 79 20 70 65 72 66 6f 72 6d 0a 20 20 20 |ally perform. | 0000f760 20 20 20 20 74 68 65 20 73 61 76 65 0a 20 20 20 | the save. | 0000f770 20 20 2d 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 41 | - <PROCshell_A| 0000f780 74 74 61 63 68 50 61 6e 65 3e 20 61 6c 74 65 72 |ttachPane> alter| 0000f790 73 20 70 61 6e 65 20 77 69 6e 64 6f 77 20 66 6c |s pane window fl| 0000f7a0 61 67 73 20 69 66 0a 20 20 20 20 20 20 20 6e 65 |ags if. ne| 0000f7b0 63 65 73 73 61 72 79 0a 31 2e 31 33 20 2d 20 42 |cessary.1.13 - B| 0000f7c0 75 67 20 66 69 78 65 73 20 66 6f 72 20 27 6e 6f |ug fixes for 'no| 0000f7d0 20 6c 6f 61 64 27 20 6c 6f 61 64 73 20 66 72 6f | load' loads fro| 0000f7e0 6d 20 6f 74 68 65 72 20 61 70 70 6c 69 63 61 74 |m other applicat| 0000f7f0 69 6f 6e 73 0a 31 2e 31 34 20 2d 20 4d 6f 72 65 |ions.1.14 - More| 0000f800 20 6c 69 62 72 61 72 79 20 72 6f 75 74 69 6e 65 | library routine| 0000f810 73 20 6e 6f 77 20 63 6c 61 69 6d 20 70 72 69 76 |s now claim priv| 0000f820 61 74 65 20 77 6f 72 6b 73 70 61 63 65 20 74 6f |ate workspace to| 0000f830 0a 20 20 20 20 20 20 20 61 76 6f 69 64 20 69 6e |. avoid in| 0000f840 74 65 72 61 63 74 69 6f 6e 73 0a 20 20 20 20 20 |teractions. | 0000f850 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 |- Added routine | 0000f860 3c 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 53 |<PROCshell_IconS| 0000f870 65 74 42 75 74 74 6f 6e 54 79 70 65 3e 0a 20 20 |etButtonType>. | 0000f880 20 20 20 2d 20 41 64 64 65 64 20 72 6f 75 74 69 | - Added routi| 0000f890 6e 65 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 49 63 |ne <PROCshell_Ic| 0000f8a0 6f 6e 53 65 74 45 53 47 3e 0a 20 20 20 20 20 2d |onSetESG>. -| 0000f8b0 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 3c | Added routine <| 0000f8c0 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 53 65 |PROCshell_IconSe| 0000f8d0 74 54 65 78 74 3e 0a 20 20 20 20 20 2d 20 41 64 |tText>. - Ad| 0000f8e0 64 65 64 20 72 6f 75 74 69 6e 65 20 3c 50 52 4f |ded routine <PRO| 0000f8f0 43 73 68 65 6c 6c 5f 49 63 6f 6e 53 65 74 53 70 |Cshell_IconSetSp| 0000f900 72 69 74 65 3e 0a 20 20 20 20 20 2d 20 41 64 64 |rite>. - Add| 0000f910 65 64 20 72 6f 75 74 69 6e 65 20 3c 50 52 4f 43 |ed routine <PROC| 0000f920 73 68 65 6c 6c 5f 49 63 6f 6e 53 65 74 42 6f 72 |shell_IconSetBor| 0000f930 64 65 72 3e 0a 20 20 20 20 20 2d 20 41 64 64 65 |der>. - Adde| 0000f940 64 20 72 6f 75 74 69 6e 65 20 3c 50 52 4f 43 73 |d routine <PROCs| 0000f950 68 65 6c 6c 5f 49 63 6f 6e 53 65 74 48 43 65 6e |hell_IconSetHCen| 0000f960 74 72 65 64 3e 0a 20 20 20 20 20 2d 20 41 64 64 |tred>. - Add| 0000f970 65 64 20 72 6f 75 74 69 6e 65 20 3c 50 52 4f 43 |ed routine <PROC| 0000f980 73 68 65 6c 6c 5f 49 63 6f 6e 53 65 74 56 43 65 |shell_IconSetVCe| 0000f990 6e 74 72 65 64 3e 0a 20 20 20 20 20 2d 20 41 64 |ntred>. - Ad| 0000f9a0 64 65 64 20 72 6f 75 74 69 6e 65 20 3c 50 52 4f |ded routine <PRO| 0000f9b0 43 73 68 65 6c 6c 5f 49 63 6f 6e 53 65 74 46 69 |Cshell_IconSetFi| 0000f9c0 6c 6c 65 64 3e 0a 20 20 20 20 20 2d 20 41 64 64 |lled>. - Add| 0000f9d0 65 64 20 72 6f 75 74 69 6e 65 20 3c 50 52 4f 43 |ed routine <PROC| 0000f9e0 73 68 65 6c 6c 5f 49 63 6f 6e 53 65 74 52 69 67 |shell_IconSetRig| 0000f9f0 68 74 4a 75 73 74 3e 0a 31 2e 32 30 20 2d 20 4e |htJust>.1.20 - N| 0000fa00 6f 77 20 75 73 65 73 20 4d 65 6e 75 55 74 69 6c |ow uses MenuUtil| 0000fa10 73 20 6d 6f 64 75 6c 65 20 66 6f 72 20 6d 65 6e |s module for men| 0000fa20 75 20 68 61 6e 64 6c 69 6e 67 0a 20 20 20 20 20 |u handling. | 0000fa30 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 |- Added routine | 0000fa40 3c 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 53 |<PROCshell_IconS| 0000fa50 65 74 53 65 6c 65 63 74 65 64 3e 0a 20 20 20 20 |etSelected>. | 0000fa60 20 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 | - Added routine| 0000fa70 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e | <PROCshell_Icon| 0000fa80 53 65 74 55 6e 73 65 6c 65 63 74 61 62 6c 65 3e |SetUnselectable>| 0000fa90 0a 20 20 20 20 20 2d 20 41 64 64 65 64 20 72 6f |. - Added ro| 0000faa0 75 74 69 6e 65 20 3c 46 4e 73 68 65 6c 6c 5f 4d |utine <FNshell_M| 0000fab0 65 6e 75 4e 65 77 3e 0a 20 20 20 20 20 2d 20 41 |enuNew>. - A| 0000fac0 64 64 65 64 20 72 6f 75 74 69 6e 65 20 3c 46 4e |dded routine <FN| 0000fad0 73 68 65 6c 6c 5f 4d 65 6e 75 41 64 64 3e 0a 20 |shell_MenuAdd>. | 0000fae0 20 20 20 20 2d 20 41 64 64 65 64 20 72 6f 75 74 | - Added rout| 0000faf0 69 6e 65 20 3c 46 4e 73 68 65 6c 6c 5f 4d 65 6e |ine <FNshell_Men| 0000fb00 75 44 65 6c 65 74 65 3e 0a 20 20 20 20 20 2d 20 |uDelete>. - | 0000fb10 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 3c 46 |Added routine <F| 0000fb20 4e 73 68 65 6c 6c 5f 4d 65 6e 75 43 6f 6c 6f 75 |Nshell_MenuColou| 0000fb30 72 73 3e 0a 20 20 20 20 20 2d 20 41 64 64 65 64 |rs>. - Added| 0000fb40 20 72 6f 75 74 69 6e 65 20 3c 46 4e 73 68 65 6c | routine <FNshel| 0000fb50 6c 5f 4d 65 6e 75 44 6f 74 74 65 64 3e 0a 20 20 |l_MenuDotted>. | 0000fb60 20 20 20 2d 20 41 64 64 65 64 20 72 6f 75 74 69 | - Added routi| 0000fb70 6e 65 20 3c 46 4e 73 68 65 6c 6c 5f 4d 65 6e 75 |ne <FNshell_Menu| 0000fb80 57 72 69 74 61 62 6c 65 3e 0a 20 20 20 20 20 2d |Writable>. -| 0000fb90 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 3c | Added routine <| 0000fba0 46 4e 73 68 65 6c 6c 5f 4d 65 6e 75 54 69 63 6b |FNshell_MenuTick| 0000fbb0 4f 6e 6c 79 31 3e 0a 20 20 20 20 20 2d 20 41 64 |Only1>. - Ad| 0000fbc0 64 65 64 20 72 6f 75 74 69 6e 65 20 3c 46 4e 73 |ded routine <FNs| 0000fbd0 68 65 6c 6c 5f 4d 65 6e 75 54 69 63 6b 4f 6e 6c |hell_MenuTickOnl| 0000fbe0 79 32 3e 0a 20 20 20 20 20 2d 20 4d 6f 64 69 66 |y2>. - Modif| 0000fbf0 69 65 64 20 61 6c 6c 20 6f 74 68 65 72 20 6d 65 |ied all other me| 0000fc00 6e 75 20 72 6f 75 74 69 6e 65 73 0a 20 20 20 20 |nu routines. | 0000fc10 20 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 | - Added routine| 0000fc20 20 3c 46 4e 73 68 65 6c 6c 5f 53 74 72 6f 6e 67 | <FNshell_Strong| 0000fc30 48 6c 70 49 73 41 76 61 69 6c 61 62 6c 65 3e 0a |HlpIsAvailable>.| 0000fc40 20 20 20 20 20 2d 20 41 64 64 65 64 20 72 6f 75 | - Added rou| 0000fc50 74 69 6e 65 20 3c 50 52 4f 43 73 68 65 6c 6c 5f |tine <PROCshell_| 0000fc60 41 74 74 61 63 68 50 72 65 51 75 69 74 48 61 6e |AttachPreQuitHan| 0000fc70 64 6c 65 72 3e 0a 20 20 20 20 20 2d 20 41 64 64 |dler>. - Add| 0000fc80 65 64 20 72 6f 75 74 69 6e 65 20 3c 50 52 4f 43 |ed routine <PROC| 0000fc90 73 68 65 6c 6c 5f 41 74 74 61 63 68 4f 70 65 6e |shell_AttachOpen| 0000fca0 57 69 6e 64 6f 77 3e 0a 20 20 20 20 20 2d 20 41 |Window>. - A| 0000fcb0 64 64 65 64 20 72 6f 75 74 69 6e 65 20 3c 50 52 |dded routine <PR| 0000fcc0 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 43 6c |OCshell_AttachCl| 0000fcd0 6f 73 65 57 69 6e 64 6f 77 3e 0a 20 20 20 20 20 |oseWindow>. | 0000fce0 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 |- Added routine | 0000fcf0 3c 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 53 |<PROCshell_IconS| 0000fd00 65 74 4c 65 66 74 4a 75 73 74 3e 0a 20 20 20 20 |etLeftJust>. | 0000fd10 20 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 | - Added routine| 0000fd20 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 53 70 72 69 | <PROCshell_Spri| 0000fd30 74 65 41 72 65 61 53 61 76 65 3e 0a 20 20 20 20 |teAreaSave>. | 0000fd40 20 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 | - Added routine| 0000fd50 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 53 70 72 69 | <PROCshell_Spri| 0000fd60 74 65 52 65 6e 61 6d 65 3e 0a 20 20 20 20 20 2d |teRename>. -| 0000fd70 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 3c | Added routine <| 0000fd80 46 4e 73 68 65 6c 6c 5f 53 70 72 69 74 65 41 72 |FNshell_SpriteAr| 0000fd90 65 61 4c 6f 61 64 3e 0a 20 20 20 20 20 2d 20 41 |eaLoad>. - A| 0000fda0 64 64 65 64 20 72 6f 75 74 69 6e 65 20 3c 46 4e |dded routine <FN| 0000fdb0 73 68 65 6c 6c 5f 53 70 72 69 74 65 47 65 74 50 |shell_SpriteGetP| 0000fdc0 74 72 3e 0a 20 20 20 20 20 2d 20 41 64 64 65 64 |tr>. - Added| 0000fdd0 20 72 6f 75 74 69 6e 65 20 3c 46 4e 73 68 65 6c | routine <FNshel| 0000fde0 6c 5f 4f 53 43 68 65 63 6b 56 65 72 73 69 6f 6e |l_OSCheckVersion| 0000fdf0 3e 0a 20 20 20 20 20 2d 20 41 64 64 65 64 20 72 |>. - Added r| 0000fe00 6f 75 74 69 6e 65 20 3c 46 4e 73 68 65 6c 6c 5f |outine <FNshell_| 0000fe10 4f 53 43 68 65 63 6b 4d 6f 64 75 6c 65 56 65 72 |OSCheckModuleVer| 0000fe20 73 69 6f 6e 3e 0a 20 20 20 20 20 2d 20 46 69 78 |sion>. - Fix| 0000fe30 65 64 20 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f |ed PROCshell_Ico| 0000fe40 6e 53 65 74 52 69 67 68 74 4a 75 73 74 0a 20 20 |nSetRightJust. | 0000fe50 20 20 20 2d 20 57 72 69 74 61 62 6c 65 20 69 63 | - Writable ic| 0000fe60 6f 6e 20 68 61 6e 64 6c 65 72 20 6e 6f 77 20 69 |on handler now i| 0000fe70 67 6e 6f 72 65 73 20 75 6e 73 65 6c 65 63 74 61 |gnores unselecta| 0000fe80 62 6c 65 20 69 63 6f 6e 73 0a 20 20 20 20 20 20 |ble icons. | 0000fe90 20 77 68 65 6e 20 6d 6f 76 69 6e 67 20 63 61 72 | when moving car| 0000fea0 65 74 0a 20 20 20 20 20 2d 20 41 64 64 65 64 20 |et. - Added | 0000feb0 73 75 70 70 6f 72 74 20 66 6f 72 20 52 65 73 46 |support for ResF| 0000fec0 69 6e 64 20 28 69 6e 74 65 72 6e 61 74 69 6f 6e |ind (internation| 0000fed0 61 6c 69 73 61 74 69 6f 6e 20 6f 66 0a 20 20 20 |alisation of. | 0000fee0 20 20 20 20 6d 65 73 73 61 67 65 73 20 65 74 63 | messages etc| 0000fef0 29 45 73 74 69 6d 61 74 65 64 20 46 69 6c 65 20 |)Estimated File | 0000ff00 53 69 7a 65 73 0a 49 74 20 73 68 6f 75 6c 64 20 |Sizes.It should | 0000ff10 28 69 66 20 6f 74 68 65 72 20 61 70 70 6c 69 63 |(if other applic| 0000ff20 61 74 69 6f 6e 73 20 61 72 65 20 77 72 69 74 74 |ations are writt| 0000ff30 65 6e 20 74 6f 0a 74 68 65 20 41 63 6f 72 6e 20 |en to.the Acorn | 0000ff40 67 75 69 64 65 6c 69 6e 65 73 21 29 20 6e 6f 74 |guidelines!) not| 0000ff50 20 6d 61 74 74 65 72 20 69 66 20 74 68 69 73 20 | matter if this | 0000ff60 65 73 74 69 6d 61 74 65 0a 69 73 20 69 6e 61 63 |estimate.is inac| 0000ff70 63 75 72 61 74 65 2e 20 48 6f 77 65 76 65 72 2c |curate. However,| 0000ff80 20 66 69 6c 65 20 74 72 61 6e 73 66 65 72 20 77 | file transfer w| 0000ff90 69 6c 6c 20 62 65 20 61 0a 6c 69 74 74 6c 65 20 |ill be a.little | 0000ffa0 66 61 73 74 65 72 20 69 66 20 69 74 20 69 73 20 |faster if it is | 0000ffb0 61 63 63 75 72 61 74 65 20 61 6e 64 20 70 72 6f |accurate and pro| 0000ffc0 62 6c 65 6d 73 20 6d 61 79 0a 6f 63 63 75 72 20 |blems may.occur | 0000ffd0 77 69 74 68 20 62 61 64 6c 79 20 77 72 69 74 74 |with badly writt| 0000ffe0 65 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 |en applications | 0000fff0 69 66 20 69 74 20 69 73 20 6e 6f 74 2e 46 4e 73 |if it is not.FNs| 00010000 68 65 6c 6c 5f 49 63 6f 6e 52 65 73 69 7a 65 28 |hell_IconResize(| 00010010 29 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 |).Params =>. | 00010020 20 20 20 20 20 69 6e 74 20 77 69 6e 64 6f 77 20 | int window | 00010030 68 61 6e 64 6c 65 20 20 0a 20 20 20 20 20 20 20 |handle . | 00010040 20 20 69 6e 74 20 69 63 6f 6e 20 68 61 6e 64 6c | int icon handl| 00010050 65 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 6d |e. int m| 00010060 69 6e 20 78 20 63 6f 6f 72 64 0a 20 20 20 20 20 |in x coord. | 00010070 20 20 20 20 69 6e 74 20 6d 69 6e 20 79 20 63 6f | int min y co| 00010080 6f 72 64 0a 20 20 20 20 20 20 20 20 20 69 6e 74 |ord. int| 00010090 20 6d 61 78 20 78 20 63 6f 6f 72 64 0a 20 20 20 | max x coord. | 000100a0 20 20 20 20 20 20 69 6e 74 20 6d 61 78 20 79 20 | int max y | 000100b0 63 6f 6f 72 64 0a 0a 20 20 20 20 20 20 20 5c 3c |coord.. \<| 000100c0 3d 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 69 |=. int i| 000100d0 63 6f 6e 20 68 61 6e 64 6c 65 0a 0a 41 6c 6c 6f |con handle..Allo| 000100e0 77 73 20 74 68 65 20 72 65 64 65 66 69 6e 69 74 |ws the redefinit| 000100f0 69 6f 6e 20 6f 66 20 61 6e 20 69 63 6f 6e 27 73 |ion of an icon's| 00010100 20 62 6f 75 6e 64 69 6e 67 0a 62 6f 78 2e 20 41 | bounding.box. A| 00010110 73 20 74 68 65 20 69 63 6f 6e 20 68 61 73 20 74 |s the icon has t| 00010120 6f 20 62 65 20 64 65 6c 65 74 65 64 20 61 6e 64 |o be deleted and| 00010130 20 74 68 65 6e 0a 72 65 63 72 65 61 74 65 64 20 | then.recreated | 00010140 69 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6e |it returns the n| 00010150 65 77 20 69 63 6f 6e 20 68 61 6e 64 6c 65 20 28 |ew icon handle (| 00010160 77 68 69 63 68 0a 73 68 6f 75 6c 64 20 62 65 20 |which.should be | 00010170 74 68 65 20 73 61 6d 65 20 61 73 20 74 68 65 20 |the same as the | 00010180 6f 6c 64 20 68 61 6e 64 6c 65 29 2e 20 54 68 65 |old handle). The| 00010190 20 69 63 6f 6e 0a 69 73 20 72 65 64 72 61 77 6e | icon.is redrawn| 000101a0 20 61 66 74 65 72 20 72 65 73 69 7a 69 6e 67 2c | after resizing,| 000101b0 20 74 61 6b 69 6e 67 20 61 63 63 6f 75 6e 74 20 | taking account | 000101c0 6f 66 20 61 6e 79 0a 33 44 20 62 6f 72 64 65 72 |of any.3D border| 000101d0 73 2e 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 |s...Library Grou| 000101e0 70 20 3d 3e 20 3c 49 63 6f 6e 73 3d 3e 4c 69 62 |p => <Icons=>Lib| 000101f0 47 72 6f 75 70 49 63 6f 6e 73 3e 4d 65 73 73 61 |GroupIcons>Messa| 00010200 67 65 73 0a 3c 42 72 6f 61 64 63 61 73 74 4d 65 |ges.<BroadcastMe| 00010210 73 73 61 67 65 20 20 20 20 3d 3e 46 4e 73 68 65 |ssage =>FNshe| 00010220 6c 6c 5f 42 72 6f 61 64 63 61 73 74 4d 65 73 73 |ll_BroadcastMess| 00010230 61 67 65 3e 0a 3c 48 61 6e 64 6c 65 55 6e 6b 6e |age>.<HandleUnkn| 00010240 6f 77 6e 4d 65 73 73 61 67 65 3d 3e 50 52 4f 43 |ownMessage=>PROC| 00010250 73 68 65 6c 6c 5f 48 61 6e 64 6c 65 55 6e 6b 6e |shell_HandleUnkn| 00010260 6f 77 6e 4d 65 73 73 61 67 65 3e 50 52 4f 43 73 |ownMessage>PROCs| 00010270 68 65 6c 6c 5f 42 72 6f 61 64 63 61 73 74 4d 65 |hell_BroadcastMe| 00010280 73 73 61 67 65 28 29 0a 50 61 72 61 6d 73 20 3d |ssage().Params =| 00010290 3e 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 72 |>. int r| 000102a0 65 61 73 6f 6e 20 63 6f 64 65 20 20 20 20 20 20 |eason code | 000102b0 20 20 20 0a 20 20 20 20 20 20 20 20 20 73 74 72 | . str| 000102c0 20 6d 65 73 73 61 67 65 20 74 65 78 74 0a 0a 4c | message text..L| 000102d0 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 |ibrary Group => | 000102e0 3c 4d 65 73 73 61 67 65 73 3d 3e 4c 69 62 47 72 |<Messages=>LibGr| 000102f0 6f 75 70 4d 65 73 73 61 67 65 73 3e 50 52 4f 43 |oupMessages>PROC| 00010300 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 52 65 74 69 |shell_WindowReti| 00010310 74 6c 65 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a |tle().Params =>.| 00010320 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 69 6e | int win| 00010330 64 6f 77 20 68 61 6e 64 6c 65 20 20 20 20 20 20 |dow handle | 00010340 20 20 20 0a 20 20 20 20 20 20 20 20 20 73 74 72 | . str| 00010350 20 6e 65 77 20 74 69 74 6c 65 0a 0a 49 74 20 69 | new title..It i| 00010360 73 20 6e 6f 74 20 6e 65 63 65 73 73 61 72 79 20 |s not necessary | 00010370 74 6f 20 6d 61 6b 65 20 74 68 65 20 77 69 6e 64 |to make the wind| 00010380 6f 77 20 74 69 74 6c 65 0a 69 6e 64 69 72 65 63 |ow title.indirec| 00010390 74 65 64 2c 20 62 75 74 20 74 69 74 6c 65 73 20 |ted, but titles | 000103a0 6c 6f 6e 67 65 72 20 74 68 61 6e 20 31 31 20 63 |longer than 11 c| 000103b0 68 61 72 61 63 74 65 72 73 0a 77 69 6c 6c 20 62 |haracters.will b| 000103c0 65 20 74 72 75 6e 63 61 74 65 64 20 77 69 74 68 |e truncated with| 000103d0 6f 75 74 20 77 61 72 6e 69 6e 67 20 69 66 20 69 |out warning if i| 000103e0 74 20 69 73 20 6e 6f 74 2e 0a 0a 41 74 74 65 6d |t is not...Attem| 000103f0 70 74 69 6e 67 20 74 6f 20 75 73 65 20 61 20 74 |pting to use a t| 00010400 69 74 6c 65 20 77 68 69 63 68 20 69 73 20 6c 6f |itle which is lo| 00010410 6e 67 65 72 20 74 68 61 6e 0a 74 68 65 20 61 6c |nger than.the al| 00010420 6c 6f 63 61 74 65 64 20 62 75 66 66 65 72 20 77 |located buffer w| 00010430 69 6c 6c 20 61 67 61 69 6e 20 63 61 75 73 65 20 |ill again cause | 00010440 74 72 75 6e 63 61 74 69 6f 6e 2e 0a 0a 4c 69 62 |truncation...Lib| 00010450 72 61 72 79 20 47 72 6f 75 70 20 3d 5c 3e 20 3c |rary Group =\> <| 00010460 57 69 6e 64 6f 77 73 3d 3e 4c 69 62 47 72 6f 75 |Windows=>LibGrou| 00010470 70 57 69 6e 64 6f 77 73 3e 50 52 4f 43 73 68 65 |pWindows>PROCshe| 00010480 6c 6c 5f 57 69 6e 64 6f 77 52 65 73 69 7a 65 28 |ll_WindowResize(| 00010490 29 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 |).Params =>. | 000104a0 20 20 20 20 20 69 6e 74 20 20 77 69 6e 64 6f 77 | int window| 000104b0 20 68 61 6e 64 6c 65 0a 20 20 20 20 20 20 20 20 | handle. | 000104c0 20 69 6e 74 20 20 6d 69 6e 20 78 20 63 6f 6f 72 | int min x coor| 000104d0 64 20 6f 66 20 77 6f 72 6b 61 72 65 61 0a 20 20 |d of workarea. | 000104e0 20 20 20 20 20 20 20 69 6e 74 20 20 6d 69 6e 20 | int min | 000104f0 79 20 63 6f 6f 72 64 20 6f 66 20 77 6f 72 6b 61 |y coord of worka| 00010500 72 65 61 0a 20 20 20 20 20 20 20 20 20 69 6e 74 |rea. int| 00010510 20 20 6d 61 78 20 78 20 63 6f 6f 72 64 20 6f 66 | max x coord of| 00010520 20 77 6f 72 6b 61 72 65 61 0a 20 20 20 20 20 20 | workarea. | 00010530 20 20 20 69 6e 74 20 20 6d 61 78 20 79 20 63 6f | int max y co| 00010540 6f 72 64 20 6f 66 20 77 6f 72 6b 61 72 65 61 0a |ord of workarea.| 00010550 20 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 6f 70 | bool op| 00010560 65 6e 20 66 6c 61 67 0a 0a 4c 69 62 72 61 72 79 |en flag..Library| 00010570 20 47 72 6f 75 70 20 3d 5c 3e 20 3c 57 69 6e 64 | Group =\> <Wind| 00010580 6f 77 73 3d 3e 4c 69 62 47 72 6f 75 70 57 69 6e |ows=>LibGroupWin| 00010590 64 6f 77 73 3e 46 4e 73 68 65 6c 6c 5f 46 69 6c |dows>FNshell_Fil| 000105a0 65 54 79 70 65 28 29 0a 50 61 72 61 6d 73 20 3d |eType().Params =| 000105b0 3e 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 66 |>. str f| 000105c0 69 6c 65 20 6e 61 6d 65 0a 0a 20 20 20 20 20 20 |ile name.. | 000105d0 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 20 69 6e | \<=. in| 000105e0 74 20 66 69 6c 65 20 74 79 70 65 0a 0a 52 65 74 |t file type..Ret| 000105f0 75 72 6e 73 20 74 68 65 20 66 69 6c 65 20 74 79 |urns the file ty| 00010600 70 65 20 6f 66 20 74 68 65 20 73 70 65 63 69 66 |pe of the specif| 00010610 69 65 64 20 66 69 6c 65 0a 6f 6e 20 64 69 73 6b |ied file.on disk| 00010620 2e 20 41 20 66 75 6c 6c 20 70 61 74 68 20 6e 61 |. A full path na| 00010630 6d 65 20 6d 75 73 74 20 62 65 20 67 69 76 65 6e |me must be given| 00010640 0a 28 65 73 70 65 63 69 61 6c 6c 79 20 75 6e 64 |.(especially und| 00010650 65 72 20 52 49 53 43 2d 4f 53 20 33 2e 31 21 29 |er RISC-OS 3.1!)| 00010660 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 |..Library Group | 00010670 3d 3e 20 3c 46 69 6c 65 73 3d 3e 4c 69 62 47 72 |=> <Files=>LibGr| 00010680 6f 75 70 46 69 6c 65 73 3e 46 4e 73 68 65 6c 6c |oupFiles>FNshell| 00010690 5f 4c 65 61 66 28 29 0a 50 61 72 61 6d 73 20 3d |_Leaf().Params =| 000106a0 3e 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 66 |>. str f| 000106b0 69 6c 65 20 6e 61 6d 65 20 20 20 20 20 0a 0a 20 |ile name .. | 000106c0 20 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 | \<=. | 000106d0 20 20 20 73 74 72 20 27 6c 65 61 66 27 20 6f 66 | str 'leaf' of| 000106e0 20 66 69 6c 65 6e 61 6d 65 2c 20 69 2e 65 20 74 | filename, i.e t| 000106f0 68 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 |he name. | 00010700 20 20 20 20 20 6f 66 20 74 68 65 20 61 63 74 75 | of the actu| 00010710 61 6c 20 66 69 6c 65 2c 20 6d 69 6e 75 73 20 74 |al file, minus t| 00010720 68 65 20 70 61 74 68 0a 0a 4c 69 62 72 61 72 79 |he path..Library| 00010730 20 47 72 6f 75 70 20 3d 3e 20 3c 46 69 6c 65 73 | Group => <Files| 00010740 3d 3e 4c 69 62 47 72 6f 75 70 46 69 6c 65 73 3e |=>LibGroupFiles>| 00010750 46 4e 73 68 65 6c 6c 5f 42 72 61 6e 63 68 28 29 |FNshell_Branch()| 00010760 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 |.Params =>. | 00010770 20 20 20 20 73 74 72 20 66 69 6c 65 20 6e 61 6d | str file nam| 00010780 65 20 20 20 20 20 0a 0a 20 20 20 20 20 20 20 5c |e .. \| 00010790 3c 3d 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 |<=. str | 000107a0 27 62 72 61 6e 63 68 27 20 6f 66 20 66 69 6c 65 |'branch' of file| 000107b0 6e 61 6d 65 2c 20 69 2e 65 20 74 68 65 20 70 61 |name, i.e the pa| 000107c0 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 |th. | 000107d0 6f 66 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 |of the directory| 000107e0 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 | containing the | 000107f0 66 69 6c 65 2e 0a 20 20 20 20 20 20 20 20 20 20 |file.. | 00010800 20 20 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65 | Note that the| 00010810 20 72 65 74 75 72 6e 65 64 20 73 74 72 69 6e 67 | returned string| 00010820 20 64 6f 65 73 20 6e 6f 74 0a 20 20 20 20 20 20 | does not. | 00010830 20 20 20 20 20 20 20 69 6e 63 6c 75 64 65 20 74 | include t| 00010840 68 65 20 66 69 6e 61 6c 20 27 2e 27 20 63 68 61 |he final '.' cha| 00010850 72 61 63 74 65 72 2e 0a 0a 4c 69 62 72 61 72 79 |racter...Library| 00010860 20 47 72 6f 75 70 20 3d 3e 20 3c 46 69 6c 65 73 | Group => <Files| 00010870 3d 3e 4c 69 62 47 72 6f 75 70 46 69 6c 65 73 3e |=>LibGroupFiles>| 00010880 43 6f 70 79 72 69 67 68 74 20 4e 6f 74 69 63 65 |Copyright Notice| 00010890 0a 54 68 65 20 45 76 6e 74 53 68 65 6c 6c 20 6c |.The EvntShell l| 000108a0 69 62 72 61 72 79 20 63 6f 64 65 20 61 6e 64 20 |ibrary code and | 000108b0 61 6e 79 20 64 65 6d 6f 20 6f 72 20 73 75 70 70 |any demo or supp| 000108c0 6f 72 74 20 70 72 6f 67 72 61 6d 73 0a 73 75 70 |ort programs.sup| 000108d0 70 6c 69 65 64 20 77 69 74 68 20 69 74 20 61 72 |plied with it ar| 000108e0 65 20 4e 4f 54 20 50 75 62 6c 69 63 20 44 6f 6d |e NOT Public Dom| 000108f0 61 69 6e 20 73 6f 66 74 77 61 72 65 2e 20 54 68 |ain software. Th| 00010900 65 79 20 61 72 65 0a 53 68 61 72 65 57 61 72 65 |ey are.ShareWare| 00010910 20 77 68 69 63 68 20 6d 65 61 6e 73 20 74 68 61 | which means tha| 00010920 74 20 69 66 20 79 6f 75 20 75 73 65 20 74 68 65 |t if you use the| 00010930 6d 20 61 6e 64 20 6c 69 6b 65 20 74 68 65 6d 0a |m and like them.| 00010940 79 6f 75 20 73 68 6f 75 6c 64 20 72 65 67 69 73 |you should regis| 00010950 74 65 72 20 77 69 74 68 20 74 68 65 20 3c 41 75 |ter with the <Au| 00010960 74 68 6f 72 3d 3e 41 75 74 68 6f 72 32 3e 2e 0a |thor=>Author2>..| 00010970 0a 49 6e 20 70 61 72 74 69 63 75 6c 61 72 20 79 |.In particular y| 00010980 6f 75 20 73 68 6f 75 6c 64 20 6e 6f 74 65 20 74 |ou should note t| 00010990 68 61 74 20 6e 6f 20 70 61 72 74 20 6f 66 20 74 |hat no part of t| 000109a0 68 65 20 45 76 6e 74 53 68 65 6c 6c 0a 63 6f 64 |he EvntShell.cod| 000109b0 65 20 6d 61 79 20 61 70 70 65 61 72 20 6f 6e 20 |e may appear on | 000109c0 21 49 6c 6c 75 73 69 6f 6e 73 20 6d 61 67 61 7a |!Illusions magaz| 000109d0 69 6e 65 20 64 69 73 6b 73 20 6f 72 20 69 6e 20 |ine disks or in | 000109e0 74 68 65 0a 61 73 73 6f 63 69 61 74 65 64 20 50 |the.associated P| 000109f0 44 20 6c 69 62 72 61 72 79 20 27 44 69 67 69 74 |D library 'Digit| 00010a00 61 6c 20 49 6c 6c 75 73 69 6f 6e 73 27 2e 20 54 |al Illusions'. T| 00010a10 68 69 73 20 74 68 65 72 65 66 6f 72 65 0a 61 70 |his therefore.ap| 00010a20 70 6c 69 65 73 20 74 6f 20 61 6e 79 20 61 70 70 |plies to any app| 00010a30 6c 69 63 61 74 69 6f 6e 20 77 72 69 74 74 65 6e |lication written| 00010a40 20 75 73 69 6e 67 20 74 68 65 20 45 76 6e 74 53 | using the EvntS| 00010a50 68 65 6c 6c 0a 6c 69 62 72 61 72 79 2e 0a 0a 4f |hell.library...O| 00010a60 74 68 65 72 20 50 44 20 6c 69 62 72 61 72 69 65 |ther PD librarie| 00010a70 73 20 6d 61 79 20 64 69 73 74 72 69 62 75 74 65 |s may distribute| 00010a80 20 74 68 69 73 20 73 6f 66 74 77 61 72 65 20 66 | this software f| 00010a90 72 65 65 6c 79 2e 20 54 68 65 0a 72 65 61 73 6f |reely. The.reaso| 00010aa0 6e 20 66 6f 72 20 65 78 63 6c 75 64 69 6e 67 20 |n for excluding | 00010ab0 21 49 6c 6c 75 73 69 6f 6e 73 20 69 73 20 74 68 |!Illusions is th| 00010ac0 61 74 20 49 20 64 6f 6e 27 74 20 6c 69 6b 65 20 |at I don't like | 00010ad0 70 65 6f 70 6c 65 0a 77 68 6f 20 75 73 65 20 28 |people.who use (| 00010ae0 6f 72 20 74 68 72 65 61 74 65 6e 20 74 6f 20 75 |or threaten to u| 00010af0 73 65 29 20 76 69 72 75 73 65 73 20 61 73 20 61 |se) viruses as a| 00010b00 20 6d 65 61 6e 73 20 6f 66 20 63 6f 70 79 0a 70 | means of copy.p| 00010b10 72 6f 74 65 63 74 69 6f 6e 2e 0a 0a 59 6f 75 20 |rotection...You | 00010b20 6d 61 79 20 64 69 73 74 72 69 62 75 74 65 20 53 |may distribute S| 00010b30 68 65 6c 6c 4c 69 62 2c 20 53 68 65 6c 6c 4c 69 |hellLib, ShellLi| 00010b40 62 52 54 20 6f 72 20 62 6f 74 68 20 77 69 74 68 |bRT or both with| 00010b50 20 79 6f 75 72 20 6f 77 6e 0a 61 70 70 6c 69 63 | your own.applic| 00010b60 61 74 69 6f 6e 73 2e 20 4c 69 62 72 61 72 79 20 |ations. Library | 00010b70 63 6f 64 65 20 6d 61 79 20 62 65 20 61 70 70 65 |code may be appe| 00010b80 6e 64 65 64 20 74 6f 20 74 68 65 20 75 73 65 72 |nded to the user| 00010b90 0a 61 70 70 6c 69 63 61 74 69 6f 6e 20 69 66 20 |.application if | 00010ba0 72 65 71 75 69 72 65 64 2c 20 61 6e 64 20 72 65 |required, and re| 00010bb0 64 75 6e 64 61 6e 74 20 72 6f 75 74 69 6e 65 73 |dundant routines| 00010bc0 20 6d 61 79 20 62 65 0a 72 65 6d 6f 76 65 64 2e | may be.removed.| 00010bd0 20 59 6f 75 20 6d 61 79 20 6e 6f 74 20 61 6c 74 | You may not alt| 00010be0 65 72 20 74 68 65 20 6c 69 62 72 61 72 79 20 63 |er the library c| 00010bf0 6f 64 65 2c 20 63 6c 61 69 6d 20 74 6f 20 68 61 |ode, claim to ha| 00010c00 76 65 0a 77 72 69 74 74 65 6e 20 69 74 20 6f 72 |ve.written it or| 00010c10 20 6d 61 6b 65 20 6d 6f 6e 65 79 20 6f 6e 20 69 | make money on i| 00010c20 74 2e 20 41 20 6e 6f 74 65 20 69 6e 20 74 68 65 |t. A note in the| 00010c30 20 61 70 70 6c 69 63 61 74 69 6f 6e 0a 21 48 65 | application.!He| 00010c40 6c 70 20 66 69 6c 65 20 61 63 6b 6e 6f 77 6c 65 |lp file acknowle| 00010c50 64 67 69 6e 67 20 74 68 65 20 73 6f 75 72 63 65 |dging the source| 00010c60 20 6f 66 20 74 68 65 20 6c 69 62 72 61 72 79 20 | of the library | 00010c70 63 6f 64 65 20 77 69 74 68 0a 64 65 74 61 69 6c |code with.detail| 00010c80 73 20 6f 66 20 68 6f 77 20 74 6f 20 6f 62 74 61 |s of how to obta| 00010c90 69 6e 20 74 68 65 20 66 75 6c 6c 20 70 61 63 6b |in the full pack| 00010ca0 61 67 65 20 77 6f 75 6c 64 20 62 65 20 61 70 70 |age would be app| 00010cb0 72 65 63 69 61 74 65 64 2e 0a 0a 54 68 65 20 68 |reciated...The h| 00010cc0 65 61 70 20 6d 61 6e 61 67 65 72 20 72 6f 75 74 |eap manager rout| 00010cd0 69 6e 65 73 20 61 72 65 20 63 6f 70 79 72 69 67 |ines are copyrig| 00010ce0 68 74 20 52 69 73 63 20 55 73 65 72 20 61 6e 64 |ht Risc User and| 00010cf0 20 61 72 65 0a 75 73 65 64 20 77 69 74 68 20 70 | are.used with p| 00010d00 65 72 6d 69 73 73 69 6f 6e 2e 54 68 65 20 41 75 |ermission.The Au| 00010d10 74 68 6f 72 0a 50 61 75 6c 20 48 6f 62 62 73 0a |thor.Paul Hobbs.| 00010d20 52 68 65 69 6e 70 66 61 6c 7a 73 74 72 61 73 73 |Rheinpfalzstrass| 00010d30 65 20 32 0a 38 35 30 34 39 20 49 6e 67 6f 6c 73 |e 2.85049 Ingols| 00010d40 74 61 64 74 0a 47 65 72 6d 61 6e 79 55 73 65 72 |tadt.GermanyUser| 00010d50 20 46 4e 20 28 50 52 4f 43 73 68 65 6c 6c 5f 41 | FN (PROCshell_A| 00010d60 74 74 61 63 68 4d 65 6e 75 4d 61 6b 65 72 29 0a |ttachMenuMaker).| 00010d70 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 |Params =>. | 00010d80 20 20 20 69 6e 74 20 77 69 6e 64 6f 77 20 68 61 | int window ha| 00010d90 6e 64 6c 65 20 6f 76 65 72 20 77 68 69 63 68 20 |ndle over which | 00010da0 4d 45 4e 55 0a 20 20 20 20 20 20 20 20 20 20 20 |MENU. | 00010db0 20 20 77 61 73 20 70 72 65 73 73 65 64 20 0a 20 | was pressed . | 00010dc0 20 20 20 20 20 20 20 20 69 6e 74 20 69 63 6f 6e | int icon| 00010dd0 20 68 61 6e 64 6c 65 20 6f 76 65 72 20 77 68 69 | handle over whi| 00010de0 63 68 20 4d 45 4e 55 20 77 61 73 0a 20 20 20 20 |ch MENU was. | 00010df0 20 20 20 20 20 20 20 20 20 70 72 65 73 73 65 64 | pressed| 00010e00 20 28 2d 31 20 66 6f 72 20 6e 6f 20 69 63 6f 6e | (-1 for no icon| 00010e10 29 0a 20 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |). .This functio| 00010e20 6e 20 69 73 20 63 61 6c 6c 65 64 20 62 65 66 6f |n is called befo| 00010e30 72 65 20 74 68 65 20 6d 65 6e 75 20 69 73 0a 6f |re the menu is.o| 00010e40 70 65 6e 65 64 2e 52 69 73 63 20 55 73 65 72 20 |pened.Risc User | 00010e50 4d 61 67 61 7a 69 6e 65 0a 53 70 65 63 69 61 6c |Magazine.Special| 00010e60 20 74 68 61 6e 6b 73 20 74 6f 20 52 69 73 63 20 | thanks to Risc | 00010e70 55 73 65 72 20 66 6f 72 20 70 65 72 6d 69 73 73 |User for permiss| 00010e80 69 6f 6e 20 74 6f 0a 75 73 65 20 74 68 65 20 68 |ion to.use the h| 00010e90 65 61 70 20 6d 61 6e 61 67 65 72 20 63 6f 64 65 |eap manager code| 00010ea0 20 70 75 62 6c 69 73 68 65 64 20 69 6e 20 52 69 | published in Ri| 00010eb0 73 63 20 55 73 65 72 0a 56 6f 6c 75 6d 65 20 34 |sc User.Volume 4| 00010ec0 20 69 73 73 75 65 20 32 2c 20 77 69 74 68 6f 75 | issue 2, withou| 00010ed0 74 20 77 68 69 63 68 20 74 68 65 20 45 76 6e 74 |t which the Evnt| 00010ee0 53 68 65 6c 6c 0a 6c 69 62 72 61 72 79 20 77 6f |Shell.library wo| 00010ef0 75 6c 64 20 6e 6f 74 20 62 65 20 70 6f 73 73 69 |uld not be possi| 00010f00 62 6c 65 2e 0a 0a 50 6c 65 61 73 65 20 6e 6f 74 |ble...Please not| 00010f10 65 20 74 68 61 74 20 61 6e 79 20 45 76 6e 74 53 |e that any EvntS| 00010f20 68 65 6c 6c 20 62 61 73 65 64 20 61 70 70 6c 69 |hell based appli| 00010f30 63 61 74 69 6f 6e 0a 64 69 73 74 72 69 62 75 74 |cation.distribut| 00010f40 65 64 20 66 6f 72 20 77 68 61 74 65 76 65 72 20 |ed for whatever | 00010f50 72 65 61 73 6f 6e 20 73 68 6f 75 6c 64 20 61 6c |reason should al| 00010f60 73 6f 0a 61 63 6b 6e 6f 77 6c 65 64 67 65 20 52 |so.acknowledge R| 00010f70 69 73 63 20 55 73 65 72 27 73 20 63 6f 70 79 72 |isc User's copyr| 00010f80 69 67 68 74 20 6f 66 20 74 68 69 73 20 63 6f 64 |ight of this cod| 00010f90 65 2e 20 50 52 4f 43 73 68 65 6c 6c 5f 57 69 6e |e. PROCshell_Win| 00010fa0 64 6f 77 42 72 69 6e 67 54 6f 54 6f 70 28 29 0a |dowBringToTop().| 00010fb0 50 61 72 61 6d 73 20 3d 5c 3e 0a 20 20 20 20 20 |Params =\>. | 00010fc0 20 20 20 20 69 6e 74 20 77 69 6e 64 6f 77 20 68 | int window h| 00010fd0 61 6e 64 6c 65 20 74 6f 20 62 72 69 6e 67 20 74 |andle to bring t| 00010fe0 6f 20 74 6f 70 0a 0a 54 68 69 73 20 72 6f 75 74 |o top..This rout| 00010ff0 69 6e 65 20 63 61 75 73 65 73 20 61 20 77 69 6d |ine causes a wim| 00011000 70 20 6d 65 73 73 61 67 65 20 74 6f 20 62 65 20 |p message to be | 00011010 73 65 6e 74 20 74 6f 0a 62 72 69 6e 67 20 61 20 |sent to.bring a | 00011020 77 69 6e 64 6f 77 20 74 6f 20 74 68 65 20 74 6f |window to the to| 00011030 70 2e 20 59 6f 75 20 63 61 6e 6e 6f 74 20 75 73 |p. You cannot us| 00011040 65 20 74 68 69 73 0a 72 6f 75 74 69 6e 65 20 6f |e this.routine o| 00011050 6e 20 77 69 6e 64 6f 77 73 20 6f 77 6e 65 64 20 |n windows owned | 00011060 62 79 20 79 6f 75 72 20 6f 77 6e 20 74 61 73 6b |by your own task| 00011070 2c 20 62 75 74 0a 79 6f 75 20 63 61 6e 20 75 73 |, but.you can us| 00011080 65 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 4f 70 65 |e <PROCshell_Ope| 00011090 6e 57 69 6e 64 6f 77 3e 20 69 6e 20 74 68 69 73 |nWindow> in this| 000110a0 20 63 61 73 65 2e 0a 0a 49 74 20 6d 61 79 20 74 | case...It may t| 000110b0 61 6b 65 20 73 65 76 65 72 61 6c 20 77 69 6d 70 |ake several wimp| 000110c0 20 70 6f 6c 6c 20 65 76 65 6e 74 73 20 62 65 66 | poll events bef| 000110d0 6f 72 65 20 74 68 65 0a 77 69 6e 64 6f 77 20 69 |ore the.window i| 000110e0 73 20 6f 70 65 6e 65 64 2c 20 68 6f 77 65 76 65 |s opened, howeve| 000110f0 72 2c 20 73 6f 20 79 6f 75 20 63 61 6e 6e 6f 74 |r, so you cannot| 00011100 20 61 73 73 75 6d 65 0a 69 74 20 69 73 20 61 63 | assume.it is ac| 00011110 74 75 61 6c 6c 79 20 6f 70 65 6e 20 69 6d 6d 65 |tually open imme| 00011120 64 69 61 74 65 6c 79 20 61 66 74 65 72 20 74 68 |diately after th| 00011130 69 73 20 63 61 6c 6c 2e 0a 0a 59 6f 75 20 63 61 |is call...You ca| 00011140 6e 20 75 73 65 20 3c 46 4e 73 68 65 6c 6c 5f 57 |n use <FNshell_W| 00011150 69 6e 64 6f 77 49 73 4f 6e 54 6f 70 3e 20 74 6f |indowIsOnTop> to| 00011160 20 63 68 65 63 6b 20 74 68 65 0a 73 74 61 74 75 | check the.statu| 00011170 73 20 6f 66 20 74 68 65 20 77 69 6e 64 6f 77 20 |s of the window | 00011180 61 66 74 65 72 20 74 68 69 73 20 63 61 6c 6c 2e |after this call.| 00011190 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 |..Library Group | 000111a0 3d 5c 3e 20 3c 57 69 6e 64 6f 77 73 3d 3e 4c 69 |=\> <Windows=>Li| 000111b0 62 47 72 6f 75 70 57 69 6e 64 6f 77 73 3e 46 4e |bGroupWindows>FN| 000111c0 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 49 73 4f 6e |shell_WindowIsOn| 000111d0 54 6f 70 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a |Top().Params =>.| 000111e0 20 20 20 20 20 20 20 20 20 69 6e 74 20 20 77 69 | int wi| 000111f0 6e 64 6f 77 20 68 61 6e 64 6c 65 0a 0a 20 20 20 |ndow handle.. | 00011200 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 | \<=. | 00011210 20 62 6f 6f 6c 20 54 52 55 45 20 69 66 20 77 69 | bool TRUE if wi| 00011220 6e 64 6f 77 20 69 73 20 6f 6e 20 74 6f 70 2c 20 |ndow is on top, | 00011230 6f 74 68 65 72 77 69 73 65 0a 20 20 20 20 20 20 |otherwise. | 00011240 20 20 20 20 20 20 20 20 46 41 4c 53 45 0a 0a 54 | FALSE..T| 00011250 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e |his function can| 00011260 20 62 65 20 75 73 65 64 20 74 6f 20 64 69 73 63 | be used to disc| 00011270 6f 76 65 72 20 69 66 20 74 68 65 20 67 69 76 65 |over if the give| 00011280 6e 0a 77 69 6e 64 6f 77 20 69 73 20 6f 6e 20 74 |n.window is on t| 00011290 6f 70 20 6f 66 20 74 68 65 20 73 74 61 63 6b 20 |op of the stack | 000112a0 28 69 2e 65 2e 20 63 6f 6d 70 6c 65 74 65 6c 79 |(i.e. completely| 000112b0 0a 75 6e 63 6f 76 65 72 65 64 29 2e 20 49 74 20 |.uncovered). It | 000112c0 69 73 20 65 73 70 65 63 69 61 6c 6c 79 20 75 73 |is especially us| 000112d0 65 66 75 6c 20 61 66 74 65 72 20 61 20 63 61 6c |eful after a cal| 000112e0 6c 0a 74 6f 20 3c 50 52 4f 43 73 68 65 6c 6c 5f |l.to <PROCshell_| 000112f0 57 69 6e 64 6f 77 42 72 69 6e 67 54 6f 54 6f 70 |WindowBringToTop| 00011300 3e 20 61 73 20 69 74 20 6d 61 79 20 74 61 6b 65 |> as it may take| 00011310 0a 73 65 76 65 72 61 6c 20 63 61 6c 6c 73 20 74 |.several calls t| 00011320 6f 20 57 69 6d 70 5f 50 6f 6c 6c 20 62 65 66 6f |o Wimp_Poll befo| 00011330 72 65 20 74 68 65 20 77 69 6e 64 6f 77 20 69 73 |re the window is| 00011340 0a 62 72 6f 75 67 68 74 20 74 6f 20 74 68 65 20 |.brought to the | 00011350 74 6f 70 2e 20 54 68 65 20 77 69 6e 64 6f 77 20 |top. The window | 00011360 6d 61 79 20 62 65 6c 6f 6e 67 20 74 6f 20 61 6e |may belong to an| 00011370 6f 74 68 65 72 0a 74 61 73 6b 2e 0a 0a 4c 69 62 |other.task...Lib| 00011380 72 61 72 79 20 47 72 6f 75 70 20 3d 5c 3e 20 3c |rary Group =\> <| 00011390 57 69 6e 64 6f 77 73 3d 3e 4c 69 62 47 72 6f 75 |Windows=>LibGrou| 000113a0 70 57 69 6e 64 6f 77 73 3e 50 52 4f 43 73 68 65 |pWindows>PROCshe| 000113b0 6c 6c 5f 4d 65 6e 75 54 69 63 6b 28 29 0a 50 61 |ll_MenuTick().Pa| 000113c0 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 |rams =>. | 000113d0 20 69 6e 74 20 6d 65 6e 75 20 6f 72 20 69 74 65 | int menu or ite| 000113e0 6d 20 68 61 6e 64 6c 65 0a 20 20 20 20 20 20 20 |m handle. | 000113f0 20 20 69 6e 74 20 3c 73 74 61 74 65 3d 3e 6d 65 | int <state=>me| 00011400 6e 75 74 69 63 6b 66 6c 61 67 73 3e 0a 0a 41 64 |nutickflags>..Ad| 00011410 64 73 20 6f 72 20 72 65 6d 6f 76 65 73 20 74 69 |ds or removes ti| 00011420 63 6b 73 20 66 6f 72 20 6d 65 6e 75 0a 69 74 65 |cks for menu.ite| 00011430 6d 73 2e 20 49 66 20 61 20 6d 65 6e 75 20 68 61 |ms. If a menu ha| 00011440 6e 64 6c 65 20 69 73 20 67 69 76 65 6e 0a 74 68 |ndle is given.th| 00011450 65 6e 20 61 6c 6c 20 69 74 65 6d 73 20 69 6e 20 |en all items in | 00011460 74 68 65 20 6d 65 6e 75 20 61 72 65 0a 74 69 63 |the menu are.tic| 00011470 6b 65 64 20 6f 72 20 6e 6f 74 20 74 69 63 6b 65 |ked or not ticke| 00011480 64 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 3c 50 52 |d...See also <PR| 00011490 4f 43 73 68 65 6c 6c 5f 4d 65 6e 75 54 69 63 6b |OCshell_MenuTick| 000114a0 4f 6e 6c 79 31 3e 2c 0a 20 20 20 20 20 20 20 20 |Only1>,. | 000114b0 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 4d 65 6e 75 | <PROCshell_Menu| 000114c0 54 69 63 6b 4f 6e 6c 79 32 3e 0a 0a 4c 69 62 72 |TickOnly2>..Libr| 000114d0 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 4d 65 |ary Group => <Me| 000114e0 6e 75 73 3d 3e 4c 69 62 47 72 6f 75 70 4d 65 6e |nus=>LibGroupMen| 000114f0 75 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 4d 65 6e |us>PROCshell_Men| 00011500 75 53 68 61 64 65 28 29 0a 50 61 72 61 6d 73 20 |uShade().Params | 00011510 3d 3e 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 |=>. int | 00011520 6d 65 6e 75 20 6f 72 20 69 74 65 6d 20 68 61 6e |menu or item han| 00011530 64 6c 65 0a 20 20 20 20 20 20 20 20 20 69 6e 74 |dle. int| 00011540 20 3c 73 74 61 74 65 3d 3e 6d 65 6e 75 73 68 61 | <state=>menusha| 00011550 64 65 66 6c 61 67 73 3e 0a 0a 53 68 61 64 65 73 |deflags>..Shades| 00011560 20 6d 65 6e 75 20 69 74 65 6d 73 2e 20 49 66 20 | menu items. If | 00011570 61 20 6d 65 6e 75 20 68 61 6e 64 6c 65 20 69 73 |a menu handle is| 00011580 0a 67 69 76 65 6e 20 74 68 65 6e 20 61 6c 6c 20 |.given then all | 00011590 69 74 65 6d 73 20 69 6e 20 74 68 65 20 6d 65 6e |items in the men| 000115a0 75 20 61 72 65 0a 73 68 61 64 65 64 20 6f 72 20 |u are.shaded or | 000115b0 64 65 73 68 61 64 65 64 2e 0a 0a 4c 69 62 72 61 |deshaded...Libra| 000115c0 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 4d 65 6e |ry Group => <Men| 000115d0 75 73 3d 3e 4c 69 62 47 72 6f 75 70 4d 65 6e 75 |us=>LibGroupMenu| 000115e0 73 3e 4d 65 6e 75 20 54 69 63 6b 20 53 74 61 74 |s>Menu Tick Stat| 000115f0 65 73 0a 54 68 65 20 73 74 61 74 65 20 69 73 20 |es.The state is | 00011600 30 20 66 6f 72 20 6e 6f 20 20 74 69 63 6b 2c 20 |0 for no tick, | 00011610 6e 6f 6e 20 30 20 66 6f 72 20 61 20 74 69 63 6b |non 0 for a tick| 00011620 2e 4d 65 6e 75 20 53 68 61 64 65 20 53 74 61 74 |.Menu Shade Stat| 00011630 65 73 0a 54 68 65 20 73 74 61 74 65 20 69 73 20 |es.The state is | 00011640 30 20 66 6f 72 20 6e 6f 20 73 68 61 64 69 6e 67 |0 for no shading| 00011650 2c 20 6e 6f 6e 20 30 20 66 6f 72 20 73 68 61 64 |, non 0 for shad| 00011660 69 6e 67 2e 53 6f 6d 65 20 43 6f 6d 6d 6f 6e 20 |ing.Some Common | 00011670 51 75 65 73 74 69 6f 6e 73 0a 57 68 79 20 64 6f |Questions.Why do| 00011680 65 73 6e 27 74 20 61 20 64 72 61 67 20 62 6f 78 |esn't a drag box| 00011690 20 61 70 70 65 61 72 20 61 72 6f 75 6e 64 20 61 | appear around a| 000116a0 6e 20 69 63 6f 6e 20 65 76 65 6e 0a 74 68 6f 75 |n icon even.thou| 000116b0 67 68 20 49 20 68 61 76 65 20 73 65 74 20 74 68 |gh I have set th| 000116c0 65 20 69 63 6f 6e 20 74 6f 20 62 65 20 64 72 61 |e icon to be dra| 000116d0 67 61 62 6c 65 20 75 73 69 6e 67 20 61 0a 74 65 |gable using a.te| 000116e0 6d 70 6c 61 74 65 20 65 64 69 74 6f 72 3f 0a 0a |mplate editor?..| 000116f0 20 20 54 68 69 73 20 69 73 20 62 65 63 61 75 73 | This is becaus| 00011700 65 20 79 6f 75 20 68 61 76 65 20 6e 6f 74 20 61 |e you have not a| 00011710 74 74 61 63 68 65 64 20 61 6e 20 65 76 65 6e 74 |ttached an event| 00011720 20 68 61 6e 64 6c 65 72 0a 20 20 74 6f 20 64 65 | handler. to de| 00011730 66 69 6e 65 20 77 68 61 74 20 68 61 70 70 65 6e |fine what happen| 00011740 73 20 77 68 65 6e 20 74 68 65 20 62 75 74 74 6f |s when the butto| 00011750 6e 20 69 73 20 72 65 6c 65 61 73 65 64 2e 20 49 |n is released. I| 00011760 66 0a 20 20 79 6f 75 20 61 74 74 61 63 68 20 61 |f. you attach a| 00011770 20 64 72 61 67 20 68 61 6e 64 6c 65 72 20 77 69 | drag handler wi| 00011780 74 68 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 41 74 |th <PROCshell_At| 00011790 74 61 63 68 44 61 74 61 4c 6f 61 64 3e 0a 20 20 |tachDataLoad>. | 000117a0 66 6f 72 20 65 78 61 6d 70 6c 65 20 74 68 65 6e |for example then| 000117b0 20 61 6c 6c 20 77 69 6c 6c 20 62 65 20 77 65 6c | all will be wel| 000117c0 6c 2e 0a 0a 57 68 79 20 69 73 20 69 63 6f 6e 20 |l...Why is icon | 000117d0 30 20 69 6e 20 61 20 64 79 6e 61 6d 69 63 20 64 |0 in a dynamic d| 000117e0 69 61 6c 6f 67 20 62 6f 78 20 61 70 70 61 72 65 |ialog box appare| 000117f0 6e 74 6c 79 20 63 6c 69 63 6b 65 64 0a 6f 76 65 |ntly clicked.ove| 00011800 72 20 77 68 65 6e 20 74 68 65 20 52 45 54 55 52 |r when the RETUR| 00011810 4e 20 6b 65 79 20 69 73 20 70 72 65 73 73 65 64 |N key is pressed| 00011820 20 69 6e 20 74 68 65 20 6c 61 73 74 20 77 72 69 | in the last wri| 00011830 74 65 61 62 6c 65 0a 69 63 6f 6e 2c 20 72 65 73 |teable.icon, res| 00011840 75 6c 74 69 6e 67 20 69 6e 20 74 68 65 20 64 69 |ulting in the di| 00011850 61 6c 6f 67 20 62 6f 78 20 62 65 69 6e 67 20 63 |alog box being c| 00011860 6c 6f 73 65 64 3f 0a 0a 20 20 54 68 69 73 20 69 |losed?.. This i| 00011870 73 20 74 68 65 20 41 63 6f 72 6e 20 64 65 66 69 |s the Acorn defi| 00011880 6e 65 64 20 52 49 53 43 2d 4f 53 20 73 74 61 6e |ned RISC-OS stan| 00011890 64 61 72 64 20 62 65 68 61 76 69 6f 75 72 2e 0a |dard behaviour..| 000118a0 20 20 4e 6f 74 65 2c 20 68 6f 77 65 76 65 72 2c | Note, however,| 000118b0 20 74 68 61 74 20 61 20 62 75 67 20 69 6e 20 74 | that a bug in t| 000118c0 68 65 20 45 76 6e 74 53 68 65 6c 6c 20 6c 69 62 |he EvntShell lib| 000118d0 72 61 72 79 0a 20 20 63 6f 64 65 20 69 6e 20 76 |rary. code in v| 000118e0 65 72 73 69 6f 6e 73 20 70 72 69 6f 72 20 74 6f |ersions prior to| 000118f0 20 31 2e 30 35 20 63 61 75 73 65 64 20 74 68 69 | 1.05 caused thi| 00011900 73 20 62 65 68 61 76 69 6f 75 72 0a 20 20 77 69 |s behaviour. wi| 00011910 74 68 20 27 53 74 61 74 69 63 27 20 77 69 6e 64 |th 'Static' wind| 00011920 6f 77 73 20 61 73 20 77 65 6c 6c 20 77 68 69 63 |ows as well whic| 00011930 68 20 77 61 73 20 6e 6f 74 20 77 68 61 74 20 77 |h was not what w| 00011940 61 73 0a 20 20 69 6e 74 65 6e 64 65 64 21 46 4e |as. intended!FN| 00011950 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 48 61 73 54 |shell_WindowHasT| 00011960 69 74 6c 65 42 61 72 28 29 0a 50 61 72 61 6d 73 |itleBar().Params| 00011970 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 69 6e 74 | =>. int| 00011980 20 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 0a | window handle.| 00011990 0a 20 20 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 |. \<=. | 000119a0 20 20 20 20 20 62 6f 6f 6c 20 54 52 55 45 20 69 | bool TRUE i| 000119b0 66 20 77 69 6e 64 6f 77 20 68 61 73 20 61 20 74 |f window has a t| 000119c0 69 74 6c 65 20 62 61 72 2c 20 6f 74 68 65 72 77 |itle bar, otherw| 000119d0 69 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 |ise. | 000119e0 20 20 46 41 4c 53 45 0a 0a 4c 69 62 72 61 72 79 | FALSE..Library| 000119f0 20 47 72 6f 75 70 20 3d 5c 3e 20 3c 57 69 6e 64 | Group =\> <Wind| 00011a00 6f 77 73 3d 3e 4c 69 62 47 72 6f 75 70 57 69 6e |ows=>LibGroupWin| 00011a10 64 6f 77 73 3e 46 4e 73 68 65 6c 6c 5f 57 69 6e |dows>FNshell_Win| 00011a20 64 6f 77 47 65 74 54 69 74 6c 65 28 29 0a 50 61 |dowGetTitle().Pa| 00011a30 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 |rams =>. | 00011a40 20 69 6e 74 20 77 69 6e 64 6f 77 20 68 61 6e 64 | int window hand| 00011a50 6c 65 0a 0a 20 20 20 20 20 20 20 5c 3c 3d 0a 20 |le.. \<=. | 00011a60 20 20 20 20 20 20 20 20 73 74 72 20 77 69 6e 64 | str wind| 00011a70 6f 77 20 74 69 74 6c 65 20 28 6e 75 6c 6c 20 69 |ow title (null i| 00011a80 66 20 6e 6f 20 74 69 74 6c 65 29 0a 0a 4c 69 62 |f no title)..Lib| 00011a90 72 61 72 79 20 47 72 6f 75 70 20 3d 5c 3e 20 3c |rary Group =\> <| 00011aa0 57 69 6e 64 6f 77 73 3d 3e 4c 69 62 47 72 6f 75 |Windows=>LibGrou| 00011ab0 70 57 69 6e 64 6f 77 73 3e 46 4e 73 68 65 6c 6c |pWindows>FNshell| 00011ac0 5f 57 69 6e 64 6f 77 54 69 74 6c 65 42 75 66 66 |_WindowTitleBuff| 00011ad0 65 72 4c 65 6e 67 74 68 28 29 0a 50 61 72 61 6d |erLength().Param| 00011ae0 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 69 6e |s =>. in| 00011af0 74 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 0a |t window handle.| 00011b00 0a 20 20 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 |. \<=. | 00011b10 20 20 20 20 20 69 6e 74 20 62 75 66 66 65 72 20 | int buffer | 00011b20 6c 65 6e 67 74 68 20 28 31 32 20 69 66 20 74 69 |length (12 if ti| 00011b30 74 6c 65 20 69 73 20 6e 6f 74 0a 20 20 20 20 20 |tle is not. | 00011b40 20 20 20 20 20 20 20 20 69 6e 64 69 72 65 63 74 | indirect| 00011b50 65 64 29 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f |ed)..Library Gro| 00011b60 75 70 20 3d 5c 3e 20 3c 57 69 6e 64 6f 77 73 3d |up =\> <Windows=| 00011b70 3e 4c 69 62 47 72 6f 75 70 57 69 6e 64 6f 77 73 |>LibGroupWindows| 00011b80 3e 46 4e 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 49 |>FNshell_WindowI| 00011b90 73 4d 6f 76 65 61 62 6c 65 28 29 0a 50 61 72 61 |sMoveable().Para| 00011ba0 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 69 |ms =>. i| 00011bb0 6e 74 20 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c |nt window handl| 00011bc0 65 0a 0a 20 20 20 20 20 20 20 5c 3c 3d 0a 20 20 |e.. \<=. | 00011bd0 20 20 20 20 20 20 20 62 6f 6f 6c 20 54 52 55 45 | bool TRUE| 00011be0 20 69 66 20 77 69 6e 64 6f 77 20 69 73 20 6d 6f | if window is mo| 00011bf0 76 65 61 62 6c 65 2c 20 6f 74 68 65 72 77 69 73 |veable, otherwis| 00011c00 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |e. | 00011c10 46 41 4c 53 45 0a 0a 4c 69 62 72 61 72 79 20 47 |FALSE..Library G| 00011c20 72 6f 75 70 20 3d 5c 3e 20 3c 57 69 6e 64 6f 77 |roup =\> <Window| 00011c30 73 3d 3e 4c 69 62 47 72 6f 75 70 57 69 6e 64 6f |s=>LibGroupWindo| 00011c40 77 73 3e 46 4e 73 68 65 6c 6c 5f 57 69 6e 64 6f |ws>FNshell_Windo| 00011c50 77 49 73 41 50 61 6e 65 28 29 0a 50 61 72 61 6d |wIsAPane().Param| 00011c60 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 69 6e |s =>. in| 00011c70 74 20 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 |t window handle| 00011c80 0a 0a 20 20 20 20 20 20 20 5c 3c 3d 0a 20 20 20 |.. \<=. | 00011c90 20 20 20 20 20 20 62 6f 6f 6c 20 54 52 55 45 20 | bool TRUE | 00011ca0 69 66 20 77 69 6e 64 6f 77 20 69 73 20 61 20 70 |if window is a p| 00011cb0 61 6e 65 2c 20 6f 74 68 65 72 77 69 73 65 0a 20 |ane, otherwise. | 00011cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 46 41 4c | FAL| 00011cd0 53 45 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 |SE..Library Grou| 00011ce0 70 20 3d 5c 3e 20 3c 57 69 6e 64 6f 77 73 3d 3e |p =\> <Windows=>| 00011cf0 4c 69 62 47 72 6f 75 70 57 69 6e 64 6f 77 73 3e |LibGroupWindows>| 00011d00 46 4e 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 49 73 |FNshell_WindowIs| 00011d10 4e 6f 74 42 6f 75 6e 64 65 64 28 29 0a 50 61 72 |NotBounded().Par| 00011d20 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 |ams =>. | 00011d30 69 6e 74 20 20 77 69 6e 64 6f 77 20 68 61 6e 64 |int window hand| 00011d40 6c 65 0a 0a 20 20 20 20 20 20 20 5c 3c 3d 0a 20 |le.. \<=. | 00011d50 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 54 52 55 | bool TRU| 00011d60 45 20 69 66 20 77 69 6e 64 6f 77 20 6d 61 79 20 |E if window may | 00011d70 6d 6f 76 65 20 6f 75 74 73 69 64 65 0a 20 20 20 |move outside. | 00011d80 20 20 20 20 20 20 20 20 20 20 20 74 68 65 20 73 | the s| 00011d90 63 72 65 65 6e 20 61 72 65 61 2c 20 6f 74 68 65 |creen area, othe| 00011da0 72 77 69 73 65 20 46 41 4c 53 45 0a 0a 4c 69 62 |rwise FALSE..Lib| 00011db0 72 61 72 79 20 47 72 6f 75 70 20 3d 5c 3e 20 3c |rary Group =\> <| 00011dc0 57 69 6e 64 6f 77 73 3d 3e 4c 69 62 47 72 6f 75 |Windows=>LibGrou| 00011dd0 70 57 69 6e 64 6f 77 73 3e 46 4e 73 68 65 6c 6c |pWindows>FNshell| 00011de0 5f 57 69 6e 64 6f 77 54 72 61 70 73 48 6f 74 4b |_WindowTrapsHotK| 00011df0 65 79 73 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a |eys().Params =>.| 00011e00 20 20 20 20 20 20 20 20 20 69 6e 74 20 20 77 69 | int wi| 00011e10 6e 64 6f 77 20 68 61 6e 64 6c 65 0a 0a 20 20 20 |ndow handle.. | 00011e20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 | \<=. | 00011e30 20 62 6f 6f 6c 20 54 52 55 45 20 69 66 20 77 69 | bool TRUE if wi| 00011e40 6e 64 6f 77 20 74 72 61 70 73 20 68 6f 74 20 6b |ndow traps hot k| 00011e50 65 79 73 2c 0a 20 20 20 20 20 20 20 20 20 20 20 |eys,. | 00011e60 20 20 20 6f 74 68 65 72 77 69 73 65 20 46 41 4c | otherwise FAL| 00011e70 53 45 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 |SE..Library Grou| 00011e80 70 20 3d 5c 3e 20 3c 57 69 6e 64 6f 77 73 3d 3e |p =\> <Windows=>| 00011e90 4c 69 62 47 72 6f 75 70 57 69 6e 64 6f 77 73 3e |LibGroupWindows>| 00011ea0 46 4e 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 48 61 |FNshell_WindowHa| 00011eb0 73 42 65 65 6e 54 6f 67 67 6c 65 64 28 29 0a 50 |sBeenToggled().P| 00011ec0 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 |arams =>. | 00011ed0 20 20 69 6e 74 20 20 77 69 6e 64 6f 77 20 68 61 | int window ha| 00011ee0 6e 64 6c 65 0a 0a 20 20 20 20 20 20 20 5c 3c 3d |ndle.. \<=| 00011ef0 0a 20 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 54 |. bool T| 00011f00 52 55 45 20 69 66 20 77 69 6e 64 6f 77 20 68 61 |RUE if window ha| 00011f10 73 20 62 65 65 6e 20 74 6f 67 67 6c 65 64 20 74 |s been toggled t| 00011f20 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |o. | 00011f30 66 75 6c 6c 20 73 69 7a 65 2c 20 6f 74 68 65 72 |full size, other| 00011f40 77 69 73 65 20 46 41 4c 53 45 0a 0a 4c 69 62 72 |wise FALSE..Libr| 00011f50 61 72 79 20 47 72 6f 75 70 20 3d 5c 3e 20 3c 57 |ary Group =\> <W| 00011f60 69 6e 64 6f 77 73 3d 3e 4c 69 62 47 72 6f 75 70 |indows=>LibGroup| 00011f70 57 69 6e 64 6f 77 73 3e 46 4e 73 68 65 6c 6c 5f |Windows>FNshell_| 00011f80 57 69 6e 64 6f 77 48 61 73 49 6e 70 75 74 46 6f |WindowHasInputFo| 00011f90 63 75 73 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a |cus().Params =>.| 00011fa0 20 20 20 20 20 20 20 20 20 69 6e 74 20 20 77 69 | int wi| 00011fb0 6e 64 6f 77 20 68 61 6e 64 6c 65 0a 0a 20 20 20 |ndow handle.. | 00011fc0 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 | \<=. | 00011fd0 20 62 6f 6f 6c 20 54 52 55 45 20 69 66 20 77 69 | bool TRUE if wi| 00011fe0 6e 64 6f 77 20 68 61 73 20 74 68 65 20 69 6e 70 |ndow has the inp| 00011ff0 75 74 20 66 6f 63 75 73 2c 0a 20 20 20 20 20 20 |ut focus,. | 00012000 20 20 20 20 20 20 20 20 6f 74 68 65 72 77 69 73 | otherwis| 00012010 65 20 46 41 4c 53 45 0a 0a 4c 69 62 72 61 72 79 |e FALSE..Library| 00012020 20 47 72 6f 75 70 20 3d 5c 3e 20 3c 57 69 6e 64 | Group =\> <Wind| 00012030 6f 77 73 3d 3e 4c 69 62 47 72 6f 75 70 57 69 6e |ows=>LibGroupWin| 00012040 64 6f 77 73 3e 46 4e 73 68 65 6c 6c 5f 57 69 6e |dows>FNshell_Win| 00012050 64 6f 77 48 61 73 42 61 63 6b 49 63 6f 6e 28 29 |dowHasBackIcon()| 00012060 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 |.Params =>. | 00012070 20 20 20 20 69 6e 74 20 20 77 69 6e 64 6f 77 20 | int window | 00012080 68 61 6e 64 6c 65 0a 0a 20 20 20 20 20 20 20 5c |handle.. \| 00012090 3c 3d 0a 20 20 20 20 20 20 20 20 20 62 6f 6f 6c |<=. bool| 000120a0 20 54 52 55 45 20 69 66 20 77 69 6e 64 6f 77 20 | TRUE if window | 000120b0 68 61 73 20 61 20 73 65 6e 64 20 74 6f 20 62 61 |has a send to ba| 000120c0 63 6b 20 69 63 6f 6e 2c 0a 20 20 20 20 20 20 20 |ck icon,. | 000120d0 20 20 20 20 20 20 20 6f 74 68 65 72 77 69 73 65 | otherwise| 000120e0 20 46 41 4c 53 45 0a 0a 4c 69 62 72 61 72 79 20 | FALSE..Library | 000120f0 47 72 6f 75 70 20 3d 5c 3e 20 3c 57 69 6e 64 6f |Group =\> <Windo| 00012100 77 73 3d 3e 4c 69 62 47 72 6f 75 70 57 69 6e 64 |ws=>LibGroupWind| 00012110 6f 77 73 3e 46 4e 73 68 65 6c 6c 5f 57 69 6e 64 |ows>FNshell_Wind| 00012120 6f 77 48 61 73 43 6c 6f 73 65 49 63 6f 6e 28 29 |owHasCloseIcon()| 00012130 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 |.Params =>. | 00012140 20 20 20 20 69 6e 74 20 20 77 69 6e 64 6f 77 20 | int window | 00012150 68 61 6e 64 6c 65 0a 0a 20 20 20 20 20 20 20 5c |handle.. \| 00012160 3c 3d 0a 20 20 20 20 20 20 20 20 20 62 6f 6f 6c |<=. bool| 00012170 20 54 52 55 45 20 69 66 20 77 69 6e 64 6f 77 20 | TRUE if window | 00012180 68 61 73 20 61 20 63 6c 6f 73 65 20 69 63 6f 6e |has a close icon| 00012190 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |,. | 000121a0 6f 74 68 65 72 77 69 73 65 20 46 41 4c 53 45 0a |otherwise FALSE.| 000121b0 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d |.Library Group =| 000121c0 5c 3e 20 3c 57 69 6e 64 6f 77 73 3d 3e 4c 69 62 |\> <Windows=>Lib| 000121d0 47 72 6f 75 70 57 69 6e 64 6f 77 73 3e 46 4e 73 |GroupWindows>FNs| 000121e0 68 65 6c 6c 5f 57 69 6e 64 6f 77 48 61 73 54 6f |hell_WindowHasTo| 000121f0 67 67 6c 65 49 63 6f 6e 28 29 0a 50 61 72 61 6d |ggleIcon().Param| 00012200 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 69 6e |s =>. in| 00012210 74 20 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 |t window handle| 00012220 0a 0a 20 20 20 20 20 20 20 5c 3c 3d 0a 20 20 20 |.. \<=. | 00012230 20 20 20 20 20 20 62 6f 6f 6c 20 54 52 55 45 20 | bool TRUE | 00012240 69 66 20 77 69 6e 64 6f 77 20 68 61 73 20 61 20 |if window has a | 00012250 74 6f 67 67 6c 65 20 69 63 6f 6e 2c 0a 20 20 20 |toggle icon,. | 00012260 20 20 20 20 20 20 20 20 20 20 20 6f 74 68 65 72 | other| 00012270 77 69 73 65 20 46 41 4c 53 45 0a 0a 4c 69 62 72 |wise FALSE..Libr| 00012280 61 72 79 20 47 72 6f 75 70 20 3d 5c 3e 20 3c 57 |ary Group =\> <W| 00012290 69 6e 64 6f 77 73 3d 3e 4c 69 62 47 72 6f 75 70 |indows=>LibGroup| 000122a0 57 69 6e 64 6f 77 73 3e 46 4e 73 68 65 6c 6c 5f |Windows>FNshell_| 000122b0 57 69 6e 64 6f 77 48 61 73 56 53 63 72 6f 6c 6c |WindowHasVScroll| 000122c0 42 61 72 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a |Bar().Params =>.| 000122d0 20 20 20 20 20 20 20 20 20 69 6e 74 20 20 77 69 | int wi| 000122e0 6e 64 6f 77 20 68 61 6e 64 6c 65 0a 0a 20 20 20 |ndow handle.. | 000122f0 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 | \<=. | 00012300 20 62 6f 6f 6c 20 54 52 55 45 20 69 66 20 77 69 | bool TRUE if wi| 00012310 6e 64 6f 77 20 68 61 73 20 61 20 76 65 72 74 69 |ndow has a verti| 00012320 63 61 6c 20 73 63 72 6f 6c 6c 20 62 61 72 2c 0a |cal scroll bar,.| 00012330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 74 | ot| 00012340 68 65 72 77 69 73 65 20 46 41 4c 53 45 0a 0a 4c |herwise FALSE..L| 00012350 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d 5c 3e |ibrary Group =\>| 00012360 20 3c 57 69 6e 64 6f 77 73 3d 3e 4c 69 62 47 72 | <Windows=>LibGr| 00012370 6f 75 70 57 69 6e 64 6f 77 73 3e 46 4e 73 68 65 |oupWindows>FNshe| 00012380 6c 6c 5f 57 69 6e 64 6f 77 48 61 73 48 53 63 72 |ll_WindowHasHScr| 00012390 6f 6c 6c 42 61 72 28 29 0a 50 61 72 61 6d 73 20 |ollBar().Params | 000123a0 3d 3e 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 |=>. int | 000123b0 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 0a 0a | window handle..| 000123c0 20 20 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 | \<=. | 000123d0 20 20 20 20 62 6f 6f 6c 20 54 52 55 45 20 69 66 | bool TRUE if| 000123e0 20 77 69 6e 64 6f 77 20 68 61 73 20 61 20 68 6f | window has a ho| 000123f0 72 69 7a 6f 6e 74 61 6c 20 73 63 72 6f 6c 6c 20 |rizontal scroll | 00012400 62 61 72 2c 0a 20 20 20 20 20 20 20 20 20 20 20 |bar,. | 00012410 20 20 20 6f 74 68 65 72 77 69 73 65 20 46 41 4c | otherwise FAL| 00012420 53 45 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 |SE..Library Grou| 00012430 70 20 3d 5c 3e 20 3c 57 69 6e 64 6f 77 73 3d 3e |p =\> <Windows=>| 00012440 4c 69 62 47 72 6f 75 70 57 69 6e 64 6f 77 73 3e |LibGroupWindows>| 00012450 46 4e 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 48 61 |FNshell_WindowHa| 00012460 73 41 64 6a 75 73 74 53 69 7a 65 49 63 6f 6e 28 |sAdjustSizeIcon(| 00012470 29 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 |).Params =>. | 00012480 20 20 20 20 20 69 6e 74 20 20 77 69 6e 64 6f 77 | int window| 00012490 20 68 61 6e 64 6c 65 0a 0a 20 20 20 20 20 20 20 | handle.. | 000124a0 5c 3c 3d 0a 20 20 20 20 20 20 20 20 20 62 6f 6f |\<=. boo| 000124b0 6c 20 54 52 55 45 20 69 66 20 77 69 6e 64 6f 77 |l TRUE if window| 000124c0 20 68 61 73 20 61 6e 20 61 64 6a 75 73 74 20 73 | has an adjust s| 000124d0 69 7a 65 20 69 63 6f 6e 2c 0a 20 20 20 20 20 20 |ize icon,. | 000124e0 20 20 20 20 20 20 20 20 6f 74 68 65 72 77 69 73 | otherwis| 000124f0 65 20 46 41 4c 53 45 0a 0a 4c 69 62 72 61 72 79 |e FALSE..Library| 00012500 20 47 72 6f 75 70 20 3d 5c 3e 20 3c 57 69 6e 64 | Group =\> <Wind| 00012510 6f 77 73 3d 3e 4c 69 62 47 72 6f 75 70 57 69 6e |ows=>LibGroupWin| 00012520 64 6f 77 73 3e 4d 61 69 6e 20 49 6e 64 65 78 0a |dows>Main Index.| 00012530 23 54 61 62 6c 65 20 39 20 31 30 0a 3c 44 65 62 |#Table 9 10.<Deb| 00012540 75 67 20 20 20 20 3d 3e 4c 69 62 47 72 6f 75 70 |ug =>LibGroup| 00012550 44 65 62 75 67 3e 0a 3c 44 72 61 77 20 20 20 20 |Debug>.<Draw | 00012560 20 3d 3e 4c 69 62 47 72 6f 75 70 44 72 61 77 3e | =>LibGroupDraw>| 00012570 0a 3c 45 76 65 6e 74 73 20 20 20 3d 3e 4c 69 62 |.<Events =>Lib| 00012580 47 72 6f 75 70 45 76 65 6e 74 73 3e 0a 3c 46 69 |GroupEvents>.<Fi| 00012590 6c 65 73 20 20 20 20 3d 3e 4c 69 62 47 72 6f 75 |les =>LibGrou| 000125a0 70 46 69 6c 65 73 3e 0a 3c 46 6f 6e 74 73 20 20 |pFiles>.<Fonts | 000125b0 20 20 3d 3e 4c 69 62 47 72 6f 75 70 46 6f 6e 74 | =>LibGroupFont| 000125c0 73 3e 0a 3c 49 63 6f 6e 73 20 20 20 20 3d 3e 4c |s>.<Icons =>L| 000125d0 69 62 47 72 6f 75 70 49 63 6f 6e 73 3e 0a 3c 4d |ibGroupIcons>.<M| 000125e0 65 6d 6f 72 79 20 20 20 3d 3e 4c 69 62 47 72 6f |emory =>LibGro| 000125f0 75 70 4d 65 6d 6f 72 79 3e 0a 3c 4d 65 6e 75 73 |upMemory>.<Menus| 00012600 20 20 20 20 3d 3e 4c 69 62 47 72 6f 75 70 4d 65 | =>LibGroupMe| 00012610 6e 75 73 3e 0a 3c 4d 65 73 73 61 67 65 73 20 3d |nus>.<Messages =| 00012620 3e 4c 69 62 47 72 6f 75 70 4d 65 73 73 61 67 65 |>LibGroupMessage| 00012630 73 3e 0a 3c 4d 69 73 63 20 20 20 20 20 3d 3e 4c |s>.<Misc =>L| 00012640 69 62 47 72 6f 75 70 4d 69 73 63 3e 0a 3c 4d 6f |ibGroupMisc>.<Mo| 00012650 75 73 65 20 20 20 20 3d 3e 4c 69 62 47 72 6f 75 |use =>LibGrou| 00012660 70 4d 6f 75 73 65 3e 0a 3c 4f 53 20 20 20 20 20 |pMouse>.<OS | 00012670 20 20 3d 3e 4c 69 62 47 72 6f 75 70 4f 53 3e 0a | =>LibGroupOS>.| 00012680 3c 50 72 69 6e 74 65 72 20 20 3d 3e 4c 69 62 47 |<Printer =>LibG| 00012690 72 6f 75 70 50 72 69 6e 74 65 72 3e 0a 3c 53 68 |roupPrinter>.<Sh| 000126a0 65 6c 6c 20 20 20 20 3d 3e 4c 69 62 47 72 6f 75 |ell =>LibGrou| 000126b0 70 53 68 65 6c 6c 3e 0a 3c 53 70 72 69 74 65 73 |pShell>.<Sprites| 000126c0 20 20 3d 3e 4c 69 62 47 72 6f 75 70 53 70 72 69 | =>LibGroupSpri| 000126d0 74 65 73 3e 0a 3c 53 74 72 69 6e 67 73 20 20 3d |tes>.<Strings =| 000126e0 3e 4c 69 62 47 72 6f 75 70 53 74 72 69 6e 67 73 |>LibGroupStrings| 000126f0 3e 0a 3c 53 74 72 6f 6e 67 48 6c 70 3d 3e 4c 69 |>.<StrongHlp=>Li| 00012700 62 47 72 6f 75 70 48 65 6c 70 3e 0a 3c 57 69 6e |bGroupHelp>.<Win| 00012710 64 6f 77 73 20 20 3d 3e 4c 69 62 47 72 6f 75 70 |dows =>LibGroup| 00012720 57 69 6e 64 6f 77 73 3e 0a 0a 23 45 6e 64 54 61 |Windows>..#EndTa| 00012730 62 6c 65 50 52 4f 43 73 68 65 6c 6c 5f 44 6f 42 |blePROCshell_DoB| 00012740 61 63 6b 67 72 6f 75 6e 64 54 61 73 6b 0a 50 61 |ackgroundTask.Pa| 00012750 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 |rams =>. | 00012760 20 4e 6f 6e 65 0a 0a 43 61 6c 6c 65 64 20 65 76 | None..Called ev| 00012770 65 72 79 74 69 6d 65 20 61 20 6e 75 6c 6c 20 72 |erytime a null r| 00012780 65 61 73 6f 6e 20 63 6f 64 65 20 69 73 20 72 65 |eason code is re| 00012790 63 65 69 76 65 64 2e 0a 0a 4c 69 62 72 61 72 79 |ceived...Library| 000127a0 20 47 72 6f 75 70 20 3d 3e 20 3c 45 76 65 6e 74 | Group => <Event| 000127b0 73 3d 3e 4c 69 62 47 72 6f 75 70 45 76 65 6e 74 |s=>LibGroupEvent| 000127c0 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 48 61 6e 64 |s>PROCshell_Hand| 000127d0 6c 65 55 6e 6b 6e 6f 77 6e 4d 65 73 73 61 67 65 |leUnknownMessage| 000127e0 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 |().Params =>. | 000127f0 20 20 20 20 20 20 69 6e 74 20 61 64 64 72 65 73 | int addres| 00012800 73 20 6f 66 20 3c 6d 65 73 73 61 67 65 20 62 6c |s of <message bl| 00012810 6f 63 6b 3d 3e 73 77 69 2e 77 69 6d 70 5f 73 65 |ock=>swi.wimp_se| 00012820 6e 64 6d 65 73 73 61 67 65 32 3e 0a 0a 43 61 6c |ndmessage2>..Cal| 00012830 6c 65 64 20 65 76 65 72 79 20 74 69 6d 65 20 61 |led every time a| 00012840 6e 20 75 6e 6b 6e 6f 77 6e 20 6d 65 73 73 61 67 |n unknown messag| 00012850 65 20 69 73 20 72 65 63 65 69 76 65 64 2e 0a 0a |e is received...| 00012860 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e |Library Group =>| 00012870 20 3c 45 76 65 6e 74 73 3d 3e 4c 69 62 47 72 6f | <Events=>LibGro| 00012880 75 70 45 76 65 6e 74 73 3e 46 4e 73 68 65 6c 6c |upEvents>FNshell| 00012890 5f 57 69 6e 64 6f 77 49 73 4f 70 65 6e 28 29 0a |_WindowIsOpen().| 000128a0 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 |Params =>. | 000128b0 20 20 20 69 6e 74 20 20 77 69 6e 64 6f 77 20 68 | int window h| 000128c0 61 6e 64 6c 65 0a 0a 20 20 20 20 20 20 20 5c 3c |andle.. \<| 000128d0 3d 0a 20 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 |=. bool | 000128e0 54 52 55 45 20 69 66 20 77 69 6e 64 6f 77 20 69 |TRUE if window i| 000128f0 73 20 6f 70 65 6e 2c 20 6f 74 68 65 72 77 69 73 |s open, otherwis| 00012900 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |e. | 00012910 46 41 4c 53 45 0a 0a 4c 69 62 72 61 72 79 20 47 |FALSE..Library G| 00012920 72 6f 75 70 20 3d 5c 3e 20 3c 57 69 6e 64 6f 77 |roup =\> <Window| 00012930 73 3d 3e 4c 69 62 47 72 6f 75 70 57 69 6e 64 6f |s=>LibGroupWindo| 00012940 77 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 57 69 6e |ws>PROCshell_Win| 00012950 64 6f 77 54 6f 67 67 6c 65 42 61 63 6b 49 63 6f |dowToggleBackIco| 00012960 6e 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 |n().Params =>. | 00012970 20 20 20 20 20 20 20 69 6e 74 20 20 77 69 6e 64 | int wind| 00012980 6f 77 20 68 61 6e 64 6c 65 0a 0a 20 20 20 20 20 |ow handle.. | 00012990 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 20 69 | \<=. i| 000129a0 6e 74 20 3c 75 70 64 61 74 65 64 20 77 69 6e 64 |nt <updated wind| 000129b0 6f 77 20 68 61 6e 64 6c 65 3d 3e 75 70 64 61 74 |ow handle=>updat| 000129c0 65 77 69 6e 68 3e 0a 0a 41 64 64 73 20 61 20 27 |ewinh>..Adds a '| 000129d0 42 61 63 6b 20 69 63 6f 6e 27 20 74 6f 20 61 20 |Back icon' to a | 000129e0 77 69 6e 64 6f 77 20 69 66 20 69 74 20 64 6f 65 |window if it doe| 000129f0 73 6e 27 74 0a 68 61 76 65 20 6f 6e 65 2c 20 72 |sn't.have one, r| 00012a00 65 6d 6f 76 65 73 20 69 74 20 69 66 20 69 74 20 |emoves it if it | 00012a10 64 6f 65 73 2e 20 41 6c 73 6f 20 72 65 64 69 73 |does. Also redis| 00012a20 70 6c 61 79 73 0a 77 69 6e 64 6f 77 20 69 6e 20 |plays.window in | 00012a30 69 74 73 20 6e 65 77 20 73 74 61 74 65 20 69 66 |its new state if| 00012a40 20 69 74 20 69 73 20 6f 70 65 6e 2e 0a 0a 4c 69 | it is open...Li| 00012a50 62 72 61 72 79 20 47 72 6f 75 70 20 3d 5c 3e 20 |brary Group =\> | 00012a60 3c 57 69 6e 64 6f 77 73 3d 3e 4c 69 62 47 72 6f |<Windows=>LibGro| 00012a70 75 70 57 69 6e 64 6f 77 73 3e 50 52 4f 43 73 68 |upWindows>PROCsh| 00012a80 65 6c 6c 5f 57 69 6e 64 6f 77 54 6f 67 67 6c 65 |ell_WindowToggle| 00012a90 43 6c 6f 73 65 49 63 6f 6e 28 29 0a 50 61 72 61 |CloseIcon().Para| 00012aa0 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 69 |ms =>. i| 00012ab0 6e 74 20 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c |nt window handl| 00012ac0 65 0a 0a 20 20 20 20 20 20 20 5c 3c 3d 0a 20 20 |e.. \<=. | 00012ad0 20 20 20 20 20 20 20 69 6e 74 20 3c 75 70 64 61 | int <upda| 00012ae0 74 65 64 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c |ted window handl| 00012af0 65 3d 3e 75 70 64 61 74 65 77 69 6e 68 3e 0a 0a |e=>updatewinh>..| 00012b00 41 64 64 73 20 61 20 27 43 6c 6f 73 65 20 69 63 |Adds a 'Close ic| 00012b10 6f 6e 27 20 74 6f 20 61 20 77 69 6e 64 6f 77 20 |on' to a window | 00012b20 69 66 20 69 74 20 64 6f 65 73 6e 27 74 0a 68 61 |if it doesn't.ha| 00012b30 76 65 20 6f 6e 65 2c 20 72 65 6d 6f 76 65 73 20 |ve one, removes | 00012b40 69 74 20 69 66 20 69 74 20 64 6f 65 73 2e 20 41 |it if it does. A| 00012b50 6c 73 6f 20 72 65 64 69 73 70 6c 61 79 73 0a 77 |lso redisplays.w| 00012b60 69 6e 64 6f 77 20 69 6e 20 69 74 73 20 6e 65 77 |indow in its new| 00012b70 20 73 74 61 74 65 20 69 66 20 69 74 20 69 73 20 | state if it is | 00012b80 6f 70 65 6e 2e 0a 0a 4c 69 62 72 61 72 79 20 47 |open...Library G| 00012b90 72 6f 75 70 20 3d 5c 3e 20 3c 57 69 6e 64 6f 77 |roup =\> <Window| 00012ba0 73 3d 3e 4c 69 62 47 72 6f 75 70 57 69 6e 64 6f |s=>LibGroupWindo| 00012bb0 77 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 57 69 6e |ws>PROCshell_Win| 00012bc0 64 6f 77 54 6f 67 67 6c 65 54 69 74 6c 65 42 61 |dowToggleTitleBa| 00012bd0 72 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 |r().Params =>. | 00012be0 20 20 20 20 20 20 20 69 6e 74 20 20 77 69 6e 64 | int wind| 00012bf0 6f 77 20 68 61 6e 64 6c 65 0a 0a 20 20 20 20 20 |ow handle.. | 00012c00 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 20 69 | \<=. i| 00012c10 6e 74 20 3c 75 70 64 61 74 65 64 20 77 69 6e 64 |nt <updated wind| 00012c20 6f 77 20 68 61 6e 64 6c 65 3d 3e 75 70 64 61 74 |ow handle=>updat| 00012c30 65 77 69 6e 68 3e 0a 0a 41 64 64 73 20 61 20 54 |ewinh>..Adds a T| 00012c40 69 74 6c 65 20 62 61 72 20 74 6f 20 61 20 77 69 |itle bar to a wi| 00012c50 6e 64 6f 77 20 69 66 20 69 74 20 64 6f 65 73 6e |ndow if it doesn| 00012c60 27 74 20 6f 6e 65 2c 0a 72 65 6d 6f 76 65 73 20 |'t one,.removes | 00012c70 69 74 20 69 66 20 69 74 20 64 6f 65 73 2e 20 41 |it if it does. A| 00012c80 6c 73 6f 20 72 65 64 69 73 70 6c 61 79 73 20 77 |lso redisplays w| 00012c90 69 6e 64 6f 77 0a 69 6e 20 69 74 73 20 6e 65 77 |indow.in its new| 00012ca0 20 73 74 61 74 65 20 69 66 20 69 74 20 69 73 20 | state if it is | 00012cb0 6f 70 65 6e 2e 0a 0a 4c 69 62 72 61 72 79 20 47 |open...Library G| 00012cc0 72 6f 75 70 20 3d 5c 3e 20 3c 57 69 6e 64 6f 77 |roup =\> <Window| 00012cd0 73 3d 3e 4c 69 62 47 72 6f 75 70 57 69 6e 64 6f |s=>LibGroupWindo| 00012ce0 77 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 57 69 6e |ws>PROCshell_Win| 00012cf0 64 6f 77 54 6f 67 67 6c 65 54 6f 67 67 6c 65 49 |dowToggleToggleI| 00012d00 63 6f 6e 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a |con().Params =>.| 00012d10 20 20 20 20 20 20 20 20 20 69 6e 74 20 20 77 69 | int wi| 00012d20 6e 64 6f 77 20 68 61 6e 64 6c 65 0a 0a 20 20 20 |ndow handle.. | 00012d30 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 | \<=. | 00012d40 20 69 6e 74 20 3c 75 70 64 61 74 65 64 20 77 69 | int <updated wi| 00012d50 6e 64 6f 77 20 68 61 6e 64 6c 65 3d 3e 75 70 64 |ndow handle=>upd| 00012d60 61 74 65 77 69 6e 68 3e 0a 0a 41 64 64 73 20 61 |atewinh>..Adds a| 00012d70 20 27 54 6f 67 67 6c 65 20 73 69 7a 65 20 69 63 | 'Toggle size ic| 00012d80 6f 6e 27 20 20 74 6f 20 61 20 77 69 6e 64 6f 77 |on' to a window| 00012d90 20 69 66 20 69 74 0a 64 6f 65 73 6e 27 74 20 6f | if it.doesn't o| 00012da0 6e 65 2c 20 72 65 6d 6f 76 65 73 20 69 74 20 69 |ne, removes it i| 00012db0 66 20 69 74 20 64 6f 65 73 2e 20 41 6c 73 6f 0a |f it does. Also.| 00012dc0 72 65 64 69 73 70 6c 61 79 73 20 77 69 6e 64 6f |redisplays windo| 00012dd0 77 20 69 6e 20 69 74 73 20 6e 65 77 20 73 74 61 |w in its new sta| 00012de0 74 65 20 69 66 20 69 74 20 69 73 0a 6f 70 65 6e |te if it is.open| 00012df0 2e 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 |...Library Group| 00012e00 20 3d 5c 3e 20 3c 57 69 6e 64 6f 77 73 3d 3e 4c | =\> <Windows=>L| 00012e10 69 62 47 72 6f 75 70 57 69 6e 64 6f 77 73 3e 50 |ibGroupWindows>P| 00012e20 52 4f 43 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 54 |ROCshell_WindowT| 00012e30 6f 67 67 6c 65 56 53 63 72 6f 6c 6c 42 61 72 28 |oggleVScrollBar(| 00012e40 29 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 |).Params =>. | 00012e50 20 20 20 20 20 69 6e 74 20 20 77 69 6e 64 6f 77 | int window| 00012e60 20 68 61 6e 64 6c 65 0a 0a 20 20 20 20 20 20 20 | handle.. | 00012e70 5c 3c 3d 0a 20 20 20 20 20 20 20 20 20 69 6e 74 |\<=. int| 00012e80 20 3c 75 70 64 61 74 65 64 20 77 69 6e 64 6f 77 | <updated window| 00012e90 20 68 61 6e 64 6c 65 3d 3e 75 70 64 61 74 65 77 | handle=>updatew| 00012ea0 69 6e 68 3e 0a 0a 41 64 64 73 20 61 20 76 65 72 |inh>..Adds a ver| 00012eb0 74 69 63 61 6c 20 73 63 72 6f 6c 6c 20 62 61 72 |tical scroll bar| 00012ec0 20 74 6f 20 61 20 77 69 6e 64 6f 77 20 69 66 0a | to a window if.| 00012ed0 69 74 20 64 6f 65 73 6e 27 74 20 6f 6e 65 2c 20 |it doesn't one, | 00012ee0 72 65 6d 6f 76 65 73 20 69 74 20 69 66 20 69 74 |removes it if it| 00012ef0 20 64 6f 65 73 2e 20 41 6c 73 6f 0a 72 65 64 69 | does. Also.redi| 00012f00 73 70 6c 61 79 73 20 77 69 6e 64 6f 77 20 69 6e |splays window in| 00012f10 20 69 74 73 20 6e 65 77 20 73 74 61 74 65 20 69 | its new state i| 00012f20 66 20 69 74 20 69 73 0a 6f 70 65 6e 2e 0a 0a 4c |f it is.open...L| 00012f30 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d 5c 3e |ibrary Group =\>| 00012f40 20 3c 57 69 6e 64 6f 77 73 3d 3e 4c 69 62 47 72 | <Windows=>LibGr| 00012f50 6f 75 70 57 69 6e 64 6f 77 73 3e 50 52 4f 43 73 |oupWindows>PROCs| 00012f60 68 65 6c 6c 5f 57 69 6e 64 6f 77 54 6f 67 67 6c |hell_WindowToggl| 00012f70 65 41 64 6a 75 73 74 53 69 7a 65 69 63 6f 6e 28 |eAdjustSizeicon(| 00012f80 29 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 |).Params =>. | 00012f90 20 20 20 20 20 69 6e 74 20 20 77 69 6e 64 6f 77 | int window| 00012fa0 20 68 61 6e 64 6c 65 0a 0a 20 20 20 20 20 20 20 | handle.. | 00012fb0 5c 3c 3d 0a 20 20 20 20 20 20 20 20 20 69 6e 74 |\<=. int| 00012fc0 20 3c 75 70 64 61 74 65 64 20 77 69 6e 64 6f 77 | <updated window| 00012fd0 20 68 61 6e 64 6c 65 3d 3e 75 70 64 61 74 65 77 | handle=>updatew| 00012fe0 69 6e 68 3e 0a 0a 41 64 64 73 20 61 20 27 41 64 |inh>..Adds a 'Ad| 00012ff0 6a 75 73 74 20 73 69 7a 65 20 69 63 6f 6e 27 20 |just size icon' | 00013000 74 6f 20 61 20 77 69 6e 64 6f 77 20 69 66 20 69 |to a window if i| 00013010 74 0a 64 6f 65 73 6e 27 74 20 6f 6e 65 2c 20 72 |t.doesn't one, r| 00013020 65 6d 6f 76 65 73 20 69 74 20 69 66 20 69 74 20 |emoves it if it | 00013030 64 6f 65 73 2e 20 41 6c 73 6f 0a 72 65 64 69 73 |does. Also.redis| 00013040 70 6c 61 79 73 20 77 69 6e 64 6f 77 20 69 6e 20 |plays window in | 00013050 69 74 73 20 6e 65 77 20 73 74 61 74 65 20 69 66 |its new state if| 00013060 20 69 74 20 69 73 0a 6f 70 65 6e 2e 0a 0a 4c 69 | it is.open...Li| 00013070 62 72 61 72 79 20 47 72 6f 75 70 20 3d 5c 3e 20 |brary Group =\> | 00013080 3c 57 69 6e 64 6f 77 73 3d 3e 4c 69 62 47 72 6f |<Windows=>LibGro| 00013090 75 70 57 69 6e 64 6f 77 73 3e 50 52 4f 43 73 68 |upWindows>PROCsh| 000130a0 65 6c 6c 5f 57 69 6e 64 6f 77 54 6f 67 67 6c 65 |ell_WindowToggle| 000130b0 48 53 63 72 6f 6c 6c 42 61 72 28 29 0a 50 61 72 |HScrollBar().Par| 000130c0 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 |ams =>. | 000130d0 69 6e 74 20 20 77 69 6e 64 6f 77 20 68 61 6e 64 |int window hand| 000130e0 6c 65 0a 0a 20 20 20 20 20 20 20 5c 3c 3d 0a 20 |le.. \<=. | 000130f0 20 20 20 20 20 20 20 20 69 6e 74 20 3c 75 70 64 | int <upd| 00013100 61 74 65 64 20 77 69 6e 64 6f 77 20 68 61 6e 64 |ated window hand| 00013110 6c 65 3d 3e 75 70 64 61 74 65 77 69 6e 68 3e 0a |le=>updatewinh>.| 00013120 0a 41 64 64 73 20 61 20 68 6f 72 69 7a 6f 6e 74 |.Adds a horizont| 00013130 61 6c 20 73 63 72 6f 6c 6c 20 62 61 72 20 74 6f |al scroll bar to| 00013140 20 61 20 77 69 6e 64 6f 77 20 69 66 0a 69 74 20 | a window if.it | 00013150 64 6f 65 73 6e 27 74 20 6f 6e 65 2c 20 72 65 6d |doesn't one, rem| 00013160 6f 76 65 73 20 69 74 20 69 66 20 69 74 20 64 6f |oves it if it do| 00013170 65 73 2e 20 41 6c 73 6f 0a 72 65 64 69 73 70 6c |es. Also.redispl| 00013180 61 79 73 20 77 69 6e 64 6f 77 20 69 6e 20 69 74 |ays window in it| 00013190 73 20 6e 65 77 20 73 74 61 74 65 20 69 66 20 69 |s new state if i| 000131a0 74 20 69 73 0a 6f 70 65 6e 2e 0a 0a 4c 69 62 72 |t is.open...Libr| 000131b0 61 72 79 20 47 72 6f 75 70 20 3d 5c 3e 20 3c 57 |ary Group =\> <W| 000131c0 69 6e 64 6f 77 73 3d 3e 4c 69 62 47 72 6f 75 70 |indows=>LibGroup| 000131d0 57 69 6e 64 6f 77 73 3e 50 52 4f 43 73 68 65 6c |Windows>PROCshel| 000131e0 6c 5f 48 65 61 70 4d 61 6e 61 67 65 72 49 6e 69 |l_HeapManagerIni| 000131f0 74 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 |t.Params =>. | 00013200 20 20 20 20 20 73 74 72 20 70 61 74 68 20 74 6f | str path to| 00013210 20 64 69 72 65 63 74 6f 72 79 20 63 6f 6e 74 61 | directory conta| 00013220 69 6e 69 6e 67 20 74 68 65 0a 20 20 20 20 20 20 |ining the. | 00013230 20 20 20 20 20 20 20 27 68 65 61 70 63 6f 64 65 | 'heapcode| 00013240 27 20 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 |' file. | 00013250 69 6e 74 20 61 64 64 72 65 73 73 20 6f 66 20 68 |int address of h| 00013260 65 61 70 20 6d 61 6e 61 67 65 72 20 77 6f 72 6b |eap manager work| 00013270 73 70 61 63 65 0a 0a 54 68 69 73 20 72 6f 75 74 |space..This rout| 00013280 69 6e 65 20 6d 75 73 74 20 62 65 20 63 61 6c 6c |ine must be call| 00013290 65 64 20 62 65 66 6f 72 65 20 50 52 4f 43 73 68 |ed before PROCsh| 000132a0 65 6c 6c 5f 49 6e 69 74 2e 0a 0a 4c 69 62 72 61 |ell_Init...Libra| 000132b0 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 4d 65 6d |ry Group => <Mem| 000132c0 6f 72 79 3d 3e 4c 69 62 47 72 6f 75 70 4d 65 6d |ory=>LibGroupMem| 000132d0 6f 72 79 3e 50 52 4f 43 73 68 65 6c 6c 5f 4d 65 |ory>PROCshell_Me| 000132e0 6e 75 50 75 74 44 61 74 61 28 29 0a 50 61 72 61 |nuPutData().Para| 000132f0 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 69 |ms =>. i| 00013300 6e 74 20 6d 65 6e 75 20 68 61 6e 64 6c 65 0a 20 |nt menu handle. | 00013310 20 20 20 20 20 20 20 20 73 74 72 20 64 61 74 61 | str data| 00013320 20 74 6f 20 77 72 69 74 65 20 69 6e 74 6f 20 6d | to write into m| 00013330 65 6e 75 20 69 74 65 6d 0a 0a 54 68 69 73 20 72 |enu item..This r| 00013340 6f 75 74 69 6e 65 20 69 73 20 75 73 65 64 20 74 |outine is used t| 00013350 6f 20 61 6c 74 65 72 20 74 68 65 20 69 74 65 6d |o alter the item| 00013360 73 20 6f 66 20 61 0a 6d 65 6e 75 20 77 68 65 6e |s of a.menu when| 00013370 20 74 68 65 20 70 72 6f 67 72 61 6d 20 72 75 6e | the program run| 00013380 73 2e 20 54 68 65 20 77 69 64 74 68 20 6f 66 20 |s. The width of | 00013390 74 68 65 0a 6d 65 6e 75 20 69 73 20 61 64 6a 75 |the.menu is adju| 000133a0 73 74 65 64 20 61 75 74 6f 6d 61 74 69 63 61 6c |sted automatical| 000133b0 6c 79 2e 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f |ly...Library Gro| 000133c0 75 70 20 3d 3e 20 3c 4d 65 6e 75 73 3d 3e 4c 69 |up => <Menus=>Li| 000133d0 62 47 72 6f 75 70 4d 65 6e 75 73 3e 4d 65 6e 75 |bGroupMenus>Menu| 000133e0 20 53 74 72 69 6e 67 73 20 66 6f 72 20 50 52 4f | Strings for PRO| 000133f0 43 73 68 65 6c 6c 5f 4d 65 6e 75 50 75 74 44 61 |Cshell_MenuPutDa| 00013400 74 61 28 29 0a 54 68 65 20 6d 65 6e 75 20 73 74 |ta().The menu st| 00013410 72 69 6e 67 20 69 73 20 74 68 65 20 74 69 74 6c |ring is the titl| 00013420 65 20 6f 66 20 74 68 65 20 6d 65 6e 75 20 74 6f |e of the menu to| 00013430 20 77 72 69 74 65 0a 74 68 65 20 64 61 74 61 20 | write.the data | 00013440 74 6f 2e 20 49 74 20 64 6f 65 73 20 6e 6f 74 20 |to. It does not | 00013450 68 61 76 65 20 74 6f 20 62 65 20 30 20 74 65 72 |have to be 0 ter| 00013460 6d 69 6e 61 74 65 64 2e 49 74 65 6d 20 4e 72 20 |minated.Item Nr | 00013470 66 6f 72 20 50 52 4f 43 73 68 65 6c 6c 5f 4d 65 |for PROCshell_Me| 00013480 6e 75 50 75 74 44 61 74 61 28 29 0a 54 68 65 20 |nuPutData().The | 00013490 66 69 72 73 74 20 69 74 65 6d 20 69 6e 20 61 20 |first item in a | 000134a0 6d 65 6e 75 20 69 73 20 6e 75 6d 62 65 72 65 64 |menu is numbered| 000134b0 20 30 2e 46 4e 73 68 65 6c 6c 5f 48 65 61 70 42 | 0.FNshell_HeapB| 000134c0 6c 6f 63 6b 45 78 69 73 74 73 28 29 0a 50 61 72 |lockExists().Par| 000134d0 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 |ams =>. | 000134e0 69 6e 74 20 20 61 64 64 72 65 73 73 20 74 6f 20 |int address to | 000134f0 63 68 65 63 6b 0a 0a 20 20 20 20 20 20 20 5c 3c |check.. \<| 00013500 3d 0a 20 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 |=. bool | 00013510 54 52 55 45 20 6f 72 20 46 41 4c 53 45 0a 0a 54 |TRUE or FALSE..T| 00013520 68 69 73 20 72 6f 75 74 69 6e 65 20 72 65 74 75 |his routine retu| 00013530 72 6e 73 20 54 52 55 45 20 69 66 20 61 20 68 65 |rns TRUE if a he| 00013540 61 70 62 6c 6f 63 6b 20 69 73 20 70 72 65 73 65 |apblock is prese| 00013550 6e 74 0a 61 74 20 74 68 65 20 73 70 65 63 69 66 |nt.at the specif| 00013560 69 65 64 20 61 64 64 72 65 73 73 2c 20 46 41 4c |ied address, FAL| 00013570 53 45 20 6f 74 68 65 72 77 69 73 65 2e 0a 0a 4c |SE otherwise...L| 00013580 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 |ibrary Group => | 00013590 3c 4d 65 6d 6f 72 79 3d 3e 4c 69 62 47 72 6f 75 |<Memory=>LibGrou| 000135a0 70 4d 65 6d 6f 72 79 3e 46 4e 73 68 65 6c 6c 5f |pMemory>FNshell_| 000135b0 57 69 6e 64 6f 77 4c 6f 61 64 65 64 28 29 0a 50 |WindowLoaded().P| 000135c0 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 |arams =>. | 000135d0 20 20 73 74 72 20 20 77 69 6e 64 6f 77 20 6e 61 | str window na| 000135e0 6d 65 20 28 6d 61 78 20 31 31 20 63 68 61 72 61 |me (max 11 chara| 000135f0 63 74 65 72 73 29 0a 0a 20 20 20 20 20 20 20 5c |cters).. \| 00013600 3c 3d 0a 20 20 20 20 20 20 20 20 20 62 6f 6f 6c |<=. bool| 00013610 20 54 52 55 45 20 69 66 20 74 65 6d 70 6c 61 74 | TRUE if templat| 00013620 65 20 69 73 20 6c 6f 61 64 65 64 2c 20 6f 74 68 |e is loaded, oth| 00013630 65 72 77 69 73 65 0a 20 20 20 20 20 20 20 20 20 |erwise. | 00013640 20 20 20 20 20 46 41 4c 53 45 0a 0a 4c 69 62 72 | FALSE..Libr| 00013650 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 57 69 |ary Group => <Wi| 00013660 6e 64 6f 77 73 3d 3e 4c 69 62 47 72 6f 75 70 57 |ndows=>LibGroupW| 00013670 69 6e 64 6f 77 73 3e 50 52 4f 43 73 68 65 6c 6c |indows>PROCshell| 00013680 5f 4d 65 6d 46 69 6c 6c 28 29 0a 50 61 72 61 6d |_MemFill().Param| 00013690 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 69 6e |s =>. in| 000136a0 74 20 73 74 61 72 74 20 61 64 64 72 65 73 73 0a |t start address.| 000136b0 20 20 20 20 20 20 20 20 20 69 6e 74 20 6e 75 6d | int num| 000136c0 62 65 72 20 6f 66 20 62 79 74 65 73 0a 20 20 20 |ber of bytes. | 000136d0 20 20 20 20 20 20 69 6e 74 20 62 79 74 65 20 76 | int byte v| 000136e0 61 6c 75 65 20 74 6f 20 66 69 6c 6c 20 77 69 74 |alue to fill wit| 000136f0 68 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 |h..Library Group| 00013700 20 3d 3e 20 3c 4d 65 6d 6f 72 79 3d 3e 4c 69 62 | => <Memory=>Lib| 00013710 47 72 6f 75 70 4d 65 6d 6f 72 79 3e 50 52 4f 43 |GroupMemory>PROC| 00013720 73 68 65 6c 6c 5f 41 74 74 61 63 68 53 75 62 4d |shell_AttachSubM| 00013730 65 6e 75 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a |enu().Params =>.| 00013740 20 20 20 20 20 20 20 20 20 69 6e 74 20 6d 65 6e | int men| 00013750 75 20 69 74 65 6d 20 68 61 6e 64 6c 65 0a 20 20 |u item handle. | 00013760 20 20 20 20 20 20 20 69 6e 74 20 73 75 62 6d 65 | int subme| 00013770 6e 75 20 6d 65 6e 75 20 68 61 6e 64 6c 65 0a 20 |nu menu handle. | 00013780 20 20 20 20 20 20 20 20 73 74 72 20 3c 66 75 6e | str <fun| 00013790 63 74 69 6f 6e 3d 3e 55 73 65 72 46 4e 31 38 3e |ction=>UserFN18>| 000137a0 20 74 6f 20 63 61 6c 6c 20 77 68 65 6e 20 6d 65 | to call when me| 000137b0 6e 75 5f 77 61 72 6e 69 6e 67 0a 20 20 20 20 20 |nu_warning. | 000137c0 20 20 20 20 20 20 20 20 6d 65 73 73 61 67 65 20 | message | 000137d0 69 73 20 72 65 63 65 69 76 65 64 20 28 6f 70 74 |is received (opt| 000137e0 69 6f 6e 61 6c 2c 20 6d 61 79 0a 20 20 20 20 20 |ional, may. | 000137f0 20 20 20 20 20 20 20 20 62 65 20 22 22 29 0a 0a | be "")..| 00013800 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e |Library Group =>| 00013810 20 3c 4d 65 6e 75 73 3d 3e 4c 69 62 47 72 6f 75 | <Menus=>LibGrou| 00013820 70 4d 65 6e 75 73 3e 2c 20 3c 45 76 65 6e 74 73 |pMenus>, <Events| 00013830 3d 3e 4c 69 62 47 72 6f 75 70 45 76 65 6e 74 73 |=>LibGroupEvents| 00013840 3e 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 |>PROCshell_Attac| 00013850 68 46 6f 6e 74 53 75 62 4d 65 6e 75 28 29 0a 50 |hFontSubMenu().P| 00013860 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 |arams =>. | 00013870 20 20 69 6e 74 20 69 74 65 6d 20 68 61 6e 64 6c | int item handl| 00013880 65 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 3c |e. str <| 00013890 66 75 6e 63 74 69 6f 6e 3d 3e 55 73 65 72 46 4e |function=>UserFN| 000138a0 31 37 3e 20 74 6f 20 63 61 6c 6c 20 77 68 65 6e |17> to call when| 000138b0 20 6d 65 6e 75 5f 77 61 72 6e 69 6e 67 0a 20 20 | menu_warning. | 000138c0 20 20 20 20 20 20 20 20 20 20 20 6d 65 73 73 61 | messa| 000138d0 67 65 20 69 73 20 72 65 63 65 69 76 65 64 20 28 |ge is received (| 000138e0 6f 70 74 69 6f 6e 61 6c 2c 20 6d 61 79 0a 20 20 |optional, may. | 000138f0 20 20 20 20 20 20 20 20 20 20 20 62 65 20 22 22 | be ""| 00013900 29 0a 0a 54 68 69 73 20 72 6f 75 74 69 6e 65 20 |)..This routine | 00013910 77 69 6c 6c 20 61 74 74 65 6d 70 74 20 74 6f 20 |will attempt to | 00013920 6c 6f 61 64 20 74 68 65 20 6e 65 63 65 73 73 61 |load the necessa| 00013930 72 79 0a 27 46 6f 6e 74 4d 65 6e 75 27 20 73 75 |ry.'FontMenu' su| 00013940 70 70 6f 72 74 20 6d 6f 64 75 6c 65 20 69 66 20 |pport module if | 00013950 69 74 20 69 73 20 6e 6f 74 20 61 6c 72 65 61 64 |it is not alread| 00013960 79 0a 6c 6f 61 64 65 64 2e 20 49 74 20 65 78 70 |y.loaded. It exp| 00013970 65 63 74 73 20 74 6f 20 66 69 6e 64 20 69 74 20 |ects to find it | 00013980 69 6e 20 74 68 65 0a 45 76 6e 74 53 68 65 6c 6c |in the.EvntShell| 00013990 53 79 73 74 65 6d 24 50 61 74 68 20 28 75 73 75 |System$Path (usu| 000139a0 61 6c 6c 79 20 69 6e 20 21 53 68 65 6c 6c 53 79 |ally in !ShellSy| 000139b0 73 29 2e 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f |s)...Library Gro| 000139c0 75 70 20 3d 3e 20 3c 4d 65 6e 75 73 3d 3e 4c 69 |up => <Menus=>Li| 000139d0 62 47 72 6f 75 70 4d 65 6e 75 73 3e 2c 3c 46 6f |bGroupMenus>,<Fo| 000139e0 6e 74 73 3d 3e 4c 69 62 47 72 6f 75 70 46 6f 6e |nts=>LibGroupFon| 000139f0 74 73 3e 4a 6f 72 69 73 20 52 d6 6c 69 6e 67 0a |ts>Joris R.ling.| 00013a00 4a 6f 72 69 73 20 52 d6 6c 69 6e 67 0a 4f 75 64 |Joris R.ling.Oud| 00013a10 65 73 74 72 61 61 74 20 31 38 36 0a 38 32 36 31 |estraat 186.8261| 00013a20 20 43 57 20 4b 61 6d 70 65 6e 0a 54 68 65 20 4e | CW Kampen.The N| 00013a30 65 74 68 65 72 6c 61 6e 64 73 0a 0a 46 6f 72 20 |etherlands..For | 00013a40 74 68 65 20 27 46 6f 6e 74 4d 65 6e 75 27 20 6d |the 'FontMenu' m| 00013a50 6f 64 75 6c 65 0a 77 68 69 63 68 20 61 6c 6c 6f |odule.which allo| 00013a60 77 73 20 74 68 65 20 73 65 6e 73 69 62 6c 65 0a |ws the sensible.| 00013a70 63 68 6f 6f 73 69 6e 67 20 6f 66 20 6f 75 74 6c |choosing of outl| 00013a80 69 6e 65 20 66 6f 6e 74 0a 6e 61 6d 65 73 2e 55 |ine font.names.U| 00013a90 73 65 72 20 46 4e 20 28 50 52 4f 43 73 68 65 6c |ser FN (PROCshel| 00013aa0 6c 5f 41 74 74 61 63 68 46 6f 6e 74 53 75 62 4d |l_AttachFontSubM| 00013ab0 65 6e 75 29 20 0a 50 61 72 61 6d 73 20 3d 3e 20 |enu) .Params => | 00013ac0 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 69 |. int wi| 00013ad0 6e 64 6f 77 20 68 61 6e 64 6c 65 0a 20 20 20 20 |ndow handle. | 00013ae0 20 20 20 20 20 69 6e 74 20 69 63 6f 6e 20 68 61 | int icon ha| 00013af0 6e 64 6c 65 0a 0a 20 20 20 20 20 20 20 5c 3c 3d |ndle.. \<=| 00013b00 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 6a 75 |. int ju| 00013b10 6e 6b 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |nk..This functio| 00013b20 6e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f |n can be used to| 00013b30 20 73 65 74 20 74 68 65 20 63 75 72 72 65 6e 74 | set the current| 00013b40 6c 79 0a 73 65 6c 65 63 74 65 64 20 66 6f 6e 74 |ly.selected font| 00013b50 20 69 6e 20 74 68 65 20 6d 65 6e 75 20 61 62 6f | in the menu abo| 00013b60 75 74 20 74 6f 20 62 65 20 6f 70 65 6e 65 64 2e |ut to be opened.| 00013b70 0a 55 73 65 20 3c 50 52 4f 43 73 68 65 6c 6c 5f |.Use <PROCshell_| 00013b80 46 6f 6e 74 4d 65 6e 75 53 65 6c 65 63 74 46 6f |FontMenuSelectFo| 00013b90 6e 74 3e 20 74 6f 20 64 6f 20 74 68 69 73 2e 20 |nt> to do this. | 00013ba0 4f 75 74 6c 69 6e 65 20 46 6f 6e 74 73 0a 54 68 |Outline Fonts.Th| 00013bb0 65 20 45 76 6e 74 53 68 65 6c 6c 20 4c 69 62 72 |e EvntShell Libr| 00013bc0 61 72 79 20 73 75 70 70 6f 72 74 73 20 4f 75 74 |ary supports Out| 00013bd0 6c 69 6e 65 20 46 6f 6e 74 73 20 69 6e 20 74 77 |line Fonts in tw| 00013be0 6f 20 77 61 79 73 20 61 74 20 74 68 65 0a 6d 6f |o ways at the.mo| 00013bf0 6d 65 6e 74 2e 20 46 69 72 73 74 6c 79 20 3c 4a |ment. Firstly <J| 00013c00 6f 72 69 73 20 52 6f 6c 69 6e 67 27 73 3d 3e 6a |oris Roling's=>j| 00013c10 6f 72 69 73 3e 20 46 6f 6e 74 4d 65 6e 75 20 6d |oris> FontMenu m| 00013c20 6f 64 75 6c 65 20 69 73 20 75 73 65 64 0a 74 6f |odule is used.to| 00013c30 20 64 69 73 70 6c 61 79 20 61 20 6d 65 6e 75 20 | display a menu | 00013c40 6f 66 20 61 6c 6c 20 61 76 61 69 6c 61 62 6c 65 |of all available| 00013c50 20 66 6f 6e 74 73 20 6f 6e 20 74 68 65 20 73 79 | fonts on the sy| 00013c60 73 74 65 6d 2c 20 61 6e 64 0a 73 65 63 6f 6e 64 |stem, and.second| 00013c70 6c 79 20 74 68 65 20 77 69 6e 64 6f 77 20 74 65 |ly the window te| 00013c80 6d 70 6c 61 74 65 20 6c 6f 61 64 69 6e 67 20 72 |mplate loading r| 00013c90 6f 75 74 69 6e 65 20 61 6c 6c 6f 77 73 20 69 63 |outine allows ic| 00013ca0 6f 6e 73 20 61 6e 64 0a 77 69 6e 64 6f 77 20 74 |ons and.window t| 00013cb0 69 74 6c 65 73 20 74 6f 20 75 73 65 20 66 6f 6e |itles to use fon| 00013cc0 74 73 2e 0a 0a 52 6f 75 74 69 6e 65 73 20 61 72 |ts...Routines ar| 00013cd0 65 20 70 72 6f 76 69 64 65 64 20 74 6f 20 61 74 |e provided to at| 00013ce0 74 61 63 68 20 61 20 66 6f 6e 74 20 6d 65 6e 75 |tach a font menu| 00013cf0 20 74 6f 20 61 6e 20 65 78 69 73 74 69 6e 67 20 | to an existing | 00013d00 6d 65 6e 75 0a 61 73 20 61 20 73 75 62 6d 65 6e |menu.as a submen| 00013d10 75 20 28 3c 50 52 4f 43 73 68 65 6c 6c 5f 41 74 |u (<PROCshell_At| 00013d20 74 61 63 68 46 6f 6e 74 53 75 62 4d 65 6e 75 3e |tachFontSubMenu>| 00013d30 29 2c 20 6f 72 20 74 6f 20 6f 70 65 6e 20 74 68 |), or to open th| 00013d40 65 20 66 6f 6e 74 0a 6d 65 6e 75 20 61 73 20 61 |e font.menu as a| 00013d50 20 6d 65 6e 75 20 69 6e 20 69 74 73 20 6f 77 6e | menu in its own| 00013d60 20 72 69 67 68 74 20 28 3c 50 52 4f 43 73 68 65 | right (<PROCshe| 00013d70 6c 6c 5f 41 74 74 61 63 68 46 6f 6e 74 4d 65 6e |ll_AttachFontMen| 00013d80 75 3e 29 2e 20 49 66 0a 74 68 65 20 75 73 65 72 |u>). If.the user| 00013d90 20 6d 61 6b 65 73 20 61 20 76 61 6c 69 64 20 66 | makes a valid f| 00013da0 6f 6e 74 20 73 65 6c 65 63 74 69 6f 6e 20 74 68 |ont selection th| 00013db0 65 20 66 6f 6e 74 20 6e 61 6d 65 20 63 61 6e 20 |e font name can | 00013dc0 62 65 0a 72 65 74 72 69 65 76 65 64 20 28 77 69 |be.retrieved (wi| 00013dd0 74 68 20 3c 46 4e 73 68 65 6c 6c 5f 46 6f 6e 74 |th <FNshell_Font| 00013de0 4d 65 6e 75 47 65 74 4c 61 73 74 53 65 6c 65 63 |MenuGetLastSelec| 00013df0 74 65 64 46 6f 6e 74 3e 29 20 66 6f 72 20 75 73 |tedFont>) for us| 00013e00 65 20 69 6e 0a 74 68 65 20 75 73 65 72 20 61 70 |e in.the user ap| 00013e10 70 6c 69 63 61 74 69 6f 6e 2e 20 43 68 61 6e 67 |plication. Chang| 00013e20 65 73 20 74 6f 20 74 68 65 20 46 6f 6e 74 24 50 |es to the Font$P| 00013e30 61 74 68 20 76 61 72 69 61 62 6c 65 20 73 75 63 |ath variable suc| 00013e40 68 20 61 73 0a 61 64 64 69 6e 67 20 6f 72 20 72 |h as.adding or r| 00013e50 65 6d 6f 76 69 6e 67 20 66 6f 6e 74 20 64 69 72 |emoving font dir| 00013e60 65 63 74 6f 72 69 65 73 20 61 72 65 20 64 65 74 |ectories are det| 00013e70 65 63 74 65 64 20 61 6e 64 20 74 68 65 20 66 6f |ected and the fo| 00013e80 6e 74 20 6d 65 6e 75 0a 72 65 62 75 69 6c 74 20 |nt menu.rebuilt | 00013e90 61 73 20 6e 65 63 65 73 73 61 72 79 2e 0a 0a 49 |as necessary...I| 00013ea0 74 20 77 69 6c 6c 20 6e 6f 74 2c 20 68 6f 77 65 |t will not, howe| 00013eb0 76 65 72 2c 20 64 65 74 65 63 74 20 66 6f 6e 74 |ver, detect font| 00013ec0 73 20 62 65 69 6e 67 20 61 64 64 65 64 20 6f 72 |s being added or| 00013ed0 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 61 6e | removed from an| 00013ee0 0a 65 78 69 73 74 69 6e 67 20 66 6f 6e 74 20 64 |.existing font d| 00013ef0 69 72 65 63 74 6f 72 79 20 77 68 69 6c 65 20 74 |irectory while t| 00013f00 68 65 20 45 76 6e 74 53 68 65 6c 6c 20 61 70 70 |he EvntShell app| 00013f10 6c 69 63 61 74 69 6f 6e 20 69 73 0a 72 75 6e 6e |lication is.runn| 00013f20 69 6e 67 2e 20 49 74 20 61 70 70 65 61 72 73 20 |ing. It appears | 00013f30 74 68 61 74 20 61 20 72 65 2d 62 6f 6f 74 20 69 |that a re-boot i| 00013f40 73 20 72 65 71 75 69 72 65 64 20 74 6f 20 73 6f |s required to so| 00013f50 72 74 20 74 68 69 6e 67 73 20 6f 75 74 0a 61 66 |rt things out.af| 00013f60 74 65 72 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 |ter the contents| 00013f70 20 6f 66 20 74 68 65 20 66 6f 6e 74 20 64 69 72 | of the font dir| 00013f80 65 63 74 6f 72 69 65 73 20 68 61 76 65 20 63 68 |ectories have ch| 00013f90 61 6e 67 65 64 2e 20 4f 68 20 77 65 6c 6c 2c 0a |anged. Oh well,.| 00013fa0 69 74 20 73 65 65 6d 73 20 74 68 61 74 20 61 20 |it seems that a | 00013fb0 6c 6f 74 20 6f 66 20 6f 74 68 65 72 20 61 70 70 |lot of other app| 00013fc0 6c 69 63 61 74 69 6f 6e 73 20 63 61 6e 27 74 20 |lications can't | 00013fd0 63 6f 70 65 20 77 69 74 68 20 74 68 69 73 0a 65 |cope with this.e| 00013fe0 69 74 68 65 72 21 0a 0a 54 68 65 20 46 6f 6e 74 |ither!..The Font| 00013ff0 4d 65 6e 75 20 6d 6f 64 75 6c 65 20 63 72 65 61 |Menu module crea| 00014000 74 65 73 20 61 20 6d 65 6e 75 20 69 6e 20 74 68 |tes a menu in th| 00014010 65 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 6d 6f |e relocatable mo| 00014020 64 75 6c 65 20 61 72 65 61 0a 77 68 69 63 68 20 |dule area.which | 00014030 69 73 20 73 68 61 72 65 64 20 62 65 74 77 65 65 |is shared betwee| 00014040 6e 20 61 6c 6c 20 61 70 70 6c 69 63 61 74 69 6f |n all applicatio| 00014050 6e 73 20 77 69 73 68 69 6e 67 20 74 6f 20 75 73 |ns wishing to us| 00014060 65 20 69 74 2e 20 41 73 20 61 0a 66 6f 6e 74 20 |e it. As a.font | 00014070 6d 65 6e 75 20 70 6f 74 65 6e 74 69 61 6c 6c 79 |menu potentially| 00014080 20 74 61 6b 65 73 20 75 70 20 61 20 6c 6f 74 20 | takes up a lot | 00014090 6f 66 20 73 70 61 63 65 20 74 68 69 73 20 69 73 |of space this is| 000140a0 20 61 20 76 65 72 79 0a 65 66 66 69 63 69 65 6e | a very.efficien| 000140b0 74 20 77 61 79 20 6f 66 20 68 61 6e 64 6c 69 6e |t way of handlin| 000140c0 67 20 69 74 2c 20 65 73 70 65 63 69 61 6c 6c 79 |g it, especially| 000140d0 20 61 73 20 74 68 65 20 6d 65 6e 75 20 69 73 20 | as the menu is | 000140e0 6c 61 69 64 20 6f 75 74 0a 73 6f 20 74 68 61 74 |laid out.so that| 000140f0 20 69 74 20 69 73 20 65 61 73 69 65 72 20 74 6f | it is easier to| 00014100 20 75 73 65 20 74 68 61 6e 20 61 20 73 74 72 61 | use than a stra| 00014110 69 67 68 74 20 6c 69 73 74 20 6f 66 20 66 6f 6e |ight list of fon| 00014120 74 73 2e 0a 0a 41 20 68 65 6c 70 20 73 79 73 74 |ts...A help syst| 00014130 65 6d 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 |em containing th| 00014140 65 20 66 75 6c 6c 20 3c 46 6f 6e 74 4d 65 6e 75 |e full <FontMenu| 00014150 20 64 6f 63 75 6d 65 6e 74 69 6f 6e 3d 3e 46 6f | documention=>Fo| 00014160 6e 74 4d 65 6e 75 2e 24 3e 20 69 73 0a 73 75 70 |ntMenu.$> is.sup| 00014170 70 6c 69 65 64 20 77 69 74 68 20 74 68 65 20 45 |plied with the E| 00014180 76 6e 74 53 68 65 6c 6c 20 6c 69 62 72 61 72 79 |vntShell library| 00014190 20 61 73 20 69 74 20 69 73 20 61 20 72 65 71 75 | as it is a requ| 000141a0 69 72 65 6d 65 6e 74 20 74 68 61 74 0a 74 68 65 |irement that.the| 000141b0 20 74 68 65 20 6d 6f 64 75 6c 65 20 61 6e 64 20 | the module and | 000141c0 69 74 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f |its documentatio| 000141d0 6e 20 6d 75 73 74 20 62 65 20 73 75 70 70 6c 69 |n must be suppli| 000141e0 65 64 20 74 6f 67 65 74 68 65 72 2e 0a 48 6f 77 |ed together..How| 000141f0 65 76 65 72 2c 20 69 74 20 69 73 20 75 6e 6c 69 |ever, it is unli| 00014200 6b 65 6c 79 20 74 68 61 74 20 74 68 65 20 53 57 |kely that the SW| 00014210 49 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 |Is provided by t| 00014220 68 65 20 6d 6f 64 75 6c 65 20 77 69 6c 6c 0a 6e |he module will.n| 00014230 65 65 64 20 74 6f 20 62 65 20 63 61 6c 6c 65 64 |eed to be called| 00014240 20 62 79 20 74 68 65 20 75 73 65 72 20 61 70 70 | by the user app| 00014250 6c 69 63 61 74 69 6f 6e 20 61 73 20 74 68 65 20 |lication as the | 00014260 6c 69 62 72 61 72 79 20 63 6f 64 65 0a 70 65 72 |library code.per| 00014270 66 6f 72 6d 73 20 74 68 65 20 6e 65 63 65 73 73 |forms the necess| 00014280 61 72 79 20 61 63 74 69 6f 6e 73 2e 0a 0a 54 68 |ary actions...Th| 00014290 65 20 65 78 61 6d 70 6c 65 20 61 70 70 6c 69 63 |e example applic| 000142a0 61 74 69 6f 6e 20 21 52 65 64 72 61 77 20 64 65 |ation !Redraw de| 000142b0 6d 6f 6e 73 74 72 61 74 65 73 20 74 68 65 20 75 |monstrates the u| 000142c0 73 65 20 6f 66 0a 74 68 65 73 65 20 72 6f 75 74 |se of.these rout| 000142d0 69 6e 65 73 2e 4f 75 74 6c 69 6e 65 20 46 6f 6e |ines.Outline Fon| 000142e0 74 73 0a 3c 41 74 74 61 63 68 46 6f 6e 74 53 75 |ts.<AttachFontSu| 000142f0 62 4d 65 6e 75 20 20 20 20 20 20 20 20 20 20 3d |bMenu =| 00014300 3e 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 |>PROCshell_Attac| 00014310 68 46 6f 6e 74 53 75 62 4d 65 6e 75 3e 0a 3c 46 |hFontSubMenu>.<F| 00014320 6f 6e 74 4d 65 6e 75 47 65 74 4c 61 73 74 53 65 |ontMenuGetLastSe| 00014330 6c 65 63 74 65 64 46 6f 6e 74 3d 3e 46 4e 73 68 |lectedFont=>FNsh| 00014340 65 6c 6c 5f 46 6f 6e 74 4d 65 6e 75 47 65 74 4c |ell_FontMenuGetL| 00014350 61 73 74 53 65 6c 65 63 74 65 64 46 6f 6e 74 3e |astSelectedFont>| 00014360 0a 3c 46 6f 6e 74 4d 65 6e 75 53 65 6c 65 63 74 |.<FontMenuSelect| 00014370 46 6f 6e 74 20 20 20 20 20 20 20 20 20 3d 3e 50 |Font =>P| 00014380 52 4f 43 73 68 65 6c 6c 5f 46 6f 6e 74 4d 65 6e |ROCshell_FontMen| 00014390 75 53 65 6c 65 63 74 46 6f 6e 74 3e 50 52 4f 43 |uSelectFont>PROC| 000143a0 73 68 65 6c 6c 5f 46 6f 6e 74 4d 65 6e 75 53 65 |shell_FontMenuSe| 000143b0 6c 65 63 74 46 6f 6e 74 28 29 0a 50 61 72 61 6d |lectFont().Param| 000143c0 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 73 74 |s =>. st| 000143d0 72 20 6e 61 6d 65 20 6f 66 20 66 6f 6e 74 20 74 |r name of font t| 000143e0 6f 20 73 65 6c 65 63 74 0a 0a 54 68 65 20 66 6f |o select..The fo| 000143f0 6e 74 20 6e 61 6d 65 20 69 73 20 75 73 65 64 20 |nt name is used | 00014400 62 79 20 74 68 65 20 6c 69 62 72 61 72 79 20 72 |by the library r| 00014410 6f 75 74 69 6e 65 73 0a 74 6f 20 64 65 63 69 64 |outines.to decid| 00014420 65 20 77 68 69 63 68 20 66 6f 6e 74 20 6e 61 6d |e which font nam| 00014430 65 20 74 6f 20 73 65 6c 65 63 74 20 77 68 65 6e |e to select when| 00014440 20 74 68 65 0a 66 6f 6e 74 20 6d 65 6e 75 20 6f | the.font menu o| 00014450 70 65 6e 73 2e 20 41 73 20 74 68 65 20 73 61 6d |pens. As the sam| 00014460 65 20 66 6f 6e 74 20 6d 65 6e 75 20 63 61 6e 20 |e font menu can | 00014470 62 65 0a 75 73 65 64 20 62 79 20 64 69 66 66 65 |be.used by diffe| 00014480 72 65 6e 74 20 61 70 70 6c 69 63 61 74 69 6f 6e |rent application| 00014490 73 20 69 74 20 69 73 20 69 6d 70 6f 72 74 61 6e |s it is importan| 000144a0 74 0a 74 6f 20 73 65 74 20 74 68 69 73 20 75 70 |t.to set this up| 000144b0 20 6a 75 73 74 20 62 65 66 6f 72 65 20 74 68 65 | just before the| 000144c0 20 6d 65 6e 75 20 6f 70 65 6e 73 2e 0a 0a 4c 69 | menu opens...Li| 000144d0 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c |brary Group => <| 000144e0 46 6f 6e 74 73 3d 3e 4c 69 62 47 72 6f 75 70 46 |Fonts=>LibGroupF| 000144f0 6f 6e 74 73 3e 46 4e 73 68 65 6c 6c 5f 46 6f 6e |onts>FNshell_Fon| 00014500 74 4d 65 6e 75 47 65 74 4c 61 73 74 53 65 6c 65 |tMenuGetLastSele| 00014510 63 74 65 64 46 6f 6e 74 0a 50 61 72 61 6d 73 20 |ctedFont.Params | 00014520 3d 3e 0a 20 20 20 20 20 20 20 20 20 4e 6f 6e 65 |=>. None| 00014530 0a 0a 20 20 20 20 20 20 20 5c 3c 3d 0a 20 20 20 |.. \<=. | 00014540 20 20 20 20 20 20 73 74 72 20 66 6f 6e 74 20 6e | str font n| 00014550 61 6d 65 20 28 63 6f 75 6c 64 20 62 65 20 22 22 |ame (could be ""| 00014560 29 0a 0a 54 68 69 73 20 72 6f 75 74 69 6e 65 20 |)..This routine | 00014570 73 68 6f 75 6c 64 20 62 65 20 75 73 65 64 20 69 |should be used i| 00014580 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a 63 |n the function.c| 00014590 61 6c 6c 65 64 20 77 68 65 6e 20 61 20 6d 65 6e |alled when a men| 000145a0 75 5f 73 65 6c 65 63 74 20 65 76 65 6e 74 20 68 |u_select event h| 000145b0 61 73 20 6f 63 63 75 72 72 65 64 20 74 6f 0a 64 |as occurred to.d| 000145c0 69 73 63 6f 76 65 72 20 69 66 20 66 6f 6e 74 20 |iscover if font | 000145d0 6d 65 6e 75 20 73 65 6c 65 63 74 69 6f 6e 20 68 |menu selection h| 000145e0 61 73 20 62 65 65 6e 20 6d 61 64 65 2c 0a 61 6e |as been made,.an| 000145f0 64 20 69 66 20 73 6f 20 74 68 65 20 6e 61 6d 65 |d if so the name| 00014600 20 6f 66 20 74 68 65 20 66 6f 6e 74 2e 0a 0a 49 | of the font...I| 00014610 66 20 6e 6f 20 76 61 6c 69 64 20 66 6f 6e 74 20 |f no valid font | 00014620 6d 65 6e 75 20 73 65 6c 65 63 74 69 6f 6e 20 68 |menu selection h| 00014630 61 73 20 62 65 65 6e 20 6d 61 64 65 0a 74 68 65 |as been made.the| 00014640 20 66 75 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 72 | function will r| 00014650 65 74 75 72 6e 20 22 22 20 61 6e 64 20 6e 6f 20 |eturn "" and no | 00014660 61 63 74 69 6f 6e 20 73 68 6f 75 6c 64 0a 62 65 |action should.be| 00014670 20 74 61 6b 65 6e 2e 0a 0a 4c 69 62 72 61 72 79 | taken...Library| 00014680 20 47 72 6f 75 70 20 3d 3e 20 3c 46 6f 6e 74 73 | Group => <Fonts| 00014690 3d 3e 4c 69 62 47 72 6f 75 70 46 6f 6e 74 73 3e |=>LibGroupFonts>| 000146a0 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 44 65 |PROCshell_IconDe| 000146b0 6c 65 74 65 28 29 0a 50 61 72 61 6d 73 20 3d 3e |lete().Params =>| 000146c0 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 69 |. int wi| 000146d0 6e 64 6f 77 20 68 61 6e 64 6c 65 0a 20 20 20 20 |ndow handle. | 000146e0 20 20 20 20 20 69 6e 74 20 69 63 6f 6e 20 68 61 | int icon ha| 000146f0 6e 64 6c 65 0a 0a 54 68 69 73 20 63 61 6c 6c 20 |ndle..This call | 00014700 66 72 65 65 73 20 61 6e 79 20 6d 65 6d 6f 72 79 |frees any memory| 00014710 20 75 73 65 64 20 66 6f 72 20 69 6e 64 69 72 65 | used for indire| 00014720 63 74 65 64 20 64 61 74 61 0a 61 6e 64 20 76 61 |cted data.and va| 00014730 6c 69 64 61 74 69 6f 6e 20 73 74 72 69 6e 67 73 |lidation strings| 00014740 2e 20 54 68 65 20 77 69 6e 64 6f 77 20 61 72 65 |. The window are| 00014750 61 20 63 6f 76 65 72 65 64 20 62 79 0a 74 68 65 |a covered by.the| 00014760 20 69 63 6f 6e 20 28 69 6e 63 6c 75 64 69 6e 67 | icon (including| 00014770 20 61 6e 79 20 33 44 20 62 6f 72 64 65 72 73 29 | any 3D borders)| 00014780 20 69 73 20 6e 6f 74 20 72 65 64 72 61 77 6e 2e | is not redrawn.| 00014790 0a 55 73 65 20 3c 50 52 4f 43 73 68 65 6c 6c 5f |.Use <PROCshell_| 000147a0 49 63 6f 6e 44 65 6c 65 74 65 32 3e 20 74 6f 20 |IconDelete2> to | 000147b0 64 65 6c 65 74 65 20 74 68 65 20 69 63 6f 6e 20 |delete the icon | 000147c0 61 6e 64 0a 72 65 64 72 61 77 20 74 68 65 20 77 |and.redraw the w| 000147d0 69 6e 64 6f 77 20 61 72 65 61 2e 0a 0a 4c 69 62 |indow area...Lib| 000147e0 72 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 49 |rary Group => <I| 000147f0 63 6f 6e 73 3d 3e 4c 69 62 47 72 6f 75 70 49 63 |cons=>LibGroupIc| 00014800 6f 6e 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 41 74 |ons>PROCshell_At| 00014810 74 61 63 68 46 6f 6e 74 4d 65 6e 75 28 29 0a 50 |tachFontMenu().P| 00014820 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 |arams =>. | 00014830 20 20 73 74 72 20 6d 65 6e 75 20 73 74 72 69 6e | str menu strin| 00014840 67 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 3c |g. str <| 00014850 66 75 6e 63 74 69 6f 6e 3d 3e 55 73 65 72 46 4e |function=>UserFN| 00014860 31 39 3e 20 74 6f 20 63 61 6c 6c 20 77 68 65 6e |19> to call when| 00014870 20 6d 65 6e 75 5f 73 65 6c 65 63 74 0a 20 20 20 | menu_select. | 00014880 20 20 20 20 20 20 20 20 20 20 65 76 65 6e 74 20 | event | 00014890 6f 63 63 75 72 73 20 28 6f 70 74 69 6f 6e 61 6c |occurs (optional| 000148a0 2c 20 6d 61 79 20 62 65 20 22 22 29 0a 0a 55 73 |, may be "")..Us| 000148b0 65 20 74 68 69 73 20 72 6f 75 74 69 6e 65 20 74 |e this routine t| 000148c0 6f 20 61 74 74 61 63 68 20 74 68 65 20 46 6f 6e |o attach the Fon| 000148d0 74 4d 65 6e 75 20 74 6f 20 61 6e 20 69 63 6f 6e |tMenu to an icon| 000148e0 20 6f 72 0a 61 20 77 69 6e 64 6f 77 2e 20 41 74 | or.a window. At| 000148f0 74 61 63 68 20 74 68 65 20 46 6f 6e 74 4d 65 6e |tach the FontMen| 00014900 75 20 74 6f 20 61 6e 20 65 78 69 73 74 69 6e 67 |u to an existing| 00014910 20 6d 65 6e 75 0a 73 74 72 75 63 74 75 72 65 20 | menu.structure | 00014920 77 69 74 68 20 3c 50 52 4f 43 73 68 65 6c 6c 5f |with <PROCshell_| 00014930 41 74 74 61 63 68 46 6f 6e 74 53 75 62 4d 65 6e |AttachFontSubMen| 00014940 75 3e 2e 0a 0a 54 68 69 73 20 72 6f 75 74 69 6e |u>...This routin| 00014950 65 20 77 69 6c 6c 20 61 74 74 65 6d 70 74 20 74 |e will attempt t| 00014960 6f 20 6c 6f 61 64 20 74 68 65 20 6e 65 63 65 73 |o load the neces| 00014970 73 61 72 79 0a 27 46 6f 6e 74 4d 65 6e 75 27 20 |sary.'FontMenu' | 00014980 73 75 70 70 6f 72 74 20 6d 6f 64 75 6c 65 20 69 |support module i| 00014990 66 20 69 74 20 69 73 20 6e 6f 74 20 61 6c 72 65 |f it is not alre| 000149a0 61 64 79 0a 6c 6f 61 64 65 64 2e 20 49 74 20 65 |ady.loaded. It e| 000149b0 78 70 65 63 74 73 20 74 6f 20 66 69 6e 64 20 69 |xpects to find i| 000149c0 74 20 69 6e 20 74 68 65 0a 45 76 6e 74 53 68 65 |t in the.EvntShe| 000149d0 6c 6c 53 79 73 74 65 6d 24 50 61 74 68 20 28 75 |llSystem$Path (u| 000149e0 73 75 61 6c 6c 79 20 69 6e 20 21 53 68 65 6c 6c |sually in !Shell| 000149f0 53 79 73 29 2e 0a 0a 4c 69 62 72 61 72 79 20 47 |Sys)...Library G| 00014a00 72 6f 75 70 20 3d 3e 20 3c 4d 65 6e 75 73 3d 3e |roup => <Menus=>| 00014a10 4c 69 62 47 72 6f 75 70 4d 65 6e 75 73 3e 2c 3c |LibGroupMenus>,<| 00014a20 46 6f 6e 74 73 3d 3e 4c 69 62 47 72 6f 75 70 46 |Fonts=>LibGroupF| 00014a30 6f 6e 74 73 3e 55 73 65 72 20 46 4e 20 28 50 52 |onts>User FN (PR| 00014a40 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 46 6f |OCshell_AttachFo| 00014a50 6e 74 4d 65 6e 75 29 20 0a 50 61 72 61 6d 73 20 |ntMenu) .Params | 00014a60 3d 3e 20 0a 20 20 20 20 20 20 20 20 20 73 74 72 |=> . str| 00014a70 20 73 65 6c 65 63 74 69 6f 6e 20 73 74 72 69 6e | selection strin| 00014a80 67 0a 0a 20 20 20 20 20 20 20 5c 3c 3d 0a 20 20 |g.. \<=. | 00014a90 20 20 20 20 20 20 20 69 6e 74 20 6a 75 6e 6b 0a | int junk.| 00014aa0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 |.This function c| 00014ab0 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 64 69 |an be used to di| 00014ac0 73 63 6f 76 65 72 20 74 68 65 20 6e 61 6d 65 0a |scover the name.| 00014ad0 6f 66 20 74 68 65 20 66 6f 6e 74 20 28 69 66 20 |of the font (if | 00014ae0 61 6e 79 29 20 74 68 61 74 20 68 61 73 20 62 65 |any) that has be| 00014af0 65 6e 20 73 65 6c 65 63 74 65 64 20 69 6e 0a 74 |en selected in.t| 00014b00 68 65 20 46 6f 6e 74 4d 65 6e 75 2e 20 55 73 65 |he FontMenu. Use| 00014b10 20 3c 46 4e 73 68 65 6c 6c 5f 46 6f 6e 74 4d 65 | <FNshell_FontMe| 00014b20 6e 75 47 65 74 4c 61 73 74 53 65 6c 65 63 74 65 |nuGetLastSelecte| 00014b30 64 46 6f 6e 74 3e 0a 66 6f 72 20 74 68 69 73 2e |dFont>.for this.| 00014b40 55 70 64 61 74 65 64 20 57 69 6e 64 6f 77 20 48 |Updated Window H| 00014b50 61 6e 64 6c 65 73 0a 41 73 20 74 68 69 73 20 72 |andles.As this r| 00014b60 6f 75 74 69 6e 65 20 64 65 6c 65 74 65 73 20 61 |outine deletes a| 00014b70 6e 64 20 72 65 63 72 65 61 74 65 73 20 74 68 65 |nd recreates the| 00014b80 20 77 69 6e 64 6f 77 0a 69 74 20 69 73 20 70 6f | window.it is po| 00014b90 73 73 69 62 6c 65 20 74 68 61 74 20 74 68 65 20 |ssible that the | 00014ba0 57 49 4d 50 20 77 69 6c 6c 20 61 6c 6c 6f 63 61 |WIMP will alloca| 00014bb0 74 65 20 61 20 6e 65 77 0a 77 69 6e 64 6f 77 20 |te a new.window | 00014bc0 68 61 6e 64 6c 65 2e 20 54 68 65 20 45 76 6e 74 |handle. The Evnt| 00014bd0 53 68 65 6c 6c 20 6c 69 62 72 61 72 79 20 77 69 |Shell library wi| 00014be0 6c 6c 20 64 65 74 65 63 74 0a 74 68 69 73 20 61 |ll detect.this a| 00014bf0 6e 64 20 75 70 64 61 74 65 20 74 68 65 20 72 65 |nd update the re| 00014c00 67 69 73 74 65 72 65 64 20 65 76 65 6e 74 73 20 |gistered events | 00014c10 61 73 20 6e 65 63 65 73 73 61 72 79 2e 0a 0a 54 |as necessary...T| 00014c20 68 65 20 75 73 65 72 20 61 70 70 6c 69 63 61 74 |he user applicat| 00014c30 69 6f 6e 20 6d 75 73 74 20 6e 6f 74 65 20 61 6e |ion must note an| 00014c40 64 20 75 73 65 20 74 68 65 20 6e 65 77 0a 68 61 |d use the new.ha| 00014c50 6e 64 6c 65 20 69 74 73 65 6c 66 2c 20 68 6f 77 |ndle itself, how| 00014c60 65 76 65 72 21 46 4e 73 68 65 6c 6c 5f 49 63 6f |ever!FNshell_Ico| 00014c70 6e 4d 6f 76 65 28 29 0a 50 61 72 61 6d 73 20 3d |nMove().Params =| 00014c80 3e 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 |>. int w| 00014c90 69 6e 64 6f 77 20 68 61 6e 64 6c 65 20 20 0a 20 |indow handle . | 00014ca0 20 20 20 20 20 20 20 20 69 6e 74 20 69 63 6f 6e | int icon| 00014cb0 20 68 61 6e 64 6c 65 0a 20 20 20 20 20 20 20 20 | handle. | 00014cc0 20 69 6e 74 20 6d 69 6e 20 78 20 63 6f 6f 72 64 | int min x coord| 00014cd0 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 6d 69 |. int mi| 00014ce0 6e 20 79 20 63 6f 6f 72 64 0a 20 20 20 20 20 20 |n y coord. | 00014cf0 20 20 20 69 6e 74 20 6d 61 78 20 78 20 63 6f 6f | int max x coo| 00014d00 72 64 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 |rd. int | 00014d10 6d 61 79 20 79 20 63 6f 6f 72 64 0a 0a 20 20 20 |may y coord.. | 00014d20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 | \<=. | 00014d30 20 69 6e 74 20 69 63 6f 6e 20 68 61 6e 64 6c 65 | int icon handle| 00014d40 0a 0a 41 6c 6c 6f 77 73 20 74 68 65 20 72 65 64 |..Allows the red| 00014d50 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 61 6e 20 |efinition of an | 00014d60 69 63 6f 6e 27 73 20 62 6f 75 6e 64 69 6e 67 0a |icon's bounding.| 00014d70 62 6f 78 2e 20 41 73 20 74 68 65 20 69 63 6f 6e |box. As the icon| 00014d80 20 68 61 73 20 74 6f 20 62 65 20 64 65 6c 65 74 | has to be delet| 00014d90 65 64 20 61 6e 64 20 74 68 65 6e 0a 72 65 63 72 |ed and then.recr| 00014da0 65 61 74 65 64 20 69 74 20 72 65 74 75 72 6e 73 |eated it returns| 00014db0 20 74 68 65 20 6e 65 77 20 69 63 6f 6e 20 68 61 | the new icon ha| 00014dc0 6e 64 6c 65 20 28 77 68 69 63 68 0a 73 68 6f 75 |ndle (which.shou| 00014dd0 6c 64 20 62 65 20 74 68 65 20 73 61 6d 65 20 61 |ld be the same a| 00014de0 73 20 74 68 65 20 6f 6c 64 20 68 61 6e 64 6c 65 |s the old handle| 00014df0 29 2e 20 54 68 65 20 69 63 6f 6e 0a 69 73 20 72 |). The icon.is r| 00014e00 65 64 72 61 77 6e 20 61 66 74 65 72 20 72 65 73 |edrawn after res| 00014e10 69 7a 69 6e 67 2c 20 74 61 6b 69 6e 67 20 61 63 |izing, taking ac| 00014e20 63 6f 75 6e 74 20 6f 66 20 61 6e 79 0a 33 44 20 |count of any.3D | 00014e30 62 6f 72 64 65 72 73 2e 0a 0a 4c 69 62 72 61 72 |borders...Librar| 00014e40 79 20 47 72 6f 75 70 20 3d 3e 20 3c 49 63 6f 6e |y Group => <Icon| 00014e50 73 3d 3e 4c 69 62 47 72 6f 75 70 49 63 6f 6e 73 |s=>LibGroupIcons| 00014e60 3e 46 4e 73 68 65 6c 6c 5f 49 63 6f 6e 4d 6f 76 |>FNshell_IconMov| 00014e70 65 32 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 |e2().Params =>. | 00014e80 20 20 20 20 20 20 20 20 69 6e 74 20 77 69 6e 64 | int wind| 00014e90 6f 77 20 68 61 6e 64 6c 65 20 20 0a 20 20 20 20 |ow handle . | 00014ea0 20 20 20 20 20 69 6e 74 20 69 63 6f 6e 20 68 61 | int icon ha| 00014eb0 6e 64 6c 65 0a 20 20 20 20 20 20 20 20 20 69 6e |ndle. in| 00014ec0 74 20 78 20 64 69 73 70 6c 61 63 65 6d 65 6e 74 |t x displacement| 00014ed0 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 79 20 |. int y | 00014ee0 64 69 73 70 6c 61 63 65 6d 65 6e 74 0a 0a 20 20 |displacement.. | 00014ef0 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 | \<=. | 00014f00 20 20 69 6e 74 20 69 63 6f 6e 20 68 61 6e 64 6c | int icon handl| 00014f10 65 0a 0a 41 6c 6c 6f 77 73 20 61 6e 20 69 63 6f |e..Allows an ico| 00014f20 6e 20 74 6f 20 62 65 20 6d 6f 76 65 64 20 61 72 |n to be moved ar| 00014f30 6f 75 6e 64 20 74 68 65 20 77 69 6e 64 6f 77 2e |ound the window.| 00014f40 0a 41 73 20 74 68 65 20 69 63 6f 6e 20 68 61 73 |.As the icon has| 00014f50 20 74 6f 20 62 65 20 64 65 6c 65 74 65 64 20 61 | to be deleted a| 00014f60 6e 64 20 74 68 65 6e 0a 72 65 63 72 65 61 74 65 |nd then.recreate| 00014f70 64 20 69 74 20 72 65 74 75 72 6e 73 20 74 68 65 |d it returns the| 00014f80 20 6e 65 77 20 69 63 6f 6e 20 68 61 6e 64 6c 65 | new icon handle| 00014f90 20 28 77 68 69 63 68 0a 73 68 6f 75 6c 64 20 62 | (which.should b| 00014fa0 65 20 74 68 65 20 73 61 6d 65 20 61 73 20 74 68 |e the same as th| 00014fb0 65 20 6f 6c 64 20 68 61 6e 64 6c 65 29 2e 20 54 |e old handle). T| 00014fc0 68 65 20 69 63 6f 6e 0a 69 73 20 72 65 64 72 61 |he icon.is redra| 00014fd0 77 6e 20 61 66 74 65 72 20 6d 6f 76 69 6e 67 2c |wn after moving,| 00014fe0 20 74 61 6b 69 6e 67 20 61 63 63 6f 75 6e 74 20 | taking account | 00014ff0 6f 66 20 61 6e 79 0a 33 44 20 62 6f 72 64 65 72 |of any.3D border| 00015000 73 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 3c 46 4e |s...See also <FN| 00015010 73 68 65 6c 6c 5f 49 63 6f 6e 4d 6f 76 65 3e 0a |shell_IconMove>.| 00015020 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d |.Library Group =| 00015030 3e 20 3c 49 63 6f 6e 73 3d 3e 4c 69 62 47 72 6f |> <Icons=>LibGro| 00015040 75 70 49 63 6f 6e 73 3e 50 52 4f 43 73 68 65 6c |upIcons>PROCshel| 00015050 6c 5f 49 63 6f 6e 44 65 6c 65 74 65 32 28 29 0a |l_IconDelete2().| 00015060 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 |Params =>. | 00015070 20 20 20 69 6e 74 20 77 69 6e 64 6f 77 20 68 61 | int window ha| 00015080 6e 64 6c 65 0a 20 20 20 20 20 20 20 20 20 69 6e |ndle. in| 00015090 74 20 69 63 6f 6e 20 68 61 6e 64 6c 65 0a 0a 54 |t icon handle..T| 000150a0 68 69 73 20 63 61 6c 6c 20 66 72 65 65 73 20 61 |his call frees a| 000150b0 6e 79 20 6d 65 6d 6f 72 79 20 75 73 65 64 20 66 |ny memory used f| 000150c0 6f 72 20 69 6e 64 69 72 65 63 74 65 64 20 64 61 |or indirected da| 000150d0 74 61 0a 61 6e 64 20 76 61 6c 69 64 61 74 69 6f |ta.and validatio| 000150e0 6e 20 73 74 72 69 6e 67 73 2e 20 54 68 65 20 77 |n strings. The w| 000150f0 69 6e 64 6f 77 20 61 72 65 61 20 63 6f 76 65 72 |indow area cover| 00015100 65 64 20 62 79 0a 74 68 65 20 69 63 6f 6e 20 28 |ed by.the icon (| 00015110 69 6e 63 6c 75 64 69 6e 67 20 61 6e 79 20 33 44 |including any 3D| 00015120 20 62 6f 72 64 65 72 73 29 20 69 73 20 72 65 64 | borders) is red| 00015130 72 61 77 6e 2e 0a 0a 57 68 65 6e 20 61 20 6c 61 |rawn...When a la| 00015140 72 67 65 20 6e 75 6d 62 65 72 20 6f 66 20 69 63 |rge number of ic| 00015150 6f 6e 73 20 61 72 65 20 74 6f 20 62 65 20 64 65 |ons are to be de| 00015160 6c 65 74 65 64 20 69 74 20 69 73 0a 62 65 74 74 |leted it is.bett| 00015170 65 72 20 74 6f 20 75 73 65 20 3c 50 52 4f 43 73 |er to use <PROCs| 00015180 68 65 6c 6c 5f 49 63 6f 6e 44 65 6c 65 74 65 3e |hell_IconDelete>| 00015190 20 61 6e 64 20 74 68 65 6e 20 72 65 64 72 61 77 | and then redraw| 000151a0 0a 74 68 65 20 77 69 6e 64 6f 77 20 61 66 74 65 |.the window afte| 000151b0 72 77 61 72 64 73 20 61 73 20 74 68 69 73 20 77 |rwards as this w| 000151c0 69 6c 6c 20 62 65 20 71 75 69 63 6b 65 72 2e 0a |ill be quicker..| 000151d0 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d |.Library Group =| 000151e0 3e 20 3c 49 63 6f 6e 73 3d 3e 4c 69 62 47 72 6f |> <Icons=>LibGro| 000151f0 75 70 49 63 6f 6e 73 3e 50 52 4f 43 73 68 65 6c |upIcons>PROCshel| 00015200 6c 5f 49 63 6f 6e 44 65 73 65 6c 65 63 74 41 6c |l_IconDeselectAl| 00015210 6c 28 29 0a 50 61 72 61 6d 73 20 3d 3e 20 20 20 |l().Params => | 00015220 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 | . | 00015230 69 6e 74 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c |int window handl| 00015240 65 20 20 20 20 20 20 20 20 20 0a 0a 44 65 73 65 |e ..Dese| 00015250 6c 65 63 74 73 20 61 6c 6c 20 6f 66 20 74 68 65 |lects all of the| 00015260 20 69 63 6f 6e 73 20 63 6f 6e 74 61 69 6e 65 64 | icons contained| 00015270 0a 69 6e 20 74 68 65 20 73 70 65 63 69 66 69 65 |.in the specifie| 00015280 64 20 77 69 6e 64 6f 77 2e 0a 0a 4c 69 62 72 61 |d window...Libra| 00015290 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 49 63 6f |ry Group => <Ico| 000152a0 6e 73 3d 3e 4c 69 62 47 72 6f 75 70 49 63 6f 6e |ns=>LibGroupIcon| 000152b0 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e |s>PROCshell_Icon| 000152c0 53 65 6c 65 63 74 41 6c 6c 28 29 0a 50 61 72 61 |SelectAll().Para| 000152d0 6d 73 20 3d 3e 20 20 20 20 20 20 20 20 20 0a 20 |ms => . | 000152e0 20 20 20 20 20 20 20 20 69 6e 74 20 77 69 6e 64 | int wind| 000152f0 6f 77 20 68 61 6e 64 6c 65 20 20 20 20 20 20 20 |ow handle | 00015300 20 20 0a 0a 53 65 6c 65 63 74 73 20 61 6c 6c 20 | ..Selects all | 00015310 6f 66 20 74 68 65 20 69 63 6f 6e 73 20 63 6f 6e |of the icons con| 00015320 74 61 69 6e 65 64 0a 69 6e 20 74 68 65 20 73 70 |tained.in the sp| 00015330 65 63 69 66 69 65 64 20 77 69 6e 64 6f 77 2e 0a |ecified window..| 00015340 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d |.Library Group =| 00015350 3e 20 3c 49 63 6f 6e 73 3d 3e 4c 69 62 47 72 6f |> <Icons=>LibGro| 00015360 75 70 49 63 6f 6e 73 3e 46 4e 73 68 65 6c 6c 5f |upIcons>FNshell_| 00015370 49 63 6f 6e 47 65 74 43 6f 6d 6d 61 6e 64 28 29 |IconGetCommand()| 00015380 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 |.Params =>. | 00015390 20 20 20 20 69 6e 74 20 70 6f 69 6e 74 65 72 20 | int pointer | 000153a0 74 6f 20 76 61 6c 69 64 61 74 69 6f 6e 20 73 74 |to validation st| 000153b0 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 73 74 |ring. st| 000153c0 72 20 76 61 6c 69 64 61 74 69 6f 6e 20 63 6f 6d |r validation com| 000153d0 6d 61 6e 64 0a 20 20 20 20 20 20 20 20 20 0a 20 |mand. . | 000153e0 20 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 | \<=. | 000153f0 20 20 20 73 74 72 20 63 6f 6d 6d 61 6e 64 20 73 | str command s| 00015400 74 72 69 6e 67 0a 0a 53 65 65 20 61 6c 73 6f 20 |tring..See also | 00015410 3c 46 4e 73 68 65 6c 6c 5f 49 63 6f 6e 47 65 74 |<FNshell_IconGet| 00015420 56 61 6c 69 64 61 74 69 6f 6e 3e 2e 0a 0a 4c 69 |Validation>...Li| 00015430 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c |brary Group => <| 00015440 49 63 6f 6e 73 3d 3e 4c 69 62 47 72 6f 75 70 49 |Icons=>LibGroupI| 00015450 63 6f 6e 73 3e 44 61 74 61 4c 6f 61 64 20 27 4e |cons>DataLoad 'N| 00015460 6f 20 4c 6f 61 64 27 20 66 6c 61 67 0a 46 41 4c |o Load' flag.FAL| 00015470 53 45 20 3d 20 64 61 74 61 20 66 69 6c 65 20 69 |SE = data file i| 00015480 73 20 6c 6f 61 64 65 64 20 69 6e 20 61 20 68 65 |s loaded in a he| 00015490 61 70 20 62 6c 6f 63 6b 20 61 6e 64 0a 20 20 20 |ap block and. | 000154a0 20 20 20 20 20 74 68 65 20 6e 61 6d 65 20 61 6e | the name an| 000154b0 64 20 61 64 64 72 65 73 73 20 69 73 20 72 65 74 |d address is ret| 000154c0 75 72 6e 65 64 20 74 6f 20 74 68 65 0a 20 20 20 |urned to the. | 000154d0 20 20 20 20 20 75 73 65 72 20 61 70 70 6c 69 63 | user applic| 000154e0 61 74 69 6f 6e 2e 0a 0a 54 52 55 45 20 20 3d 20 |ation...TRUE = | 000154f0 6f 6e 6c 79 20 74 68 65 20 64 61 74 61 20 66 69 |only the data fi| 00015500 6c 65 20 6e 61 6d 65 20 61 6e 64 20 74 79 70 65 |le name and type| 00015510 20 69 73 0a 20 20 20 20 20 20 20 20 72 65 74 75 | is. retu| 00015520 72 6e 65 64 20 74 6f 20 74 68 65 20 75 73 65 72 |rned to the user| 00015530 20 61 70 70 6c 69 63 61 74 69 6f 6e 2e 0a 0a 54 | application...T| 00015540 68 69 73 20 66 6c 61 67 20 69 73 20 70 72 6f 76 |his flag is prov| 00015550 69 64 65 64 20 66 6f 72 20 6d 61 78 69 6d 75 6d |ided for maximum| 00015560 20 66 6c 65 78 69 62 69 6c 69 74 79 0a 77 68 65 | flexibility.whe| 00015570 6e 20 64 65 61 6c 69 6e 67 20 77 69 74 68 20 64 |n dealing with d| 00015580 72 61 67 20 6c 6f 61 64 73 2e 20 57 68 65 6e 20 |rag loads. When | 00015590 79 6f 75 20 61 72 65 0a 63 6f 6e 76 65 72 74 69 |you are.converti| 000155a0 6e 67 20 61 6e 20 65 78 69 73 74 69 6e 67 20 70 |ng an existing p| 000155b0 72 6f 67 72 61 6d 20 74 6f 20 72 75 6e 20 75 6e |rogram to run un| 000155c0 64 65 72 20 74 68 65 0a 45 76 6e 74 53 68 65 6c |der the.EvntShel| 000155d0 6c 20 73 79 73 74 65 6d 20 79 6f 75 20 6d 61 79 |l system you may| 000155e0 20 61 6c 72 65 61 64 79 20 68 61 76 65 20 61 20 | already have a | 000155f0 77 6f 72 6b 69 6e 67 0a 6c 6f 61 64 20 72 6f 75 |working.load rou| 00015600 74 69 6e 65 2e 20 49 6e 20 74 68 69 73 20 63 61 |tine. In this ca| 00015610 73 65 20 73 65 74 20 74 68 65 20 66 6c 61 67 20 |se set the flag | 00015620 74 6f 20 54 52 55 45 0a 61 6e 64 20 77 68 65 6e |to TRUE.and when| 00015630 20 61 20 64 72 61 67 20 6c 6f 61 64 20 6f 63 63 | a drag load occ| 00015640 75 72 73 20 79 6f 75 72 20 61 70 70 6c 69 63 61 |urs your applica| 00015650 74 69 6f 6e 20 77 69 6c 6c 0a 62 65 20 74 6f 6c |tion will.be tol| 00015660 64 20 74 68 65 20 66 69 6c 65 6e 61 6d 65 2c 20 |d the filename, | 00015670 77 68 69 63 68 20 6d 61 79 20 74 68 65 6e 20 62 |which may then b| 00015680 65 20 6c 6f 61 64 65 64 0a 61 6e 64 20 70 72 6f |e loaded.and pro| 00015690 63 65 73 73 65 64 20 61 73 20 72 65 71 75 69 72 |cessed as requir| 000156a0 65 64 2e 0a 0a 57 68 65 6e 20 74 68 69 73 20 66 |ed...When this f| 000156b0 6c 61 67 20 69 73 20 46 41 4c 53 45 20 74 68 65 |lag is FALSE the| 000156c0 20 6c 69 62 72 61 72 79 20 72 6f 75 74 69 6e 65 | library routine| 000156d0 73 20 77 69 6c 6c 0a 72 65 73 65 72 76 65 20 61 |s will.reserve a| 000156e0 20 6d 65 6d 6f 72 79 20 62 6c 6f 63 6b 20 66 6f | memory block fo| 000156f0 72 20 74 68 65 20 66 69 6c 65 20 61 6e 64 20 6c |r the file and l| 00015700 6f 61 64 20 69 74 0a 61 75 74 6f 6d 61 74 69 63 |oad it.automatic| 00015710 61 6c 6c 79 2e 0a 0a 46 6f 72 20 74 68 65 20 74 |ally...For the t| 00015720 65 63 68 6e 69 63 61 6c 20 6f 66 20 79 6f 75 20 |echnical of you | 00015730 6f 75 74 20 74 68 65 72 65 20 74 68 65 20 6c 69 |out there the li| 00015740 62 72 61 72 79 0a 73 74 6f 72 65 73 20 74 68 65 |brary.stores the| 00015750 20 73 74 61 74 75 73 20 6f 66 20 74 68 65 20 6e | status of the n| 00015760 6f 20 6c 6f 61 64 20 66 6c 61 67 20 69 6e 20 74 |o load flag in t| 00015770 68 65 20 74 6f 70 0a 62 69 74 20 6f 66 20 74 68 |he top.bit of th| 00015780 65 20 66 69 6c 65 74 79 70 65 20 6e 75 6d 62 65 |e filetype numbe| 00015790 72 2e 20 54 68 69 73 20 77 69 6c 6c 20 65 6e 64 |r. This will end| 000157a0 20 69 6e 20 74 65 61 72 73 0a 77 68 65 6e 20 52 | in tears.when R| 000157b0 49 53 43 2d 4f 53 20 34 20 63 6f 6d 65 73 20 6f |ISC-OS 4 comes o| 000157c0 75 74 2e 2e 2e 43 79 20 42 6f 6f 6b 65 72 0a 46 |ut...Cy Booker.F| 000157d0 6f 72 20 76 61 72 69 6f 75 73 20 68 65 6c 70 66 |or various helpf| 000157e0 75 6c 20 73 75 67 67 65 73 74 69 6f 6e 73 20 61 |ul suggestions a| 000157f0 6e 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 74 |nd information t| 00015800 68 61 74 0a 61 6c 6c 6f 77 65 64 20 6d 65 20 74 |hat.allowed me t| 00015810 6f 20 61 64 64 20 73 65 70 65 72 61 74 65 20 6d |o add seperate m| 00015820 65 73 73 61 67 65 20 66 69 6c 65 73 20 66 6f 72 |essage files for| 00015830 20 6c 69 62 72 61 72 79 0a 6d 65 73 73 61 67 65 | library.message| 00015840 73 2c 20 61 6e 64 20 73 75 70 70 6f 72 74 20 66 |s, and support f| 00015850 6f 72 20 44 72 61 67 41 53 70 72 69 74 65 20 61 |or DragASprite a| 00015860 6e 64 20 74 68 65 20 6e 65 77 0a 62 6f 6f 74 20 |nd the new.boot | 00015870 6d 65 73 73 61 67 65 20 75 6e 64 65 72 20 52 49 |message under RI| 00015880 53 43 2d 4f 53 20 33 2e 50 72 69 6e 74 65 72 0a |SC-OS 3.Printer.| 00015890 3c 50 72 69 6e 74 65 72 4f 6e 4c 69 6e 65 3d 3e |<PrinterOnLine=>| 000158a0 46 4e 73 68 65 6c 6c 5f 50 72 69 6e 74 65 72 4f |FNshell_PrinterO| 000158b0 6e 4c 69 6e 65 3e 46 4e 73 68 65 6c 6c 5f 50 72 |nLine>FNshell_Pr| 000158c0 69 6e 74 65 72 4f 6e 4c 69 6e 65 0a 50 61 72 61 |interOnLine.Para| 000158d0 6d 73 0a 20 20 20 20 20 20 3d 3e 0a 20 20 20 20 |ms. =>. | 000158e0 20 20 20 20 4e 6f 6e 65 0a 0a 20 20 20 20 20 20 | None.. | 000158f0 5c 3c 3d 0a 20 20 20 20 20 20 20 20 62 6f 6f 6c |\<=. bool| 00015900 20 54 52 55 45 20 69 66 20 70 72 69 6e 74 65 72 | TRUE if printer| 00015910 20 69 73 20 6f 6e 6c 69 6e 65 2c 20 6f 74 68 65 | is online, othe| 00015920 72 77 69 73 65 0a 20 20 20 20 20 20 20 20 20 20 |rwise. | 00015930 20 20 20 46 41 4c 53 45 0a 0a 54 68 69 73 20 72 | FALSE..This r| 00015940 6f 75 74 69 6e 65 20 68 61 73 20 62 65 65 6e 20 |outine has been | 00015950 74 65 73 74 65 64 20 6f 6e 20 52 49 53 43 2d 4f |tested on RISC-O| 00015960 53 20 33 2e 31 20 61 6e 64 0a 73 68 6f 75 6c 64 |S 3.1 and.should| 00015970 20 61 6c 73 6f 20 77 6f 72 6b 20 6f 6e 20 65 61 | also work on ea| 00015980 72 6c 69 65 72 20 76 65 72 73 69 6f 6e 73 2e 20 |rlier versions. | 00015990 46 72 6f 6d 20 52 69 73 63 0a 55 73 65 72 20 4d |From Risc.User M| 000159a0 61 72 63 68 20 31 39 39 33 20 70 61 67 65 20 34 |arch 1993 page 4| 000159b0 33 2e 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 |3...Library Grou| 000159c0 70 20 3d 3e 20 3c 50 72 69 6e 74 65 72 3d 3e 4c |p => <Printer=>L| 000159d0 69 62 47 72 6f 75 70 50 72 69 6e 74 65 72 3e 50 |ibGroupPrinter>P| 000159e0 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 42 |ROCshell_AttachB| 000159f0 75 6d 70 48 61 6e 64 6c 65 72 28 29 0a 50 61 72 |umpHandler().Par| 00015a00 61 6d 73 20 3d 3e 20 20 20 20 20 0a 20 20 20 20 |ams => . | 00015a10 20 20 20 20 20 69 6e 74 20 20 77 69 6e 64 6f 77 | int window| 00015a20 20 68 61 6e 64 6c 65 0a 20 20 20 20 20 20 20 20 | handle. | 00015a30 20 69 6e 74 20 20 69 63 6f 6e 20 68 61 6e 64 6c | int icon handl| 00015a40 65 20 28 64 69 73 70 6c 61 79 20 76 61 6c 75 65 |e (display value| 00015a50 29 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 20 |). int | 00015a60 69 63 6f 6e 20 68 61 6e 64 6c 65 20 28 69 6e 63 |icon handle (inc| 00015a70 72 65 6d 65 6e 74 20 76 61 6c 75 65 29 0a 20 20 |rement value). | 00015a80 20 20 20 20 20 20 20 69 6e 74 20 20 69 63 6f 6e | int icon| 00015a90 20 68 61 6e 64 6c 65 20 28 64 65 63 72 65 6d 65 | handle (decreme| 00015aa0 6e 74 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 |nt value). | 00015ab0 20 20 20 69 6e 74 20 20 6c 6f 77 65 72 20 6c 69 | int lower li| 00015ac0 6d 69 74 0a 20 20 20 20 20 20 20 20 20 69 6e 74 |mit. int| 00015ad0 20 20 75 70 70 65 72 20 6c 69 6d 69 74 0a 20 20 | upper limit. | 00015ae0 20 20 20 20 20 20 20 69 6e 74 20 20 73 74 65 70 | int step| 00015af0 0a 20 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 77 |. bool w| 00015b00 72 61 70 20 66 6c 61 67 0a 20 20 20 20 20 20 20 |rap flag. | 00015b10 20 20 73 74 72 20 20 3c 66 75 6e 63 74 69 6f 6e | str <function| 00015b20 20 6e 61 6d 65 3d 3e 55 73 65 72 46 4e 32 30 3e | name=>UserFN20>| 00015b30 20 28 63 61 6e 20 62 65 20 22 22 29 0a 20 20 20 | (can be ""). | 00015b40 20 20 20 20 20 20 73 74 72 20 20 3c 66 75 6e 63 | str <func| 00015b50 74 69 6f 6e 20 6e 61 6d 65 3d 3e 55 73 65 72 46 |tion name=>UserF| 00015b60 4e 32 31 3e 20 28 63 61 6e 20 62 65 20 22 22 29 |N21> (can be "")| 00015b70 0a 0a 42 75 6d 70 20 69 63 6f 6e 73 20 61 72 65 |..Bump icons are| 00015b80 20 74 68 65 20 61 72 72 6f 77 73 20 74 68 61 74 | the arrows that| 00015b90 20 61 6c 6c 6f 77 20 79 6f 75 20 74 6f 20 61 6c | allow you to al| 00015ba0 74 65 72 20 74 68 65 0a 76 61 6c 75 65 20 64 69 |ter the.value di| 00015bb0 73 70 6c 61 79 65 64 20 69 6e 20 61 6e 20 69 63 |splayed in an ic| 00015bc0 6f 6e 20 28 75 73 75 61 6c 6c 79 20 6e 6f 74 20 |on (usually not | 00015bd0 6e 6f 74 20 6e 65 63 65 73 73 61 72 69 6c 79 0a |not necessarily.| 00015be0 61 20 77 72 69 74 61 62 6c 65 20 6f 6e 65 29 0a |a writable one).| 00015bf0 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d |.Library Group =| 00015c00 3e 20 3c 45 76 65 6e 74 73 3d 3e 4c 69 62 47 72 |> <Events=>LibGr| 00015c10 6f 75 70 45 76 65 6e 74 73 3e 55 73 65 72 20 46 |oupEvents>User F| 00015c20 4e 20 28 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 |N (PROCshell_Att| 00015c30 61 63 68 42 75 6d 70 48 61 6e 64 6c 65 72 29 0a |achBumpHandler).| 00015c40 50 61 72 61 6d 73 20 3d 3e 20 0a 20 20 20 20 20 |Params => . | 00015c50 20 20 20 20 69 6e 74 20 76 61 6c 75 65 0a 0a 20 | int value.. | 00015c60 20 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 | \<=. | 00015c70 20 20 20 73 74 72 20 63 6f 6e 76 65 72 74 65 64 | str converted| 00015c80 20 76 61 6c 75 65 0a 0a 54 68 69 73 20 66 75 6e | value..This fun| 00015c90 63 74 69 6f 6e 20 69 73 20 63 61 6c 6c 65 64 20 |ction is called | 00015ca0 62 65 66 6f 72 65 20 74 68 65 20 6e 65 77 20 76 |before the new v| 00015cb0 61 6c 75 65 0a 69 73 20 70 6c 61 63 65 64 20 69 |alue.is placed i| 00015cc0 6e 20 74 68 65 20 64 69 73 70 6c 61 79 20 69 63 |n the display ic| 00015cd0 6f 6e 2e 20 0a 0a 41 6e 20 65 78 61 6d 70 6c 65 |on. ..An example| 00015ce0 20 77 6f 75 6c 64 20 62 65 20 63 6f 6e 76 65 72 | would be conver| 00015cf0 74 69 6e 67 20 61 6e 20 69 6e 74 65 67 65 72 0a |ting an integer.| 00015d00 76 61 6c 75 65 20 74 6f 20 74 68 65 20 66 6f 72 |value to the for| 00015d10 6d 61 74 20 30 68 30 30 20 28 69 2e 65 20 68 6f |mat 0h00 (i.e ho| 00015d20 75 72 73 20 61 6e 64 20 6d 69 6e 73 29 2e 0a 0a |urs and mins)...| 00015d30 44 45 46 20 46 4e 5f 64 69 73 5f 66 6e 28 76 61 |DEF FN_dis_fn(va| 00015d40 6c 25 29 0a 3d 53 54 52 24 28 76 61 6c 25 44 49 |l%).=STR$(val%DI| 00015d50 56 36 30 29 2b 22 68 22 2b 52 49 47 48 54 24 28 |V60)+"h"+RIGHT$(| 00015d60 22 30 30 22 2b 53 54 52 24 28 76 61 6c 25 4d 4f |"00"+STR$(val%MO| 00015d70 44 36 30 29 2c 32 29 0a 0a 53 65 65 20 74 68 65 |D60),2)..See the| 00015d80 20 21 56 42 61 73 65 32 20 64 65 6d 6f 20 61 70 | !VBase2 demo ap| 00015d90 70 2e 55 73 65 72 20 46 4e 20 28 50 52 4f 43 73 |p.User FN (PROCs| 00015da0 68 65 6c 6c 5f 41 74 74 61 63 68 42 75 6d 70 48 |hell_AttachBumpH| 00015db0 61 6e 64 6c 65 72 29 0a 50 61 72 61 6d 73 20 3d |andler).Params =| 00015dc0 3e 20 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 |> . str | 00015dd0 76 61 6c 75 65 20 74 6f 20 64 65 63 6f 64 65 0a |value to decode.| 00015de0 0a 20 20 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 |. \<=. | 00015df0 20 20 20 20 20 69 6e 74 20 63 6f 6e 76 65 72 74 | int convert| 00015e00 65 64 20 76 61 6c 75 65 0a 0a 54 68 69 73 20 66 |ed value..This f| 00015e10 75 6e 63 74 69 6f 6e 20 69 73 20 63 61 6c 6c 65 |unction is calle| 00015e20 64 20 62 65 66 6f 72 65 20 74 68 65 20 6e 65 77 |d before the new| 00015e30 20 76 61 6c 75 65 0a 69 73 20 70 6c 61 63 65 64 | value.is placed| 00015e40 20 69 6e 20 74 68 65 20 64 69 73 70 6c 61 79 20 | in the display | 00015e50 69 63 6f 6e 2e 0a 0a 41 6e 20 65 78 61 6d 70 6c |icon...An exampl| 00015e60 65 20 77 6f 75 6c 64 20 62 65 20 63 6f 6e 76 65 |e would be conve| 00015e70 72 74 69 6e 67 20 61 20 73 74 72 69 6e 67 20 22 |rting a string "| 00015e80 30 68 30 30 22 0a 62 61 63 6b 20 74 6f 20 61 6e |0h00".back to an| 00015e90 20 69 6e 74 65 67 65 72 20 76 61 6c 75 65 2e 0a | integer value..| 00015ea0 0a 44 45 46 20 46 4e 5f 64 65 63 6f 64 65 5f 64 |.DEF FN_decode_d| 00015eb0 69 73 28 76 61 6c 24 29 0a 3d 56 41 4c 28 76 61 |is(val$).=VAL(va| 00015ec0 6c 24 29 2a 36 30 2b 56 41 4c 28 52 49 47 48 54 |l$)*60+VAL(RIGHT| 00015ed0 24 28 76 61 6c 24 2c 32 29 29 0a 0a 53 65 65 20 |$(val$,2))..See | 00015ee0 74 68 65 20 21 56 42 61 73 65 32 20 64 65 6d 6f |the !VBase2 demo| 00015ef0 20 61 70 70 46 4e 73 68 65 6c 6c 5f 57 69 6e 64 | appFNshell_Wind| 00015f00 6f 77 53 65 74 53 70 72 69 74 65 41 72 65 61 28 |owSetSpriteArea(| 00015f10 29 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 |).Params =>. | 00015f20 20 20 20 20 20 69 6e 74 20 77 69 6e 64 6f 77 20 | int window | 00015f30 68 61 6e 64 6c 65 0a 20 20 20 20 20 20 20 20 20 |handle. | 00015f40 69 6e 74 20 61 64 64 72 65 73 73 20 6f 66 20 73 |int address of s| 00015f50 70 72 69 74 65 20 61 72 65 61 0a 0a 20 20 20 20 |prite area.. | 00015f60 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 20 | \<=. | 00015f70 69 6e 74 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c |int window handl| 00015f80 65 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 |e..Library Group| 00015f90 20 3d 5c 3e 20 3c 57 69 6e 64 6f 77 73 3d 3e 4c | =\> <Windows=>L| 00015fa0 69 62 47 72 6f 75 70 57 69 6e 64 6f 77 73 3e 55 |ibGroupWindows>U| 00015fb0 73 65 72 20 46 4e 20 28 50 52 4f 43 73 68 65 6c |ser FN (PROCshel| 00015fc0 6c 5f 41 74 74 61 63 68 44 72 61 67 29 20 0a 50 |l_AttachDrag) .P| 00015fd0 61 72 61 6d 73 20 3d 3e 20 0a 20 20 20 20 20 20 |arams => . | 00015fe0 20 20 20 69 6e 74 20 77 69 6e 64 6f 77 20 68 61 | int window ha| 00015ff0 6e 64 6c 65 20 6f 76 65 72 20 77 68 69 63 68 20 |ndle over which | 00016000 64 72 61 67 0a 20 20 20 20 20 20 20 20 20 20 20 |drag. | 00016010 20 20 73 74 61 72 74 65 64 0a 20 20 20 20 20 20 | started. | 00016020 20 20 20 69 6e 74 20 69 63 6f 6e 20 68 61 6e 64 | int icon hand| 00016030 6c 65 20 6f 76 65 72 20 77 68 69 63 68 20 64 72 |le over which dr| 00016040 61 67 20 77 61 73 0a 20 20 20 20 20 20 20 20 20 |ag was. | 00016050 20 20 20 20 73 74 61 72 74 65 64 20 28 2d 31 20 | started (-1 | 00016060 66 6f 72 20 6e 6f 20 69 63 6f 6e 29 50 52 4f 43 |for no icon)PROC| 00016070 73 68 65 6c 6c 5f 49 63 6f 6e 53 65 74 42 75 74 |shell_IconSetBut| 00016080 74 6f 6e 54 79 70 65 28 29 0a 50 61 72 61 6d 73 |tonType().Params| 00016090 20 3d 3e 20 20 20 20 20 20 20 20 20 20 20 0a 20 | => . | 000160a0 20 20 20 20 20 20 20 20 69 6e 74 20 77 69 6e 64 | int wind| 000160b0 6f 77 20 68 61 6e 64 6c 65 20 20 20 20 20 20 20 |ow handle | 000160c0 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 69 6e | . in| 000160d0 74 20 69 63 6f 6e 20 68 61 6e 64 6c 65 20 0a 20 |t icon handle . | 000160e0 20 20 20 20 20 20 20 20 69 6e 74 20 3c 62 75 74 | int <but| 000160f0 74 6f 6e 20 74 79 70 65 3d 3e 53 57 49 2e 57 69 |ton type=>SWI.Wi| 00016100 6d 70 5f 69 63 6f 6e 62 75 74 74 6f 6e 3e 0a 0a |mp_iconbutton>..| 00016110 41 6e 20 65 72 72 6f 72 20 69 73 20 67 65 6e 65 |An error is gene| 00016120 72 61 74 65 64 20 69 66 20 74 68 65 20 62 75 74 |rated if the but| 00016130 74 6f 6e 0a 74 79 70 65 20 69 73 20 6f 75 74 73 |ton.type is outs| 00016140 69 64 65 20 74 68 65 20 72 61 6e 67 65 20 30 2d |ide the range 0-| 00016150 31 31 2c 31 34 2d 31 35 2e 0a 0a 4c 69 62 72 61 |11,14-15...Libra| 00016160 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 49 63 6f |ry Group => <Ico| 00016170 6e 73 3d 3e 4c 69 62 47 72 6f 75 70 49 63 6f 6e |ns=>LibGroupIcon| 00016180 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e |s>PROCshell_Icon| 00016190 53 65 74 45 53 47 28 29 0a 50 61 72 61 6d 73 20 |SetESG().Params | 000161a0 3d 3e 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 |=> . | 000161b0 20 20 20 20 20 20 20 69 6e 74 20 77 69 6e 64 6f | int windo| 000161c0 77 20 68 61 6e 64 6c 65 20 20 20 20 20 20 20 20 |w handle | 000161d0 20 20 20 0a 20 20 20 20 20 20 20 20 20 69 6e 74 | . int| 000161e0 20 69 63 6f 6e 20 68 61 6e 64 6c 65 20 0a 20 20 | icon handle . | 000161f0 20 20 20 20 20 20 20 69 6e 74 20 45 78 63 6c 75 | int Exclu| 00016200 73 69 76 65 20 53 65 6c 65 63 74 69 6f 6e 20 47 |sive Selection G| 00016210 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 |roup. | 00016220 20 20 6e 75 6d 62 65 72 0a 0a 41 6e 20 65 72 72 | number..An err| 00016230 6f 72 20 69 73 20 67 65 6e 65 72 61 74 65 64 20 |or is generated | 00016240 69 66 20 74 68 65 20 65 73 67 0a 6e 75 6d 62 65 |if the esg.numbe| 00016250 72 20 69 73 20 6f 75 74 73 69 64 65 20 74 68 65 |r is outside the| 00016260 20 72 61 6e 67 65 20 30 2d 33 31 2e 0a 0a 4c 69 | range 0-31...Li| 00016270 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c |brary Group => <| 00016280 49 63 6f 6e 73 3d 3e 4c 69 62 47 72 6f 75 70 49 |Icons=>LibGroupI| 00016290 63 6f 6e 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 |cons>PROCshell_I| 000162a0 63 6f 6e 53 65 74 54 65 78 74 28 29 0a 50 61 72 |conSetText().Par| 000162b0 61 6d 73 20 3d 3e 20 20 20 20 20 20 20 20 20 20 |ams => | 000162c0 20 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 20 | . int | 000162d0 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 20 20 20 |window handle | 000162e0 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 | . | 000162f0 20 20 69 6e 74 20 20 69 63 6f 6e 20 68 61 6e 64 | int icon hand| 00016300 6c 65 20 0a 20 20 20 20 20 20 20 20 20 62 6f 6f |le . boo| 00016310 6c 20 73 74 61 74 65 20 28 30 20 74 6f 20 63 6c |l state (0 to cl| 00016320 65 61 72 20 74 65 78 74 20 62 69 74 2c 0a 20 20 |ear text bit,. | 00016330 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 6e 20 | non | 00016340 30 20 74 6f 20 73 65 74 20 69 74 29 0a 0a 4c 69 |0 to set it)..Li| 00016350 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c |brary Group => <| 00016360 49 63 6f 6e 73 3d 3e 4c 69 62 47 72 6f 75 70 49 |Icons=>LibGroupI| 00016370 63 6f 6e 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 |cons>PROCshell_I| 00016380 63 6f 6e 53 65 74 53 70 72 69 74 65 28 29 0a 50 |conSetSprite().P| 00016390 61 72 61 6d 73 20 3d 3e 20 20 20 20 20 20 20 20 |arams => | 000163a0 20 20 20 0a 20 20 20 20 20 20 20 20 20 69 6e 74 | . int| 000163b0 20 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 20 | window handle | 000163c0 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 | . | 000163d0 20 20 20 20 69 6e 74 20 20 69 63 6f 6e 20 68 61 | int icon ha| 000163e0 6e 64 6c 65 20 0a 20 20 20 20 20 20 20 20 20 62 |ndle . b| 000163f0 6f 6f 6c 20 73 74 61 74 65 20 28 30 20 74 6f 20 |ool state (0 to | 00016400 63 6c 65 61 72 20 73 70 72 69 74 65 20 62 69 74 |clear sprite bit| 00016410 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |,. | 00016420 6e 6f 6e 20 30 20 74 6f 20 73 65 74 20 69 74 29 |non 0 to set it)| 00016430 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 |..Library Group | 00016440 3d 3e 20 3c 49 63 6f 6e 73 3d 3e 4c 69 62 47 72 |=> <Icons=>LibGr| 00016450 6f 75 70 49 63 6f 6e 73 3e 50 52 4f 43 73 68 65 |oupIcons>PROCshe| 00016460 6c 6c 5f 49 63 6f 6e 53 65 74 42 6f 72 64 65 72 |ll_IconSetBorder| 00016470 28 29 0a 50 61 72 61 6d 73 20 3d 3e 20 20 20 20 |().Params => | 00016480 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 | . | 00016490 20 69 6e 74 20 20 77 69 6e 64 6f 77 20 68 61 6e | int window han| 000164a0 64 6c 65 20 20 20 20 20 20 20 20 20 20 20 0a 20 |dle . | 000164b0 20 20 20 20 20 20 20 20 69 6e 74 20 20 69 63 6f | int ico| 000164c0 6e 20 68 61 6e 64 6c 65 20 0a 20 20 20 20 20 20 |n handle . | 000164d0 20 20 20 62 6f 6f 6c 20 61 63 74 69 6f 6e 20 28 | bool action (| 000164e0 30 20 74 6f 20 63 6c 65 61 72 20 62 6f 72 64 65 |0 to clear borde| 000164f0 72 20 62 69 74 2c 0a 20 20 20 20 20 20 20 20 20 |r bit,. | 00016500 20 20 20 20 20 6e 6f 6e 20 30 20 74 6f 20 73 65 | non 0 to se| 00016510 74 20 69 74 29 0a 0a 4c 69 62 72 61 72 79 20 47 |t it)..Library G| 00016520 72 6f 75 70 20 3d 3e 20 3c 49 63 6f 6e 73 3d 3e |roup => <Icons=>| 00016530 4c 69 62 47 72 6f 75 70 49 63 6f 6e 73 3e 50 52 |LibGroupIcons>PR| 00016540 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 53 65 74 48 |OCshell_IconSetH| 00016550 43 65 6e 74 72 65 64 28 29 0a 50 61 72 61 6d 73 |Centred().Params| 00016560 20 3d 3e 20 20 20 20 20 20 20 20 20 20 20 0a 20 | => . | 00016570 20 20 20 20 20 20 20 20 69 6e 74 20 20 77 69 6e | int win| 00016580 64 6f 77 20 68 61 6e 64 6c 65 20 20 20 20 20 20 |dow handle | 00016590 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 69 | . i| 000165a0 6e 74 20 20 69 63 6f 6e 20 68 61 6e 64 6c 65 20 |nt icon handle | 000165b0 0a 20 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 73 |. bool s| 000165c0 74 61 74 65 20 28 30 20 74 6f 20 63 6c 65 61 72 |tate (0 to clear| 000165d0 20 68 6f 72 69 7a 6f 6e 74 61 6c 6c 79 0a 20 20 | horizontally. | 000165e0 20 20 20 20 20 20 20 20 20 20 20 20 63 65 6e 74 | cent| 000165f0 72 65 64 20 62 69 74 2c 20 6e 6f 6e 20 30 20 74 |red bit, non 0 t| 00016600 6f 20 73 65 74 20 69 74 29 0a 20 20 20 20 20 20 |o set it). | 00016610 20 20 20 20 20 20 20 20 0a 0a 4c 69 62 72 61 72 | ..Librar| 00016620 79 20 47 72 6f 75 70 20 3d 3e 20 3c 49 63 6f 6e |y Group => <Icon| 00016630 73 3d 3e 4c 69 62 47 72 6f 75 70 49 63 6f 6e 73 |s=>LibGroupIcons| 00016640 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 53 |>PROCshell_IconS| 00016650 65 74 56 43 65 6e 74 72 65 64 28 29 0a 50 61 72 |etVCentred().Par| 00016660 61 6d 73 20 3d 3e 20 20 20 20 20 20 20 20 20 20 |ams => | 00016670 20 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 20 | . int | 00016680 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 20 20 20 |window handle | 00016690 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 | . | 000166a0 20 20 69 6e 74 20 20 69 63 6f 6e 20 68 61 6e 64 | int icon hand| 000166b0 6c 65 20 0a 20 20 20 20 20 20 20 20 20 62 6f 6f |le . boo| 000166c0 6c 20 73 74 61 74 65 20 28 30 20 74 6f 20 63 6c |l state (0 to cl| 000166d0 65 61 72 20 76 65 72 74 69 63 61 6c 6c 79 0a 20 |ear vertically. | 000166e0 20 20 20 20 20 20 20 20 20 20 20 20 20 63 65 6e | cen| 000166f0 74 72 65 64 20 62 69 74 2c 20 6e 6f 6e 20 30 20 |tred bit, non 0 | 00016700 74 6f 20 73 65 74 20 69 74 29 0a 20 20 20 20 20 |to set it). | 00016710 20 20 20 20 20 20 20 20 20 0a 0a 4c 69 62 72 61 | ..Libra| 00016720 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 49 63 6f |ry Group => <Ico| 00016730 6e 73 3d 3e 4c 69 62 47 72 6f 75 70 49 63 6f 6e |ns=>LibGroupIcon| 00016740 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e |s>PROCshell_Icon| 00016750 53 65 74 46 69 6c 6c 65 64 28 29 0a 50 61 72 61 |SetFilled().Para| 00016760 6d 73 20 3d 3e 20 20 20 20 20 20 20 20 20 20 20 |ms => | 00016770 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 20 77 |. int w| 00016780 69 6e 64 6f 77 20 68 61 6e 64 6c 65 20 20 20 20 |indow handle | 00016790 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 | . | 000167a0 20 69 6e 74 20 20 69 63 6f 6e 20 68 61 6e 64 6c | int icon handl| 000167b0 65 20 0a 20 20 20 20 20 20 20 20 20 62 6f 6f 6c |e . bool| 000167c0 20 73 74 61 74 65 20 28 30 20 74 6f 20 63 6c 65 | state (0 to cle| 000167d0 61 72 20 66 69 6c 6c 65 64 0a 20 20 20 20 20 20 |ar filled. | 000167e0 20 20 20 20 20 20 20 20 62 69 74 2c 20 6e 6f 6e | bit, non| 000167f0 20 30 20 74 6f 20 73 65 74 20 69 74 29 0a 20 20 | 0 to set it). | 00016800 20 20 20 20 20 20 20 20 20 20 20 20 0a 0a 4c 69 | ..Li| 00016810 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c |brary Group => <| 00016820 49 63 6f 6e 73 3d 3e 4c 69 62 47 72 6f 75 70 49 |Icons=>LibGroupI| 00016830 63 6f 6e 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 49 |cons>PROCshell_I| 00016840 63 6f 6e 53 65 74 52 69 67 68 74 4a 75 73 74 28 |conSetRightJust(| 00016850 29 0a 50 61 72 61 6d 73 20 3d 3e 20 20 20 20 20 |).Params => | 00016860 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 | . | 00016870 69 6e 74 20 20 77 69 6e 64 6f 77 20 68 61 6e 64 |int window hand| 00016880 6c 65 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 |le . | 00016890 20 20 20 20 20 20 20 69 6e 74 20 20 69 63 6f 6e | int icon| 000168a0 20 68 61 6e 64 6c 65 20 0a 20 20 20 20 20 20 20 | handle . | 000168b0 20 20 62 6f 6f 6c 20 61 63 74 69 6f 6e 20 28 30 | bool action (0| 000168c0 20 74 6f 20 63 6c 65 61 72 20 72 69 67 68 74 0a | to clear right.| 000168d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 75 | ju| 000168e0 73 74 69 66 69 65 64 20 62 69 74 2c 20 6e 6f 6e |stified bit, non| 000168f0 20 30 20 74 6f 0a 20 20 20 20 20 20 20 20 20 20 | 0 to. | 00016900 20 20 20 20 73 65 74 20 69 74 29 0a 20 20 20 20 | set it). | 00016910 20 20 20 20 20 20 20 20 20 20 0a 4c 69 62 72 61 | .Libra| 00016920 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 49 63 6f |ry Group => <Ico| 00016930 6e 73 3d 3e 4c 69 62 47 72 6f 75 70 49 63 6f 6e |ns=>LibGroupIcon| 00016940 73 3e 46 4e 73 68 65 6c 6c 5f 53 74 72 6f 6e 67 |s>FNshell_Strong| 00016950 48 6c 70 49 73 41 76 61 69 6c 61 62 6c 65 0a 50 |HlpIsAvailable.P| 00016960 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 |arams =>. | 00016970 20 20 4e 6f 6e 65 0a 20 20 20 20 20 20 20 5c 3c | None. \<| 00016980 3d 0a 20 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 |=. bool | 00016990 54 52 55 45 20 69 66 20 53 74 72 6f 6e 67 48 65 |TRUE if StrongHe| 000169a0 6c 70 24 44 69 72 20 69 73 20 64 65 66 69 6e 65 |lp$Dir is define| 000169b0 64 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 |d,. | 000169c0 20 6f 74 68 65 72 77 69 73 65 20 46 41 4c 53 45 | otherwise FALSE| 000169d0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a |. .| 000169e0 55 73 65 64 20 74 6f 20 63 68 65 63 6b 20 74 68 |Used to check th| 000169f0 61 74 20 53 74 72 6f 6e 67 48 6c 70 20 69 73 20 |at StrongHlp is | 00016a00 69 6e 73 74 61 6c 6c 65 64 0a 6f 6e 20 74 68 65 |installed.on the| 00016a10 20 73 79 73 74 65 6d 2e 20 54 68 69 73 20 63 61 | system. This ca| 00016a20 6c 6c 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 |ll can be used t| 00016a30 6f 20 73 68 61 64 65 0a 61 20 27 48 65 6c 70 27 |o shade.a 'Help'| 00016a40 20 6d 65 6e 75 20 69 74 65 6d 20 69 66 20 53 74 | menu item if St| 00016a50 72 6f 6e 67 48 6c 70 20 68 61 73 20 6e 6f 74 20 |rongHlp has not | 00016a60 62 65 65 6e 20 73 65 65 6e 0a 62 79 20 74 68 65 |been seen.by the| 00016a70 20 46 69 6c 65 72 2c 20 6f 72 20 69 66 20 69 74 | Filer, or if it| 00016a80 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c | is not availabl| 00016a90 65 2e 0a 0a 3c 45 78 61 6d 70 6c 65 20 63 6f 64 |e...<Example cod| 00016aa0 65 2e 2e 2e 3d 3e 45 78 5f 53 74 72 6f 6e 67 48 |e...=>Ex_StrongH| 00016ab0 6c 70 49 73 41 76 61 69 6c 61 62 6c 65 3e 0a 0a |lpIsAvailable>..| 00016ac0 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e |Library Group =>| 00016ad0 20 3c 53 74 72 6f 6e 67 48 6c 70 3d 3e 4c 69 62 | <StrongHlp=>Lib| 00016ae0 47 72 6f 75 70 48 65 6c 70 3e 45 78 61 6d 70 6c |GroupHelp>Exampl| 00016af0 65 20 63 6f 64 65 20 28 53 74 72 6f 6e 67 48 6c |e code (StrongHl| 00016b00 70 49 73 41 76 61 69 6c 61 62 6c 65 29 0a 53 68 |pIsAvailable).Sh| 00016b10 61 64 65 20 6d 65 6e 75 20 69 74 65 6d 20 77 69 |ade menu item wi| 00016b20 74 68 20 74 68 65 20 68 61 6e 64 6c 65 20 48 6c |th the handle Hl| 00016b30 70 49 74 65 6d 25 20 69 66 20 53 74 72 6f 6e 67 |pItem% if Strong| 00016b40 48 6c 70 0a 69 73 20 6e 6f 74 20 61 76 61 69 6c |Hlp.is not avail| 00016b50 61 62 6c 65 3a 0a 0a 20 20 3c 50 52 4f 43 73 68 |able:.. <PROCsh| 00016b60 65 6c 6c 5f 4d 65 6e 75 53 68 61 64 65 3e 28 48 |ell_MenuShade>(H| 00016b70 6c 70 49 74 65 6d 25 2c 28 3c 46 4e 73 68 65 6c |lpItem%,(<FNshel| 00016b80 6c 5f 53 74 72 6f 6e 67 48 6c 70 49 73 41 76 61 |l_StrongHlpIsAva| 00016b90 69 6c 61 62 6c 65 3e 3d 30 29 29 45 78 61 6d 70 |ilable>=0))Examp| 00016ba0 6c 65 20 43 6f 64 65 20 28 49 63 6f 6e 62 61 72 |le Code (Iconbar| 00016bb0 29 0a 50 6c 61 63 65 20 61 20 73 70 72 69 74 65 |).Place a sprite| 00016bc0 20 63 61 6c 6c 65 64 20 22 21 4d 79 41 70 70 22 | called "!MyApp"| 00016bd0 20 6f 6e 20 74 68 65 20 72 69 67 68 74 20 73 69 | on the right si| 00016be0 64 65 20 6f 66 20 74 68 65 20 69 63 6f 6e 62 61 |de of the iconba| 00016bf0 72 20 77 69 74 68 0a 74 68 65 20 74 65 78 74 20 |r with.the text | 00016c00 22 46 72 65 64 22 20 62 65 6c 6f 77 20 69 74 20 |"Fred" below it | 00016c10 61 6e 64 20 61 74 74 61 63 68 20 74 68 65 20 6d |and attach the m| 00016c20 65 6e 75 20 77 69 74 68 20 74 68 65 20 68 61 6e |enu with the han| 00016c30 64 6c 65 0a 27 4d 65 6e 75 48 61 6e 64 6c 65 5f |dle.'MenuHandle_| 00016c40 49 63 6f 6e 42 61 72 25 27 3a 0a 0a 73 69 63 6f |IconBar%':..sico| 00016c50 6e 3d 46 4e 73 68 65 6c 6c 5f 49 63 6f 6e 62 61 |n=FNshell_Iconba| 00016c60 72 28 2d 31 2c 22 21 4d 79 41 70 70 22 2c 22 46 |r(-1,"!MyApp","F| 00016c70 72 65 64 22 2c 31 32 30 2c 4d 65 6e 75 48 61 6e |red",120,MenuHan| 00016c80 64 6c 65 5f 49 63 6f 6e 42 61 72 25 2c 30 2c 30 |dle_IconBar%,0,0| 00016c90 2c 30 29 4d 65 6e 75 57 72 69 74 61 62 6c 65 20 |,0)MenuWritable | 00016ca0 53 74 61 74 65 73 0a 54 68 65 20 73 74 61 74 65 |States.The state| 00016cb0 20 69 73 20 30 20 66 6f 72 20 6e 6f 6e 20 77 72 | is 0 for non wr| 00016cc0 69 74 61 62 6c 65 2c 20 6e 6f 6e 20 30 0a 66 6f |itable, non 0.fo| 00016cd0 72 20 77 72 69 74 61 62 6c 65 2e 50 52 4f 43 73 |r writable.PROCs| 00016ce0 68 65 6c 6c 5f 4d 65 6e 75 57 72 69 74 61 62 6c |hell_MenuWritabl| 00016cf0 65 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 |e().Params =>. | 00016d00 20 20 20 20 20 20 20 69 6e 74 20 6d 65 6e 75 20 | int menu | 00016d10 6f 72 20 6d 65 6e 75 20 69 74 65 6d 20 68 61 6e |or menu item han| 00016d20 64 6c 65 0a 20 20 20 20 20 20 20 20 20 69 6e 74 |dle. int| 00016d30 20 3c 73 74 61 74 65 3d 3e 6d 65 6e 75 77 72 69 | <state=>menuwri| 00016d40 74 65 66 6c 61 67 73 3e 0a 20 20 20 20 20 20 20 |teflags>. | 00016d50 20 20 69 6e 74 20 73 69 7a 65 20 6f 66 20 69 6e | int size of in| 00016d60 64 69 72 65 63 74 65 64 20 62 75 66 66 65 72 0a |directed buffer.| 00016d70 20 20 20 20 20 20 20 20 20 73 74 72 20 3c 76 61 | str <va| 00016d80 6c 69 64 61 74 69 6f 6e 20 73 74 72 69 6e 67 3d |lidation string=| 00016d90 3e 53 57 49 2e 57 69 6d 70 5f 76 61 6c 69 64 61 |>SWI.Wimp_valida| 00016da0 74 69 6f 6e 73 74 72 69 6e 67 3e 0a 0a 4d 61 6b |tionstring>..Mak| 00016db0 65 73 20 74 68 65 20 67 69 76 65 6e 20 6d 65 6e |es the given men| 00016dc0 75 20 69 74 65 6d 20 77 72 69 74 61 62 6c 65 20 |u item writable | 00016dd0 6f 72 20 6e 6f 6e 20 77 72 69 74 61 62 6c 65 0a |or non writable.| 00016de0 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 |depending on the| 00016df0 20 73 74 61 74 65 20 70 61 72 61 6d 65 74 65 72 | state parameter| 00016e00 2e 20 49 66 20 61 20 6d 65 6e 75 20 68 61 6e 64 |. If a menu hand| 00016e10 6c 65 0a 69 73 20 67 69 76 65 6e 20 74 68 65 6e |le.is given then| 00016e20 20 61 6c 6c 20 69 74 65 6d 73 20 69 6e 20 74 68 | all items in th| 00016e30 65 20 6d 65 6e 75 20 61 72 65 20 6d 61 64 65 0a |e menu are made.| 00016e40 77 72 69 74 61 62 6c 65 20 6f 72 20 6e 6f 6e 20 |writable or non | 00016e50 77 72 69 74 61 62 6c 65 2e 0a 0a 4c 69 62 72 61 |writable...Libra| 00016e60 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 4d 65 6e |ry Group => <Men| 00016e70 75 73 3d 3e 4c 69 62 47 72 6f 75 70 4d 65 6e 75 |us=>LibGroupMenu| 00016e80 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 4d 65 6e 75 |s>PROCshell_Menu| 00016e90 44 6f 74 74 65 64 28 29 0a 50 61 72 61 6d 73 20 |Dotted().Params | 00016ea0 3d 3e 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 |=>. int | 00016eb0 6d 65 6e 75 20 6f 72 20 6d 65 6e 75 20 69 74 65 |menu or menu ite| 00016ec0 6d 20 68 61 6e 64 6c 65 0a 20 20 20 20 20 20 20 |m handle. | 00016ed0 20 20 69 6e 74 20 3c 73 74 61 74 65 3d 3e 6d 65 | int <state=>me| 00016ee0 6e 75 64 6f 74 66 6c 61 67 73 3e 0a 0a 41 64 64 |nudotflags>..Add| 00016ef0 73 20 6f 72 20 72 65 6d 6f 76 65 73 20 61 20 64 |s or removes a d| 00016f00 6f 74 74 65 64 20 6c 69 6e 65 20 66 72 6f 6d 20 |otted line from | 00016f10 62 65 6c 6f 77 0a 74 68 65 20 67 69 76 65 6e 20 |below.the given | 00016f20 6d 65 6e 75 20 69 74 65 6d 2e 20 49 66 20 61 20 |menu item. If a | 00016f30 6d 65 6e 75 20 68 61 6e 64 6c 65 20 69 73 0a 67 |menu handle is.g| 00016f40 69 76 65 6e 20 69 6e 73 74 65 61 64 20 61 6c 6c |iven instead all| 00016f50 20 69 74 65 6d 73 20 69 6e 20 74 68 65 20 6d 65 | items in the me| 00016f60 6e 75 20 61 72 65 0a 65 66 66 65 63 74 65 64 2e |nu are.effected.| 00016f70 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 |..Library Group | 00016f80 3d 3e 20 3c 4d 65 6e 75 73 3d 3e 4c 69 62 47 72 |=> <Menus=>LibGr| 00016f90 6f 75 70 4d 65 6e 75 73 3e 4d 65 6e 75 44 6f 74 |oupMenus>MenuDot| 00016fa0 74 65 64 20 53 74 61 74 65 73 0a 54 68 65 20 73 |ted States.The s| 00016fb0 74 61 74 65 20 69 73 20 30 20 66 6f 72 20 6e 6f |tate is 0 for no| 00016fc0 20 64 6f 74 74 65 64 20 6c 69 6e 65 2c 20 6e 6f | dotted line, no| 00016fd0 6e 20 30 0a 66 6f 72 20 61 20 6c 69 6e 65 2e 46 |n 0.for a line.F| 00016fe0 4e 73 68 65 6c 6c 5f 4d 65 6e 75 4e 65 77 28 29 |Nshell_MenuNew()| 00016ff0 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 |.Params =>. | 00017000 20 20 20 20 73 74 72 20 6d 65 6e 75 20 74 69 74 | str menu tit| 00017010 6c 65 0a 0a 20 20 20 20 20 20 20 5c 3c 3d 0a 20 |le.. \<=. | 00017020 20 20 20 20 20 20 20 20 69 6e 74 20 6d 65 6e 75 | int menu| 00017030 20 68 61 6e 64 6c 65 0a 20 20 20 20 20 20 20 20 | handle. | 00017040 20 0a 43 72 65 61 74 65 73 20 61 20 6e 65 77 20 | .Creates a new | 00017050 6d 65 6e 75 20 77 69 74 68 20 74 68 65 20 67 69 |menu with the gi| 00017060 76 65 6e 20 74 69 74 6c 65 2e 0a 0a 4c 69 62 72 |ven title...Libr| 00017070 61 72 79 20 47 72 6f 75 70 20 3e 20 3c 4d 65 6e |ary Group > <Men| 00017080 75 73 3d 3e 4c 69 62 47 72 6f 75 70 4d 65 6e 75 |us=>LibGroupMenu| 00017090 73 3e 46 4e 73 68 65 6c 6c 5f 4d 65 6e 75 41 64 |s>FNshell_MenuAd| 000170a0 64 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 |d().Params =>. | 000170b0 20 20 20 20 20 20 20 69 6e 74 20 6d 65 6e 75 20 | int menu | 000170c0 6f 72 20 6d 65 6e 75 20 69 74 65 6d 20 68 61 6e |or menu item han| 000170d0 64 6c 65 0a 20 20 20 20 20 20 20 20 20 73 74 72 |dle. str| 000170e0 20 74 65 78 74 20 66 6f 72 20 6d 65 6e 75 20 69 | text for menu i| 000170f0 74 65 6d 0a 20 20 20 20 20 20 20 20 20 73 74 72 |tem. str| 00017100 20 3c 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 3d | <function name=| 00017110 3e 55 73 65 72 46 4e 31 31 3e 0a 0a 20 20 20 20 |>UserFN11>.. | 00017120 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 20 | \<=. | 00017130 69 6e 74 20 6d 65 6e 75 20 69 74 65 6d 20 68 61 |int menu item ha| 00017140 6e 64 6c 65 0a 20 20 20 20 20 20 20 20 20 0a 41 |ndle. .A| 00017150 64 64 73 20 61 20 6e 65 77 20 69 74 65 6d 20 74 |dds a new item t| 00017160 6f 20 61 6e 20 65 78 69 73 74 69 6e 67 20 6d 65 |o an existing me| 00017170 6e 75 2e 20 49 66 20 61 20 6d 65 6e 75 0a 68 61 |nu. If a menu.ha| 00017180 6e 64 6c 65 20 69 73 20 67 69 76 65 6e 20 74 68 |ndle is given th| 00017190 65 6e 20 74 68 65 20 6e 65 77 20 69 74 65 6d 20 |en the new item | 000171a0 69 73 20 61 64 64 65 64 20 74 6f 0a 74 68 65 20 |is added to.the | 000171b0 65 6e 64 20 6f 66 20 74 68 65 20 6d 65 6e 75 2c |end of the menu,| 000171c0 20 69 66 20 61 6e 20 69 74 65 6d 20 68 61 6e 64 | if an item hand| 000171d0 6c 65 20 69 73 20 67 69 76 65 6e 0a 74 68 65 20 |le is given.the | 000171e0 6e 65 77 20 69 74 65 6d 20 69 73 20 61 64 64 65 |new item is adde| 000171f0 64 20 62 65 66 6f 72 65 20 74 68 65 20 65 78 69 |d before the exi| 00017200 73 74 69 6e 67 20 69 74 65 6d 2e 0a 0a 4c 69 62 |sting item...Lib| 00017210 72 61 72 79 20 47 72 6f 75 70 20 3e 20 3c 4d 65 |rary Group > <Me| 00017220 6e 75 73 3d 3e 4c 69 62 47 72 6f 75 70 4d 65 6e |nus=>LibGroupMen| 00017230 75 73 3e 55 73 65 72 20 46 4e 20 28 46 4e 73 68 |us>User FN (FNsh| 00017240 65 6c 6c 5f 4d 65 6e 75 41 64 64 29 0a 50 61 72 |ell_MenuAdd).Par| 00017250 61 6d 73 20 3d 3e 20 0a 20 20 20 20 20 20 20 20 |ams => . | 00017260 20 69 6e 74 20 6d 65 6e 75 20 3c 64 65 63 6f 64 | int menu <decod| 00017270 65 20 62 6c 6f 63 6b 3d 3e 6d 65 6e 75 64 65 63 |e block=>menudec| 00017280 6f 64 65 62 6c 6b 3e 4d 65 6e 75 20 64 65 63 6f |odeblk>Menu deco| 00017290 64 65 20 62 6c 6f 63 6b 0a 62 6c 6b 2b 30 30 20 |de block.blk+00 | 000172a0 70 6f 73 69 74 69 6f 6e 20 6f 66 20 73 65 6c 65 |position of sele| 000172b0 63 74 65 64 20 6d 65 6e 75 20 69 74 65 6d 20 69 |cted menu item i| 000172c0 6e 20 6d 65 6e 75 20 28 73 74 61 72 74 69 6e 67 |n menu (starting| 000172d0 20 66 72 6f 6d 20 30 29 0a 62 6c 6b 2b 30 34 20 | from 0).blk+04 | 000172e0 70 6f 69 6e 74 65 72 20 74 6f 20 73 65 6c 65 63 |pointer to selec| 000172f0 74 65 64 20 69 74 65 6d 20 64 61 74 61 0a 62 6c |ted item data.bl| 00017300 6b 2b 30 38 20 73 65 6c 65 63 74 65 64 20 69 74 |k+08 selected it| 00017310 65 6d 20 68 61 6e 64 6c 65 20 6f 72 20 7a 65 72 |em handle or zer| 00017320 6f 20 69 66 20 69 74 65 6d 20 77 61 73 20 63 72 |o if item was cr| 00017330 65 61 74 65 64 20 77 69 74 68 6f 75 74 20 4d 65 |eated without Me| 00017340 6e 75 55 74 69 6c 73 0a 62 6c 6b 2b 31 32 20 70 |nuUtils.blk+12 p| 00017350 6f 69 6e 74 65 72 20 74 6f 20 74 65 78 74 20 73 |ointer to text s| 00017360 74 72 69 6e 67 20 6f 66 20 73 65 6c 65 63 74 65 |tring of selecte| 00017370 64 20 69 74 65 6d 0a 62 6c 6b 2b 31 36 20 70 6f |d item.blk+16 po| 00017380 73 69 74 69 6f 6e 20 6f 66 20 70 61 72 65 6e 74 |sition of parent| 00017390 20 6d 65 6e 75 20 69 74 65 6d 20 69 6e 20 6d 65 | menu item in me| 000173a0 6e 75 20 28 73 74 61 72 74 69 6e 67 20 66 72 6f |nu (starting fro| 000173b0 6d 20 30 29 0a 62 6c 6b 2b 32 30 20 70 6f 69 6e |m 0).blk+20 poin| 000173c0 74 65 72 20 74 6f 20 70 61 72 65 6e 74 20 69 74 |ter to parent it| 000173d0 65 6d 20 64 61 74 61 0a 62 6c 6b 2b 32 34 20 70 |em data.blk+24 p| 000173e0 61 72 65 6e 74 20 69 74 65 6d 20 68 61 6e 64 6c |arent item handl| 000173f0 65 20 6f 72 20 7a 65 72 6f 20 69 66 20 69 74 65 |e or zero if ite| 00017400 6d 20 77 61 73 20 63 72 65 61 74 65 64 20 77 69 |m was created wi| 00017410 74 68 6f 75 74 20 4d 65 6e 75 55 74 69 6c 73 0a |thout MenuUtils.| 00017420 62 6c 6b 2b 32 38 20 70 6f 69 6e 74 65 72 20 74 |blk+28 pointer t| 00017430 6f 20 74 65 78 74 20 73 74 72 69 6e 67 20 6f 66 |o text string of| 00017440 20 70 61 72 65 6e 74 20 69 74 65 6d 20 50 52 4f | parent item PRO| 00017450 43 73 68 65 6c 6c 5f 4d 65 6e 75 54 69 63 6b 4f |Cshell_MenuTickO| 00017460 6e 6c 79 31 28 29 0a 50 61 72 61 6d 73 20 3d 3e |nly1().Params =>| 00017470 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 6d 65 |. int me| 00017480 6e 75 20 68 61 6e 64 6c 65 0a 20 20 20 20 20 20 |nu handle. | 00017490 20 20 20 69 6e 74 20 70 6f 73 69 74 69 6f 6e 20 | int position | 000174a0 6f 66 20 69 74 65 6d 20 69 6e 20 6d 65 6e 75 0a |of item in menu.| 000174b0 0a 54 69 63 6b 73 20 6f 6e 6c 79 20 74 68 65 20 |.Ticks only the | 000174c0 69 74 65 6d 20 67 69 76 65 6e 20 62 79 20 74 68 |item given by th| 000174d0 65 20 6d 65 6e 75 20 68 61 6e 64 6c 65 0a 61 6e |e menu handle.an| 000174e0 64 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 6f |d the position o| 000174f0 66 20 74 68 65 20 69 74 65 6d 2e 20 54 68 69 73 |f the item. This| 00017500 20 63 61 6c 6c 20 69 73 0a 70 72 6f 76 69 64 65 | call is.provide| 00017510 64 20 66 6f 72 20 77 68 65 6e 20 79 6f 75 20 64 |d for when you d| 00017520 6f 6e 27 74 20 6b 6e 6f 77 20 74 68 65 20 68 61 |on't know the ha| 00017530 6e 64 6c 65 0a 6f 66 20 74 68 65 20 6d 65 6e 75 |ndle.of the menu| 00017540 20 69 74 65 6d 2e 0a 0a 53 65 65 20 61 6c 73 6f | item...See also| 00017550 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 4d 65 6e 75 | <PROCshell_Menu| 00017560 54 69 63 6b 4f 6e 6c 79 32 3e 0a 0a 4c 69 62 72 |TickOnly2>..Libr| 00017570 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 4d 65 |ary Group => <Me| 00017580 6e 75 73 3d 3e 4c 69 62 47 72 6f 75 70 4d 65 6e |nus=>LibGroupMen| 00017590 75 73 3e 46 4e 73 68 65 6c 6c 5f 4d 65 6e 75 54 |us>FNshell_MenuT| 000175a0 69 63 6b 4f 6e 6c 79 32 28 29 0a 50 61 72 61 6d |ickOnly2().Param| 000175b0 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 69 6e |s =>. in| 000175c0 74 20 6d 65 6e 75 20 69 74 65 6d 20 68 61 6e 64 |t menu item hand| 000175d0 6c 65 0a 0a 54 69 63 6b 73 20 6f 6e 6c 79 20 74 |le..Ticks only t| 000175e0 68 65 20 69 74 65 6d 20 67 69 76 65 6e 20 62 79 |he item given by| 000175f0 20 74 68 65 20 6d 65 6e 75 20 69 74 65 6d 0a 68 | the menu item.h| 00017600 61 6e 64 6c 65 2e 0a 0a 53 65 65 20 61 6c 73 6f |andle...See also| 00017610 20 3c 50 52 4f 43 73 68 65 6c 6c 5f 4d 65 6e 75 | <PROCshell_Menu| 00017620 54 69 63 6b 4f 6e 6c 79 31 3e 0a 0a 4c 69 62 72 |TickOnly1>..Libr| 00017630 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 4d 65 |ary Group => <Me| 00017640 6e 75 73 3d 3e 4c 69 62 47 72 6f 75 70 4d 65 6e |nus=>LibGroupMen| 00017650 75 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 4d 65 6e |us>PROCshell_Men| 00017660 75 43 6f 6c 6f 75 72 73 28 29 0a 50 61 72 61 6d |uColours().Param| 00017670 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 69 6e |s =>. in| 00017680 74 20 6d 65 6e 75 20 69 74 65 6d 20 68 61 6e 64 |t menu item hand| 00017690 6c 65 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 |le. int | 000176a0 66 6f 72 65 67 72 6f 75 6e 64 20 63 6f 6c 6f 75 |foreground colou| 000176b0 72 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 62 |r. int b| 000176c0 61 63 6b 67 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 |ackground colour| 000176d0 0a 0a 53 65 74 73 20 74 68 65 20 66 6f 72 65 67 |..Sets the foreg| 000176e0 72 6f 75 6e 64 20 61 6e 64 20 62 61 63 6b 67 72 |round and backgr| 000176f0 6f 75 6e 64 20 63 6f 6c 6f 75 72 73 0a 6f 66 20 |ound colours.of | 00017700 74 68 65 20 69 74 65 6d 20 67 69 76 65 6e 2e 0a |the item given..| 00017710 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3e |.Library Group >| 00017720 20 3c 4d 65 6e 75 73 3d 3e 4c 69 62 47 72 6f 75 | <Menus=>LibGrou| 00017730 70 4d 65 6e 75 73 3e 41 6c 65 78 20 50 65 74 72 |pMenus>Alex Petr| 00017740 6f 76 20 0a 20 20 20 20 52 55 53 53 49 41 0a 20 |ov . RUSSIA. | 00017750 20 20 20 31 31 35 35 34 31 0a 20 20 20 20 4d 6f | 115541. Mo| 00017760 73 63 6f 77 0a 20 20 20 20 4b 61 76 6b 61 7a 73 |scow. Kavkazs| 00017770 6b 79 20 62 6f 75 6c 65 76 61 72 64 2c 20 32 39 |ky boulevard, 29| 00017780 0a 20 20 20 20 42 6c 64 2e 20 31 2c 20 46 6c 61 |. Bld. 1, Fla| 00017790 74 20 31 30 37 0a 20 20 20 20 41 6c 65 78 20 50 |t 107. Alex P| 000177a0 65 74 72 6f 76 20 20 20 20 0a 0a 45 2d 6d 61 69 |etrov ..E-mai| 000177b0 6c 3a 20 41 50 65 74 72 6f 76 40 6d 69 73 69 73 |l: APetrov@misis| 000177c0 2e 6d 73 6b 2e 73 75 0a 20 20 20 20 20 20 20 20 |.msk.su. | 000177d0 41 50 65 74 72 6f 76 40 61 72 6d 2e 6d 73 6b 2e |APetrov@arm.msk.| 000177e0 73 75 0a 20 20 20 20 20 20 20 0a 46 49 44 4f 20 |su. .FIDO | 000177f0 3a 20 20 32 3a 35 30 32 30 2f 31 30 34 2e 31 33 |: 2:5020/104.13| 00017800 0a 0a 20 70 68 6f 6e 65 3a 20 2b 37 20 30 39 35 |.. phone: +7 095| 00017810 20 33 32 32 20 32 30 39 38 0a 20 66 61 78 20 20 | 322 2098. fax | 00017820 3a 20 2b 37 20 30 39 35 20 32 33 36 20 38 33 35 |: +7 095 236 835| 00017830 30 0a 0a 41 75 74 68 6f 72 20 6f 66 20 74 68 65 |0..Author of the| 00017840 20 4d 65 6e 75 55 74 69 6c 73 20 6d 6f 64 75 6c | MenuUtils modul| 00017850 65 0a 77 68 69 63 68 20 70 72 6f 76 69 64 65 73 |e.which provides| 00017860 20 74 68 65 20 6d 65 6e 75 20 68 61 6e 64 6c 69 | the menu handli| 00017870 6e 67 2e 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f |ng.PROCshell_Ico| 00017880 6e 53 65 74 55 6e 73 65 6c 65 63 74 61 62 6c 65 |nSetUnselectable| 00017890 28 29 0a 50 61 72 61 6d 73 20 3d 3e 20 20 20 20 |().Params => | 000178a0 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 | . | 000178b0 20 69 6e 74 20 20 77 69 6e 64 6f 77 20 68 61 6e | int window han| 000178c0 64 6c 65 20 20 20 20 20 20 20 20 20 20 20 0a 20 |dle . | 000178d0 20 20 20 20 20 20 20 20 69 6e 74 20 20 69 63 6f | int ico| 000178e0 6e 20 68 61 6e 64 6c 65 20 0a 20 20 20 20 20 20 |n handle . | 000178f0 20 20 20 62 6f 6f 6c 20 73 74 61 74 65 20 28 30 | bool state (0| 00017900 20 74 6f 20 6d 61 6b 65 20 69 63 6f 6e 20 73 65 | to make icon se| 00017910 6c 65 63 74 61 62 6c 65 2c 0a 20 20 20 20 20 20 |lectable,. | 00017920 20 20 20 20 20 20 20 20 6e 6f 6e 20 30 20 74 6f | non 0 to| 00017930 20 6d 61 6b 65 20 69 74 20 75 6e 73 65 6c 65 63 | make it unselec| 00017940 74 61 62 6c 65 29 0a 0a 54 68 69 73 20 63 61 6c |table)..This cal| 00017950 6c 20 69 73 20 75 73 65 64 20 74 6f 20 6d 61 6b |l is used to mak| 00017960 65 20 69 63 6f 6e 73 20 75 6e 73 65 6c 65 63 74 |e icons unselect| 00017970 61 62 6c 65 0a 28 69 2e 65 2e 20 67 72 65 79 65 |able.(i.e. greye| 00017980 64 20 6f 75 74 29 20 64 65 70 65 6e 64 69 6e 67 |d out) depending| 00017990 20 6f 6e 20 74 68 65 20 76 61 6c 75 65 20 6f 66 | on the value of| 000179a0 0a 74 68 65 20 73 74 61 74 65 20 66 6c 61 67 2e |.the state flag.| 000179b0 20 49 66 20 74 68 65 20 69 63 6f 6e 20 63 6f 6e | If the icon con| 000179c0 74 61 69 6e 73 20 74 68 65 20 63 61 72 65 74 0a |tains the caret.| 000179d0 77 68 65 6e 20 69 74 20 69 73 20 6d 61 64 65 20 |when it is made | 000179e0 75 6e 73 65 6c 65 63 74 61 62 6c 65 2c 20 74 68 |unselectable, th| 000179f0 65 20 63 61 72 65 74 20 69 73 20 6c 6f 73 74 2e |e caret is lost.| 00017a00 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 |..Library Group | 00017a10 3d 3e 20 3c 49 63 6f 6e 73 3d 3e 4c 69 62 47 72 |=> <Icons=>LibGr| 00017a20 6f 75 70 49 63 6f 6e 73 3e 50 52 4f 43 73 68 65 |oupIcons>PROCshe| 00017a30 6c 6c 5f 49 63 6f 6e 53 65 74 53 65 6c 65 63 74 |ll_IconSetSelect| 00017a40 65 64 28 29 0a 50 61 72 61 6d 73 20 3d 3e 20 20 |ed().Params => | 00017a50 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 | . | 00017a60 20 69 6e 74 20 20 77 69 6e 64 6f 77 20 68 61 6e | int window han| 00017a70 64 6c 65 0a 20 20 20 20 20 20 20 20 20 69 6e 74 |dle. int| 00017a80 20 20 69 63 6f 6e 20 68 61 6e 64 6c 65 0a 20 20 | icon handle. | 00017a90 20 20 20 20 20 20 20 62 6f 6f 6c 20 73 74 61 74 | bool stat| 00017aa0 65 20 28 30 20 66 6f 72 20 64 65 73 65 6c 65 63 |e (0 for deselec| 00017ab0 74 65 64 2c 20 6e 6f 6e 20 30 0a 20 20 20 20 20 |ted, non 0. | 00017ac0 20 20 20 20 20 20 20 20 20 66 6f 72 20 73 65 6c | for sel| 00017ad0 65 63 74 65 64 29 0a 0a 54 68 69 73 20 63 61 6c |ected)..This cal| 00017ae0 6c 20 69 73 20 75 73 65 64 20 74 6f 20 73 65 6c |l is used to sel| 00017af0 65 63 74 20 6f 72 20 64 65 73 65 6c 65 63 74 20 |ect or deselect | 00017b00 69 63 6f 6e 73 0a 64 65 70 65 6e 64 69 6e 67 20 |icons.depending | 00017b10 6f 6e 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 |on the value of | 00017b20 74 68 65 20 73 74 61 74 65 20 66 6c 61 67 0a 0a |the state flag..| 00017b30 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e |Library Group =>| 00017b40 20 3c 49 63 6f 6e 73 3d 3e 4c 69 62 47 72 6f 75 | <Icons=>LibGrou| 00017b50 70 49 63 6f 6e 73 3e 4d 65 6d 6f 72 79 20 4d 61 |pIcons>Memory Ma| 00017b60 6e 61 67 65 6d 65 6e 74 20 0a 41 20 63 72 75 63 |nagement .A cruc| 00017b70 69 61 6c 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 |ial element of t| 00017b80 68 65 20 45 76 65 6e 74 53 68 65 6c 6c 20 6c 69 |he EventShell li| 00017b90 62 72 61 72 79 20 69 73 20 74 68 65 20 75 73 65 |brary is the use| 00017ba0 20 6f 66 20 6d 65 6d 6f 72 79 20 0a 6d 61 6e 61 | of memory .mana| 00017bb0 67 65 6d 65 6e 74 20 72 6f 75 74 69 6e 65 73 20 |gement routines | 00017bc0 6f 72 69 67 69 6e 61 6c 6c 79 20 70 75 62 6c 69 |originally publi| 00017bd0 73 68 65 64 20 69 6e 20 52 69 73 63 20 55 73 65 |shed in Risc Use| 00017be0 72 20 6d 61 67 61 7a 69 6e 65 20 0a 61 6e 64 20 |r magazine .and | 00017bf0 75 73 65 64 20 77 69 74 68 20 70 65 72 6d 69 73 |used with permis| 00017c00 73 69 6f 6e 2e 20 4d 61 6e 79 20 6c 69 62 72 61 |sion. Many libra| 00017c10 72 79 20 72 6f 75 74 69 6e 65 73 20 72 65 71 75 |ry routines requ| 00017c20 69 72 65 20 73 6f 6d 65 20 0a 6d 65 6d 6f 72 79 |ire some .memory| 00017c30 20 77 6f 72 6b 73 70 61 63 65 20 61 6e 64 20 74 | workspace and t| 00017c40 68 65 79 20 6f 62 74 61 69 6e 20 74 68 69 73 20 |hey obtain this | 00017c50 62 79 20 63 61 6c 6c 69 6e 67 20 0a 46 4e 73 68 |by calling .FNsh| 00017c60 65 6c 6c 5f 48 65 61 70 42 6c 6f 63 6b 46 65 74 |ell_HeapBlockFet| 00017c70 63 68 28 62 79 74 65 73 5f 72 65 71 75 69 72 65 |ch(bytes_require| 00017c80 64 29 20 77 68 69 63 68 20 72 65 74 75 72 6e 73 |d) which returns| 00017c90 20 74 68 65 20 61 64 64 72 65 73 73 20 0a 6f 66 | the address .of| 00017ca0 20 74 68 65 20 61 6c 6c 6f 63 61 74 65 64 20 6d | the allocated m| 00017cb0 65 6d 6f 72 79 20 61 6e 64 20 72 65 6c 65 61 73 |emory and releas| 00017cc0 65 20 69 74 20 77 68 65 6e 20 74 68 65 79 20 61 |e it when they a| 00017cd0 72 65 20 66 69 6e 69 73 68 65 64 20 0a 77 69 74 |re finished .wit| 00017ce0 68 20 50 52 4f 43 73 68 65 6c 6c 5f 48 65 61 70 |h PROCshell_Heap| 00017cf0 42 6c 6f 63 6b 52 65 74 75 72 6e 2e 20 0a 0a 54 |BlockReturn. ..T| 00017d00 68 69 73 20 69 73 20 76 69 74 61 6c 20 66 6f 72 |his is vital for| 00017d10 20 61 76 6f 69 64 69 6e 67 20 27 73 69 64 65 20 | avoiding 'side | 00017d20 65 66 66 65 63 74 73 27 20 63 61 75 73 65 64 20 |effects' caused | 00017d30 62 79 20 75 73 69 6e 67 20 74 68 65 20 0a 73 61 |by using the .sa| 00017d40 6d 65 20 62 6c 6f 63 6b 20 6f 66 20 6d 65 6d 6f |me block of memo| 00017d50 72 79 20 66 6f 72 20 64 69 66 66 65 72 65 6e 74 |ry for different| 00017d60 20 70 75 72 70 6f 73 65 73 20 61 73 20 6d 6f 73 | purposes as mos| 00017d70 74 20 57 49 4d 50 20 70 72 6f 67 72 61 6d 73 20 |t WIMP programs | 00017d80 0a 74 65 6e 64 20 74 6f 20 64 6f 2e 20 45 71 75 |.tend to do. Equ| 00017d90 61 6c 6c 79 20 69 6d 70 6f 72 74 61 6e 74 20 69 |ally important i| 00017da0 73 20 74 68 65 20 66 61 63 74 20 74 68 61 74 20 |s the fact that | 00017db0 61 73 20 74 68 65 20 72 6f 75 74 69 6e 65 73 20 |as the routines | 00017dc0 0a 61 72 65 20 77 72 69 74 74 65 6e 20 69 6e 20 |.are written in | 00017dd0 41 52 4d 20 63 6f 64 65 20 74 68 65 79 20 61 72 |ARM code they ar| 00017de0 65 20 65 78 74 72 65 6d 65 6c 79 20 66 61 73 74 |e extremely fast| 00017df0 2e 20 0a 0a 41 6e 6f 74 68 65 72 20 70 6f 69 6e |. ..Another poin| 00017e00 74 20 74 6f 20 6e 6f 74 65 20 69 73 20 74 68 61 |t to note is tha| 00017e10 74 20 74 68 69 73 20 6d 65 6d 6f 72 79 20 69 73 |t this memory is| 00017e20 20 63 6c 61 69 6d 65 64 20 66 72 6f 6d 20 74 68 | claimed from th| 00017e30 65 20 0a 63 75 72 72 65 6e 74 20 77 69 6d 70 20 |e .current wimp | 00017e40 73 6c 6f 74 20 61 6e 64 20 6e 6f 74 20 74 68 65 |slot and not the| 00017e50 20 52 4d 41 20 28 52 65 6c 6f 63 61 74 61 62 6c | RMA (Relocatabl| 00017e60 65 20 4d 6f 64 75 6c 65 20 41 72 65 61 29 2e 20 |e Module Area). | 00017e70 54 68 69 73 20 0a 65 6e 73 75 72 65 73 20 74 68 |This .ensures th| 00017e80 61 74 20 61 6c 6c 20 6f 66 20 74 68 65 20 6d 65 |at all of the me| 00017e90 6d 6f 72 79 20 63 6c 61 69 6d 65 64 20 62 79 20 |mory claimed by | 00017ea0 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 |the application | 00017eb0 69 73 20 0a 72 65 6c 65 61 73 65 64 20 62 61 63 |is .released bac| 00017ec0 6b 20 74 6f 20 74 68 65 20 66 72 65 65 20 70 6f |k to the free po| 00017ed0 6f 6c 20 77 68 65 6e 20 74 68 65 20 61 70 70 6c |ol when the appl| 00017ee0 69 63 61 74 69 6f 6e 20 71 75 69 74 73 20 2d 20 |ication quits - | 00017ef0 74 68 69 73 20 0a 69 73 20 6e 6f 74 20 74 68 65 |this .is not the| 00017f00 20 63 61 73 65 20 69 66 20 6d 65 6d 6f 72 79 20 | case if memory | 00017f10 69 73 20 63 6c 61 69 6d 65 64 20 66 72 6f 6d 20 |is claimed from | 00017f20 74 68 65 20 52 4d 41 2e 20 49 74 20 69 73 20 6f |the RMA. It is o| 00017f30 6e 6c 79 20 0a 70 6f 73 73 69 62 6c 65 20 74 6f |nly .possible to| 00017f40 20 72 65 63 6c 61 69 6d 20 52 4d 41 20 6d 65 6d | reclaim RMA mem| 00017f50 6f 72 79 20 69 66 20 74 68 65 20 66 72 65 65 20 |ory if the free | 00017f60 73 70 61 63 65 20 69 73 20 61 74 20 74 68 65 20 |space is at the | 00017f70 74 6f 70 20 6f 66 20 0a 74 68 65 20 52 4d 41 20 |top of .the RMA | 00017f80 77 68 69 63 68 20 6c 65 61 64 73 20 74 6f 20 74 |which leads to t| 00017f90 68 65 20 52 4d 41 20 61 6c 6c 6f 63 61 74 69 6f |he RMA allocatio| 00017fa0 6e 20 67 72 61 64 75 61 6c 6c 79 20 67 72 6f 77 |n gradually grow| 00017fb0 69 6e 67 20 61 73 20 0a 79 6f 75 20 72 75 6e 20 |ing as .you run | 00017fc0 61 6e 64 20 71 75 69 74 20 61 70 70 6c 69 63 61 |and quit applica| 00017fd0 74 69 6f 6e 73 2e 20 0a 0a 55 6e 66 6f 72 74 75 |tions. ..Unfortu| 00017fe0 6e 61 74 65 6c 79 20 28 69 6e 20 74 68 65 20 61 |nately (in the a| 00017ff0 75 74 68 6f 72 73 20 76 69 65 77 21 29 20 74 68 |uthors view!) th| 00018000 65 20 4d 65 6e 75 55 74 69 6c 73 20 6d 6f 64 75 |e MenuUtils modu| 00018010 6c 65 20 75 73 65 73 20 0a 74 68 65 20 52 4d 41 |le uses .the RMA| 00018020 20 66 6f 72 20 73 74 6f 72 61 67 65 20 6f 66 20 | for storage of | 00018030 69 6e 64 69 72 65 63 74 65 64 20 64 61 74 61 20 |indirected data | 00018040 61 6e 64 20 6d 65 6e 75 20 73 74 72 75 63 74 75 |and menu structu| 00018050 72 65 73 2e 20 0a 48 6f 70 65 66 75 6c 6c 79 20 |res. .Hopefully | 00018060 74 68 69 73 20 64 61 74 61 20 67 65 74 73 20 70 |this data gets p| 00018070 75 74 20 69 6e 20 61 6e 79 20 73 6d 61 6c 6c 20 |ut in any small | 00018080 61 76 61 69 6c 61 62 6c 65 20 62 6c 6f 63 6b 73 |available blocks| 00018090 20 73 6f 20 0a 74 68 61 74 20 74 68 65 20 52 4d | so .that the RM| 000180a0 41 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 64 6f 65 |A allocation doe| 000180b0 73 20 6e 6f 74 20 69 6e 63 72 65 61 73 65 2e 20 |s not increase. | 000180c0 0a 0a 59 6f 75 20 61 72 65 20 73 74 72 6f 6e 67 |..You are strong| 000180d0 6c 79 20 61 64 76 69 73 65 64 20 74 6f 20 75 73 |ly advised to us| 000180e0 65 20 74 68 65 20 73 75 70 70 6c 69 65 64 20 6d |e the supplied m| 000180f0 65 6d 6f 72 79 20 6d 61 6e 61 67 65 6d 65 6e 74 |emory management| 00018100 20 0a 72 6f 75 74 69 6e 65 73 20 69 6e 20 74 68 | .routines in th| 00018110 65 20 75 73 65 72 20 61 70 70 6c 69 63 61 74 69 |e user applicati| 00018120 6f 6e 20 73 68 6f 75 6c 64 20 79 6f 75 20 72 65 |on should you re| 00018130 71 75 69 72 65 20 73 74 6f 72 61 67 65 20 66 6f |quire storage fo| 00018140 72 20 0a 64 61 74 61 2c 20 6f 72 20 74 65 6d 70 |r .data, or temp| 00018150 6f 72 61 72 79 20 62 6c 6f 63 6b 73 20 66 6f 72 |orary blocks for| 00018160 20 75 73 65 20 77 69 74 68 20 53 57 49 20 63 61 | use with SWI ca| 00018170 6c 6c 73 20 66 6f 72 20 65 78 61 6d 70 6c 65 2e |lls for example.| 00018180 20 54 68 65 20 0a 74 69 6d 65 20 70 65 6e 61 6c | The .time penal| 00018190 74 79 20 66 6f 72 20 64 6f 69 6e 67 20 74 68 69 |ty for doing thi| 000181a0 73 20 69 73 20 76 65 72 79 20 73 6d 61 6c 6c 20 |s is very small | 000181b0 61 6e 64 20 69 6e 20 61 6e 79 20 63 61 73 65 20 |and in any case | 000181c0 72 65 73 75 6c 74 73 20 0a 69 6e 20 61 20 6d 6f |results .in a mo| 000181d0 72 65 20 72 65 6c 69 61 62 6c 65 20 61 6e 64 20 |re reliable and | 000181e0 65 61 73 69 65 72 20 74 6f 20 6d 61 69 6e 74 61 |easier to mainta| 000181f0 69 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 2e 20 |in application. | 00018200 52 65 73 46 69 6e 64 20 0a 54 68 65 20 45 76 6e |ResFind .The Evn| 00018210 74 53 68 65 6c 6c 20 6c 69 62 72 61 72 79 20 6e |tShell library n| 00018220 6f 77 20 73 75 70 70 6f 72 74 73 20 52 65 73 46 |ow supports ResF| 00018230 69 6e 64 20 77 68 69 63 68 20 61 6c 6c 6f 77 73 |ind which allows| 00018240 20 74 68 65 20 0a 73 65 6c 65 63 74 69 6f 6e 20 | the .selection | 00018250 6f 66 20 74 68 65 20 64 65 73 69 72 65 64 20 6c |of the desired l| 00018260 61 6e 67 75 61 67 65 20 66 6f 72 20 6d 65 73 73 |anguage for mess| 00018270 61 67 65 20 66 69 6c 65 73 20 65 74 63 20 6d 75 |age files etc mu| 00018280 63 68 20 0a 65 61 73 69 65 72 2e 20 42 72 69 65 |ch .easier. Brie| 00018290 66 6c 79 20 65 78 70 6c 61 69 6e 65 64 20 69 74 |fly explained it| 000182a0 20 63 68 65 63 6b 73 20 74 68 65 20 63 75 72 72 | checks the curr| 000182b0 65 6e 74 6c 79 20 63 6f 6e 66 69 67 75 72 65 64 |ently configured| 000182c0 20 0a 6c 61 6e 67 75 61 67 65 20 6f 66 20 74 68 | .language of th| 000182d0 65 20 63 6f 6d 70 75 74 65 72 20 69 74 20 69 73 |e computer it is| 000182e0 20 72 75 6e 6e 69 6e 67 20 6f 6e 20 61 6e 64 20 | running on and | 000182f0 73 65 74 73 20 75 70 20 61 20 70 61 74 68 20 74 |sets up a path t| 00018300 6f 20 0a 74 68 65 20 72 65 73 6f 75 72 63 65 20 |o .the resource | 00018310 66 69 6c 65 73 2e 20 54 68 69 73 20 77 6f 75 6c |files. This woul| 00018320 64 20 6e 6f 72 6d 61 6c 6c 79 20 62 65 20 5c 3c |d normally be \<| 00018330 41 70 70 24 44 69 72 3e 2e 52 65 73 6f 75 72 63 |App$Dir>.Resourc| 00018340 65 73 2e 55 4b 0a 66 6f 72 20 61 20 55 4b 20 63 |es.UK.for a UK c| 00018350 6f 6e 66 69 67 75 72 65 64 20 63 6f 6d 70 75 74 |onfigured comput| 00018360 65 72 2c 20 6f 72 20 5c 3c 41 70 70 24 44 69 72 |er, or \<App$Dir| 00018370 3e 2e 52 65 73 6f 75 72 63 65 73 2e 47 65 72 6d |>.Resources.Germ| 00018380 61 6e 79 20 66 6f 72 20 0a 61 20 47 65 72 6d 61 |any for .a Germa| 00018390 6e 20 6f 6e 65 2e 20 0a 0a 41 70 70 42 75 69 6c |n one. ..AppBuil| 000183a0 64 20 6e 6f 77 20 6f 66 66 65 72 73 20 74 6f 20 |d now offers to | 000183b0 70 6c 61 63 65 20 74 68 65 20 72 65 73 6f 75 72 |place the resour| 000183c0 63 65 73 20 69 6e 20 74 68 65 20 61 70 70 72 6f |ces in the appro| 000183d0 70 72 69 61 74 65 20 0a 64 69 72 65 63 74 6f 72 |priate .director| 000183e0 69 65 73 20 66 6f 72 20 79 6f 75 20 77 68 65 6e |ies for you when| 000183f0 20 79 6f 75 20 63 72 65 61 74 65 20 61 20 6e 65 | you create a ne| 00018400 77 20 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 61 |w application, a| 00018410 6e 64 20 74 6f 20 70 6c 61 63 65 20 0a 61 20 63 |nd to place .a c| 00018420 61 6c 6c 20 74 6f 20 52 65 73 46 69 6e 64 20 69 |all to ResFind i| 00018430 6e 20 74 68 65 20 21 52 75 6e 20 66 69 6c 65 2e |n the !Run file.| 00018440 20 0a 0a 55 73 69 6e 67 20 52 65 73 46 69 6e 64 | ..Using ResFind| 00018450 20 69 73 20 6f 70 74 69 6f 6e 61 6c 20 61 6e 64 | is optional and| 00018460 20 45 76 6e 74 53 68 65 6c 6c 20 61 70 70 6c 69 | EvntShell appli| 00018470 63 61 74 69 6f 6e 73 20 77 69 6c 6c 20 0a 66 75 |cations will .fu| 00018480 6e 63 74 69 6f 6e 20 65 71 75 61 6c 6c 79 20 77 |nction equally w| 00018490 65 6c 6c 20 69 66 20 79 6f 75 20 64 6f 6e 27 74 |ell if you don't| 000184a0 20 75 73 65 20 69 74 2e 20 49 74 20 64 6f 65 73 | use it. It does| 000184b0 20 6d 61 6b 65 20 74 68 65 20 0a 70 72 6f 64 75 | make the .produ| 000184c0 63 74 69 6f 6e 20 6f 66 20 61 70 70 6c 69 63 61 |ction of applica| 000184d0 74 69 6f 6e 73 20 74 68 61 74 20 63 61 6e 20 62 |tions that can b| 000184e0 65 20 65 61 73 69 6c 79 20 75 73 65 64 20 69 6e |e easily used in| 000184f0 20 61 6e 79 20 63 6f 75 6e 74 72 79 20 0a 6d 75 | any country .mu| 00018500 63 68 20 65 61 73 69 65 72 2c 20 68 6f 77 65 76 |ch easier, howev| 00018510 65 72 2c 20 61 6e 64 20 74 68 69 73 20 73 68 6f |er, and this sho| 00018520 75 6c 64 20 62 65 20 65 6e 63 6f 75 72 61 67 65 |uld be encourage| 00018530 64 2e 20 4d 6f 73 74 20 6f 66 20 74 68 65 20 0a |d. Most of the .| 00018540 70 72 6f 67 72 61 6d 6d 69 6e 67 20 74 6f 6f 6c |programming tool| 00018550 73 20 61 6e 64 20 6d 6f 64 75 6c 65 73 20 75 73 |s and modules us| 00018560 65 64 20 64 75 72 69 6e 67 20 74 68 65 20 64 65 |ed during the de| 00018570 76 65 6c 6f 70 6d 65 6e 74 20 6f 66 20 74 68 69 |velopment of thi| 00018580 73 20 0a 6c 69 62 72 61 72 79 20 77 65 72 65 20 |s .library were | 00018590 77 72 69 74 74 65 6e 20 6f 75 74 73 69 64 65 20 |written outside | 000185a0 74 68 65 20 55 4b 2e 20 0a 0a 54 68 65 20 61 75 |the UK. ..The au| 000185b0 74 68 6f 72 20 77 6f 75 6c 64 20 61 70 70 72 65 |thor would appre| 000185c0 63 69 61 74 65 20 68 65 6c 70 20 69 6e 20 74 72 |ciate help in tr| 000185d0 61 6e 73 6c 61 74 69 6e 67 20 74 68 65 20 53 68 |anslating the Sh| 000185e0 65 6c 6c 4d 73 67 73 20 0a 66 69 6c 65 20 61 6e |ellMsgs .file an| 000185f0 64 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 |d the documentat| 00018600 69 6f 6e 20 69 6e 74 6f 20 6f 74 68 65 72 20 6c |ion into other l| 00018610 61 6e 67 75 61 67 65 73 2e 20 0a 0a 52 65 73 46 |anguages. ..ResF| 00018620 69 6e 64 20 69 73 20 63 6f 70 79 72 69 67 68 74 |ind is copyright| 00018630 20 4f 6c 61 66 20 4b 72 75 6d 6e 6f 77 20 61 6e | Olaf Krumnow an| 00018640 64 20 48 65 72 62 65 72 74 20 7a 75 72 20 4e 65 |d Herbert zur Ne| 00018650 64 64 65 6e 20 6f 66 20 74 68 65 0a 47 65 72 6d |dden of the.Germ| 00018660 61 6e 20 41 72 63 68 69 6d 65 64 65 73 20 47 72 |an Archimedes Gr| 00018670 6f 75 70 20 28 47 41 47 29 2e 0a 0a 54 68 65 20 |oup (GAG)...The | 00018680 66 75 6c 6c 20 52 65 73 46 69 6e 64 20 64 6f 63 |full ResFind doc| 00018690 75 6d 65 6e 74 61 74 69 6f 6e 20 73 75 70 70 6c |umentation suppl| 000186a0 69 65 64 20 77 69 74 68 20 74 68 65 20 6c 69 62 |ied with the lib| 000186b0 72 61 72 79 20 63 6f 6e 74 61 69 6e 73 20 0a 66 |rary contains .f| 000186c0 75 72 74 68 65 72 20 64 65 74 61 69 6c 73 20 6f |urther details o| 000186d0 6e 20 68 6f 77 20 69 74 20 77 6f 72 6b 73 20 61 |n how it works a| 000186e0 6e 64 20 74 68 65 20 61 64 76 61 6e 74 61 67 65 |nd the advantage| 000186f0 73 20 74 6f 20 62 65 20 67 61 69 6e 65 64 20 0a |s to be gained .| 00018700 62 79 20 75 73 69 6e 67 20 69 74 2e 20 41 73 20 |by using it. As | 00018710 61 20 74 61 73 74 65 72 2c 20 68 65 72 65 20 69 |a taster, here i| 00018720 73 20 74 68 65 20 70 61 72 74 20 6f 66 20 74 68 |s the part of th| 00018730 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 |e documentation | 00018740 0a 69 6e 74 65 6e 64 65 64 20 74 6f 20 62 65 20 |.intended to be | 00018750 64 69 73 74 72 69 62 75 74 65 64 20 77 69 74 68 |distributed with| 00018760 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 75 73 | applications us| 00018770 69 6e 67 20 52 65 73 46 69 6e 64 2e 0a 0a 28 42 |ing ResFind...(B| 00018780 61 73 65 20 66 6f 72 20 74 68 65 20 61 70 70 6c |ase for the appl| 00018790 69 63 61 74 69 6f 6e 27 73 20 64 6f 63 75 6d 65 |ication's docume| 000187a0 6e 74 61 74 69 6f 6e 20 2d 20 70 6c 65 61 73 65 |ntation - please| 000187b0 20 72 65 70 6c 61 63 65 0a 5c 3c 50 72 6f 67 4e | replace.\<ProgN| 000187c0 61 6d 65 3e 20 62 79 20 74 68 65 20 6e 61 6d 65 |ame> by the name| 000187d0 20 6f 66 20 79 6f 75 72 20 61 70 70 6c 69 63 61 | of your applica| 000187e0 74 69 6f 6e 20 77 69 74 68 6f 75 74 20 74 68 65 |tion without the| 000187f0 20 21 29 0a 0a 21 5c 3c 50 72 6f 67 4e 61 6d 65 | !)..!\<ProgName| 00018800 3e 20 61 64 61 70 74 73 20 61 75 74 6f 6d 61 74 |> adapts automat| 00018810 69 63 61 6c 6c 79 20 74 6f 20 74 68 65 20 63 6f |ically to the co| 00018820 6e 66 69 67 75 72 65 64 20 6c 61 6e 67 75 61 67 |nfigured languag| 00018830 65 20 69 66 0a 74 68 65 20 63 6f 72 72 65 73 70 |e if.the corresp| 00018840 6f 6e 64 69 6e 67 20 6d 65 73 73 61 67 65 73 20 |onding messages | 00018850 65 74 63 2e 20 61 72 65 20 61 76 61 69 6c 61 62 |etc. are availab| 00018860 6c 65 2e 20 46 6f 72 20 74 68 69 73 20 70 75 72 |le. For this pur| 00018870 70 6f 73 65 0a 61 20 52 65 73 6f 75 72 63 65 73 |pose.a Resources| 00018880 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 63 6f | directory is co| 00018890 6e 74 61 69 6e 65 64 20 69 6e 20 74 68 65 20 61 |ntained in the a| 000188a0 70 70 6c 69 63 61 74 69 6f 6e 20 69 6e 20 77 68 |pplication in wh| 000188b0 69 63 68 0a 61 20 73 75 62 64 69 72 65 63 74 6f |ich.a subdirecto| 000188c0 72 79 20 66 6f 72 20 65 61 63 68 20 6c 61 6e 67 |ry for each lang| 000188d0 75 61 67 65 20 73 75 70 70 6f 72 74 65 64 20 72 |uage supported r| 000188e0 65 73 69 64 65 73 2e 20 49 66 20 74 68 65 0a 6c |esides. If the.l| 000188f0 61 6e 67 75 61 67 65 20 79 6f 75 20 6e 65 65 64 |anguage you need| 00018900 20 69 73 6e 27 74 20 69 6e 20 74 68 65 72 65 2c | isn't in there,| 00018910 20 70 6c 65 61 73 65 20 66 65 65 6c 20 66 72 65 | please feel fre| 00018920 65 20 74 6f 20 64 75 70 6c 69 63 61 74 65 0a 61 |e to duplicate.a| 00018930 6e 79 20 6f 66 20 74 68 65 73 65 20 6c 61 6e 67 |ny of these lang| 00018940 75 61 67 65 20 64 69 72 65 63 74 6f 72 69 65 73 |uage directories| 00018950 20 61 6e 64 20 74 72 61 6e 73 6c 61 74 65 20 74 | and translate t| 00018960 68 65 20 63 6f 6e 74 65 6e 74 73 2e 0a 0a 57 68 |he contents...Wh| 00018970 65 6e 20 79 6f 75 20 72 75 6e 20 74 68 65 20 70 |en you run the p| 00018980 72 6f 67 72 61 6d 20 61 20 75 74 69 6c 69 74 79 |rogram a utility| 00018990 20 63 61 6c 6c 65 64 20 52 65 73 46 69 6e 64 20 | called ResFind | 000189a0 69 73 20 63 61 6c 6c 65 64 0a 77 68 69 63 68 20 |is called.which | 000189b0 72 65 61 64 73 20 74 68 65 20 6c 61 6e 67 75 61 |reads the langua| 000189c0 67 65 20 79 6f 75 72 20 63 6f 6d 70 75 74 65 72 |ge your computer| 000189d0 20 69 73 20 63 6f 6e 66 69 67 75 72 65 64 20 74 | is configured t| 000189e0 6f 20 61 6e 64 20 74 68 65 6e 0a 6c 6f 6f 6b 73 |o and then.looks| 000189f0 20 66 6f 72 20 74 68 65 20 63 6f 72 72 65 73 70 | for the corresp| 00018a00 6f 6e 64 69 6e 67 20 6c 61 6e 67 75 61 67 65 20 |onding language | 00018a10 64 69 72 65 63 74 6f 72 79 2e 20 49 66 20 74 68 |directory. If th| 00018a20 69 73 20 66 61 69 6c 73 0a 74 68 65 20 70 72 6f |is fails.the pro| 00018a30 67 72 61 6d 20 77 69 6c 6c 20 72 75 6e 20 69 6e |gram will run in| 00018a40 20 45 6e 67 6c 69 73 68 20 28 55 4b 29 2e 20 42 | English (UK). B| 00018a50 79 20 73 65 74 74 69 6e 67 20 73 65 76 65 72 61 |y setting severa| 00018a60 6c 20 73 79 73 74 65 6d 0a 76 61 72 69 61 62 6c |l system.variabl| 00018a70 65 73 20 28 62 65 73 74 20 64 6f 6e 65 20 69 6e |es (best done in| 00018a80 20 79 6f 75 72 20 73 79 73 74 65 6d 27 73 20 21 | your system's !| 00018a90 42 6f 6f 74 20 66 69 6c 65 29 20 79 6f 75 20 63 |Boot file) you c| 00018aa0 61 6e 20 63 68 61 6e 67 65 0a 74 68 65 20 6c 61 |an change.the la| 00018ab0 6e 67 75 61 67 65 20 6c 6f 6f 6b 65 64 20 66 6f |nguage looked fo| 00018ac0 72 2e 20 57 69 74 68 20 74 68 69 73 20 79 6f 75 |r. With this you| 00018ad0 20 63 61 6e 20 6d 61 6b 65 20 73 75 72 65 20 61 | can make sure a| 00018ae0 20 70 72 6f 67 72 61 6d 0a 72 75 6e 73 20 69 6e | program.runs in| 00018af0 20 61 20 63 65 72 74 61 69 6e 20 6c 61 6e 67 75 | a certain langu| 00018b00 61 67 65 2c 20 65 2e 67 2e 20 74 6f 20 61 76 6f |age, e.g. to avo| 00018b10 69 64 20 61 20 77 65 69 72 64 20 74 72 61 6e 73 |id a weird trans| 00018b20 6c 61 74 69 6f 6e 2e 0a 46 75 72 74 68 65 72 6d |lation..Furtherm| 00018b30 6f 72 65 20 69 74 20 69 73 20 70 6f 73 73 69 62 |ore it is possib| 00018b40 6c 65 20 74 6f 20 6e 61 6d 65 20 73 65 76 65 72 |le to name sever| 00018b50 61 6c 20 6c 61 6e 67 75 61 67 65 73 20 79 6f 75 |al languages you| 00018b60 20 70 72 65 66 65 72 0a 74 6f 20 45 6e 67 6c 69 | prefer.to Engli| 00018b70 73 68 2e 0a 0a 54 68 69 73 20 69 73 20 63 6f 6e |sh...This is con| 00018b80 74 72 6f 6c 6c 65 64 20 62 79 20 74 68 72 65 65 |trolled by three| 00018b90 20 73 79 73 74 65 6d 20 76 61 72 69 61 62 6c 65 | system variable| 00018ba0 73 3a 0a 0a 5c 3c 50 72 6f 67 4e 61 6d 65 3e 24 |s:..\<ProgName>$| 00018bb0 4c 61 6e 67 75 61 67 65 2c 20 52 65 73 46 69 6e |Language, ResFin| 00018bc0 64 24 4c 61 6e 67 75 61 67 65 73 50 72 65 66 20 |d$LanguagesPref | 00018bd0 61 6e 64 0a 52 65 73 46 69 6e 64 24 4c 61 6e 67 |and.ResFind$Lang| 00018be0 75 61 67 65 73 24 53 75 66 66 2e 0a 0a 57 68 65 |uages$Suff...Whe| 00018bf0 6e 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 61 70 |n running the ap| 00018c00 70 6c 69 63 61 74 69 6f 6e 20 52 65 73 46 69 6e |plication ResFin| 00018c10 64 20 6c 6f 6f 6b 73 20 66 6f 72 20 74 68 65 20 |d looks for the | 00018c20 66 69 72 73 74 20 6c 61 6e 67 75 61 67 65 0a 73 |first language.s| 00018c30 75 70 70 6f 72 74 65 64 20 61 6c 6f 6e 67 20 74 |upported along t| 00018c40 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c 69 73 |he following lis| 00018c50 74 20 6f 66 20 6c 61 6e 67 75 61 67 65 73 3a 0a |t of languages:.| 00018c60 0a 20 20 31 2e 20 43 6f 6e 74 65 6e 74 73 20 6f |. 1. Contents o| 00018c70 66 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 5c |f the variable \| 00018c80 3c 50 72 6f 67 4e 61 6d 65 3e 24 4c 61 6e 67 75 |<ProgName>$Langu| 00018c90 61 67 65 0a 20 20 32 2e 20 43 6f 6e 74 65 6e 74 |age. 2. Content| 00018ca0 73 20 6f 66 20 74 68 65 20 76 61 72 69 61 62 6c |s of the variabl| 00018cb0 65 20 52 65 73 46 69 6e 64 24 4c 61 6e 67 75 61 |e ResFind$Langua| 00018cc0 67 65 73 50 72 65 66 0a 20 20 33 2e 20 54 68 65 |gesPref. 3. The| 00018cd0 20 63 6f 6e 66 69 67 75 72 65 64 20 6c 61 6e 67 | configured lang| 00018ce0 75 61 67 65 0a 20 20 34 2e 20 43 6f 6e 74 65 6e |uage. 4. Conten| 00018cf0 74 73 20 6f 66 20 74 68 65 20 76 61 72 69 61 62 |ts of the variab| 00018d00 6c 65 20 52 65 73 46 69 6e 64 24 4c 61 6e 67 75 |le ResFind$Langu| 00018d10 61 67 65 73 53 75 66 66 0a 20 20 35 2e 20 55 4b |agesSuff. 5. UK| 00018d20 0a 0a 54 61 6b 65 20 61 20 4e 6f 72 77 65 67 69 |..Take a Norwegi| 00018d30 61 6e 20 75 73 65 72 20 66 6f 72 20 65 78 61 6d |an user for exam| 00018d40 70 6c 65 20 28 6c 6f 74 73 20 6f 66 20 67 72 65 |ple (lots of gre| 00018d50 61 74 20 70 72 6f 67 72 61 6d 73 20 63 6f 6d 65 |at programs come| 00018d60 0a 66 72 6f 6d 20 74 68 65 72 65 29 20 77 68 6f |.from there) who| 00018d70 73 65 20 63 6f 6d 70 75 74 65 72 20 69 73 20 63 |se computer is c| 00018d80 6f 6e 66 69 67 75 72 65 64 20 74 6f 20 27 4e 6f |onfigured to 'No| 00018d90 72 77 61 79 27 2e 20 53 69 6e 63 65 0a 74 68 69 |rway'. Since.thi| 00018da0 73 20 6c 61 6e 67 75 61 67 65 20 69 73 6e 27 74 |s language isn't| 00018db0 20 74 6f 6f 20 63 6f 6d 6d 6f 6e 20 69 6e 20 45 | too common in E| 00018dc0 75 72 6f 70 65 20 6d 6f 73 74 20 70 72 6f 67 72 |urope most progr| 00018dd0 61 6d 73 20 77 6f 6e 27 74 0a 73 75 70 70 6f 72 |ams won't.suppor| 00018de0 74 20 69 74 20 2d 20 65 78 63 65 70 74 20 66 6f |t it - except fo| 00018df0 72 20 4e 6f 72 77 65 67 69 61 6e 20 6f 6e 65 73 |r Norwegian ones| 00018e00 2e 20 42 75 74 20 6f 75 72 20 75 73 65 72 20 69 |. But our user i| 00018e10 73 20 70 72 65 74 74 79 0a 67 6f 6f 64 20 69 6e |s pretty.good in| 00018e20 20 47 65 72 6d 61 6e 20 61 6e 64 20 46 72 65 6e | German and Fren| 00018e30 63 68 20 62 75 74 20 6e 6f 74 20 74 6f 6f 20 66 |ch but not too f| 00018e40 6f 6e 64 20 6f 66 20 45 6e 67 6c 69 73 68 2e 20 |ond of English. | 00018e50 54 68 65 72 65 66 6f 72 65 0a 68 65 20 70 72 65 |Therefore.he pre| 00018e60 66 65 72 73 20 74 68 65 73 65 20 6c 61 6e 67 75 |fers these langu| 00018e70 61 67 65 73 20 74 6f 20 55 4b 20 61 6e 64 20 77 |ages to UK and w| 00018e80 6f 75 6c 64 20 74 68 75 73 20 70 75 74 20 74 68 |ould thus put th| 00018e90 65 20 66 6f 6c 6c 6f 77 69 6e 67 0a 6c 69 6e 65 |e following.line| 00018ea0 20 69 6e 20 68 69 73 20 73 79 73 74 65 6d 27 73 | in his system's| 00018eb0 20 21 42 6f 6f 74 20 66 69 6c 65 3a 0a 0a 2a 53 | !Boot file:..*S| 00018ec0 65 74 20 52 65 73 46 69 6e 64 24 4c 61 6e 67 75 |et ResFind$Langu| 00018ed0 61 67 65 73 53 75 66 66 20 47 65 72 6d 61 6e 79 |agesSuff Germany| 00018ee0 2c 46 72 61 6e 63 65 0a 0a 52 75 6e 6e 69 6e 67 |,France..Running| 00018ef0 20 61 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 | an applications| 00018f00 20 28 73 75 63 68 20 61 73 20 74 68 69 73 20 6f | (such as this o| 00018f10 6e 65 29 20 75 73 69 6e 67 20 52 65 73 46 69 6e |ne) using ResFin| 00018f20 64 20 74 68 65 20 6c 69 73 74 0a 6f 66 20 6c 61 |d the list.of la| 00018f30 6e 67 75 61 67 65 73 20 6c 6f 6f 6b 65 64 20 66 |nguages looked f| 00018f40 6f 72 20 69 73 20 27 4e 6f 72 77 61 79 2c 47 65 |or is 'Norway,Ge| 00018f50 72 6d 61 6e 79 2c 46 72 61 6e 63 65 2c 55 4b 27 |rmany,France,UK'| 00018f60 2e 0a 0a 49 6e 20 63 61 73 65 20 74 68 69 73 20 |...In case this | 00018f70 75 73 65 72 20 68 61 73 20 61 6e 20 61 70 70 6c |user has an appl| 00018f80 69 63 61 74 69 6f 6e 20 63 61 6c 6c 65 64 20 21 |ication called !| 00018f90 50 65 74 65 20 73 75 70 70 6f 72 74 69 6e 67 20 |Pete supporting | 00018fa0 74 68 65 0a 6c 61 6e 67 75 61 67 65 20 27 48 75 |the.language 'Hu| 00018fb0 6d 6f 72 6f 75 73 27 20 74 68 65 20 6c 69 6e 65 |morous' the line| 00018fc0 3a 0a 0a 2a 53 65 74 20 50 65 74 65 24 4c 61 6e |:..*Set Pete$Lan| 00018fd0 67 75 61 67 65 20 48 75 6d 6f 72 6f 75 73 0a 0a |guage Humorous..| 00018fe0 69 6e 20 74 68 65 20 21 42 6f 6f 74 20 66 69 6c |in the !Boot fil| 00018ff0 65 20 6d 61 6b 65 73 20 73 75 72 65 20 21 50 65 |e makes sure !Pe| 00019000 74 65 20 77 69 6c 6c 20 72 75 6e 20 68 75 6d 6f |te will run humo| 00019010 72 6f 75 73 2e 4f 6c 61 66 20 4b 72 75 6d 6e 6f |rous.Olaf Krumno| 00019020 77 0a 4f 6c 61 66 20 4b 72 75 6d 6e 6f 77 0a 41 |w.Olaf Krumnow.A| 00019030 75 67 75 73 74 2d 42 65 62 65 6c 2d 53 74 72 61 |ugust-Bebel-Stra| 00019040 73 73 65 20 31 30 32 63 0a 44 2d 32 31 30 32 39 |sse 102c.D-21029| 00019050 20 48 61 6d 62 75 72 67 20 38 30 0a 47 65 72 6d | Hamburg 80.Germ| 00019060 61 6e 79 0a 0a 28 2b 34 39 20 34 30 29 20 37 20 |any..(+49 40) 7 | 00019070 32 31 20 39 32 20 38 37 0a 0a 43 6f 2d 41 75 74 |21 92 87..Co-Aut| 00019080 68 6f 72 20 6f 66 20 52 65 73 46 69 6e 64 2c 0a |hor of ResFind,.| 00019090 61 20 73 79 73 74 65 6d 20 66 6f 72 20 73 65 6c |a system for sel| 000190a0 65 63 74 69 6e 67 0a 72 65 73 6f 75 72 63 65 20 |ecting.resource | 000190b0 66 69 6c 65 73 20 69 6e 20 74 68 65 0a 61 70 70 |files in the.app| 000190c0 72 6f 70 72 69 61 74 65 20 6c 61 6e 67 75 61 67 |ropriate languag| 000190d0 65 2e 48 65 72 62 65 72 74 20 7a 75 72 20 4e 65 |e.Herbert zur Ne| 000190e0 64 64 65 6e 0a 48 65 72 62 65 72 74 20 7a 75 72 |dden.Herbert zur| 000190f0 20 4e 65 64 64 65 6e 0a 41 6c 74 65 20 4c 61 6e | Nedden.Alte Lan| 00019100 64 73 74 72 61 73 73 65 20 32 31 0a 44 2d 32 32 |dstrasse 21.D-22| 00019110 39 36 32 20 53 69 65 6b 0a 47 65 72 6d 61 6e 79 |962 Siek.Germany| 00019120 0a 0a 28 2b 34 39 20 34 31 20 30 37 29 20 39 39 |..(+49 41 07) 99| 00019130 20 30 30 0a 0a 43 6f 2d 41 75 74 68 6f 72 20 6f | 00..Co-Author o| 00019140 66 20 52 65 73 46 69 6e 64 2c 0a 61 20 73 79 73 |f ResFind,.a sys| 00019150 74 65 6d 20 66 6f 72 20 73 65 6c 65 63 74 69 6e |tem for selectin| 00019160 67 0a 72 65 73 6f 75 72 63 65 20 66 69 6c 65 73 |g.resource files| 00019170 20 69 6e 20 74 68 65 0a 61 70 70 72 6f 70 72 69 | in the.appropri| 00019180 61 74 65 20 6c 61 6e 67 75 61 67 65 2e 50 52 4f |ate language.PRO| 00019190 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 50 72 65 |Cshell_AttachPre| 000191a0 51 75 69 74 48 61 6e 64 6c 65 72 28 29 0a 50 61 |QuitHandler().Pa| 000191b0 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 |rams =>. | 000191c0 20 73 74 72 20 3c 66 75 6e 63 74 69 6f 6e 20 6e | str <function n| 000191d0 61 6d 65 3d 3e 55 73 65 72 46 4e 32 33 3e 0a 0a |ame=>UserFN23>..| 000191e0 52 65 67 69 73 74 65 72 73 20 61 20 66 75 6e 63 |Registers a func| 000191f0 74 69 6f 6e 20 6e 61 6d 65 20 74 6f 20 62 65 20 |tion name to be | 00019200 63 61 6c 6c 65 64 20 77 68 65 6e 20 61 20 0a 50 |called when a .P| 00019210 72 65 51 75 69 74 20 6d 65 73 73 61 67 65 20 69 |reQuit message i| 00019220 73 20 72 65 63 65 69 76 65 64 2e 20 54 68 69 73 |s received. This| 00019230 20 67 69 76 65 73 20 74 68 65 0a 61 70 70 6c 69 | gives the.appli| 00019240 63 61 74 69 6f 6e 20 61 20 63 68 61 6e 63 65 20 |cation a chance | 00019250 74 6f 20 73 61 76 65 20 64 61 74 61 20 6f 72 20 |to save data or | 00019260 61 62 6f 72 74 0a 74 68 65 20 73 68 75 74 64 6f |abort.the shutdo| 00019270 77 6e 2e 0a 0a 54 68 69 73 20 6d 65 73 73 61 67 |wn...This messag| 00019280 65 20 69 73 20 69 73 73 75 65 64 20 77 68 65 6e |e is issued when| 00019290 20 74 68 65 20 74 61 73 6b 20 69 73 20 71 75 69 | the task is qui| 000192a0 74 0a 66 72 6f 6d 20 74 68 65 20 54 61 73 6b 20 |t.from the Task | 000192b0 4d 61 6e 61 67 65 72 2c 20 6f 72 20 77 68 65 6e |Manager, or when| 000192c0 20 43 54 52 4c 2d 53 48 49 46 54 2d 46 31 32 0a | CTRL-SHIFT-F12.| 000192d0 69 73 20 70 72 65 73 73 65 64 20 28 75 6e 64 65 |is pressed (unde| 000192e0 72 20 52 49 53 43 20 4f 53 20 33 29 2e 0a 0a 4c |r RISC OS 3)...L| 000192f0 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 |ibrary Group => | 00019300 3c 45 76 65 6e 74 73 3d 3e 4c 69 62 47 72 6f 75 |<Events=>LibGrou| 00019310 70 45 76 65 6e 74 73 3e 55 73 65 72 20 46 4e 20 |pEvents>User FN | 00019320 28 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 |(PROCshell_Attac| 00019330 68 50 72 65 51 75 69 74 48 61 6e 64 6c 65 72 29 |hPreQuitHandler)| 00019340 0a 50 61 72 61 6d 73 20 3d 3e 20 0a 20 20 20 20 |.Params => . | 00019350 20 20 20 20 20 4e 6f 6e 65 20 0a 0a 20 20 20 20 | None .. | 00019360 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 20 | \<=. | 00019370 62 6f 6f 6c 20 6e 6f 6e 20 30 20 74 6f 20 61 6c |bool non 0 to al| 00019380 6c 6f 77 20 71 75 69 74 2c 20 30 20 74 6f 0a 20 |low quit, 0 to. | 00019390 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6e | can| 000193a0 63 65 6c 20 71 75 69 74 0a 0a 54 68 69 73 20 66 |cel quit..This f| 000193b0 75 6e 63 74 69 6f 6e 20 69 73 20 63 61 6c 6c 65 |unction is calle| 000193c0 64 20 77 68 65 6e 20 61 20 50 72 65 51 75 69 74 |d when a PreQuit| 000193d0 0a 6d 65 73 73 61 67 65 20 69 73 20 72 65 63 65 |.message is rece| 000193e0 69 76 65 64 2e 50 52 4f 43 73 68 65 6c 6c 5f 41 |ived.PROCshell_A| 000193f0 74 74 61 63 68 43 6c 6f 73 65 57 69 6e 64 6f 77 |ttachCloseWindow| 00019400 48 61 6e 64 6c 65 72 28 29 0a 50 61 72 61 6d 73 |Handler().Params| 00019410 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 69 6e 74 | =>. int| 00019420 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 0a 20 | window handle. | 00019430 20 20 20 20 20 20 20 20 73 74 72 20 3c 66 75 6e | str <fun| 00019440 63 74 69 6f 6e 20 6e 61 6d 65 3d 3e 55 73 65 72 |ction name=>User| 00019450 46 4e 32 35 3e 0a 0a 52 65 67 69 73 74 65 72 73 |FN25>..Registers| 00019460 20 61 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 | a function name| 00019470 20 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 77 68 | to be called wh| 00019480 65 6e 20 61 6e 20 0a 43 6c 6f 73 65 57 69 6e 64 |en an .CloseWind| 00019490 6f 77 20 6d 65 73 73 61 67 65 20 69 73 20 72 65 |ow message is re| 000194a0 63 65 69 76 65 64 2e 20 54 68 69 73 20 69 73 20 |ceived. This is | 000194b0 75 73 65 66 75 6c 0a 74 6f 20 70 72 65 76 65 6e |useful.to preven| 000194c0 74 20 74 68 65 20 77 69 6e 64 6f 77 20 63 6c 6f |t the window clo| 000194d0 73 69 6e 67 20 69 66 20 73 6f 20 64 6f 69 6e 67 |sing if so doing| 000194e0 0a 77 6f 75 6c 64 20 69 6e 76 6f 6c 76 65 20 6c |.would involve l| 000194f0 6f 73 73 20 6f 66 20 64 61 74 61 2e 0a 0a 54 68 |oss of data...Th| 00019500 69 73 20 6d 65 73 73 61 67 65 20 69 73 20 69 73 |is message is is| 00019510 73 75 65 64 20 77 68 65 6e 20 74 68 65 20 77 69 |sued when the wi| 00019520 6e 64 6f 77 20 63 6c 6f 73 65 0a 69 63 6f 6e 20 |ndow close.icon | 00019530 69 73 20 63 6c 69 63 6b 65 64 20 6f 6e 2e 0a 0a |is clicked on...| 00019540 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e |Library Group =>| 00019550 20 3c 45 76 65 6e 74 73 3d 3e 4c 69 62 47 72 6f | <Events=>LibGro| 00019560 75 70 45 76 65 6e 74 73 3e 50 52 4f 43 73 68 65 |upEvents>PROCshe| 00019570 6c 6c 5f 41 74 74 61 63 68 4f 70 65 6e 57 69 6e |ll_AttachOpenWin| 00019580 64 6f 77 48 61 6e 64 6c 65 72 28 29 0a 50 61 72 |dowHandler().Par| 00019590 61 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 |ams =>. | 000195a0 69 6e 74 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c |int window handl| 000195b0 65 0a 20 20 20 20 20 20 20 20 20 73 74 72 20 3c |e. str <| 000195c0 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 3d 3e 55 |function name=>U| 000195d0 73 65 72 46 4e 32 34 3e 0a 0a 52 65 67 69 73 74 |serFN24>..Regist| 000195e0 65 72 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 6e |ers a function n| 000195f0 61 6d 65 20 74 6f 20 62 65 20 63 61 6c 6c 65 64 |ame to be called| 00019600 20 77 68 65 6e 20 61 6e 20 0a 4f 70 65 6e 57 69 | when an .OpenWi| 00019610 6e 64 6f 77 20 6d 65 73 73 61 67 65 20 69 73 20 |ndow message is | 00019620 72 65 63 65 69 76 65 64 2e 20 54 68 69 73 20 69 |received. This i| 00019630 73 20 75 73 65 66 75 6c 0a 73 6f 20 74 68 61 74 |s useful.so that| 00019640 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e | the application| 00019650 20 63 61 6e 20 73 65 74 20 61 20 66 6c 61 67 20 | can set a flag | 00019660 74 6f 0a 61 76 6f 69 64 20 64 6f 69 6e 67 20 77 |to.avoid doing w| 00019670 69 6e 64 6f 77 20 72 65 64 72 61 77 73 20 77 68 |indow redraws wh| 00019680 69 6c 65 20 74 68 65 20 77 69 6e 64 6f 77 20 69 |ile the window i| 00019690 73 0a 63 6c 6f 73 65 64 20 66 6f 72 20 65 78 61 |s.closed for exa| 000196a0 6d 70 6c 65 2e 0a 0a 54 68 69 73 20 6d 65 73 73 |mple...This mess| 000196b0 61 67 65 20 69 73 20 69 73 73 75 65 64 20 77 68 |age is issued wh| 000196c0 65 6e 20 74 68 65 20 77 69 6e 64 6f 77 20 69 73 |en the window is| 000196d0 0a 64 72 61 67 67 65 64 20 61 72 6f 75 6e 64 20 |.dragged around | 000196e0 74 68 65 20 73 63 72 65 65 6e 20 61 73 20 77 65 |the screen as we| 000196f0 6c 6c 20 61 73 20 77 68 65 6e 0a 74 68 65 20 70 |ll as when.the p| 00019700 72 6f 67 72 61 6d 20 6f 70 65 6e 73 20 74 68 65 |rogram opens the| 00019710 20 77 69 6e 64 6f 77 2e 20 59 6f 75 20 73 68 6f | window. You sho| 00019720 75 6c 64 20 61 76 6f 69 64 0a 64 6f 69 6e 67 20 |uld avoid.doing | 00019730 74 69 6d 65 20 63 6f 6e 73 75 6d 69 6e 67 20 73 |time consuming s| 00019740 74 75 66 66 20 69 6e 20 74 68 65 20 66 75 6e 63 |tuff in the func| 00019750 74 69 6f 6e 20 74 68 61 74 0a 69 73 20 63 61 6c |tion that.is cal| 00019760 6c 65 64 20 74 68 65 72 65 66 6f 72 65 2e 0a 0a |led therefore...| 00019770 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e |Library Group =>| 00019780 20 3c 45 76 65 6e 74 73 3d 3e 4c 69 62 47 72 6f | <Events=>LibGro| 00019790 75 70 45 76 65 6e 74 73 3e 55 73 65 72 20 46 4e |upEvents>User FN| 000197a0 20 28 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 | (PROCshell_Atta| 000197b0 63 68 4f 70 65 6e 57 69 6e 64 6f 77 48 61 6e 64 |chOpenWindowHand| 000197c0 6c 65 72 29 0a 50 61 72 61 6d 73 20 3d 3e 20 0a |ler).Params => .| 000197d0 20 20 20 20 20 20 20 20 20 4e 6f 6e 65 20 0a 0a | None ..| 000197e0 20 20 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 | \<=. | 000197f0 20 20 20 20 62 6f 6f 6c 20 30 20 74 6f 20 64 69 | bool 0 to di| 00019800 73 61 6c 6c 6f 77 20 6f 70 65 6e 2c 20 6e 6f 6e |sallow open, non| 00019810 20 30 20 74 6f 0a 20 20 20 20 20 20 20 20 20 20 | 0 to. | 00019820 20 20 20 20 6f 70 65 6e 55 73 65 72 20 46 4e 20 | openUser FN | 00019830 28 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 |(PROCshell_Attac| 00019840 68 43 6c 6f 73 65 57 69 6e 64 6f 77 48 61 6e 64 |hCloseWindowHand| 00019850 6c 65 72 29 0a 50 61 72 61 6d 73 20 3d 3e 20 0a |ler).Params => .| 00019860 20 20 20 20 20 20 20 20 20 4e 6f 6e 65 20 0a 0a | None ..| 00019870 20 20 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 20 | \<=. | 00019880 20 20 20 20 62 6f 6f 6c 20 30 20 74 6f 20 64 69 | bool 0 to di| 00019890 73 61 6c 6c 6f 77 20 63 6c 6f 73 65 2c 20 6e 6f |sallow close, no| 000198a0 6e 20 30 20 74 6f 0a 20 20 20 20 20 20 20 20 20 |n 0 to. | 000198b0 20 20 20 20 20 63 6c 6f 73 65 48 65 6c 70 20 6f | closeHelp o| 000198c0 6e 20 45 76 6e 74 53 68 65 6c 6c 0a 23 49 6e 64 |n EvntShell.#Ind| 000198d0 65 6e 74 20 35 0a 23 53 70 72 69 74 65 20 30 2c |ent 5.#Sprite 0,| 000198e0 30 20 21 73 68 65 6c 6c 73 79 73 0a 20 20 45 76 |0 !shellsys. Ev| 000198f0 6e 74 53 68 65 6c 6c 0a 20 20 20 76 20 31 2e 32 |ntShell. v 1.2| 00019900 30 0a 23 49 6e 64 65 6e 74 20 30 0a 2d 2d 2d 2d |0.#Indent 0.----| 00019910 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00019920 2d 0a 20 20 2a 20 3c 4c 69 63 65 6e 63 65 20 20 |-. * <Licence | 00019930 20 20 20 20 3e 20 2a 0a 20 20 2a 20 3c 49 6e 74 | > *. * <Int| 00019940 72 6f 64 75 63 74 69 6f 6e 20 3d 3e 49 6e 74 72 |roduction =>Intr| 00019950 6f 3e 20 2a 0a 20 20 2a 20 3c 55 73 65 72 20 47 |o> *. * <User G| 00019960 75 69 64 65 20 20 20 3d 3e 67 75 69 64 65 3e 20 |uide =>guide> | 00019970 2a 0a 20 20 2a 20 3c 43 72 65 64 69 74 73 20 20 |*. * <Credits | 00019980 20 20 20 20 3e 20 2a 0a 0a 20 20 2a 20 3c 4c 69 | > *.. * <Li| 00019990 62 72 61 72 79 20 44 6f 63 73 20 3d 3e 6d 61 69 |brary Docs =>mai| 000199a0 6e 70 61 67 65 3e 20 2a 4c 69 63 65 6e 63 65 0a |npage> *Licence.| 000199b0 54 68 69 73 20 61 70 70 6c 69 63 61 74 69 6f 6e |This application| 000199c0 20 69 73 20 73 75 70 70 6c 69 65 64 20 66 72 65 | is supplied fre| 000199d0 65 20 74 6f 20 65 76 65 72 79 6f 6e 65 20 27 61 |e to everyone 'a| 000199e0 73 20 69 73 27 2c 20 49 20 0a 64 6f 20 6e 6f 74 |s is', I .do not| 000199f0 20 67 69 76 65 20 61 6e 79 20 67 75 61 72 61 6e | give any guaran| 00019a00 74 65 65 20 74 68 61 74 20 69 74 20 69 73 20 66 |tee that it is f| 00019a10 72 65 65 20 6f 66 20 62 75 67 73 2c 20 6f 72 20 |ree of bugs, or | 00019a20 0a 73 75 70 70 6c 79 20 61 6e 79 20 77 61 72 72 |.supply any warr| 00019a30 61 6e 74 79 20 61 62 6f 75 74 20 69 74 73 20 73 |anty about its s| 00019a40 75 69 74 61 62 69 6c 69 74 79 20 66 6f 72 20 75 |uitability for u| 00019a50 73 65 2e 20 48 6f 77 65 76 65 72 20 0a 69 66 20 |se. However .if | 00019a60 74 68 65 72 65 20 61 72 65 20 61 6e 79 20 70 72 |there are any pr| 00019a70 6f 62 6c 65 6d 73 20 77 69 74 68 20 69 74 20 61 |oblems with it a| 00019a80 6e 64 20 79 6f 75 20 6e 6f 74 69 66 79 20 6d 65 |nd you notify me| 00019a90 20 6f 66 20 0a 74 68 65 6d 20 74 68 65 6e 20 49 | of .them then I| 00019aa0 20 77 69 6c 6c 20 64 6f 20 6d 79 20 62 65 73 74 | will do my best| 00019ab0 20 74 6f 20 72 65 63 74 69 66 79 20 74 68 65 6d | to rectify them| 00019ac0 20 67 69 76 65 6e 20 74 68 65 20 74 69 6d 65 20 | given the time | 00019ad0 0a 61 6e 64 20 74 68 65 20 61 62 69 6c 69 74 79 |.and the ability| 00019ae0 2e 20 0a 0a 59 6f 75 20 61 72 65 20 6d 61 79 20 |. ..You are may | 00019af0 67 69 76 65 20 74 68 69 73 20 61 70 70 6c 69 63 |give this applic| 00019b00 61 74 69 6f 6e 20 74 6f 20 61 6e 79 6f 6e 65 2c |ation to anyone,| 00019b10 20 76 69 61 20 61 6e 79 20 0a 6d 65 64 69 75 6d | via any .medium| 00019b20 2c 20 73 6f 20 6c 6f 6e 67 20 61 73 20 3a 2d 20 |, so long as :- | 00019b30 0a 0a 31 29 20 49 74 20 69 73 20 64 65 6c 69 76 |..1) It is deliv| 00019b40 65 72 65 64 20 77 69 74 68 20 41 4c 4c 20 74 68 |ered with ALL th| 00019b50 65 20 73 75 70 70 6c 69 65 64 20 66 69 6c 65 73 |e supplied files| 00019b60 20 61 6e 64 20 0a 20 20 20 75 6e 61 6c 74 65 72 | and . unalter| 00019b70 65 64 20 28 65 78 63 65 70 74 20 21 52 75 6e 20 |ed (except !Run | 00019b80 61 6e 64 20 21 42 6f 6f 74 29 2e 20 0a 0a 32 29 |and !Boot). ..2)| 00019b90 20 49 74 20 69 73 20 6e 6f 74 20 73 75 70 70 6c | It is not suppl| 00019ba0 69 65 64 20 6f 6e 20 61 20 64 69 73 63 20 79 6f |ied on a disc yo| 00019bb0 75 20 61 72 65 20 63 68 61 72 67 69 6e 67 20 66 |u are charging f| 00019bc0 6f 72 20 0a 20 20 20 28 65 78 63 65 70 74 20 66 |or . (except f| 00019bd0 6f 72 20 6d 65 64 69 61 20 61 6e 64 20 70 6f 73 |or media and pos| 00019be0 74 61 67 65 20 63 6f 73 74 73 29 2e 20 0a 0a 59 |tage costs). ..Y| 00019bf0 6f 75 20 68 61 76 65 20 70 65 72 6d 69 73 73 69 |ou have permissi| 00019c00 6f 6e 20 74 6f 20 75 73 65 20 61 6e 79 20 70 61 |on to use any pa| 00019c10 72 74 20 6f 72 20 74 68 65 20 77 68 6f 6c 65 20 |rt or the whole | 00019c20 0a 61 70 70 6c 69 63 61 74 69 6f 6e 20 69 6e 20 |.application in | 00019c30 61 20 70 72 6f 6a 65 63 74 20 79 6f 75 20 69 6e |a project you in| 00019c40 74 65 6e 64 20 74 6f 20 70 6c 61 63 65 20 69 6e |tend to place in| 00019c50 20 74 68 65 20 70 75 62 6c 69 63 20 0a 64 6f 6d | the public .dom| 00019c60 61 69 6e 2c 20 61 73 20 6c 6f 6e 67 20 61 73 20 |ain, as long as | 00019c70 49 20 61 6d 20 66 75 6c 6c 79 20 63 72 65 64 69 |I am fully credi| 00019c80 74 65 64 2e 20 49 66 20 79 6f 75 20 77 69 73 68 |ted. If you wish| 00019c90 20 74 6f 20 75 73 65 20 0a 74 68 65 73 65 20 72 | to use .these r| 00019ca0 6f 75 74 69 6e 65 73 20 69 6e 20 61 20 70 72 6f |outines in a pro| 00019cb0 67 72 61 6d 20 74 68 61 74 20 69 73 20 66 6f 72 |gram that is for| 00019cc0 20 73 61 6c 65 20 28 66 6f 72 20 68 6f 77 65 76 | sale (for howev| 00019cd0 65 72 20 0a 6d 75 63 68 20 61 6e 64 20 66 6f 72 |er .much and for| 00019ce0 20 77 68 61 74 65 76 65 72 20 72 65 61 73 6f 6e | whatever reason| 00019cf0 73 29 20 6f 72 20 72 65 6c 65 61 73 65 64 20 61 |s) or released a| 00019d00 73 20 63 6f 70 79 72 69 67 68 74 20 0a 6d 61 74 |s copyright .mat| 00019d10 65 72 69 61 6c 20 74 68 65 6e 20 6d 79 20 65 78 |erial then my ex| 00019d20 70 72 65 73 73 20 70 65 72 6d 69 73 73 69 6f 6e |press permission| 00019d30 20 69 6e 20 77 72 69 74 69 6e 67 20 6d 75 73 74 | in writing must| 00019d40 20 62 65 20 0a 6f 62 74 61 69 6e 65 64 2e 20 49 | be .obtained. I| 00019d50 20 6d 61 69 6e 74 61 69 6e 20 63 6f 70 79 72 69 | maintain copyri| 00019d60 67 68 74 20 6f 6e 20 61 6c 6c 20 74 68 65 20 6d |ght on all the m| 00019d70 61 74 65 72 69 61 6c 20 0a 73 75 70 70 6c 69 65 |aterial .supplie| 00019d80 64 20 61 6e 64 20 72 65 73 65 72 76 65 20 74 68 |d and reserve th| 00019d90 65 20 72 69 67 68 74 20 74 6f 20 61 6d 65 6e 64 |e right to amend| 00019da0 20 74 68 65 73 65 20 63 6f 6e 64 69 74 69 6f 6e | these condition| 00019db0 73 20 0a 69 6e 20 63 61 73 65 73 20 77 68 65 72 |s .in cases wher| 00019dc0 65 20 49 20 64 65 65 6d 20 6d 69 73 75 73 65 2e |e I deem misuse.| 00019dd0 20 0a 0a 43 6f 6d 70 6c 61 69 6e 74 73 2c 20 73 | ..Complaints, s| 00019de0 75 67 67 65 73 74 69 6f 6e 73 2c 20 76 61 73 74 |uggestions, vast| 00019df0 20 73 75 6d 73 20 6f 66 20 6d 6f 6e 65 79 20 65 | sums of money e| 00019e00 74 63 20 74 6f 20 74 68 65 20 0a 61 75 74 68 6f |tc to the .autho| 00019e10 72 3a 2d 20 0a 0a 50 61 75 6c 20 48 6f 62 62 73 |r:- ..Paul Hobbs| 00019e20 0a 52 68 65 69 6e 70 66 61 6c 7a 73 74 72 61 73 |.Rheinpfalzstras| 00019e30 73 65 20 32 0a 38 35 30 34 39 20 49 6e 67 6f 6c |se 2.85049 Ingol| 00019e40 73 74 61 64 74 0a 47 65 72 6d 61 6e 79 53 70 72 |stadt.GermanySpr| 00019e50 69 74 65 73 0a 3c 53 70 72 69 74 65 41 72 65 61 |ites.<SpriteArea| 00019e60 4c 6f 61 64 3d 3e 46 4e 73 68 65 6c 6c 5f 53 70 |Load=>FNshell_Sp| 00019e70 72 69 74 65 41 72 65 61 4c 6f 61 64 3e 0a 3c 53 |riteAreaLoad>.<S| 00019e80 70 72 69 74 65 41 72 65 61 53 61 76 65 3d 3e 50 |priteAreaSave=>P| 00019e90 52 4f 43 73 68 65 6c 6c 5f 53 70 72 69 74 65 41 |ROCshell_SpriteA| 00019ea0 72 65 61 53 61 76 65 3e 0a 3c 53 70 72 69 74 65 |reaSave>.<Sprite| 00019eb0 47 65 74 50 74 72 20 20 3d 3e 46 4e 73 68 65 6c |GetPtr =>FNshel| 00019ec0 6c 5f 53 70 72 69 74 65 47 65 74 50 74 72 3e 0a |l_SpriteGetPtr>.| 00019ed0 3c 53 70 72 69 74 65 52 65 6e 61 6d 65 20 20 3d |<SpriteRename =| 00019ee0 3e 50 52 4f 43 73 68 65 6c 6c 5f 53 70 72 69 74 |>PROCshell_Sprit| 00019ef0 65 52 65 6e 61 6d 65 3e 46 4e 73 68 65 6c 6c 5f |eRename>FNshell_| 00019f00 53 70 72 69 74 65 41 72 65 61 4c 6f 61 64 28 29 |SpriteAreaLoad()| 00019f10 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 |.Params =>. | 00019f20 20 20 20 20 73 74 72 20 66 69 6c 65 20 6e 61 6d | str file nam| 00019f30 65 20 6f 66 20 73 70 72 69 74 65 20 66 69 6c 65 |e of sprite file| 00019f40 0a 20 20 20 20 20 20 20 5c 3c 3d 0a 20 20 20 20 |. \<=. | 00019f50 20 20 20 20 20 69 6e 74 20 61 64 64 72 65 73 73 | int address| 00019f60 20 6f 66 20 6c 6f 61 64 65 64 20 66 69 6c 65 20 | of loaded file | 00019f70 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 |..Library Group | 00019f80 3d 3e 20 3c 53 70 72 69 74 65 73 3d 3e 4c 69 62 |=> <Sprites=>Lib| 00019f90 47 72 6f 75 70 53 70 72 69 74 65 73 3e 50 52 4f |GroupSprites>PRO| 00019fa0 43 73 68 65 6c 6c 5f 53 70 72 69 74 65 41 72 65 |Cshell_SpriteAre| 00019fb0 61 53 61 76 65 28 29 0a 50 61 72 61 6d 73 20 3d |aSave().Params =| 00019fc0 3e 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 61 |>. int a| 00019fd0 64 64 72 65 73 73 20 6f 66 20 73 70 72 69 74 65 |ddress of sprite| 00019fe0 61 72 65 61 20 28 61 73 20 72 65 74 75 72 6e 65 |area (as returne| 00019ff0 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 62 |d. b| 0001a000 79 20 3c 46 4e 73 68 65 6c 6c 5f 53 70 72 69 74 |y <FNshell_Sprit| 0001a010 65 41 72 65 61 4c 6f 61 64 3e 29 0a 20 20 20 20 |eAreaLoad>). | 0001a020 20 20 20 20 20 73 74 72 20 66 69 6c 65 20 6e 61 | str file na| 0001a030 6d 65 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 |me..Library Grou| 0001a040 70 20 3d 3e 20 3c 53 70 72 69 74 65 73 3d 3e 4c |p => <Sprites=>L| 0001a050 69 62 47 72 6f 75 70 53 70 72 69 74 65 73 3e 46 |ibGroupSprites>F| 0001a060 4e 73 68 65 6c 6c 5f 53 70 72 69 74 65 47 65 74 |Nshell_SpriteGet| 0001a070 50 74 72 28 29 0a 50 61 72 61 6d 73 20 3d 3e 0a |Ptr().Params =>.| 0001a080 20 20 20 20 20 20 20 20 20 69 6e 74 20 61 64 64 | int add| 0001a090 72 65 73 73 20 6f 66 20 73 70 72 69 74 65 61 72 |ress of spritear| 0001a0a0 65 61 20 28 61 73 20 72 65 74 75 72 6e 65 64 0a |ea (as returned.| 0001a0b0 20 20 20 20 20 20 20 20 20 20 20 20 20 62 79 20 | by | 0001a0c0 3c 46 4e 73 68 65 6c 6c 5f 53 70 72 69 74 65 41 |<FNshell_SpriteA| 0001a0d0 72 65 61 4c 6f 61 64 3e 29 0a 20 20 20 20 20 20 |reaLoad>). | 0001a0e0 20 20 20 73 74 72 20 6e 61 6d 65 20 6f 66 20 73 | str name of s| 0001a0f0 70 72 69 74 65 0a 20 20 20 20 20 20 20 5c 3c 3d |prite. \<=| 0001a100 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 70 6f |. int po| 0001a110 69 6e 74 65 72 20 74 6f 20 73 70 72 69 74 65 0a |inter to sprite.| 0001a120 0a 54 68 69 73 20 63 61 6c 6c 20 69 73 20 75 73 |.This call is us| 0001a130 65 64 20 74 6f 20 67 65 74 20 61 20 70 6f 69 6e |ed to get a poin| 0001a140 74 65 72 20 74 6f 20 61 20 73 70 72 69 74 65 0a |ter to a sprite.| 0001a150 74 68 61 74 20 63 61 6e 20 62 65 20 70 61 73 73 |that can be pass| 0001a160 65 64 20 74 6f 20 6f 74 68 65 72 20 72 6f 75 74 |ed to other rout| 0001a170 69 6e 65 73 2e 0a 0a 4c 69 62 72 61 72 79 20 47 |ines...Library G| 0001a180 72 6f 75 70 20 3d 3e 20 3c 53 70 72 69 74 65 73 |roup => <Sprites| 0001a190 3d 3e 4c 69 62 47 72 6f 75 70 53 70 72 69 74 65 |=>LibGroupSprite| 0001a1a0 73 3e 50 52 4f 43 73 68 65 6c 6c 5f 53 70 72 69 |s>PROCshell_Spri| 0001a1b0 74 65 52 65 6e 61 6d 65 28 29 0a 50 61 72 61 6d |teRename().Param| 0001a1c0 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 69 6e |s =>. in| 0001a1d0 74 20 61 64 64 72 65 73 73 20 6f 66 20 73 70 72 |t address of spr| 0001a1e0 69 74 65 61 72 65 61 20 28 61 73 20 72 65 74 75 |itearea (as retu| 0001a1f0 72 6e 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 |rned. | 0001a200 20 20 62 79 20 3c 46 4e 73 68 65 6c 6c 5f 53 70 | by <FNshell_Sp| 0001a210 72 69 74 65 41 72 65 61 4c 6f 61 64 3e 0a 20 20 |riteAreaLoad>. | 0001a220 20 20 20 20 20 20 20 73 74 72 20 6f 6c 64 20 6e | str old n| 0001a230 61 6d 65 20 6f 66 20 73 70 72 69 74 65 0a 20 20 |ame of sprite. | 0001a240 20 20 20 20 20 20 20 73 74 72 20 6e 65 77 20 6e | str new n| 0001a250 61 6d 65 20 6f 66 20 73 70 72 69 74 65 0a 0a 4c |ame of sprite..L| 0001a260 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 |ibrary Group => | 0001a270 3c 53 70 72 69 74 65 73 3d 3e 4c 69 62 47 72 6f |<Sprites=>LibGro| 0001a280 75 70 53 70 72 69 74 65 73 3e 55 73 65 72 20 46 |upSprites>User F| 0001a290 4e 20 28 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 |N (PROCshell_Att| 0001a2a0 61 63 68 53 75 62 4d 65 6e 75 29 20 0a 50 61 72 |achSubMenu) .Par| 0001a2b0 61 6d 73 20 3d 3e 20 0a 20 20 20 20 20 20 20 20 |ams => . | 0001a2c0 20 69 6e 74 20 77 69 6e 64 6f 77 20 68 61 6e 64 | int window hand| 0001a2d0 6c 65 0a 20 20 20 20 20 20 20 20 20 69 6e 74 20 |le. int | 0001a2e0 69 63 6f 6e 20 68 61 6e 64 6c 65 0a 20 20 20 20 |icon handle. | 0001a2f0 20 20 20 5c 3c 3d 0a 20 20 20 20 20 20 20 20 20 | \<=. | 0001a300 69 6e 74 20 6a 75 6e 6b 50 52 4f 43 73 68 65 6c |int junkPROCshel| 0001a310 6c 5f 49 63 6f 6e 53 65 74 4c 65 66 74 4a 75 73 |l_IconSetLeftJus| 0001a320 74 28 29 0a 50 61 72 61 6d 73 20 3d 3e 20 20 20 |t().Params => | 0001a330 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 | . | 0001a340 20 20 69 6e 74 20 20 77 69 6e 64 6f 77 20 68 61 | int window ha| 0001a350 6e 64 6c 65 20 20 20 20 20 20 20 20 20 20 20 0a |ndle .| 0001a360 20 20 20 20 20 20 20 20 20 69 6e 74 20 20 69 63 | int ic| 0001a370 6f 6e 20 68 61 6e 64 6c 65 20 0a 0a 4c 69 62 72 |on handle ..Libr| 0001a380 61 72 79 20 47 72 6f 75 70 20 3d 3e 20 3c 49 63 |ary Group => <Ic| 0001a390 6f 6e 73 3d 3e 4c 69 62 47 72 6f 75 70 49 63 6f |ons=>LibGroupIco| 0001a3a0 6e 73 3e 46 4e 73 68 65 6c 6c 5f 4f 53 43 68 65 |ns>FNshell_OSChe| 0001a3b0 63 6b 56 65 72 73 69 6f 6e 28 29 0a 50 61 72 61 |ckVersion().Para| 0001a3c0 6d 73 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 72 |ms =>. r| 0001a3d0 65 61 6c 20 76 65 72 73 69 6f 6e 20 6e 72 20 72 |eal version nr r| 0001a3e0 65 71 75 69 72 65 64 0a 0a 20 20 20 20 20 20 20 |equired.. | 0001a3f0 5c 3c 3d 0a 20 20 20 20 20 20 20 20 20 62 6f 6f |\<=. boo| 0001a400 6c 20 54 52 55 45 20 6f 72 20 46 41 4c 53 45 0a |l TRUE or FALSE.| 0001a410 0a 55 73 65 20 74 68 69 73 20 72 6f 75 74 69 6e |.Use this routin| 0001a420 65 20 74 6f 20 63 68 65 63 6b 20 77 68 65 74 68 |e to check wheth| 0001a430 65 72 20 52 49 53 43 0a 4f 53 20 33 20 69 73 20 |er RISC.OS 3 is | 0001a440 69 6e 73 74 61 6c 6c 65 64 20 66 6f 72 20 65 78 |installed for ex| 0001a450 61 6d 70 6c 65 2e 20 54 68 65 0a 72 6f 75 74 69 |ample. The.routi| 0001a460 6e 65 20 72 65 74 75 72 6e 73 20 46 41 4c 53 45 |ne returns FALSE| 0001a470 20 69 66 20 74 68 65 20 4f 53 20 76 65 72 73 69 | if the OS versi| 0001a480 6f 6e 0a 72 65 71 75 65 73 74 65 64 20 28 6f 72 |on.requested (or| 0001a490 20 61 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e | a later version| 0001a4a0 29 20 69 73 20 6e 6f 74 0a 66 6f 75 6e 64 2e 0a |) is not.found..| 0001a4b0 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 20 3d |.Library Group =| 0001a4c0 3e 20 3c 4f 53 3d 3e 4c 69 62 47 72 6f 75 70 4f |> <OS=>LibGroupO| 0001a4d0 53 3e 46 4e 73 68 65 6c 6c 5f 4f 53 43 68 65 63 |S>FNshell_OSChec| 0001a4e0 6b 4d 6f 64 75 6c 65 56 65 72 73 69 6f 6e 28 29 |kModuleVersion()| 0001a4f0 0a 50 61 72 61 6d 73 20 3d 3e 0a 20 20 20 20 20 |.Params =>. | 0001a500 20 20 20 20 73 74 72 20 20 6d 6f 64 75 6c 65 20 | str module | 0001a510 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 72 65 |name. re| 0001a520 61 6c 20 76 65 72 73 69 6f 6e 20 6e 72 20 72 65 |al version nr re| 0001a530 71 75 69 72 65 64 0a 0a 20 20 20 20 20 20 20 5c |quired.. \| 0001a540 3c 3d 0a 20 20 20 20 20 20 20 20 20 62 6f 6f 6c |<=. bool| 0001a550 20 54 52 55 45 20 6f 72 20 46 41 4c 53 45 0a 0a | TRUE or FALSE..| 0001a560 55 73 65 20 74 68 69 73 20 72 6f 75 74 69 6e 65 |Use this routine| 0001a570 20 74 6f 20 63 68 65 63 6b 20 77 68 65 74 68 65 | to check whethe| 0001a580 72 20 61 0a 63 65 72 74 61 69 6e 20 76 65 72 73 |r a.certain vers| 0001a590 69 6f 6e 20 28 6f 72 20 6c 61 74 65 72 29 20 6f |ion (or later) o| 0001a5a0 66 20 61 20 73 70 65 63 69 66 69 63 0a 6d 6f 64 |f a specific.mod| 0001a5b0 75 6c 65 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 |ule is installed| 0001a5c0 2e 0a 0a 4c 69 62 72 61 72 79 20 47 72 6f 75 70 |...Library Group| 0001a5d0 20 3d 3e 20 3c 4f 53 3d 3e 4c 69 62 47 72 6f 75 | => <OS=>LibGrou| 0001a5e0 70 4f 53 3e |pOS>| 0001a5e4