Home » Archimedes archive » Archimedes World » AW-1995-01-Disc2.adf » Disk2Jan95 » !AWJan95/Goodies/Event/Docs/Manual-F
!AWJan95/Goodies/Event/Docs/Manual-F
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Archimedes World » AW-1995-01-Disc2.adf » Disk2Jan95 |
Filename: | !AWJan95/Goodies/Event/Docs/Manual-F |
Read OK: | ✔ |
File size: | 1027E bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
Interim User Manual For EvntShell --------------------------------- 1 Introduction 2 Creating A New Application 3 A Tutorial 4 A General Overview 1. Dynamic Windows 2. Static Windows 3. Resources 1. Templates 2. Sprites 3. Message Files 4. Modules 4. Menus 5. Saving Files 6. Loading Files 7. Compressing EvntShell Applications 8. The RunTime Library 9. The !ShellSys Application 10. Handling Panes 11. Outline Fonts 12. Interactive Help 13. User Redraws 1. Simple cases 2. Drawing into a sprite 14. Complex Icon Types 1. Bump Icons 15. Memory Management 16. Error Handling 17. Draw Files 5 The Tools 1. !AppBuild 2. !ShellDBug 3. Other Tools 1. !BasShrink/!BasShrink_PD 2. !BLibII 3. !TemplEd 4. !StrongEd2 5. !StrongHlp 6. !ThrowBack 6 Distributing EvntShell Applications 7 Debugging 8 The Credits 9 Future Enhancements 10 Changes Since V1.09 1. Introduction A 'Shell' program is a starting point for developing your own applications that run under the RISC-OS wimp system. The EvntShell library contains code to handle most of the 'Events' (i.e. opening a menu, closing a window etc) that can occur, and all your application has to do is inform the library what it should do when certain events occur. For example a menu can be attached to a window or to an icon - the library will open the menu for you (in the correct position!) when the <MENU> button on the mouse is used. PROCshell_AttachModeChangeHandler is another very simple example which calls a function in the 'User Application' (this is the bit you write, starting with a 'Shell' created by the AppBuild tool or by modifying one of the examples) 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 library code. Normally writing a wimp application is a very complex business, involving much reading of the Programmers Reference Manuals, magazine articles and examining other applications. The aim of the EvntShell library is to reduce the need for this and to enable the speedy creation of easily maintained and robust applications. Another important reason for using this Shell is that it attempts to ensure that any application written using it follows the RISC OS 3 Style Guide which defines how applications should look and behave. For example menus attached to icons ('popup' menus) appear to the right of the icon they are attached to and the mouse pointer is repositioned appropriately. Implementing the Style Guide recommendations is not easy and at the moment very few of the necessary changes to the library code have been made, however, this will improve in future releases. In order to use the library it is necessary to have a reasonable understanding of how to use an Archimedes and the programs supplied with it. Some experience in BASIC is also of course required. This manual does not cover how to use tools like the Template editor which has its own instructions and may not have been supplied with your copy of the EvntShell library. 2. Creating An Example Application The easiest way to create a new application is to use the AppBuild tool. Run this and drag the application icon from the AppBuild window to a directory display. The various options available using AppBuild will be discussed later, but for now just quit AppBuild and run the newly created application. You should see a blank icon appear on the icon bar and clicking <MENU> over this will bring up the usual icon bar menu including the items 'Info' and 'Quit'. 'Info' leads to the normal 'About This Program' window (the icons of which are blank at the moment) and 'Quit' which stops the application and removes it from the icon bar - don't quit it just yet. Clicking <SELECT> on the iconbar icon will open a window which has the usual controls and may be scrolled and moved around the screen. Keep the application you have just created handy as in the next section we'll look at the program code and see how to change it to suit your own needs. As you can see it is very easy to create a new shell application - even if this particular one doesn't do anything useful yet! 3. A Tutorial The first few lines of any EvntShell program initialise the memory management, set up error handlers and load any resources (templates, message files, sprites etc) required by the program. This code should not need editing. PROCapp_init determines what happens when the application starts, in this case an iconbar icon is created and various 'events' are attached to it. The code created by !AppBuild is as shown below, although the REMs have been added for this manual. Try defining other windows and menus and see what happens. DEF PROCapp_init PROCSetUp_Menus :REM set up iconbar menu PROCSetUp_Windows :REM set up main window PROCSetUp_IconBar :REM put icon on the iconbar and attach events REM and now initialise the StrongHlp help system (optional!) PROCshell_InitHelpSystem(FNshell_GetAppDir+".FNshell_GetAppName" ,TRUE) ENDPROC : REM ===== Menu_Setup routines =================================== DEF PROCSetUp_Menus LOCAL void% REM Construct the iconbar menu.. MenuHandle_IconBar%=FNshell_MenuNew("NewApp") MenuItem_Info% =FNshell_MenuAdd(0,"Info","") void% =FNshell_MenuAdd(0,"Quit","_MenuSelect_Quit") REM Attach the 'About this program' dialog box to the 'Info' REM item of the menu. Call FN_PreOpenInfo before opening it so REM that the icons can be filled in, don't call a FN after REM opening it. PROCshell_AttachMenuDBox(MenuItem_Info%,"progInfo", "_PreOpenInfo","") ENDPROC : REM ===== Window_SetUp routines ================================= DEF PROCSetUp_Windows REM create a window from the template called 'mainw', place the REM window handle in mainw% PROCshell_CreateWindowStatic("mainw",mainw%) ENDPROC : REM ===== IconBar_SetUp routines ================================ DEF PROCSetUp_IconBar REM sicon is the handle of the icon. -1 means right side of REM iconbar, -2 would be left side. The name of the sprite for REM the icon is the same as the application directory. A menu REM with the handle 'MenuHandle_IconBar%' is attached. sicon=FNshell_Iconbar(-1,"!"+FNshell_GetAppName,"",120, MenuHandle_IconBar%,0,0,0) REM attach a help tag for the icon, this will send the text REM following 'iconbar:' to the !Help application. See the REM 'Messages' file for this. PROCshell_AttachHelpTag(-1,sicon,"iconbar") REM lastly attach the clickselect event. When <SELECT> is REM clicked over the icon call FN_clickiconbar PROCshell_AttachClickSelect(-1,sicon,"_ClickSelect_IconBar") ENDPROC : REM ===== Dialog_PreOpen routines =============================== DEF FN_PreOpenInfo(h%) REM fill in icons. Try editing the 'Messages' file to make text REM appear in the icons (just add the text after progInfo0: etc). REM h% is the handle of the window. PROCshell_IconPutData(h%,0,FNshell_MessageNoArgs("progInfo0"),0) PROCshell_IconPutData(h%,1,FNshell_MessageNoArgs("progInfo1"),0) PROCshell_IconPutData(h%,2,FNshell_MessageNoArgs("progInfo2"),0) PROCshell_IconPutData(h%,3,FNshell_MessageNoArgs("progInfo3"),0) =0 : REM ===== Dialog_PostOpen routines ============================== REM ===== Click_Select routines ================================= DEF FN_ClickSelect_IconBar(wh%,icon%) REM open the window with the handle mainw% when a click of REM <SELECT> is received on the iconbar icon. wh% is the handle REM of the window over which the click occured (the iconbar) and REM icon% is the handle of the iconbar icon PROCshell_OpenWindowStatic(mainw%) =0 : REM ===== Menu_Select routines ================================== DEF FN_MenuSelect_Quit(blk%) _closedown%=TRUE =0 : REM ===== Menu_Warning routines ================================= REM ===== Data_Load routines ==================================== REM ===== Data_Save routines ==================================== Let us now look at how events should be attached to a window. It is important to always do this just before the window opens (i.e. in the PreOpen routine) because a static window and a dynamic window can be created from the same template but they will of course have different handles. The following example shows how this should be handled (we are assuming the template in question is called 'xfer' and the program is called 'MyApp'). DEF PROCapp_init ... PROCSetUp_Windows PROCSetUp_Menus PROCshell_AttachHotKey("F3",FALSE,FALSE,FALSE,"",xfer%,"_PreOpen_Xfer","") ... ENDPROC : DEF PROCSetUp_Windows ... PROCshell_CreateWindowStatic("xfer",xfer%) ... ENDPROC : DEF PROCSetUp_Menus ... MenuHandle_IconBar%=FNshell_MenuNew("MyApp") MenuItem_Save% =FNshell_MenuAdd(0,"Save","") PROCshell_AttachMenuDBox(MenuItem_Save%,"xfer","_PreOpen_Xfer", "_PostOpen_Xfer") ... ENDPROC : DEF FN_PreOpen_Xfer(h%) ... REM OK icon is 0, Filename icon is 2, File icon is 3, Filetype is &344.. PROCshell_IconPutData(h%,2,filename$),FALSE) PROCshell_AttachDataSave(h%,3,100,&344,2,"_DataSave_Xfer") PROCshell_AttachClickSelect(h%,0,"_ClickSelect_XferOK") ... =0 : DEF FN_PostOpen_Xfer(h%) ... PROCshell_WindowCentreOnPointer(h%) ... =0 : The xfer window will open when F3 is pressed (assuming one of the open windows has the 'grab hot keys' bit set) and also when the sub menu on the 'Save' menu item is opened. In each case FN_PreOpen_Xfer will be called to attach the events and fill in the filename icon. 4. General Overview This section explains the various elements of an application using the EvntShell library, and any limitations and assumptions made by me. 4.1 Dynamic 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 (for example F3 in most applications opens a save box). They are opened with a call to PROCshell_OpenWindowDynamic. When writable icons exist in the dynamic window up/down cursor and TAB/SHIFT TAB 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 which are unselectable (i.e. greyed out) will be ignored. Pressing the <RETURN> key causes icon 0 to be pressed (normally a 'default action' icon with an extra border) and the menu/dialog box to be 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. All windows used by the user application are assumed to be defined in the 'Templates' file and edited using FormEd or one of the Public Domain/ShareWare equivalents. 4.2 Static Windows These are opened with a call to PROCshell_OpenWindowStatic and respond to cursor,TAB and <RETURN> keypresses like dynamic dialog boxes except that pressing <RETURN> 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. 4.3 Resources 'Resources' is a general term for additional files needed by an application. There will (almost) always be some of these, such as sprite files. Others, for example message files may not be required. 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. This is handled for you if you use !AppBuild to create the application. 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. 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 Humor in the !Boot file makes sure !Pete will run humorous. A brief description of the various resource files follows. 4.3.1 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 and icons 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. 4.3.2 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. Optionally a second sprite file called 'Sprites22' containing high resolution sprites for users with multisync monitors may be present. If the application is started in a high resolution screen mode and 'Sprites22' is available it will be loaded instead of 'Sprites'. 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' and 'Sprites22' files. This may, however, be changed after loading with a call to FNshell_WindowSetSpriteArea. 4.3.3 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 of the user application 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 (or the application Resources directory) then it is loaded from there, if not it is loaded from !ShellSys. This is to aid the construction of stand alone applications. 4.3.4 Modules Various Public Domain modules are used by the EvntShell library, these are stored in the !ShellSys application and loaded as required. A full list is: Interface - 3D icon effects, changing pointer shapes etc MenuUtils - menu handling FontMenu - font menu handling MsgTrans - message files (supplied for Risc-OS 2 compatability) FontWindow - handling outline fonts across mode changes (not used at the moment) Note that in general no documentation is supplied for these modules, it is all available elsewhere (or why not write to the author?) The EvntShell 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. 4.4 Menus Menus are now handled by MenuUtils which was written by Alex 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?). Menus may be created by calling functions in the user application, or from a menu command file. The file option is especially useful for lists of items that can be edited by the user - for example the new version of !VideoBase uses menu command files for lists of commonly used categories of recordings (Documentary, Action Film etc) a menu of which can be attached to an icon for easy access. As the command file is a simple text file it is very easy to edit to meet special requirements. A demonstration application !TestMenu should have been supplied with the library code so that you can try out some of the possibilities yourself. The appearance of the RISC OS 3 Style Guide has caused a few changes in the way that EvntShell handles 'popup' menus (menus attached to icons in windows other than the iconbar). Firstly they appear to the right of the icon they are attached to, the mouse pointer also moving to the recommended position, and secondly only SELECT and MENU will call up a popup menu. Note that menus can only be attached to icons in static windows, because as far as RISC OS is concerned a dynamic window is a menu. The support module is automatically loaded by the !Run file to provide the new menu handling SWIs used by the EvntShell library. 4.5 Saving Files 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. PROCshell_AttachDataSave also performs some checking when it is called. For example an error message is generated if the file icon is not a sprite icon. The button type of the file icon is also changed to Click/Drag to avoid the need to get this correct when editing the template file. The EvntShell library supports RAM file transfer for speed when saving data to consenting applications. See the !WinSave2 and !VBase2 example applications for how to use this routine. 4.6 Loading Files 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. When the event is attached a check is made to see if the application was started by double clicking a file which 'belongs' to it. If the filetypes match then the file is loaded as if it had been dragged to the icon bar icon. A filetype is associated with an application by the inclusion of the line: Set Alias$@RunType_xxx Run <Obey$Dir>.!Run %%*0 where xxx is the filetype number. 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. An example application !DataLoad should have been included with the Library to demonstrate how to do this. This is the code from !DataLoad used to achieve the load : PROCshell_AttachDataLoad(mainw%,0,&FEC,"_dataloadFEC",TRUE) The first parameter, mainw% is the wimp window handle, the second is the icon handle. &FEC is the filetype to respond to and '_dataloadFEC' is the name of the function to call to actually load the file. The last parameter is TRUE to load the file automatically into a reserved block of memory or FALSE if you want to handle the loading yourself. In this case loading is automatic and the loading function is simply: DEF FN_dataloadFEC(loc%,type%,name$,file_size%) void%=FNshell_MessageWindow("File '"+name$+"'",0,"DataLoad","") =0 The data file (of type &FEC, template) has been loaded at location loc%, its type is in type% and the full path name of the file is in name$. All the function itself does is call another function to display a message window so that you can see that loading the file has worked. This is a useful debugging technique! This method of loading a file works well for datafiles that are stored as one continuous block of data such as a text file which will be processed in some way. Suppose, however, you have a simple database type application which needs to load data into BASIC arrays. In this case you would simply use (assuming now the filetype is &205): PROCshell_AttachDataLoad(mainw%,0,&205,"_dataload205",FALSE) FN_dataload205 receives the full pathname of the file which has been dragged to icon 0 (providing the filetype of the file was &205, otherwise the load will be ignored) which may now be opened and the data loaded as usual. If the 'no load' flag was set for this load event and the load was from another application the data is saved in a file called 'ScrapFile' in the user application directory. 4.7 Compressing EvntShell Applications Due to the complex nature of the library code and the desire for it to do as much as possible to make a user application easy to write the ShellLib library file has expanded to around 150K. This is obviously undesirable especially if you are planning to send your finished program to a PD library. If you want people to be able to read your source code you can use the 'RunTime' version of the library which has been mildly compressed, but for the smallest possible program it is necessary to append the library (either version) to the end of the user application, remove the line which loads the library file and run the whole lot through a BASIC program compressor. I recommend !BasShrink or !Shrink_PD (the Public Domain version of !BasShrink) by John Wallace although John's program is slow and not presently multitasking it does produce code that still runs! This is unfortunately not true of Cy Booker's otherwise superb !BC which will not work on the EvntShell library. However, if I or Cy can find out what the problem is we'll fix it. 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. 4.8 The RunTime Library This is a compressed version of the full library which should be used wherever possible as it will load and run faster. The only reason for using the uncompressed library would be to add extra debugging code or perhaps to modify the routines. In this case, however, it is better to just copy the uncompressed routine into the user application and edit it there. The uncompressed version is called ShellLib, the compressed version is ShellLibRT. Both can be found inside the !ShellSys application directory. The ShellLibRT file has had the BLibII commands stripped out to save space. 4.9 The !ShellSys Application As large chunks of code are common to all EvntShell applications it makes sense to store it only once on the disk, hence !ShellSys which should be treated like the !System application. If you have a hard disk put it in the root directory (or ensure it is booted by your Boot file). If you have a floppy only system put it on all your disks (removing the ShellLib file and making sure all EvntShell applications use ShellLibRT will help save disk space). The system message file and various modules are also to be found here. 4.10 Handling 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. It is normally necessary for certain bits in the window definition block to be set up in a special way if a window is to be treated as a pane. This is not required when using the EvntShell library as the act of attaching the event makes the changes needed. You should avoid attaching a pane to a parent window where it is possible to resize the parent in such a way that the pane lies outside the window it is attached to. This will cause (non-fatal) problems when the windows are redrawn. Most RISC OS programs also avoid this for the same reasons. When attaching a pane it is possible to specify a 'pane flag' value which determines where the pane will be attached and to some extent how it will behave when the parent window is resized. The currently valid pane flags are: 0 = attached to parent window work area 1 = attached to left edge outside parent 2 = attached to top edge 3 = attached to left edge inside parent 4 = attached to bottom edge 5 = attached to right edge In cases 1-5 the library will attempt to stretch the pane window so that it will fill the whole width or depth of the parent window. 4.11 Outline Fonts The EvntShell Library supports Outline Fonts in two ways at the moment. Firstly Joris R�ling's 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 documentation 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. 4.12 Interactive Help The EvntShell library 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. 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. A message tag is a string consisting of not more than 11 characters long and represents a message string to be found in the 'Messages' file. 4.13 User Redraws 4.13.1 Simple Cases By 'Simple Cases' I mean text, lines, arcs, filled shapes etc. In other words anything that it is easy for the program to redraw quickly - this excludes maps of the world and any kind of random display. For these cases it is much faster to redirect the screen output into a sprite (see the next section). Using the example application you created earlier (or create a new one using AppBuild) add the following line to PROCSetUp_Windows: PROCshell_AttachUserRedraw(mainw%,"_redraw") and add the following FN definition: DEF FN_redraw(blk%,x0%,y0%) REM set colour for circle - colours are numbered 0-15! REM draw the circle.. SYS "Wimp_SetColour",11 CIRCLE FILL x0%+200,y0%-200,120 REM set colour for text... SYS "Wimp_SetColour",8 :REM colours are numbered 0-15! MOVE x0%+80,y0%-340:PRINT "This is an example of" MOVE x0%+40,y0%-380:PRINT "user drawn text and graphics" MOVE x0%+95,y0%-420:PRINT "in a desktop window" =0 The routine that attaches the redraw event also alters the 'flags' of the window so that the 'Auto redraw' bit is set up correctly. When you run the application and open the main window now, a circle and some text will appear in the window. If another window is moved over this one, note that the window is correctly redrawn. The parameters x0% and y0% for the redraw routine are the coordinates of the top left corner of the window. Note that y coordinates are negative! Try experimenting with other drawing commands and putting text in different places in the window to get the hang of this. 4.13.2 Drawing Into A Sprite With a more complicated or random display you need to set up a sprite to draw into. The example application !Redraw2 shows how to do this. Note in this case that the display within the window is animated by calling the plotting routine at every null event received. There also has to be two redrawing routines, one called when you want the display redrawn and one for when the wimp wants it redrawn (hence the call to PROCshell_AttachUserRedraw). In both cases it is necessary just to replot the sprite. 4.14 Complex Icons 4.14.1 Bump Icons Bump icons are simply a pair of (usually!) arrow shaped icons that effect the value displayed in a third icon. The EvntShell library allows you to create this effect with one call to PROCshell_AttachBumpIconHandler. Note that clicking on a bump icon which ADJUST has the opposite effect to using SELECT, i.e. ADJUST on the decrement icon actually increases the value. This is normal RISC OS behaviour and is intended to avoid unnecessary mouse movements. See the !VBase2 demo application for an example of its use. 4.15 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. 4.16 Error Handling The EvntShell library sets up a default error handler for you if you build the application with AppBuild. Since version 1.21 of the library support has been provided for Joe Taylor's !ThrowBack application which was on the September 1993 cover disk of Archimedes World. This traps errors in the program and opens a window showing the location and type of the error. Clicking on the error line then loads the file into your editor with the offending line highlighted which is a real timesaver. It is not necessary to have !ThrowBack, if it is not present a standard error window will pop up instead. The user application can generate errors on purpose as a way of aborting an operation. Control will then return to the wimp poll loop. This is done with a call to PROCshell_OK which opens an error box with a user defined message and an OK button. Note that an error generated any other way will end the application without further warning. This will be improved in a later release of the library, especially with regard to 'out of memory' errors from the heap manager as at the moment running out of memory aborts the user application instead of giving the user a chance to free up more memory. Also note that the MenuUtils module appears to set up its own error handler while calling the MenuSelect routine (the one you specify will be called when a selection is made for a particular menu item). This means that any errors in this routine appear to be ignored - in fact the routine just aborts at the error location without giving a message. This makes debugging these routines impossible unless you add the line: ON ERROR OFF at the start of the routine, i.e DEF FN_MenuSelect_TID(blk%) LOCAL str$ ON ERROR OFF str$=$(blk%!12) PROCshell_IconPutData(newrec%,4,str$,TRUE) PROCget_entries(file_loc%,(blk%!0)+1) =0 : 4.17 Draw Files The standard method of creating and displaying vector graphics on the Archimedes is the DrawFile, as created by the Acorn Draw application. It is also possible to create a DrawFile under program control using the routines in the supplied DrawLib library - this is seperate from the main shell library as the creation of DrawFiles is a specialised requirement. A good example of the use of program generated DrawFiles would be the production of a graph which could be loaded into a DTP or word processing package. If you want to do something like this it makes sense to use the existing standard of DrawFiles, indeed if you want other applications to be able to load the data there is really no choice. EvntShell handles the creation of DrawFiles by creating the necessary data in memory (hence memory availability limits the size of DrawFile that can be created), first adding a 'pre-header' to the data. The purpose of the 'pre- header' is to store data such as the current drawing colour, the width of the lines etc without using global variables. Each DrawLib routine requires the address of the buffer holding the DrawFile, enabling several DrawFiles to be created in different buffers at the same time. Existing DrawFiles may be loaded, modified by the user application and re- saved. Full control is provided over line thicknesses, patterns, end caps, path and fill colours (stored as 24 bit values which RISC OS displays using dithering). DrawFiles can contain lines, boxes, circles, ellipses and outline font text at the moment which is not an exhaustive list but should suffice for most needs. An example of the use of the DrawLib routines is as follows: LIBRARY "EvntShellSystem:DrawLib" buffer% = 0 : REM Just declare the variable PROCshell_DrawCreateFile(buffer%) PROCshell_DrawBox(buffer%,100,100,25,25) which creates a DrawFile and then adds a square at the location x100 y100 (relative to the bottom left of the paper) with sides 25mm long. By default millimetres are used for measurements, but drawing units may additionally be specified in centimeters, inches, OS units or points. Drawing units can be mixed within each file. A demonstration application called TestDraw should have been supplied with EvntShell to enable you to experiment. 5 The Tools Various programming tools have been written by myself and others to make producing wimp applications easier and faster. If you obtained the EvntShell library or updates thereof from the author you will have received all of the tools described here. If you obtained it from a PD library the author has little or no control over what else is supplied on the disk, so you may have to obtain the missing tools from other disks in the PD library, or better still send me a blank disk. Only one of the tools (one of the many Template editors available) is vital to the EvntShell Library, the others you can do without but they do make life easier. The following is a brief description of the tools supplied on APDL disk B122, and some other software which may be useful for developing applications 5.1 !AppBuild Creates new application shells as 'stand alone' applications for distribution, or ones that depend on !ShellSys. You can specify a name for the application, and choose whether or not to make it 'Stand Alone' i.e if all the files required are copied into the new application directory. If it is not a stand alone application then modules, message files etc will be loaded from the !ShellSys directory. This application supports Acorn's !Help application. 5.2 !ShellDBug A very simple debugger that displays trace output from the user application and the library code. Note that currently this application must be running before the application you want to debug. 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! 5.3 Other Tools There follows a brief description of some other PD/ShareWare /Copyrighted programs which I have found useful when developing EvntShell applications. 5.3.1 !BasShrink/!BasShrink_PD Is a BASIC program compressor which has been proved to work with EvntShell applications. !BasShrink_PD is Public Domain and available from various PD libraries, !BasShrink cost �5.00 and can be obtained from: John Wallace, Architype Software, 54 Parkes Hall Road, Woodsetton, Dudley, West Midlands, DY1 3SR ENGLAND See the section on compressing EvntShell programs for guidance on the options that can be used. 5.3.2 !BLibII A BASIC Linker program available on APDL Disk B138. This builds a program from the user application and the EvntShell library containing only the routines that are actually needed. This is very useful for distributing the final application as !BLibII and !BasShrink used together will produce the minimum program size possible. Full instructions are provided with !BLibII, so I won't go into details here except to note that the ShellLib library already contains the extra information that !BLibII requires, although the conditional linking bits are not yet in place. This means that the linked program is bigger than it should be, but an improvement over just appending the library code to the end of the user application. This will improve in future releases. Note that you should use the ShellLib library for linking with BLibII because ShellLibRT has had the BLibII commands removed to save space. 5.3.3 !TemplEd Also on APDL disk B138 this is I believe the best Template editor available anywhere. Forget !FormEd2 which was on some APDL B122 disks, !FormEd (Risc Squad version 2.84b on B053 or 2.87 also on B138) and any Acorn versions. 5.3.4 !StrongEd A text editor which used to be in the public domain and is now a commercial program available from Stallion Software. The big advantage this has over any other editor is the accompanying !StrongHlp application as pressing F1 over a word in a program known to !StrongHlp causes an hypertext information window to open. The Archimedes World August 1993 cover disk contained a crippled version of !StrongEd (as the commercial version is known) which can be used for evaluation purposes, and this may be available from PD libraries. The PD/Demo version cannot create files and only allows two files to be open at any one time although this is not much of a problem for evaluation purposes. 5.3.5 !StrongHlp A hypertext type application which almost removes the need for the Reference Manuals. Files supplied with it detail most of the SWIs available and much more information is provided on BASIC, VDU calls, Filetypes etc. The full version of !StrongHlp is only available as a 'free' add on with the commercial version of !StrongED from Stallion Software, although a new PD version is now available. The PD version does not contain the help data from the full version, however, it is sufficient for viewing the help files supplied with EvntShell. The Archimedes World August 1993 cover disk also contained the PD version of !StrongHlp. 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 '!'). 5.3.6 !ThrowBack This application appeared on the September 1993 cover disk of Archimedes World and is copyright that magazine. It provides a 'throwback' window when an error occurs, and clicking on the throwback window opens your program editor at the line where the error occured. This is very useful when debugging a program. The EvntShell library contains the necessary support code for this. Note that for this to work properly you need the DDEUtils module and an editor that supports throwback (such as !DeskEdit or !StrongEd), although it will work after a fashion with !Edit as well. 6 Distributing EvntShell Applications It is probably best to copy ShellLibRT, ShellMsgs and the modules into your application directory, not forgetting to alter the !Run file and the LIBRARY statement in the runimage file to point to the new location. That way you are sure that all the necessary files are in one place for ease of copying. AppBuild will do this for you automatically if you drag the application to the iconbar icon, turn the 'Standalone' switch in the main window on and click OK. 7 Debugging A simple debugger (!ShellDBug) is supplied with the library to display trace messages. You can also do wonders with a few VDU7 calls to check which parts of the application are actually being executed.. 8 The Credits Quite a few people have been (however unwittingly) involved in this project such as: David Breakwell (the original idea), Robert Seago (for using it for things I wouldn't dream of attempting!), Cy Booker (various helpful suggestions - I won't rewrite it in C or Assembler though - RISC-OS 3 Documentation and the FontWindow module), Risc User magazine (for permission to use its heap manager code), Joris R�ling (FontMenu module), Simon Huntingdon (Interface module), Alex Petrov (MenuUtils), Jan-Herman Buining (WASP application from which I worked out how to do RAM file transfers) and lastly the wife (Hilke) for putting up with me pounding away at a keyboard for hours when we could have been looking for new furniture instead. 9 Future Enhancements The software will become faster and be able to leap tall buildings with a single bound. Bugs and limitations will become fewer as well. - 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 - Choice of message file language from within program - Automatic attaching of 'hot key' events by examining menu text 10 Changes Since V1.14 V1.20 - Now uses MenuUtils module for menu handling - Added routine PROCshell_IconSetSelected - Added routine PROCshell_IconSetUnselectable - Added routine FNshell_StrongHlpIsAvailable - 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_AttachOpenWindowHandler - Added routine PROCshell_AttachCloseWindowHandler - Added routine FNshell_SpriteAreaLoad - Added routine PROCshell_SpriteAreaSave - Added routine FNshell_SpriteGetPtr - Added routine PROCshell_SpriteRename - Added routine FNshell_OSCheckVersion - Added routine FNshell_OSCheckModuleVersion - Added routine PROCshell_IconSetLeftJust - Fixed PROCshell_IconSetRightJust - Writable icon handler now ignores unselectable icons when moving caret - Added support for ResFind (internationalisation of messages etc) V1.21 - Added support for Joe Taylor's !ThrowBack error handler (see Archimedes World Sep 1993) V1.22 - Clicking on a 'bump' icon with ADJUST now has the opposite effect to clicking with SELECT - Improved error handling and messages - PROCshell_AttachDataSave now alters icon button type of file icon to click/drag and generates an error if the file icon is not a sprite - PROCshell_AttachMenu now sets button type of icon to 3 (Click) - Bug fix to menu attach routine (a menu could appear when another event occurs such as ClickSelect) - Added routine <FNhell_IconIsDraggable - Added routine FNshell_IconIsSprite - Added routine FNshell_GetString - Added routine PROCshell_Ensure - Added routine PROCshell_IconPutDataNow - Added routine PROCshell_MessageSendDataLoad V1.23 - Bug fix for auto press of icon 0 when RETURN is pressed in last writable icon V1.24 - Bug fix for pane handler (pane was not opening fully when wimp adjusts parent window coords - if title is changed for example). Pane handling is still not 100% when a mode change event occurs though V1.25 - Added routine FNshell_MenuMakeFromFile - Added routine FNshell_BinarySearch - Added routine FNshell_MenuGetNrItems - Added routine FNshell_MenuGetNrDotted - Added routine FNshell_MenuGetItemHandle - Added routine FNshell_MenuGetItemHeight - Added routine FNshell_MenuGetItemHandler - Added routine FNshell_MenuCalculateHeight - Added routine FNshell_MenuGetText - Added routine PROCshell_QuickSort - Added routine PROCshell_MenuSortItems - Added routine PROCshell_WindowCentreOnPointer - PROCshell_IconPutData now checks if the new text to put into the icon is the same as the existing text. If it is, no action is taken avoiding flickering of the icon - 'Popup' menus (menus attached to icons in windows other than the iconbar) now appear to the right of the icon, the pointer also being relocated. ADJUST no longer opens a 'popup' menu (Recommendations from the RISC OS 3 Style Guide) - Bug fix to menu opening routine (MENU sometimes failed to open a 'popup' menu) - TAB/SHIFT TAB now move caret between writable icons. RETURN now only activates icon 0, it does not move the caret (Style Guide recommendations) V1.26 - Added routine PROCshell_WindowSetTitleRightJust - Added routine PROCshell_WindowSetTitleCentreJust - Added routine PROCshell_WindowCentreOnScreen - Added routine FNshell_GetLastMouseButton - Added routine FNshell_GetLastWindowClicked - Added routine FNshell_GetLastIconClicked - Running out of memory does not now cause a fatal error and shut down of the application - Double clicking on a file 'belonging' to an application now causes the application to start up and load the file - 'Sprites22' file containing hi-res sprites automatically detected and loaded if the program is started in a hi-res screen mode - Bug fix to PROCshell_WindowMoveToIcon (window was sometimes moved to wrong position because the scroll offset of the icon bar was not being taken into account) Note: This fix only for RISC OS 3 users - Bug fix to PROCshell_IconbarSetText (new text not always redrawn because the scroll offset of the icon bar was not being taken into account) Note: This fix only for RISC OS 3 users - Click on a radio icon with ADJUST selects icon to avoid the situation where all radio buttons in a group are off V1.27 - Bug fix to writable icon handler (could cause a crash if more than 5 writable icons in one window) - Bug fix to template loading routine which sometimes did not allocate enough buffer space V1.28 - Documentation updated for PROCshell_QuickSort and PROCshell_OpenMenu. Added documentation for DrawLib - Added routine PROCshell_FontGetHandle - Added routine PROCshell_FontSetColour - Added routine FNshell_FontForgetFont - Fixed problem with applications loading files on a double click in a Filer window when the files should have been loaded by another application e.g. !Draw V1.29 - Bug fix to dataload routine introduced in 1.28. Double click loads now ok - Fixed bug in FNshell_OSModuleCheckVersion - Improved StrongHlp initialisation code, now checks files actually exist V1.30 - Added PROCshell_CaretPutFirstIcon - Added PROCshell_CaretPutLastIcon - Added PROCshell_CaretPutNextIcon - Added PROCshell_CaretPutPrevIcon - CTRL Cursor Up/Down move the caret to the first/last writable icons in a window respectively
00000000 20 20 20 20 20 20 49 6e 74 65 72 69 6d 20 55 73 | Interim Us| 00000010 65 72 20 4d 61 6e 75 61 6c 20 46 6f 72 20 45 76 |er Manual For Ev| 00000020 6e 74 53 68 65 6c 6c 0a 20 20 20 20 20 20 2d 2d |ntShell. --| 00000030 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00000040 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a |---------------.| 00000050 20 20 20 20 20 20 0a 20 20 20 20 20 20 31 20 20 | . 1 | 00000060 49 6e 74 72 6f 64 75 63 74 69 6f 6e 20 20 20 20 |Introduction | 00000070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000080 20 20 20 20 20 20 0a 20 20 20 20 20 20 32 20 20 | . 2 | 00000090 43 72 65 61 74 69 6e 67 20 41 20 4e 65 77 20 41 |Creating A New A| 000000a0 70 70 6c 69 63 61 74 69 6f 6e 0a 20 20 20 20 20 |pplication. | 000000b0 20 33 20 20 41 20 54 75 74 6f 72 69 61 6c 0a 20 | 3 A Tutorial. | 000000c0 20 20 20 20 20 34 20 20 41 20 47 65 6e 65 72 61 | 4 A Genera| 000000d0 6c 20 4f 76 65 72 76 69 65 77 0a 20 20 20 20 20 |l Overview. | 000000e0 20 20 20 20 20 31 2e 20 20 44 79 6e 61 6d 69 63 | 1. Dynamic| 000000f0 20 57 69 6e 64 6f 77 73 0a 20 20 20 20 20 20 20 | Windows. | 00000100 20 20 20 32 2e 20 20 53 74 61 74 69 63 20 57 69 | 2. Static Wi| 00000110 6e 64 6f 77 73 0a 20 20 20 20 20 20 20 20 20 20 |ndows. | 00000120 33 2e 20 20 52 65 73 6f 75 72 63 65 73 0a 20 20 |3. Resources. | 00000130 20 20 20 20 20 20 20 20 20 20 20 20 20 31 2e 20 | 1. | 00000140 54 65 6d 70 6c 61 74 65 73 0a 20 20 20 20 20 20 |Templates. | 00000150 20 20 20 20 20 20 20 20 20 32 2e 20 53 70 72 69 | 2. Spri| 00000160 74 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 |tes. | 00000170 20 20 20 33 2e 20 4d 65 73 73 61 67 65 20 46 69 | 3. Message Fi| 00000180 6c 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 |les. | 00000190 20 20 20 34 2e 20 4d 6f 64 75 6c 65 73 0a 20 20 | 4. Modules. | 000001a0 20 20 20 20 20 20 20 20 34 2e 20 20 4d 65 6e 75 | 4. Menu| 000001b0 73 0a 20 20 20 20 20 20 20 20 20 20 35 2e 20 20 |s. 5. | 000001c0 53 61 76 69 6e 67 20 46 69 6c 65 73 0a 20 20 20 |Saving Files. | 000001d0 20 20 20 20 20 20 20 36 2e 20 20 4c 6f 61 64 69 | 6. Loadi| 000001e0 6e 67 20 46 69 6c 65 73 0a 20 20 20 20 20 20 20 |ng Files. | 000001f0 20 20 20 37 2e 20 20 43 6f 6d 70 72 65 73 73 69 | 7. Compressi| 00000200 6e 67 20 45 76 6e 74 53 68 65 6c 6c 20 41 70 70 |ng EvntShell App| 00000210 6c 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 |lications. | 00000220 20 20 20 20 38 2e 20 20 54 68 65 20 52 75 6e 54 | 8. The RunT| 00000230 69 6d 65 20 4c 69 62 72 61 72 79 0a 20 20 20 20 |ime Library. | 00000240 20 20 20 20 20 20 39 2e 20 20 54 68 65 20 21 53 | 9. The !S| 00000250 68 65 6c 6c 53 79 73 20 41 70 70 6c 69 63 61 74 |hellSys Applicat| 00000260 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 31 30 |ion. 10| 00000270 2e 20 48 61 6e 64 6c 69 6e 67 20 50 61 6e 65 73 |. Handling Panes| 00000280 0a 20 20 20 20 20 20 20 20 20 20 31 31 2e 20 4f |. 11. O| 00000290 75 74 6c 69 6e 65 20 46 6f 6e 74 73 0a 20 20 20 |utline Fonts. | 000002a0 20 20 20 20 20 20 20 31 32 2e 20 49 6e 74 65 72 | 12. Inter| 000002b0 61 63 74 69 76 65 20 48 65 6c 70 0a 20 20 20 20 |active Help. | 000002c0 20 20 20 20 20 20 31 33 2e 20 55 73 65 72 20 52 | 13. User R| 000002d0 65 64 72 61 77 73 0a 20 20 20 20 20 20 20 20 20 |edraws. | 000002e0 20 20 20 20 20 20 31 2e 20 53 69 6d 70 6c 65 20 | 1. Simple | 000002f0 63 61 73 65 73 0a 20 20 20 20 20 20 20 20 20 20 |cases. | 00000300 20 20 20 20 20 32 2e 20 44 72 61 77 69 6e 67 20 | 2. Drawing | 00000310 69 6e 74 6f 20 61 20 73 70 72 69 74 65 0a 20 20 |into a sprite. | 00000320 20 20 20 20 20 20 20 20 31 34 2e 20 43 6f 6d 70 | 14. Comp| 00000330 6c 65 78 20 49 63 6f 6e 20 54 79 70 65 73 0a 20 |lex Icon Types. | 00000340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 2e | 1.| 00000350 20 42 75 6d 70 20 49 63 6f 6e 73 0a 20 20 20 20 | Bump Icons. | 00000360 20 20 20 20 20 20 31 35 2e 20 4d 65 6d 6f 72 79 | 15. Memory| 00000370 20 4d 61 6e 61 67 65 6d 65 6e 74 0a 20 20 20 20 | Management. | 00000380 20 20 20 20 20 20 31 36 2e 20 45 72 72 6f 72 20 | 16. Error | 00000390 48 61 6e 64 6c 69 6e 67 0a 20 20 20 20 20 20 20 |Handling. | 000003a0 20 20 20 31 37 2e 20 44 72 61 77 20 46 69 6c 65 | 17. Draw File| 000003b0 73 0a 20 20 20 20 20 20 35 20 20 54 68 65 20 54 |s. 5 The T| 000003c0 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 31 |ools. 1| 000003d0 2e 20 21 41 70 70 42 75 69 6c 64 0a 20 20 20 20 |. !AppBuild. | 000003e0 20 20 20 20 20 20 32 2e 20 21 53 68 65 6c 6c 44 | 2. !ShellD| 000003f0 42 75 67 0a 20 20 20 20 20 20 20 20 20 20 33 2e |Bug. 3.| 00000400 20 4f 74 68 65 72 20 54 6f 6f 6c 73 0a 20 20 20 | Other Tools. | 00000410 20 20 20 20 20 20 20 20 20 20 20 31 2e 20 21 42 | 1. !B| 00000420 61 73 53 68 72 69 6e 6b 2f 21 42 61 73 53 68 72 |asShrink/!BasShr| 00000430 69 6e 6b 5f 50 44 0a 20 20 20 20 20 20 20 20 20 |ink_PD. | 00000440 20 20 20 20 20 32 2e 20 21 42 4c 69 62 49 49 0a | 2. !BLibII.| 00000450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 33 2e | 3.| 00000460 20 21 54 65 6d 70 6c 45 64 0a 20 20 20 20 20 20 | !TemplEd. | 00000470 20 20 20 20 20 20 20 20 34 2e 20 21 53 74 72 6f | 4. !Stro| 00000480 6e 67 45 64 32 0a 20 20 20 20 20 20 20 20 20 20 |ngEd2. | 00000490 20 20 20 20 35 2e 20 21 53 74 72 6f 6e 67 48 6c | 5. !StrongHl| 000004a0 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |p. | 000004b0 36 2e 20 21 54 68 72 6f 77 42 61 63 6b 0a 20 20 |6. !ThrowBack. | 000004c0 20 20 20 20 36 20 20 44 69 73 74 72 69 62 75 74 | 6 Distribut| 000004d0 69 6e 67 20 45 76 6e 74 53 68 65 6c 6c 20 41 70 |ing EvntShell Ap| 000004e0 70 6c 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 20 |plications. | 000004f0 20 37 20 20 44 65 62 75 67 67 69 6e 67 0a 20 20 | 7 Debugging. | 00000500 20 20 20 20 38 20 20 54 68 65 20 43 72 65 64 69 | 8 The Credi| 00000510 74 73 0a 20 20 20 20 20 20 39 20 20 46 75 74 75 |ts. 9 Futu| 00000520 72 65 20 45 6e 68 61 6e 63 65 6d 65 6e 74 73 0a |re Enhancements.| 00000530 20 20 20 20 20 20 31 30 20 43 68 61 6e 67 65 73 | 10 Changes| 00000540 20 53 69 6e 63 65 20 56 31 2e 30 39 0a 0c 0a 20 | Since V1.09... | 00000550 20 20 20 0a 20 20 20 20 20 20 31 2e 20 49 6e 74 | . 1. Int| 00000560 72 6f 64 75 63 74 69 6f 6e 0a 0a 20 20 20 20 20 |roduction.. | 00000570 20 41 20 27 53 68 65 6c 6c 27 20 70 72 6f 67 72 | A 'Shell' progr| 00000580 61 6d 20 69 73 20 61 20 73 74 61 72 74 69 6e 67 |am is a starting| 00000590 20 70 6f 69 6e 74 20 66 6f 72 20 64 65 76 65 6c | point for devel| 000005a0 6f 70 69 6e 67 20 79 6f 75 72 20 6f 77 6e 20 0a |oping your own .| 000005b0 20 20 20 20 20 20 61 70 70 6c 69 63 61 74 69 6f | applicatio| 000005c0 6e 73 20 74 68 61 74 20 72 75 6e 20 75 6e 64 65 |ns that run unde| 000005d0 72 20 74 68 65 20 52 49 53 43 2d 4f 53 20 77 69 |r the RISC-OS wi| 000005e0 6d 70 20 73 79 73 74 65 6d 2e 20 54 68 65 20 0a |mp system. The .| 000005f0 20 20 20 20 20 20 45 76 6e 74 53 68 65 6c 6c 20 | EvntShell | 00000600 6c 69 62 72 61 72 79 20 63 6f 6e 74 61 69 6e 73 |library contains| 00000610 20 63 6f 64 65 20 74 6f 20 68 61 6e 64 6c 65 20 | code to handle | 00000620 6d 6f 73 74 20 6f 66 20 74 68 65 20 27 45 76 65 |most of the 'Eve| 00000630 6e 74 73 27 20 0a 20 20 20 20 20 20 28 69 2e 65 |nts' . (i.e| 00000640 2e 20 6f 70 65 6e 69 6e 67 20 61 20 6d 65 6e 75 |. opening a menu| 00000650 2c 20 63 6c 6f 73 69 6e 67 20 61 20 77 69 6e 64 |, closing a wind| 00000660 6f 77 20 65 74 63 29 20 74 68 61 74 20 63 61 6e |ow etc) that can| 00000670 20 6f 63 63 75 72 2c 20 61 6e 64 20 0a 20 20 20 | occur, and . | 00000680 20 20 20 61 6c 6c 20 79 6f 75 72 20 61 70 70 6c | all your appl| 00000690 69 63 61 74 69 6f 6e 20 68 61 73 20 74 6f 20 64 |ication has to d| 000006a0 6f 20 69 73 20 69 6e 66 6f 72 6d 20 74 68 65 20 |o is inform the | 000006b0 6c 69 62 72 61 72 79 20 77 68 61 74 20 69 74 20 |library what it | 000006c0 0a 20 20 20 20 20 20 73 68 6f 75 6c 64 20 64 6f |. should do| 000006d0 20 77 68 65 6e 20 63 65 72 74 61 69 6e 20 65 76 | when certain ev| 000006e0 65 6e 74 73 20 6f 63 63 75 72 2e 20 46 6f 72 20 |ents occur. For | 000006f0 65 78 61 6d 70 6c 65 20 61 20 6d 65 6e 75 20 63 |example a menu c| 00000700 61 6e 20 62 65 20 0a 20 20 20 20 20 20 61 74 74 |an be . att| 00000710 61 63 68 65 64 20 74 6f 20 61 20 77 69 6e 64 6f |ached to a windo| 00000720 77 20 6f 72 20 74 6f 20 61 6e 20 69 63 6f 6e 20 |w or to an icon | 00000730 2d 20 74 68 65 20 6c 69 62 72 61 72 79 20 77 69 |- the library wi| 00000740 6c 6c 20 6f 70 65 6e 20 74 68 65 20 0a 20 20 20 |ll open the . | 00000750 20 20 20 6d 65 6e 75 20 66 6f 72 20 79 6f 75 20 | menu for you | 00000760 28 69 6e 20 74 68 65 20 63 6f 72 72 65 63 74 20 |(in the correct | 00000770 70 6f 73 69 74 69 6f 6e 21 29 20 77 68 65 6e 20 |position!) when | 00000780 74 68 65 20 3c 4d 45 4e 55 3e 20 62 75 74 74 6f |the <MENU> butto| 00000790 6e 20 6f 6e 20 0a 20 20 20 20 20 20 74 68 65 20 |n on . the | 000007a0 6d 6f 75 73 65 20 69 73 20 75 73 65 64 2e 20 0a |mouse is used. .| 000007b0 0a 20 20 20 20 20 20 50 52 4f 43 73 68 65 6c 6c |. PROCshell| 000007c0 5f 41 74 74 61 63 68 4d 6f 64 65 43 68 61 6e 67 |_AttachModeChang| 000007d0 65 48 61 6e 64 6c 65 72 20 69 73 20 61 6e 6f 74 |eHandler is anot| 000007e0 68 65 72 20 76 65 72 79 20 73 69 6d 70 6c 65 20 |her very simple | 000007f0 65 78 61 6d 70 6c 65 20 0a 20 20 20 20 20 20 77 |example . w| 00000800 68 69 63 68 20 63 61 6c 6c 73 20 61 20 66 75 6e |hich calls a fun| 00000810 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 27 55 73 |ction in the 'Us| 00000820 65 72 20 41 70 70 6c 69 63 61 74 69 6f 6e 27 20 |er Application' | 00000830 28 74 68 69 73 20 69 73 20 74 68 65 20 62 69 74 |(this is the bit| 00000840 20 0a 20 20 20 20 20 20 79 6f 75 20 77 72 69 74 | . you writ| 00000850 65 2c 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 |e, starting with| 00000860 20 61 20 27 53 68 65 6c 6c 27 20 63 72 65 61 74 | a 'Shell' creat| 00000870 65 64 20 62 79 20 74 68 65 20 41 70 70 42 75 69 |ed by the AppBui| 00000880 6c 64 20 74 6f 6f 6c 20 0a 20 20 20 20 20 20 6f |ld tool . o| 00000890 72 20 62 79 20 6d 6f 64 69 66 79 69 6e 67 20 6f |r by modifying o| 000008a0 6e 65 20 6f 66 20 74 68 65 20 65 78 61 6d 70 6c |ne of the exampl| 000008b0 65 73 29 20 77 68 65 6e 20 74 68 65 20 73 63 72 |es) when the scr| 000008c0 65 65 6e 20 6d 6f 64 65 20 0a 20 20 20 20 20 20 |een mode . | 000008d0 63 68 61 6e 67 65 73 2e 20 41 20 6d 6f 72 65 20 |changes. A more | 000008e0 63 6f 6d 70 6c 69 63 61 74 65 64 20 65 78 61 6d |complicated exam| 000008f0 70 6c 65 20 69 73 20 50 52 4f 43 73 68 65 6c 6c |ple is PROCshell| 00000900 5f 41 74 74 61 63 68 50 61 6e 65 20 77 68 69 63 |_AttachPane whic| 00000910 68 20 0a 20 20 20 20 20 20 61 6c 6c 6f 77 73 20 |h . allows | 00000920 74 68 65 20 61 74 74 61 63 68 6d 65 6e 74 20 6f |the attachment o| 00000930 66 20 70 61 6e 65 20 77 69 6e 64 6f 77 73 20 74 |f pane windows t| 00000940 6f 20 61 20 70 61 72 65 6e 74 20 77 69 6e 64 6f |o a parent windo| 00000950 77 2e 20 41 6c 6c 20 0a 20 20 20 20 20 20 6f 70 |w. All . op| 00000960 65 6e 69 6e 67 20 61 6e 64 20 63 6c 6f 73 69 6e |ening and closin| 00000970 67 20 6f 66 20 77 69 6e 64 6f 77 73 20 61 6e 64 |g of windows and| 00000980 20 70 61 6e 65 73 20 69 73 20 68 61 6e 64 6c 65 | panes is handle| 00000990 64 20 74 6f 74 61 6c 6c 79 20 62 79 20 0a 20 20 |d totally by . | 000009a0 20 20 20 20 74 68 65 20 6c 69 62 72 61 72 79 20 | the library | 000009b0 63 6f 64 65 2e 20 0a 0a 20 20 20 20 20 20 4e 6f |code. .. No| 000009c0 72 6d 61 6c 6c 79 20 77 72 69 74 69 6e 67 20 61 |rmally writing a| 000009d0 20 77 69 6d 70 20 61 70 70 6c 69 63 61 74 69 6f | wimp applicatio| 000009e0 6e 20 69 73 20 61 20 76 65 72 79 20 63 6f 6d 70 |n is a very comp| 000009f0 6c 65 78 20 62 75 73 69 6e 65 73 73 2c 20 0a 20 |lex business, . | 00000a00 20 20 20 20 20 69 6e 76 6f 6c 76 69 6e 67 20 6d | involving m| 00000a10 75 63 68 20 72 65 61 64 69 6e 67 20 6f 66 20 74 |uch reading of t| 00000a20 68 65 20 50 72 6f 67 72 61 6d 6d 65 72 73 20 52 |he Programmers R| 00000a30 65 66 65 72 65 6e 63 65 20 4d 61 6e 75 61 6c 73 |eference Manuals| 00000a40 2c 20 0a 20 20 20 20 20 20 6d 61 67 61 7a 69 6e |, . magazin| 00000a50 65 20 61 72 74 69 63 6c 65 73 20 61 6e 64 20 65 |e articles and e| 00000a60 78 61 6d 69 6e 69 6e 67 20 6f 74 68 65 72 20 61 |xamining other a| 00000a70 70 70 6c 69 63 61 74 69 6f 6e 73 2e 20 54 68 65 |pplications. The| 00000a80 20 61 69 6d 20 6f 66 20 0a 20 20 20 20 20 20 74 | aim of . t| 00000a90 68 65 20 45 76 6e 74 53 68 65 6c 6c 20 6c 69 62 |he EvntShell lib| 00000aa0 72 61 72 79 20 69 73 20 74 6f 20 72 65 64 75 63 |rary is to reduc| 00000ab0 65 20 74 68 65 20 6e 65 65 64 20 66 6f 72 20 74 |e the need for t| 00000ac0 68 69 73 20 61 6e 64 20 74 6f 20 0a 20 20 20 20 |his and to . | 00000ad0 20 20 65 6e 61 62 6c 65 20 74 68 65 20 73 70 65 | enable the spe| 00000ae0 65 64 79 20 63 72 65 61 74 69 6f 6e 20 6f 66 20 |edy creation of | 00000af0 65 61 73 69 6c 79 20 6d 61 69 6e 74 61 69 6e 65 |easily maintaine| 00000b00 64 20 61 6e 64 20 72 6f 62 75 73 74 20 0a 20 20 |d and robust . | 00000b10 20 20 20 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 | applications| 00000b20 2e 20 0a 0a 20 20 20 20 20 20 41 6e 6f 74 68 65 |. .. Anothe| 00000b30 72 20 69 6d 70 6f 72 74 61 6e 74 20 72 65 61 73 |r important reas| 00000b40 6f 6e 20 66 6f 72 20 75 73 69 6e 67 20 74 68 69 |on for using thi| 00000b50 73 20 53 68 65 6c 6c 20 69 73 20 74 68 61 74 20 |s Shell is that | 00000b60 69 74 20 61 74 74 65 6d 70 74 73 20 0a 20 20 20 |it attempts . | 00000b70 20 20 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 | to ensure tha| 00000b80 74 20 61 6e 79 20 61 70 70 6c 69 63 61 74 69 6f |t any applicatio| 00000b90 6e 20 77 72 69 74 74 65 6e 20 75 73 69 6e 67 20 |n written using | 00000ba0 69 74 20 66 6f 6c 6c 6f 77 73 20 74 68 65 20 52 |it follows the R| 00000bb0 49 53 43 20 0a 20 20 20 20 20 20 4f 53 20 33 20 |ISC . OS 3 | 00000bc0 53 74 79 6c 65 20 47 75 69 64 65 20 77 68 69 63 |Style Guide whic| 00000bd0 68 20 64 65 66 69 6e 65 73 20 68 6f 77 20 61 70 |h defines how ap| 00000be0 70 6c 69 63 61 74 69 6f 6e 73 20 73 68 6f 75 6c |plications shoul| 00000bf0 64 20 6c 6f 6f 6b 20 61 6e 64 20 0a 20 20 20 20 |d look and . | 00000c00 20 20 62 65 68 61 76 65 2e 20 46 6f 72 20 65 78 | behave. For ex| 00000c10 61 6d 70 6c 65 20 6d 65 6e 75 73 20 61 74 74 61 |ample menus atta| 00000c20 63 68 65 64 20 74 6f 20 69 63 6f 6e 73 20 28 27 |ched to icons ('| 00000c30 70 6f 70 75 70 27 20 6d 65 6e 75 73 29 20 0a 20 |popup' menus) . | 00000c40 20 20 20 20 20 61 70 70 65 61 72 20 74 6f 20 74 | appear to t| 00000c50 68 65 20 72 69 67 68 74 20 6f 66 20 74 68 65 20 |he right of the | 00000c60 69 63 6f 6e 20 74 68 65 79 20 61 72 65 20 61 74 |icon they are at| 00000c70 74 61 63 68 65 64 20 74 6f 20 61 6e 64 20 74 68 |tached to and th| 00000c80 65 20 0a 20 20 20 20 20 20 6d 6f 75 73 65 20 70 |e . mouse p| 00000c90 6f 69 6e 74 65 72 20 69 73 20 72 65 70 6f 73 69 |ointer is reposi| 00000ca0 74 69 6f 6e 65 64 20 61 70 70 72 6f 70 72 69 61 |tioned appropria| 00000cb0 74 65 6c 79 2e 20 49 6d 70 6c 65 6d 65 6e 74 69 |tely. Implementi| 00000cc0 6e 67 20 74 68 65 20 0a 20 20 20 20 20 20 53 74 |ng the . St| 00000cd0 79 6c 65 20 47 75 69 64 65 20 72 65 63 6f 6d 6d |yle Guide recomm| 00000ce0 65 6e 64 61 74 69 6f 6e 73 20 69 73 20 6e 6f 74 |endations is not| 00000cf0 20 65 61 73 79 20 61 6e 64 20 61 74 20 74 68 65 | easy and at the| 00000d00 20 6d 6f 6d 65 6e 74 20 76 65 72 79 20 0a 20 20 | moment very . | 00000d10 20 20 20 20 66 65 77 20 6f 66 20 74 68 65 20 6e | few of the n| 00000d20 65 63 65 73 73 61 72 79 20 63 68 61 6e 67 65 73 |ecessary changes| 00000d30 20 74 6f 20 74 68 65 20 6c 69 62 72 61 72 79 20 | to the library | 00000d40 63 6f 64 65 20 68 61 76 65 20 62 65 65 6e 20 6d |code have been m| 00000d50 61 64 65 2c 20 0a 20 20 20 20 20 20 68 6f 77 65 |ade, . howe| 00000d60 76 65 72 2c 20 74 68 69 73 20 77 69 6c 6c 20 69 |ver, this will i| 00000d70 6d 70 72 6f 76 65 20 69 6e 20 66 75 74 75 72 65 |mprove in future| 00000d80 20 72 65 6c 65 61 73 65 73 2e 20 0a 0a 20 20 20 | releases. .. | 00000d90 20 20 20 49 6e 20 6f 72 64 65 72 20 74 6f 20 75 | In order to u| 00000da0 73 65 20 74 68 65 20 6c 69 62 72 61 72 79 20 69 |se the library i| 00000db0 74 20 69 73 20 6e 65 63 65 73 73 61 72 79 20 74 |t is necessary t| 00000dc0 6f 20 68 61 76 65 20 61 20 72 65 61 73 6f 6e 61 |o have a reasona| 00000dd0 62 6c 65 20 0a 20 20 20 20 20 20 75 6e 64 65 72 |ble . under| 00000de0 73 74 61 6e 64 69 6e 67 20 6f 66 20 68 6f 77 20 |standing of how | 00000df0 74 6f 20 75 73 65 20 61 6e 20 41 72 63 68 69 6d |to use an Archim| 00000e00 65 64 65 73 20 61 6e 64 20 74 68 65 20 70 72 6f |edes and the pro| 00000e10 67 72 61 6d 73 20 0a 20 20 20 20 20 20 73 75 70 |grams . sup| 00000e20 70 6c 69 65 64 20 77 69 74 68 20 69 74 2e 20 53 |plied with it. S| 00000e30 6f 6d 65 20 65 78 70 65 72 69 65 6e 63 65 20 69 |ome experience i| 00000e40 6e 20 42 41 53 49 43 20 69 73 20 61 6c 73 6f 20 |n BASIC is also | 00000e50 6f 66 20 63 6f 75 72 73 65 20 0a 20 20 20 20 20 |of course . | 00000e60 20 72 65 71 75 69 72 65 64 2e 20 54 68 69 73 20 | required. This | 00000e70 6d 61 6e 75 61 6c 20 64 6f 65 73 20 6e 6f 74 20 |manual does not | 00000e80 63 6f 76 65 72 20 68 6f 77 20 74 6f 20 75 73 65 |cover how to use| 00000e90 20 74 6f 6f 6c 73 20 6c 69 6b 65 20 74 68 65 20 | tools like the | 00000ea0 0a 20 20 20 20 20 20 54 65 6d 70 6c 61 74 65 20 |. Template | 00000eb0 65 64 69 74 6f 72 20 77 68 69 63 68 20 68 61 73 |editor which has| 00000ec0 20 69 74 73 20 6f 77 6e 20 69 6e 73 74 72 75 63 | its own instruc| 00000ed0 74 69 6f 6e 73 20 61 6e 64 20 6d 61 79 20 6e 6f |tions and may no| 00000ee0 74 20 68 61 76 65 20 0a 20 20 20 20 20 20 62 65 |t have . be| 00000ef0 65 6e 20 73 75 70 70 6c 69 65 64 20 77 69 74 68 |en supplied with| 00000f00 20 79 6f 75 72 20 63 6f 70 79 20 6f 66 20 74 68 | your copy of th| 00000f10 65 20 45 76 6e 74 53 68 65 6c 6c 20 6c 69 62 72 |e EvntShell libr| 00000f20 61 72 79 2e 20 0a 0a 20 20 20 20 20 20 32 2e 20 |ary. .. 2. | 00000f30 43 72 65 61 74 69 6e 67 20 41 6e 20 45 78 61 6d |Creating An Exam| 00000f40 70 6c 65 20 41 70 70 6c 69 63 61 74 69 6f 6e 20 |ple Application | 00000f50 0a 0a 20 20 20 20 20 20 54 68 65 20 65 61 73 69 |.. The easi| 00000f60 65 73 74 20 77 61 79 20 74 6f 20 63 72 65 61 74 |est way to creat| 00000f70 65 20 61 20 6e 65 77 20 61 70 70 6c 69 63 61 74 |e a new applicat| 00000f80 69 6f 6e 20 69 73 20 74 6f 20 75 73 65 20 74 68 |ion is to use th| 00000f90 65 20 0a 20 20 20 20 20 20 41 70 70 42 75 69 6c |e . AppBuil| 00000fa0 64 20 74 6f 6f 6c 2e 20 52 75 6e 20 74 68 69 73 |d tool. Run this| 00000fb0 20 61 6e 64 20 64 72 61 67 20 74 68 65 20 61 70 | and drag the ap| 00000fc0 70 6c 69 63 61 74 69 6f 6e 20 69 63 6f 6e 20 66 |plication icon f| 00000fd0 72 6f 6d 20 74 68 65 20 0a 20 20 20 20 20 20 41 |rom the . A| 00000fe0 70 70 42 75 69 6c 64 20 77 69 6e 64 6f 77 20 74 |ppBuild window t| 00000ff0 6f 20 61 20 64 69 72 65 63 74 6f 72 79 20 64 69 |o a directory di| 00001000 73 70 6c 61 79 2e 20 54 68 65 20 76 61 72 69 6f |splay. The vario| 00001010 75 73 20 6f 70 74 69 6f 6e 73 20 0a 20 20 20 20 |us options . | 00001020 20 20 61 76 61 69 6c 61 62 6c 65 20 75 73 69 6e | available usin| 00001030 67 20 41 70 70 42 75 69 6c 64 20 77 69 6c 6c 20 |g AppBuild will | 00001040 62 65 20 64 69 73 63 75 73 73 65 64 20 6c 61 74 |be discussed lat| 00001050 65 72 2c 20 62 75 74 20 66 6f 72 20 6e 6f 77 20 |er, but for now | 00001060 0a 20 20 20 20 20 20 6a 75 73 74 20 71 75 69 74 |. just quit| 00001070 20 41 70 70 42 75 69 6c 64 20 61 6e 64 20 72 75 | AppBuild and ru| 00001080 6e 20 74 68 65 20 6e 65 77 6c 79 20 63 72 65 61 |n the newly crea| 00001090 74 65 64 20 61 70 70 6c 69 63 61 74 69 6f 6e 2e |ted application.| 000010a0 20 59 6f 75 20 0a 20 20 20 20 20 20 73 68 6f 75 | You . shou| 000010b0 6c 64 20 73 65 65 20 61 20 62 6c 61 6e 6b 20 69 |ld see a blank i| 000010c0 63 6f 6e 20 61 70 70 65 61 72 20 6f 6e 20 74 68 |con appear on th| 000010d0 65 20 69 63 6f 6e 20 62 61 72 20 61 6e 64 20 63 |e icon bar and c| 000010e0 6c 69 63 6b 69 6e 67 20 0a 20 20 20 20 20 20 3c |licking . <| 000010f0 4d 45 4e 55 3e 20 6f 76 65 72 20 74 68 69 73 20 |MENU> over this | 00001100 77 69 6c 6c 20 62 72 69 6e 67 20 75 70 20 74 68 |will bring up th| 00001110 65 20 75 73 75 61 6c 20 69 63 6f 6e 20 62 61 72 |e usual icon bar| 00001120 20 6d 65 6e 75 20 69 6e 63 6c 75 64 69 6e 67 20 | menu including | 00001130 0a 20 20 20 20 20 20 74 68 65 20 69 74 65 6d 73 |. the items| 00001140 20 27 49 6e 66 6f 27 20 61 6e 64 20 27 51 75 69 | 'Info' and 'Qui| 00001150 74 27 2e 20 27 49 6e 66 6f 27 20 6c 65 61 64 73 |t'. 'Info' leads| 00001160 20 74 6f 20 74 68 65 20 6e 6f 72 6d 61 6c 20 27 | to the normal '| 00001170 41 62 6f 75 74 20 0a 20 20 20 20 20 20 54 68 69 |About . Thi| 00001180 73 20 50 72 6f 67 72 61 6d 27 20 77 69 6e 64 6f |s Program' windo| 00001190 77 20 28 74 68 65 20 69 63 6f 6e 73 20 6f 66 20 |w (the icons of | 000011a0 77 68 69 63 68 20 61 72 65 20 62 6c 61 6e 6b 20 |which are blank | 000011b0 61 74 20 74 68 65 20 6d 6f 6d 65 6e 74 29 20 0a |at the moment) .| 000011c0 20 20 20 20 20 20 61 6e 64 20 27 51 75 69 74 27 | and 'Quit'| 000011d0 20 77 68 69 63 68 20 73 74 6f 70 73 20 74 68 65 | which stops the| 000011e0 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 61 6e 64 | application and| 000011f0 20 72 65 6d 6f 76 65 73 20 69 74 20 66 72 6f 6d | removes it from| 00001200 20 74 68 65 20 0a 20 20 20 20 20 20 69 63 6f 6e | the . icon| 00001210 20 62 61 72 20 2d 20 64 6f 6e 27 74 20 71 75 69 | bar - don't qui| 00001220 74 20 69 74 20 6a 75 73 74 20 79 65 74 2e 20 0a |t it just yet. .| 00001230 0c 0a 20 20 20 20 20 20 43 6c 69 63 6b 69 6e 67 |.. Clicking| 00001240 20 3c 53 45 4c 45 43 54 3e 20 6f 6e 20 74 68 65 | <SELECT> on the| 00001250 20 69 63 6f 6e 62 61 72 20 69 63 6f 6e 20 77 69 | iconbar icon wi| 00001260 6c 6c 20 6f 70 65 6e 20 61 20 77 69 6e 64 6f 77 |ll open a window| 00001270 20 77 68 69 63 68 20 0a 20 20 20 20 20 20 68 61 | which . ha| 00001280 73 20 74 68 65 20 75 73 75 61 6c 20 63 6f 6e 74 |s the usual cont| 00001290 72 6f 6c 73 20 61 6e 64 20 6d 61 79 20 62 65 20 |rols and may be | 000012a0 73 63 72 6f 6c 6c 65 64 20 61 6e 64 20 6d 6f 76 |scrolled and mov| 000012b0 65 64 20 61 72 6f 75 6e 64 20 74 68 65 20 0a 20 |ed around the . | 000012c0 20 20 20 20 20 73 63 72 65 65 6e 2e 20 4b 65 65 | screen. Kee| 000012d0 70 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f |p the applicatio| 000012e0 6e 20 79 6f 75 20 68 61 76 65 20 6a 75 73 74 20 |n you have just | 000012f0 63 72 65 61 74 65 64 20 68 61 6e 64 79 20 61 73 |created handy as| 00001300 20 69 6e 20 0a 20 20 20 20 20 20 74 68 65 20 6e | in . the n| 00001310 65 78 74 20 73 65 63 74 69 6f 6e 20 77 65 27 6c |ext section we'l| 00001320 6c 20 6c 6f 6f 6b 20 61 74 20 74 68 65 20 70 72 |l look at the pr| 00001330 6f 67 72 61 6d 20 63 6f 64 65 20 61 6e 64 20 73 |ogram code and s| 00001340 65 65 20 68 6f 77 20 74 6f 20 0a 20 20 20 20 20 |ee how to . | 00001350 20 63 68 61 6e 67 65 20 69 74 20 74 6f 20 73 75 | change it to su| 00001360 69 74 20 79 6f 75 72 20 6f 77 6e 20 6e 65 65 64 |it your own need| 00001370 73 2e 20 0a 0a 20 20 20 20 20 20 41 73 20 79 6f |s. .. As yo| 00001380 75 20 63 61 6e 20 73 65 65 20 69 74 20 69 73 20 |u can see it is | 00001390 76 65 72 79 20 65 61 73 79 20 74 6f 20 63 72 65 |very easy to cre| 000013a0 61 74 65 20 61 20 6e 65 77 20 73 68 65 6c 6c 20 |ate a new shell | 000013b0 61 70 70 6c 69 63 61 74 69 6f 6e 20 0a 20 20 20 |application . | 000013c0 20 20 20 2d 20 65 76 65 6e 20 69 66 20 74 68 69 | - even if thi| 000013d0 73 20 70 61 72 74 69 63 75 6c 61 72 20 6f 6e 65 |s particular one| 000013e0 20 64 6f 65 73 6e 27 74 20 64 6f 20 61 6e 79 74 | doesn't do anyt| 000013f0 68 69 6e 67 20 75 73 65 66 75 6c 20 79 65 74 21 |hing useful yet!| 00001400 20 0a 0a 20 20 20 20 20 20 33 2e 20 41 20 54 75 | .. 3. A Tu| 00001410 74 6f 72 69 61 6c 20 0a 0a 20 20 20 20 20 20 54 |torial .. T| 00001420 68 65 20 66 69 72 73 74 20 66 65 77 20 6c 69 6e |he first few lin| 00001430 65 73 20 6f 66 20 61 6e 79 20 45 76 6e 74 53 68 |es of any EvntSh| 00001440 65 6c 6c 20 70 72 6f 67 72 61 6d 20 69 6e 69 74 |ell program init| 00001450 69 61 6c 69 73 65 20 74 68 65 20 0a 20 20 20 20 |ialise the . | 00001460 20 20 6d 65 6d 6f 72 79 20 6d 61 6e 61 67 65 6d | memory managem| 00001470 65 6e 74 2c 20 73 65 74 20 75 70 20 65 72 72 6f |ent, set up erro| 00001480 72 20 68 61 6e 64 6c 65 72 73 20 61 6e 64 20 6c |r handlers and l| 00001490 6f 61 64 20 61 6e 79 20 72 65 73 6f 75 72 63 65 |oad any resource| 000014a0 73 20 0a 20 20 20 20 20 20 28 74 65 6d 70 6c 61 |s . (templa| 000014b0 74 65 73 2c 20 6d 65 73 73 61 67 65 20 66 69 6c |tes, message fil| 000014c0 65 73 2c 20 73 70 72 69 74 65 73 20 65 74 63 29 |es, sprites etc)| 000014d0 20 72 65 71 75 69 72 65 64 20 62 79 20 74 68 65 | required by the| 000014e0 20 70 72 6f 67 72 61 6d 2e 20 0a 20 20 20 20 20 | program. . | 000014f0 20 54 68 69 73 20 63 6f 64 65 20 73 68 6f 75 6c | This code shoul| 00001500 64 20 6e 6f 74 20 6e 65 65 64 20 65 64 69 74 69 |d not need editi| 00001510 6e 67 2e 20 50 52 4f 43 61 70 70 5f 69 6e 69 74 |ng. PROCapp_init| 00001520 20 64 65 74 65 72 6d 69 6e 65 73 20 77 68 61 74 | determines what| 00001530 20 0a 20 20 20 20 20 20 68 61 70 70 65 6e 73 20 | . happens | 00001540 77 68 65 6e 20 74 68 65 20 61 70 70 6c 69 63 61 |when the applica| 00001550 74 69 6f 6e 20 73 74 61 72 74 73 2c 20 69 6e 20 |tion starts, in | 00001560 74 68 69 73 20 63 61 73 65 20 61 6e 20 69 63 6f |this case an ico| 00001570 6e 62 61 72 20 69 63 6f 6e 20 0a 20 20 20 20 20 |nbar icon . | 00001580 20 69 73 20 63 72 65 61 74 65 64 20 61 6e 64 20 | is created and | 00001590 76 61 72 69 6f 75 73 20 27 65 76 65 6e 74 73 27 |various 'events'| 000015a0 20 61 72 65 20 61 74 74 61 63 68 65 64 20 74 6f | are attached to| 000015b0 20 69 74 2e 20 54 68 65 20 63 6f 64 65 20 0a 20 | it. The code . | 000015c0 20 20 20 20 20 63 72 65 61 74 65 64 20 62 79 20 | created by | 000015d0 21 41 70 70 42 75 69 6c 64 20 69 73 20 61 73 20 |!AppBuild is as | 000015e0 73 68 6f 77 6e 20 62 65 6c 6f 77 2c 20 61 6c 74 |shown below, alt| 000015f0 68 6f 75 67 68 20 74 68 65 20 52 45 4d 73 20 68 |hough the REMs h| 00001600 61 76 65 20 0a 20 20 20 20 20 20 62 65 65 6e 20 |ave . been | 00001610 61 64 64 65 64 20 66 6f 72 20 74 68 69 73 20 6d |added for this m| 00001620 61 6e 75 61 6c 2e 20 54 72 79 20 64 65 66 69 6e |anual. Try defin| 00001630 69 6e 67 20 6f 74 68 65 72 20 77 69 6e 64 6f 77 |ing other window| 00001640 73 20 61 6e 64 20 6d 65 6e 75 73 20 0a 20 20 20 |s and menus . | 00001650 20 20 20 61 6e 64 20 73 65 65 20 77 68 61 74 20 | and see what | 00001660 68 61 70 70 65 6e 73 2e 20 0a 0a 20 20 20 20 20 |happens. .. | 00001670 20 0a 20 20 20 20 20 20 44 45 46 20 50 52 4f 43 | . DEF PROC| 00001680 61 70 70 5f 69 6e 69 74 0a 20 20 20 20 20 20 50 |app_init. P| 00001690 52 4f 43 53 65 74 55 70 5f 4d 65 6e 75 73 20 20 |ROCSetUp_Menus | 000016a0 20 3a 52 45 4d 20 73 65 74 20 75 70 20 69 63 6f | :REM set up ico| 000016b0 6e 62 61 72 20 6d 65 6e 75 0a 20 20 20 20 20 20 |nbar menu. | 000016c0 50 52 4f 43 53 65 74 55 70 5f 57 69 6e 64 6f 77 |PROCSetUp_Window| 000016d0 73 20 3a 52 45 4d 20 73 65 74 20 75 70 20 6d 61 |s :REM set up ma| 000016e0 69 6e 20 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 |in window. | 000016f0 50 52 4f 43 53 65 74 55 70 5f 49 63 6f 6e 42 61 |PROCSetUp_IconBa| 00001700 72 20 3a 52 45 4d 20 70 75 74 20 69 63 6f 6e 20 |r :REM put icon | 00001710 6f 6e 20 74 68 65 20 69 63 6f 6e 62 61 72 20 61 |on the iconbar a| 00001720 6e 64 20 61 74 74 61 63 68 20 65 76 65 6e 74 73 |nd attach events| 00001730 0a 20 20 20 20 20 20 52 45 4d 20 61 6e 64 20 6e |. REM and n| 00001740 6f 77 20 69 6e 69 74 69 61 6c 69 73 65 20 74 68 |ow initialise th| 00001750 65 20 53 74 72 6f 6e 67 48 6c 70 20 68 65 6c 70 |e StrongHlp help| 00001760 20 73 79 73 74 65 6d 20 28 6f 70 74 69 6f 6e 61 | system (optiona| 00001770 6c 21 29 0a 20 20 20 20 20 20 50 52 4f 43 73 68 |l!). PROCsh| 00001780 65 6c 6c 5f 49 6e 69 74 48 65 6c 70 53 79 73 74 |ell_InitHelpSyst| 00001790 65 6d 28 46 4e 73 68 65 6c 6c 5f 47 65 74 41 70 |em(FNshell_GetAp| 000017a0 70 44 69 72 2b 22 2e 46 4e 73 68 65 6c 6c 5f 47 |pDir+".FNshell_G| 000017b0 65 74 41 70 70 4e 61 6d 65 22 0a 20 20 20 20 20 |etAppName". | 000017c0 20 2c 54 52 55 45 29 0a 20 20 20 20 20 20 45 4e | ,TRUE). EN| 000017d0 44 50 52 4f 43 20 0a 20 20 20 20 20 20 3a 0a 20 |DPROC . :. | 000017e0 20 20 20 20 20 52 45 4d 20 3d 3d 3d 3d 3d 20 4d | REM ===== M| 000017f0 65 6e 75 5f 53 65 74 75 70 20 72 6f 75 74 69 6e |enu_Setup routin| 00001800 65 73 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |es =============| 00001810 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00001820 3d 3d 3d 3d 3d 3d 0a 20 20 20 20 20 20 0a 20 20 |======. . | 00001830 20 20 20 20 44 45 46 20 50 52 4f 43 53 65 74 55 | DEF PROCSetU| 00001840 70 5f 4d 65 6e 75 73 0a 20 20 20 20 20 20 4c 4f |p_Menus. LO| 00001850 43 41 4c 20 76 6f 69 64 25 0a 20 20 20 20 20 20 |CAL void%. | 00001860 52 45 4d 20 43 6f 6e 73 74 72 75 63 74 20 74 68 |REM Construct th| 00001870 65 20 69 63 6f 6e 62 61 72 20 6d 65 6e 75 2e 2e |e iconbar menu..| 00001880 0a 20 20 20 20 20 20 4d 65 6e 75 48 61 6e 64 6c |. MenuHandl| 00001890 65 5f 49 63 6f 6e 42 61 72 25 3d 46 4e 73 68 65 |e_IconBar%=FNshe| 000018a0 6c 6c 5f 4d 65 6e 75 4e 65 77 28 22 4e 65 77 41 |ll_MenuNew("NewA| 000018b0 70 70 22 29 0a 20 20 20 20 20 20 4d 65 6e 75 49 |pp"). MenuI| 000018c0 74 65 6d 5f 49 6e 66 6f 25 20 20 20 20 20 3d 46 |tem_Info% =F| 000018d0 4e 73 68 65 6c 6c 5f 4d 65 6e 75 41 64 64 28 30 |Nshell_MenuAdd(0| 000018e0 2c 22 49 6e 66 6f 22 2c 22 22 29 0a 20 20 20 20 |,"Info",""). | 000018f0 20 20 76 6f 69 64 25 20 20 20 20 20 20 20 20 20 | void% | 00001900 20 20 20 20 20 3d 46 4e 73 68 65 6c 6c 5f 4d 65 | =FNshell_Me| 00001910 6e 75 41 64 64 28 30 2c 22 51 75 69 74 22 2c 22 |nuAdd(0,"Quit","| 00001920 5f 4d 65 6e 75 53 65 6c 65 63 74 5f 51 75 69 74 |_MenuSelect_Quit| 00001930 22 29 0a 20 20 20 20 20 20 52 45 4d 20 41 74 74 |"). REM Att| 00001940 61 63 68 20 74 68 65 20 27 41 62 6f 75 74 20 74 |ach the 'About t| 00001950 68 69 73 20 70 72 6f 67 72 61 6d 27 20 64 69 61 |his program' dia| 00001960 6c 6f 67 20 62 6f 78 20 74 6f 20 74 68 65 20 27 |log box to the '| 00001970 49 6e 66 6f 27 0a 20 20 20 20 20 20 52 45 4d 20 |Info'. REM | 00001980 69 74 65 6d 20 6f 66 20 74 68 65 20 6d 65 6e 75 |item of the menu| 00001990 2e 20 43 61 6c 6c 20 46 4e 5f 50 72 65 4f 70 65 |. Call FN_PreOpe| 000019a0 6e 49 6e 66 6f 20 62 65 66 6f 72 65 20 6f 70 65 |nInfo before ope| 000019b0 6e 69 6e 67 20 69 74 20 73 6f 0a 20 20 20 20 20 |ning it so. | 000019c0 20 52 45 4d 20 74 68 61 74 20 74 68 65 20 69 63 | REM that the ic| 000019d0 6f 6e 73 20 63 61 6e 20 62 65 20 66 69 6c 6c 65 |ons can be fille| 000019e0 64 20 69 6e 2c 20 64 6f 6e 27 74 20 63 61 6c 6c |d in, don't call| 000019f0 20 61 20 46 4e 20 61 66 74 65 72 0a 20 20 20 20 | a FN after. | 00001a00 20 20 52 45 4d 20 6f 70 65 6e 69 6e 67 20 69 74 | REM opening it| 00001a10 2e 0a 20 20 20 20 20 20 50 52 4f 43 73 68 65 6c |.. PROCshel| 00001a20 6c 5f 41 74 74 61 63 68 4d 65 6e 75 44 42 6f 78 |l_AttachMenuDBox| 00001a30 28 4d 65 6e 75 49 74 65 6d 5f 49 6e 66 6f 25 2c |(MenuItem_Info%,| 00001a40 22 70 72 6f 67 49 6e 66 6f 22 2c 0a 20 20 20 20 |"progInfo",. | 00001a50 20 20 22 5f 50 72 65 4f 70 65 6e 49 6e 66 6f 22 | "_PreOpenInfo"| 00001a60 2c 22 22 29 0a 20 20 20 20 20 20 45 4e 44 50 52 |,""). ENDPR| 00001a70 4f 43 0a 20 20 20 20 20 20 3a 0a 20 20 20 20 20 |OC. :. | 00001a80 20 0a 20 20 20 20 20 20 52 45 4d 20 3d 3d 3d 3d | . REM ====| 00001a90 3d 20 57 69 6e 64 6f 77 5f 53 65 74 55 70 20 72 |= Window_SetUp r| 00001aa0 6f 75 74 69 6e 65 73 20 3d 3d 3d 3d 3d 3d 3d 3d |outines ========| 00001ab0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00001ac0 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 20 20 20 20 20 20 |=========. | 00001ad0 0a 20 20 20 20 20 20 44 45 46 20 50 52 4f 43 53 |. DEF PROCS| 00001ae0 65 74 55 70 5f 57 69 6e 64 6f 77 73 0a 20 20 20 |etUp_Windows. | 00001af0 20 20 20 52 45 4d 20 63 72 65 61 74 65 20 61 20 | REM create a | 00001b00 77 69 6e 64 6f 77 20 66 72 6f 6d 20 74 68 65 20 |window from the | 00001b10 74 65 6d 70 6c 61 74 65 20 63 61 6c 6c 65 64 20 |template called | 00001b20 27 6d 61 69 6e 77 27 2c 20 70 6c 61 63 65 20 74 |'mainw', place t| 00001b30 68 65 0a 20 20 20 20 20 20 52 45 4d 20 77 69 6e |he. REM win| 00001b40 64 6f 77 20 68 61 6e 64 6c 65 20 69 6e 20 6d 61 |dow handle in ma| 00001b50 69 6e 77 25 0a 20 20 20 20 20 20 50 52 4f 43 73 |inw%. PROCs| 00001b60 68 65 6c 6c 5f 43 72 65 61 74 65 57 69 6e 64 6f |hell_CreateWindo| 00001b70 77 53 74 61 74 69 63 28 22 6d 61 69 6e 77 22 2c |wStatic("mainw",| 00001b80 6d 61 69 6e 77 25 29 0a 20 20 20 20 20 20 45 4e |mainw%). EN| 00001b90 44 50 52 4f 43 0a 20 20 20 20 20 20 3a 0a 20 20 |DPROC. :. | 00001ba0 20 20 20 20 0a 20 20 20 20 20 20 52 45 4d 20 3d | . REM =| 00001bb0 3d 3d 3d 3d 20 49 63 6f 6e 42 61 72 5f 53 65 74 |==== IconBar_Set| 00001bc0 55 70 20 72 6f 75 74 69 6e 65 73 20 3d 3d 3d 3d |Up routines ====| 00001bd0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00001be0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 20 20 20 |============. | 00001bf0 20 20 20 0a 20 20 20 20 20 20 44 45 46 20 50 52 | . DEF PR| 00001c00 4f 43 53 65 74 55 70 5f 49 63 6f 6e 42 61 72 0a |OCSetUp_IconBar.| 00001c10 20 20 20 20 20 20 52 45 4d 20 73 69 63 6f 6e 20 | REM sicon | 00001c20 69 73 20 74 68 65 20 68 61 6e 64 6c 65 20 6f 66 |is the handle of| 00001c30 20 74 68 65 20 69 63 6f 6e 2e 20 2d 31 20 6d 65 | the icon. -1 me| 00001c40 61 6e 73 20 72 69 67 68 74 20 73 69 64 65 20 6f |ans right side o| 00001c50 66 0a 0c 0a 20 20 20 20 20 20 52 45 4d 20 69 63 |f... REM ic| 00001c60 6f 6e 62 61 72 2c 20 2d 32 20 77 6f 75 6c 64 20 |onbar, -2 would | 00001c70 62 65 20 6c 65 66 74 20 73 69 64 65 2e 20 54 68 |be left side. Th| 00001c80 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 73 70 |e name of the sp| 00001c90 72 69 74 65 20 66 6f 72 0a 20 20 20 20 20 20 52 |rite for. R| 00001ca0 45 4d 20 74 68 65 20 69 63 6f 6e 20 69 73 20 74 |EM the icon is t| 00001cb0 68 65 20 73 61 6d 65 20 61 73 20 74 68 65 20 61 |he same as the a| 00001cc0 70 70 6c 69 63 61 74 69 6f 6e 20 64 69 72 65 63 |pplication direc| 00001cd0 74 6f 72 79 2e 20 41 20 6d 65 6e 75 0a 20 20 20 |tory. A menu. | 00001ce0 20 20 20 52 45 4d 20 77 69 74 68 20 74 68 65 20 | REM with the | 00001cf0 68 61 6e 64 6c 65 20 27 4d 65 6e 75 48 61 6e 64 |handle 'MenuHand| 00001d00 6c 65 5f 49 63 6f 6e 42 61 72 25 27 20 69 73 20 |le_IconBar%' is | 00001d10 61 74 74 61 63 68 65 64 2e 0a 20 20 20 20 20 20 |attached.. | 00001d20 73 69 63 6f 6e 3d 46 4e 73 68 65 6c 6c 5f 49 63 |sicon=FNshell_Ic| 00001d30 6f 6e 62 61 72 28 2d 31 2c 22 21 22 2b 46 4e 73 |onbar(-1,"!"+FNs| 00001d40 68 65 6c 6c 5f 47 65 74 41 70 70 4e 61 6d 65 2c |hell_GetAppName,| 00001d50 22 22 2c 31 32 30 2c 0a 20 20 20 20 20 20 4d 65 |"",120,. Me| 00001d60 6e 75 48 61 6e 64 6c 65 5f 49 63 6f 6e 42 61 72 |nuHandle_IconBar| 00001d70 25 2c 30 2c 30 2c 30 29 0a 20 20 20 20 20 20 52 |%,0,0,0). R| 00001d80 45 4d 20 61 74 74 61 63 68 20 61 20 68 65 6c 70 |EM attach a help| 00001d90 20 74 61 67 20 66 6f 72 20 74 68 65 20 69 63 6f | tag for the ico| 00001da0 6e 2c 20 74 68 69 73 20 77 69 6c 6c 20 73 65 6e |n, this will sen| 00001db0 64 20 74 68 65 20 74 65 78 74 0a 20 20 20 20 20 |d the text. | 00001dc0 20 52 45 4d 20 66 6f 6c 6c 6f 77 69 6e 67 20 27 | REM following '| 00001dd0 69 63 6f 6e 62 61 72 3a 27 20 74 6f 20 74 68 65 |iconbar:' to the| 00001de0 20 21 48 65 6c 70 20 61 70 70 6c 69 63 61 74 69 | !Help applicati| 00001df0 6f 6e 2e 20 53 65 65 20 74 68 65 0a 20 20 20 20 |on. See the. | 00001e00 20 20 52 45 4d 20 27 4d 65 73 73 61 67 65 73 27 | REM 'Messages'| 00001e10 20 66 69 6c 65 20 66 6f 72 20 74 68 69 73 2e 0a | file for this..| 00001e20 20 20 20 20 20 20 50 52 4f 43 73 68 65 6c 6c 5f | PROCshell_| 00001e30 41 74 74 61 63 68 48 65 6c 70 54 61 67 28 2d 31 |AttachHelpTag(-1| 00001e40 2c 73 69 63 6f 6e 2c 22 69 63 6f 6e 62 61 72 22 |,sicon,"iconbar"| 00001e50 29 0a 20 20 20 20 20 20 52 45 4d 20 6c 61 73 74 |). REM last| 00001e60 6c 79 20 61 74 74 61 63 68 20 74 68 65 20 63 6c |ly attach the cl| 00001e70 69 63 6b 73 65 6c 65 63 74 20 65 76 65 6e 74 2e |ickselect event.| 00001e80 20 57 68 65 6e 20 3c 53 45 4c 45 43 54 3e 20 69 | When <SELECT> i| 00001e90 73 0a 20 20 20 20 20 20 52 45 4d 20 63 6c 69 63 |s. REM clic| 00001ea0 6b 65 64 20 6f 76 65 72 20 74 68 65 20 69 63 6f |ked over the ico| 00001eb0 6e 20 63 61 6c 6c 20 46 4e 5f 63 6c 69 63 6b 69 |n call FN_clicki| 00001ec0 63 6f 6e 62 61 72 0a 20 20 20 20 20 20 50 52 4f |conbar. PRO| 00001ed0 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 43 6c 69 |Cshell_AttachCli| 00001ee0 63 6b 53 65 6c 65 63 74 28 2d 31 2c 73 69 63 6f |ckSelect(-1,sico| 00001ef0 6e 2c 22 5f 43 6c 69 63 6b 53 65 6c 65 63 74 5f |n,"_ClickSelect_| 00001f00 49 63 6f 6e 42 61 72 22 29 0a 20 20 20 20 20 20 |IconBar"). | 00001f10 45 4e 44 50 52 4f 43 0a 20 20 20 20 20 20 3a 0a |ENDPROC. :.| 00001f20 20 20 20 20 20 20 0a 20 20 20 20 20 20 52 45 4d | . REM| 00001f30 20 3d 3d 3d 3d 3d 20 44 69 61 6c 6f 67 5f 50 72 | ===== Dialog_Pr| 00001f40 65 4f 70 65 6e 20 72 6f 75 74 69 6e 65 73 20 3d |eOpen routines =| 00001f50 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00001f60 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 20 |==============. | 00001f70 20 20 20 20 20 0a 20 20 20 20 20 20 44 45 46 20 | . DEF | 00001f80 46 4e 5f 50 72 65 4f 70 65 6e 49 6e 66 6f 28 68 |FN_PreOpenInfo(h| 00001f90 25 29 0a 20 20 20 20 20 20 52 45 4d 20 66 69 6c |%). REM fil| 00001fa0 6c 20 69 6e 20 69 63 6f 6e 73 2e 20 54 72 79 20 |l in icons. Try | 00001fb0 65 64 69 74 69 6e 67 20 74 68 65 20 27 4d 65 73 |editing the 'Mes| 00001fc0 73 61 67 65 73 27 20 66 69 6c 65 20 74 6f 20 6d |sages' file to m| 00001fd0 61 6b 65 20 74 65 78 74 0a 20 20 20 20 20 20 52 |ake text. R| 00001fe0 45 4d 20 61 70 70 65 61 72 20 69 6e 20 74 68 65 |EM appear in the| 00001ff0 20 69 63 6f 6e 73 20 28 6a 75 73 74 20 61 64 64 | icons (just add| 00002000 20 74 68 65 20 74 65 78 74 20 61 66 74 65 72 20 | the text after | 00002010 70 72 6f 67 49 6e 66 6f 30 3a 20 65 74 63 29 2e |progInfo0: etc).| 00002020 0a 20 20 20 20 20 20 52 45 4d 20 68 25 20 69 73 |. REM h% is| 00002030 20 74 68 65 20 68 61 6e 64 6c 65 20 6f 66 20 74 | the handle of t| 00002040 68 65 20 77 69 6e 64 6f 77 2e 0a 20 20 20 20 20 |he window.. | 00002050 20 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 50 | PROCshell_IconP| 00002060 75 74 44 61 74 61 28 68 25 2c 30 2c 46 4e 73 68 |utData(h%,0,FNsh| 00002070 65 6c 6c 5f 4d 65 73 73 61 67 65 4e 6f 41 72 67 |ell_MessageNoArg| 00002080 73 28 22 70 72 6f 67 49 6e 66 6f 30 22 29 2c 30 |s("progInfo0"),0| 00002090 29 0a 20 20 20 20 20 20 50 52 4f 43 73 68 65 6c |). PROCshel| 000020a0 6c 5f 49 63 6f 6e 50 75 74 44 61 74 61 28 68 25 |l_IconPutData(h%| 000020b0 2c 31 2c 46 4e 73 68 65 6c 6c 5f 4d 65 73 73 61 |,1,FNshell_Messa| 000020c0 67 65 4e 6f 41 72 67 73 28 22 70 72 6f 67 49 6e |geNoArgs("progIn| 000020d0 66 6f 31 22 29 2c 30 29 0a 20 20 20 20 20 20 50 |fo1"),0). P| 000020e0 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 50 75 74 |ROCshell_IconPut| 000020f0 44 61 74 61 28 68 25 2c 32 2c 46 4e 73 68 65 6c |Data(h%,2,FNshel| 00002100 6c 5f 4d 65 73 73 61 67 65 4e 6f 41 72 67 73 28 |l_MessageNoArgs(| 00002110 22 70 72 6f 67 49 6e 66 6f 32 22 29 2c 30 29 0a |"progInfo2"),0).| 00002120 20 20 20 20 20 20 50 52 4f 43 73 68 65 6c 6c 5f | PROCshell_| 00002130 49 63 6f 6e 50 75 74 44 61 74 61 28 68 25 2c 33 |IconPutData(h%,3| 00002140 2c 46 4e 73 68 65 6c 6c 5f 4d 65 73 73 61 67 65 |,FNshell_Message| 00002150 4e 6f 41 72 67 73 28 22 70 72 6f 67 49 6e 66 6f |NoArgs("progInfo| 00002160 33 22 29 2c 30 29 0a 20 20 20 20 20 20 3d 30 0a |3"),0). =0.| 00002170 20 20 20 20 20 20 3a 0a 20 20 20 20 20 20 0a 20 | :. . | 00002180 20 20 20 20 20 52 45 4d 20 3d 3d 3d 3d 3d 20 44 | REM ===== D| 00002190 69 61 6c 6f 67 5f 50 6f 73 74 4f 70 65 6e 20 72 |ialog_PostOpen r| 000021a0 6f 75 74 69 6e 65 73 20 3d 3d 3d 3d 3d 3d 3d 3d |outines ========| 000021b0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 000021c0 3d 3d 3d 3d 3d 3d 0a 20 20 20 20 20 20 0a 20 20 |======. . | 000021d0 20 20 20 20 52 45 4d 20 3d 3d 3d 3d 3d 20 43 6c | REM ===== Cl| 000021e0 69 63 6b 5f 53 65 6c 65 63 74 20 72 6f 75 74 69 |ick_Select routi| 000021f0 6e 65 73 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |nes ============| 00002200 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00002210 3d 3d 3d 3d 3d 0a 20 20 20 20 20 20 0a 20 20 20 |=====. . | 00002220 20 20 20 44 45 46 20 46 4e 5f 43 6c 69 63 6b 53 | DEF FN_ClickS| 00002230 65 6c 65 63 74 5f 49 63 6f 6e 42 61 72 28 77 68 |elect_IconBar(wh| 00002240 25 2c 69 63 6f 6e 25 29 0a 20 20 20 20 20 20 52 |%,icon%). R| 00002250 45 4d 20 6f 70 65 6e 20 74 68 65 20 77 69 6e 64 |EM open the wind| 00002260 6f 77 20 77 69 74 68 20 74 68 65 20 68 61 6e 64 |ow with the hand| 00002270 6c 65 20 6d 61 69 6e 77 25 20 77 68 65 6e 20 61 |le mainw% when a| 00002280 20 63 6c 69 63 6b 20 6f 66 0a 20 20 20 20 20 20 | click of. | 00002290 52 45 4d 20 3c 53 45 4c 45 43 54 3e 20 69 73 20 |REM <SELECT> is | 000022a0 72 65 63 65 69 76 65 64 20 6f 6e 20 74 68 65 20 |received on the | 000022b0 69 63 6f 6e 62 61 72 20 69 63 6f 6e 2e 20 77 68 |iconbar icon. wh| 000022c0 25 20 69 73 20 74 68 65 20 68 61 6e 64 6c 65 0a |% is the handle.| 000022d0 20 20 20 20 20 20 52 45 4d 20 6f 66 20 74 68 65 | REM of the| 000022e0 20 77 69 6e 64 6f 77 20 6f 76 65 72 20 77 68 69 | window over whi| 000022f0 63 68 20 74 68 65 20 63 6c 69 63 6b 20 6f 63 63 |ch the click occ| 00002300 75 72 65 64 20 28 74 68 65 20 69 63 6f 6e 62 61 |ured (the iconba| 00002310 72 29 20 61 6e 64 0a 20 20 20 20 20 20 52 45 4d |r) and. REM| 00002320 20 69 63 6f 6e 25 20 69 73 20 74 68 65 20 68 61 | icon% is the ha| 00002330 6e 64 6c 65 20 6f 66 20 74 68 65 20 69 63 6f 6e |ndle of the icon| 00002340 62 61 72 20 69 63 6f 6e 0a 20 20 20 20 20 20 50 |bar icon. P| 00002350 52 4f 43 73 68 65 6c 6c 5f 4f 70 65 6e 57 69 6e |ROCshell_OpenWin| 00002360 64 6f 77 53 74 61 74 69 63 28 6d 61 69 6e 77 25 |dowStatic(mainw%| 00002370 29 0a 20 20 20 20 20 20 3d 30 0a 20 20 20 20 20 |). =0. | 00002380 20 3a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 | :. . | 00002390 52 45 4d 20 3d 3d 3d 3d 3d 20 4d 65 6e 75 5f 53 |REM ===== Menu_S| 000023a0 65 6c 65 63 74 20 72 6f 75 74 69 6e 65 73 20 3d |elect routines =| 000023b0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| * 000023d0 3d 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 44 |=. . D| 000023e0 45 46 20 46 4e 5f 4d 65 6e 75 53 65 6c 65 63 74 |EF FN_MenuSelect| 000023f0 5f 51 75 69 74 28 62 6c 6b 25 29 0a 20 20 20 20 |_Quit(blk%). | 00002400 20 20 5f 63 6c 6f 73 65 64 6f 77 6e 25 3d 54 52 | _closedown%=TR| 00002410 55 45 0a 20 20 20 20 20 20 3d 30 0a 20 20 20 20 |UE. =0. | 00002420 20 20 3a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 | :. . | 00002430 20 52 45 4d 20 3d 3d 3d 3d 3d 20 4d 65 6e 75 5f | REM ===== Menu_| 00002440 57 61 72 6e 69 6e 67 20 72 6f 75 74 69 6e 65 73 |Warning routines| 00002450 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d | ===============| 00002460 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00002470 3d 3d 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 |==. . | 00002480 52 45 4d 20 3d 3d 3d 3d 3d 20 44 61 74 61 5f 4c |REM ===== Data_L| 00002490 6f 61 64 20 72 6f 75 74 69 6e 65 73 20 3d 3d 3d |oad routines ===| 000024a0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| * 000024c0 3d 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 52 |=. . R| 000024d0 45 4d 20 3d 3d 3d 3d 3d 20 44 61 74 61 5f 53 61 |EM ===== Data_Sa| 000024e0 76 65 20 72 6f 75 74 69 6e 65 73 20 3d 3d 3d 3d |ve routines ====| 000024f0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| * 00002510 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 |. . . | 00002520 20 20 20 20 20 4c 65 74 20 75 73 20 6e 6f 77 20 | Let us now | 00002530 6c 6f 6f 6b 20 61 74 20 68 6f 77 20 65 76 65 6e |look at how even| 00002540 74 73 20 73 68 6f 75 6c 64 20 62 65 20 61 74 74 |ts should be att| 00002550 61 63 68 65 64 20 74 6f 20 61 20 77 69 6e 64 6f |ached to a windo| 00002560 77 2e 20 49 74 20 0a 20 20 20 20 20 20 69 73 20 |w. It . is | 00002570 69 6d 70 6f 72 74 61 6e 74 20 74 6f 20 61 6c 77 |important to alw| 00002580 61 79 73 20 64 6f 20 74 68 69 73 20 6a 75 73 74 |ays do this just| 00002590 20 62 65 66 6f 72 65 20 74 68 65 20 77 69 6e 64 | before the wind| 000025a0 6f 77 20 6f 70 65 6e 73 20 28 69 2e 65 2e 20 0a |ow opens (i.e. .| 000025b0 20 20 20 20 20 20 69 6e 20 74 68 65 20 50 72 65 | in the Pre| 000025c0 4f 70 65 6e 20 72 6f 75 74 69 6e 65 29 20 62 65 |Open routine) be| 000025d0 63 61 75 73 65 20 61 20 73 74 61 74 69 63 20 77 |cause a static w| 000025e0 69 6e 64 6f 77 20 61 6e 64 20 61 20 64 79 6e 61 |indow and a dyna| 000025f0 6d 69 63 20 0a 20 20 20 20 20 20 77 69 6e 64 6f |mic . windo| 00002600 77 20 63 61 6e 20 62 65 20 63 72 65 61 74 65 64 |w can be created| 00002610 20 66 72 6f 6d 20 74 68 65 20 73 61 6d 65 20 74 | from the same t| 00002620 65 6d 70 6c 61 74 65 20 62 75 74 20 74 68 65 79 |emplate but they| 00002630 20 77 69 6c 6c 20 6f 66 20 0a 20 20 20 20 20 20 | will of . | 00002640 63 6f 75 72 73 65 20 68 61 76 65 20 64 69 66 66 |course have diff| 00002650 65 72 65 6e 74 20 68 61 6e 64 6c 65 73 2e 20 54 |erent handles. T| 00002660 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 78 61 |he following exa| 00002670 6d 70 6c 65 20 73 68 6f 77 73 20 68 6f 77 20 0a |mple shows how .| 00002680 20 20 20 20 20 20 74 68 69 73 20 73 68 6f 75 6c | this shoul| 00002690 64 20 62 65 20 68 61 6e 64 6c 65 64 20 28 77 65 |d be handled (we| 000026a0 20 61 72 65 20 61 73 73 75 6d 69 6e 67 20 74 68 | are assuming th| 000026b0 65 20 74 65 6d 70 6c 61 74 65 20 69 6e 20 71 75 |e template in qu| 000026c0 65 73 74 69 6f 6e 20 0a 0c 0a 20 20 20 20 20 20 |estion ... | 000026d0 69 73 20 63 61 6c 6c 65 64 20 27 78 66 65 72 27 |is called 'xfer'| 000026e0 20 61 6e 64 20 74 68 65 20 70 72 6f 67 72 61 6d | and the program| 000026f0 20 69 73 20 63 61 6c 6c 65 64 20 27 4d 79 41 70 | is called 'MyAp| 00002700 70 27 29 2e 20 0a 0a 20 20 20 20 20 20 0a 20 20 |p'). .. . | 00002710 20 20 20 20 44 45 46 20 50 52 4f 43 61 70 70 5f | DEF PROCapp_| 00002720 69 6e 69 74 0a 20 20 20 20 20 20 2e 2e 2e 0a 20 |init. .... | 00002730 20 20 20 20 20 50 52 4f 43 53 65 74 55 70 5f 57 | PROCSetUp_W| 00002740 69 6e 64 6f 77 73 0a 20 20 20 20 20 20 50 52 4f |indows. PRO| 00002750 43 53 65 74 55 70 5f 4d 65 6e 75 73 0a 20 20 20 |CSetUp_Menus. | 00002760 20 20 20 0a 20 20 20 20 20 20 50 52 4f 43 73 68 | . PROCsh| 00002770 65 6c 6c 5f 41 74 74 61 63 68 48 6f 74 4b 65 79 |ell_AttachHotKey| 00002780 28 22 46 33 22 2c 46 41 4c 53 45 2c 46 41 4c 53 |("F3",FALSE,FALS| 00002790 45 2c 46 41 4c 53 45 2c 22 22 2c 78 66 65 72 25 |E,FALSE,"",xfer%| 000027a0 2c 22 5f 50 72 65 4f 70 65 6e 5f 58 66 65 72 22 |,"_PreOpen_Xfer"| 000027b0 2c 22 22 29 0a 20 20 20 20 20 20 2e 2e 2e 0a 20 |,""). .... | 000027c0 20 20 20 20 20 45 4e 44 50 52 4f 43 0a 20 20 20 | ENDPROC. | 000027d0 20 20 20 3a 0a 20 20 20 20 20 20 44 45 46 20 50 | :. DEF P| 000027e0 52 4f 43 53 65 74 55 70 5f 57 69 6e 64 6f 77 73 |ROCSetUp_Windows| 000027f0 0a 20 20 20 20 20 20 2e 2e 2e 0a 20 20 20 20 20 |. .... | 00002800 20 50 52 4f 43 73 68 65 6c 6c 5f 43 72 65 61 74 | PROCshell_Creat| 00002810 65 57 69 6e 64 6f 77 53 74 61 74 69 63 28 22 78 |eWindowStatic("x| 00002820 66 65 72 22 2c 78 66 65 72 25 29 0a 20 20 20 20 |fer",xfer%). | 00002830 20 20 2e 2e 2e 0a 20 20 20 20 20 20 45 4e 44 50 | .... ENDP| 00002840 52 4f 43 0a 20 20 20 20 20 20 3a 0a 20 20 20 20 |ROC. :. | 00002850 20 20 44 45 46 20 50 52 4f 43 53 65 74 55 70 5f | DEF PROCSetUp_| 00002860 4d 65 6e 75 73 0a 20 20 20 20 20 20 2e 2e 2e 0a |Menus. ....| 00002870 20 20 20 20 20 20 4d 65 6e 75 48 61 6e 64 6c 65 | MenuHandle| 00002880 5f 49 63 6f 6e 42 61 72 25 3d 46 4e 73 68 65 6c |_IconBar%=FNshel| 00002890 6c 5f 4d 65 6e 75 4e 65 77 28 22 4d 79 41 70 70 |l_MenuNew("MyApp| 000028a0 22 29 0a 20 20 20 20 20 20 4d 65 6e 75 49 74 65 |"). MenuIte| 000028b0 6d 5f 53 61 76 65 25 20 20 20 20 20 3d 46 4e 73 |m_Save% =FNs| 000028c0 68 65 6c 6c 5f 4d 65 6e 75 41 64 64 28 30 2c 22 |hell_MenuAdd(0,"| 000028d0 53 61 76 65 22 2c 22 22 29 0a 20 20 20 20 20 20 |Save",""). | 000028e0 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 |PROCshell_Attach| 000028f0 4d 65 6e 75 44 42 6f 78 28 4d 65 6e 75 49 74 65 |MenuDBox(MenuIte| 00002900 6d 5f 53 61 76 65 25 2c 22 78 66 65 72 22 2c 22 |m_Save%,"xfer","| 00002910 5f 50 72 65 4f 70 65 6e 5f 58 66 65 72 22 2c 0a |_PreOpen_Xfer",.| 00002920 20 20 20 20 20 20 22 5f 50 6f 73 74 4f 70 65 6e | "_PostOpen| 00002930 5f 58 66 65 72 22 29 0a 20 20 20 20 20 20 2e 2e |_Xfer"). ..| 00002940 2e 0a 20 20 20 20 20 20 45 4e 44 50 52 4f 43 0a |.. ENDPROC.| 00002950 20 20 20 20 20 20 3a 0a 20 20 20 20 20 20 44 45 | :. DE| 00002960 46 20 46 4e 5f 50 72 65 4f 70 65 6e 5f 58 66 65 |F FN_PreOpen_Xfe| 00002970 72 28 68 25 29 0a 20 20 20 20 20 20 2e 2e 2e 0a |r(h%). ....| 00002980 20 20 20 20 20 20 52 45 4d 20 4f 4b 20 69 63 6f | REM OK ico| 00002990 6e 20 69 73 20 30 2c 20 46 69 6c 65 6e 61 6d 65 |n is 0, Filename| 000029a0 20 69 63 6f 6e 20 69 73 20 32 2c 20 46 69 6c 65 | icon is 2, File| 000029b0 20 69 63 6f 6e 20 69 73 20 33 2c 20 46 69 6c 65 | icon is 3, File| 000029c0 74 79 70 65 20 69 73 20 0a 20 20 20 20 20 20 26 |type is . &| 000029d0 33 34 34 2e 2e 0a 20 20 20 20 20 20 50 52 4f 43 |344... PROC| 000029e0 73 68 65 6c 6c 5f 49 63 6f 6e 50 75 74 44 61 74 |shell_IconPutDat| 000029f0 61 28 68 25 2c 32 2c 66 69 6c 65 6e 61 6d 65 24 |a(h%,2,filename$| 00002a00 29 2c 46 41 4c 53 45 29 0a 20 20 20 20 20 20 50 |),FALSE). P| 00002a10 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 44 |ROCshell_AttachD| 00002a20 61 74 61 53 61 76 65 28 68 25 2c 33 2c 31 30 30 |ataSave(h%,3,100| 00002a30 2c 26 33 34 34 2c 32 2c 22 5f 44 61 74 61 53 61 |,&344,2,"_DataSa| 00002a40 76 65 5f 58 66 65 72 22 29 0a 20 20 20 20 20 20 |ve_Xfer"). | 00002a50 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 |PROCshell_Attach| 00002a60 43 6c 69 63 6b 53 65 6c 65 63 74 28 68 25 2c 30 |ClickSelect(h%,0| 00002a70 2c 22 5f 43 6c 69 63 6b 53 65 6c 65 63 74 5f 58 |,"_ClickSelect_X| 00002a80 66 65 72 4f 4b 22 29 0a 20 20 20 20 20 20 2e 2e |ferOK"). ..| 00002a90 2e 0a 20 20 20 20 20 20 3d 30 0a 20 20 20 20 20 |.. =0. | 00002aa0 20 3a 0a 20 20 20 20 20 20 44 45 46 20 46 4e 5f | :. DEF FN_| 00002ab0 50 6f 73 74 4f 70 65 6e 5f 58 66 65 72 28 68 25 |PostOpen_Xfer(h%| 00002ac0 29 0a 20 20 20 20 20 20 2e 2e 2e 0a 20 20 20 20 |). .... | 00002ad0 20 20 50 52 4f 43 73 68 65 6c 6c 5f 57 69 6e 64 | PROCshell_Wind| 00002ae0 6f 77 43 65 6e 74 72 65 4f 6e 50 6f 69 6e 74 65 |owCentreOnPointe| 00002af0 72 28 68 25 29 0a 20 20 20 20 20 20 2e 2e 2e 0a |r(h%). ....| 00002b00 20 20 20 20 20 20 3d 30 0a 20 20 20 20 20 20 3a | =0. :| 00002b10 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 |. . . | 00002b20 20 20 20 20 20 54 68 65 20 78 66 65 72 20 77 69 | The xfer wi| 00002b30 6e 64 6f 77 20 77 69 6c 6c 20 6f 70 65 6e 20 77 |ndow will open w| 00002b40 68 65 6e 20 46 33 20 69 73 20 70 72 65 73 73 65 |hen F3 is presse| 00002b50 64 20 28 61 73 73 75 6d 69 6e 67 20 6f 6e 65 20 |d (assuming one | 00002b60 6f 66 20 74 68 65 20 0a 20 20 20 20 20 20 6f 70 |of the . op| 00002b70 65 6e 20 77 69 6e 64 6f 77 73 20 68 61 73 20 74 |en windows has t| 00002b80 68 65 20 27 67 72 61 62 20 68 6f 74 20 6b 65 79 |he 'grab hot key| 00002b90 73 27 20 62 69 74 20 73 65 74 29 20 61 6e 64 20 |s' bit set) and | 00002ba0 61 6c 73 6f 20 77 68 65 6e 20 74 68 65 20 0a 20 |also when the . | 00002bb0 20 20 20 20 20 73 75 62 20 6d 65 6e 75 20 6f 6e | sub menu on| 00002bc0 20 74 68 65 20 27 53 61 76 65 27 20 6d 65 6e 75 | the 'Save' menu| 00002bd0 20 69 74 65 6d 20 69 73 20 6f 70 65 6e 65 64 2e | item is opened.| 00002be0 20 49 6e 20 65 61 63 68 20 63 61 73 65 20 0a 20 | In each case . | 00002bf0 20 20 20 20 20 46 4e 5f 50 72 65 4f 70 65 6e 5f | FN_PreOpen_| 00002c00 58 66 65 72 20 77 69 6c 6c 20 62 65 20 63 61 6c |Xfer will be cal| 00002c10 6c 65 64 20 74 6f 20 61 74 74 61 63 68 20 74 68 |led to attach th| 00002c20 65 20 65 76 65 6e 74 73 20 61 6e 64 20 66 69 6c |e events and fil| 00002c30 6c 20 69 6e 20 0a 20 20 20 20 20 20 74 68 65 20 |l in . the | 00002c40 66 69 6c 65 6e 61 6d 65 20 69 63 6f 6e 2e 20 0a |filename icon. .| 00002c50 0a 20 20 20 20 20 20 34 2e 20 47 65 6e 65 72 61 |. 4. Genera| 00002c60 6c 20 4f 76 65 72 76 69 65 77 20 0a 0a 20 20 20 |l Overview .. | 00002c70 20 20 20 54 68 69 73 20 73 65 63 74 69 6f 6e 20 | This section | 00002c80 65 78 70 6c 61 69 6e 73 20 74 68 65 20 76 61 72 |explains the var| 00002c90 69 6f 75 73 20 65 6c 65 6d 65 6e 74 73 20 6f 66 |ious elements of| 00002ca0 20 61 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 | an application | 00002cb0 0a 20 20 20 20 20 20 75 73 69 6e 67 20 74 68 65 |. using the| 00002cc0 20 45 76 6e 74 53 68 65 6c 6c 20 6c 69 62 72 61 | EvntShell libra| 00002cd0 72 79 2c 20 61 6e 64 20 61 6e 79 20 6c 69 6d 69 |ry, and any limi| 00002ce0 74 61 74 69 6f 6e 73 20 61 6e 64 20 61 73 73 75 |tations and assu| 00002cf0 6d 70 74 69 6f 6e 73 20 0a 20 20 20 20 20 20 6d |mptions . m| 00002d00 61 64 65 20 62 79 20 6d 65 2e 20 0a 0a 20 20 20 |ade by me. .. | 00002d10 20 20 20 34 2e 31 20 44 79 6e 61 6d 69 63 20 57 | 4.1 Dynamic W| 00002d20 69 6e 64 6f 77 73 20 0a 0c 0a 20 20 20 20 20 20 |indows ... | 00002d30 44 79 6e 61 6d 69 63 20 77 69 6e 64 6f 77 73 20 |Dynamic windows | 00002d40 61 72 65 20 74 68 6f 73 65 20 63 72 65 61 74 65 |are those create| 00002d50 64 20 62 79 20 6d 6f 76 69 6e 67 20 74 68 65 20 |d by moving the | 00002d60 70 6f 69 6e 74 65 72 20 6f 76 65 72 20 61 20 0a |pointer over a .| 00002d70 20 20 20 20 20 20 73 75 62 6d 65 6e 75 20 70 6f | submenu po| 00002d80 69 6e 74 65 72 20 61 72 72 6f 77 20 28 69 2e 65 |inter arrow (i.e| 00002d90 20 74 68 65 20 6e 6f 72 6d 61 6c 20 27 41 62 6f | the normal 'Abo| 00002da0 75 74 20 74 68 69 73 20 70 72 6f 67 72 61 6d 27 |ut this program'| 00002db0 20 77 69 6e 64 6f 77 20 0a 20 20 20 20 20 20 70 | window . p| 00002dc0 72 6f 64 75 63 65 64 20 62 79 20 74 68 65 20 27 |roduced by the '| 00002dd0 49 6e 66 6f 27 20 65 6e 74 72 79 20 6f 6e 20 74 |Info' entry on t| 00002de0 68 65 20 69 63 6f 6e 62 61 72 20 6d 65 6e 75 29 |he iconbar menu)| 00002df0 20 6f 72 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 0a | or optionally .| 00002e00 20 20 20 20 20 20 77 68 65 6e 20 61 20 27 68 6f | when a 'ho| 00002e10 74 20 6b 65 79 27 20 69 73 20 70 72 65 73 73 65 |t key' is presse| 00002e20 64 20 28 66 6f 72 20 65 78 61 6d 70 6c 65 20 46 |d (for example F| 00002e30 33 20 69 6e 20 6d 6f 73 74 20 61 70 70 6c 69 63 |3 in most applic| 00002e40 61 74 69 6f 6e 73 20 0a 20 20 20 20 20 20 6f 70 |ations . op| 00002e50 65 6e 73 20 61 20 73 61 76 65 20 62 6f 78 29 2e |ens a save box).| 00002e60 20 54 68 65 79 20 61 72 65 20 6f 70 65 6e 65 64 | They are opened| 00002e70 20 77 69 74 68 20 61 20 63 61 6c 6c 20 74 6f 20 | with a call to | 00002e80 0a 20 20 20 20 20 20 50 52 4f 43 73 68 65 6c 6c |. PROCshell| 00002e90 5f 4f 70 65 6e 57 69 6e 64 6f 77 44 79 6e 61 6d |_OpenWindowDynam| 00002ea0 69 63 2e 20 0a 0a 20 20 20 20 20 20 57 68 65 6e |ic. .. When| 00002eb0 20 77 72 69 74 61 62 6c 65 20 69 63 6f 6e 73 20 | writable icons | 00002ec0 65 78 69 73 74 20 69 6e 20 74 68 65 20 64 79 6e |exist in the dyn| 00002ed0 61 6d 69 63 20 77 69 6e 64 6f 77 20 75 70 2f 64 |amic window up/d| 00002ee0 6f 77 6e 20 63 75 72 73 6f 72 20 0a 20 20 20 20 |own cursor . | 00002ef0 20 20 61 6e 64 20 54 41 42 2f 53 48 49 46 54 20 | and TAB/SHIFT | 00002f00 54 41 42 20 6b 65 79 70 72 65 73 73 65 73 20 6d |TAB keypresses m| 00002f10 6f 76 65 20 74 68 65 20 63 61 72 65 74 20 62 65 |ove the caret be| 00002f20 74 77 65 65 6e 20 74 68 65 20 69 63 6f 6e 73 20 |tween the icons | 00002f30 0a 20 20 20 20 20 20 75 73 69 6e 67 20 74 68 65 |. using the| 00002f40 20 69 63 6f 6e 20 68 61 6e 64 6c 65 73 20 74 6f | icon handles to| 00002f50 20 64 65 74 65 72 6d 69 6e 65 20 77 68 65 72 65 | determine where| 00002f60 20 74 6f 20 6d 6f 76 65 20 6e 65 78 74 2e 20 59 | to move next. Y| 00002f70 6f 75 20 0a 20 20 20 20 20 20 73 68 6f 75 6c 64 |ou . should| 00002f80 20 65 6e 73 75 72 65 20 74 68 65 72 65 66 6f 72 | ensure therefor| 00002f90 65 20 74 68 61 74 20 74 68 65 20 6f 72 64 65 72 |e that the order| 00002fa0 20 6f 66 20 74 68 65 20 69 63 6f 6e 20 68 61 6e | of the icon han| 00002fb0 64 6c 65 73 20 69 73 20 61 20 0a 20 20 20 20 20 |dles is a . | 00002fc0 20 6c 6f 67 69 63 61 6c 20 70 72 6f 67 72 65 73 | logical progres| 00002fd0 73 69 6f 6e 20 74 68 72 6f 75 67 68 20 74 68 65 |sion through the| 00002fe0 20 64 69 61 6c 6f 67 20 62 6f 78 2e 20 49 63 6f | dialog box. Ico| 00002ff0 6e 73 20 77 68 69 63 68 20 61 72 65 20 0a 20 20 |ns which are . | 00003000 20 20 20 20 75 6e 73 65 6c 65 63 74 61 62 6c 65 | unselectable| 00003010 20 28 69 2e 65 2e 20 67 72 65 79 65 64 20 6f 75 | (i.e. greyed ou| 00003020 74 29 20 77 69 6c 6c 20 62 65 20 69 67 6e 6f 72 |t) will be ignor| 00003030 65 64 2e 20 50 72 65 73 73 69 6e 67 20 74 68 65 |ed. Pressing the| 00003040 20 0a 20 20 20 20 20 20 3c 52 45 54 55 52 4e 3e | . <RETURN>| 00003050 20 6b 65 79 20 63 61 75 73 65 73 20 69 63 6f 6e | key causes icon| 00003060 20 30 20 74 6f 20 62 65 20 70 72 65 73 73 65 64 | 0 to be pressed| 00003070 20 28 6e 6f 72 6d 61 6c 6c 79 20 61 20 27 64 65 | (normally a 'de| 00003080 66 61 75 6c 74 20 0a 20 20 20 20 20 20 61 63 74 |fault . act| 00003090 69 6f 6e 27 20 69 63 6f 6e 20 77 69 74 68 20 61 |ion' icon with a| 000030a0 6e 20 65 78 74 72 61 20 62 6f 72 64 65 72 29 20 |n extra border) | 000030b0 61 6e 64 20 74 68 65 20 6d 65 6e 75 2f 64 69 61 |and the menu/dia| 000030c0 6c 6f 67 20 62 6f 78 20 74 6f 20 62 65 20 0a 20 |log box to be . | 000030d0 20 20 20 20 20 63 6c 6f 73 65 64 2e 20 41 63 74 | closed. Act| 000030e0 75 61 6c 6c 79 20 63 6c 69 63 6b 69 6e 67 20 3c |ually clicking <| 000030f0 53 45 4c 45 43 54 3e 20 6f 6e 20 69 63 6f 6e 20 |SELECT> on icon | 00003100 30 20 6f 66 20 61 20 64 79 6e 61 6d 69 63 20 64 |0 of a dynamic d| 00003110 69 61 6c 6f 67 20 0a 20 20 20 20 20 20 62 6f 78 |ialog . box| 00003120 20 77 69 6c 6c 20 63 61 75 73 65 20 74 68 65 20 | will cause the | 00003130 73 68 65 6c 6c 20 6c 69 62 72 61 72 79 20 74 6f |shell library to| 00003140 20 63 6c 6f 73 65 20 74 68 65 20 77 69 6e 64 6f | close the windo| 00003150 77 20 61 73 20 77 65 6c 6c 2e 20 0a 0a 20 20 20 |w as well. .. | 00003160 20 20 20 57 68 65 6e 20 61 20 27 68 6f 74 20 6b | When a 'hot k| 00003170 65 79 27 20 69 73 20 70 72 65 73 73 65 64 20 79 |ey' is pressed y| 00003180 6f 75 20 68 61 76 65 20 74 68 65 20 6f 70 74 69 |ou have the opti| 00003190 6f 6e 20 6f 66 20 6f 70 65 6e 69 6e 67 20 61 20 |on of opening a | 000031a0 0a 20 20 20 20 20 20 64 79 6e 61 6d 69 63 20 64 |. dynamic d| 000031b0 69 61 6c 6f 67 20 62 6f 78 20 77 68 69 63 68 20 |ialog box which | 000031c0 77 69 6c 6c 20 64 69 73 61 70 70 65 61 72 20 77 |will disappear w| 000031d0 68 65 6e 20 61 20 6d 6f 75 73 65 20 63 6c 69 63 |hen a mouse clic| 000031e0 6b 20 69 73 20 0a 20 20 20 20 20 20 6d 61 64 65 |k is . made| 000031f0 20 6f 75 74 73 69 64 65 20 69 74 20 6f 72 20 74 | outside it or t| 00003200 68 65 20 3c 45 53 43 3e 20 6b 65 79 20 69 73 20 |he <ESC> key is | 00003210 70 72 65 73 73 65 64 2c 20 6f 72 20 61 73 20 61 |pressed, or as a| 00003220 20 27 53 74 61 74 69 63 27 20 0a 20 20 20 20 20 | 'Static' . | 00003230 20 64 69 61 6c 6f 67 20 62 6f 78 20 77 68 69 63 | dialog box whic| 00003240 68 20 6d 75 73 74 20 62 65 20 65 78 70 6c 69 63 |h must be explic| 00003250 69 74 6c 79 20 63 6c 6f 73 65 64 20 62 79 20 74 |itly closed by t| 00003260 68 65 20 75 73 65 72 20 0a 20 20 20 20 20 20 61 |he user . a| 00003270 70 70 6c 69 63 61 74 69 6f 6e 20 70 72 6f 67 72 |pplication progr| 00003280 61 6d 2e 20 0a 0a 20 20 20 20 20 20 44 6f 20 6e |am. .. Do n| 00003290 6f 74 20 61 74 74 65 6d 70 74 20 74 6f 20 63 6c |ot attempt to cl| 000032a0 6f 73 65 20 61 20 64 79 6e 61 6d 69 63 20 64 69 |ose a dynamic di| 000032b0 61 6c 6f 67 20 62 6f 78 20 77 69 74 68 20 61 20 |alog box with a | 000032c0 63 61 6c 6c 20 74 6f 20 0a 20 20 20 20 20 20 50 |call to . P| 000032d0 52 4f 43 73 68 65 6c 6c 5f 43 6c 6f 73 65 57 69 |ROCshell_CloseWi| 000032e0 6e 64 6f 77 20 6f 72 20 50 52 4f 43 73 68 65 6c |ndow or PROCshel| 000032f0 6c 5f 44 65 6c 65 74 65 57 69 6e 64 6f 77 20 61 |l_DeleteWindow a| 00003300 73 20 74 68 69 73 20 77 69 6c 6c 20 0a 20 20 20 |s this will . | 00003310 20 20 20 63 61 75 73 65 20 61 6e 20 65 72 72 6f | cause an erro| 00003320 72 20 77 68 65 6e 20 74 68 65 20 73 68 65 6c 6c |r when the shell| 00003330 20 6c 69 62 72 61 72 79 20 74 72 69 65 73 20 74 | library tries t| 00003340 6f 20 63 6c 6f 73 65 20 6f 72 20 64 65 6c 65 74 |o close or delet| 00003350 65 20 0a 20 20 20 20 20 20 74 68 65 20 77 69 6e |e . the win| 00003360 64 6f 77 2e 20 0a 0a 20 20 20 20 20 20 41 6c 6c |dow. .. All| 00003370 20 77 69 6e 64 6f 77 73 20 75 73 65 64 20 62 79 | windows used by| 00003380 20 74 68 65 20 75 73 65 72 20 61 70 70 6c 69 63 | the user applic| 00003390 61 74 69 6f 6e 20 61 72 65 20 61 73 73 75 6d 65 |ation are assume| 000033a0 64 20 74 6f 20 62 65 20 0a 20 20 20 20 20 20 64 |d to be . d| 000033b0 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 27 54 |efined in the 'T| 000033c0 65 6d 70 6c 61 74 65 73 27 20 66 69 6c 65 20 61 |emplates' file a| 000033d0 6e 64 20 65 64 69 74 65 64 20 75 73 69 6e 67 20 |nd edited using | 000033e0 46 6f 72 6d 45 64 20 6f 72 20 6f 6e 65 20 6f 66 |FormEd or one of| 000033f0 20 0a 20 20 20 20 20 20 74 68 65 20 50 75 62 6c | . the Publ| 00003400 69 63 20 44 6f 6d 61 69 6e 2f 53 68 61 72 65 57 |ic Domain/ShareW| 00003410 61 72 65 20 65 71 75 69 76 61 6c 65 6e 74 73 2e |are equivalents.| 00003420 20 0a 0a 20 20 20 20 20 20 34 2e 32 20 53 74 61 | .. 4.2 Sta| 00003430 74 69 63 20 57 69 6e 64 6f 77 73 20 0a 0a 20 20 |tic Windows .. | 00003440 20 20 20 20 54 68 65 73 65 20 61 72 65 20 6f 70 | These are op| 00003450 65 6e 65 64 20 77 69 74 68 20 61 20 63 61 6c 6c |ened with a call| 00003460 20 74 6f 20 50 52 4f 43 73 68 65 6c 6c 5f 4f 70 | to PROCshell_Op| 00003470 65 6e 57 69 6e 64 6f 77 53 74 61 74 69 63 20 61 |enWindowStatic a| 00003480 6e 64 20 0a 20 20 20 20 20 20 72 65 73 70 6f 6e |nd . respon| 00003490 64 20 74 6f 20 63 75 72 73 6f 72 2c 54 41 42 20 |d to cursor,TAB | 000034a0 61 6e 64 20 3c 52 45 54 55 52 4e 3e 20 6b 65 79 |and <RETURN> key| 000034b0 70 72 65 73 73 65 73 20 6c 69 6b 65 20 64 79 6e |presses like dyn| 000034c0 61 6d 69 63 20 64 69 61 6c 6f 67 20 0a 20 20 20 |amic dialog . | 000034d0 20 20 20 62 6f 78 65 73 20 65 78 63 65 70 74 20 | boxes except | 000034e0 74 68 61 74 20 70 72 65 73 73 69 6e 67 20 3c 52 |that pressing <R| 000034f0 45 54 55 52 4e 3e 20 77 69 6c 6c 20 6e 6f 74 20 |ETURN> will not | 00003500 63 6c 6f 73 65 20 74 68 65 20 77 69 6e 64 6f 77 |close the window| 00003510 2e 20 0a 20 20 20 20 20 20 53 74 61 74 69 63 20 |. . Static | 00003520 77 69 6e 64 6f 77 73 20 6d 75 73 74 20 62 65 20 |windows must be | 00003530 63 72 65 61 74 65 64 20 77 69 74 68 20 61 20 63 |created with a c| 00003540 61 6c 6c 20 74 6f 20 0a 20 20 20 20 20 20 50 52 |all to . PR| 00003550 4f 43 73 68 65 6c 6c 5f 43 72 65 61 74 65 57 69 |OCshell_CreateWi| 00003560 6e 64 6f 77 53 74 61 74 69 63 2e 20 0a 0a 20 20 |ndowStatic. .. | 00003570 20 20 20 20 43 6c 6f 73 69 6e 67 20 74 68 65 73 | Closing thes| 00003580 65 20 77 69 6e 64 6f 77 73 20 69 73 20 74 68 65 |e windows is the| 00003590 20 72 65 73 70 6f 6e 73 69 62 69 6c 69 74 79 20 | responsibility | 000035a0 6f 66 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 |of the applicati| 000035b0 6f 6e 20 0a 20 20 20 20 20 20 70 72 6f 67 72 61 |on . progra| 000035c0 6d 20 28 75 73 65 20 50 52 4f 43 73 68 65 6c 6c |m (use PROCshell| 000035d0 5f 43 6c 6f 73 65 57 69 6e 64 6f 77 29 20 65 78 |_CloseWindow) ex| 000035e0 63 65 70 74 20 69 6e 20 74 68 65 20 63 61 73 65 |cept in the case| 000035f0 20 6f 66 20 61 20 63 6c 69 63 6b 20 0a 20 20 20 | of a click . | 00003600 20 20 20 6f 6e 20 74 68 65 20 27 43 6c 6f 73 65 | on the 'Close| 00003610 27 20 69 63 6f 6e 20 69 6e 20 74 68 65 20 74 69 |' icon in the ti| 00003620 74 6c 65 20 62 61 72 20 69 63 6f 6e 20 28 69 66 |tle bar icon (if| 00003630 20 70 72 65 73 65 6e 74 29 2e 20 0a 0a 20 20 20 | present). .. | 00003640 20 20 20 59 6f 75 20 77 6f 75 6c 64 20 75 73 65 | You would use| 00003650 20 61 20 73 74 61 74 69 63 20 77 69 6e 64 6f 77 | a static window| 00003660 20 66 6f 72 20 74 68 65 20 6d 61 69 6e 20 77 69 | for the main wi| 00003670 6e 64 6f 77 20 6f 66 20 61 6e 20 0a 20 20 20 20 |ndow of an . | 00003680 20 20 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 6f | application, o| 00003690 72 20 70 65 72 68 61 70 73 20 66 6f 72 20 61 20 |r perhaps for a | 000036a0 73 61 76 65 20 62 6f 78 20 61 73 20 69 6e 20 74 |save box as in t| 000036b0 68 65 20 63 61 73 65 20 6f 66 20 74 68 65 20 0a |he case of the .| 000036c0 20 20 20 20 20 20 21 57 69 6e 53 61 76 65 32 20 | !WinSave2 | 000036d0 65 78 61 6d 70 6c 65 2e 20 54 68 65 20 61 64 76 |example. The adv| 000036e0 61 6e 74 61 67 65 20 6f 66 20 75 73 69 6e 67 20 |antage of using | 000036f0 61 20 73 74 61 74 69 63 20 77 69 6e 64 6f 77 20 |a static window | 00003700 69 6e 20 74 68 69 73 20 0a 20 20 20 20 20 20 63 |in this . c| 00003710 61 73 65 20 69 73 20 74 68 61 74 20 74 68 69 73 |ase is that this| 00003720 20 61 6c 6c 6f 77 73 20 74 68 65 20 75 73 65 72 | allows the user| 00003730 20 74 6f 20 6f 70 65 6e 20 64 69 72 65 63 74 6f | to open directo| 00003740 72 79 20 76 69 65 77 65 72 73 20 6f 72 20 0a 20 |ry viewers or . | 00003750 20 20 20 20 20 73 74 61 72 74 20 6f 74 68 65 72 | start other| 00003760 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 77 68 | applications wh| 00003770 69 6c 65 20 6b 65 65 70 69 6e 67 20 74 68 65 20 |ile keeping the | 00003780 73 61 76 65 20 62 6f 78 20 6f 6e 20 74 68 65 20 |save box on the | 00003790 0a 20 20 20 20 20 20 73 63 72 65 65 6e 2e 20 0a |. screen. .| 000037a0 0a 20 20 20 20 20 20 34 2e 33 20 52 65 73 6f 75 |. 4.3 Resou| 000037b0 72 63 65 73 20 0a 0a 20 20 20 20 20 20 27 52 65 |rces .. 'Re| 000037c0 73 6f 75 72 63 65 73 27 20 69 73 20 61 20 67 65 |sources' is a ge| 000037d0 6e 65 72 61 6c 20 74 65 72 6d 20 66 6f 72 20 61 |neral term for a| 000037e0 64 64 69 74 69 6f 6e 61 6c 20 66 69 6c 65 73 20 |dditional files | 000037f0 6e 65 65 64 65 64 20 62 79 20 61 6e 20 0a 20 20 |needed by an . | 00003800 20 20 20 20 61 70 70 6c 69 63 61 74 69 6f 6e 2e | application.| 00003810 20 54 68 65 72 65 20 77 69 6c 6c 20 28 61 6c 6d | There will (alm| 00003820 6f 73 74 29 20 61 6c 77 61 79 73 20 62 65 20 73 |ost) always be s| 00003830 6f 6d 65 20 6f 66 20 74 68 65 73 65 2c 20 73 75 |ome of these, su| 00003840 63 68 20 61 73 20 0a 20 20 20 20 20 20 73 70 72 |ch as . spr| 00003850 69 74 65 20 66 69 6c 65 73 2e 20 4f 74 68 65 72 |ite files. Other| 00003860 73 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 20 6d |s, for example m| 00003870 65 73 73 61 67 65 20 66 69 6c 65 73 20 6d 61 79 |essage files may| 00003880 20 6e 6f 74 20 62 65 20 0a 20 20 20 20 20 20 72 | not be . r| 00003890 65 71 75 69 72 65 64 2e 20 0a 0c 0a 20 20 20 20 |equired. ... | 000038a0 20 20 54 68 65 20 45 76 6e 74 53 68 65 6c 6c 20 | The EvntShell | 000038b0 6c 69 62 72 61 72 79 20 6e 6f 77 20 73 75 70 70 |library now supp| 000038c0 6f 72 74 73 20 52 65 73 46 69 6e 64 20 77 68 69 |orts ResFind whi| 000038d0 63 68 20 61 6c 6c 6f 77 73 20 74 68 65 20 0a 20 |ch allows the . | 000038e0 20 20 20 20 20 73 65 6c 65 63 74 69 6f 6e 20 6f | selection o| 000038f0 66 20 74 68 65 20 64 65 73 69 72 65 64 20 6c 61 |f the desired la| 00003900 6e 67 75 61 67 65 20 66 6f 72 20 6d 65 73 73 61 |nguage for messa| 00003910 67 65 20 66 69 6c 65 73 20 65 74 63 20 6d 75 63 |ge files etc muc| 00003920 68 20 0a 20 20 20 20 20 20 65 61 73 69 65 72 2e |h . easier.| 00003930 20 42 72 69 65 66 6c 79 20 65 78 70 6c 61 69 6e | Briefly explain| 00003940 65 64 20 69 74 20 63 68 65 63 6b 73 20 74 68 65 |ed it checks the| 00003950 20 63 75 72 72 65 6e 74 6c 79 20 63 6f 6e 66 69 | currently confi| 00003960 67 75 72 65 64 20 0a 20 20 20 20 20 20 6c 61 6e |gured . lan| 00003970 67 75 61 67 65 20 6f 66 20 74 68 65 20 63 6f 6d |guage of the com| 00003980 70 75 74 65 72 20 69 74 20 69 73 20 72 75 6e 6e |puter it is runn| 00003990 69 6e 67 20 6f 6e 20 61 6e 64 20 73 65 74 73 20 |ing on and sets | 000039a0 75 70 20 61 20 70 61 74 68 20 74 6f 20 0a 20 20 |up a path to . | 000039b0 20 20 20 20 74 68 65 20 72 65 73 6f 75 72 63 65 | the resource| 000039c0 20 66 69 6c 65 73 2e 20 54 68 69 73 20 77 6f 75 | files. This wou| 000039d0 6c 64 20 6e 6f 72 6d 61 6c 6c 79 20 62 65 20 3c |ld normally be <| 000039e0 41 70 70 24 44 69 72 3e 2e 52 65 73 6f 75 72 63 |App$Dir>.Resourc| 000039f0 65 73 2e 55 4b 20 0a 20 20 20 20 20 20 66 6f 72 |es.UK . for| 00003a00 20 61 20 55 4b 20 63 6f 6e 66 69 67 75 72 65 64 | a UK configured| 00003a10 20 63 6f 6d 70 75 74 65 72 2c 20 6f 72 20 3c 41 | computer, or <A| 00003a20 70 70 24 44 69 72 3e 2e 52 65 73 6f 75 72 63 65 |pp$Dir>.Resource| 00003a30 73 2e 47 65 72 6d 61 6e 79 20 66 6f 72 20 0a 20 |s.Germany for . | 00003a40 20 20 20 20 20 61 20 47 65 72 6d 61 6e 20 6f 6e | a German on| 00003a50 65 2e 20 54 68 69 73 20 69 73 20 68 61 6e 64 6c |e. This is handl| 00003a60 65 64 20 66 6f 72 20 79 6f 75 20 69 66 20 79 6f |ed for you if yo| 00003a70 75 20 75 73 65 20 21 41 70 70 42 75 69 6c 64 20 |u use !AppBuild | 00003a80 74 6f 20 0a 20 20 20 20 20 20 63 72 65 61 74 65 |to . create| 00003a90 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e | the application| 00003aa0 2e 20 0a 0a 20 20 20 20 20 20 41 70 70 42 75 69 |. .. AppBui| 00003ab0 6c 64 20 6e 6f 77 20 6f 66 66 65 72 73 20 74 6f |ld now offers to| 00003ac0 20 70 6c 61 63 65 20 74 68 65 20 72 65 73 6f 75 | place the resou| 00003ad0 72 63 65 73 20 69 6e 20 74 68 65 20 61 70 70 72 |rces in the appr| 00003ae0 6f 70 72 69 61 74 65 20 0a 20 20 20 20 20 20 64 |opriate . d| 00003af0 69 72 65 63 74 6f 72 69 65 73 20 66 6f 72 20 79 |irectories for y| 00003b00 6f 75 20 77 68 65 6e 20 79 6f 75 20 63 72 65 61 |ou when you crea| 00003b10 74 65 20 61 20 6e 65 77 20 61 70 70 6c 69 63 61 |te a new applica| 00003b20 74 69 6f 6e 2c 20 61 6e 64 20 74 6f 20 0a 20 20 |tion, and to . | 00003b30 20 20 20 20 70 6c 61 63 65 20 61 20 63 61 6c 6c | place a call| 00003b40 20 74 6f 20 52 65 73 46 69 6e 64 20 69 6e 20 74 | to ResFind in t| 00003b50 68 65 20 21 52 75 6e 20 66 69 6c 65 2e 20 0a 0a |he !Run file. ..| 00003b60 20 20 20 20 20 20 55 73 69 6e 67 20 52 65 73 46 | Using ResF| 00003b70 69 6e 64 20 69 73 20 6f 70 74 69 6f 6e 61 6c 20 |ind is optional | 00003b80 61 6e 64 20 45 76 6e 74 53 68 65 6c 6c 20 61 70 |and EvntShell ap| 00003b90 70 6c 69 63 61 74 69 6f 6e 73 20 77 69 6c 6c 20 |plications will | 00003ba0 0a 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 |. function | 00003bb0 65 71 75 61 6c 6c 79 20 77 65 6c 6c 20 69 66 20 |equally well if | 00003bc0 79 6f 75 20 64 6f 6e 27 74 20 75 73 65 20 69 74 |you don't use it| 00003bd0 2e 20 49 74 20 64 6f 65 73 20 6d 61 6b 65 20 74 |. It does make t| 00003be0 68 65 20 0a 20 20 20 20 20 20 70 72 6f 64 75 63 |he . produc| 00003bf0 74 69 6f 6e 20 6f 66 20 61 70 70 6c 69 63 61 74 |tion of applicat| 00003c00 69 6f 6e 73 20 74 68 61 74 20 63 61 6e 20 62 65 |ions that can be| 00003c10 20 65 61 73 69 6c 79 20 75 73 65 64 20 69 6e 20 | easily used in | 00003c20 61 6e 79 20 63 6f 75 6e 74 72 79 20 0a 20 20 20 |any country . | 00003c30 20 20 20 6d 75 63 68 20 65 61 73 69 65 72 2c 20 | much easier, | 00003c40 68 6f 77 65 76 65 72 2c 20 61 6e 64 20 74 68 69 |however, and thi| 00003c50 73 20 73 68 6f 75 6c 64 20 62 65 20 65 6e 63 6f |s should be enco| 00003c60 75 72 61 67 65 64 2e 20 4d 6f 73 74 20 6f 66 20 |uraged. Most of | 00003c70 74 68 65 20 0a 20 20 20 20 20 20 70 72 6f 67 72 |the . progr| 00003c80 61 6d 6d 69 6e 67 20 74 6f 6f 6c 73 20 61 6e 64 |amming tools and| 00003c90 20 6d 6f 64 75 6c 65 73 20 75 73 65 64 20 64 75 | modules used du| 00003ca0 72 69 6e 67 20 74 68 65 20 64 65 76 65 6c 6f 70 |ring the develop| 00003cb0 6d 65 6e 74 20 6f 66 20 74 68 69 73 20 0a 20 20 |ment of this . | 00003cc0 20 20 20 20 6c 69 62 72 61 72 79 20 77 65 72 65 | library were| 00003cd0 20 77 72 69 74 74 65 6e 20 6f 75 74 73 69 64 65 | written outside| 00003ce0 20 74 68 65 20 55 4b 2e 20 0a 0a 20 20 20 20 20 | the UK. .. | 00003cf0 20 54 68 65 20 61 75 74 68 6f 72 20 77 6f 75 6c | The author woul| 00003d00 64 20 61 70 70 72 65 63 69 61 74 65 20 68 65 6c |d appreciate hel| 00003d10 70 20 69 6e 20 74 72 61 6e 73 6c 61 74 69 6e 67 |p in translating| 00003d20 20 74 68 65 20 53 68 65 6c 6c 4d 73 67 73 20 0a | the ShellMsgs .| 00003d30 20 20 20 20 20 20 66 69 6c 65 20 61 6e 64 20 74 | file and t| 00003d40 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e |he documentation| 00003d50 20 69 6e 74 6f 20 6f 74 68 65 72 20 6c 61 6e 67 | into other lang| 00003d60 75 61 67 65 73 2e 20 0a 0a 20 20 20 20 20 20 54 |uages. .. T| 00003d70 68 65 20 66 75 6c 6c 20 52 65 73 46 69 6e 64 20 |he full ResFind | 00003d80 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 73 75 |documentation su| 00003d90 70 70 6c 69 65 64 20 77 69 74 68 20 74 68 65 20 |pplied with the | 00003da0 6c 69 62 72 61 72 79 20 63 6f 6e 74 61 69 6e 73 |library contains| 00003db0 20 0a 20 20 20 20 20 20 66 75 72 74 68 65 72 20 | . further | 00003dc0 64 65 74 61 69 6c 73 20 6f 6e 20 68 6f 77 20 69 |details on how i| 00003dd0 74 20 77 6f 72 6b 73 20 61 6e 64 20 74 68 65 20 |t works and the | 00003de0 61 64 76 61 6e 74 61 67 65 73 20 74 6f 20 62 65 |advantages to be| 00003df0 20 67 61 69 6e 65 64 20 0a 20 20 20 20 20 20 62 | gained . b| 00003e00 79 20 75 73 69 6e 67 20 69 74 2e 20 41 73 20 61 |y using it. As a| 00003e10 20 74 61 73 74 65 72 2c 20 68 65 72 65 20 69 73 | taster, here is| 00003e20 20 74 68 65 20 70 61 72 74 20 6f 66 20 74 68 65 | the part of the| 00003e30 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 0a | documentation .| 00003e40 20 20 20 20 20 20 69 6e 74 65 6e 64 65 64 20 74 | intended t| 00003e50 6f 20 62 65 20 64 69 73 74 72 69 62 75 74 65 64 |o be distributed| 00003e60 20 77 69 74 68 20 61 70 70 6c 69 63 61 74 69 6f | with applicatio| 00003e70 6e 73 20 75 73 69 6e 67 20 52 65 73 46 69 6e 64 |ns using ResFind| 00003e80 2e 20 0a 0a 20 20 20 20 20 20 28 42 61 73 65 20 |. .. (Base | 00003e90 66 6f 72 20 74 68 65 20 61 70 70 6c 69 63 61 74 |for the applicat| 00003ea0 69 6f 6e 27 73 20 64 6f 63 75 6d 65 6e 74 61 74 |ion's documentat| 00003eb0 69 6f 6e 20 2d 20 70 6c 65 61 73 65 20 72 65 70 |ion - please rep| 00003ec0 6c 61 63 65 20 0a 20 20 20 20 20 20 3c 50 72 6f |lace . <Pro| 00003ed0 67 4e 61 6d 65 3e 20 62 79 20 74 68 65 20 6e 61 |gName> by the na| 00003ee0 6d 65 20 6f 66 20 79 6f 75 72 20 61 70 70 6c 69 |me of your appli| 00003ef0 63 61 74 69 6f 6e 20 77 69 74 68 6f 75 74 20 74 |cation without t| 00003f00 68 65 20 21 29 20 0a 0a 20 20 20 20 20 20 21 3c |he !) .. !<| 00003f10 50 72 6f 67 4e 61 6d 65 3e 20 61 64 61 70 74 73 |ProgName> adapts| 00003f20 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 74 | automatically t| 00003f30 6f 20 74 68 65 20 63 6f 6e 66 69 67 75 72 65 64 |o the configured| 00003f40 20 6c 61 6e 67 75 61 67 65 20 69 66 20 0a 20 20 | language if . | 00003f50 20 20 20 20 74 68 65 20 63 6f 72 72 65 73 70 6f | the correspo| 00003f60 6e 64 69 6e 67 20 6d 65 73 73 61 67 65 73 20 65 |nding messages e| 00003f70 74 63 2e 20 61 72 65 20 61 76 61 69 6c 61 62 6c |tc. are availabl| 00003f80 65 2e 20 46 6f 72 20 74 68 69 73 20 70 75 72 70 |e. For this purp| 00003f90 6f 73 65 20 61 20 0a 20 20 20 20 20 20 52 65 73 |ose a . Res| 00003fa0 6f 75 72 63 65 73 20 64 69 72 65 63 74 6f 72 79 |ources directory| 00003fb0 20 69 73 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e | is contained in| 00003fc0 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e | the application| 00003fd0 20 69 6e 20 77 68 69 63 68 20 61 20 0a 20 20 20 | in which a . | 00003fe0 20 20 20 73 75 62 64 69 72 65 63 74 6f 72 79 20 | subdirectory | 00003ff0 66 6f 72 20 65 61 63 68 20 6c 61 6e 67 75 61 67 |for each languag| 00004000 65 20 73 75 70 70 6f 72 74 65 64 20 72 65 73 69 |e supported resi| 00004010 64 65 73 2e 20 49 66 20 74 68 65 20 6c 61 6e 67 |des. If the lang| 00004020 75 61 67 65 20 0a 20 20 20 20 20 20 79 6f 75 20 |uage . you | 00004030 6e 65 65 64 20 69 73 6e 27 74 20 69 6e 20 74 68 |need isn't in th| 00004040 65 72 65 2c 20 70 6c 65 61 73 65 20 66 65 65 6c |ere, please feel| 00004050 20 66 72 65 65 20 74 6f 20 64 75 70 6c 69 63 61 | free to duplica| 00004060 74 65 20 61 6e 79 20 6f 66 20 0a 20 20 20 20 20 |te any of . | 00004070 20 74 68 65 73 65 20 6c 61 6e 67 75 61 67 65 20 | these language | 00004080 64 69 72 65 63 74 6f 72 69 65 73 20 61 6e 64 20 |directories and | 00004090 74 72 61 6e 73 6c 61 74 65 20 74 68 65 20 63 6f |translate the co| 000040a0 6e 74 65 6e 74 73 2e 20 0a 0a 20 20 20 20 20 20 |ntents. .. | 000040b0 57 68 65 6e 20 79 6f 75 20 72 75 6e 20 74 68 65 |When you run the| 000040c0 20 70 72 6f 67 72 61 6d 20 61 20 75 74 69 6c 69 | program a utili| 000040d0 74 79 20 63 61 6c 6c 65 64 20 52 65 73 46 69 6e |ty called ResFin| 000040e0 64 20 69 73 20 63 61 6c 6c 65 64 20 77 68 69 63 |d is called whic| 000040f0 68 20 0a 20 20 20 20 20 20 72 65 61 64 73 20 74 |h . reads t| 00004100 68 65 20 6c 61 6e 67 75 61 67 65 20 79 6f 75 72 |he language your| 00004110 20 63 6f 6d 70 75 74 65 72 20 69 73 20 63 6f 6e | computer is con| 00004120 66 69 67 75 72 65 64 20 74 6f 20 61 6e 64 20 74 |figured to and t| 00004130 68 65 6e 20 6c 6f 6f 6b 73 20 0a 20 20 20 20 20 |hen looks . | 00004140 20 66 6f 72 20 74 68 65 20 63 6f 72 72 65 73 70 | for the corresp| 00004150 6f 6e 64 69 6e 67 20 6c 61 6e 67 75 61 67 65 20 |onding language | 00004160 64 69 72 65 63 74 6f 72 79 2e 20 49 66 20 74 68 |directory. If th| 00004170 69 73 20 66 61 69 6c 73 20 74 68 65 20 0a 20 20 |is fails the . | 00004180 20 20 20 20 70 72 6f 67 72 61 6d 20 77 69 6c 6c | program will| 00004190 20 72 75 6e 20 69 6e 20 45 6e 67 6c 69 73 68 20 | run in English | 000041a0 28 55 4b 29 2e 20 42 79 20 73 65 74 74 69 6e 67 |(UK). By setting| 000041b0 20 73 65 76 65 72 61 6c 20 73 79 73 74 65 6d 20 | several system | 000041c0 0a 20 20 20 20 20 20 76 61 72 69 61 62 6c 65 73 |. variables| 000041d0 20 28 62 65 73 74 20 64 6f 6e 65 20 69 6e 20 79 | (best done in y| 000041e0 6f 75 72 20 73 79 73 74 65 6d 27 73 20 21 42 6f |our system's !Bo| 000041f0 6f 74 20 66 69 6c 65 29 20 79 6f 75 20 63 61 6e |ot file) you can| 00004200 20 63 68 61 6e 67 65 20 0a 20 20 20 20 20 20 74 | change . t| 00004210 68 65 20 6c 61 6e 67 75 61 67 65 20 6c 6f 6f 6b |he language look| 00004220 65 64 20 66 6f 72 2e 20 57 69 74 68 20 74 68 69 |ed for. With thi| 00004230 73 20 79 6f 75 20 63 61 6e 20 6d 61 6b 65 20 73 |s you can make s| 00004240 75 72 65 20 61 20 70 72 6f 67 72 61 6d 20 0a 20 |ure a program . | 00004250 20 20 20 20 20 72 75 6e 73 20 69 6e 20 61 20 63 | runs in a c| 00004260 65 72 74 61 69 6e 20 6c 61 6e 67 75 61 67 65 2c |ertain language,| 00004270 20 65 2e 67 2e 20 74 6f 20 61 76 6f 69 64 20 61 | e.g. to avoid a| 00004280 20 77 65 69 72 64 20 74 72 61 6e 73 6c 61 74 69 | weird translati| 00004290 6f 6e 2e 20 0a 20 20 20 20 20 20 46 75 72 74 68 |on. . Furth| 000042a0 65 72 6d 6f 72 65 20 69 74 20 69 73 20 70 6f 73 |ermore it is pos| 000042b0 73 69 62 6c 65 20 74 6f 20 6e 61 6d 65 20 73 65 |sible to name se| 000042c0 76 65 72 61 6c 20 6c 61 6e 67 75 61 67 65 73 20 |veral languages | 000042d0 79 6f 75 20 70 72 65 66 65 72 20 0a 20 20 20 20 |you prefer . | 000042e0 20 20 74 6f 20 45 6e 67 6c 69 73 68 2e 20 0a 0a | to English. ..| 000042f0 20 20 20 20 20 20 54 68 69 73 20 69 73 20 63 6f | This is co| 00004300 6e 74 72 6f 6c 6c 65 64 20 62 79 20 74 68 72 65 |ntrolled by thre| 00004310 65 20 73 79 73 74 65 6d 20 76 61 72 69 61 62 6c |e system variabl| 00004320 65 73 3a 20 0a 0a 20 20 20 20 20 20 0a 20 20 20 |es: .. . | 00004330 20 20 20 3c 50 72 6f 67 4e 61 6d 65 3e 24 4c 61 | <ProgName>$La| 00004340 6e 67 75 61 67 65 2c 20 52 65 73 46 69 6e 64 24 |nguage, ResFind$| 00004350 4c 61 6e 67 75 61 67 65 73 50 72 65 66 20 61 6e |LanguagesPref an| 00004360 64 20 0a 20 20 20 20 20 20 52 65 73 46 69 6e 64 |d . ResFind| 00004370 24 4c 61 6e 67 75 61 67 65 73 24 53 75 66 66 2e |$Languages$Suff.| 00004380 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 |. . . | 00004390 20 20 20 20 20 57 68 65 6e 20 72 75 6e 6e 69 6e | When runnin| 000043a0 67 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f |g the applicatio| 000043b0 6e 20 52 65 73 46 69 6e 64 20 6c 6f 6f 6b 73 20 |n ResFind looks | 000043c0 66 6f 72 20 74 68 65 20 66 69 72 73 74 20 6c 61 |for the first la| 000043d0 6e 67 75 61 67 65 20 0a 20 20 20 20 20 20 73 75 |nguage . su| 000043e0 70 70 6f 72 74 65 64 20 61 6c 6f 6e 67 20 74 68 |pported along th| 000043f0 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c 69 73 74 |e following list| 00004400 20 6f 66 20 6c 61 6e 67 75 61 67 65 73 3a 20 0a | of languages: .| 00004410 0c 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 |.. . | 00004420 31 2e 20 43 6f 6e 74 65 6e 74 73 20 6f 66 20 74 |1. Contents of t| 00004430 68 65 20 76 61 72 69 61 62 6c 65 20 3c 50 72 6f |he variable <Pro| 00004440 67 4e 61 6d 65 3e 24 4c 61 6e 67 75 61 67 65 0a |gName>$Language.| 00004450 20 20 20 20 20 20 20 32 2e 20 43 6f 6e 74 65 6e | 2. Conten| 00004460 74 73 20 6f 66 20 74 68 65 20 76 61 72 69 61 62 |ts of the variab| 00004470 6c 65 20 52 65 73 46 69 6e 64 24 4c 61 6e 67 75 |le ResFind$Langu| 00004480 61 67 65 73 50 72 65 66 0a 20 20 20 20 20 20 20 |agesPref. | 00004490 33 2e 20 54 68 65 20 63 6f 6e 66 69 67 75 72 65 |3. The configure| 000044a0 64 20 6c 61 6e 67 75 61 67 65 0a 20 20 20 20 20 |d language. | 000044b0 20 20 34 2e 20 43 6f 6e 74 65 6e 74 73 20 6f 66 | 4. Contents of| 000044c0 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 52 65 | the variable Re| 000044d0 73 46 69 6e 64 24 4c 61 6e 67 75 61 67 65 73 53 |sFind$LanguagesS| 000044e0 75 66 66 0a 20 20 20 20 20 20 20 35 2e 20 55 4b |uff. 5. UK| 000044f0 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 |. . . | 00004500 20 20 20 20 20 54 61 6b 65 20 61 20 4e 6f 72 77 | Take a Norw| 00004510 65 67 69 61 6e 20 75 73 65 72 20 66 6f 72 20 65 |egian user for e| 00004520 78 61 6d 70 6c 65 20 28 6c 6f 74 73 20 6f 66 20 |xample (lots of | 00004530 67 72 65 61 74 20 70 72 6f 67 72 61 6d 73 20 63 |great programs c| 00004540 6f 6d 65 20 0a 20 20 20 20 20 20 66 72 6f 6d 20 |ome . from | 00004550 74 68 65 72 65 29 20 77 68 6f 73 65 20 63 6f 6d |there) whose com| 00004560 70 75 74 65 72 20 69 73 20 63 6f 6e 66 69 67 75 |puter is configu| 00004570 72 65 64 20 74 6f 20 27 4e 6f 72 77 61 79 27 2e |red to 'Norway'.| 00004580 20 53 69 6e 63 65 20 74 68 69 73 20 0a 20 20 20 | Since this . | 00004590 20 20 20 6c 61 6e 67 75 61 67 65 20 69 73 6e 27 | language isn'| 000045a0 74 20 74 6f 6f 20 63 6f 6d 6d 6f 6e 20 69 6e 20 |t too common in | 000045b0 45 75 72 6f 70 65 20 6d 6f 73 74 20 70 72 6f 67 |Europe most prog| 000045c0 72 61 6d 73 20 77 6f 6e 27 74 20 73 75 70 70 6f |rams won't suppo| 000045d0 72 74 20 0a 20 20 20 20 20 20 69 74 20 2d 20 65 |rt . it - e| 000045e0 78 63 65 70 74 20 66 6f 72 20 4e 6f 72 77 65 67 |xcept for Norweg| 000045f0 69 61 6e 20 6f 6e 65 73 2e 20 42 75 74 20 6f 75 |ian ones. But ou| 00004600 72 20 75 73 65 72 20 69 73 20 70 72 65 74 74 79 |r user is pretty| 00004610 20 67 6f 6f 64 20 69 6e 20 0a 20 20 20 20 20 20 | good in . | 00004620 47 65 72 6d 61 6e 20 61 6e 64 20 46 72 65 6e 63 |German and Frenc| 00004630 68 20 62 75 74 20 6e 6f 74 20 74 6f 6f 20 66 6f |h but not too fo| 00004640 6e 64 20 6f 66 20 45 6e 67 6c 69 73 68 2e 20 54 |nd of English. T| 00004650 68 65 72 65 66 6f 72 65 20 68 65 20 0a 20 20 20 |herefore he . | 00004660 20 20 20 70 72 65 66 65 72 73 20 74 68 65 73 65 | prefers these| 00004670 20 6c 61 6e 67 75 61 67 65 73 20 74 6f 20 55 4b | languages to UK| 00004680 20 61 6e 64 20 77 6f 75 6c 64 20 74 68 75 73 20 | and would thus | 00004690 70 75 74 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e |put the followin| 000046a0 67 20 0a 20 20 20 20 20 20 6c 69 6e 65 20 69 6e |g . line in| 000046b0 20 68 69 73 20 73 79 73 74 65 6d 27 73 20 21 42 | his system's !B| 000046c0 6f 6f 74 20 66 69 6c 65 3a 20 0a 0a 20 20 20 20 |oot file: .. | 000046d0 20 20 0a 20 20 20 20 20 20 2a 53 65 74 20 52 65 | . *Set Re| 000046e0 73 46 69 6e 64 24 4c 61 6e 67 75 61 67 65 73 53 |sFind$LanguagesS| 000046f0 75 66 66 20 47 65 72 6d 61 6e 79 2c 46 72 61 6e |uff Germany,Fran| 00004700 63 65 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 |ce. . | 00004710 0a 20 20 20 20 20 20 52 75 6e 6e 69 6e 67 20 61 |. Running a| 00004720 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 28 |n applications (| 00004730 73 75 63 68 20 61 73 20 74 68 69 73 20 6f 6e 65 |such as this one| 00004740 29 20 75 73 69 6e 67 20 52 65 73 46 69 6e 64 20 |) using ResFind | 00004750 74 68 65 20 6c 69 73 74 20 0a 20 20 20 20 20 20 |the list . | 00004760 6f 66 20 6c 61 6e 67 75 61 67 65 73 20 6c 6f 6f |of languages loo| 00004770 6b 65 64 20 66 6f 72 20 69 73 20 27 4e 6f 72 77 |ked for is 'Norw| 00004780 61 79 2c 47 65 72 6d 61 6e 79 2c 46 72 61 6e 63 |ay,Germany,Franc| 00004790 65 2c 55 4b 27 2e 20 0a 0a 20 20 20 20 20 20 49 |e,UK'. .. I| 000047a0 6e 20 63 61 73 65 20 74 68 69 73 20 75 73 65 72 |n case this user| 000047b0 20 68 61 73 20 61 6e 20 61 70 70 6c 69 63 61 74 | has an applicat| 000047c0 69 6f 6e 20 63 61 6c 6c 65 64 20 21 50 65 74 65 |ion called !Pete| 000047d0 20 73 75 70 70 6f 72 74 69 6e 67 20 74 68 65 20 | supporting the | 000047e0 0a 20 20 20 20 20 20 6c 61 6e 67 75 61 67 65 20 |. language | 000047f0 27 48 75 6d 6f 72 6f 75 73 27 20 74 68 65 20 6c |'Humorous' the l| 00004800 69 6e 65 3a 20 0a 0a 20 20 20 20 20 20 0a 20 20 |ine: .. . | 00004810 20 20 20 20 2a 53 65 74 20 50 65 74 65 24 4c 61 | *Set Pete$La| 00004820 6e 67 75 61 67 65 20 48 75 6d 6f 72 0a 20 20 20 |nguage Humor. | 00004830 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 | . . | 00004840 20 69 6e 20 74 68 65 20 21 42 6f 6f 74 20 66 69 | in the !Boot fi| 00004850 6c 65 20 6d 61 6b 65 73 20 73 75 72 65 20 21 50 |le makes sure !P| 00004860 65 74 65 20 77 69 6c 6c 20 72 75 6e 20 68 75 6d |ete will run hum| 00004870 6f 72 6f 75 73 2e 20 0a 0a 20 20 20 20 20 20 41 |orous. .. A| 00004880 20 62 72 69 65 66 20 64 65 73 63 72 69 70 74 69 | brief descripti| 00004890 6f 6e 20 6f 66 20 74 68 65 20 76 61 72 69 6f 75 |on of the variou| 000048a0 73 20 72 65 73 6f 75 72 63 65 20 66 69 6c 65 73 |s resource files| 000048b0 20 66 6f 6c 6c 6f 77 73 2e 20 0a 0a 20 20 20 20 | follows. .. | 000048c0 20 20 34 2e 33 2e 31 20 54 65 6d 70 6c 61 74 65 | 4.3.1 Template| 000048d0 73 20 0a 0a 20 20 20 20 20 20 41 6c 6c 20 77 69 |s .. All wi| 000048e0 6e 64 6f 77 73 20 75 73 65 64 20 62 79 20 70 72 |ndows used by pr| 000048f0 6f 67 72 61 6d 73 20 62 61 73 65 64 20 6f 6e 20 |ograms based on | 00004900 74 68 65 20 73 68 65 6c 6c 20 6c 69 62 72 61 72 |the shell librar| 00004910 79 20 77 6f 75 6c 64 20 0a 20 20 20 20 20 20 6e |y would . n| 00004920 6f 72 6d 61 6c 6c 79 20 62 65 20 64 65 66 69 6e |ormally be defin| 00004930 65 64 20 75 73 69 6e 67 20 61 20 74 65 6d 70 6c |ed using a templ| 00004940 61 74 65 20 65 64 69 74 6f 72 20 61 73 20 74 68 |ate editor as th| 00004950 69 73 20 69 73 20 66 61 72 20 0a 20 20 20 20 20 |is is far . | 00004960 20 73 69 6d 70 6c 65 72 20 74 68 61 6e 20 63 72 | simpler than cr| 00004970 65 61 74 69 6e 67 20 74 68 65 20 77 69 6e 64 6f |eating the windo| 00004980 77 73 2f 69 63 6f 6e 73 20 69 6e 20 74 68 65 20 |ws/icons in the | 00004990 75 73 65 72 20 70 72 6f 67 72 61 6d 2e 20 54 68 |user program. Th| 000049a0 69 73 20 0a 20 20 20 20 20 20 69 73 20 6e 6f 74 |is . is not| 000049b0 20 61 73 20 69 6e 66 6c 65 78 69 62 6c 65 20 61 | as inflexible a| 000049c0 73 20 69 74 20 6d 61 79 20 73 6f 75 6e 64 20 61 |s it may sound a| 000049d0 73 20 77 69 6e 64 6f 77 73 20 61 6e 64 20 69 63 |s windows and ic| 000049e0 6f 6e 73 20 63 61 6e 20 62 65 20 0a 20 20 20 20 |ons can be . | 000049f0 20 20 72 65 73 69 7a 65 64 2c 20 6d 6f 76 65 64 | resized, moved| 00004a00 20 6f 72 20 6f 74 68 65 72 77 69 73 65 20 61 6c | or otherwise al| 00004a10 74 65 72 65 64 20 62 79 20 73 68 65 6c 6c 20 6c |tered by shell l| 00004a20 69 62 72 61 72 79 20 72 6f 75 74 69 6e 65 73 2e |ibrary routines.| 00004a30 20 0a 0a 20 20 20 20 20 20 54 68 65 20 74 65 6d | .. The tem| 00004a40 70 6c 61 74 65 20 66 69 6c 65 20 6d 75 73 74 20 |plate file must | 00004a50 62 65 20 63 61 6c 6c 65 64 20 27 54 65 6d 70 6c |be called 'Templ| 00004a60 61 74 65 73 27 20 61 6e 64 20 62 65 20 65 69 74 |ates' and be eit| 00004a70 68 65 72 20 69 6e 20 74 68 65 20 0a 20 20 20 20 |her in the . | 00004a80 20 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 64 69 | application di| 00004a90 72 65 63 74 6f 72 79 20 6f 72 20 69 6e 20 74 68 |rectory or in th| 00004aa0 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 6c 61 |e appropriate la| 00004ab0 6e 67 75 61 67 65 20 64 69 72 65 63 74 6f 72 79 |nguage directory| 00004ac0 20 69 66 20 0a 20 20 20 20 20 20 52 65 73 46 69 | if . ResFi| 00004ad0 6e 64 20 69 73 20 69 6e 20 75 73 65 2e 20 4e 6f |nd is in use. No| 00004ae0 74 65 20 74 68 61 74 20 69 66 20 79 6f 75 20 61 |te that if you a| 00004af0 72 65 20 75 73 69 6e 67 20 64 69 66 66 65 72 65 |re using differe| 00004b00 6e 74 20 74 65 6d 70 6c 61 74 65 73 20 0a 20 20 |nt templates . | 00004b10 20 20 20 20 66 6f 72 20 64 69 66 66 65 72 65 6e | for differen| 00004b20 74 20 6c 61 6e 67 75 61 67 65 73 20 79 6f 75 20 |t languages you | 00004b30 6d 75 73 74 20 75 73 65 20 52 65 73 46 69 6e 64 |must use ResFind| 00004b40 2e 20 49 6e 20 6d 6f 73 74 20 63 61 73 65 73 2c |. In most cases,| 00004b50 20 0a 20 20 20 20 20 20 68 6f 77 65 76 65 72 2c | . however,| 00004b60 20 69 74 20 69 73 20 73 75 66 66 69 63 69 65 6e | it is sufficien| 00004b70 74 20 74 6f 20 68 61 76 65 20 6f 6e 6c 79 20 6f |t to have only o| 00004b80 6e 65 20 74 65 6d 70 6c 61 74 65 20 66 69 6c 65 |ne template file| 00004b90 20 69 6e 20 74 68 65 20 0a 20 20 20 20 20 20 61 | in the . a| 00004ba0 70 70 6c 69 63 61 74 69 6f 6e 20 64 69 72 65 63 |pplication direc| 00004bb0 74 6f 72 79 20 61 6e 64 20 74 6f 20 69 6e 73 65 |tory and to inse| 00004bc0 72 74 20 74 68 65 20 74 65 78 74 20 74 61 6b 65 |rt the text take| 00004bd0 6e 20 66 72 6f 6d 20 74 68 65 20 0a 20 20 20 20 |n from the . | 00004be0 20 20 6d 65 73 73 61 67 65 20 66 69 6c 65 20 69 | message file i| 00004bf0 6e 20 74 68 65 20 6c 61 6e 67 75 61 67 65 20 6f |n the language o| 00004c00 66 20 63 68 6f 69 63 65 20 69 6e 74 6f 20 74 68 |f choice into th| 00004c10 65 20 69 63 6f 6e 73 2e 20 0a 0a 20 20 20 20 20 |e icons. .. | 00004c20 20 41 20 63 61 6c 6c 20 74 6f 20 50 52 4f 43 73 | A call to PROCs| 00004c30 68 65 6c 6c 5f 52 65 73 6f 75 72 63 65 73 49 6e |hell_ResourcesIn| 00004c40 69 74 20 77 69 6c 6c 20 66 69 6e 64 20 74 68 65 |it will find the| 00004c50 20 74 65 6d 70 6c 61 74 65 20 66 69 6c 65 20 61 | template file a| 00004c60 6e 64 20 0a 20 20 20 20 20 20 6c 6f 61 64 20 61 |nd . load a| 00004c70 6c 6c 20 74 68 65 20 74 65 6d 70 6c 61 74 65 73 |ll the templates| 00004c80 20 69 74 20 63 6f 6e 74 61 69 6e 73 20 61 6c 6c | it contains all| 00004c90 6f 63 61 74 69 6e 67 20 6d 65 6d 6f 72 79 20 61 |ocating memory a| 00004ca0 73 20 72 65 71 75 69 72 65 64 2e 20 0a 0a 20 20 |s required. .. | 00004cb0 20 20 20 20 34 2e 33 2e 32 20 53 70 72 69 74 65 | 4.3.2 Sprite| 00004cc0 73 20 0a 0a 20 20 20 20 20 20 54 68 65 20 73 70 |s .. The sp| 00004cd0 72 69 74 65 20 66 69 6c 65 20 6d 75 73 74 20 62 |rite file must b| 00004ce0 65 20 63 61 6c 6c 65 64 20 27 53 70 72 69 74 65 |e called 'Sprite| 00004cf0 73 27 20 61 6e 64 20 62 65 20 65 69 74 68 65 72 |s' and be either| 00004d00 20 69 6e 20 74 68 65 20 0a 20 20 20 20 20 20 61 | in the . a| 00004d10 70 70 6c 69 63 61 74 69 6f 6e 20 64 69 72 65 63 |pplication direc| 00004d20 74 6f 72 79 20 6f 72 20 69 6e 20 74 68 65 20 61 |tory or in the a| 00004d30 70 70 72 6f 70 72 69 61 74 65 20 6c 61 6e 67 75 |ppropriate langu| 00004d40 61 67 65 20 64 69 72 65 63 74 6f 72 79 20 69 66 |age directory if| 00004d50 20 0a 20 20 20 20 20 20 52 65 73 46 69 6e 64 20 | . ResFind | 00004d60 69 73 20 69 6e 20 75 73 65 2e 20 41 20 63 61 6c |is in use. A cal| 00004d70 6c 20 74 6f 20 50 52 4f 43 73 68 65 6c 6c 5f 52 |l to PROCshell_R| 00004d80 65 73 6f 75 72 63 65 73 49 6e 69 74 20 77 69 6c |esourcesInit wil| 00004d90 6c 20 66 69 6e 64 20 0a 20 20 20 20 20 20 74 68 |l find . th| 00004da0 65 20 66 69 6c 65 20 69 66 20 69 74 20 65 78 69 |e file if it exi| 00004db0 73 74 73 20 61 6e 64 20 6c 6f 61 64 20 61 6c 6c |sts and load all| 00004dc0 20 74 68 65 20 73 70 72 69 74 65 73 20 69 74 20 | the sprites it | 00004dd0 63 6f 6e 74 61 69 6e 73 20 0a 20 20 20 20 20 20 |contains . | 00004de0 61 6c 6c 6f 63 61 74 69 6e 67 20 6d 65 6d 6f 72 |allocating memor| 00004df0 79 20 61 73 20 72 65 71 75 69 72 65 64 2e 20 0a |y as required. .| 00004e00 0c 0a 20 20 20 20 20 20 4f 70 74 69 6f 6e 61 6c |.. Optional| 00004e10 6c 79 20 61 20 73 65 63 6f 6e 64 20 73 70 72 69 |ly a second spri| 00004e20 74 65 20 66 69 6c 65 20 63 61 6c 6c 65 64 20 27 |te file called '| 00004e30 53 70 72 69 74 65 73 32 32 27 20 63 6f 6e 74 61 |Sprites22' conta| 00004e40 69 6e 69 6e 67 20 0a 20 20 20 20 20 20 68 69 67 |ining . hig| 00004e50 68 20 72 65 73 6f 6c 75 74 69 6f 6e 20 73 70 72 |h resolution spr| 00004e60 69 74 65 73 20 66 6f 72 20 75 73 65 72 73 20 77 |ites for users w| 00004e70 69 74 68 20 6d 75 6c 74 69 73 79 6e 63 20 6d 6f |ith multisync mo| 00004e80 6e 69 74 6f 72 73 20 6d 61 79 20 62 65 20 0a 20 |nitors may be . | 00004e90 20 20 20 20 20 70 72 65 73 65 6e 74 2e 20 49 66 | present. If| 00004ea0 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e | the application| 00004eb0 20 69 73 20 73 74 61 72 74 65 64 20 69 6e 20 61 | is started in a| 00004ec0 20 68 69 67 68 20 72 65 73 6f 6c 75 74 69 6f 6e | high resolution| 00004ed0 20 0a 20 20 20 20 20 20 73 63 72 65 65 6e 20 6d | . screen m| 00004ee0 6f 64 65 20 61 6e 64 20 27 53 70 72 69 74 65 73 |ode and 'Sprites| 00004ef0 32 32 27 20 69 73 20 61 76 61 69 6c 61 62 6c 65 |22' is available| 00004f00 20 69 74 20 77 69 6c 6c 20 62 65 20 6c 6f 61 64 | it will be load| 00004f10 65 64 20 0a 20 20 20 20 20 20 69 6e 73 74 65 61 |ed . instea| 00004f20 64 20 6f 66 20 27 53 70 72 69 74 65 73 27 2e 20 |d of 'Sprites'. | 00004f30 0a 0a 20 20 20 20 20 20 54 68 65 20 73 70 72 69 |.. The spri| 00004f40 74 65 20 61 72 65 61 20 70 6f 69 6e 74 65 72 20 |te area pointer | 00004f50 66 6f 72 20 65 61 63 68 20 6c 6f 61 64 65 64 20 |for each loaded | 00004f60 74 65 6d 70 6c 61 74 65 20 77 69 6c 6c 20 62 65 |template will be| 00004f70 20 73 65 74 20 74 6f 20 0a 20 20 20 20 20 20 70 | set to . p| 00004f80 6f 69 6e 74 20 74 6f 20 74 68 65 20 75 73 65 72 |oint to the user| 00004f90 20 73 70 72 69 74 65 20 61 72 65 61 2c 20 77 68 | sprite area, wh| 00004fa0 69 63 68 20 70 75 74 20 73 69 6d 70 6c 79 20 74 |ich put simply t| 00004fb0 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 0a |his means that .| 00004fc0 20 20 20 20 20 20 61 6c 6c 20 73 70 72 69 74 65 | all sprite| 00004fd0 73 20 64 69 73 70 6c 61 79 65 64 20 69 6e 20 77 |s displayed in w| 00004fe0 69 6e 64 6f 77 73 20 6d 75 73 74 20 62 65 20 70 |indows must be p| 00004ff0 72 65 73 65 6e 74 20 69 6e 20 74 68 65 20 27 53 |resent in the 'S| 00005000 70 72 69 74 65 73 27 20 0a 20 20 20 20 20 20 61 |prites' . a| 00005010 6e 64 20 27 53 70 72 69 74 65 73 32 32 27 20 66 |nd 'Sprites22' f| 00005020 69 6c 65 73 2e 20 54 68 69 73 20 6d 61 79 2c 20 |iles. This may, | 00005030 68 6f 77 65 76 65 72 2c 20 62 65 20 63 68 61 6e |however, be chan| 00005040 67 65 64 20 61 66 74 65 72 20 0a 20 20 20 20 20 |ged after . | 00005050 20 6c 6f 61 64 69 6e 67 20 77 69 74 68 20 61 20 | loading with a | 00005060 63 61 6c 6c 20 74 6f 20 46 4e 73 68 65 6c 6c 5f |call to FNshell_| 00005070 57 69 6e 64 6f 77 53 65 74 53 70 72 69 74 65 41 |WindowSetSpriteA| 00005080 72 65 61 2e 20 0a 0a 20 20 20 20 20 20 34 2e 33 |rea. .. 4.3| 00005090 2e 33 20 4d 65 73 73 61 67 65 20 46 69 6c 65 73 |.3 Message Files| 000050a0 20 0a 0a 20 20 20 20 20 20 54 68 65 20 6d 65 73 | .. The mes| 000050b0 73 61 67 65 20 66 69 6c 65 20 69 73 20 61 20 6e |sage file is a n| 000050c0 6f 72 6d 61 6c 20 41 53 43 49 49 20 66 69 6c 65 |ormal ASCII file| 000050d0 20 77 72 69 74 74 65 6e 20 75 73 69 6e 67 20 21 | written using !| 000050e0 45 64 69 74 20 6f 72 20 0a 20 20 20 20 20 20 73 |Edit or . s| 000050f0 69 6d 69 6c 61 72 20 74 68 61 74 20 63 6f 6e 74 |imilar that cont| 00005100 61 69 6e 73 20 6d 65 73 73 61 67 65 20 73 74 72 |ains message str| 00005110 69 6e 67 73 20 70 72 65 63 65 65 64 65 64 20 62 |ings preceeded b| 00005120 79 20 61 20 6d 65 73 73 61 67 65 20 74 61 67 2e |y a message tag.| 00005130 20 0a 20 20 20 20 20 20 54 68 65 20 61 70 70 6c | . The appl| 00005140 69 63 61 74 69 6f 6e 20 70 72 6f 67 72 61 6d 20 |ication program | 00005150 73 68 6f 75 6c 64 20 66 69 6e 64 20 74 68 65 20 |should find the | 00005160 6d 65 73 73 61 67 65 73 20 61 73 20 72 65 71 75 |messages as requ| 00005170 69 72 65 64 20 62 79 20 0a 20 20 20 20 20 20 74 |ired by . t| 00005180 61 67 20 6e 61 6d 65 20 77 68 69 63 68 20 61 6c |ag name which al| 00005190 6c 6f 77 73 20 74 68 65 20 70 72 6f 64 75 63 74 |lows the product| 000051a0 69 6f 6e 20 6f 66 20 66 6f 72 65 69 67 6e 20 6c |ion of foreign l| 000051b0 61 6e 67 75 61 67 65 20 76 65 72 73 69 6f 6e 73 |anguage versions| 000051c0 20 0a 20 20 20 20 20 20 28 70 72 6f 62 61 62 6c | . (probabl| 000051d0 79 20 62 79 20 73 6f 6d 65 6f 6e 65 20 65 6c 73 |y by someone els| 000051e0 65 21 29 2e 20 49 74 20 69 73 20 61 6c 73 6f 20 |e!). It is also | 000051f0 66 61 72 20 65 61 73 69 65 72 20 74 6f 20 65 64 |far easier to ed| 00005200 69 74 20 74 68 65 20 0a 20 20 20 20 20 20 6d 65 |it the . me| 00005210 73 73 61 67 65 20 66 69 6c 65 20 74 6f 20 63 68 |ssage file to ch| 00005220 61 6e 67 65 20 74 65 78 74 20 64 69 73 70 6c 61 |ange text displa| 00005230 79 65 64 20 62 79 20 74 68 65 20 61 70 70 6c 69 |yed by the appli| 00005240 63 61 74 69 6f 6e 20 74 68 61 6e 20 0a 20 20 20 |cation than . | 00005250 20 20 20 75 73 69 6e 67 20 21 46 6f 72 6d 45 64 | using !FormEd| 00005260 20 6f 72 20 73 69 6d 69 6c 61 72 2e 20 0a 0a 20 | or similar. .. | 00005270 20 20 20 20 20 54 68 65 20 21 52 75 6e 20 66 69 | The !Run fi| 00005280 6c 65 20 6f 66 20 74 68 65 20 75 73 65 72 20 61 |le of the user a| 00005290 70 70 6c 69 63 61 74 69 6f 6e 20 61 75 74 6f 6d |pplication autom| 000052a0 61 74 69 63 61 6c 6c 79 20 6c 6f 61 64 73 20 61 |atically loads a| 000052b0 20 0a 20 20 20 20 20 20 73 75 70 70 6f 72 74 20 | . support | 000052c0 6d 6f 64 75 6c 65 20 27 4d 73 67 54 72 61 6e 73 |module 'MsgTrans| 000052d0 27 20 69 66 20 72 65 71 75 69 72 65 64 20 28 69 |' if required (i| 000052e0 74 20 69 73 20 62 75 69 6c 74 20 69 6e 20 74 6f |t is built in to| 000052f0 20 52 49 53 43 20 4f 53 20 0a 20 20 20 20 20 20 | RISC OS . | 00005300 33 29 20 74 6f 20 70 72 6f 76 69 64 65 20 74 68 |3) to provide th| 00005310 69 73 20 66 61 63 69 6c 69 74 79 2e 20 0a 0a 20 |is facility. .. | 00005320 20 20 20 20 20 54 68 65 20 6d 65 73 73 61 67 65 | The message| 00005330 20 66 69 6c 65 20 6d 75 73 74 20 62 65 20 63 61 | file must be ca| 00005340 6c 6c 65 64 20 27 4d 65 73 73 61 67 65 73 27 20 |lled 'Messages' | 00005350 61 6e 64 20 62 65 20 69 6e 20 74 68 65 20 0a 20 |and be in the . | 00005360 20 20 20 20 20 61 70 70 6c 69 63 61 74 69 6f 6e | application| 00005370 20 64 69 72 65 63 74 6f 72 79 20 6f 72 20 69 6e | directory or in| 00005380 20 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 | the appropriate| 00005390 20 6c 61 6e 67 75 61 67 65 20 64 69 72 65 63 74 | language direct| 000053a0 6f 72 79 20 69 66 20 0a 20 20 20 20 20 20 52 65 |ory if . Re| 000053b0 73 46 69 6e 64 20 69 73 20 69 6e 20 75 73 65 2e |sFind is in use.| 000053c0 20 41 20 63 61 6c 6c 20 74 6f 20 50 52 4f 43 73 | A call to PROCs| 000053d0 68 65 6c 6c 5f 52 65 73 6f 75 72 63 65 73 49 6e |hell_ResourcesIn| 000053e0 69 74 20 77 69 6c 6c 20 66 69 6e 64 20 0a 20 20 |it will find . | 000053f0 20 20 20 20 74 68 65 20 66 69 6c 65 20 69 66 20 | the file if | 00005400 69 74 20 65 78 69 73 74 73 20 61 6e 64 20 6c 6f |it exists and lo| 00005410 61 64 20 61 6c 6c 20 74 68 65 20 6d 65 73 73 61 |ad all the messa| 00005420 67 65 73 20 69 74 20 63 6f 6e 74 61 69 6e 73 20 |ges it contains | 00005430 0a 20 20 20 20 20 20 61 6c 6c 6f 63 61 74 69 6e |. allocatin| 00005440 67 20 6d 65 6d 6f 72 79 20 61 73 20 72 65 71 75 |g memory as requ| 00005450 69 72 65 64 2e 20 0a 0a 20 20 20 20 20 20 54 68 |ired. .. Th| 00005460 65 20 6d 65 73 73 61 67 65 73 20 69 73 73 75 65 |e messages issue| 00005470 64 20 62 79 20 74 68 65 20 6c 69 62 72 61 72 79 |d by the library| 00005480 20 63 6f 64 65 20 61 72 65 20 73 74 6f 72 65 64 | code are stored| 00005490 20 69 6e 20 61 20 66 69 6c 65 20 0a 20 20 20 20 | in a file . | 000054a0 20 20 63 61 6c 6c 65 64 20 27 53 68 65 6c 6c 4d | called 'ShellM| 000054b0 73 67 73 27 20 69 6e 73 69 64 65 20 74 68 65 20 |sgs' inside the | 000054c0 21 53 68 65 6c 6c 53 79 73 2e 52 65 73 6f 75 72 |!ShellSys.Resour| 000054d0 63 65 73 2e 55 4b 20 64 69 72 65 63 74 6f 72 79 |ces.UK directory| 000054e0 2e 20 0a 20 20 20 20 20 20 49 66 20 74 68 69 73 |. . If this| 000054f0 20 66 69 6c 65 20 69 73 20 70 72 65 73 65 6e 74 | file is present| 00005500 20 69 6e 20 74 68 65 20 75 73 65 72 20 61 70 70 | in the user app| 00005510 6c 69 63 61 74 69 6f 6e 20 64 69 72 65 63 74 6f |lication directo| 00005520 72 79 20 28 6f 72 20 74 68 65 20 0a 20 20 20 20 |ry (or the . | 00005530 20 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 52 65 | application Re| 00005540 73 6f 75 72 63 65 73 20 64 69 72 65 63 74 6f 72 |sources director| 00005550 79 29 20 74 68 65 6e 20 69 74 20 69 73 20 6c 6f |y) then it is lo| 00005560 61 64 65 64 20 66 72 6f 6d 20 74 68 65 72 65 2c |aded from there,| 00005570 20 69 66 20 0a 20 20 20 20 20 20 6e 6f 74 20 69 | if . not i| 00005580 74 20 69 73 20 6c 6f 61 64 65 64 20 66 72 6f 6d |t is loaded from| 00005590 20 21 53 68 65 6c 6c 53 79 73 2e 20 54 68 69 73 | !ShellSys. This| 000055a0 20 69 73 20 74 6f 20 61 69 64 20 74 68 65 20 63 | is to aid the c| 000055b0 6f 6e 73 74 72 75 63 74 69 6f 6e 20 0a 20 20 20 |onstruction . | 000055c0 20 20 20 6f 66 20 73 74 61 6e 64 20 61 6c 6f 6e | of stand alon| 000055d0 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 2e 20 |e applications. | 000055e0 0a 0a 20 20 20 20 20 20 34 2e 33 2e 34 20 4d 6f |.. 4.3.4 Mo| 000055f0 64 75 6c 65 73 20 0a 0a 20 20 20 20 20 20 56 61 |dules .. Va| 00005600 72 69 6f 75 73 20 50 75 62 6c 69 63 20 44 6f 6d |rious Public Dom| 00005610 61 69 6e 20 6d 6f 64 75 6c 65 73 20 61 72 65 20 |ain modules are | 00005620 75 73 65 64 20 62 79 20 74 68 65 20 45 76 6e 74 |used by the Evnt| 00005630 53 68 65 6c 6c 20 6c 69 62 72 61 72 79 2c 20 0a |Shell library, .| 00005640 20 20 20 20 20 20 74 68 65 73 65 20 61 72 65 20 | these are | 00005650 73 74 6f 72 65 64 20 69 6e 20 74 68 65 20 21 53 |stored in the !S| 00005660 68 65 6c 6c 53 79 73 20 61 70 70 6c 69 63 61 74 |hellSys applicat| 00005670 69 6f 6e 20 61 6e 64 20 6c 6f 61 64 65 64 20 61 |ion and loaded a| 00005680 73 20 0a 20 20 20 20 20 20 72 65 71 75 69 72 65 |s . require| 00005690 64 2e 20 41 20 66 75 6c 6c 20 6c 69 73 74 20 69 |d. A full list i| 000056a0 73 3a 20 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 |s: .. . | 000056b0 20 20 49 6e 74 65 72 66 61 63 65 20 20 20 2d 20 | Interface - | 000056c0 33 44 20 69 63 6f 6e 20 65 66 66 65 63 74 73 2c |3D icon effects,| 000056d0 20 63 68 61 6e 67 69 6e 67 20 70 6f 69 6e 74 65 | changing pointe| 000056e0 72 20 73 68 61 70 65 73 20 65 74 63 0a 20 20 20 |r shapes etc. | 000056f0 20 20 20 4d 65 6e 75 55 74 69 6c 73 20 20 20 2d | MenuUtils -| 00005700 20 6d 65 6e 75 20 68 61 6e 64 6c 69 6e 67 0a 20 | menu handling. | 00005710 20 20 20 20 20 46 6f 6e 74 4d 65 6e 75 20 20 20 | FontMenu | 00005720 20 2d 20 66 6f 6e 74 20 6d 65 6e 75 20 68 61 6e | - font menu han| 00005730 64 6c 69 6e 67 0a 20 20 20 20 20 20 4d 73 67 54 |dling. MsgT| 00005740 72 61 6e 73 20 20 20 20 2d 20 6d 65 73 73 61 67 |rans - messag| 00005750 65 20 66 69 6c 65 73 20 28 73 75 70 70 6c 69 65 |e files (supplie| 00005760 64 20 66 6f 72 20 52 69 73 63 2d 4f 53 20 32 0a |d for Risc-OS 2.| 00005770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00005780 20 20 20 20 63 6f 6d 70 61 74 61 62 69 6c 69 74 | compatabilit| 00005790 79 29 0a 20 20 20 20 20 20 46 6f 6e 74 57 69 6e |y). FontWin| 000057a0 64 6f 77 20 20 2d 20 68 61 6e 64 6c 69 6e 67 20 |dow - handling | 000057b0 6f 75 74 6c 69 6e 65 20 66 6f 6e 74 73 20 61 63 |outline fonts ac| 000057c0 72 6f 73 73 20 6d 6f 64 65 20 63 68 61 6e 67 65 |ross mode change| 000057d0 73 20 28 6e 6f 74 0a 20 20 20 20 20 20 20 20 20 |s (not. | 000057e0 20 20 20 20 20 20 20 20 20 20 20 75 73 65 64 20 | used | 000057f0 61 74 20 74 68 65 20 6d 6f 6d 65 6e 74 29 0a 20 |at the moment). | 00005800 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 | . . | 00005810 20 20 20 4e 6f 74 65 20 74 68 61 74 20 69 6e 20 | Note that in | 00005820 67 65 6e 65 72 61 6c 20 6e 6f 20 64 6f 63 75 6d |general no docum| 00005830 65 6e 74 61 74 69 6f 6e 20 69 73 20 73 75 70 70 |entation is supp| 00005840 6c 69 65 64 20 66 6f 72 20 74 68 65 73 65 20 0a |lied for these .| 00005850 20 20 20 20 20 20 6d 6f 64 75 6c 65 73 2c 20 69 | modules, i| 00005860 74 20 69 73 20 61 6c 6c 20 61 76 61 69 6c 61 62 |t is all availab| 00005870 6c 65 20 65 6c 73 65 77 68 65 72 65 20 28 6f 72 |le elsewhere (or| 00005880 20 77 68 79 20 6e 6f 74 20 77 72 69 74 65 20 74 | why not write t| 00005890 6f 20 74 68 65 20 0a 20 20 20 20 20 20 61 75 74 |o the . aut| 000058a0 68 6f 72 3f 29 20 0a 0c 0a 20 20 20 20 20 20 54 |hor?) ... T| 000058b0 68 65 20 45 76 6e 74 53 68 65 6c 6c 20 6c 69 62 |he EvntShell lib| 000058c0 72 61 72 79 20 6d 61 6b 65 73 20 74 68 65 20 61 |rary makes the a| 000058d0 73 73 75 6d 70 74 69 6f 6e 20 74 68 61 74 20 74 |ssumption that t| 000058e0 68 65 20 69 6e 74 65 72 66 61 63 65 20 0a 20 20 |he interface . | 000058f0 20 20 20 20 6d 6f 64 75 6c 65 20 77 69 6c 6c 20 | module will | 00005900 61 6c 77 61 79 73 20 62 65 20 75 73 65 64 2e 20 |always be used. | 00005910 54 68 65 20 72 65 61 73 6f 6e 20 69 73 20 74 68 |The reason is th| 00005920 61 74 20 66 69 72 73 74 6c 79 20 74 68 61 74 20 |at firstly that | 00005930 69 74 20 69 73 20 0a 20 20 20 20 20 20 68 69 67 |it is . hig| 00005940 68 6c 79 20 6c 69 6b 65 6c 79 20 74 68 61 74 20 |hly likely that | 00005950 73 6f 6d 65 20 6f 74 68 65 72 20 50 44 20 70 72 |some other PD pr| 00005960 6f 67 72 61 6d 20 77 69 6c 6c 20 68 61 76 65 20 |ogram will have | 00005970 61 6c 72 65 61 64 79 20 6c 6f 61 64 65 64 20 0a |already loaded .| 00005980 20 20 20 20 20 20 69 74 2c 20 61 6e 64 20 73 65 | it, and se| 00005990 63 6f 6e 64 6c 79 20 74 68 61 74 20 74 68 65 20 |condly that the | 000059a0 66 61 63 69 6c 69 74 69 65 73 20 69 74 20 70 72 |facilities it pr| 000059b0 6f 76 69 64 65 73 20 66 6f 72 20 63 68 61 6e 67 |ovides for chang| 000059c0 69 6e 67 20 0a 20 20 20 20 20 20 70 6f 69 6e 74 |ing . point| 000059d0 65 72 20 73 68 61 70 65 73 20 6f 76 65 72 20 63 |er shapes over c| 000059e0 65 72 74 61 69 6e 20 69 63 6f 6e 73 20 69 73 20 |ertain icons is | 000059f0 65 78 74 72 65 6d 65 6c 79 20 75 73 65 66 75 6c |extremely useful| 00005a00 20 61 73 20 61 20 70 72 6f 6d 70 74 20 0a 20 20 | as a prompt . | 00005a10 20 20 20 20 66 6f 72 20 77 68 61 74 20 74 68 65 | for what the| 00005a20 20 69 63 6f 6e 20 69 73 20 66 6f 72 2e 20 49 6e | icon is for. In| 00005a30 64 65 65 64 20 52 49 53 43 2d 4f 53 20 33 20 68 |deed RISC-OS 3 h| 00005a40 61 73 20 74 68 69 73 20 62 75 69 6c 74 20 69 6e |as this built in| 00005a50 20 73 6f 20 0a 20 20 20 20 20 20 65 76 65 6e 20 | so . even | 00005a60 41 63 6f 72 6e 20 61 72 65 20 73 75 70 70 6f 72 |Acorn are suppor| 00005a70 74 69 6e 67 20 33 44 20 62 75 74 74 6f 6e 73 20 |ting 3D buttons | 00005a80 65 74 63 2e 2e 2e 2e 20 0a 0a 20 20 20 20 20 20 |etc.... .. | 00005a90 54 68 65 20 6d 6f 64 75 6c 65 20 69 73 20 6c 6f |The module is lo| 00005aa0 61 64 65 64 20 62 79 20 74 68 65 20 21 52 75 6e |aded by the !Run| 00005ab0 20 66 69 6c 65 20 69 66 20 6e 6f 74 20 61 6c 72 | file if not alr| 00005ac0 65 61 64 79 20 6c 6f 61 64 65 64 2e 20 0a 20 20 |eady loaded. . | 00005ad0 20 20 20 20 55 73 69 6e 67 20 61 20 74 65 6d 70 | Using a temp| 00005ae0 6c 61 74 65 20 65 64 69 74 6f 72 20 74 68 61 74 |late editor that| 00005af0 20 69 73 20 27 49 6e 74 65 72 66 61 63 65 20 41 | is 'Interface A| 00005b00 77 61 72 65 27 20 6d 61 6b 65 73 20 0a 20 20 20 |ware' makes . | 00005b10 20 20 20 69 6e 63 6f 72 70 6f 72 61 74 69 6e 67 | incorporating| 00005b20 20 74 68 65 73 65 20 65 66 66 65 63 74 73 20 69 | these effects i| 00005b30 6e 74 6f 20 61 20 75 73 65 72 20 70 72 6f 67 72 |nto a user progr| 00005b40 61 6d 20 65 61 73 79 20 61 73 20 6f 6e 63 65 20 |am easy as once | 00005b50 74 68 65 20 0a 20 20 20 20 20 20 69 63 6f 6e 73 |the . icons| 00005b60 20 68 61 76 65 20 62 65 65 6e 20 64 65 73 69 67 | have been desig| 00005b70 6e 65 64 20 61 6e 64 20 70 6c 61 63 65 64 20 74 |ned and placed t| 00005b80 68 65 20 73 68 65 6c 6c 20 6c 69 62 72 61 72 79 |he shell library| 00005b90 20 68 61 6e 64 6c 65 73 20 61 6c 6c 20 0a 20 20 | handles all . | 00005ba0 20 20 20 20 74 68 65 20 72 65 64 72 61 77 69 6e | the redrawin| 00005bb0 67 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2e |g automatically.| 00005bc0 20 0a 0a 20 20 20 20 20 20 4e 6f 74 65 20 74 68 | .. Note th| 00005bd0 61 74 20 77 69 6e 64 6f 77 73 20 63 6f 6e 74 61 |at windows conta| 00005be0 69 6e 69 6e 67 20 33 64 20 69 6e 74 65 72 66 61 |ining 3d interfa| 00005bf0 63 65 20 69 63 6f 6e 73 20 6d 75 73 74 20 68 61 |ce icons must ha| 00005c00 76 65 20 74 68 65 20 0a 20 20 20 20 20 20 27 41 |ve the . 'A| 00005c10 75 74 6f 20 52 65 64 72 61 77 27 20 66 6c 61 67 |uto Redraw' flag| 00005c20 20 6f 66 66 2c 20 62 75 74 20 69 66 20 74 68 65 | off, but if the| 00005c30 20 74 65 6d 70 6c 61 74 65 20 65 64 69 74 6f 72 | template editor| 00005c40 20 64 69 73 70 6c 61 79 73 20 0a 20 20 20 20 20 | displays . | 00005c50 20 69 6e 74 65 72 66 61 63 65 20 69 63 6f 6e 73 | interface icons| 00005c60 20 74 68 65 6e 20 74 68 65 20 75 73 65 72 20 61 | then the user a| 00005c70 70 70 6c 69 63 61 74 69 6f 6e 20 77 69 6c 6c 20 |pplication will | 00005c80 61 73 20 77 65 6c 6c 2e 20 0a 0a 20 20 20 20 20 |as well. .. | 00005c90 20 34 2e 34 20 4d 65 6e 75 73 20 0a 0a 20 20 20 | 4.4 Menus .. | 00005ca0 20 20 20 4d 65 6e 75 73 20 61 72 65 20 6e 6f 77 | Menus are now| 00005cb0 20 68 61 6e 64 6c 65 64 20 62 79 20 4d 65 6e 75 | handled by Menu| 00005cc0 55 74 69 6c 73 20 77 68 69 63 68 20 77 61 73 20 |Utils which was | 00005cd0 77 72 69 74 74 65 6e 20 62 79 20 41 6c 65 78 20 |written by Alex | 00005ce0 0a 20 20 20 20 20 20 50 65 74 72 6f 76 2e 20 56 |. Petrov. V| 00005cf0 65 72 73 69 6f 6e 73 20 6f 66 20 74 68 65 20 6c |ersions of the l| 00005d00 69 62 72 61 72 79 20 70 72 69 6f 72 20 74 6f 20 |ibrary prior to | 00005d10 31 2e 32 30 20 75 73 65 64 20 61 20 6d 65 6e 75 |1.20 used a menu| 00005d20 20 65 64 69 74 6f 72 20 0a 20 20 20 20 20 20 74 | editor . t| 00005d30 6f 20 63 72 65 61 74 65 20 61 20 73 65 70 65 72 |o create a seper| 00005d40 61 74 65 20 6d 65 6e 75 20 74 65 6d 70 6c 61 74 |ate menu templat| 00005d50 65 20 66 69 6c 65 2c 20 62 75 74 20 49 20 68 61 |e file, but I ha| 00005d60 76 65 20 6e 6f 77 20 61 62 61 6e 64 6f 6e 65 64 |ve now abandoned| 00005d70 20 0a 20 20 20 20 20 20 74 68 69 73 20 61 73 20 | . this as | 00005d80 69 74 20 77 61 73 20 72 61 74 68 65 72 20 69 6e |it was rather in| 00005d90 66 6c 65 78 69 62 6c 65 2e 20 0a 0a 20 20 20 20 |flexible. .. | 00005da0 20 20 54 68 65 20 75 73 65 20 6f 66 20 4d 65 6e | The use of Men| 00005db0 75 55 74 69 6c 73 20 68 61 73 20 65 6e 61 62 6c |uUtils has enabl| 00005dc0 65 64 20 6d 65 20 74 6f 20 72 65 6d 6f 76 65 20 |ed me to remove | 00005dd0 6c 61 72 67 65 20 63 68 75 6e 6b 73 20 6f 66 20 |large chunks of | 00005de0 0a 20 20 20 20 20 20 73 6c 6f 77 20 42 41 53 49 |. slow BASI| 00005df0 43 20 63 6f 64 65 20 61 6e 64 20 74 6f 20 70 72 |C code and to pr| 00005e00 6f 76 69 64 65 20 6d 61 6e 79 20 6d 6f 72 65 20 |ovide many more | 00005e10 66 65 61 74 75 72 65 73 2c 20 73 75 63 68 20 61 |features, such a| 00005e20 73 20 0a 20 20 20 20 20 20 63 72 65 61 74 69 6f |s . creatio| 00005e30 6e 20 61 6e 64 20 6d 6f 64 69 66 69 63 61 74 69 |n and modificati| 00005e40 6f 6e 20 6f 66 20 6d 65 6e 75 73 20 75 6e 64 65 |on of menus unde| 00005e50 72 20 70 72 6f 67 72 61 6d 20 63 6f 6e 74 72 6f |r program contro| 00005e60 6c 2e 20 54 68 65 20 0a 20 20 20 20 20 20 6d 65 |l. The . me| 00005e70 6e 75 73 20 74 68 65 6d 73 65 6c 76 65 73 20 61 |nus themselves a| 00005e80 70 70 65 61 72 20 6d 6f 72 65 20 71 75 69 63 6b |ppear more quick| 00005e90 6c 79 20 61 73 20 77 65 6c 6c 20 28 4f 4b 20 43 |ly as well (OK C| 00005ea0 79 3f 29 2e 20 0a 0a 20 20 20 20 20 20 4d 65 6e |y?). .. Men| 00005eb0 75 73 20 6d 61 79 20 62 65 20 63 72 65 61 74 65 |us may be create| 00005ec0 64 20 62 79 20 63 61 6c 6c 69 6e 67 20 66 75 6e |d by calling fun| 00005ed0 63 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 75 73 |ctions in the us| 00005ee0 65 72 20 0a 20 20 20 20 20 20 61 70 70 6c 69 63 |er . applic| 00005ef0 61 74 69 6f 6e 2c 20 6f 72 20 66 72 6f 6d 20 61 |ation, or from a| 00005f00 20 6d 65 6e 75 20 63 6f 6d 6d 61 6e 64 20 66 69 | menu command fi| 00005f10 6c 65 2e 20 54 68 65 20 66 69 6c 65 20 6f 70 74 |le. The file opt| 00005f20 69 6f 6e 20 69 73 20 0a 20 20 20 20 20 20 65 73 |ion is . es| 00005f30 70 65 63 69 61 6c 6c 79 20 75 73 65 66 75 6c 20 |pecially useful | 00005f40 66 6f 72 20 6c 69 73 74 73 20 6f 66 20 69 74 65 |for lists of ite| 00005f50 6d 73 20 74 68 61 74 20 63 61 6e 20 62 65 20 65 |ms that can be e| 00005f60 64 69 74 65 64 20 62 79 20 74 68 65 20 0a 20 20 |dited by the . | 00005f70 20 20 20 20 75 73 65 72 20 2d 20 66 6f 72 20 65 | user - for e| 00005f80 78 61 6d 70 6c 65 20 74 68 65 20 6e 65 77 20 76 |xample the new v| 00005f90 65 72 73 69 6f 6e 20 6f 66 20 21 56 69 64 65 6f |ersion of !Video| 00005fa0 42 61 73 65 20 75 73 65 73 20 6d 65 6e 75 20 0a |Base uses menu .| 00005fb0 20 20 20 20 20 20 63 6f 6d 6d 61 6e 64 20 66 69 | command fi| 00005fc0 6c 65 73 20 66 6f 72 20 6c 69 73 74 73 20 6f 66 |les for lists of| 00005fd0 20 63 6f 6d 6d 6f 6e 6c 79 20 75 73 65 64 20 63 | commonly used c| 00005fe0 61 74 65 67 6f 72 69 65 73 20 6f 66 20 72 65 63 |ategories of rec| 00005ff0 6f 72 64 69 6e 67 73 20 0a 20 20 20 20 20 20 28 |ordings . (| 00006000 44 6f 63 75 6d 65 6e 74 61 72 79 2c 20 41 63 74 |Documentary, Act| 00006010 69 6f 6e 20 46 69 6c 6d 20 65 74 63 29 20 61 20 |ion Film etc) a | 00006020 6d 65 6e 75 20 6f 66 20 77 68 69 63 68 20 63 61 |menu of which ca| 00006030 6e 20 62 65 20 61 74 74 61 63 68 65 64 20 74 6f |n be attached to| 00006040 20 0a 20 20 20 20 20 20 61 6e 20 69 63 6f 6e 20 | . an icon | 00006050 66 6f 72 20 65 61 73 79 20 61 63 63 65 73 73 2e |for easy access.| 00006060 20 41 73 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 | As the command | 00006070 66 69 6c 65 20 69 73 20 61 20 73 69 6d 70 6c 65 |file is a simple| 00006080 20 74 65 78 74 20 0a 20 20 20 20 20 20 66 69 6c | text . fil| 00006090 65 20 69 74 20 69 73 20 76 65 72 79 20 65 61 73 |e it is very eas| 000060a0 79 20 74 6f 20 65 64 69 74 20 74 6f 20 6d 65 65 |y to edit to mee| 000060b0 74 20 73 70 65 63 69 61 6c 20 72 65 71 75 69 72 |t special requir| 000060c0 65 6d 65 6e 74 73 2e 20 0a 0a 20 20 20 20 20 20 |ements. .. | 000060d0 41 20 64 65 6d 6f 6e 73 74 72 61 74 69 6f 6e 20 |A demonstration | 000060e0 61 70 70 6c 69 63 61 74 69 6f 6e 20 21 54 65 73 |application !Tes| 000060f0 74 4d 65 6e 75 20 73 68 6f 75 6c 64 20 68 61 76 |tMenu should hav| 00006100 65 20 62 65 65 6e 20 73 75 70 70 6c 69 65 64 20 |e been supplied | 00006110 0a 20 20 20 20 20 20 77 69 74 68 20 74 68 65 20 |. with the | 00006120 6c 69 62 72 61 72 79 20 63 6f 64 65 20 73 6f 20 |library code so | 00006130 74 68 61 74 20 79 6f 75 20 63 61 6e 20 74 72 79 |that you can try| 00006140 20 6f 75 74 20 73 6f 6d 65 20 6f 66 20 74 68 65 | out some of the| 00006150 20 0a 20 20 20 20 20 20 70 6f 73 73 69 62 69 6c | . possibil| 00006160 69 74 69 65 73 20 79 6f 75 72 73 65 6c 66 2e 20 |ities yourself. | 00006170 0a 0a 20 20 20 20 20 20 54 68 65 20 61 70 70 65 |.. The appe| 00006180 61 72 61 6e 63 65 20 6f 66 20 74 68 65 20 52 49 |arance of the RI| 00006190 53 43 20 4f 53 20 33 20 53 74 79 6c 65 20 47 75 |SC OS 3 Style Gu| 000061a0 69 64 65 20 68 61 73 20 63 61 75 73 65 64 20 61 |ide has caused a| 000061b0 20 66 65 77 20 0a 20 20 20 20 20 20 63 68 61 6e | few . chan| 000061c0 67 65 73 20 69 6e 20 74 68 65 20 77 61 79 20 74 |ges in the way t| 000061d0 68 61 74 20 45 76 6e 74 53 68 65 6c 6c 20 68 61 |hat EvntShell ha| 000061e0 6e 64 6c 65 73 20 27 70 6f 70 75 70 27 20 6d 65 |ndles 'popup' me| 000061f0 6e 75 73 20 28 6d 65 6e 75 73 20 0a 20 20 20 20 |nus (menus . | 00006200 20 20 61 74 74 61 63 68 65 64 20 74 6f 20 69 63 | attached to ic| 00006210 6f 6e 73 20 69 6e 20 77 69 6e 64 6f 77 73 20 6f |ons in windows o| 00006220 74 68 65 72 20 74 68 61 6e 20 74 68 65 20 69 63 |ther than the ic| 00006230 6f 6e 62 61 72 29 2e 20 46 69 72 73 74 6c 79 20 |onbar). Firstly | 00006240 0a 20 20 20 20 20 20 74 68 65 79 20 61 70 70 65 |. they appe| 00006250 61 72 20 74 6f 20 74 68 65 20 72 69 67 68 74 20 |ar to the right | 00006260 6f 66 20 74 68 65 20 69 63 6f 6e 20 74 68 65 79 |of the icon they| 00006270 20 61 72 65 20 61 74 74 61 63 68 65 64 20 74 6f | are attached to| 00006280 2c 20 74 68 65 20 0a 20 20 20 20 20 20 6d 6f 75 |, the . mou| 00006290 73 65 20 70 6f 69 6e 74 65 72 20 61 6c 73 6f 20 |se pointer also | 000062a0 6d 6f 76 69 6e 67 20 74 6f 20 74 68 65 20 72 65 |moving to the re| 000062b0 63 6f 6d 6d 65 6e 64 65 64 20 70 6f 73 69 74 69 |commended positi| 000062c0 6f 6e 2c 20 61 6e 64 20 0a 20 20 20 20 20 20 73 |on, and . s| 000062d0 65 63 6f 6e 64 6c 79 20 6f 6e 6c 79 20 53 45 4c |econdly only SEL| 000062e0 45 43 54 20 61 6e 64 20 4d 45 4e 55 20 77 69 6c |ECT and MENU wil| 000062f0 6c 20 63 61 6c 6c 20 75 70 20 61 20 70 6f 70 75 |l call up a popu| 00006300 70 20 6d 65 6e 75 2e 20 0a 0a 20 20 20 20 20 20 |p menu. .. | 00006310 4e 6f 74 65 20 74 68 61 74 20 6d 65 6e 75 73 20 |Note that menus | 00006320 63 61 6e 20 6f 6e 6c 79 20 62 65 20 61 74 74 61 |can only be atta| 00006330 63 68 65 64 20 74 6f 20 69 63 6f 6e 73 20 69 6e |ched to icons in| 00006340 20 73 74 61 74 69 63 20 77 69 6e 64 6f 77 73 2c | static windows,| 00006350 20 0a 20 20 20 20 20 20 62 65 63 61 75 73 65 20 | . because | 00006360 61 73 20 66 61 72 20 61 73 20 52 49 53 43 20 4f |as far as RISC O| 00006370 53 20 69 73 20 63 6f 6e 63 65 72 6e 65 64 20 61 |S is concerned a| 00006380 20 64 79 6e 61 6d 69 63 20 77 69 6e 64 6f 77 20 | dynamic window | 00006390 69 73 20 61 20 0a 20 20 20 20 20 20 6d 65 6e 75 |is a . menu| 000063a0 2e 20 0a 0a 20 20 20 20 20 20 54 68 65 20 73 75 |. .. The su| 000063b0 70 70 6f 72 74 20 6d 6f 64 75 6c 65 20 69 73 20 |pport module is | 000063c0 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 6c 6f |automatically lo| 000063d0 61 64 65 64 20 62 79 20 74 68 65 20 21 52 75 6e |aded by the !Run| 000063e0 20 66 69 6c 65 20 74 6f 20 0a 20 20 20 20 20 20 | file to . | 000063f0 70 72 6f 76 69 64 65 20 74 68 65 20 6e 65 77 20 |provide the new | 00006400 6d 65 6e 75 20 68 61 6e 64 6c 69 6e 67 20 53 57 |menu handling SW| 00006410 49 73 20 75 73 65 64 20 62 79 20 74 68 65 20 45 |Is used by the E| 00006420 76 6e 74 53 68 65 6c 6c 20 6c 69 62 72 61 72 79 |vntShell library| 00006430 2e 20 0a 0a 20 20 20 20 20 20 34 2e 35 20 53 61 |. .. 4.5 Sa| 00006440 76 69 6e 67 20 46 69 6c 65 73 20 0a 0c 0a 20 20 |ving Files ... | 00006450 20 20 20 20 54 68 69 73 20 69 73 20 61 63 68 69 | This is achi| 00006460 65 76 65 64 20 62 79 20 61 20 63 61 6c 6c 20 74 |eved by a call t| 00006470 6f 20 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 |o PROCshell_Atta| 00006480 63 68 44 61 74 61 53 61 76 65 20 77 68 69 63 68 |chDataSave which| 00006490 20 0a 20 20 20 20 20 20 73 70 65 63 69 66 69 65 | . specifie| 000064a0 73 20 77 68 69 63 68 20 66 69 6c 65 74 79 70 65 |s which filetype| 000064b0 20 74 68 65 20 73 61 76 65 64 20 66 69 6c 65 20 | the saved file | 000064c0 73 68 6f 75 6c 64 20 62 65 20 67 69 76 65 6e 2c |should be given,| 000064d0 20 74 68 65 20 6e 61 6d 65 20 0a 20 20 20 20 20 | the name . | 000064e0 20 6f 66 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 | of a function w| 000064f0 68 69 63 68 20 77 69 6c 6c 20 61 63 74 75 61 6c |hich will actual| 00006500 6c 79 20 70 65 72 66 6f 72 6d 20 74 68 65 20 73 |ly perform the s| 00006510 61 76 65 20 61 6e 64 20 74 68 65 20 0a 20 20 20 |ave and the . | 00006520 20 20 20 77 69 6e 64 6f 77 2f 69 63 6f 6e 20 68 | window/icon h| 00006530 61 6e 64 6c 65 73 20 74 68 65 20 64 72 61 67 20 |andles the drag | 00006540 73 61 76 65 20 65 76 65 6e 74 20 69 73 20 61 73 |save event is as| 00006550 73 6f 63 69 61 74 65 64 20 77 69 74 68 2e 20 49 |sociated with. I| 00006560 74 20 69 73 20 0a 20 20 20 20 20 20 74 68 65 72 |t is . ther| 00006570 65 66 6f 72 65 20 70 6f 73 73 69 62 6c 65 20 74 |efore possible t| 00006580 6f 20 68 61 76 65 20 64 69 66 66 65 72 65 6e 74 |o have different| 00006590 20 64 72 61 67 20 73 61 76 65 20 65 76 65 6e 74 | drag save event| 000065a0 73 20 61 74 74 61 63 68 65 64 20 74 6f 20 0a 20 |s attached to . | 000065b0 20 20 20 20 20 64 69 66 66 65 72 65 6e 74 20 69 | different i| 000065c0 63 6f 6e 73 20 69 6e 20 74 68 65 20 73 61 6d 65 |cons in the same| 000065d0 20 77 69 6e 64 6f 77 2e 20 54 68 69 73 20 69 73 | window. This is| 000065e0 20 75 73 65 66 75 6c 20 77 68 65 72 65 20 69 74 | useful where it| 000065f0 20 69 73 20 0a 20 20 20 20 20 20 70 6f 73 73 69 | is . possi| 00006600 62 6c 65 20 74 6f 20 73 61 76 65 20 74 68 65 20 |ble to save the | 00006610 66 69 6c 65 20 61 73 20 6d 6f 72 65 20 74 68 61 |file as more tha| 00006620 6e 20 6f 6e 65 20 74 79 70 65 20 2d 20 79 6f 75 |n one type - you| 00006630 20 63 61 6e 20 68 61 76 65 20 0a 20 20 20 20 20 | can have . | 00006640 20 6d 75 6c 74 69 70 6c 65 20 66 69 6c 65 74 79 | multiple filety| 00006650 70 65 20 69 63 6f 6e 73 20 69 6e 20 74 68 65 20 |pe icons in the | 00006660 73 61 76 65 20 77 69 6e 64 6f 77 2e 20 0a 0a 20 |save window. .. | 00006670 20 20 20 20 20 50 52 4f 43 73 68 65 6c 6c 5f 41 | PROCshell_A| 00006680 74 74 61 63 68 44 61 74 61 53 61 76 65 20 61 6c |ttachDataSave al| 00006690 73 6f 20 70 65 72 66 6f 72 6d 73 20 73 6f 6d 65 |so performs some| 000066a0 20 63 68 65 63 6b 69 6e 67 20 77 68 65 6e 20 69 | checking when i| 000066b0 74 20 69 73 20 0a 20 20 20 20 20 20 63 61 6c 6c |t is . call| 000066c0 65 64 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 20 |ed. For example | 000066d0 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 |an error message| 000066e0 20 69 73 20 67 65 6e 65 72 61 74 65 64 20 69 66 | is generated if| 000066f0 20 74 68 65 20 66 69 6c 65 20 0a 20 20 20 20 20 | the file . | 00006700 20 69 63 6f 6e 20 69 73 20 6e 6f 74 20 61 20 73 | icon is not a s| 00006710 70 72 69 74 65 20 69 63 6f 6e 2e 20 54 68 65 20 |prite icon. The | 00006720 62 75 74 74 6f 6e 20 74 79 70 65 20 6f 66 20 74 |button type of t| 00006730 68 65 20 66 69 6c 65 20 69 63 6f 6e 20 69 73 20 |he file icon is | 00006740 0a 20 20 20 20 20 20 61 6c 73 6f 20 63 68 61 6e |. also chan| 00006750 67 65 64 20 74 6f 20 43 6c 69 63 6b 2f 44 72 61 |ged to Click/Dra| 00006760 67 20 74 6f 20 61 76 6f 69 64 20 74 68 65 20 6e |g to avoid the n| 00006770 65 65 64 20 74 6f 20 67 65 74 20 74 68 69 73 20 |eed to get this | 00006780 63 6f 72 72 65 63 74 20 0a 20 20 20 20 20 20 77 |correct . w| 00006790 68 65 6e 20 65 64 69 74 69 6e 67 20 74 68 65 20 |hen editing the | 000067a0 74 65 6d 70 6c 61 74 65 20 66 69 6c 65 2e 20 0a |template file. .| 000067b0 0a 20 20 20 20 20 20 54 68 65 20 45 76 6e 74 53 |. The EvntS| 000067c0 68 65 6c 6c 20 6c 69 62 72 61 72 79 20 73 75 70 |hell library sup| 000067d0 70 6f 72 74 73 20 52 41 4d 20 66 69 6c 65 20 74 |ports RAM file t| 000067e0 72 61 6e 73 66 65 72 20 66 6f 72 20 73 70 65 65 |ransfer for spee| 000067f0 64 20 77 68 65 6e 20 0a 20 20 20 20 20 20 73 61 |d when . sa| 00006800 76 69 6e 67 20 64 61 74 61 20 74 6f 20 63 6f 6e |ving data to con| 00006810 73 65 6e 74 69 6e 67 20 61 70 70 6c 69 63 61 74 |senting applicat| 00006820 69 6f 6e 73 2e 20 0a 0a 20 20 20 20 20 20 53 65 |ions. .. Se| 00006830 65 20 74 68 65 20 21 57 69 6e 53 61 76 65 32 20 |e the !WinSave2 | 00006840 61 6e 64 20 21 56 42 61 73 65 32 20 65 78 61 6d |and !VBase2 exam| 00006850 70 6c 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 |ple applications| 00006860 20 66 6f 72 20 68 6f 77 20 74 6f 20 75 73 65 20 | for how to use | 00006870 0a 20 20 20 20 20 20 74 68 69 73 20 72 6f 75 74 |. this rout| 00006880 69 6e 65 2e 20 0a 0a 20 20 20 20 20 20 34 2e 36 |ine. .. 4.6| 00006890 20 4c 6f 61 64 69 6e 67 20 46 69 6c 65 73 20 0a | Loading Files .| 000068a0 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 61 |. This is a| 000068b0 63 68 69 65 76 65 64 20 62 79 20 61 20 63 61 6c |chieved by a cal| 000068c0 6c 20 74 6f 20 50 52 4f 43 73 68 65 6c 6c 5f 41 |l to PROCshell_A| 000068d0 74 74 61 63 68 44 61 74 61 4c 6f 61 64 20 77 68 |ttachDataLoad wh| 000068e0 69 63 68 20 0a 20 20 20 20 20 20 74 65 6c 6c 73 |ich . tells| 000068f0 20 74 68 65 20 45 76 6e 74 53 68 65 6c 6c 20 6c | the EvntShell l| 00006900 69 62 72 61 72 79 20 77 68 69 63 68 20 66 69 6c |ibrary which fil| 00006910 65 74 79 70 65 73 20 74 68 65 20 75 73 65 72 20 |etypes the user | 00006920 61 70 70 6c 69 63 61 74 69 6f 6e 20 0a 20 20 20 |application . | 00006930 20 20 20 69 73 20 69 6e 74 65 72 65 73 74 65 64 | is interested| 00006940 20 69 6e 20 61 6e 64 20 74 68 65 20 6e 61 6d 65 | in and the name| 00006950 20 6f 66 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 | of a function t| 00006960 6f 20 63 61 6c 6c 20 77 68 65 6e 20 61 20 6c 6f |o call when a lo| 00006970 61 64 20 0a 20 20 20 20 20 20 65 76 65 6e 74 20 |ad . event | 00006980 6f 63 63 75 72 73 2e 20 4d 75 6c 74 69 70 6c 65 |occurs. Multiple| 00006990 20 66 69 6c 65 73 20 6d 61 79 20 62 65 20 6c 6f | files may be lo| 000069a0 61 64 65 64 2c 20 62 75 74 20 69 6e 20 74 68 65 |aded, but in the| 000069b0 20 63 75 72 72 65 6e 74 20 0a 20 20 20 20 20 20 | current . | 000069c0 72 65 6c 65 61 73 65 20 6f 66 20 74 68 65 20 6c |release of the l| 000069d0 69 62 72 61 72 79 20 69 74 20 69 73 20 75 70 20 |ibrary it is up | 000069e0 74 6f 20 74 68 65 20 75 73 65 72 20 61 70 70 6c |to the user appl| 000069f0 69 63 61 74 69 6f 6e 20 74 6f 20 6b 65 65 70 20 |ication to keep | 00006a00 0a 20 20 20 20 20 20 74 72 61 63 6b 20 6f 66 20 |. track of | 00006a10 77 68 65 72 65 20 74 68 65 79 20 61 72 65 20 6c |where they are l| 00006a20 6f 61 64 65 64 20 61 6e 64 20 69 66 20 74 68 65 |oaded and if the| 00006a30 79 20 68 61 76 65 20 62 65 65 6e 20 6d 6f 64 69 |y have been modi| 00006a40 66 69 65 64 2e 20 0a 20 20 20 20 20 20 54 68 69 |fied. . Thi| 00006a50 73 20 77 69 6c 6c 20 63 68 61 6e 67 65 20 69 6e |s will change in| 00006a60 20 61 20 66 75 74 75 72 65 20 72 65 6c 65 61 73 | a future releas| 00006a70 65 2e 20 0a 0a 20 20 20 20 20 20 57 68 65 6e 20 |e. .. When | 00006a80 74 68 65 20 65 76 65 6e 74 20 69 73 20 61 74 74 |the event is att| 00006a90 61 63 68 65 64 20 61 20 63 68 65 63 6b 20 69 73 |ached a check is| 00006aa0 20 6d 61 64 65 20 74 6f 20 73 65 65 20 69 66 20 | made to see if | 00006ab0 74 68 65 20 0a 20 20 20 20 20 20 61 70 70 6c 69 |the . appli| 00006ac0 63 61 74 69 6f 6e 20 77 61 73 20 73 74 61 72 74 |cation was start| 00006ad0 65 64 20 62 79 20 64 6f 75 62 6c 65 20 63 6c 69 |ed by double cli| 00006ae0 63 6b 69 6e 67 20 61 20 66 69 6c 65 20 77 68 69 |cking a file whi| 00006af0 63 68 20 27 62 65 6c 6f 6e 67 73 27 20 0a 20 20 |ch 'belongs' . | 00006b00 20 20 20 20 74 6f 20 69 74 2e 20 49 66 20 74 68 | to it. If th| 00006b10 65 20 66 69 6c 65 74 79 70 65 73 20 6d 61 74 63 |e filetypes matc| 00006b20 68 20 74 68 65 6e 20 74 68 65 20 66 69 6c 65 20 |h then the file | 00006b30 69 73 20 6c 6f 61 64 65 64 20 61 73 20 69 66 20 |is loaded as if | 00006b40 69 74 20 0a 20 20 20 20 20 20 68 61 64 20 62 65 |it . had be| 00006b50 65 6e 20 64 72 61 67 67 65 64 20 74 6f 20 74 68 |en dragged to th| 00006b60 65 20 69 63 6f 6e 20 62 61 72 20 69 63 6f 6e 2e |e icon bar icon.| 00006b70 20 41 20 66 69 6c 65 74 79 70 65 20 69 73 20 61 | A filetype is a| 00006b80 73 73 6f 63 69 61 74 65 64 20 0a 20 20 20 20 20 |ssociated . | 00006b90 20 77 69 74 68 20 61 6e 20 61 70 70 6c 69 63 61 | with an applica| 00006ba0 74 69 6f 6e 20 62 79 20 74 68 65 20 69 6e 63 6c |tion by the incl| 00006bb0 75 73 69 6f 6e 20 6f 66 20 74 68 65 20 6c 69 6e |usion of the lin| 00006bc0 65 3a 20 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 |e: .. . | 00006bd0 20 20 53 65 74 20 41 6c 69 61 73 24 40 52 75 6e | Set Alias$@Run| 00006be0 54 79 70 65 5f 78 78 78 20 52 75 6e 20 3c 4f 62 |Type_xxx Run <Ob| 00006bf0 65 79 24 44 69 72 3e 2e 21 52 75 6e 20 25 25 2a |ey$Dir>.!Run %%*| 00006c00 30 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a |0. . .| 00006c10 20 20 20 20 20 20 77 68 65 72 65 20 78 78 78 20 | where xxx | 00006c20 69 73 20 74 68 65 20 66 69 6c 65 74 79 70 65 20 |is the filetype | 00006c30 6e 75 6d 62 65 72 2e 20 0a 0a 20 20 20 20 20 20 |number. .. | 00006c40 49 66 20 72 65 71 75 69 72 65 64 20 74 68 65 20 |If required the | 00006c50 66 69 6c 65 73 20 63 61 6e 20 62 65 20 6c 6f 61 |files can be loa| 00006c60 64 65 64 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c |ded automaticall| 00006c70 79 20 69 6e 74 6f 20 61 20 72 65 73 65 72 76 65 |y into a reserve| 00006c80 64 20 0a 20 20 20 20 20 20 62 6c 6f 63 6b 20 6f |d . block o| 00006c90 66 20 6d 65 6d 6f 72 79 2c 20 6f 72 20 74 68 65 |f memory, or the| 00006ca0 20 75 73 65 72 20 61 70 70 6c 69 63 61 74 69 6f | user applicatio| 00006cb0 6e 20 63 61 6e 20 68 61 76 65 20 74 6f 74 61 6c |n can have total| 00006cc0 20 63 6f 6e 74 72 6f 6c 20 0a 20 20 20 20 20 20 | control . | 00006cd0 6f 76 65 72 20 6c 6f 61 64 69 6e 67 20 61 6e 64 |over loading and| 00006ce0 20 70 72 6f 63 65 73 73 69 6e 67 20 74 68 65 20 | processing the | 00006cf0 66 69 6c 65 2e 20 0a 0a 20 20 20 20 20 20 54 68 |file. .. Th| 00006d00 65 20 45 76 6e 74 53 68 65 6c 6c 20 6c 69 62 72 |e EvntShell libr| 00006d10 61 72 79 20 73 75 70 70 6f 72 74 73 20 52 41 4d |ary supports RAM| 00006d20 20 66 69 6c 65 20 74 72 61 6e 73 66 65 72 20 66 | file transfer f| 00006d30 6f 72 20 73 70 65 65 64 20 77 68 65 6e 20 0a 20 |or speed when . | 00006d40 20 20 20 20 20 6c 6f 61 64 69 6e 67 20 64 61 74 | loading dat| 00006d50 61 20 66 72 6f 6d 20 63 6f 6e 73 65 6e 74 69 6e |a from consentin| 00006d60 67 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 2e 20 |g applications. | 00006d70 0a 0a 20 20 20 20 20 20 49 74 20 69 73 20 61 6c |.. It is al| 00006d80 73 6f 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 61 |so possible to a| 00006d90 72 72 61 6e 67 65 20 66 6f 72 20 74 68 65 20 75 |rrange for the u| 00006da0 73 65 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 |ser application | 00006db0 74 6f 20 0a 20 20 20 20 20 20 72 65 73 70 6f 6e |to . respon| 00006dc0 64 20 74 6f 20 61 20 72 61 6e 67 65 20 6f 66 20 |d to a range of | 00006dd0 66 69 6c 65 74 79 70 65 73 20 62 79 20 61 74 74 |filetypes by att| 00006de0 61 63 68 69 6e 67 20 6d 6f 72 65 20 74 68 61 6e |aching more than| 00006df0 20 6f 6e 65 20 0a 20 20 20 20 20 20 68 61 6e 64 | one . hand| 00006e00 6c 65 72 2e 20 0a 0a 20 20 20 20 20 20 41 6e 20 |ler. .. An | 00006e10 65 78 61 6d 70 6c 65 20 61 70 70 6c 69 63 61 74 |example applicat| 00006e20 69 6f 6e 20 21 44 61 74 61 4c 6f 61 64 20 73 68 |ion !DataLoad sh| 00006e30 6f 75 6c 64 20 68 61 76 65 20 62 65 65 6e 20 69 |ould have been i| 00006e40 6e 63 6c 75 64 65 64 20 77 69 74 68 20 0a 20 20 |ncluded with . | 00006e50 20 20 20 20 74 68 65 20 4c 69 62 72 61 72 79 20 | the Library | 00006e60 74 6f 20 64 65 6d 6f 6e 73 74 72 61 74 65 20 68 |to demonstrate h| 00006e70 6f 77 20 74 6f 20 64 6f 20 74 68 69 73 2e 20 0a |ow to do this. .| 00006e80 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 74 |. This is t| 00006e90 68 65 20 63 6f 64 65 20 66 72 6f 6d 20 21 44 61 |he code from !Da| 00006ea0 74 61 4c 6f 61 64 20 75 73 65 64 20 74 6f 20 61 |taLoad used to a| 00006eb0 63 68 69 65 76 65 20 74 68 65 20 6c 6f 61 64 20 |chieve the load | 00006ec0 3a 20 0a 0c 0a 20 20 20 20 20 20 0a 20 20 20 20 |: ... . | 00006ed0 20 20 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 | PROCshell_Atta| 00006ee0 63 68 44 61 74 61 4c 6f 61 64 28 6d 61 69 6e 77 |chDataLoad(mainw| 00006ef0 25 2c 30 2c 26 46 45 43 2c 22 5f 64 61 74 61 6c |%,0,&FEC,"_datal| 00006f00 6f 61 64 46 45 43 22 2c 54 52 55 45 29 0a 20 20 |oadFEC",TRUE). | 00006f10 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 | . . | 00006f20 20 20 54 68 65 20 66 69 72 73 74 20 70 61 72 61 | The first para| 00006f30 6d 65 74 65 72 2c 20 6d 61 69 6e 77 25 20 69 73 |meter, mainw% is| 00006f40 20 74 68 65 20 77 69 6d 70 20 77 69 6e 64 6f 77 | the wimp window| 00006f50 20 68 61 6e 64 6c 65 2c 20 74 68 65 20 73 65 63 | handle, the sec| 00006f60 6f 6e 64 20 0a 20 20 20 20 20 20 69 73 20 74 68 |ond . is th| 00006f70 65 20 69 63 6f 6e 20 68 61 6e 64 6c 65 2e 20 26 |e icon handle. &| 00006f80 46 45 43 20 69 73 20 74 68 65 20 66 69 6c 65 74 |FEC is the filet| 00006f90 79 70 65 20 74 6f 20 72 65 73 70 6f 6e 64 20 74 |ype to respond t| 00006fa0 6f 20 61 6e 64 20 0a 20 20 20 20 20 20 27 5f 64 |o and . '_d| 00006fb0 61 74 61 6c 6f 61 64 46 45 43 27 20 69 73 20 74 |ataloadFEC' is t| 00006fc0 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 66 |he name of the f| 00006fd0 75 6e 63 74 69 6f 6e 20 74 6f 20 63 61 6c 6c 20 |unction to call | 00006fe0 74 6f 20 61 63 74 75 61 6c 6c 79 20 0a 20 20 20 |to actually . | 00006ff0 20 20 20 6c 6f 61 64 20 74 68 65 20 66 69 6c 65 | load the file| 00007000 2e 20 54 68 65 20 6c 61 73 74 20 70 61 72 61 6d |. The last param| 00007010 65 74 65 72 20 69 73 20 54 52 55 45 20 74 6f 20 |eter is TRUE to | 00007020 6c 6f 61 64 20 74 68 65 20 66 69 6c 65 20 0a 20 |load the file . | 00007030 20 20 20 20 20 61 75 74 6f 6d 61 74 69 63 61 6c | automatical| 00007040 6c 79 20 69 6e 74 6f 20 61 20 72 65 73 65 72 76 |ly into a reserv| 00007050 65 64 20 62 6c 6f 63 6b 20 6f 66 20 6d 65 6d 6f |ed block of memo| 00007060 72 79 20 6f 72 20 46 41 4c 53 45 20 69 66 20 79 |ry or FALSE if y| 00007070 6f 75 20 0a 20 20 20 20 20 20 77 61 6e 74 20 74 |ou . want t| 00007080 6f 20 68 61 6e 64 6c 65 20 74 68 65 20 6c 6f 61 |o handle the loa| 00007090 64 69 6e 67 20 79 6f 75 72 73 65 6c 66 2e 20 49 |ding yourself. I| 000070a0 6e 20 74 68 69 73 20 63 61 73 65 20 6c 6f 61 64 |n this case load| 000070b0 69 6e 67 20 69 73 20 0a 20 20 20 20 20 20 61 75 |ing is . au| 000070c0 74 6f 6d 61 74 69 63 20 61 6e 64 20 74 68 65 20 |tomatic and the | 000070d0 6c 6f 61 64 69 6e 67 20 66 75 6e 63 74 69 6f 6e |loading function| 000070e0 20 69 73 20 73 69 6d 70 6c 79 3a 20 0a 0a 20 20 | is simply: .. | 000070f0 20 20 20 20 0a 20 20 20 20 20 20 44 45 46 20 46 | . DEF F| 00007100 4e 5f 64 61 74 61 6c 6f 61 64 46 45 43 28 6c 6f |N_dataloadFEC(lo| 00007110 63 25 2c 74 79 70 65 25 2c 6e 61 6d 65 24 2c 66 |c%,type%,name$,f| 00007120 69 6c 65 5f 73 69 7a 65 25 29 0a 20 20 20 20 20 |ile_size%). | 00007130 20 76 6f 69 64 25 3d 46 4e 73 68 65 6c 6c 5f 4d | void%=FNshell_M| 00007140 65 73 73 61 67 65 57 69 6e 64 6f 77 28 22 46 69 |essageWindow("Fi| 00007150 6c 65 20 27 22 2b 6e 61 6d 65 24 2b 22 27 22 2c |le '"+name$+"'",| 00007160 30 2c 22 44 61 74 61 4c 6f 61 64 22 2c 22 22 29 |0,"DataLoad","")| 00007170 0a 20 20 20 20 20 20 3d 30 0a 20 20 20 20 20 20 |. =0. | 00007180 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 54 68 |. . Th| 00007190 65 20 64 61 74 61 20 66 69 6c 65 20 28 6f 66 20 |e data file (of | 000071a0 74 79 70 65 20 26 46 45 43 2c 20 74 65 6d 70 6c |type &FEC, templ| 000071b0 61 74 65 29 20 68 61 73 20 62 65 65 6e 20 6c 6f |ate) has been lo| 000071c0 61 64 65 64 20 61 74 20 0a 20 20 20 20 20 20 6c |aded at . l| 000071d0 6f 63 61 74 69 6f 6e 20 6c 6f 63 25 2c 20 69 74 |ocation loc%, it| 000071e0 73 20 74 79 70 65 20 69 73 20 69 6e 20 74 79 70 |s type is in typ| 000071f0 65 25 20 61 6e 64 20 74 68 65 20 66 75 6c 6c 20 |e% and the full | 00007200 70 61 74 68 20 6e 61 6d 65 20 6f 66 20 74 68 65 |path name of the| 00007210 20 0a 20 20 20 20 20 20 66 69 6c 65 20 69 73 20 | . file is | 00007220 69 6e 20 6e 61 6d 65 24 2e 20 41 6c 6c 20 74 68 |in name$. All th| 00007230 65 20 66 75 6e 63 74 69 6f 6e 20 69 74 73 65 6c |e function itsel| 00007240 66 20 64 6f 65 73 20 69 73 20 63 61 6c 6c 20 61 |f does is call a| 00007250 6e 6f 74 68 65 72 20 0a 20 20 20 20 20 20 66 75 |nother . fu| 00007260 6e 63 74 69 6f 6e 20 74 6f 20 64 69 73 70 6c 61 |nction to displa| 00007270 79 20 61 20 6d 65 73 73 61 67 65 20 77 69 6e 64 |y a message wind| 00007280 6f 77 20 73 6f 20 74 68 61 74 20 79 6f 75 20 63 |ow so that you c| 00007290 61 6e 20 73 65 65 20 74 68 61 74 20 0a 20 20 20 |an see that . | 000072a0 20 20 20 6c 6f 61 64 69 6e 67 20 74 68 65 20 66 | loading the f| 000072b0 69 6c 65 20 68 61 73 20 77 6f 72 6b 65 64 2e 20 |ile has worked. | 000072c0 54 68 69 73 20 69 73 20 61 20 75 73 65 66 75 6c |This is a useful| 000072d0 20 64 65 62 75 67 67 69 6e 67 20 0a 20 20 20 20 | debugging . | 000072e0 20 20 74 65 63 68 6e 69 71 75 65 21 20 0a 0a 20 | technique! .. | 000072f0 20 20 20 20 20 54 68 69 73 20 6d 65 74 68 6f 64 | This method| 00007300 20 6f 66 20 6c 6f 61 64 69 6e 67 20 61 20 66 69 | of loading a fi| 00007310 6c 65 20 77 6f 72 6b 73 20 77 65 6c 6c 20 66 6f |le works well fo| 00007320 72 20 64 61 74 61 66 69 6c 65 73 20 74 68 61 74 |r datafiles that| 00007330 20 61 72 65 20 0a 20 20 20 20 20 20 73 74 6f 72 | are . stor| 00007340 65 64 20 61 73 20 6f 6e 65 20 63 6f 6e 74 69 6e |ed as one contin| 00007350 75 6f 75 73 20 62 6c 6f 63 6b 20 6f 66 20 64 61 |uous block of da| 00007360 74 61 20 73 75 63 68 20 61 73 20 61 20 74 65 78 |ta such as a tex| 00007370 74 20 66 69 6c 65 20 77 68 69 63 68 20 0a 20 20 |t file which . | 00007380 20 20 20 20 77 69 6c 6c 20 62 65 20 70 72 6f 63 | will be proc| 00007390 65 73 73 65 64 20 69 6e 20 73 6f 6d 65 20 77 61 |essed in some wa| 000073a0 79 2e 20 53 75 70 70 6f 73 65 2c 20 68 6f 77 65 |y. Suppose, howe| 000073b0 76 65 72 2c 20 79 6f 75 20 68 61 76 65 20 61 20 |ver, you have a | 000073c0 0a 20 20 20 20 20 20 73 69 6d 70 6c 65 20 64 61 |. simple da| 000073d0 74 61 62 61 73 65 20 74 79 70 65 20 61 70 70 6c |tabase type appl| 000073e0 69 63 61 74 69 6f 6e 20 77 68 69 63 68 20 6e 65 |ication which ne| 000073f0 65 64 73 20 74 6f 20 6c 6f 61 64 20 64 61 74 61 |eds to load data| 00007400 20 69 6e 74 6f 20 0a 20 20 20 20 20 20 42 41 53 | into . BAS| 00007410 49 43 20 61 72 72 61 79 73 2e 20 49 6e 20 74 68 |IC arrays. In th| 00007420 69 73 20 63 61 73 65 20 79 6f 75 20 77 6f 75 6c |is case you woul| 00007430 64 20 73 69 6d 70 6c 79 20 75 73 65 20 28 61 73 |d simply use (as| 00007440 73 75 6d 69 6e 67 20 6e 6f 77 20 74 68 65 20 0a |suming now the .| 00007450 20 20 20 20 20 20 66 69 6c 65 74 79 70 65 20 69 | filetype i| 00007460 73 20 26 32 30 35 29 3a 20 0a 0a 20 20 20 20 20 |s &205): .. | 00007470 20 0a 20 20 20 20 20 20 50 52 4f 43 73 68 65 6c | . PROCshel| 00007480 6c 5f 41 74 74 61 63 68 44 61 74 61 4c 6f 61 64 |l_AttachDataLoad| 00007490 28 6d 61 69 6e 77 25 2c 30 2c 26 32 30 35 2c 22 |(mainw%,0,&205,"| 000074a0 5f 64 61 74 61 6c 6f 61 64 32 30 35 22 2c 46 41 |_dataload205",FA| 000074b0 4c 53 45 29 0a 20 20 20 20 20 20 0a 20 20 20 20 |LSE). . | 000074c0 20 20 0a 20 20 20 20 20 20 46 4e 5f 64 61 74 61 | . FN_data| 000074d0 6c 6f 61 64 32 30 35 20 72 65 63 65 69 76 65 73 |load205 receives| 000074e0 20 74 68 65 20 66 75 6c 6c 20 70 61 74 68 6e 61 | the full pathna| 000074f0 6d 65 20 6f 66 20 74 68 65 20 66 69 6c 65 20 77 |me of the file w| 00007500 68 69 63 68 20 68 61 73 20 0a 20 20 20 20 20 20 |hich has . | 00007510 62 65 65 6e 20 64 72 61 67 67 65 64 20 74 6f 20 |been dragged to | 00007520 69 63 6f 6e 20 30 20 28 70 72 6f 76 69 64 69 6e |icon 0 (providin| 00007530 67 20 74 68 65 20 66 69 6c 65 74 79 70 65 20 6f |g the filetype o| 00007540 66 20 74 68 65 20 66 69 6c 65 20 77 61 73 20 0a |f the file was .| 00007550 20 20 20 20 20 20 26 32 30 35 2c 20 6f 74 68 65 | &205, othe| 00007560 72 77 69 73 65 20 74 68 65 20 6c 6f 61 64 20 77 |rwise the load w| 00007570 69 6c 6c 20 62 65 20 69 67 6e 6f 72 65 64 29 20 |ill be ignored) | 00007580 77 68 69 63 68 20 6d 61 79 20 6e 6f 77 20 62 65 |which may now be| 00007590 20 6f 70 65 6e 65 64 20 0a 20 20 20 20 20 20 61 | opened . a| 000075a0 6e 64 20 74 68 65 20 64 61 74 61 20 6c 6f 61 64 |nd the data load| 000075b0 65 64 20 61 73 20 75 73 75 61 6c 2e 20 49 66 20 |ed as usual. If | 000075c0 74 68 65 20 27 6e 6f 20 6c 6f 61 64 27 20 66 6c |the 'no load' fl| 000075d0 61 67 20 77 61 73 20 73 65 74 20 66 6f 72 20 0a |ag was set for .| 000075e0 20 20 20 20 20 20 74 68 69 73 20 6c 6f 61 64 20 | this load | 000075f0 65 76 65 6e 74 20 61 6e 64 20 74 68 65 20 6c 6f |event and the lo| 00007600 61 64 20 77 61 73 20 66 72 6f 6d 20 61 6e 6f 74 |ad was from anot| 00007610 68 65 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 |her application | 00007620 74 68 65 20 0a 20 20 20 20 20 20 64 61 74 61 20 |the . data | 00007630 69 73 20 73 61 76 65 64 20 69 6e 20 61 20 66 69 |is saved in a fi| 00007640 6c 65 20 63 61 6c 6c 65 64 20 27 53 63 72 61 70 |le called 'Scrap| 00007650 46 69 6c 65 27 20 69 6e 20 74 68 65 20 75 73 65 |File' in the use| 00007660 72 20 0a 20 20 20 20 20 20 61 70 70 6c 69 63 61 |r . applica| 00007670 74 69 6f 6e 20 64 69 72 65 63 74 6f 72 79 2e 20 |tion directory. | 00007680 0a 0a 20 20 20 20 20 20 34 2e 37 20 43 6f 6d 70 |.. 4.7 Comp| 00007690 72 65 73 73 69 6e 67 20 45 76 6e 74 53 68 65 6c |ressing EvntShel| 000076a0 6c 20 41 70 70 6c 69 63 61 74 69 6f 6e 73 20 0a |l Applications .| 000076b0 0a 20 20 20 20 20 20 44 75 65 20 74 6f 20 74 68 |. Due to th| 000076c0 65 20 63 6f 6d 70 6c 65 78 20 6e 61 74 75 72 65 |e complex nature| 000076d0 20 6f 66 20 74 68 65 20 6c 69 62 72 61 72 79 20 | of the library | 000076e0 63 6f 64 65 20 61 6e 64 20 74 68 65 20 64 65 73 |code and the des| 000076f0 69 72 65 20 66 6f 72 20 0a 20 20 20 20 20 20 69 |ire for . i| 00007700 74 20 74 6f 20 64 6f 20 61 73 20 6d 75 63 68 20 |t to do as much | 00007710 61 73 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 6d |as possible to m| 00007720 61 6b 65 20 61 20 75 73 65 72 20 61 70 70 6c 69 |ake a user appli| 00007730 63 61 74 69 6f 6e 20 65 61 73 79 20 74 6f 20 0a |cation easy to .| 00007740 20 20 20 20 20 20 77 72 69 74 65 20 74 68 65 20 | write the | 00007750 53 68 65 6c 6c 4c 69 62 20 6c 69 62 72 61 72 79 |ShellLib library| 00007760 20 66 69 6c 65 20 68 61 73 20 65 78 70 61 6e 64 | file has expand| 00007770 65 64 20 74 6f 20 61 72 6f 75 6e 64 20 31 35 30 |ed to around 150| 00007780 4b 2e 20 54 68 69 73 20 0a 20 20 20 20 20 20 69 |K. This . i| 00007790 73 20 6f 62 76 69 6f 75 73 6c 79 20 75 6e 64 65 |s obviously unde| 000077a0 73 69 72 61 62 6c 65 20 65 73 70 65 63 69 61 6c |sirable especial| 000077b0 6c 79 20 69 66 20 79 6f 75 20 61 72 65 20 70 6c |ly if you are pl| 000077c0 61 6e 6e 69 6e 67 20 74 6f 20 73 65 6e 64 20 0a |anning to send .| 000077d0 20 20 20 20 20 20 79 6f 75 72 20 66 69 6e 69 73 | your finis| 000077e0 68 65 64 20 70 72 6f 67 72 61 6d 20 74 6f 20 61 |hed program to a| 000077f0 20 50 44 20 6c 69 62 72 61 72 79 2e 20 49 66 20 | PD library. If | 00007800 79 6f 75 20 77 61 6e 74 20 70 65 6f 70 6c 65 20 |you want people | 00007810 74 6f 20 62 65 20 0a 20 20 20 20 20 20 61 62 6c |to be . abl| 00007820 65 20 74 6f 20 72 65 61 64 20 79 6f 75 72 20 73 |e to read your s| 00007830 6f 75 72 63 65 20 63 6f 64 65 20 79 6f 75 20 63 |ource code you c| 00007840 61 6e 20 75 73 65 20 74 68 65 20 27 52 75 6e 54 |an use the 'RunT| 00007850 69 6d 65 27 20 76 65 72 73 69 6f 6e 20 0a 20 20 |ime' version . | 00007860 20 20 20 20 6f 66 20 74 68 65 20 6c 69 62 72 61 | of the libra| 00007870 72 79 20 77 68 69 63 68 20 68 61 73 20 62 65 65 |ry which has bee| 00007880 6e 20 6d 69 6c 64 6c 79 20 63 6f 6d 70 72 65 73 |n mildly compres| 00007890 73 65 64 2c 20 62 75 74 20 66 6f 72 20 74 68 65 |sed, but for the| 000078a0 20 0a 20 20 20 20 20 20 73 6d 61 6c 6c 65 73 74 | . smallest| 000078b0 20 70 6f 73 73 69 62 6c 65 20 70 72 6f 67 72 61 | possible progra| 000078c0 6d 20 69 74 20 69 73 20 6e 65 63 65 73 73 61 72 |m it is necessar| 000078d0 79 20 74 6f 20 61 70 70 65 6e 64 20 74 68 65 20 |y to append the | 000078e0 6c 69 62 72 61 72 79 20 0a 20 20 20 20 20 20 28 |library . (| 000078f0 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 29 20 |either version) | 00007900 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 |to the end of th| 00007910 65 20 75 73 65 72 20 61 70 70 6c 69 63 61 74 69 |e user applicati| 00007920 6f 6e 2c 20 72 65 6d 6f 76 65 20 74 68 65 20 0a |on, remove the .| 00007930 20 20 20 20 20 20 6c 69 6e 65 20 77 68 69 63 68 | line which| 00007940 20 6c 6f 61 64 73 20 74 68 65 20 6c 69 62 72 61 | loads the libra| 00007950 72 79 20 66 69 6c 65 20 61 6e 64 20 72 75 6e 20 |ry file and run | 00007960 74 68 65 20 77 68 6f 6c 65 20 6c 6f 74 20 74 68 |the whole lot th| 00007970 72 6f 75 67 68 20 61 20 0a 20 20 20 20 20 20 42 |rough a . B| 00007980 41 53 49 43 20 70 72 6f 67 72 61 6d 20 63 6f 6d |ASIC program com| 00007990 70 72 65 73 73 6f 72 2e 20 0a 0c 0a 20 20 20 20 |pressor. ... | 000079a0 20 20 49 20 72 65 63 6f 6d 6d 65 6e 64 20 21 42 | I recommend !B| 000079b0 61 73 53 68 72 69 6e 6b 20 6f 72 20 21 53 68 72 |asShrink or !Shr| 000079c0 69 6e 6b 5f 50 44 20 28 74 68 65 20 50 75 62 6c |ink_PD (the Publ| 000079d0 69 63 20 44 6f 6d 61 69 6e 20 76 65 72 73 69 6f |ic Domain versio| 000079e0 6e 20 0a 20 20 20 20 20 20 6f 66 20 21 42 61 73 |n . of !Bas| 000079f0 53 68 72 69 6e 6b 29 20 62 79 20 4a 6f 68 6e 20 |Shrink) by John | 00007a00 57 61 6c 6c 61 63 65 20 61 6c 74 68 6f 75 67 68 |Wallace although| 00007a10 20 4a 6f 68 6e 27 73 20 70 72 6f 67 72 61 6d 20 | John's program | 00007a20 69 73 20 73 6c 6f 77 20 0a 20 20 20 20 20 20 61 |is slow . a| 00007a30 6e 64 20 6e 6f 74 20 70 72 65 73 65 6e 74 6c 79 |nd not presently| 00007a40 20 6d 75 6c 74 69 74 61 73 6b 69 6e 67 20 69 74 | multitasking it| 00007a50 20 64 6f 65 73 20 70 72 6f 64 75 63 65 20 63 6f | does produce co| 00007a60 64 65 20 74 68 61 74 20 73 74 69 6c 6c 20 0a 20 |de that still . | 00007a70 20 20 20 20 20 72 75 6e 73 21 20 54 68 69 73 20 | runs! This | 00007a80 69 73 20 75 6e 66 6f 72 74 75 6e 61 74 65 6c 79 |is unfortunately| 00007a90 20 6e 6f 74 20 74 72 75 65 20 6f 66 20 43 79 20 | not true of Cy | 00007aa0 42 6f 6f 6b 65 72 27 73 20 6f 74 68 65 72 77 69 |Booker's otherwi| 00007ab0 73 65 20 0a 20 20 20 20 20 20 73 75 70 65 72 62 |se . superb| 00007ac0 20 21 42 43 20 77 68 69 63 68 20 77 69 6c 6c 20 | !BC which will | 00007ad0 6e 6f 74 20 77 6f 72 6b 20 6f 6e 20 74 68 65 20 |not work on the | 00007ae0 45 76 6e 74 53 68 65 6c 6c 20 6c 69 62 72 61 72 |EvntShell librar| 00007af0 79 2e 20 48 6f 77 65 76 65 72 2c 20 0a 20 20 20 |y. However, . | 00007b00 20 20 20 69 66 20 49 20 6f 72 20 43 79 20 63 61 | if I or Cy ca| 00007b10 6e 20 66 69 6e 64 20 6f 75 74 20 77 68 61 74 20 |n find out what | 00007b20 74 68 65 20 70 72 6f 62 6c 65 6d 20 69 73 20 77 |the problem is w| 00007b30 65 27 6c 6c 20 66 69 78 20 69 74 2e 20 0a 0a 20 |e'll fix it. .. | 00007b40 20 20 20 20 20 46 75 74 75 72 65 20 76 65 72 73 | Future vers| 00007b50 69 6f 6e 73 20 6f 66 20 21 42 61 73 53 68 72 69 |ions of !BasShri| 00007b60 6e 6b 20 73 68 6f 75 6c 64 20 62 65 20 61 62 6c |nk should be abl| 00007b70 65 20 74 6f 20 72 65 6d 6f 76 65 20 75 6e 75 73 |e to remove unus| 00007b80 65 64 20 0a 20 20 20 20 20 20 72 6f 75 74 69 6e |ed . routin| 00007b90 65 73 20 74 6f 20 73 61 76 65 20 65 76 65 6e 20 |es to save even | 00007ba0 6d 6f 72 65 20 73 70 61 63 65 2c 20 6f 72 20 61 |more space, or a| 00007bb0 6c 74 65 72 6e 61 74 69 76 65 6c 79 20 42 4c 69 |lternatively BLi| 00007bc0 62 49 49 20 63 61 6e 20 62 65 20 0a 20 20 20 20 |bII can be . | 00007bd0 20 20 75 73 65 64 20 74 6f 20 70 72 65 2d 70 72 | used to pre-pr| 00007be0 6f 63 65 73 73 20 74 68 65 20 61 70 70 6c 69 63 |ocess the applic| 00007bf0 61 74 69 6f 6e 20 74 6f 20 6c 69 6e 6b 20 69 6e |ation to link in| 00007c00 20 6f 6e 6c 79 20 74 68 65 20 72 6f 75 74 69 6e | only the routin| 00007c10 65 73 20 0a 20 20 20 20 20 20 74 68 61 74 20 61 |es . that a| 00007c20 72 65 20 61 63 74 75 61 6c 6c 79 20 75 73 65 64 |re actually used| 00007c30 2e 20 53 65 65 20 74 68 65 20 6d 61 6e 75 61 6c |. See the manual| 00007c40 20 73 65 63 74 69 6f 6e 20 27 4f 74 68 65 72 20 | section 'Other | 00007c50 54 6f 6f 6c 73 27 20 66 6f 72 20 0a 20 20 20 20 |Tools' for . | 00007c60 20 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 20 | more details. | 00007c70 0a 0a 20 20 20 20 20 20 54 68 65 72 65 20 69 73 |.. There is| 00007c80 20 6f 6e 65 20 69 6d 70 6f 72 74 61 6e 74 20 70 | one important p| 00007c90 6f 69 6e 74 20 74 6f 20 62 65 61 72 20 69 6e 20 |oint to bear in | 00007ca0 6d 69 6e 64 20 77 68 65 6e 20 75 73 69 6e 67 20 |mind when using | 00007cb0 74 68 65 20 73 68 65 6c 6c 20 0a 20 20 20 20 20 |the shell . | 00007cc0 20 6c 69 62 72 61 72 79 20 61 6e 64 20 21 42 61 | library and !Ba| 00007cd0 73 53 68 72 69 6e 6b 20 74 6f 67 65 74 68 65 72 |sShrink together| 00007ce0 20 2d 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 | - function name| 00007cf0 73 20 74 68 61 74 20 61 72 65 20 0a 20 20 20 20 |s that are . | 00007d00 20 20 45 56 41 4c 75 61 74 65 64 20 62 79 20 74 | EVALuated by t| 00007d10 68 65 20 73 68 65 6c 6c 20 6c 69 62 72 61 72 79 |he shell library| 00007d20 20 73 68 6f 75 6c 64 20 62 65 67 69 6e 20 77 69 | should begin wi| 00007d30 74 68 20 61 20 27 5f 27 20 63 68 61 72 61 63 74 |th a '_' charact| 00007d40 65 72 20 0a 20 20 20 20 20 20 61 6e 64 20 74 68 |er . and th| 00007d50 65 20 27 50 72 65 73 65 72 76 65 20 6e 61 6d 65 |e 'Preserve name| 00007d60 73 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 27 |s starting with'| 00007d70 20 72 61 64 69 6f 20 62 75 74 74 6f 6e 20 69 6e | radio button in| 00007d80 20 74 68 65 20 0a 20 20 20 20 20 20 21 42 61 73 | the . !Bas| 00007d90 53 68 72 69 6e 6b 20 77 69 6e 64 6f 77 20 6d 75 |Shrink window mu| 00007da0 73 74 20 62 65 20 4f 4e 2e 20 49 6e 20 73 68 6f |st be ON. In sho| 00007db0 72 74 20 69 66 20 79 6f 75 20 61 72 65 20 63 61 |rt if you are ca| 00007dc0 6c 6c 69 6e 67 20 61 6e 79 20 0a 20 20 20 20 20 |lling any . | 00007dd0 20 73 68 65 6c 6c 20 6c 69 62 72 61 72 79 20 72 | shell library r| 00007de0 6f 75 74 69 6e 65 20 74 68 61 74 20 68 61 73 20 |outine that has | 00007df0 61 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 |a function name | 00007e00 61 73 20 61 20 70 61 72 61 6d 65 74 65 72 20 0a |as a parameter .| 00007e10 20 20 20 20 20 20 74 68 65 6e 20 74 68 61 74 20 | then that | 00007e20 6e 61 6d 65 20 6d 75 73 74 20 73 74 61 72 74 20 |name must start | 00007e30 77 69 74 68 20 61 20 27 5f 27 2e 20 46 61 69 6c |with a '_'. Fail| 00007e40 75 72 65 20 74 6f 20 6f 62 73 65 72 76 65 20 74 |ure to observe t| 00007e50 68 69 73 20 0a 20 20 20 20 20 20 72 75 6c 65 20 |his . rule | 00007e60 77 69 6c 6c 20 72 65 73 75 6c 74 20 69 6e 20 61 |will result in a| 00007e70 20 6e 6f 6e 2d 77 6f 72 6b 69 6e 67 20 63 6f 6d | non-working com| 00007e80 70 72 65 73 73 65 64 20 70 72 6f 67 72 61 6d 21 |pressed program!| 00007e90 20 0a 0a 20 20 20 20 20 20 41 73 73 75 6d 69 6e | .. Assumin| 00007ea0 67 20 79 6f 75 20 68 61 76 65 20 21 42 61 73 53 |g you have !BasS| 00007eb0 68 72 69 6e 6b 20 32 2e 31 34 20 6f 72 20 6c 61 |hrink 2.14 or la| 00007ec0 74 65 72 20 74 68 65 20 45 76 6e 74 53 68 65 6c |ter the EvntShel| 00007ed0 6c 20 6c 69 62 72 61 72 79 20 0a 20 20 20 20 20 |l library . | 00007ee0 20 63 61 6e 20 62 65 20 63 6f 6d 70 72 65 73 73 | can be compress| 00007ef0 65 64 20 77 69 74 68 20 61 6c 6c 20 73 77 69 74 |ed with all swit| 00007f00 63 68 65 73 20 6f 6e 20 65 78 63 65 70 74 20 27 |ches on except '| 00007f10 53 68 6f 72 74 65 6e 20 46 4e 20 6e 61 6d 65 73 |Shorten FN names| 00007f20 27 2c 20 0a 20 20 20 20 20 20 27 53 68 6f 72 74 |', . 'Short| 00007f30 65 6e 20 50 52 4f 43 20 6e 61 6d 65 73 27 20 61 |en PROC names' a| 00007f40 6e 64 20 27 52 65 6d 6f 76 65 20 2a 20 63 6f 6d |nd 'Remove * com| 00007f50 6d 65 6e 74 73 27 2e 20 49 66 20 79 6f 75 20 61 |ments'. If you a| 00007f60 72 65 20 6e 6f 74 20 0a 20 20 20 20 20 20 67 6f |re not . go| 00007f70 69 6e 67 20 74 6f 20 75 73 65 20 21 42 4c 69 62 |ing to use !BLib| 00007f80 49 49 20 79 6f 75 20 63 61 6e 20 73 77 69 74 63 |II you can switc| 00007f90 68 20 6f 6e 20 27 52 65 6d 6f 76 65 20 2a 20 63 |h on 'Remove * c| 00007fa0 6f 6d 6d 65 6e 74 73 27 20 74 6f 20 0a 20 20 20 |omments' to . | 00007fb0 20 20 20 73 74 72 69 70 20 6f 75 74 20 74 68 65 | strip out the| 00007fc0 20 21 42 4c 69 62 49 49 20 63 6f 6d 6d 61 6e 64 | !BLibII command| 00007fd0 73 2e 20 0a 0a 20 20 20 20 20 20 49 66 20 79 6f |s. .. If yo| 00007fe0 75 20 61 70 70 65 6e 64 20 74 68 65 20 45 76 6e |u append the Evn| 00007ff0 74 53 68 65 6c 6c 20 6c 69 62 72 61 72 79 20 74 |tShell library t| 00008000 6f 20 74 68 65 20 75 73 65 72 20 61 70 70 6c 69 |o the user appli| 00008010 63 61 74 69 6f 6e 20 0a 20 20 20 20 20 20 6d 61 |cation . ma| 00008020 6e 75 61 6c 6c 79 20 6f 72 20 62 79 20 75 73 69 |nually or by usi| 00008030 6e 67 20 42 4c 69 62 49 49 20 79 6f 75 20 63 61 |ng BLibII you ca| 00008040 6e 20 63 6f 6d 70 72 65 73 73 20 74 68 65 20 63 |n compress the c| 00008050 6f 6d 70 6c 65 74 65 20 70 72 6f 67 72 61 6d 20 |omplete program | 00008060 0a 20 20 20 20 20 20 77 69 74 68 20 61 6c 6c 20 |. with all | 00008070 73 77 69 74 63 68 65 73 20 6f 6e 2e 20 0a 0a 20 |switches on. .. | 00008080 20 20 20 20 20 34 2e 38 20 54 68 65 20 52 75 6e | 4.8 The Run| 00008090 54 69 6d 65 20 4c 69 62 72 61 72 79 20 0a 0a 20 |Time Library .. | 000080a0 20 20 20 20 20 54 68 69 73 20 69 73 20 61 20 63 | This is a c| 000080b0 6f 6d 70 72 65 73 73 65 64 20 76 65 72 73 69 6f |ompressed versio| 000080c0 6e 20 6f 66 20 74 68 65 20 66 75 6c 6c 20 6c 69 |n of the full li| 000080d0 62 72 61 72 79 20 77 68 69 63 68 20 73 68 6f 75 |brary which shou| 000080e0 6c 64 20 62 65 20 0a 20 20 20 20 20 20 75 73 65 |ld be . use| 000080f0 64 20 77 68 65 72 65 76 65 72 20 70 6f 73 73 69 |d wherever possi| 00008100 62 6c 65 20 61 73 20 69 74 20 77 69 6c 6c 20 6c |ble as it will l| 00008110 6f 61 64 20 61 6e 64 20 72 75 6e 20 66 61 73 74 |oad and run fast| 00008120 65 72 2e 20 54 68 65 20 6f 6e 6c 79 20 0a 20 20 |er. The only . | 00008130 20 20 20 20 72 65 61 73 6f 6e 20 66 6f 72 20 75 | reason for u| 00008140 73 69 6e 67 20 74 68 65 20 75 6e 63 6f 6d 70 72 |sing the uncompr| 00008150 65 73 73 65 64 20 6c 69 62 72 61 72 79 20 77 6f |essed library wo| 00008160 75 6c 64 20 62 65 20 74 6f 20 61 64 64 20 65 78 |uld be to add ex| 00008170 74 72 61 20 0a 20 20 20 20 20 20 64 65 62 75 67 |tra . debug| 00008180 67 69 6e 67 20 63 6f 64 65 20 6f 72 20 70 65 72 |ging code or per| 00008190 68 61 70 73 20 74 6f 20 6d 6f 64 69 66 79 20 74 |haps to modify t| 000081a0 68 65 20 72 6f 75 74 69 6e 65 73 2e 20 49 6e 20 |he routines. In | 000081b0 74 68 69 73 20 63 61 73 65 2c 20 0a 20 20 20 20 |this case, . | 000081c0 20 20 68 6f 77 65 76 65 72 2c 20 69 74 20 69 73 | however, it is| 000081d0 20 62 65 74 74 65 72 20 74 6f 20 6a 75 73 74 20 | better to just | 000081e0 63 6f 70 79 20 74 68 65 20 75 6e 63 6f 6d 70 72 |copy the uncompr| 000081f0 65 73 73 65 64 20 72 6f 75 74 69 6e 65 20 69 6e |essed routine in| 00008200 74 6f 20 0a 20 20 20 20 20 20 74 68 65 20 75 73 |to . the us| 00008210 65 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 61 |er application a| 00008220 6e 64 20 65 64 69 74 20 69 74 20 74 68 65 72 65 |nd edit it there| 00008230 2e 20 0a 0a 20 20 20 20 20 20 54 68 65 20 75 6e |. .. The un| 00008240 63 6f 6d 70 72 65 73 73 65 64 20 76 65 72 73 69 |compressed versi| 00008250 6f 6e 20 69 73 20 63 61 6c 6c 65 64 20 53 68 65 |on is called She| 00008260 6c 6c 4c 69 62 2c 20 74 68 65 20 63 6f 6d 70 72 |llLib, the compr| 00008270 65 73 73 65 64 20 0a 20 20 20 20 20 20 76 65 72 |essed . ver| 00008280 73 69 6f 6e 20 69 73 20 53 68 65 6c 6c 4c 69 62 |sion is ShellLib| 00008290 52 54 2e 20 42 6f 74 68 20 63 61 6e 20 62 65 20 |RT. Both can be | 000082a0 66 6f 75 6e 64 20 69 6e 73 69 64 65 20 74 68 65 |found inside the| 000082b0 20 21 53 68 65 6c 6c 53 79 73 20 0a 20 20 20 20 | !ShellSys . | 000082c0 20 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 64 69 | application di| 000082d0 72 65 63 74 6f 72 79 2e 20 0a 0a 20 20 20 20 20 |rectory. .. | 000082e0 20 54 68 65 20 53 68 65 6c 6c 4c 69 62 52 54 20 | The ShellLibRT | 000082f0 66 69 6c 65 20 68 61 73 20 68 61 64 20 74 68 65 |file has had the| 00008300 20 42 4c 69 62 49 49 20 63 6f 6d 6d 61 6e 64 73 | BLibII commands| 00008310 20 73 74 72 69 70 70 65 64 20 6f 75 74 20 74 6f | stripped out to| 00008320 20 0a 20 20 20 20 20 20 73 61 76 65 20 73 70 61 | . save spa| 00008330 63 65 2e 20 0a 0a 20 20 20 20 20 20 34 2e 39 20 |ce. .. 4.9 | 00008340 54 68 65 20 21 53 68 65 6c 6c 53 79 73 20 41 70 |The !ShellSys Ap| 00008350 70 6c 69 63 61 74 69 6f 6e 20 0a 0a 20 20 20 20 |plication .. | 00008360 20 20 41 73 20 6c 61 72 67 65 20 63 68 75 6e 6b | As large chunk| 00008370 73 20 6f 66 20 63 6f 64 65 20 61 72 65 20 63 6f |s of code are co| 00008380 6d 6d 6f 6e 20 74 6f 20 61 6c 6c 20 45 76 6e 74 |mmon to all Evnt| 00008390 53 68 65 6c 6c 20 61 70 70 6c 69 63 61 74 69 6f |Shell applicatio| 000083a0 6e 73 20 0a 20 20 20 20 20 20 69 74 20 6d 61 6b |ns . it mak| 000083b0 65 73 20 73 65 6e 73 65 20 74 6f 20 73 74 6f 72 |es sense to stor| 000083c0 65 20 69 74 20 6f 6e 6c 79 20 6f 6e 63 65 20 6f |e it only once o| 000083d0 6e 20 74 68 65 20 64 69 73 6b 2c 20 68 65 6e 63 |n the disk, henc| 000083e0 65 20 21 53 68 65 6c 6c 53 79 73 20 0a 20 20 20 |e !ShellSys . | 000083f0 20 20 20 77 68 69 63 68 20 73 68 6f 75 6c 64 20 | which should | 00008400 62 65 20 74 72 65 61 74 65 64 20 6c 69 6b 65 20 |be treated like | 00008410 74 68 65 20 21 53 79 73 74 65 6d 20 61 70 70 6c |the !System appl| 00008420 69 63 61 74 69 6f 6e 2e 20 49 66 20 79 6f 75 20 |ication. If you | 00008430 68 61 76 65 20 0a 20 20 20 20 20 20 61 20 68 61 |have . a ha| 00008440 72 64 20 64 69 73 6b 20 70 75 74 20 69 74 20 69 |rd disk put it i| 00008450 6e 20 74 68 65 20 72 6f 6f 74 20 64 69 72 65 63 |n the root direc| 00008460 74 6f 72 79 20 28 6f 72 20 65 6e 73 75 72 65 20 |tory (or ensure | 00008470 69 74 20 69 73 20 62 6f 6f 74 65 64 20 0a 20 20 |it is booted . | 00008480 20 20 20 20 62 79 20 79 6f 75 72 20 42 6f 6f 74 | by your Boot| 00008490 20 66 69 6c 65 29 2e 20 49 66 20 79 6f 75 20 68 | file). If you h| 000084a0 61 76 65 20 61 20 66 6c 6f 70 70 79 20 6f 6e 6c |ave a floppy onl| 000084b0 79 20 73 79 73 74 65 6d 20 70 75 74 20 69 74 20 |y system put it | 000084c0 6f 6e 20 0a 20 20 20 20 20 20 61 6c 6c 20 79 6f |on . all yo| 000084d0 75 72 20 64 69 73 6b 73 20 28 72 65 6d 6f 76 69 |ur disks (removi| 000084e0 6e 67 20 74 68 65 20 53 68 65 6c 6c 4c 69 62 20 |ng the ShellLib | 000084f0 66 69 6c 65 20 61 6e 64 20 6d 61 6b 69 6e 67 20 |file and making | 00008500 73 75 72 65 20 61 6c 6c 20 0a 20 20 20 20 20 20 |sure all . | 00008510 45 76 6e 74 53 68 65 6c 6c 20 61 70 70 6c 69 63 |EvntShell applic| 00008520 61 74 69 6f 6e 73 20 75 73 65 20 53 68 65 6c 6c |ations use Shell| 00008530 4c 69 62 52 54 20 77 69 6c 6c 20 68 65 6c 70 20 |LibRT will help | 00008540 73 61 76 65 20 64 69 73 6b 20 73 70 61 63 65 29 |save disk space)| 00008550 2e 20 0a 20 20 20 20 20 20 54 68 65 20 73 79 73 |. . The sys| 00008560 74 65 6d 20 6d 65 73 73 61 67 65 20 66 69 6c 65 |tem message file| 00008570 20 61 6e 64 20 76 61 72 69 6f 75 73 20 6d 6f 64 | and various mod| 00008580 75 6c 65 73 20 61 72 65 20 61 6c 73 6f 20 74 6f |ules are also to| 00008590 20 62 65 20 66 6f 75 6e 64 20 0a 20 20 20 20 20 | be found . | 000085a0 20 68 65 72 65 2e 20 0a 0c 0a 20 20 20 20 20 20 | here. ... | 000085b0 34 2e 31 30 20 48 61 6e 64 6c 69 6e 67 20 50 61 |4.10 Handling Pa| 000085c0 6e 65 73 20 0a 0a 20 20 20 20 20 20 41 20 70 61 |nes .. A pa| 000085d0 6e 65 20 77 69 6e 64 6f 77 20 69 73 20 61 20 77 |ne window is a w| 000085e0 69 6e 64 6f 77 20 61 74 74 61 63 68 65 64 20 74 |indow attached t| 000085f0 6f 20 61 20 70 61 72 65 6e 74 20 77 69 6e 64 6f |o a parent windo| 00008600 77 20 77 68 69 63 68 20 68 61 73 20 0a 20 20 20 |w which has . | 00008610 20 20 20 64 69 66 66 65 72 65 6e 74 20 70 72 6f | different pro| 00008620 70 65 72 74 69 65 73 20 74 6f 20 74 68 65 20 70 |perties to the p| 00008630 61 72 65 6e 74 2e 20 41 20 77 65 6c 6c 2d 6b 6e |arent. A well-kn| 00008640 6f 77 6e 20 65 78 61 6d 70 6c 65 20 69 73 20 74 |own example is t| 00008650 68 65 20 0a 20 20 20 20 20 20 27 54 6f 6f 6c 42 |he . 'ToolB| 00008660 6f 78 27 20 70 61 6e 65 20 61 74 74 61 63 68 65 |ox' pane attache| 00008670 64 20 74 6f 20 61 20 21 44 72 61 77 20 77 69 6e |d to a !Draw win| 00008680 64 6f 77 20 77 68 69 63 68 20 61 6c 77 61 79 73 |dow which always| 00008690 20 61 70 70 65 61 72 73 20 61 74 20 0a 20 20 20 | appears at . | 000086a0 20 20 20 74 68 65 20 74 6f 70 20 6c 65 66 74 20 | the top left | 000086b0 6f 66 20 74 68 65 20 70 61 72 65 6e 74 20 77 69 |of the parent wi| 000086c0 6e 64 6f 77 20 68 6f 77 65 76 65 72 20 74 68 65 |ndow however the| 000086d0 20 70 61 72 65 6e 74 20 77 69 6e 64 6f 77 20 69 | parent window i| 000086e0 73 20 0a 20 20 20 20 20 20 73 63 72 6f 6c 6c 65 |s . scrolle| 000086f0 64 2e 20 41 6e 6f 74 68 65 72 20 65 78 61 6d 70 |d. Another examp| 00008700 6c 65 20 63 6f 75 6c 64 20 62 65 20 61 20 70 61 |le could be a pa| 00008710 72 65 6e 74 20 77 69 6e 64 6f 77 20 77 69 74 68 |rent window with| 00008720 6f 75 74 20 0a 20 20 20 20 20 20 73 63 72 6f 6c |out . scrol| 00008730 6c 62 61 72 73 20 77 68 69 63 68 20 68 61 73 20 |lbars which has | 00008740 61 20 73 63 72 6f 6c 6c 69 6e 67 20 70 61 6e 65 |a scrolling pane| 00008750 20 61 74 74 61 63 68 65 64 20 74 6f 20 74 68 65 | attached to the| 00008760 20 77 6f 72 6b 20 61 72 65 61 20 0a 20 20 20 20 | work area . | 00008770 20 20 77 68 69 63 68 20 6d 69 67 68 74 20 62 65 | which might be| 00008780 20 75 73 65 64 20 69 6e 20 61 20 27 46 69 6e 64 | used in a 'Find| 00008790 46 69 6c 65 27 20 61 70 70 6c 69 63 61 74 69 6f |File' applicatio| 000087a0 6e 20 74 6f 20 64 69 73 70 6c 61 79 20 61 20 6c |n to display a l| 000087b0 69 73 74 20 0a 20 20 20 20 20 20 6f 66 20 66 69 |ist . of fi| 000087c0 6e 64 73 2e 20 0a 0a 20 20 20 20 20 20 50 61 6e |nds. .. Pan| 000087d0 65 73 20 61 72 65 20 63 72 65 61 74 65 64 20 75 |es are created u| 000087e0 73 69 6e 67 20 21 46 6f 72 6d 45 64 20 6f 72 20 |sing !FormEd or | 000087f0 73 69 6d 69 6c 61 72 20 77 69 74 68 20 74 68 65 |similar with the| 00008800 20 27 70 61 6e 65 27 20 66 6c 61 67 20 0a 20 20 | 'pane' flag . | 00008810 20 20 20 20 73 65 74 2e 20 41 20 63 61 6c 6c 20 | set. A call | 00008820 74 6f 20 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 |to PROCshell_Att| 00008830 61 63 68 50 61 6e 65 20 73 70 65 63 69 66 69 65 |achPane specifie| 00008840 73 20 77 68 69 63 68 20 70 61 6e 65 20 69 73 20 |s which pane is | 00008850 0a 20 20 20 20 20 20 61 74 74 61 63 68 65 64 20 |. attached | 00008860 74 6f 20 77 68 69 63 68 20 77 69 6e 64 6f 77 20 |to which window | 00008870 61 6e 64 20 74 68 65 20 70 6f 73 69 74 69 6f 6e |and the position| 00008880 20 6f 66 20 74 68 65 20 70 61 6e 65 2e 20 4d 75 | of the pane. Mu| 00008890 6c 74 69 70 6c 65 20 0a 20 20 20 20 20 20 70 61 |ltiple . pa| 000088a0 6e 65 73 20 6d 61 79 20 74 6f 20 61 74 74 61 63 |nes may to attac| 000088b0 68 65 64 20 74 6f 20 61 20 70 61 72 65 6e 74 20 |hed to a parent | 000088c0 77 69 6e 64 6f 77 20 28 73 65 65 20 74 68 65 20 |window (see the | 000088d0 65 78 61 6d 70 6c 65 20 0a 20 20 20 20 20 20 61 |example . a| 000088e0 70 70 6c 69 63 61 74 69 6f 6e 20 21 50 61 6e 65 |pplication !Pane| 000088f0 73 29 2e 20 0a 0a 20 20 20 20 20 20 54 68 65 20 |s). .. The | 00008900 6f 70 65 6e 69 6e 67 20 61 6e 64 20 63 6c 6f 73 |opening and clos| 00008910 69 6e 67 20 6f 66 20 70 61 6e 65 73 20 69 73 20 |ing of panes is | 00008920 68 61 6e 64 6c 65 64 20 74 6f 74 61 6c 6c 79 20 |handled totally | 00008930 62 79 20 74 68 65 20 73 68 65 6c 6c 20 0a 20 20 |by the shell . | 00008940 20 20 20 20 6c 69 62 72 61 72 79 20 2d 20 61 20 | library - a | 00008950 63 61 6c 6c 20 74 6f 20 50 52 4f 43 73 68 65 6c |call to PROCshel| 00008960 6c 5f 4f 70 65 6e 57 69 6e 64 6f 77 20 61 66 74 |l_OpenWindow aft| 00008970 65 72 20 61 74 74 61 63 68 69 6e 67 20 74 68 65 |er attaching the| 00008980 20 0a 20 20 20 20 20 20 70 61 6e 65 73 20 77 69 | . panes wi| 00008990 6c 6c 20 6f 70 65 6e 20 74 68 65 20 70 61 72 65 |ll open the pare| 000089a0 6e 74 20 77 69 6e 64 6f 77 20 61 6e 64 20 74 68 |nt window and th| 000089b0 65 20 70 61 6e 65 73 20 74 6f 67 65 74 68 65 72 |e panes together| 000089c0 2e 20 0a 0a 20 20 20 20 20 20 49 74 20 69 73 20 |. .. It is | 000089d0 6e 6f 72 6d 61 6c 6c 79 20 6e 65 63 65 73 73 61 |normally necessa| 000089e0 72 79 20 66 6f 72 20 63 65 72 74 61 69 6e 20 62 |ry for certain b| 000089f0 69 74 73 20 69 6e 20 74 68 65 20 77 69 6e 64 6f |its in the windo| 00008a00 77 20 0a 20 20 20 20 20 20 64 65 66 69 6e 69 74 |w . definit| 00008a10 69 6f 6e 20 62 6c 6f 63 6b 20 74 6f 20 62 65 20 |ion block to be | 00008a20 73 65 74 20 75 70 20 69 6e 20 61 20 73 70 65 63 |set up in a spec| 00008a30 69 61 6c 20 77 61 79 20 69 66 20 61 20 77 69 6e |ial way if a win| 00008a40 64 6f 77 20 69 73 20 74 6f 20 0a 20 20 20 20 20 |dow is to . | 00008a50 20 62 65 20 74 72 65 61 74 65 64 20 61 73 20 61 | be treated as a| 00008a60 20 70 61 6e 65 2e 20 54 68 69 73 20 69 73 20 6e | pane. This is n| 00008a70 6f 74 20 72 65 71 75 69 72 65 64 20 77 68 65 6e |ot required when| 00008a80 20 75 73 69 6e 67 20 74 68 65 20 0a 20 20 20 20 | using the . | 00008a90 20 20 45 76 6e 74 53 68 65 6c 6c 20 6c 69 62 72 | EvntShell libr| 00008aa0 61 72 79 20 61 73 20 74 68 65 20 61 63 74 20 6f |ary as the act o| 00008ab0 66 20 61 74 74 61 63 68 69 6e 67 20 74 68 65 20 |f attaching the | 00008ac0 65 76 65 6e 74 20 6d 61 6b 65 73 20 74 68 65 20 |event makes the | 00008ad0 0a 20 20 20 20 20 20 63 68 61 6e 67 65 73 20 6e |. changes n| 00008ae0 65 65 64 65 64 2e 20 0a 0a 20 20 20 20 20 20 59 |eeded. .. Y| 00008af0 6f 75 20 73 68 6f 75 6c 64 20 61 76 6f 69 64 20 |ou should avoid | 00008b00 61 74 74 61 63 68 69 6e 67 20 61 20 70 61 6e 65 |attaching a pane| 00008b10 20 74 6f 20 61 20 70 61 72 65 6e 74 20 77 69 6e | to a parent win| 00008b20 64 6f 77 20 77 68 65 72 65 20 69 74 20 69 73 20 |dow where it is | 00008b30 0a 20 20 20 20 20 20 70 6f 73 73 69 62 6c 65 20 |. possible | 00008b40 74 6f 20 72 65 73 69 7a 65 20 74 68 65 20 70 61 |to resize the pa| 00008b50 72 65 6e 74 20 69 6e 20 73 75 63 68 20 61 20 77 |rent in such a w| 00008b60 61 79 20 74 68 61 74 20 74 68 65 20 70 61 6e 65 |ay that the pane| 00008b70 20 6c 69 65 73 20 0a 20 20 20 20 20 20 6f 75 74 | lies . out| 00008b80 73 69 64 65 20 74 68 65 20 77 69 6e 64 6f 77 20 |side the window | 00008b90 69 74 20 69 73 20 61 74 74 61 63 68 65 64 20 74 |it is attached t| 00008ba0 6f 2e 20 54 68 69 73 20 77 69 6c 6c 20 63 61 75 |o. This will cau| 00008bb0 73 65 20 28 6e 6f 6e 2d 66 61 74 61 6c 29 20 0a |se (non-fatal) .| 00008bc0 20 20 20 20 20 20 70 72 6f 62 6c 65 6d 73 20 77 | problems w| 00008bd0 68 65 6e 20 74 68 65 20 77 69 6e 64 6f 77 73 20 |hen the windows | 00008be0 61 72 65 20 72 65 64 72 61 77 6e 2e 20 4d 6f 73 |are redrawn. Mos| 00008bf0 74 20 52 49 53 43 20 4f 53 20 70 72 6f 67 72 61 |t RISC OS progra| 00008c00 6d 73 20 61 6c 73 6f 20 0a 20 20 20 20 20 20 61 |ms also . a| 00008c10 76 6f 69 64 20 74 68 69 73 20 66 6f 72 20 74 68 |void this for th| 00008c20 65 20 73 61 6d 65 20 72 65 61 73 6f 6e 73 2e 20 |e same reasons. | 00008c30 0a 0a 20 20 20 20 20 20 57 68 65 6e 20 61 74 74 |.. When att| 00008c40 61 63 68 69 6e 67 20 61 20 70 61 6e 65 20 69 74 |aching a pane it| 00008c50 20 69 73 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 | is possible to | 00008c60 73 70 65 63 69 66 79 20 61 20 27 70 61 6e 65 20 |specify a 'pane | 00008c70 66 6c 61 67 27 20 0a 20 20 20 20 20 20 76 61 6c |flag' . val| 00008c80 75 65 20 77 68 69 63 68 20 64 65 74 65 72 6d 69 |ue which determi| 00008c90 6e 65 73 20 77 68 65 72 65 20 74 68 65 20 70 61 |nes where the pa| 00008ca0 6e 65 20 77 69 6c 6c 20 62 65 20 61 74 74 61 63 |ne will be attac| 00008cb0 68 65 64 20 61 6e 64 20 74 6f 20 0a 20 20 20 20 |hed and to . | 00008cc0 20 20 73 6f 6d 65 20 65 78 74 65 6e 74 20 68 6f | some extent ho| 00008cd0 77 20 69 74 20 77 69 6c 6c 20 62 65 68 61 76 65 |w it will behave| 00008ce0 20 77 68 65 6e 20 74 68 65 20 70 61 72 65 6e 74 | when the parent| 00008cf0 20 77 69 6e 64 6f 77 20 69 73 20 72 65 73 69 7a | window is resiz| 00008d00 65 64 2e 20 0a 20 20 20 20 20 20 54 68 65 20 63 |ed. . The c| 00008d10 75 72 72 65 6e 74 6c 79 20 76 61 6c 69 64 20 70 |urrently valid p| 00008d20 61 6e 65 20 66 6c 61 67 73 20 61 72 65 3a 20 0a |ane flags are: .| 00008d30 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 |. . | 00008d40 30 20 3d 20 61 74 74 61 63 68 65 64 20 74 6f 20 |0 = attached to | 00008d50 70 61 72 65 6e 74 20 77 69 6e 64 6f 77 20 77 6f |parent window wo| 00008d60 72 6b 20 61 72 65 61 0a 20 20 20 20 20 20 20 20 |rk area. | 00008d70 31 20 3d 20 61 74 74 61 63 68 65 64 20 74 6f 20 |1 = attached to | 00008d80 6c 65 66 74 20 65 64 67 65 20 6f 75 74 73 69 64 |left edge outsid| 00008d90 65 20 70 61 72 65 6e 74 0a 20 20 20 20 20 20 20 |e parent. | 00008da0 20 32 20 3d 20 61 74 74 61 63 68 65 64 20 74 6f | 2 = attached to| 00008db0 20 74 6f 70 20 65 64 67 65 0a 20 20 20 20 20 20 | top edge. | 00008dc0 20 20 33 20 3d 20 61 74 74 61 63 68 65 64 20 74 | 3 = attached t| 00008dd0 6f 20 6c 65 66 74 20 65 64 67 65 20 69 6e 73 69 |o left edge insi| 00008de0 64 65 20 70 61 72 65 6e 74 0a 20 20 20 20 20 20 |de parent. | 00008df0 20 20 34 20 3d 20 61 74 74 61 63 68 65 64 20 74 | 4 = attached t| 00008e00 6f 20 62 6f 74 74 6f 6d 20 65 64 67 65 0a 20 20 |o bottom edge. | 00008e10 20 20 20 20 20 20 35 20 3d 20 61 74 74 61 63 68 | 5 = attach| 00008e20 65 64 20 74 6f 20 72 69 67 68 74 20 65 64 67 65 |ed to right edge| 00008e30 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 |. . . | 00008e40 20 20 20 20 20 49 6e 20 63 61 73 65 73 20 31 2d | In cases 1-| 00008e50 35 20 74 68 65 20 6c 69 62 72 61 72 79 20 77 69 |5 the library wi| 00008e60 6c 6c 20 61 74 74 65 6d 70 74 20 74 6f 20 73 74 |ll attempt to st| 00008e70 72 65 74 63 68 20 74 68 65 20 70 61 6e 65 20 77 |retch the pane w| 00008e80 69 6e 64 6f 77 20 0a 20 20 20 20 20 20 73 6f 20 |indow . so | 00008e90 74 68 61 74 20 69 74 20 77 69 6c 6c 20 66 69 6c |that it will fil| 00008ea0 6c 20 74 68 65 20 77 68 6f 6c 65 20 77 69 64 74 |l the whole widt| 00008eb0 68 20 6f 72 20 64 65 70 74 68 20 6f 66 20 74 68 |h or depth of th| 00008ec0 65 20 70 61 72 65 6e 74 20 0a 20 20 20 20 20 20 |e parent . | 00008ed0 77 69 6e 64 6f 77 2e 20 0a 0a 20 20 20 20 20 20 |window. .. | 00008ee0 34 2e 31 31 20 4f 75 74 6c 69 6e 65 20 46 6f 6e |4.11 Outline Fon| 00008ef0 74 73 20 0a 0a 20 20 20 20 20 20 54 68 65 20 45 |ts .. The E| 00008f00 76 6e 74 53 68 65 6c 6c 20 4c 69 62 72 61 72 79 |vntShell Library| 00008f10 20 73 75 70 70 6f 72 74 73 20 4f 75 74 6c 69 6e | supports Outlin| 00008f20 65 20 46 6f 6e 74 73 20 69 6e 20 74 77 6f 20 77 |e Fonts in two w| 00008f30 61 79 73 20 61 74 20 74 68 65 20 0a 20 20 20 20 |ays at the . | 00008f40 20 20 6d 6f 6d 65 6e 74 2e 20 46 69 72 73 74 6c | moment. Firstl| 00008f50 79 20 4a 6f 72 69 73 20 52 f6 6c 69 6e 67 27 73 |y Joris R.ling's| 00008f60 20 46 6f 6e 74 4d 65 6e 75 20 6d 6f 64 75 6c 65 | FontMenu module| 00008f70 20 69 73 20 75 73 65 64 20 74 6f 20 64 69 73 70 | is used to disp| 00008f80 6c 61 79 20 0a 20 20 20 20 20 20 61 20 6d 65 6e |lay . a men| 00008f90 75 20 6f 66 20 61 6c 6c 20 61 76 61 69 6c 61 62 |u of all availab| 00008fa0 6c 65 20 66 6f 6e 74 73 20 6f 6e 20 74 68 65 20 |le fonts on the | 00008fb0 73 79 73 74 65 6d 2c 20 61 6e 64 20 73 65 63 6f |system, and seco| 00008fc0 6e 64 6c 79 20 74 68 65 20 0a 20 20 20 20 20 20 |ndly the . | 00008fd0 77 69 6e 64 6f 77 20 74 65 6d 70 6c 61 74 65 20 |window template | 00008fe0 6c 6f 61 64 69 6e 67 20 72 6f 75 74 69 6e 65 20 |loading routine | 00008ff0 61 6c 6c 6f 77 73 20 69 63 6f 6e 73 20 61 6e 64 |allows icons and| 00009000 20 77 69 6e 64 6f 77 20 74 69 74 6c 65 73 20 74 | window titles t| 00009010 6f 20 0a 20 20 20 20 20 20 75 73 65 20 66 6f 6e |o . use fon| 00009020 74 73 2e 20 0a 0c 0a 20 20 20 20 20 20 52 6f 75 |ts. ... Rou| 00009030 74 69 6e 65 73 20 61 72 65 20 70 72 6f 76 69 64 |tines are provid| 00009040 65 64 20 74 6f 20 61 74 74 61 63 68 20 61 20 66 |ed to attach a f| 00009050 6f 6e 74 20 6d 65 6e 75 20 74 6f 20 61 6e 20 65 |ont menu to an e| 00009060 78 69 73 74 69 6e 67 20 6d 65 6e 75 20 0a 20 20 |xisting menu . | 00009070 20 20 20 20 61 73 20 61 20 73 75 62 6d 65 6e 75 | as a submenu| 00009080 20 28 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 | (PROCshell_Atta| 00009090 63 68 46 6f 6e 74 53 75 62 4d 65 6e 75 29 2c 20 |chFontSubMenu), | 000090a0 6f 72 20 74 6f 20 6f 70 65 6e 20 74 68 65 20 66 |or to open the f| 000090b0 6f 6e 74 20 0a 20 20 20 20 20 20 6d 65 6e 75 20 |ont . menu | 000090c0 61 73 20 61 20 6d 65 6e 75 20 69 6e 20 69 74 73 |as a menu in its| 000090d0 20 6f 77 6e 20 72 69 67 68 74 20 28 50 52 4f 43 | own right (PROC| 000090e0 73 68 65 6c 6c 5f 41 74 74 61 63 68 46 6f 6e 74 |shell_AttachFont| 000090f0 4d 65 6e 75 29 2e 20 49 66 20 0a 20 20 20 20 20 |Menu). If . | 00009100 20 74 68 65 20 75 73 65 72 20 6d 61 6b 65 73 20 | the user makes | 00009110 61 20 76 61 6c 69 64 20 66 6f 6e 74 20 73 65 6c |a valid font sel| 00009120 65 63 74 69 6f 6e 20 74 68 65 20 66 6f 6e 74 20 |ection the font | 00009130 6e 61 6d 65 20 63 61 6e 20 62 65 20 0a 20 20 20 |name can be . | 00009140 20 20 20 72 65 74 72 69 65 76 65 64 20 28 77 69 | retrieved (wi| 00009150 74 68 20 46 4e 73 68 65 6c 6c 5f 46 6f 6e 74 4d |th FNshell_FontM| 00009160 65 6e 75 47 65 74 4c 61 73 74 53 65 6c 65 63 74 |enuGetLastSelect| 00009170 65 64 46 6f 6e 74 29 20 66 6f 72 20 75 73 65 20 |edFont) for use | 00009180 69 6e 20 0a 20 20 20 20 20 20 74 68 65 20 75 73 |in . the us| 00009190 65 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 2e 20 |er application. | 000091a0 43 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20 46 |Changes to the F| 000091b0 6f 6e 74 24 50 61 74 68 20 76 61 72 69 61 62 6c |ont$Path variabl| 000091c0 65 20 73 75 63 68 20 61 73 20 0a 20 20 20 20 20 |e such as . | 000091d0 20 61 64 64 69 6e 67 20 6f 72 20 72 65 6d 6f 76 | adding or remov| 000091e0 69 6e 67 20 66 6f 6e 74 20 64 69 72 65 63 74 6f |ing font directo| 000091f0 72 69 65 73 20 61 72 65 20 64 65 74 65 63 74 65 |ries are detecte| 00009200 64 20 61 6e 64 20 74 68 65 20 66 6f 6e 74 20 0a |d and the font .| 00009210 20 20 20 20 20 20 6d 65 6e 75 20 72 65 62 75 69 | menu rebui| 00009220 6c 74 20 61 73 20 6e 65 63 65 73 73 61 72 79 2e |lt as necessary.| 00009230 20 0a 0a 20 20 20 20 20 20 49 74 20 77 69 6c 6c | .. It will| 00009240 20 6e 6f 74 2c 20 68 6f 77 65 76 65 72 2c 20 64 | not, however, d| 00009250 65 74 65 63 74 20 66 6f 6e 74 73 20 62 65 69 6e |etect fonts bein| 00009260 67 20 61 64 64 65 64 20 6f 72 20 72 65 6d 6f 76 |g added or remov| 00009270 65 64 20 66 72 6f 6d 20 61 6e 20 0a 20 20 20 20 |ed from an . | 00009280 20 20 65 78 69 73 74 69 6e 67 20 66 6f 6e 74 20 | existing font | 00009290 64 69 72 65 63 74 6f 72 79 20 77 68 69 6c 65 20 |directory while | 000092a0 74 68 65 20 45 76 6e 74 53 68 65 6c 6c 20 61 70 |the EvntShell ap| 000092b0 70 6c 69 63 61 74 69 6f 6e 20 69 73 20 0a 20 20 |plication is . | 000092c0 20 20 20 20 72 75 6e 6e 69 6e 67 2e 20 49 74 20 | running. It | 000092d0 61 70 70 65 61 72 73 20 74 68 61 74 20 61 20 72 |appears that a r| 000092e0 65 2d 62 6f 6f 74 20 69 73 20 72 65 71 75 69 72 |e-boot is requir| 000092f0 65 64 20 74 6f 20 73 6f 72 74 20 74 68 69 6e 67 |ed to sort thing| 00009300 73 20 6f 75 74 20 0a 20 20 20 20 20 20 61 66 74 |s out . aft| 00009310 65 72 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 |er the contents | 00009320 6f 66 20 74 68 65 20 66 6f 6e 74 20 64 69 72 65 |of the font dire| 00009330 63 74 6f 72 69 65 73 20 68 61 76 65 20 63 68 61 |ctories have cha| 00009340 6e 67 65 64 2e 20 4f 68 20 77 65 6c 6c 2c 20 0a |nged. Oh well, .| 00009350 20 20 20 20 20 20 69 74 20 73 65 65 6d 73 20 74 | it seems t| 00009360 68 61 74 20 61 20 6c 6f 74 20 6f 66 20 6f 74 68 |hat a lot of oth| 00009370 65 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 |er applications | 00009380 63 61 6e 27 74 20 63 6f 70 65 20 77 69 74 68 20 |can't cope with | 00009390 74 68 69 73 20 0a 20 20 20 20 20 20 65 69 74 68 |this . eith| 000093a0 65 72 21 20 0a 0a 20 20 20 20 20 20 54 68 65 20 |er! .. The | 000093b0 46 6f 6e 74 4d 65 6e 75 20 6d 6f 64 75 6c 65 20 |FontMenu module | 000093c0 63 72 65 61 74 65 73 20 61 20 6d 65 6e 75 20 69 |creates a menu i| 000093d0 6e 20 74 68 65 20 72 65 6c 6f 63 61 74 61 62 6c |n the relocatabl| 000093e0 65 20 6d 6f 64 75 6c 65 20 61 72 65 61 20 0a 20 |e module area . | 000093f0 20 20 20 20 20 77 68 69 63 68 20 69 73 20 73 68 | which is sh| 00009400 61 72 65 64 20 62 65 74 77 65 65 6e 20 61 6c 6c |ared between all| 00009410 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 77 69 | applications wi| 00009420 73 68 69 6e 67 20 74 6f 20 75 73 65 20 69 74 2e |shing to use it.| 00009430 20 41 73 20 61 20 0a 20 20 20 20 20 20 66 6f 6e | As a . fon| 00009440 74 20 6d 65 6e 75 20 70 6f 74 65 6e 74 69 61 6c |t menu potential| 00009450 6c 79 20 74 61 6b 65 73 20 75 70 20 61 20 6c 6f |ly takes up a lo| 00009460 74 20 6f 66 20 73 70 61 63 65 20 74 68 69 73 20 |t of space this | 00009470 69 73 20 61 20 76 65 72 79 20 0a 20 20 20 20 20 |is a very . | 00009480 20 65 66 66 69 63 69 65 6e 74 20 77 61 79 20 6f | efficient way o| 00009490 66 20 68 61 6e 64 6c 69 6e 67 20 69 74 2c 20 65 |f handling it, e| 000094a0 73 70 65 63 69 61 6c 6c 79 20 61 73 20 74 68 65 |specially as the| 000094b0 20 6d 65 6e 75 20 69 73 20 6c 61 69 64 20 6f 75 | menu is laid ou| 000094c0 74 20 0a 20 20 20 20 20 20 73 6f 20 74 68 61 74 |t . so that| 000094d0 20 69 74 20 69 73 20 65 61 73 69 65 72 20 74 6f | it is easier to| 000094e0 20 75 73 65 20 74 68 61 6e 20 61 20 73 74 72 61 | use than a stra| 000094f0 69 67 68 74 20 6c 69 73 74 20 6f 66 20 66 6f 6e |ight list of fon| 00009500 74 73 2e 20 0a 0a 20 20 20 20 20 20 41 20 68 65 |ts. .. A he| 00009510 6c 70 20 73 79 73 74 65 6d 20 63 6f 6e 74 61 69 |lp system contai| 00009520 6e 69 6e 67 20 74 68 65 20 66 75 6c 6c 20 46 6f |ning the full Fo| 00009530 6e 74 4d 65 6e 75 20 64 6f 63 75 6d 65 6e 74 61 |ntMenu documenta| 00009540 74 69 6f 6e 20 69 73 20 0a 20 20 20 20 20 20 73 |tion is . s| 00009550 75 70 70 6c 69 65 64 20 77 69 74 68 20 74 68 65 |upplied with the| 00009560 20 45 76 6e 74 53 68 65 6c 6c 20 6c 69 62 72 61 | EvntShell libra| 00009570 72 79 20 61 73 20 69 74 20 69 73 20 61 20 72 65 |ry as it is a re| 00009580 71 75 69 72 65 6d 65 6e 74 20 74 68 61 74 20 0a |quirement that .| 00009590 20 20 20 20 20 20 74 68 65 20 74 68 65 20 6d 6f | the the mo| 000095a0 64 75 6c 65 20 61 6e 64 20 69 74 73 20 64 6f 63 |dule and its doc| 000095b0 75 6d 65 6e 74 61 74 69 6f 6e 20 6d 75 73 74 20 |umentation must | 000095c0 62 65 20 73 75 70 70 6c 69 65 64 20 74 6f 67 65 |be supplied toge| 000095d0 74 68 65 72 2e 20 0a 20 20 20 20 20 20 48 6f 77 |ther. . How| 000095e0 65 76 65 72 2c 20 69 74 20 69 73 20 75 6e 6c 69 |ever, it is unli| 000095f0 6b 65 6c 79 20 74 68 61 74 20 74 68 65 20 53 57 |kely that the SW| 00009600 49 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 |Is provided by t| 00009610 68 65 20 6d 6f 64 75 6c 65 20 77 69 6c 6c 20 0a |he module will .| 00009620 20 20 20 20 20 20 6e 65 65 64 20 74 6f 20 62 65 | need to be| 00009630 20 63 61 6c 6c 65 64 20 62 79 20 74 68 65 20 75 | called by the u| 00009640 73 65 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 |ser application | 00009650 61 73 20 74 68 65 20 6c 69 62 72 61 72 79 20 63 |as the library c| 00009660 6f 64 65 20 0a 20 20 20 20 20 20 70 65 72 66 6f |ode . perfo| 00009670 72 6d 73 20 74 68 65 20 6e 65 63 65 73 73 61 72 |rms the necessar| 00009680 79 20 61 63 74 69 6f 6e 73 2e 20 0a 0a 20 20 20 |y actions. .. | 00009690 20 20 20 54 68 65 20 65 78 61 6d 70 6c 65 20 61 | The example a| 000096a0 70 70 6c 69 63 61 74 69 6f 6e 20 21 52 65 64 72 |pplication !Redr| 000096b0 61 77 20 64 65 6d 6f 6e 73 74 72 61 74 65 73 20 |aw demonstrates | 000096c0 74 68 65 20 75 73 65 20 6f 66 20 74 68 65 73 65 |the use of these| 000096d0 20 0a 20 20 20 20 20 20 72 6f 75 74 69 6e 65 73 | . routines| 000096e0 2e 20 0a 0a 20 20 20 20 20 20 34 2e 31 32 20 49 |. .. 4.12 I| 000096f0 6e 74 65 72 61 63 74 69 76 65 20 48 65 6c 70 20 |nteractive Help | 00009700 0a 0a 20 20 20 20 20 20 54 68 65 20 45 76 6e 74 |.. The Evnt| 00009710 53 68 65 6c 6c 20 6c 69 62 72 61 72 79 20 73 75 |Shell library su| 00009720 70 70 6f 72 74 73 20 41 63 6f 72 6e 27 73 20 49 |pports Acorn's I| 00009730 6e 74 65 72 61 63 74 69 76 65 20 48 65 6c 70 20 |nteractive Help | 00009740 0a 20 20 20 20 20 20 61 70 70 6c 69 63 61 74 69 |. applicati| 00009750 6f 6e 20 21 48 65 6c 70 20 62 79 20 73 65 61 72 |on !Help by sear| 00009760 63 68 69 6e 67 20 69 63 6f 6e 20 76 61 6c 69 64 |ching icon valid| 00009770 61 74 69 6f 6e 20 73 74 72 69 6e 67 73 20 66 6f |ation strings fo| 00009780 72 20 74 68 65 20 0a 20 20 20 20 20 20 27 49 27 |r the . 'I'| 00009790 20 63 6f 6d 6d 61 6e 64 20 28 61 73 20 72 65 63 | command (as rec| 000097a0 6f 6d 6d 65 6e 64 65 64 20 62 79 20 74 68 65 20 |ommended by the | 000097b0 61 75 74 68 6f 72 20 6f 66 20 74 68 65 20 49 6e |author of the In| 000097c0 74 65 72 66 61 63 65 20 0a 20 20 20 20 20 20 6d |terface . m| 000097d0 6f 64 75 6c 65 29 20 66 6f 72 20 61 20 6d 65 73 |odule) for a mes| 000097e0 73 61 67 65 20 74 61 67 2e 20 0a 0a 20 20 20 20 |sage tag. .. | 000097f0 20 20 54 68 65 20 6d 65 73 73 61 67 65 20 62 65 | The message be| 00009800 6c 6f 6e 67 69 6e 67 20 74 6f 20 74 68 65 20 74 |longing to the t| 00009810 61 67 20 77 69 6c 6c 20 62 65 20 6c 6f 6f 6b 65 |ag will be looke| 00009820 64 20 75 70 20 61 6e 64 20 73 65 6e 74 20 74 6f |d up and sent to| 00009830 20 0a 20 20 20 20 20 20 21 48 65 6c 70 20 28 69 | . !Help (i| 00009840 66 20 21 48 65 6c 70 20 69 73 20 72 75 6e 6e 69 |f !Help is runni| 00009850 6e 67 29 2e 20 41 6e 20 65 78 61 6d 70 6c 65 20 |ng). An example | 00009860 77 6f 75 6c 64 20 62 65 20 61 20 76 61 6c 69 64 |would be a valid| 00009870 61 74 69 6f 6e 20 0a 20 20 20 20 20 20 73 74 72 |ation . str| 00009880 69 6e 67 20 6f 66 20 22 69 4d 65 73 73 54 61 67 |ing of "iMessTag| 00009890 30 31 22 2c 20 77 68 65 72 65 20 74 68 65 20 66 |01", where the f| 000098a0 69 6c 65 20 27 4d 65 73 73 61 67 65 73 27 20 63 |ile 'Messages' c| 000098b0 6f 6e 74 61 69 6e 73 20 74 68 65 20 0a 20 20 20 |ontains the . | 000098c0 20 20 20 6c 69 6e 65 20 27 4d 65 73 73 54 61 67 | line 'MessTag| 000098d0 30 31 3a 54 68 69 73 20 69 73 20 61 20 74 65 73 |01:This is a tes| 000098e0 74 27 2e 20 27 54 68 69 73 20 69 73 20 61 20 74 |t'. 'This is a t| 000098f0 65 73 74 27 20 77 6f 75 6c 64 20 62 65 20 74 68 |est' would be th| 00009900 65 20 0a 20 20 20 20 20 20 6d 65 73 73 61 67 65 |e . message| 00009910 20 64 69 73 70 6c 61 79 65 64 2e 20 0a 0a 20 20 | displayed. .. | 00009920 20 20 20 20 49 74 20 69 73 20 61 6c 73 6f 20 70 | It is also p| 00009930 6f 73 73 69 62 6c 65 20 74 6f 20 61 74 74 61 63 |ossible to attac| 00009940 68 20 61 20 6d 65 73 73 61 67 65 20 74 61 67 20 |h a message tag | 00009950 74 6f 20 61 20 77 69 6e 64 6f 77 20 6f 72 20 61 |to a window or a| 00009960 20 0a 20 20 20 20 20 20 77 69 6e 64 6f 77 2f 69 | . window/i| 00009970 63 6f 6e 20 75 73 69 6e 67 20 50 52 4f 43 73 68 |con using PROCsh| 00009980 65 6c 6c 5f 41 74 74 61 63 68 48 65 6c 70 54 61 |ell_AttachHelpTa| 00009990 67 2e 20 41 20 6d 65 73 73 61 67 65 20 74 61 67 |g. A message tag| 000099a0 20 69 73 20 61 20 0a 20 20 20 20 20 20 73 74 72 | is a . str| 000099b0 69 6e 67 20 63 6f 6e 73 69 73 74 69 6e 67 20 6f |ing consisting o| 000099c0 66 20 6e 6f 74 20 6d 6f 72 65 20 74 68 61 6e 20 |f not more than | 000099d0 31 31 20 63 68 61 72 61 63 74 65 72 73 20 6c 6f |11 characters lo| 000099e0 6e 67 20 61 6e 64 20 0a 20 20 20 20 20 20 72 65 |ng and . re| 000099f0 70 72 65 73 65 6e 74 73 20 61 20 6d 65 73 73 61 |presents a messa| 00009a00 67 65 20 73 74 72 69 6e 67 20 74 6f 20 62 65 20 |ge string to be | 00009a10 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 27 4d 65 |found in the 'Me| 00009a20 73 73 61 67 65 73 27 20 66 69 6c 65 2e 20 0a 0a |ssages' file. ..| 00009a30 20 20 20 20 20 20 34 2e 31 33 20 55 73 65 72 20 | 4.13 User | 00009a40 52 65 64 72 61 77 73 20 0a 0a 20 20 20 20 20 20 |Redraws .. | 00009a50 34 2e 31 33 2e 31 20 53 69 6d 70 6c 65 20 43 61 |4.13.1 Simple Ca| 00009a60 73 65 73 20 0a 0a 20 20 20 20 20 20 42 79 20 27 |ses .. By '| 00009a70 53 69 6d 70 6c 65 20 43 61 73 65 73 27 20 49 20 |Simple Cases' I | 00009a80 6d 65 61 6e 20 74 65 78 74 2c 20 6c 69 6e 65 73 |mean text, lines| 00009a90 2c 20 61 72 63 73 2c 20 66 69 6c 6c 65 64 20 73 |, arcs, filled s| 00009aa0 68 61 70 65 73 20 65 74 63 2e 20 49 6e 20 0a 20 |hapes etc. In . | 00009ab0 20 20 20 20 20 6f 74 68 65 72 20 77 6f 72 64 73 | other words| 00009ac0 20 61 6e 79 74 68 69 6e 67 20 74 68 61 74 20 69 | anything that i| 00009ad0 74 20 69 73 20 65 61 73 79 20 66 6f 72 20 74 68 |t is easy for th| 00009ae0 65 20 70 72 6f 67 72 61 6d 20 74 6f 20 72 65 64 |e program to red| 00009af0 72 61 77 20 0a 20 20 20 20 20 20 71 75 69 63 6b |raw . quick| 00009b00 6c 79 20 2d 20 74 68 69 73 20 65 78 63 6c 75 64 |ly - this exclud| 00009b10 65 73 20 6d 61 70 73 20 6f 66 20 74 68 65 20 77 |es maps of the w| 00009b20 6f 72 6c 64 20 61 6e 64 20 61 6e 79 20 6b 69 6e |orld and any kin| 00009b30 64 20 6f 66 20 72 61 6e 64 6f 6d 20 0a 20 20 20 |d of random . | 00009b40 20 20 20 64 69 73 70 6c 61 79 2e 20 46 6f 72 20 | display. For | 00009b50 74 68 65 73 65 20 63 61 73 65 73 20 69 74 20 69 |these cases it i| 00009b60 73 20 6d 75 63 68 20 66 61 73 74 65 72 20 74 6f |s much faster to| 00009b70 20 72 65 64 69 72 65 63 74 20 74 68 65 20 73 63 | redirect the sc| 00009b80 72 65 65 6e 20 0a 20 20 20 20 20 20 6f 75 74 70 |reen . outp| 00009b90 75 74 20 69 6e 74 6f 20 61 20 73 70 72 69 74 65 |ut into a sprite| 00009ba0 20 28 73 65 65 20 74 68 65 20 6e 65 78 74 20 73 | (see the next s| 00009bb0 65 63 74 69 6f 6e 29 2e 20 0a 0c 0a 20 20 20 20 |ection). ... | 00009bc0 20 20 55 73 69 6e 67 20 74 68 65 20 65 78 61 6d | Using the exam| 00009bd0 70 6c 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 |ple application | 00009be0 79 6f 75 20 63 72 65 61 74 65 64 20 65 61 72 6c |you created earl| 00009bf0 69 65 72 20 28 6f 72 20 63 72 65 61 74 65 20 61 |ier (or create a| 00009c00 20 0a 20 20 20 20 20 20 6e 65 77 20 6f 6e 65 20 | . new one | 00009c10 75 73 69 6e 67 20 41 70 70 42 75 69 6c 64 29 20 |using AppBuild) | 00009c20 61 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e |add the followin| 00009c30 67 20 6c 69 6e 65 20 74 6f 20 0a 20 20 20 20 20 |g line to . | 00009c40 20 50 52 4f 43 53 65 74 55 70 5f 57 69 6e 64 6f | PROCSetUp_Windo| 00009c50 77 73 3a 20 0a 0a 20 20 20 20 20 20 0a 20 20 20 |ws: .. . | 00009c60 20 20 20 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 | PROCshell_Att| 00009c70 61 63 68 55 73 65 72 52 65 64 72 61 77 28 6d 61 |achUserRedraw(ma| 00009c80 69 6e 77 25 2c 22 5f 72 65 64 72 61 77 22 29 0a |inw%,"_redraw").| 00009c90 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 | . . | 00009ca0 20 20 20 20 61 6e 64 20 61 64 64 20 74 68 65 20 | and add the | 00009cb0 66 6f 6c 6c 6f 77 69 6e 67 20 46 4e 20 64 65 66 |following FN def| 00009cc0 69 6e 69 74 69 6f 6e 3a 20 0a 0a 20 20 20 20 20 |inition: .. | 00009cd0 20 0a 20 20 20 20 20 20 44 45 46 20 46 4e 5f 72 | . DEF FN_r| 00009ce0 65 64 72 61 77 28 62 6c 6b 25 2c 78 30 25 2c 79 |edraw(blk%,x0%,y| 00009cf0 30 25 29 0a 20 20 20 20 20 20 52 45 4d 20 73 65 |0%). REM se| 00009d00 74 20 63 6f 6c 6f 75 72 20 66 6f 72 20 63 69 72 |t colour for cir| 00009d10 63 6c 65 20 2d 20 63 6f 6c 6f 75 72 73 20 61 72 |cle - colours ar| 00009d20 65 20 6e 75 6d 62 65 72 65 64 20 30 2d 31 35 21 |e numbered 0-15!| 00009d30 0a 20 20 20 20 20 20 52 45 4d 20 64 72 61 77 20 |. REM draw | 00009d40 74 68 65 20 63 69 72 63 6c 65 2e 2e 0a 20 20 20 |the circle... | 00009d50 20 20 20 53 59 53 20 22 57 69 6d 70 5f 53 65 74 | SYS "Wimp_Set| 00009d60 43 6f 6c 6f 75 72 22 2c 31 31 0a 20 20 20 20 20 |Colour",11. | 00009d70 20 43 49 52 43 4c 45 20 46 49 4c 4c 20 78 30 25 | CIRCLE FILL x0%| 00009d80 2b 32 30 30 2c 79 30 25 2d 32 30 30 2c 31 32 30 |+200,y0%-200,120| 00009d90 0a 20 20 20 20 20 20 52 45 4d 20 73 65 74 20 63 |. REM set c| 00009da0 6f 6c 6f 75 72 20 66 6f 72 20 74 65 78 74 2e 2e |olour for text..| 00009db0 2e 0a 20 20 20 20 20 20 53 59 53 20 22 57 69 6d |.. SYS "Wim| 00009dc0 70 5f 53 65 74 43 6f 6c 6f 75 72 22 2c 38 20 3a |p_SetColour",8 :| 00009dd0 52 45 4d 20 63 6f 6c 6f 75 72 73 20 61 72 65 20 |REM colours are | 00009de0 6e 75 6d 62 65 72 65 64 20 30 2d 31 35 21 0a 20 |numbered 0-15!. | 00009df0 20 20 20 20 20 4d 4f 56 45 20 78 30 25 2b 38 30 | MOVE x0%+80| 00009e00 2c 79 30 25 2d 33 34 30 3a 50 52 49 4e 54 20 22 |,y0%-340:PRINT "| 00009e10 54 68 69 73 20 69 73 20 61 6e 20 65 78 61 6d 70 |This is an examp| 00009e20 6c 65 20 6f 66 22 0a 20 20 20 20 20 20 4d 4f 56 |le of". MOV| 00009e30 45 20 78 30 25 2b 34 30 2c 79 30 25 2d 33 38 30 |E x0%+40,y0%-380| 00009e40 3a 50 52 49 4e 54 20 22 75 73 65 72 20 64 72 61 |:PRINT "user dra| 00009e50 77 6e 20 74 65 78 74 20 61 6e 64 20 67 72 61 70 |wn text and grap| 00009e60 68 69 63 73 22 0a 20 20 20 20 20 20 4d 4f 56 45 |hics". MOVE| 00009e70 20 78 30 25 2b 39 35 2c 79 30 25 2d 34 32 30 3a | x0%+95,y0%-420:| 00009e80 50 52 49 4e 54 20 22 69 6e 20 61 20 64 65 73 6b |PRINT "in a desk| 00009e90 74 6f 70 20 77 69 6e 64 6f 77 22 0a 20 20 20 20 |top window". | 00009ea0 20 20 3d 30 0a 20 20 20 20 20 20 0a 20 20 20 20 | =0. . | 00009eb0 20 20 0a 20 20 20 20 20 20 54 68 65 20 72 6f 75 | . The rou| 00009ec0 74 69 6e 65 20 74 68 61 74 20 61 74 74 61 63 68 |tine that attach| 00009ed0 65 73 20 74 68 65 20 72 65 64 72 61 77 20 65 76 |es the redraw ev| 00009ee0 65 6e 74 20 61 6c 73 6f 20 61 6c 74 65 72 73 20 |ent also alters | 00009ef0 74 68 65 20 0a 20 20 20 20 20 20 27 66 6c 61 67 |the . 'flag| 00009f00 73 27 20 6f 66 20 74 68 65 20 77 69 6e 64 6f 77 |s' of the window| 00009f10 20 73 6f 20 74 68 61 74 20 74 68 65 20 27 41 75 | so that the 'Au| 00009f20 74 6f 20 72 65 64 72 61 77 27 20 62 69 74 20 69 |to redraw' bit i| 00009f30 73 20 73 65 74 20 75 70 20 0a 20 20 20 20 20 20 |s set up . | 00009f40 63 6f 72 72 65 63 74 6c 79 2e 20 57 68 65 6e 20 |correctly. When | 00009f50 79 6f 75 20 72 75 6e 20 74 68 65 20 61 70 70 6c |you run the appl| 00009f60 69 63 61 74 69 6f 6e 20 61 6e 64 20 6f 70 65 6e |ication and open| 00009f70 20 74 68 65 20 6d 61 69 6e 20 77 69 6e 64 6f 77 | the main window| 00009f80 20 0a 20 20 20 20 20 20 6e 6f 77 2c 20 61 20 63 | . now, a c| 00009f90 69 72 63 6c 65 20 61 6e 64 20 73 6f 6d 65 20 74 |ircle and some t| 00009fa0 65 78 74 20 77 69 6c 6c 20 61 70 70 65 61 72 20 |ext will appear | 00009fb0 69 6e 20 74 68 65 20 77 69 6e 64 6f 77 2e 20 49 |in the window. I| 00009fc0 66 20 61 6e 6f 74 68 65 72 20 0a 20 20 20 20 20 |f another . | 00009fd0 20 77 69 6e 64 6f 77 20 69 73 20 6d 6f 76 65 64 | window is moved| 00009fe0 20 6f 76 65 72 20 74 68 69 73 20 6f 6e 65 2c 20 | over this one, | 00009ff0 6e 6f 74 65 20 74 68 61 74 20 74 68 65 20 77 69 |note that the wi| 0000a000 6e 64 6f 77 20 69 73 20 63 6f 72 72 65 63 74 6c |ndow is correctl| 0000a010 79 20 0a 20 20 20 20 20 20 72 65 64 72 61 77 6e |y . redrawn| 0000a020 2e 20 0a 0a 20 20 20 20 20 20 54 68 65 20 70 61 |. .. The pa| 0000a030 72 61 6d 65 74 65 72 73 20 78 30 25 20 61 6e 64 |rameters x0% and| 0000a040 20 79 30 25 20 66 6f 72 20 74 68 65 20 72 65 64 | y0% for the red| 0000a050 72 61 77 20 72 6f 75 74 69 6e 65 20 61 72 65 20 |raw routine are | 0000a060 74 68 65 20 0a 20 20 20 20 20 20 63 6f 6f 72 64 |the . coord| 0000a070 69 6e 61 74 65 73 20 6f 66 20 74 68 65 20 74 6f |inates of the to| 0000a080 70 20 6c 65 66 74 20 63 6f 72 6e 65 72 20 6f 66 |p left corner of| 0000a090 20 74 68 65 20 77 69 6e 64 6f 77 2e 20 4e 6f 74 | the window. Not| 0000a0a0 65 20 74 68 61 74 20 79 20 0a 20 20 20 20 20 20 |e that y . | 0000a0b0 63 6f 6f 72 64 69 6e 61 74 65 73 20 61 72 65 20 |coordinates are | 0000a0c0 6e 65 67 61 74 69 76 65 21 20 54 72 79 20 65 78 |negative! Try ex| 0000a0d0 70 65 72 69 6d 65 6e 74 69 6e 67 20 77 69 74 68 |perimenting with| 0000a0e0 20 6f 74 68 65 72 20 64 72 61 77 69 6e 67 20 0a | other drawing .| 0000a0f0 20 20 20 20 20 20 63 6f 6d 6d 61 6e 64 73 20 61 | commands a| 0000a100 6e 64 20 70 75 74 74 69 6e 67 20 74 65 78 74 20 |nd putting text | 0000a110 69 6e 20 64 69 66 66 65 72 65 6e 74 20 70 6c 61 |in different pla| 0000a120 63 65 73 20 69 6e 20 74 68 65 20 77 69 6e 64 6f |ces in the windo| 0000a130 77 20 74 6f 20 0a 20 20 20 20 20 20 67 65 74 20 |w to . get | 0000a140 74 68 65 20 68 61 6e 67 20 6f 66 20 74 68 69 73 |the hang of this| 0000a150 2e 20 0a 0a 20 20 20 20 20 20 34 2e 31 33 2e 32 |. .. 4.13.2| 0000a160 20 44 72 61 77 69 6e 67 20 49 6e 74 6f 20 41 20 | Drawing Into A | 0000a170 53 70 72 69 74 65 20 0a 0a 20 20 20 20 20 20 57 |Sprite .. W| 0000a180 69 74 68 20 61 20 6d 6f 72 65 20 63 6f 6d 70 6c |ith a more compl| 0000a190 69 63 61 74 65 64 20 6f 72 20 72 61 6e 64 6f 6d |icated or random| 0000a1a0 20 64 69 73 70 6c 61 79 20 79 6f 75 20 6e 65 65 | display you nee| 0000a1b0 64 20 74 6f 20 73 65 74 20 75 70 20 61 20 0a 20 |d to set up a . | 0000a1c0 20 20 20 20 20 73 70 72 69 74 65 20 74 6f 20 64 | sprite to d| 0000a1d0 72 61 77 20 69 6e 74 6f 2e 20 54 68 65 20 65 78 |raw into. The ex| 0000a1e0 61 6d 70 6c 65 20 61 70 70 6c 69 63 61 74 69 6f |ample applicatio| 0000a1f0 6e 20 21 52 65 64 72 61 77 32 20 73 68 6f 77 73 |n !Redraw2 shows| 0000a200 20 68 6f 77 20 0a 20 20 20 20 20 20 74 6f 20 64 | how . to d| 0000a210 6f 20 74 68 69 73 2e 20 0a 0a 20 20 20 20 20 20 |o this. .. | 0000a220 4e 6f 74 65 20 69 6e 20 74 68 69 73 20 63 61 73 |Note in this cas| 0000a230 65 20 74 68 61 74 20 74 68 65 20 64 69 73 70 6c |e that the displ| 0000a240 61 79 20 77 69 74 68 69 6e 20 74 68 65 20 77 69 |ay within the wi| 0000a250 6e 64 6f 77 20 69 73 20 61 6e 69 6d 61 74 65 64 |ndow is animated| 0000a260 20 0a 20 20 20 20 20 20 62 79 20 63 61 6c 6c 69 | . by calli| 0000a270 6e 67 20 74 68 65 20 70 6c 6f 74 74 69 6e 67 20 |ng the plotting | 0000a280 72 6f 75 74 69 6e 65 20 61 74 20 65 76 65 72 79 |routine at every| 0000a290 20 6e 75 6c 6c 20 65 76 65 6e 74 20 72 65 63 65 | null event rece| 0000a2a0 69 76 65 64 2e 20 0a 20 20 20 20 20 20 54 68 65 |ived. . The| 0000a2b0 72 65 20 61 6c 73 6f 20 68 61 73 20 74 6f 20 62 |re also has to b| 0000a2c0 65 20 74 77 6f 20 72 65 64 72 61 77 69 6e 67 20 |e two redrawing | 0000a2d0 72 6f 75 74 69 6e 65 73 2c 20 6f 6e 65 20 63 61 |routines, one ca| 0000a2e0 6c 6c 65 64 20 77 68 65 6e 20 79 6f 75 20 0a 20 |lled when you . | 0000a2f0 20 20 20 20 20 77 61 6e 74 20 74 68 65 20 64 69 | want the di| 0000a300 73 70 6c 61 79 20 72 65 64 72 61 77 6e 20 61 6e |splay redrawn an| 0000a310 64 20 6f 6e 65 20 66 6f 72 20 77 68 65 6e 20 74 |d one for when t| 0000a320 68 65 20 77 69 6d 70 20 77 61 6e 74 73 20 69 74 |he wimp wants it| 0000a330 20 0a 20 20 20 20 20 20 72 65 64 72 61 77 6e 20 | . redrawn | 0000a340 28 68 65 6e 63 65 20 74 68 65 20 63 61 6c 6c 20 |(hence the call | 0000a350 74 6f 20 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 |to PROCshell_Att| 0000a360 61 63 68 55 73 65 72 52 65 64 72 61 77 29 2e 20 |achUserRedraw). | 0000a370 49 6e 20 62 6f 74 68 20 0a 20 20 20 20 20 20 63 |In both . c| 0000a380 61 73 65 73 20 69 74 20 69 73 20 6e 65 63 65 73 |ases it is neces| 0000a390 73 61 72 79 20 6a 75 73 74 20 74 6f 20 72 65 70 |sary just to rep| 0000a3a0 6c 6f 74 20 74 68 65 20 73 70 72 69 74 65 2e 20 |lot the sprite. | 0000a3b0 0a 0a 20 20 20 20 20 20 34 2e 31 34 20 43 6f 6d |.. 4.14 Com| 0000a3c0 70 6c 65 78 20 49 63 6f 6e 73 20 0a 0a 20 20 20 |plex Icons .. | 0000a3d0 20 20 20 34 2e 31 34 2e 31 20 42 75 6d 70 20 49 | 4.14.1 Bump I| 0000a3e0 63 6f 6e 73 20 0a 0a 20 20 20 20 20 20 42 75 6d |cons .. Bum| 0000a3f0 70 20 69 63 6f 6e 73 20 61 72 65 20 73 69 6d 70 |p icons are simp| 0000a400 6c 79 20 61 20 70 61 69 72 20 6f 66 20 28 75 73 |ly a pair of (us| 0000a410 75 61 6c 6c 79 21 29 20 61 72 72 6f 77 20 73 68 |ually!) arrow sh| 0000a420 61 70 65 64 20 69 63 6f 6e 73 20 0a 20 20 20 20 |aped icons . | 0000a430 20 20 74 68 61 74 20 65 66 66 65 63 74 20 74 68 | that effect th| 0000a440 65 20 76 61 6c 75 65 20 64 69 73 70 6c 61 79 65 |e value displaye| 0000a450 64 20 69 6e 20 61 20 74 68 69 72 64 20 69 63 6f |d in a third ico| 0000a460 6e 2e 20 54 68 65 20 45 76 6e 74 53 68 65 6c 6c |n. The EvntShell| 0000a470 20 0a 20 20 20 20 20 20 6c 69 62 72 61 72 79 20 | . library | 0000a480 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 63 72 |allows you to cr| 0000a490 65 61 74 65 20 74 68 69 73 20 65 66 66 65 63 74 |eate this effect| 0000a4a0 20 77 69 74 68 20 6f 6e 65 20 63 61 6c 6c 20 74 | with one call t| 0000a4b0 6f 20 0a 20 20 20 20 20 20 50 52 4f 43 73 68 65 |o . PROCshe| 0000a4c0 6c 6c 5f 41 74 74 61 63 68 42 75 6d 70 49 63 6f |ll_AttachBumpIco| 0000a4d0 6e 48 61 6e 64 6c 65 72 2e 20 0a 0c 0a 20 20 20 |nHandler. ... | 0000a4e0 20 20 20 4e 6f 74 65 20 74 68 61 74 20 63 6c 69 | Note that cli| 0000a4f0 63 6b 69 6e 67 20 6f 6e 20 61 20 62 75 6d 70 20 |cking on a bump | 0000a500 69 63 6f 6e 20 77 68 69 63 68 20 41 44 4a 55 53 |icon which ADJUS| 0000a510 54 20 68 61 73 20 74 68 65 20 6f 70 70 6f 73 69 |T has the opposi| 0000a520 74 65 20 0a 20 20 20 20 20 20 65 66 66 65 63 74 |te . effect| 0000a530 20 74 6f 20 75 73 69 6e 67 20 53 45 4c 45 43 54 | to using SELECT| 0000a540 2c 20 69 2e 65 2e 20 41 44 4a 55 53 54 20 6f 6e |, i.e. ADJUST on| 0000a550 20 74 68 65 20 64 65 63 72 65 6d 65 6e 74 20 69 | the decrement i| 0000a560 63 6f 6e 20 0a 20 20 20 20 20 20 61 63 74 75 61 |con . actua| 0000a570 6c 6c 79 20 69 6e 63 72 65 61 73 65 73 20 74 68 |lly increases th| 0000a580 65 20 76 61 6c 75 65 2e 20 54 68 69 73 20 69 73 |e value. This is| 0000a590 20 6e 6f 72 6d 61 6c 20 52 49 53 43 20 4f 53 20 | normal RISC OS | 0000a5a0 62 65 68 61 76 69 6f 75 72 20 0a 20 20 20 20 20 |behaviour . | 0000a5b0 20 61 6e 64 20 69 73 20 69 6e 74 65 6e 64 65 64 | and is intended| 0000a5c0 20 74 6f 20 61 76 6f 69 64 20 75 6e 6e 65 63 65 | to avoid unnece| 0000a5d0 73 73 61 72 79 20 6d 6f 75 73 65 20 6d 6f 76 65 |ssary mouse move| 0000a5e0 6d 65 6e 74 73 2e 20 0a 0a 20 20 20 20 20 20 53 |ments. .. S| 0000a5f0 65 65 20 74 68 65 20 21 56 42 61 73 65 32 20 64 |ee the !VBase2 d| 0000a600 65 6d 6f 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 |emo application | 0000a610 66 6f 72 20 61 6e 20 65 78 61 6d 70 6c 65 20 6f |for an example o| 0000a620 66 20 69 74 73 20 75 73 65 2e 20 0a 0a 20 20 20 |f its use. .. | 0000a630 20 20 20 34 2e 31 35 20 4d 65 6d 6f 72 79 20 4d | 4.15 Memory M| 0000a640 61 6e 61 67 65 6d 65 6e 74 20 0a 0a 20 20 20 20 |anagement .. | 0000a650 20 20 41 20 63 72 75 63 69 61 6c 20 65 6c 65 6d | A crucial elem| 0000a660 65 6e 74 20 6f 66 20 74 68 65 20 45 76 65 6e 74 |ent of the Event| 0000a670 53 68 65 6c 6c 20 6c 69 62 72 61 72 79 20 69 73 |Shell library is| 0000a680 20 74 68 65 20 75 73 65 20 6f 66 20 6d 65 6d 6f | the use of memo| 0000a690 72 79 20 0a 20 20 20 20 20 20 6d 61 6e 61 67 65 |ry . manage| 0000a6a0 6d 65 6e 74 20 72 6f 75 74 69 6e 65 73 20 6f 72 |ment routines or| 0000a6b0 69 67 69 6e 61 6c 6c 79 20 70 75 62 6c 69 73 68 |iginally publish| 0000a6c0 65 64 20 69 6e 20 52 69 73 63 20 55 73 65 72 20 |ed in Risc User | 0000a6d0 6d 61 67 61 7a 69 6e 65 20 0a 20 20 20 20 20 20 |magazine . | 0000a6e0 61 6e 64 20 75 73 65 64 20 77 69 74 68 20 70 65 |and used with pe| 0000a6f0 72 6d 69 73 73 69 6f 6e 2e 20 4d 61 6e 79 20 6c |rmission. Many l| 0000a700 69 62 72 61 72 79 20 72 6f 75 74 69 6e 65 73 20 |ibrary routines | 0000a710 72 65 71 75 69 72 65 20 73 6f 6d 65 20 0a 20 20 |require some . | 0000a720 20 20 20 20 6d 65 6d 6f 72 79 20 77 6f 72 6b 73 | memory works| 0000a730 70 61 63 65 20 61 6e 64 20 74 68 65 79 20 6f 62 |pace and they ob| 0000a740 74 61 69 6e 20 74 68 69 73 20 62 79 20 63 61 6c |tain this by cal| 0000a750 6c 69 6e 67 20 0a 20 20 20 20 20 20 46 4e 73 68 |ling . FNsh| 0000a760 65 6c 6c 5f 48 65 61 70 42 6c 6f 63 6b 46 65 74 |ell_HeapBlockFet| 0000a770 63 68 28 62 79 74 65 73 5f 72 65 71 75 69 72 65 |ch(bytes_require| 0000a780 64 29 20 77 68 69 63 68 20 72 65 74 75 72 6e 73 |d) which returns| 0000a790 20 74 68 65 20 61 64 64 72 65 73 73 20 0a 20 20 | the address . | 0000a7a0 20 20 20 20 6f 66 20 74 68 65 20 61 6c 6c 6f 63 | of the alloc| 0000a7b0 61 74 65 64 20 6d 65 6d 6f 72 79 20 61 6e 64 20 |ated memory and | 0000a7c0 72 65 6c 65 61 73 65 20 69 74 20 77 68 65 6e 20 |release it when | 0000a7d0 74 68 65 79 20 61 72 65 20 66 69 6e 69 73 68 65 |they are finishe| 0000a7e0 64 20 0a 20 20 20 20 20 20 77 69 74 68 20 50 52 |d . with PR| 0000a7f0 4f 43 73 68 65 6c 6c 5f 48 65 61 70 42 6c 6f 63 |OCshell_HeapBloc| 0000a800 6b 52 65 74 75 72 6e 2e 20 0a 0a 20 20 20 20 20 |kReturn. .. | 0000a810 20 54 68 69 73 20 69 73 20 76 69 74 61 6c 20 66 | This is vital f| 0000a820 6f 72 20 61 76 6f 69 64 69 6e 67 20 27 73 69 64 |or avoiding 'sid| 0000a830 65 20 65 66 66 65 63 74 73 27 20 63 61 75 73 65 |e effects' cause| 0000a840 64 20 62 79 20 75 73 69 6e 67 20 74 68 65 20 0a |d by using the .| 0000a850 20 20 20 20 20 20 73 61 6d 65 20 62 6c 6f 63 6b | same block| 0000a860 20 6f 66 20 6d 65 6d 6f 72 79 20 66 6f 72 20 64 | of memory for d| 0000a870 69 66 66 65 72 65 6e 74 20 70 75 72 70 6f 73 65 |ifferent purpose| 0000a880 73 20 61 73 20 6d 6f 73 74 20 57 49 4d 50 20 70 |s as most WIMP p| 0000a890 72 6f 67 72 61 6d 73 20 0a 20 20 20 20 20 20 74 |rograms . t| 0000a8a0 65 6e 64 20 74 6f 20 64 6f 2e 20 45 71 75 61 6c |end to do. Equal| 0000a8b0 6c 79 20 69 6d 70 6f 72 74 61 6e 74 20 69 73 20 |ly important is | 0000a8c0 74 68 65 20 66 61 63 74 20 74 68 61 74 20 61 73 |the fact that as| 0000a8d0 20 74 68 65 20 72 6f 75 74 69 6e 65 73 20 0a 20 | the routines . | 0000a8e0 20 20 20 20 20 61 72 65 20 77 72 69 74 74 65 6e | are written| 0000a8f0 20 69 6e 20 41 52 4d 20 63 6f 64 65 20 74 68 65 | in ARM code the| 0000a900 79 20 61 72 65 20 65 78 74 72 65 6d 65 6c 79 20 |y are extremely | 0000a910 66 61 73 74 2e 20 0a 0a 20 20 20 20 20 20 41 6e |fast. .. An| 0000a920 6f 74 68 65 72 20 70 6f 69 6e 74 20 74 6f 20 6e |other point to n| 0000a930 6f 74 65 20 69 73 20 74 68 61 74 20 74 68 69 73 |ote is that this| 0000a940 20 6d 65 6d 6f 72 79 20 69 73 20 63 6c 61 69 6d | memory is claim| 0000a950 65 64 20 66 72 6f 6d 20 74 68 65 20 0a 20 20 20 |ed from the . | 0000a960 20 20 20 63 75 72 72 65 6e 74 20 77 69 6d 70 20 | current wimp | 0000a970 73 6c 6f 74 20 61 6e 64 20 6e 6f 74 20 74 68 65 |slot and not the| 0000a980 20 52 4d 41 20 28 52 65 6c 6f 63 61 74 61 62 6c | RMA (Relocatabl| 0000a990 65 20 4d 6f 64 75 6c 65 20 41 72 65 61 29 2e 20 |e Module Area). | 0000a9a0 54 68 69 73 20 0a 20 20 20 20 20 20 65 6e 73 75 |This . ensu| 0000a9b0 72 65 73 20 74 68 61 74 20 61 6c 6c 20 6f 66 20 |res that all of | 0000a9c0 74 68 65 20 6d 65 6d 6f 72 79 20 63 6c 61 69 6d |the memory claim| 0000a9d0 65 64 20 62 79 20 74 68 65 20 61 70 70 6c 69 63 |ed by the applic| 0000a9e0 61 74 69 6f 6e 20 69 73 20 0a 20 20 20 20 20 20 |ation is . | 0000a9f0 72 65 6c 65 61 73 65 64 20 62 61 63 6b 20 74 6f |released back to| 0000aa00 20 74 68 65 20 66 72 65 65 20 70 6f 6f 6c 20 77 | the free pool w| 0000aa10 68 65 6e 20 74 68 65 20 61 70 70 6c 69 63 61 74 |hen the applicat| 0000aa20 69 6f 6e 20 71 75 69 74 73 20 2d 20 74 68 69 73 |ion quits - this| 0000aa30 20 0a 20 20 20 20 20 20 69 73 20 6e 6f 74 20 74 | . is not t| 0000aa40 68 65 20 63 61 73 65 20 69 66 20 6d 65 6d 6f 72 |he case if memor| 0000aa50 79 20 69 73 20 63 6c 61 69 6d 65 64 20 66 72 6f |y is claimed fro| 0000aa60 6d 20 74 68 65 20 52 4d 41 2e 20 49 74 20 69 73 |m the RMA. It is| 0000aa70 20 6f 6e 6c 79 20 0a 20 20 20 20 20 20 70 6f 73 | only . pos| 0000aa80 73 69 62 6c 65 20 74 6f 20 72 65 63 6c 61 69 6d |sible to reclaim| 0000aa90 20 52 4d 41 20 6d 65 6d 6f 72 79 20 69 66 20 74 | RMA memory if t| 0000aaa0 68 65 20 66 72 65 65 20 73 70 61 63 65 20 69 73 |he free space is| 0000aab0 20 61 74 20 74 68 65 20 74 6f 70 20 6f 66 20 0a | at the top of .| 0000aac0 20 20 20 20 20 20 74 68 65 20 52 4d 41 20 77 68 | the RMA wh| 0000aad0 69 63 68 20 6c 65 61 64 73 20 74 6f 20 74 68 65 |ich leads to the| 0000aae0 20 52 4d 41 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 | RMA allocation | 0000aaf0 67 72 61 64 75 61 6c 6c 79 20 67 72 6f 77 69 6e |gradually growin| 0000ab00 67 20 61 73 20 0a 20 20 20 20 20 20 79 6f 75 20 |g as . you | 0000ab10 72 75 6e 20 61 6e 64 20 71 75 69 74 20 61 70 70 |run and quit app| 0000ab20 6c 69 63 61 74 69 6f 6e 73 2e 20 0a 0a 20 20 20 |lications. .. | 0000ab30 20 20 20 55 6e 66 6f 72 74 75 6e 61 74 65 6c 79 | Unfortunately| 0000ab40 20 28 69 6e 20 74 68 65 20 61 75 74 68 6f 72 73 | (in the authors| 0000ab50 20 76 69 65 77 21 29 20 74 68 65 20 4d 65 6e 75 | view!) the Menu| 0000ab60 55 74 69 6c 73 20 6d 6f 64 75 6c 65 20 75 73 65 |Utils module use| 0000ab70 73 20 0a 20 20 20 20 20 20 74 68 65 20 52 4d 41 |s . the RMA| 0000ab80 20 66 6f 72 20 73 74 6f 72 61 67 65 20 6f 66 20 | for storage of | 0000ab90 69 6e 64 69 72 65 63 74 65 64 20 64 61 74 61 20 |indirected data | 0000aba0 61 6e 64 20 6d 65 6e 75 20 73 74 72 75 63 74 75 |and menu structu| 0000abb0 72 65 73 2e 20 0a 20 20 20 20 20 20 48 6f 70 65 |res. . Hope| 0000abc0 66 75 6c 6c 79 20 74 68 69 73 20 64 61 74 61 20 |fully this data | 0000abd0 67 65 74 73 20 70 75 74 20 69 6e 20 61 6e 79 20 |gets put in any | 0000abe0 73 6d 61 6c 6c 20 61 76 61 69 6c 61 62 6c 65 20 |small available | 0000abf0 62 6c 6f 63 6b 73 20 73 6f 20 0a 20 20 20 20 20 |blocks so . | 0000ac00 20 74 68 61 74 20 74 68 65 20 52 4d 41 20 61 6c | that the RMA al| 0000ac10 6c 6f 63 61 74 69 6f 6e 20 64 6f 65 73 20 6e 6f |location does no| 0000ac20 74 20 69 6e 63 72 65 61 73 65 2e 20 0a 0a 20 20 |t increase. .. | 0000ac30 20 20 20 20 59 6f 75 20 61 72 65 20 73 74 72 6f | You are stro| 0000ac40 6e 67 6c 79 20 61 64 76 69 73 65 64 20 74 6f 20 |ngly advised to | 0000ac50 75 73 65 20 74 68 65 20 73 75 70 70 6c 69 65 64 |use the supplied| 0000ac60 20 6d 65 6d 6f 72 79 20 6d 61 6e 61 67 65 6d 65 | memory manageme| 0000ac70 6e 74 20 0a 20 20 20 20 20 20 72 6f 75 74 69 6e |nt . routin| 0000ac80 65 73 20 69 6e 20 74 68 65 20 75 73 65 72 20 61 |es in the user a| 0000ac90 70 70 6c 69 63 61 74 69 6f 6e 20 73 68 6f 75 6c |pplication shoul| 0000aca0 64 20 79 6f 75 20 72 65 71 75 69 72 65 20 73 74 |d you require st| 0000acb0 6f 72 61 67 65 20 66 6f 72 20 0a 20 20 20 20 20 |orage for . | 0000acc0 20 64 61 74 61 2c 20 6f 72 20 74 65 6d 70 6f 72 | data, or tempor| 0000acd0 61 72 79 20 62 6c 6f 63 6b 73 20 66 6f 72 20 75 |ary blocks for u| 0000ace0 73 65 20 77 69 74 68 20 53 57 49 20 63 61 6c 6c |se with SWI call| 0000acf0 73 20 66 6f 72 20 65 78 61 6d 70 6c 65 2e 20 54 |s for example. T| 0000ad00 68 65 20 0a 20 20 20 20 20 20 74 69 6d 65 20 70 |he . time p| 0000ad10 65 6e 61 6c 74 79 20 66 6f 72 20 64 6f 69 6e 67 |enalty for doing| 0000ad20 20 74 68 69 73 20 69 73 20 76 65 72 79 20 73 6d | this is very sm| 0000ad30 61 6c 6c 20 61 6e 64 20 69 6e 20 61 6e 79 20 63 |all and in any c| 0000ad40 61 73 65 20 72 65 73 75 6c 74 73 20 0a 20 20 20 |ase results . | 0000ad50 20 20 20 69 6e 20 61 20 6d 6f 72 65 20 72 65 6c | in a more rel| 0000ad60 69 61 62 6c 65 20 61 6e 64 20 65 61 73 69 65 72 |iable and easier| 0000ad70 20 74 6f 20 6d 61 69 6e 74 61 69 6e 20 61 70 70 | to maintain app| 0000ad80 6c 69 63 61 74 69 6f 6e 2e 20 0a 0a 20 20 20 20 |lication. .. | 0000ad90 20 20 34 2e 31 36 20 45 72 72 6f 72 20 48 61 6e | 4.16 Error Han| 0000ada0 64 6c 69 6e 67 20 0a 0a 20 20 20 20 20 20 54 68 |dling .. Th| 0000adb0 65 20 45 76 6e 74 53 68 65 6c 6c 20 6c 69 62 72 |e EvntShell libr| 0000adc0 61 72 79 20 73 65 74 73 20 75 70 20 61 20 64 65 |ary sets up a de| 0000add0 66 61 75 6c 74 20 65 72 72 6f 72 20 68 61 6e 64 |fault error hand| 0000ade0 6c 65 72 20 66 6f 72 20 79 6f 75 20 69 66 20 0a |ler for you if .| 0000adf0 20 20 20 20 20 20 79 6f 75 20 62 75 69 6c 64 20 | you build | 0000ae00 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 |the application | 0000ae10 77 69 74 68 20 41 70 70 42 75 69 6c 64 2e 20 53 |with AppBuild. S| 0000ae20 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 31 2e 32 |ince version 1.2| 0000ae30 31 20 6f 66 20 0a 20 20 20 20 20 20 74 68 65 20 |1 of . the | 0000ae40 6c 69 62 72 61 72 79 20 73 75 70 70 6f 72 74 20 |library support | 0000ae50 68 61 73 20 62 65 65 6e 20 70 72 6f 76 69 64 65 |has been provide| 0000ae60 64 20 66 6f 72 20 4a 6f 65 20 54 61 79 6c 6f 72 |d for Joe Taylor| 0000ae70 27 73 20 21 54 68 72 6f 77 42 61 63 6b 20 0a 20 |'s !ThrowBack . | 0000ae80 20 20 20 20 20 61 70 70 6c 69 63 61 74 69 6f 6e | application| 0000ae90 20 77 68 69 63 68 20 77 61 73 20 6f 6e 20 74 68 | which was on th| 0000aea0 65 20 53 65 70 74 65 6d 62 65 72 20 31 39 39 33 |e September 1993| 0000aeb0 20 63 6f 76 65 72 20 64 69 73 6b 20 6f 66 20 0a | cover disk of .| 0000aec0 20 20 20 20 20 20 41 72 63 68 69 6d 65 64 65 73 | Archimedes| 0000aed0 20 57 6f 72 6c 64 2e 20 54 68 69 73 20 74 72 61 | World. This tra| 0000aee0 70 73 20 65 72 72 6f 72 73 20 69 6e 20 74 68 65 |ps errors in the| 0000aef0 20 70 72 6f 67 72 61 6d 20 61 6e 64 20 6f 70 65 | program and ope| 0000af00 6e 73 20 61 20 0a 20 20 20 20 20 20 77 69 6e 64 |ns a . wind| 0000af10 6f 77 20 73 68 6f 77 69 6e 67 20 74 68 65 20 6c |ow showing the l| 0000af20 6f 63 61 74 69 6f 6e 20 61 6e 64 20 74 79 70 65 |ocation and type| 0000af30 20 6f 66 20 74 68 65 20 65 72 72 6f 72 2e 20 43 | of the error. C| 0000af40 6c 69 63 6b 69 6e 67 20 6f 6e 20 0a 20 20 20 20 |licking on . | 0000af50 20 20 74 68 65 20 65 72 72 6f 72 20 6c 69 6e 65 | the error line| 0000af60 20 74 68 65 6e 20 6c 6f 61 64 73 20 74 68 65 20 | then loads the | 0000af70 66 69 6c 65 20 69 6e 74 6f 20 79 6f 75 72 20 65 |file into your e| 0000af80 64 69 74 6f 72 20 77 69 74 68 20 74 68 65 20 0a |ditor with the .| 0000af90 20 20 20 20 20 20 6f 66 66 65 6e 64 69 6e 67 20 | offending | 0000afa0 6c 69 6e 65 20 68 69 67 68 6c 69 67 68 74 65 64 |line highlighted| 0000afb0 20 77 68 69 63 68 20 69 73 20 61 20 72 65 61 6c | which is a real| 0000afc0 20 74 69 6d 65 73 61 76 65 72 2e 20 0a 0a 20 20 | timesaver. .. | 0000afd0 20 20 20 20 49 74 20 69 73 20 6e 6f 74 20 6e 65 | It is not ne| 0000afe0 63 65 73 73 61 72 79 20 74 6f 20 68 61 76 65 20 |cessary to have | 0000aff0 21 54 68 72 6f 77 42 61 63 6b 2c 20 69 66 20 69 |!ThrowBack, if i| 0000b000 74 20 69 73 20 6e 6f 74 20 70 72 65 73 65 6e 74 |t is not present| 0000b010 20 61 20 0a 20 20 20 20 20 20 73 74 61 6e 64 61 | a . standa| 0000b020 72 64 20 65 72 72 6f 72 20 77 69 6e 64 6f 77 20 |rd error window | 0000b030 77 69 6c 6c 20 70 6f 70 20 75 70 20 69 6e 73 74 |will pop up inst| 0000b040 65 61 64 2e 20 0a 0a 20 20 20 20 20 20 54 68 65 |ead. .. The| 0000b050 20 75 73 65 72 20 61 70 70 6c 69 63 61 74 69 6f | user applicatio| 0000b060 6e 20 63 61 6e 20 67 65 6e 65 72 61 74 65 20 65 |n can generate e| 0000b070 72 72 6f 72 73 20 6f 6e 20 70 75 72 70 6f 73 65 |rrors on purpose| 0000b080 20 61 73 20 61 20 77 61 79 20 6f 66 20 0a 20 20 | as a way of . | 0000b090 20 20 20 20 61 62 6f 72 74 69 6e 67 20 61 6e 20 | aborting an | 0000b0a0 6f 70 65 72 61 74 69 6f 6e 2e 20 43 6f 6e 74 72 |operation. Contr| 0000b0b0 6f 6c 20 77 69 6c 6c 20 74 68 65 6e 20 72 65 74 |ol will then ret| 0000b0c0 75 72 6e 20 74 6f 20 74 68 65 20 77 69 6d 70 20 |urn to the wimp | 0000b0d0 70 6f 6c 6c 20 0a 20 20 20 20 20 20 6c 6f 6f 70 |poll . loop| 0000b0e0 2e 20 54 68 69 73 20 69 73 20 64 6f 6e 65 20 77 |. This is done w| 0000b0f0 69 74 68 20 61 20 63 61 6c 6c 20 74 6f 20 50 52 |ith a call to PR| 0000b100 4f 43 73 68 65 6c 6c 5f 4f 4b 20 77 68 69 63 68 |OCshell_OK which| 0000b110 20 6f 70 65 6e 73 20 61 6e 20 0a 20 20 20 20 20 | opens an . | 0000b120 20 65 72 72 6f 72 20 62 6f 78 20 77 69 74 68 20 | error box with | 0000b130 61 20 75 73 65 72 20 64 65 66 69 6e 65 64 20 6d |a user defined m| 0000b140 65 73 73 61 67 65 20 61 6e 64 20 61 6e 20 4f 4b |essage and an OK| 0000b150 20 62 75 74 74 6f 6e 2e 20 4e 6f 74 65 20 74 68 | button. Note th| 0000b160 61 74 20 0a 20 20 20 20 20 20 61 6e 20 65 72 72 |at . an err| 0000b170 6f 72 20 67 65 6e 65 72 61 74 65 64 20 61 6e 79 |or generated any| 0000b180 20 6f 74 68 65 72 20 77 61 79 20 77 69 6c 6c 20 | other way will | 0000b190 65 6e 64 20 74 68 65 20 61 70 70 6c 69 63 61 74 |end the applicat| 0000b1a0 69 6f 6e 20 77 69 74 68 6f 75 74 20 0a 0c 0a 20 |ion without ... | 0000b1b0 20 20 20 20 20 66 75 72 74 68 65 72 20 77 61 72 | further war| 0000b1c0 6e 69 6e 67 2e 20 0a 0a 20 20 20 20 20 20 54 68 |ning. .. Th| 0000b1d0 69 73 20 77 69 6c 6c 20 62 65 20 69 6d 70 72 6f |is will be impro| 0000b1e0 76 65 64 20 69 6e 20 61 20 6c 61 74 65 72 20 72 |ved in a later r| 0000b1f0 65 6c 65 61 73 65 20 6f 66 20 74 68 65 20 6c 69 |elease of the li| 0000b200 62 72 61 72 79 2c 20 0a 20 20 20 20 20 20 65 73 |brary, . es| 0000b210 70 65 63 69 61 6c 6c 79 20 77 69 74 68 20 72 65 |pecially with re| 0000b220 67 61 72 64 20 74 6f 20 27 6f 75 74 20 6f 66 20 |gard to 'out of | 0000b230 6d 65 6d 6f 72 79 27 20 65 72 72 6f 72 73 20 66 |memory' errors f| 0000b240 72 6f 6d 20 74 68 65 20 68 65 61 70 20 0a 20 20 |rom the heap . | 0000b250 20 20 20 20 6d 61 6e 61 67 65 72 20 61 73 20 61 | manager as a| 0000b260 74 20 74 68 65 20 6d 6f 6d 65 6e 74 20 72 75 6e |t the moment run| 0000b270 6e 69 6e 67 20 6f 75 74 20 6f 66 20 6d 65 6d 6f |ning out of memo| 0000b280 72 79 20 61 62 6f 72 74 73 20 74 68 65 20 75 73 |ry aborts the us| 0000b290 65 72 20 0a 20 20 20 20 20 20 61 70 70 6c 69 63 |er . applic| 0000b2a0 61 74 69 6f 6e 20 69 6e 73 74 65 61 64 20 6f 66 |ation instead of| 0000b2b0 20 67 69 76 69 6e 67 20 74 68 65 20 75 73 65 72 | giving the user| 0000b2c0 20 61 20 63 68 61 6e 63 65 20 74 6f 20 66 72 65 | a chance to fre| 0000b2d0 65 20 75 70 20 6d 6f 72 65 20 0a 20 20 20 20 20 |e up more . | 0000b2e0 20 6d 65 6d 6f 72 79 2e 20 0a 0a 20 20 20 20 20 | memory. .. | 0000b2f0 20 41 6c 73 6f 20 6e 6f 74 65 20 74 68 61 74 20 | Also note that | 0000b300 74 68 65 20 4d 65 6e 75 55 74 69 6c 73 20 6d 6f |the MenuUtils mo| 0000b310 64 75 6c 65 20 61 70 70 65 61 72 73 20 74 6f 20 |dule appears to | 0000b320 73 65 74 20 75 70 20 69 74 73 20 6f 77 6e 20 0a |set up its own .| 0000b330 20 20 20 20 20 20 65 72 72 6f 72 20 68 61 6e 64 | error hand| 0000b340 6c 65 72 20 77 68 69 6c 65 20 63 61 6c 6c 69 6e |ler while callin| 0000b350 67 20 74 68 65 20 4d 65 6e 75 53 65 6c 65 63 74 |g the MenuSelect| 0000b360 20 72 6f 75 74 69 6e 65 20 28 74 68 65 20 6f 6e | routine (the on| 0000b370 65 20 79 6f 75 20 0a 20 20 20 20 20 20 73 70 65 |e you . spe| 0000b380 63 69 66 79 20 77 69 6c 6c 20 62 65 20 63 61 6c |cify will be cal| 0000b390 6c 65 64 20 77 68 65 6e 20 61 20 73 65 6c 65 63 |led when a selec| 0000b3a0 74 69 6f 6e 20 69 73 20 6d 61 64 65 20 66 6f 72 |tion is made for| 0000b3b0 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 0a 20 | a particular . | 0000b3c0 20 20 20 20 20 6d 65 6e 75 20 69 74 65 6d 29 2e | menu item).| 0000b3d0 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 | This means that| 0000b3e0 20 61 6e 79 20 65 72 72 6f 72 73 20 69 6e 20 74 | any errors in t| 0000b3f0 68 69 73 20 72 6f 75 74 69 6e 65 20 61 70 70 65 |his routine appe| 0000b400 61 72 20 74 6f 20 0a 20 20 20 20 20 20 62 65 20 |ar to . be | 0000b410 69 67 6e 6f 72 65 64 20 2d 20 69 6e 20 66 61 63 |ignored - in fac| 0000b420 74 20 74 68 65 20 72 6f 75 74 69 6e 65 20 6a 75 |t the routine ju| 0000b430 73 74 20 61 62 6f 72 74 73 20 61 74 20 74 68 65 |st aborts at the| 0000b440 20 65 72 72 6f 72 20 0a 20 20 20 20 20 20 6c 6f | error . lo| 0000b450 63 61 74 69 6f 6e 20 77 69 74 68 6f 75 74 20 67 |cation without g| 0000b460 69 76 69 6e 67 20 61 20 6d 65 73 73 61 67 65 2e |iving a message.| 0000b470 20 54 68 69 73 20 6d 61 6b 65 73 20 64 65 62 75 | This makes debu| 0000b480 67 67 69 6e 67 20 74 68 65 73 65 20 0a 20 20 20 |gging these . | 0000b490 20 20 20 72 6f 75 74 69 6e 65 73 20 69 6d 70 6f | routines impo| 0000b4a0 73 73 69 62 6c 65 20 75 6e 6c 65 73 73 20 79 6f |ssible unless yo| 0000b4b0 75 20 61 64 64 20 74 68 65 20 6c 69 6e 65 3a 20 |u add the line: | 0000b4c0 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 4f |.. . O| 0000b4d0 4e 20 45 52 52 4f 52 20 4f 46 46 0a 20 20 20 20 |N ERROR OFF. | 0000b4e0 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 | . . | 0000b4f0 61 74 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 |at the start of | 0000b500 74 68 65 20 72 6f 75 74 69 6e 65 2c 20 69 2e 65 |the routine, i.e| 0000b510 20 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 | .. . | 0000b520 44 45 46 20 46 4e 5f 4d 65 6e 75 53 65 6c 65 63 |DEF FN_MenuSelec| 0000b530 74 5f 54 49 44 28 62 6c 6b 25 29 0a 20 20 20 20 |t_TID(blk%). | 0000b540 20 20 4c 4f 43 41 4c 20 73 74 72 24 0a 20 20 20 | LOCAL str$. | 0000b550 20 20 20 4f 4e 20 45 52 52 4f 52 20 4f 46 46 0a | ON ERROR OFF.| 0000b560 20 20 20 20 20 20 73 74 72 24 3d 24 28 62 6c 6b | str$=$(blk| 0000b570 25 21 31 32 29 0a 20 20 20 20 20 20 50 52 4f 43 |%!12). PROC| 0000b580 73 68 65 6c 6c 5f 49 63 6f 6e 50 75 74 44 61 74 |shell_IconPutDat| 0000b590 61 28 6e 65 77 72 65 63 25 2c 34 2c 73 74 72 24 |a(newrec%,4,str$| 0000b5a0 2c 54 52 55 45 29 0a 20 20 20 20 20 20 50 52 4f |,TRUE). PRO| 0000b5b0 43 67 65 74 5f 65 6e 74 72 69 65 73 28 66 69 6c |Cget_entries(fil| 0000b5c0 65 5f 6c 6f 63 25 2c 28 62 6c 6b 25 21 30 29 2b |e_loc%,(blk%!0)+| 0000b5d0 31 29 0a 20 20 20 20 20 20 3d 30 0a 20 20 20 20 |1). =0. | 0000b5e0 20 20 3a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 | :. . | 0000b5f0 20 0a 20 20 20 20 20 20 34 2e 31 37 20 44 72 61 | . 4.17 Dra| 0000b600 77 20 46 69 6c 65 73 20 0a 0a 20 20 20 20 20 20 |w Files .. | 0000b610 54 68 65 20 73 74 61 6e 64 61 72 64 20 6d 65 74 |The standard met| 0000b620 68 6f 64 20 6f 66 20 63 72 65 61 74 69 6e 67 20 |hod of creating | 0000b630 61 6e 64 20 64 69 73 70 6c 61 79 69 6e 67 20 76 |and displaying v| 0000b640 65 63 74 6f 72 20 67 72 61 70 68 69 63 73 20 6f |ector graphics o| 0000b650 6e 20 0a 20 20 20 20 20 20 74 68 65 20 41 72 63 |n . the Arc| 0000b660 68 69 6d 65 64 65 73 20 69 73 20 74 68 65 20 44 |himedes is the D| 0000b670 72 61 77 46 69 6c 65 2c 20 61 73 20 63 72 65 61 |rawFile, as crea| 0000b680 74 65 64 20 62 79 20 74 68 65 20 41 63 6f 72 6e |ted by the Acorn| 0000b690 20 44 72 61 77 20 0a 20 20 20 20 20 20 61 70 70 | Draw . app| 0000b6a0 6c 69 63 61 74 69 6f 6e 2e 20 49 74 20 69 73 20 |lication. It is | 0000b6b0 61 6c 73 6f 20 70 6f 73 73 69 62 6c 65 20 74 6f |also possible to| 0000b6c0 20 63 72 65 61 74 65 20 61 20 44 72 61 77 46 69 | create a DrawFi| 0000b6d0 6c 65 20 75 6e 64 65 72 20 0a 20 20 20 20 20 20 |le under . | 0000b6e0 70 72 6f 67 72 61 6d 20 63 6f 6e 74 72 6f 6c 20 |program control | 0000b6f0 75 73 69 6e 67 20 74 68 65 20 72 6f 75 74 69 6e |using the routin| 0000b700 65 73 20 69 6e 20 74 68 65 20 73 75 70 70 6c 69 |es in the suppli| 0000b710 65 64 20 44 72 61 77 4c 69 62 20 0a 20 20 20 20 |ed DrawLib . | 0000b720 20 20 6c 69 62 72 61 72 79 20 2d 20 74 68 69 73 | library - this| 0000b730 20 69 73 20 73 65 70 65 72 61 74 65 20 66 72 6f | is seperate fro| 0000b740 6d 20 74 68 65 20 6d 61 69 6e 20 73 68 65 6c 6c |m the main shell| 0000b750 20 6c 69 62 72 61 72 79 20 61 73 20 74 68 65 20 | library as the | 0000b760 0a 20 20 20 20 20 20 63 72 65 61 74 69 6f 6e 20 |. creation | 0000b770 6f 66 20 44 72 61 77 46 69 6c 65 73 20 69 73 20 |of DrawFiles is | 0000b780 61 20 73 70 65 63 69 61 6c 69 73 65 64 20 72 65 |a specialised re| 0000b790 71 75 69 72 65 6d 65 6e 74 2e 20 0a 0a 20 20 20 |quirement. .. | 0000b7a0 20 20 20 41 20 67 6f 6f 64 20 65 78 61 6d 70 6c | A good exampl| 0000b7b0 65 20 6f 66 20 74 68 65 20 75 73 65 20 6f 66 20 |e of the use of | 0000b7c0 70 72 6f 67 72 61 6d 20 67 65 6e 65 72 61 74 65 |program generate| 0000b7d0 64 20 44 72 61 77 46 69 6c 65 73 20 77 6f 75 6c |d DrawFiles woul| 0000b7e0 64 20 62 65 20 0a 20 20 20 20 20 20 74 68 65 20 |d be . the | 0000b7f0 70 72 6f 64 75 63 74 69 6f 6e 20 6f 66 20 61 20 |production of a | 0000b800 67 72 61 70 68 20 77 68 69 63 68 20 63 6f 75 6c |graph which coul| 0000b810 64 20 62 65 20 6c 6f 61 64 65 64 20 69 6e 74 6f |d be loaded into| 0000b820 20 61 20 44 54 50 20 6f 72 20 0a 20 20 20 20 20 | a DTP or . | 0000b830 20 77 6f 72 64 20 70 72 6f 63 65 73 73 69 6e 67 | word processing| 0000b840 20 70 61 63 6b 61 67 65 2e 20 49 66 20 79 6f 75 | package. If you| 0000b850 20 77 61 6e 74 20 74 6f 20 64 6f 20 73 6f 6d 65 | want to do some| 0000b860 74 68 69 6e 67 20 6c 69 6b 65 20 74 68 69 73 20 |thing like this | 0000b870 69 74 20 0a 20 20 20 20 20 20 6d 61 6b 65 73 20 |it . makes | 0000b880 73 65 6e 73 65 20 74 6f 20 75 73 65 20 74 68 65 |sense to use the| 0000b890 20 65 78 69 73 74 69 6e 67 20 73 74 61 6e 64 61 | existing standa| 0000b8a0 72 64 20 6f 66 20 44 72 61 77 46 69 6c 65 73 2c |rd of DrawFiles,| 0000b8b0 20 69 6e 64 65 65 64 20 69 66 20 0a 20 20 20 20 | indeed if . | 0000b8c0 20 20 79 6f 75 20 77 61 6e 74 20 6f 74 68 65 72 | you want other| 0000b8d0 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 74 6f | applications to| 0000b8e0 20 62 65 20 61 62 6c 65 20 74 6f 20 6c 6f 61 64 | be able to load| 0000b8f0 20 74 68 65 20 64 61 74 61 20 74 68 65 72 65 20 | the data there | 0000b900 69 73 20 0a 20 20 20 20 20 20 72 65 61 6c 6c 79 |is . really| 0000b910 20 6e 6f 20 63 68 6f 69 63 65 2e 20 0a 0a 20 20 | no choice. .. | 0000b920 20 20 20 20 45 76 6e 74 53 68 65 6c 6c 20 68 61 | EvntShell ha| 0000b930 6e 64 6c 65 73 20 74 68 65 20 63 72 65 61 74 69 |ndles the creati| 0000b940 6f 6e 20 6f 66 20 44 72 61 77 46 69 6c 65 73 20 |on of DrawFiles | 0000b950 62 79 20 63 72 65 61 74 69 6e 67 20 74 68 65 20 |by creating the | 0000b960 0a 20 20 20 20 20 20 6e 65 63 65 73 73 61 72 79 |. necessary| 0000b970 20 64 61 74 61 20 69 6e 20 6d 65 6d 6f 72 79 20 | data in memory | 0000b980 28 68 65 6e 63 65 20 6d 65 6d 6f 72 79 20 61 76 |(hence memory av| 0000b990 61 69 6c 61 62 69 6c 69 74 79 20 6c 69 6d 69 74 |ailability limit| 0000b9a0 73 20 74 68 65 20 0a 20 20 20 20 20 20 73 69 7a |s the . siz| 0000b9b0 65 20 6f 66 20 44 72 61 77 46 69 6c 65 20 74 68 |e of DrawFile th| 0000b9c0 61 74 20 63 61 6e 20 62 65 20 63 72 65 61 74 65 |at can be create| 0000b9d0 64 29 2c 20 66 69 72 73 74 20 61 64 64 69 6e 67 |d), first adding| 0000b9e0 20 61 20 0a 20 20 20 20 20 20 27 70 72 65 2d 68 | a . 'pre-h| 0000b9f0 65 61 64 65 72 27 20 74 6f 20 74 68 65 20 64 61 |eader' to the da| 0000ba00 74 61 2e 20 54 68 65 20 70 75 72 70 6f 73 65 20 |ta. The purpose | 0000ba10 6f 66 20 74 68 65 20 27 70 72 65 2d 20 68 65 61 |of the 'pre- hea| 0000ba20 64 65 72 27 20 69 73 20 74 6f 20 0a 20 20 20 20 |der' is to . | 0000ba30 20 20 73 74 6f 72 65 20 64 61 74 61 20 73 75 63 | store data suc| 0000ba40 68 20 61 73 20 74 68 65 20 63 75 72 72 65 6e 74 |h as the current| 0000ba50 20 64 72 61 77 69 6e 67 20 63 6f 6c 6f 75 72 2c | drawing colour,| 0000ba60 20 74 68 65 20 77 69 64 74 68 20 6f 66 20 74 68 | the width of th| 0000ba70 65 20 0a 20 20 20 20 20 20 6c 69 6e 65 73 20 65 |e . lines e| 0000ba80 74 63 20 77 69 74 68 6f 75 74 20 75 73 69 6e 67 |tc without using| 0000ba90 20 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 | global variable| 0000baa0 73 2e 20 45 61 63 68 20 44 72 61 77 4c 69 62 20 |s. Each DrawLib | 0000bab0 72 6f 75 74 69 6e 65 20 0a 20 20 20 20 20 20 72 |routine . r| 0000bac0 65 71 75 69 72 65 73 20 74 68 65 20 61 64 64 72 |equires the addr| 0000bad0 65 73 73 20 6f 66 20 74 68 65 20 62 75 66 66 65 |ess of the buffe| 0000bae0 72 20 68 6f 6c 64 69 6e 67 20 74 68 65 20 44 72 |r holding the Dr| 0000baf0 61 77 46 69 6c 65 2c 20 65 6e 61 62 6c 69 6e 67 |awFile, enabling| 0000bb00 20 0a 20 20 20 20 20 20 73 65 76 65 72 61 6c 20 | . several | 0000bb10 44 72 61 77 46 69 6c 65 73 20 74 6f 20 62 65 20 |DrawFiles to be | 0000bb20 63 72 65 61 74 65 64 20 69 6e 20 64 69 66 66 65 |created in diffe| 0000bb30 72 65 6e 74 20 62 75 66 66 65 72 73 20 61 74 20 |rent buffers at | 0000bb40 74 68 65 20 73 61 6d 65 20 0a 20 20 20 20 20 20 |the same . | 0000bb50 74 69 6d 65 2e 20 0a 0c 0a 20 20 20 20 20 20 45 |time. ... E| 0000bb60 78 69 73 74 69 6e 67 20 44 72 61 77 46 69 6c 65 |xisting DrawFile| 0000bb70 73 20 6d 61 79 20 62 65 20 6c 6f 61 64 65 64 2c |s may be loaded,| 0000bb80 20 6d 6f 64 69 66 69 65 64 20 62 79 20 74 68 65 | modified by the| 0000bb90 20 75 73 65 72 20 0a 20 20 20 20 20 20 61 70 70 | user . app| 0000bba0 6c 69 63 61 74 69 6f 6e 20 61 6e 64 20 72 65 2d |lication and re-| 0000bbb0 20 73 61 76 65 64 2e 20 46 75 6c 6c 20 63 6f 6e | saved. Full con| 0000bbc0 74 72 6f 6c 20 69 73 20 70 72 6f 76 69 64 65 64 |trol is provided| 0000bbd0 20 6f 76 65 72 20 6c 69 6e 65 20 0a 20 20 20 20 | over line . | 0000bbe0 20 20 74 68 69 63 6b 6e 65 73 73 65 73 2c 20 70 | thicknesses, p| 0000bbf0 61 74 74 65 72 6e 73 2c 20 65 6e 64 20 63 61 70 |atterns, end cap| 0000bc00 73 2c 20 70 61 74 68 20 61 6e 64 20 66 69 6c 6c |s, path and fill| 0000bc10 20 63 6f 6c 6f 75 72 73 20 28 73 74 6f 72 65 64 | colours (stored| 0000bc20 20 61 73 20 0a 20 20 20 20 20 20 32 34 20 62 69 | as . 24 bi| 0000bc30 74 20 76 61 6c 75 65 73 20 77 68 69 63 68 20 52 |t values which R| 0000bc40 49 53 43 20 4f 53 20 64 69 73 70 6c 61 79 73 20 |ISC OS displays | 0000bc50 75 73 69 6e 67 20 64 69 74 68 65 72 69 6e 67 29 |using dithering)| 0000bc60 2e 20 0a 0a 20 20 20 20 20 20 44 72 61 77 46 69 |. .. DrawFi| 0000bc70 6c 65 73 20 63 61 6e 20 63 6f 6e 74 61 69 6e 20 |les can contain | 0000bc80 6c 69 6e 65 73 2c 20 62 6f 78 65 73 2c 20 63 69 |lines, boxes, ci| 0000bc90 72 63 6c 65 73 2c 20 65 6c 6c 69 70 73 65 73 20 |rcles, ellipses | 0000bca0 61 6e 64 20 6f 75 74 6c 69 6e 65 20 0a 20 20 20 |and outline . | 0000bcb0 20 20 20 66 6f 6e 74 20 74 65 78 74 20 61 74 20 | font text at | 0000bcc0 74 68 65 20 6d 6f 6d 65 6e 74 20 77 68 69 63 68 |the moment which| 0000bcd0 20 69 73 20 6e 6f 74 20 61 6e 20 65 78 68 61 75 | is not an exhau| 0000bce0 73 74 69 76 65 20 6c 69 73 74 20 62 75 74 20 0a |stive list but .| 0000bcf0 20 20 20 20 20 20 73 68 6f 75 6c 64 20 73 75 66 | should suf| 0000bd00 66 69 63 65 20 66 6f 72 20 6d 6f 73 74 20 6e 65 |fice for most ne| 0000bd10 65 64 73 2e 20 0a 0a 20 20 20 20 20 20 41 6e 20 |eds. .. An | 0000bd20 65 78 61 6d 70 6c 65 20 6f 66 20 74 68 65 20 75 |example of the u| 0000bd30 73 65 20 6f 66 20 74 68 65 20 44 72 61 77 4c 69 |se of the DrawLi| 0000bd40 62 20 72 6f 75 74 69 6e 65 73 20 69 73 20 61 73 |b routines is as| 0000bd50 20 66 6f 6c 6c 6f 77 73 3a 20 0a 0a 20 20 20 20 | follows: .. | 0000bd60 20 20 0a 20 20 20 20 20 20 4c 49 42 52 41 52 59 | . LIBRARY| 0000bd70 20 22 45 76 6e 74 53 68 65 6c 6c 53 79 73 74 65 | "EvntShellSyste| 0000bd80 6d 3a 44 72 61 77 4c 69 62 22 0a 20 20 20 20 20 |m:DrawLib". | 0000bd90 20 62 75 66 66 65 72 25 20 3d 20 30 20 3a 20 52 | buffer% = 0 : R| 0000bda0 45 4d 20 4a 75 73 74 20 64 65 63 6c 61 72 65 20 |EM Just declare | 0000bdb0 74 68 65 20 76 61 72 69 61 62 6c 65 0a 20 20 20 |the variable. | 0000bdc0 20 20 20 50 52 4f 43 73 68 65 6c 6c 5f 44 72 61 | PROCshell_Dra| 0000bdd0 77 43 72 65 61 74 65 46 69 6c 65 28 62 75 66 66 |wCreateFile(buff| 0000bde0 65 72 25 29 0a 20 20 20 20 20 20 50 52 4f 43 73 |er%). PROCs| 0000bdf0 68 65 6c 6c 5f 44 72 61 77 42 6f 78 28 62 75 66 |hell_DrawBox(buf| 0000be00 66 65 72 25 2c 31 30 30 2c 31 30 30 2c 32 35 2c |fer%,100,100,25,| 0000be10 32 35 29 0a 20 20 20 20 20 20 0a 20 20 20 20 20 |25). . | 0000be20 20 0a 20 20 20 20 20 20 77 68 69 63 68 20 63 72 | . which cr| 0000be30 65 61 74 65 73 20 61 20 44 72 61 77 46 69 6c 65 |eates a DrawFile| 0000be40 20 61 6e 64 20 74 68 65 6e 20 61 64 64 73 20 61 | and then adds a| 0000be50 20 73 71 75 61 72 65 20 61 74 20 74 68 65 20 6c | square at the l| 0000be60 6f 63 61 74 69 6f 6e 20 0a 20 20 20 20 20 20 78 |ocation . x| 0000be70 31 30 30 20 79 31 30 30 20 28 72 65 6c 61 74 69 |100 y100 (relati| 0000be80 76 65 20 74 6f 20 74 68 65 20 62 6f 74 74 6f 6d |ve to the bottom| 0000be90 20 6c 65 66 74 20 6f 66 20 74 68 65 20 70 61 70 | left of the pap| 0000bea0 65 72 29 20 77 69 74 68 20 73 69 64 65 73 20 0a |er) with sides .| 0000beb0 20 20 20 20 20 20 32 35 6d 6d 20 6c 6f 6e 67 2e | 25mm long.| 0000bec0 20 42 79 20 64 65 66 61 75 6c 74 20 6d 69 6c 6c | By default mill| 0000bed0 69 6d 65 74 72 65 73 20 61 72 65 20 75 73 65 64 |imetres are used| 0000bee0 20 66 6f 72 20 6d 65 61 73 75 72 65 6d 65 6e 74 | for measurement| 0000bef0 73 2c 20 62 75 74 20 0a 20 20 20 20 20 20 64 72 |s, but . dr| 0000bf00 61 77 69 6e 67 20 75 6e 69 74 73 20 6d 61 79 20 |awing units may | 0000bf10 61 64 64 69 74 69 6f 6e 61 6c 6c 79 20 62 65 20 |additionally be | 0000bf20 73 70 65 63 69 66 69 65 64 20 69 6e 20 63 65 6e |specified in cen| 0000bf30 74 69 6d 65 74 65 72 73 2c 20 0a 20 20 20 20 20 |timeters, . | 0000bf40 20 69 6e 63 68 65 73 2c 20 4f 53 20 75 6e 69 74 | inches, OS unit| 0000bf50 73 20 6f 72 20 70 6f 69 6e 74 73 2e 20 44 72 61 |s or points. Dra| 0000bf60 77 69 6e 67 20 75 6e 69 74 73 20 63 61 6e 20 62 |wing units can b| 0000bf70 65 20 6d 69 78 65 64 20 77 69 74 68 69 6e 20 0a |e mixed within .| 0000bf80 20 20 20 20 20 20 65 61 63 68 20 66 69 6c 65 2e | each file.| 0000bf90 20 0a 0a 20 20 20 20 20 20 41 20 64 65 6d 6f 6e | .. A demon| 0000bfa0 73 74 72 61 74 69 6f 6e 20 61 70 70 6c 69 63 61 |stration applica| 0000bfb0 74 69 6f 6e 20 63 61 6c 6c 65 64 20 54 65 73 74 |tion called Test| 0000bfc0 44 72 61 77 20 73 68 6f 75 6c 64 20 68 61 76 65 |Draw should have| 0000bfd0 20 62 65 65 6e 20 0a 20 20 20 20 20 20 73 75 70 | been . sup| 0000bfe0 70 6c 69 65 64 20 77 69 74 68 20 45 76 6e 74 53 |plied with EvntS| 0000bff0 68 65 6c 6c 20 74 6f 20 65 6e 61 62 6c 65 20 79 |hell to enable y| 0000c000 6f 75 20 74 6f 20 65 78 70 65 72 69 6d 65 6e 74 |ou to experiment| 0000c010 2e 20 0a 0a 20 20 20 20 20 20 35 20 54 68 65 20 |. .. 5 The | 0000c020 54 6f 6f 6c 73 20 0a 0a 20 20 20 20 20 20 56 61 |Tools .. Va| 0000c030 72 69 6f 75 73 20 70 72 6f 67 72 61 6d 6d 69 6e |rious programmin| 0000c040 67 20 74 6f 6f 6c 73 20 68 61 76 65 20 62 65 65 |g tools have bee| 0000c050 6e 20 77 72 69 74 74 65 6e 20 62 79 20 6d 79 73 |n written by mys| 0000c060 65 6c 66 20 61 6e 64 20 6f 74 68 65 72 73 20 0a |elf and others .| 0000c070 20 20 20 20 20 20 74 6f 20 6d 61 6b 65 20 70 72 | to make pr| 0000c080 6f 64 75 63 69 6e 67 20 77 69 6d 70 20 61 70 70 |oducing wimp app| 0000c090 6c 69 63 61 74 69 6f 6e 73 20 65 61 73 69 65 72 |lications easier| 0000c0a0 20 61 6e 64 20 66 61 73 74 65 72 2e 20 49 66 20 | and faster. If | 0000c0b0 79 6f 75 20 0a 20 20 20 20 20 20 6f 62 74 61 69 |you . obtai| 0000c0c0 6e 65 64 20 74 68 65 20 45 76 6e 74 53 68 65 6c |ned the EvntShel| 0000c0d0 6c 20 6c 69 62 72 61 72 79 20 6f 72 20 75 70 64 |l library or upd| 0000c0e0 61 74 65 73 20 74 68 65 72 65 6f 66 20 66 72 6f |ates thereof fro| 0000c0f0 6d 20 74 68 65 20 61 75 74 68 6f 72 20 0a 20 20 |m the author . | 0000c100 20 20 20 20 79 6f 75 20 77 69 6c 6c 20 68 61 76 | you will hav| 0000c110 65 20 72 65 63 65 69 76 65 64 20 61 6c 6c 20 6f |e received all o| 0000c120 66 20 74 68 65 20 74 6f 6f 6c 73 20 64 65 73 63 |f the tools desc| 0000c130 72 69 62 65 64 20 68 65 72 65 2e 20 49 66 20 79 |ribed here. If y| 0000c140 6f 75 20 0a 20 20 20 20 20 20 6f 62 74 61 69 6e |ou . obtain| 0000c150 65 64 20 69 74 20 66 72 6f 6d 20 61 20 50 44 20 |ed it from a PD | 0000c160 6c 69 62 72 61 72 79 20 74 68 65 20 61 75 74 68 |library the auth| 0000c170 6f 72 20 68 61 73 20 6c 69 74 74 6c 65 20 6f 72 |or has little or| 0000c180 20 6e 6f 20 63 6f 6e 74 72 6f 6c 20 0a 20 20 20 | no control . | 0000c190 20 20 20 6f 76 65 72 20 77 68 61 74 20 65 6c 73 | over what els| 0000c1a0 65 20 69 73 20 73 75 70 70 6c 69 65 64 20 6f 6e |e is supplied on| 0000c1b0 20 74 68 65 20 64 69 73 6b 2c 20 73 6f 20 79 6f | the disk, so yo| 0000c1c0 75 20 6d 61 79 20 68 61 76 65 20 74 6f 20 6f 62 |u may have to ob| 0000c1d0 74 61 69 6e 20 0a 20 20 20 20 20 20 74 68 65 20 |tain . the | 0000c1e0 6d 69 73 73 69 6e 67 20 74 6f 6f 6c 73 20 66 72 |missing tools fr| 0000c1f0 6f 6d 20 6f 74 68 65 72 20 64 69 73 6b 73 20 69 |om other disks i| 0000c200 6e 20 74 68 65 20 50 44 20 6c 69 62 72 61 72 79 |n the PD library| 0000c210 2c 20 6f 72 20 62 65 74 74 65 72 20 0a 20 20 20 |, or better . | 0000c220 20 20 20 73 74 69 6c 6c 20 73 65 6e 64 20 6d 65 | still send me| 0000c230 20 61 20 62 6c 61 6e 6b 20 64 69 73 6b 2e 20 0a | a blank disk. .| 0000c240 0a 20 20 20 20 20 20 4f 6e 6c 79 20 6f 6e 65 20 |. Only one | 0000c250 6f 66 20 74 68 65 20 74 6f 6f 6c 73 20 28 6f 6e |of the tools (on| 0000c260 65 20 6f 66 20 74 68 65 20 6d 61 6e 79 20 54 65 |e of the many Te| 0000c270 6d 70 6c 61 74 65 20 65 64 69 74 6f 72 73 20 0a |mplate editors .| 0000c280 20 20 20 20 20 20 61 76 61 69 6c 61 62 6c 65 29 | available)| 0000c290 20 69 73 20 76 69 74 61 6c 20 74 6f 20 74 68 65 | is vital to the| 0000c2a0 20 45 76 6e 74 53 68 65 6c 6c 20 4c 69 62 72 61 | EvntShell Libra| 0000c2b0 72 79 2c 20 74 68 65 20 6f 74 68 65 72 73 20 79 |ry, the others y| 0000c2c0 6f 75 20 63 61 6e 20 0a 20 20 20 20 20 20 64 6f |ou can . do| 0000c2d0 20 77 69 74 68 6f 75 74 20 62 75 74 20 74 68 65 | without but the| 0000c2e0 79 20 64 6f 20 6d 61 6b 65 20 6c 69 66 65 20 65 |y do make life e| 0000c2f0 61 73 69 65 72 2e 20 0a 0a 20 20 20 20 20 20 54 |asier. .. T| 0000c300 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 73 20 |he following is | 0000c310 61 20 62 72 69 65 66 20 64 65 73 63 72 69 70 74 |a brief descript| 0000c320 69 6f 6e 20 6f 66 20 74 68 65 20 74 6f 6f 6c 73 |ion of the tools| 0000c330 20 73 75 70 70 6c 69 65 64 20 6f 6e 20 0a 20 20 | supplied on . | 0000c340 20 20 20 20 41 50 44 4c 20 64 69 73 6b 20 42 31 | APDL disk B1| 0000c350 32 32 2c 20 61 6e 64 20 73 6f 6d 65 20 6f 74 68 |22, and some oth| 0000c360 65 72 20 73 6f 66 74 77 61 72 65 20 77 68 69 63 |er software whic| 0000c370 68 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 |h may be useful | 0000c380 66 6f 72 20 0a 20 20 20 20 20 20 64 65 76 65 6c |for . devel| 0000c390 6f 70 69 6e 67 20 61 70 70 6c 69 63 61 74 69 6f |oping applicatio| 0000c3a0 6e 73 20 0a 0a 20 20 20 20 20 20 35 2e 31 20 21 |ns .. 5.1 !| 0000c3b0 41 70 70 42 75 69 6c 64 20 0a 0a 20 20 20 20 20 |AppBuild .. | 0000c3c0 20 43 72 65 61 74 65 73 20 6e 65 77 20 61 70 70 | Creates new app| 0000c3d0 6c 69 63 61 74 69 6f 6e 20 73 68 65 6c 6c 73 20 |lication shells | 0000c3e0 61 73 20 27 73 74 61 6e 64 20 61 6c 6f 6e 65 27 |as 'stand alone'| 0000c3f0 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 66 6f | applications fo| 0000c400 72 20 0a 20 20 20 20 20 20 64 69 73 74 72 69 62 |r . distrib| 0000c410 75 74 69 6f 6e 2c 20 6f 72 20 6f 6e 65 73 20 74 |ution, or ones t| 0000c420 68 61 74 20 64 65 70 65 6e 64 20 6f 6e 20 21 53 |hat depend on !S| 0000c430 68 65 6c 6c 53 79 73 2e 20 59 6f 75 20 63 61 6e |hellSys. You can| 0000c440 20 73 70 65 63 69 66 79 20 61 20 0a 20 20 20 20 | specify a . | 0000c450 20 20 6e 61 6d 65 20 66 6f 72 20 74 68 65 20 61 | name for the a| 0000c460 70 70 6c 69 63 61 74 69 6f 6e 2c 20 61 6e 64 20 |pplication, and | 0000c470 63 68 6f 6f 73 65 20 77 68 65 74 68 65 72 20 6f |choose whether o| 0000c480 72 20 6e 6f 74 20 74 6f 20 6d 61 6b 65 20 69 74 |r not to make it| 0000c490 20 0a 20 20 20 20 20 20 27 53 74 61 6e 64 20 41 | . 'Stand A| 0000c4a0 6c 6f 6e 65 27 20 69 2e 65 20 69 66 20 61 6c 6c |lone' i.e if all| 0000c4b0 20 74 68 65 20 66 69 6c 65 73 20 72 65 71 75 69 | the files requi| 0000c4c0 72 65 64 20 61 72 65 20 63 6f 70 69 65 64 20 69 |red are copied i| 0000c4d0 6e 74 6f 20 74 68 65 20 0a 20 20 20 20 20 20 6e |nto the . n| 0000c4e0 65 77 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 64 |ew application d| 0000c4f0 69 72 65 63 74 6f 72 79 2e 20 49 66 20 69 74 20 |irectory. If it | 0000c500 69 73 20 6e 6f 74 20 61 20 73 74 61 6e 64 20 61 |is not a stand a| 0000c510 6c 6f 6e 65 20 61 70 70 6c 69 63 61 74 69 6f 6e |lone application| 0000c520 20 0a 20 20 20 20 20 20 74 68 65 6e 20 6d 6f 64 | . then mod| 0000c530 75 6c 65 73 2c 20 6d 65 73 73 61 67 65 20 66 69 |ules, message fi| 0000c540 6c 65 73 20 65 74 63 20 77 69 6c 6c 20 62 65 20 |les etc will be | 0000c550 6c 6f 61 64 65 64 20 66 72 6f 6d 20 74 68 65 20 |loaded from the | 0000c560 21 53 68 65 6c 6c 53 79 73 20 0a 20 20 20 20 20 |!ShellSys . | 0000c570 20 64 69 72 65 63 74 6f 72 79 2e 20 0a 0a 20 20 | directory. .. | 0000c580 20 20 20 20 54 68 69 73 20 61 70 70 6c 69 63 61 | This applica| 0000c590 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 20 41 63 |tion supports Ac| 0000c5a0 6f 72 6e 27 73 20 21 48 65 6c 70 20 61 70 70 6c |orn's !Help appl| 0000c5b0 69 63 61 74 69 6f 6e 2e 20 0a 0c 0a 20 20 20 20 |ication. ... | 0000c5c0 20 20 35 2e 32 20 21 53 68 65 6c 6c 44 42 75 67 | 5.2 !ShellDBug| 0000c5d0 20 0a 0a 20 20 20 20 20 20 41 20 76 65 72 79 20 | .. A very | 0000c5e0 73 69 6d 70 6c 65 20 64 65 62 75 67 67 65 72 20 |simple debugger | 0000c5f0 74 68 61 74 20 64 69 73 70 6c 61 79 73 20 74 72 |that displays tr| 0000c600 61 63 65 20 6f 75 74 70 75 74 20 66 72 6f 6d 20 |ace output from | 0000c610 74 68 65 20 75 73 65 72 20 0a 20 20 20 20 20 20 |the user . | 0000c620 61 70 70 6c 69 63 61 74 69 6f 6e 20 61 6e 64 20 |application and | 0000c630 74 68 65 20 6c 69 62 72 61 72 79 20 63 6f 64 65 |the library code| 0000c640 2e 20 4e 6f 74 65 20 74 68 61 74 20 63 75 72 72 |. Note that curr| 0000c650 65 6e 74 6c 79 20 74 68 69 73 20 0a 20 20 20 20 |ently this . | 0000c660 20 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 6d 75 | application mu| 0000c670 73 74 20 62 65 20 72 75 6e 6e 69 6e 67 20 62 65 |st be running be| 0000c680 66 6f 72 65 20 74 68 65 20 61 70 70 6c 69 63 61 |fore the applica| 0000c690 74 69 6f 6e 20 79 6f 75 20 77 61 6e 74 20 74 6f |tion you want to| 0000c6a0 20 0a 20 20 20 20 20 20 64 65 62 75 67 2e 20 0a | . debug. .| 0000c6b0 0a 20 20 20 20 20 20 54 68 65 20 45 76 6e 74 53 |. The EvntS| 0000c6c0 68 65 6c 6c 20 6c 69 62 72 61 72 79 20 6f 75 74 |hell library out| 0000c6d0 70 75 74 73 20 61 20 63 6f 6d 6d 65 6e 74 61 72 |puts a commentar| 0000c6e0 79 20 6f 6e 20 77 68 61 74 20 69 74 20 69 73 20 |y on what it is | 0000c6f0 64 6f 69 6e 67 20 0a 20 20 20 20 20 20 69 6e 74 |doing . int| 0000c700 6f 20 61 20 74 72 61 63 65 66 69 6c 65 2c 20 70 |o a tracefile, p| 0000c710 72 6f 76 69 64 69 6e 67 20 74 68 61 74 20 50 52 |roviding that PR| 0000c720 4f 43 73 68 65 6c 6c 5f 54 72 61 63 65 49 6e 69 |OCshell_TraceIni| 0000c730 74 20 61 6e 64 20 0a 20 20 20 20 20 20 50 52 4f |t and . PRO| 0000c740 43 73 68 65 6c 6c 5f 54 72 61 63 65 4f 6e 20 68 |Cshell_TraceOn h| 0000c750 61 76 65 20 62 65 65 6e 20 63 61 6c 6c 65 64 2e |ave been called.| 0000c760 20 54 68 65 20 75 73 65 72 20 61 70 70 6c 69 63 | The user applic| 0000c770 61 74 69 6f 6e 20 63 61 6e 20 61 6c 73 6f 20 0a |ation can also .| 0000c780 20 20 20 20 20 20 70 6c 61 63 65 20 6f 75 74 70 | place outp| 0000c790 75 74 20 69 6e 20 74 68 69 73 20 66 69 6c 65 20 |ut in this file | 0000c7a0 75 73 69 6e 67 20 50 52 4f 43 73 68 65 6c 6c 5f |using PROCshell_| 0000c7b0 54 72 61 63 65 66 30 2e 20 0a 0a 20 20 20 20 20 |Tracef0. .. | 0000c7c0 20 4f 75 74 70 75 74 74 69 6e 67 20 74 72 61 63 | Outputting trac| 0000c7d0 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 77 69 |e information wi| 0000c7e0 6c 6c 20 73 6c 6f 77 20 74 68 65 20 75 73 65 72 |ll slow the user| 0000c7f0 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 0a 20 20 | application . | 0000c800 20 20 20 20 6e 6f 74 69 63 65 61 62 6c 79 2c 20 | noticeably, | 0000c810 65 73 70 65 63 69 61 6c 6c 79 20 77 68 65 6e 20 |especially when | 0000c820 73 74 61 72 74 69 6e 67 20 75 70 20 61 73 20 61 |starting up as a| 0000c830 20 6c 6f 74 20 6f 66 20 74 72 61 63 65 20 69 6e | lot of trace in| 0000c840 66 6f 20 69 73 20 0a 20 20 20 20 20 20 67 65 6e |fo is . gen| 0000c850 65 72 61 74 65 64 20 62 79 20 74 68 65 20 63 61 |erated by the ca| 0000c860 6c 6c 20 74 6f 20 50 52 4f 43 73 68 65 6c 6c 5f |ll to PROCshell_| 0000c870 52 65 73 6f 75 72 63 65 73 49 6e 69 74 2e 20 54 |ResourcesInit. T| 0000c880 68 65 72 65 66 6f 72 65 20 69 74 20 69 73 20 0a |herefore it is .| 0000c890 20 20 20 20 20 20 62 65 73 74 20 74 6f 20 6f 6e | best to on| 0000c8a0 6c 79 20 74 75 72 6e 20 6f 6e 20 74 72 61 63 69 |ly turn on traci| 0000c8b0 6e 67 20 77 68 65 6e 20 6e 65 63 65 73 73 61 72 |ng when necessar| 0000c8c0 79 2c 20 61 6e 64 20 6f 66 20 63 6f 75 72 73 65 |y, and of course| 0000c8d0 20 6d 61 6b 65 20 0a 20 20 20 20 20 20 73 75 72 | make . sur| 0000c8e0 65 20 74 68 61 74 20 74 72 61 63 69 6e 67 20 69 |e that tracing i| 0000c8f0 73 20 6f 66 66 20 6f 6e 20 61 6e 79 20 61 70 70 |s off on any app| 0000c900 6c 69 63 61 74 69 6f 6e 73 20 79 6f 75 20 64 69 |lications you di| 0000c910 73 74 72 69 62 75 74 65 21 20 0a 0a 20 20 20 20 |stribute! .. | 0000c920 20 20 35 2e 33 20 4f 74 68 65 72 20 54 6f 6f 6c | 5.3 Other Tool| 0000c930 73 20 0a 0a 20 20 20 20 20 20 54 68 65 72 65 20 |s .. There | 0000c940 66 6f 6c 6c 6f 77 73 20 61 20 62 72 69 65 66 20 |follows a brief | 0000c950 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 73 |description of s| 0000c960 6f 6d 65 20 6f 74 68 65 72 20 50 44 2f 53 68 61 |ome other PD/Sha| 0000c970 72 65 57 61 72 65 20 0a 20 20 20 20 20 20 2f 43 |reWare . /C| 0000c980 6f 70 79 72 69 67 68 74 65 64 20 70 72 6f 67 72 |opyrighted progr| 0000c990 61 6d 73 20 77 68 69 63 68 20 49 20 68 61 76 65 |ams which I have| 0000c9a0 20 66 6f 75 6e 64 20 75 73 65 66 75 6c 20 77 68 | found useful wh| 0000c9b0 65 6e 20 64 65 76 65 6c 6f 70 69 6e 67 20 0a 20 |en developing . | 0000c9c0 20 20 20 20 20 45 76 6e 74 53 68 65 6c 6c 20 61 | EvntShell a| 0000c9d0 70 70 6c 69 63 61 74 69 6f 6e 73 2e 20 0a 0a 20 |pplications. .. | 0000c9e0 20 20 20 20 20 35 2e 33 2e 31 20 21 42 61 73 53 | 5.3.1 !BasS| 0000c9f0 68 72 69 6e 6b 2f 21 42 61 73 53 68 72 69 6e 6b |hrink/!BasShrink| 0000ca00 5f 50 44 20 0a 0a 20 20 20 20 20 20 49 73 20 61 |_PD .. Is a| 0000ca10 20 42 41 53 49 43 20 70 72 6f 67 72 61 6d 20 63 | BASIC program c| 0000ca20 6f 6d 70 72 65 73 73 6f 72 20 77 68 69 63 68 20 |ompressor which | 0000ca30 68 61 73 20 62 65 65 6e 20 70 72 6f 76 65 64 20 |has been proved | 0000ca40 74 6f 20 77 6f 72 6b 20 77 69 74 68 20 0a 20 20 |to work with . | 0000ca50 20 20 20 20 45 76 6e 74 53 68 65 6c 6c 20 61 70 | EvntShell ap| 0000ca60 70 6c 69 63 61 74 69 6f 6e 73 2e 20 21 42 61 73 |plications. !Bas| 0000ca70 53 68 72 69 6e 6b 5f 50 44 20 69 73 20 50 75 62 |Shrink_PD is Pub| 0000ca80 6c 69 63 20 44 6f 6d 61 69 6e 20 61 6e 64 20 0a |lic Domain and .| 0000ca90 20 20 20 20 20 20 61 76 61 69 6c 61 62 6c 65 20 | available | 0000caa0 66 72 6f 6d 20 76 61 72 69 6f 75 73 20 50 44 20 |from various PD | 0000cab0 6c 69 62 72 61 72 69 65 73 2c 20 21 42 61 73 53 |libraries, !BasS| 0000cac0 68 72 69 6e 6b 20 63 6f 73 74 20 a3 35 2e 30 30 |hrink cost .5.00| 0000cad0 20 61 6e 64 20 0a 20 20 20 20 20 20 63 61 6e 20 | and . can | 0000cae0 62 65 20 6f 62 74 61 69 6e 65 64 20 66 72 6f 6d |be obtained from| 0000caf0 3a 20 0a 0a 20 20 20 20 20 20 4a 6f 68 6e 20 57 |: .. John W| 0000cb00 61 6c 6c 61 63 65 2c 20 41 72 63 68 69 74 79 70 |allace, Archityp| 0000cb10 65 20 53 6f 66 74 77 61 72 65 2c 20 35 34 20 50 |e Software, 54 P| 0000cb20 61 72 6b 65 73 20 48 61 6c 6c 20 52 6f 61 64 2c |arkes Hall Road,| 0000cb30 20 0a 20 20 20 20 20 20 57 6f 6f 64 73 65 74 74 | . Woodsett| 0000cb40 6f 6e 2c 20 44 75 64 6c 65 79 2c 20 57 65 73 74 |on, Dudley, West| 0000cb50 20 4d 69 64 6c 61 6e 64 73 2c 20 44 59 31 20 33 | Midlands, DY1 3| 0000cb60 53 52 20 45 4e 47 4c 41 4e 44 20 0a 0a 20 20 20 |SR ENGLAND .. | 0000cb70 20 20 20 53 65 65 20 74 68 65 20 73 65 63 74 69 | See the secti| 0000cb80 6f 6e 20 6f 6e 20 63 6f 6d 70 72 65 73 73 69 6e |on on compressin| 0000cb90 67 20 45 76 6e 74 53 68 65 6c 6c 20 70 72 6f 67 |g EvntShell prog| 0000cba0 72 61 6d 73 20 66 6f 72 20 67 75 69 64 61 6e 63 |rams for guidanc| 0000cbb0 65 20 6f 6e 20 0a 20 20 20 20 20 20 74 68 65 20 |e on . the | 0000cbc0 6f 70 74 69 6f 6e 73 20 74 68 61 74 20 63 61 6e |options that can| 0000cbd0 20 62 65 20 75 73 65 64 2e 20 0a 0a 20 20 20 20 | be used. .. | 0000cbe0 20 20 35 2e 33 2e 32 20 21 42 4c 69 62 49 49 20 | 5.3.2 !BLibII | 0000cbf0 0a 0a 20 20 20 20 20 20 41 20 42 41 53 49 43 20 |.. A BASIC | 0000cc00 4c 69 6e 6b 65 72 20 70 72 6f 67 72 61 6d 20 61 |Linker program a| 0000cc10 76 61 69 6c 61 62 6c 65 20 6f 6e 20 41 50 44 4c |vailable on APDL| 0000cc20 20 44 69 73 6b 20 42 31 33 38 2e 20 54 68 69 73 | Disk B138. This| 0000cc30 20 62 75 69 6c 64 73 20 61 20 0a 20 20 20 20 20 | builds a . | 0000cc40 20 70 72 6f 67 72 61 6d 20 66 72 6f 6d 20 74 68 | program from th| 0000cc50 65 20 75 73 65 72 20 61 70 70 6c 69 63 61 74 69 |e user applicati| 0000cc60 6f 6e 20 61 6e 64 20 74 68 65 20 45 76 6e 74 53 |on and the EvntS| 0000cc70 68 65 6c 6c 20 6c 69 62 72 61 72 79 20 0a 20 20 |hell library . | 0000cc80 20 20 20 20 63 6f 6e 74 61 69 6e 69 6e 67 20 6f | containing o| 0000cc90 6e 6c 79 20 74 68 65 20 72 6f 75 74 69 6e 65 73 |nly the routines| 0000cca0 20 74 68 61 74 20 61 72 65 20 61 63 74 75 61 6c | that are actual| 0000ccb0 6c 79 20 6e 65 65 64 65 64 2e 20 54 68 69 73 20 |ly needed. This | 0000ccc0 69 73 20 0a 20 20 20 20 20 20 76 65 72 79 20 75 |is . very u| 0000ccd0 73 65 66 75 6c 20 66 6f 72 20 64 69 73 74 72 69 |seful for distri| 0000cce0 62 75 74 69 6e 67 20 74 68 65 20 66 69 6e 61 6c |buting the final| 0000ccf0 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 61 73 20 | application as | 0000cd00 21 42 4c 69 62 49 49 20 61 6e 64 20 0a 20 20 20 |!BLibII and . | 0000cd10 20 20 20 21 42 61 73 53 68 72 69 6e 6b 20 75 73 | !BasShrink us| 0000cd20 65 64 20 74 6f 67 65 74 68 65 72 20 77 69 6c 6c |ed together will| 0000cd30 20 70 72 6f 64 75 63 65 20 74 68 65 20 6d 69 6e | produce the min| 0000cd40 69 6d 75 6d 20 70 72 6f 67 72 61 6d 20 73 69 7a |imum program siz| 0000cd50 65 20 0a 20 20 20 20 20 20 70 6f 73 73 69 62 6c |e . possibl| 0000cd60 65 2e 20 0a 0a 20 20 20 20 20 20 46 75 6c 6c 20 |e. .. Full | 0000cd70 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 61 72 65 |instructions are| 0000cd80 20 70 72 6f 76 69 64 65 64 20 77 69 74 68 20 21 | provided with !| 0000cd90 42 4c 69 62 49 49 2c 20 73 6f 20 49 20 77 6f 6e |BLibII, so I won| 0000cda0 27 74 20 67 6f 20 69 6e 74 6f 20 0a 20 20 20 20 |'t go into . | 0000cdb0 20 20 64 65 74 61 69 6c 73 20 68 65 72 65 20 65 | details here e| 0000cdc0 78 63 65 70 74 20 74 6f 20 6e 6f 74 65 20 74 68 |xcept to note th| 0000cdd0 61 74 20 74 68 65 20 53 68 65 6c 6c 4c 69 62 20 |at the ShellLib | 0000cde0 6c 69 62 72 61 72 79 20 61 6c 72 65 61 64 79 20 |library already | 0000cdf0 0a 20 20 20 20 20 20 63 6f 6e 74 61 69 6e 73 20 |. contains | 0000ce00 74 68 65 20 65 78 74 72 61 20 69 6e 66 6f 72 6d |the extra inform| 0000ce10 61 74 69 6f 6e 20 74 68 61 74 20 21 42 4c 69 62 |ation that !BLib| 0000ce20 49 49 20 72 65 71 75 69 72 65 73 2c 20 61 6c 74 |II requires, alt| 0000ce30 68 6f 75 67 68 20 0a 20 20 20 20 20 20 74 68 65 |hough . the| 0000ce40 20 63 6f 6e 64 69 74 69 6f 6e 61 6c 20 6c 69 6e | conditional lin| 0000ce50 6b 69 6e 67 20 62 69 74 73 20 61 72 65 20 6e 6f |king bits are no| 0000ce60 74 20 79 65 74 20 69 6e 20 70 6c 61 63 65 2e 20 |t yet in place. | 0000ce70 54 68 69 73 20 6d 65 61 6e 73 20 0a 20 20 20 20 |This means . | 0000ce80 20 20 74 68 61 74 20 74 68 65 20 6c 69 6e 6b 65 | that the linke| 0000ce90 64 20 70 72 6f 67 72 61 6d 20 69 73 20 62 69 67 |d program is big| 0000cea0 67 65 72 20 74 68 61 6e 20 69 74 20 73 68 6f 75 |ger than it shou| 0000ceb0 6c 64 20 62 65 2c 20 62 75 74 20 61 6e 20 0a 20 |ld be, but an . | 0000cec0 20 20 20 20 20 69 6d 70 72 6f 76 65 6d 65 6e 74 | improvement| 0000ced0 20 6f 76 65 72 20 6a 75 73 74 20 61 70 70 65 6e | over just appen| 0000cee0 64 69 6e 67 20 74 68 65 20 6c 69 62 72 61 72 79 |ding the library| 0000cef0 20 63 6f 64 65 20 74 6f 20 74 68 65 20 65 6e 64 | code to the end| 0000cf00 20 6f 66 20 0a 20 20 20 20 20 20 74 68 65 20 75 | of . the u| 0000cf10 73 65 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 2e |ser application.| 0000cf20 20 54 68 69 73 20 77 69 6c 6c 20 69 6d 70 72 6f | This will impro| 0000cf30 76 65 20 69 6e 20 66 75 74 75 72 65 20 72 65 6c |ve in future rel| 0000cf40 65 61 73 65 73 2e 20 0a 0a 20 20 20 20 20 20 4e |eases. .. N| 0000cf50 6f 74 65 20 74 68 61 74 20 79 6f 75 20 73 68 6f |ote that you sho| 0000cf60 75 6c 64 20 75 73 65 20 74 68 65 20 53 68 65 6c |uld use the Shel| 0000cf70 6c 4c 69 62 20 6c 69 62 72 61 72 79 20 66 6f 72 |lLib library for| 0000cf80 20 6c 69 6e 6b 69 6e 67 20 77 69 74 68 20 0a 20 | linking with . | 0000cf90 20 20 20 20 20 42 4c 69 62 49 49 20 62 65 63 61 | BLibII beca| 0000cfa0 75 73 65 20 53 68 65 6c 6c 4c 69 62 52 54 20 68 |use ShellLibRT h| 0000cfb0 61 73 20 68 61 64 20 74 68 65 20 42 4c 69 62 49 |as had the BLibI| 0000cfc0 49 20 63 6f 6d 6d 61 6e 64 73 20 72 65 6d 6f 76 |I commands remov| 0000cfd0 65 64 20 74 6f 20 0a 20 20 20 20 20 20 73 61 76 |ed to . sav| 0000cfe0 65 20 73 70 61 63 65 2e 20 0a 0c 0a 20 20 20 20 |e space. ... | 0000cff0 20 20 35 2e 33 2e 33 20 21 54 65 6d 70 6c 45 64 | 5.3.3 !TemplEd| 0000d000 20 0a 0a 20 20 20 20 20 20 41 6c 73 6f 20 6f 6e | .. Also on| 0000d010 20 41 50 44 4c 20 64 69 73 6b 20 42 31 33 38 20 | APDL disk B138 | 0000d020 74 68 69 73 20 69 73 20 49 20 62 65 6c 69 65 76 |this is I believ| 0000d030 65 20 74 68 65 20 62 65 73 74 20 54 65 6d 70 6c |e the best Templ| 0000d040 61 74 65 20 65 64 69 74 6f 72 20 0a 20 20 20 20 |ate editor . | 0000d050 20 20 61 76 61 69 6c 61 62 6c 65 20 61 6e 79 77 | available anyw| 0000d060 68 65 72 65 2e 20 46 6f 72 67 65 74 20 21 46 6f |here. Forget !Fo| 0000d070 72 6d 45 64 32 20 77 68 69 63 68 20 77 61 73 20 |rmEd2 which was | 0000d080 6f 6e 20 73 6f 6d 65 20 41 50 44 4c 20 42 31 32 |on some APDL B12| 0000d090 32 20 0a 20 20 20 20 20 20 64 69 73 6b 73 2c 20 |2 . disks, | 0000d0a0 21 46 6f 72 6d 45 64 20 28 52 69 73 63 20 53 71 |!FormEd (Risc Sq| 0000d0b0 75 61 64 20 76 65 72 73 69 6f 6e 20 32 2e 38 34 |uad version 2.84| 0000d0c0 62 20 6f 6e 20 42 30 35 33 20 6f 72 20 32 2e 38 |b on B053 or 2.8| 0000d0d0 37 20 61 6c 73 6f 20 6f 6e 20 0a 20 20 20 20 20 |7 also on . | 0000d0e0 20 42 31 33 38 29 20 61 6e 64 20 61 6e 79 20 41 | B138) and any A| 0000d0f0 63 6f 72 6e 20 76 65 72 73 69 6f 6e 73 2e 20 0a |corn versions. .| 0000d100 0a 20 20 20 20 20 20 35 2e 33 2e 34 20 21 53 74 |. 5.3.4 !St| 0000d110 72 6f 6e 67 45 64 20 0a 0a 20 20 20 20 20 20 41 |rongEd .. A| 0000d120 20 74 65 78 74 20 65 64 69 74 6f 72 20 77 68 69 | text editor whi| 0000d130 63 68 20 75 73 65 64 20 74 6f 20 62 65 20 69 6e |ch used to be in| 0000d140 20 74 68 65 20 70 75 62 6c 69 63 20 64 6f 6d 61 | the public doma| 0000d150 69 6e 20 61 6e 64 20 69 73 20 6e 6f 77 20 61 20 |in and is now a | 0000d160 0a 20 20 20 20 20 20 63 6f 6d 6d 65 72 63 69 61 |. commercia| 0000d170 6c 20 70 72 6f 67 72 61 6d 20 61 76 61 69 6c 61 |l program availa| 0000d180 62 6c 65 20 66 72 6f 6d 20 53 74 61 6c 6c 69 6f |ble from Stallio| 0000d190 6e 20 53 6f 66 74 77 61 72 65 2e 20 54 68 65 20 |n Software. The | 0000d1a0 62 69 67 20 0a 20 20 20 20 20 20 61 64 76 61 6e |big . advan| 0000d1b0 74 61 67 65 20 74 68 69 73 20 68 61 73 20 6f 76 |tage this has ov| 0000d1c0 65 72 20 61 6e 79 20 6f 74 68 65 72 20 65 64 69 |er any other edi| 0000d1d0 74 6f 72 20 69 73 20 74 68 65 20 61 63 63 6f 6d |tor is the accom| 0000d1e0 70 61 6e 79 69 6e 67 20 0a 20 20 20 20 20 20 21 |panying . !| 0000d1f0 53 74 72 6f 6e 67 48 6c 70 20 61 70 70 6c 69 63 |StrongHlp applic| 0000d200 61 74 69 6f 6e 20 61 73 20 70 72 65 73 73 69 6e |ation as pressin| 0000d210 67 20 46 31 20 6f 76 65 72 20 61 20 77 6f 72 64 |g F1 over a word| 0000d220 20 69 6e 20 61 20 70 72 6f 67 72 61 6d 20 0a 20 | in a program . | 0000d230 20 20 20 20 20 6b 6e 6f 77 6e 20 74 6f 20 21 53 | known to !S| 0000d240 74 72 6f 6e 67 48 6c 70 20 63 61 75 73 65 73 20 |trongHlp causes | 0000d250 61 6e 20 68 79 70 65 72 74 65 78 74 20 69 6e 66 |an hypertext inf| 0000d260 6f 72 6d 61 74 69 6f 6e 20 77 69 6e 64 6f 77 20 |ormation window | 0000d270 74 6f 20 0a 20 20 20 20 20 20 6f 70 65 6e 2e 20 |to . open. | 0000d280 0a 0a 20 20 20 20 20 20 54 68 65 20 41 72 63 68 |.. The Arch| 0000d290 69 6d 65 64 65 73 20 57 6f 72 6c 64 20 41 75 67 |imedes World Aug| 0000d2a0 75 73 74 20 31 39 39 33 20 63 6f 76 65 72 20 64 |ust 1993 cover d| 0000d2b0 69 73 6b 20 63 6f 6e 74 61 69 6e 65 64 20 61 20 |isk contained a | 0000d2c0 63 72 69 70 70 6c 65 64 20 0a 20 20 20 20 20 20 |crippled . | 0000d2d0 76 65 72 73 69 6f 6e 20 6f 66 20 21 53 74 72 6f |version of !Stro| 0000d2e0 6e 67 45 64 20 28 61 73 20 74 68 65 20 63 6f 6d |ngEd (as the com| 0000d2f0 6d 65 72 63 69 61 6c 20 76 65 72 73 69 6f 6e 20 |mercial version | 0000d300 69 73 20 6b 6e 6f 77 6e 29 20 77 68 69 63 68 20 |is known) which | 0000d310 0a 20 20 20 20 20 20 63 61 6e 20 62 65 20 75 73 |. can be us| 0000d320 65 64 20 66 6f 72 20 65 76 61 6c 75 61 74 69 6f |ed for evaluatio| 0000d330 6e 20 70 75 72 70 6f 73 65 73 2c 20 61 6e 64 20 |n purposes, and | 0000d340 74 68 69 73 20 6d 61 79 20 62 65 20 61 76 61 69 |this may be avai| 0000d350 6c 61 62 6c 65 20 0a 20 20 20 20 20 20 66 72 6f |lable . fro| 0000d360 6d 20 50 44 20 6c 69 62 72 61 72 69 65 73 2e 20 |m PD libraries. | 0000d370 54 68 65 20 50 44 2f 44 65 6d 6f 20 76 65 72 73 |The PD/Demo vers| 0000d380 69 6f 6e 20 63 61 6e 6e 6f 74 20 63 72 65 61 74 |ion cannot creat| 0000d390 65 20 66 69 6c 65 73 20 61 6e 64 20 0a 20 20 20 |e files and . | 0000d3a0 20 20 20 6f 6e 6c 79 20 61 6c 6c 6f 77 73 20 74 | only allows t| 0000d3b0 77 6f 20 66 69 6c 65 73 20 74 6f 20 62 65 20 6f |wo files to be o| 0000d3c0 70 65 6e 20 61 74 20 61 6e 79 20 6f 6e 65 20 74 |pen at any one t| 0000d3d0 69 6d 65 20 61 6c 74 68 6f 75 67 68 20 74 68 69 |ime although thi| 0000d3e0 73 20 69 73 20 0a 20 20 20 20 20 20 6e 6f 74 20 |s is . not | 0000d3f0 6d 75 63 68 20 6f 66 20 61 20 70 72 6f 62 6c 65 |much of a proble| 0000d400 6d 20 66 6f 72 20 65 76 61 6c 75 61 74 69 6f 6e |m for evaluation| 0000d410 20 70 75 72 70 6f 73 65 73 2e 20 0a 0a 20 20 20 | purposes. .. | 0000d420 20 20 20 35 2e 33 2e 35 20 21 53 74 72 6f 6e 67 | 5.3.5 !Strong| 0000d430 48 6c 70 20 0a 0a 20 20 20 20 20 20 41 20 68 79 |Hlp .. A hy| 0000d440 70 65 72 74 65 78 74 20 74 79 70 65 20 61 70 70 |pertext type app| 0000d450 6c 69 63 61 74 69 6f 6e 20 77 68 69 63 68 20 61 |lication which a| 0000d460 6c 6d 6f 73 74 20 72 65 6d 6f 76 65 73 20 74 68 |lmost removes th| 0000d470 65 20 6e 65 65 64 20 66 6f 72 20 0a 20 20 20 20 |e need for . | 0000d480 20 20 74 68 65 20 52 65 66 65 72 65 6e 63 65 20 | the Reference | 0000d490 4d 61 6e 75 61 6c 73 2e 20 46 69 6c 65 73 20 73 |Manuals. Files s| 0000d4a0 75 70 70 6c 69 65 64 20 77 69 74 68 20 69 74 20 |upplied with it | 0000d4b0 64 65 74 61 69 6c 20 6d 6f 73 74 20 6f 66 20 74 |detail most of t| 0000d4c0 68 65 20 0a 20 20 20 20 20 20 53 57 49 73 20 61 |he . SWIs a| 0000d4d0 76 61 69 6c 61 62 6c 65 20 61 6e 64 20 6d 75 63 |vailable and muc| 0000d4e0 68 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 |h more informati| 0000d4f0 6f 6e 20 69 73 20 70 72 6f 76 69 64 65 64 20 6f |on is provided o| 0000d500 6e 20 42 41 53 49 43 2c 20 0a 20 20 20 20 20 20 |n BASIC, . | 0000d510 56 44 55 20 63 61 6c 6c 73 2c 20 46 69 6c 65 74 |VDU calls, Filet| 0000d520 79 70 65 73 20 65 74 63 2e 20 54 68 65 20 66 75 |ypes etc. The fu| 0000d530 6c 6c 20 76 65 72 73 69 6f 6e 20 6f 66 20 21 53 |ll version of !S| 0000d540 74 72 6f 6e 67 48 6c 70 20 69 73 20 6f 6e 6c 79 |trongHlp is only| 0000d550 20 0a 20 20 20 20 20 20 61 76 61 69 6c 61 62 6c | . availabl| 0000d560 65 20 61 73 20 61 20 27 66 72 65 65 27 20 61 64 |e as a 'free' ad| 0000d570 64 20 6f 6e 20 77 69 74 68 20 74 68 65 20 63 6f |d on with the co| 0000d580 6d 6d 65 72 63 69 61 6c 20 76 65 72 73 69 6f 6e |mmercial version| 0000d590 20 6f 66 20 0a 20 20 20 20 20 20 21 53 74 72 6f | of . !Stro| 0000d5a0 6e 67 45 44 20 66 72 6f 6d 20 53 74 61 6c 6c 69 |ngED from Stalli| 0000d5b0 6f 6e 20 53 6f 66 74 77 61 72 65 2c 20 61 6c 74 |on Software, alt| 0000d5c0 68 6f 75 67 68 20 61 20 6e 65 77 20 50 44 20 76 |hough a new PD v| 0000d5d0 65 72 73 69 6f 6e 20 69 73 20 0a 20 20 20 20 20 |ersion is . | 0000d5e0 20 6e 6f 77 20 61 76 61 69 6c 61 62 6c 65 2e 20 | now available. | 0000d5f0 54 68 65 20 50 44 20 76 65 72 73 69 6f 6e 20 64 |The PD version d| 0000d600 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 |oes not contain | 0000d610 74 68 65 20 68 65 6c 70 20 64 61 74 61 20 66 72 |the help data fr| 0000d620 6f 6d 20 0a 20 20 20 20 20 20 74 68 65 20 66 75 |om . the fu| 0000d630 6c 6c 20 76 65 72 73 69 6f 6e 2c 20 68 6f 77 65 |ll version, howe| 0000d640 76 65 72 2c 20 69 74 20 69 73 20 73 75 66 66 69 |ver, it is suffi| 0000d650 63 69 65 6e 74 20 66 6f 72 20 76 69 65 77 69 6e |cient for viewin| 0000d660 67 20 74 68 65 20 68 65 6c 70 20 0a 20 20 20 20 |g the help . | 0000d670 20 20 66 69 6c 65 73 20 73 75 70 70 6c 69 65 64 | files supplied| 0000d680 20 77 69 74 68 20 45 76 6e 74 53 68 65 6c 6c 2e | with EvntShell.| 0000d690 20 0a 0a 20 20 20 20 20 20 54 68 65 20 41 72 63 | .. The Arc| 0000d6a0 68 69 6d 65 64 65 73 20 57 6f 72 6c 64 20 41 75 |himedes World Au| 0000d6b0 67 75 73 74 20 31 39 39 33 20 63 6f 76 65 72 20 |gust 1993 cover | 0000d6c0 64 69 73 6b 20 61 6c 73 6f 20 63 6f 6e 74 61 69 |disk also contai| 0000d6d0 6e 65 64 20 74 68 65 20 50 44 20 0a 20 20 20 20 |ned the PD . | 0000d6e0 20 20 76 65 72 73 69 6f 6e 20 6f 66 20 21 53 74 | version of !St| 0000d6f0 72 6f 6e 67 48 6c 70 2e 20 0a 0a 20 20 20 20 20 |rongHlp. .. | 0000d700 20 54 68 65 20 45 76 6e 74 53 68 65 6c 6c 20 6c | The EvntShell l| 0000d710 69 62 72 61 72 79 20 61 6c 73 6f 20 68 61 73 20 |ibrary also has | 0000d720 61 20 66 65 77 20 50 52 4f 43 73 20 74 6f 20 69 |a few PROCs to i| 0000d730 6e 74 65 72 66 61 63 65 20 77 69 74 68 20 0a 20 |nterface with . | 0000d740 20 20 20 20 20 53 74 72 6f 6e 67 48 6c 70 20 74 | StrongHlp t| 0000d750 6f 20 65 6e 61 62 6c 65 20 75 73 65 72 20 61 70 |o enable user ap| 0000d760 70 6c 69 63 61 74 69 6f 6e 73 20 74 6f 20 72 65 |plications to re| 0000d770 67 69 73 74 65 72 20 68 65 6c 70 20 73 79 73 74 |gister help syst| 0000d780 65 6d 73 2e 20 0a 0a 20 20 20 20 20 20 57 68 65 |ems. .. Whe| 0000d790 6e 20 61 20 72 65 71 75 65 73 74 20 69 73 20 73 |n a request is s| 0000d7a0 65 6e 74 20 74 6f 20 53 74 72 6f 6e 67 48 6c 70 |ent to StrongHlp| 0000d7b0 20 74 68 65 20 61 63 74 69 76 65 20 61 70 70 6c | the active appl| 0000d7c0 69 63 61 74 69 6f 6e 73 20 6f 6e 20 0a 20 20 20 |ications on . | 0000d7d0 20 20 20 74 68 65 20 69 63 6f 6e 20 62 61 72 20 | the icon bar | 0000d7e0 61 72 65 20 63 68 65 63 6b 65 64 20 74 6f 20 73 |are checked to s| 0000d7f0 65 65 20 69 66 20 53 74 72 6f 6e 67 48 6c 70 20 |ee if StrongHlp | 0000d800 69 73 20 72 75 6e 6e 69 6e 67 2e 20 49 66 20 69 |is running. If i| 0000d810 74 20 69 73 20 0a 20 20 20 20 20 20 6e 6f 74 20 |t is . not | 0000d820 61 6e 64 20 69 74 73 20 21 42 6f 6f 74 20 66 69 |and its !Boot fi| 0000d830 6c 65 20 68 61 73 20 62 65 65 6e 20 27 73 65 65 |le has been 'see| 0000d840 6e 27 20 62 79 20 74 68 65 20 46 69 6c 65 72 20 |n' by the Filer | 0000d850 74 68 65 6e 20 69 74 20 77 69 6c 6c 20 0a 20 20 |then it will . | 0000d860 20 20 20 20 62 65 20 73 74 61 72 74 65 64 20 61 | be started a| 0000d870 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2e 20 49 66 |utomatically. If| 0000d880 20 53 74 72 6f 6e 67 48 6c 70 20 68 61 73 20 6e | StrongHlp has n| 0000d890 6f 74 20 62 65 65 6e 20 27 73 65 65 6e 27 20 74 |ot been 'seen' t| 0000d8a0 68 65 6e 20 0a 20 20 20 20 20 20 61 6e 20 65 72 |hen . an er| 0000d8b0 72 6f 72 20 77 69 6c 6c 20 62 65 20 67 65 6e 65 |ror will be gene| 0000d8c0 72 61 74 65 64 2e 20 0a 0a 20 20 20 20 20 20 4e |rated. .. N| 0000d8d0 6f 74 65 20 74 68 61 74 20 66 6f 72 20 74 68 65 |ote that for the| 0000d8e0 20 61 62 6f 76 65 20 74 6f 20 77 6f 72 6b 20 69 | above to work i| 0000d8f0 74 20 69 73 20 76 69 74 61 6c 20 74 68 61 74 20 |t is vital that | 0000d900 74 68 65 20 68 65 6c 70 20 73 79 73 74 65 6d 20 |the help system | 0000d910 0a 20 20 20 20 20 20 64 69 72 65 63 74 6f 72 79 |. directory| 0000d920 20 68 61 73 20 74 68 65 20 73 61 6d 65 20 6e 61 | has the same na| 0000d930 6d 65 20 61 73 20 74 68 65 20 61 70 70 6c 69 63 |me as the applic| 0000d940 61 74 69 6f 6e 20 28 6d 69 6e 75 73 20 74 68 65 |ation (minus the| 0000d950 20 27 21 27 29 2e 20 0a 0a 20 20 20 20 20 20 35 | '!'). .. 5| 0000d960 2e 33 2e 36 20 21 54 68 72 6f 77 42 61 63 6b 20 |.3.6 !ThrowBack | 0000d970 0a 0a 20 20 20 20 20 20 54 68 69 73 20 61 70 70 |.. This app| 0000d980 6c 69 63 61 74 69 6f 6e 20 61 70 70 65 61 72 65 |lication appeare| 0000d990 64 20 6f 6e 20 74 68 65 20 53 65 70 74 65 6d 62 |d on the Septemb| 0000d9a0 65 72 20 31 39 39 33 20 63 6f 76 65 72 20 64 69 |er 1993 cover di| 0000d9b0 73 6b 20 6f 66 20 0a 20 20 20 20 20 20 41 72 63 |sk of . Arc| 0000d9c0 68 69 6d 65 64 65 73 20 57 6f 72 6c 64 20 61 6e |himedes World an| 0000d9d0 64 20 69 73 20 63 6f 70 79 72 69 67 68 74 20 74 |d is copyright t| 0000d9e0 68 61 74 20 6d 61 67 61 7a 69 6e 65 2e 20 49 74 |hat magazine. It| 0000d9f0 20 70 72 6f 76 69 64 65 73 20 61 20 0a 20 20 20 | provides a . | 0000da00 20 20 20 27 74 68 72 6f 77 62 61 63 6b 27 20 77 | 'throwback' w| 0000da10 69 6e 64 6f 77 20 77 68 65 6e 20 61 6e 20 65 72 |indow when an er| 0000da20 72 6f 72 20 6f 63 63 75 72 73 2c 20 61 6e 64 20 |ror occurs, and | 0000da30 63 6c 69 63 6b 69 6e 67 20 6f 6e 20 74 68 65 20 |clicking on the | 0000da40 0a 20 20 20 20 20 20 74 68 72 6f 77 62 61 63 6b |. throwback| 0000da50 20 77 69 6e 64 6f 77 20 6f 70 65 6e 73 20 79 6f | window opens yo| 0000da60 75 72 20 70 72 6f 67 72 61 6d 20 65 64 69 74 6f |ur program edito| 0000da70 72 20 61 74 20 74 68 65 20 6c 69 6e 65 20 77 68 |r at the line wh| 0000da80 65 72 65 20 74 68 65 20 0a 20 20 20 20 20 20 65 |ere the . e| 0000da90 72 72 6f 72 20 6f 63 63 75 72 65 64 2e 20 54 68 |rror occured. Th| 0000daa0 69 73 20 69 73 20 76 65 72 79 20 75 73 65 66 75 |is is very usefu| 0000dab0 6c 20 77 68 65 6e 20 64 65 62 75 67 67 69 6e 67 |l when debugging| 0000dac0 20 61 20 70 72 6f 67 72 61 6d 2e 20 0a 0c 0a 20 | a program. ... | 0000dad0 20 20 20 20 20 54 68 65 20 45 76 6e 74 53 68 65 | The EvntShe| 0000dae0 6c 6c 20 6c 69 62 72 61 72 79 20 63 6f 6e 74 61 |ll library conta| 0000daf0 69 6e 73 20 74 68 65 20 6e 65 63 65 73 73 61 72 |ins the necessar| 0000db00 79 20 73 75 70 70 6f 72 74 20 63 6f 64 65 20 66 |y support code f| 0000db10 6f 72 20 0a 20 20 20 20 20 20 74 68 69 73 2e 20 |or . this. | 0000db20 4e 6f 74 65 20 74 68 61 74 20 66 6f 72 20 74 68 |Note that for th| 0000db30 69 73 20 74 6f 20 77 6f 72 6b 20 70 72 6f 70 65 |is to work prope| 0000db40 72 6c 79 20 79 6f 75 20 6e 65 65 64 20 74 68 65 |rly you need the| 0000db50 20 44 44 45 55 74 69 6c 73 20 0a 20 20 20 20 20 | DDEUtils . | 0000db60 20 6d 6f 64 75 6c 65 20 61 6e 64 20 61 6e 20 65 | module and an e| 0000db70 64 69 74 6f 72 20 74 68 61 74 20 73 75 70 70 6f |ditor that suppo| 0000db80 72 74 73 20 74 68 72 6f 77 62 61 63 6b 20 28 73 |rts throwback (s| 0000db90 75 63 68 20 61 73 20 21 44 65 73 6b 45 64 69 74 |uch as !DeskEdit| 0000dba0 20 0a 20 20 20 20 20 20 6f 72 20 21 53 74 72 6f | . or !Stro| 0000dbb0 6e 67 45 64 29 2c 20 61 6c 74 68 6f 75 67 68 20 |ngEd), although | 0000dbc0 69 74 20 77 69 6c 6c 20 77 6f 72 6b 20 61 66 74 |it will work aft| 0000dbd0 65 72 20 61 20 66 61 73 68 69 6f 6e 20 77 69 74 |er a fashion wit| 0000dbe0 68 20 21 45 64 69 74 20 0a 20 20 20 20 20 20 61 |h !Edit . a| 0000dbf0 73 20 77 65 6c 6c 2e 20 0a 0a 20 20 20 20 20 20 |s well. .. | 0000dc00 36 20 44 69 73 74 72 69 62 75 74 69 6e 67 20 45 |6 Distributing E| 0000dc10 76 6e 74 53 68 65 6c 6c 20 41 70 70 6c 69 63 61 |vntShell Applica| 0000dc20 74 69 6f 6e 73 20 0a 0a 20 20 20 20 20 20 49 74 |tions .. It| 0000dc30 20 69 73 20 70 72 6f 62 61 62 6c 79 20 62 65 73 | is probably bes| 0000dc40 74 20 74 6f 20 63 6f 70 79 20 53 68 65 6c 6c 4c |t to copy ShellL| 0000dc50 69 62 52 54 2c 20 53 68 65 6c 6c 4d 73 67 73 20 |ibRT, ShellMsgs | 0000dc60 61 6e 64 20 74 68 65 20 6d 6f 64 75 6c 65 73 20 |and the modules | 0000dc70 0a 20 20 20 20 20 20 69 6e 74 6f 20 79 6f 75 72 |. into your| 0000dc80 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 64 69 72 | application dir| 0000dc90 65 63 74 6f 72 79 2c 20 6e 6f 74 20 66 6f 72 67 |ectory, not forg| 0000dca0 65 74 74 69 6e 67 20 74 6f 20 61 6c 74 65 72 20 |etting to alter | 0000dcb0 74 68 65 20 21 52 75 6e 20 0a 20 20 20 20 20 20 |the !Run . | 0000dcc0 66 69 6c 65 20 61 6e 64 20 74 68 65 20 4c 49 42 |file and the LIB| 0000dcd0 52 41 52 59 20 73 74 61 74 65 6d 65 6e 74 20 69 |RARY statement i| 0000dce0 6e 20 74 68 65 20 72 75 6e 69 6d 61 67 65 20 66 |n the runimage f| 0000dcf0 69 6c 65 20 74 6f 20 70 6f 69 6e 74 20 74 6f 20 |ile to point to | 0000dd00 0a 20 20 20 20 20 20 74 68 65 20 6e 65 77 20 6c |. the new l| 0000dd10 6f 63 61 74 69 6f 6e 2e 20 54 68 61 74 20 77 61 |ocation. That wa| 0000dd20 79 20 79 6f 75 20 61 72 65 20 73 75 72 65 20 74 |y you are sure t| 0000dd30 68 61 74 20 61 6c 6c 20 74 68 65 20 6e 65 63 65 |hat all the nece| 0000dd40 73 73 61 72 79 20 0a 20 20 20 20 20 20 66 69 6c |ssary . fil| 0000dd50 65 73 20 61 72 65 20 69 6e 20 6f 6e 65 20 70 6c |es are in one pl| 0000dd60 61 63 65 20 66 6f 72 20 65 61 73 65 20 6f 66 20 |ace for ease of | 0000dd70 63 6f 70 79 69 6e 67 2e 20 0a 0a 20 20 20 20 20 |copying. .. | 0000dd80 20 41 70 70 42 75 69 6c 64 20 77 69 6c 6c 20 64 | AppBuild will d| 0000dd90 6f 20 74 68 69 73 20 66 6f 72 20 79 6f 75 20 61 |o this for you a| 0000dda0 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 69 66 20 |utomatically if | 0000ddb0 79 6f 75 20 64 72 61 67 20 74 68 65 20 0a 20 20 |you drag the . | 0000ddc0 20 20 20 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 | application | 0000ddd0 74 6f 20 74 68 65 20 69 63 6f 6e 62 61 72 20 69 |to the iconbar i| 0000dde0 63 6f 6e 2c 20 74 75 72 6e 20 74 68 65 20 27 53 |con, turn the 'S| 0000ddf0 74 61 6e 64 61 6c 6f 6e 65 27 20 73 77 69 74 63 |tandalone' switc| 0000de00 68 20 69 6e 20 0a 20 20 20 20 20 20 74 68 65 20 |h in . the | 0000de10 6d 61 69 6e 20 77 69 6e 64 6f 77 20 6f 6e 20 61 |main window on a| 0000de20 6e 64 20 63 6c 69 63 6b 20 4f 4b 2e 20 0a 0a 20 |nd click OK. .. | 0000de30 20 20 20 20 20 37 20 44 65 62 75 67 67 69 6e 67 | 7 Debugging| 0000de40 20 0a 0a 20 20 20 20 20 20 41 20 73 69 6d 70 6c | .. A simpl| 0000de50 65 20 64 65 62 75 67 67 65 72 20 28 21 53 68 65 |e debugger (!She| 0000de60 6c 6c 44 42 75 67 29 20 69 73 20 73 75 70 70 6c |llDBug) is suppl| 0000de70 69 65 64 20 77 69 74 68 20 74 68 65 20 6c 69 62 |ied with the lib| 0000de80 72 61 72 79 20 74 6f 20 0a 20 20 20 20 20 20 64 |rary to . d| 0000de90 69 73 70 6c 61 79 20 74 72 61 63 65 20 6d 65 73 |isplay trace mes| 0000dea0 73 61 67 65 73 2e 20 59 6f 75 20 63 61 6e 20 61 |sages. You can a| 0000deb0 6c 73 6f 20 64 6f 20 77 6f 6e 64 65 72 73 20 77 |lso do wonders w| 0000dec0 69 74 68 20 61 20 66 65 77 20 56 44 55 37 20 0a |ith a few VDU7 .| 0000ded0 20 20 20 20 20 20 63 61 6c 6c 73 20 74 6f 20 63 | calls to c| 0000dee0 68 65 63 6b 20 77 68 69 63 68 20 70 61 72 74 73 |heck which parts| 0000def0 20 6f 66 20 74 68 65 20 61 70 70 6c 69 63 61 74 | of the applicat| 0000df00 69 6f 6e 20 61 72 65 20 61 63 74 75 61 6c 6c 79 |ion are actually| 0000df10 20 62 65 69 6e 67 20 0a 20 20 20 20 20 20 65 78 | being . ex| 0000df20 65 63 75 74 65 64 2e 2e 20 0a 0a 20 20 20 20 20 |ecuted.. .. | 0000df30 20 38 20 54 68 65 20 43 72 65 64 69 74 73 20 0a | 8 The Credits .| 0000df40 0a 20 20 20 20 20 20 51 75 69 74 65 20 61 20 66 |. Quite a f| 0000df50 65 77 20 70 65 6f 70 6c 65 20 68 61 76 65 20 62 |ew people have b| 0000df60 65 65 6e 20 28 68 6f 77 65 76 65 72 20 75 6e 77 |een (however unw| 0000df70 69 74 74 69 6e 67 6c 79 29 20 69 6e 76 6f 6c 76 |ittingly) involv| 0000df80 65 64 20 69 6e 20 0a 20 20 20 20 20 20 74 68 69 |ed in . thi| 0000df90 73 20 70 72 6f 6a 65 63 74 20 73 75 63 68 20 61 |s project such a| 0000dfa0 73 3a 20 0a 0a 20 20 20 20 20 20 44 61 76 69 64 |s: .. David| 0000dfb0 20 42 72 65 61 6b 77 65 6c 6c 20 28 74 68 65 20 | Breakwell (the | 0000dfc0 6f 72 69 67 69 6e 61 6c 20 69 64 65 61 29 2c 20 |original idea), | 0000dfd0 52 6f 62 65 72 74 20 53 65 61 67 6f 20 28 66 6f |Robert Seago (fo| 0000dfe0 72 20 75 73 69 6e 67 20 69 74 20 0a 20 20 20 20 |r using it . | 0000dff0 20 20 66 6f 72 20 74 68 69 6e 67 73 20 49 20 77 | for things I w| 0000e000 6f 75 6c 64 6e 27 74 20 64 72 65 61 6d 20 6f 66 |ouldn't dream of| 0000e010 20 61 74 74 65 6d 70 74 69 6e 67 21 29 2c 20 43 | attempting!), C| 0000e020 79 20 42 6f 6f 6b 65 72 20 28 76 61 72 69 6f 75 |y Booker (variou| 0000e030 73 20 0a 20 20 20 20 20 20 68 65 6c 70 66 75 6c |s . helpful| 0000e040 20 73 75 67 67 65 73 74 69 6f 6e 73 20 2d 20 49 | suggestions - I| 0000e050 20 77 6f 6e 27 74 20 72 65 77 72 69 74 65 20 69 | won't rewrite i| 0000e060 74 20 69 6e 20 43 20 6f 72 20 41 73 73 65 6d 62 |t in C or Assemb| 0000e070 6c 65 72 20 74 68 6f 75 67 68 20 0a 20 20 20 20 |ler though . | 0000e080 20 20 2d 20 52 49 53 43 2d 4f 53 20 33 20 44 6f | - RISC-OS 3 Do| 0000e090 63 75 6d 65 6e 74 61 74 69 6f 6e 20 61 6e 64 20 |cumentation and | 0000e0a0 74 68 65 20 46 6f 6e 74 57 69 6e 64 6f 77 20 6d |the FontWindow m| 0000e0b0 6f 64 75 6c 65 29 2c 20 52 69 73 63 20 55 73 65 |odule), Risc Use| 0000e0c0 72 20 0a 20 20 20 20 20 20 6d 61 67 61 7a 69 6e |r . magazin| 0000e0d0 65 20 28 66 6f 72 20 70 65 72 6d 69 73 73 69 6f |e (for permissio| 0000e0e0 6e 20 74 6f 20 75 73 65 20 69 74 73 20 68 65 61 |n to use its hea| 0000e0f0 70 20 6d 61 6e 61 67 65 72 20 63 6f 64 65 29 2c |p manager code),| 0000e100 20 4a 6f 72 69 73 20 0a 20 20 20 20 20 20 52 f6 | Joris . R.| 0000e110 6c 69 6e 67 20 28 46 6f 6e 74 4d 65 6e 75 20 6d |ling (FontMenu m| 0000e120 6f 64 75 6c 65 29 2c 20 53 69 6d 6f 6e 20 48 75 |odule), Simon Hu| 0000e130 6e 74 69 6e 67 64 6f 6e 20 28 49 6e 74 65 72 66 |ntingdon (Interf| 0000e140 61 63 65 20 6d 6f 64 75 6c 65 29 2c 20 0a 20 20 |ace module), . | 0000e150 20 20 20 20 41 6c 65 78 20 50 65 74 72 6f 76 20 | Alex Petrov | 0000e160 28 4d 65 6e 75 55 74 69 6c 73 29 2c 20 4a 61 6e |(MenuUtils), Jan| 0000e170 2d 48 65 72 6d 61 6e 20 42 75 69 6e 69 6e 67 20 |-Herman Buining | 0000e180 28 57 41 53 50 20 61 70 70 6c 69 63 61 74 69 6f |(WASP applicatio| 0000e190 6e 20 0a 20 20 20 20 20 20 66 72 6f 6d 20 77 68 |n . from wh| 0000e1a0 69 63 68 20 49 20 77 6f 72 6b 65 64 20 6f 75 74 |ich I worked out| 0000e1b0 20 68 6f 77 20 74 6f 20 64 6f 20 52 41 4d 20 66 | how to do RAM f| 0000e1c0 69 6c 65 20 74 72 61 6e 73 66 65 72 73 29 20 61 |ile transfers) a| 0000e1d0 6e 64 20 6c 61 73 74 6c 79 20 0a 20 20 20 20 20 |nd lastly . | 0000e1e0 20 74 68 65 20 77 69 66 65 20 28 48 69 6c 6b 65 | the wife (Hilke| 0000e1f0 29 20 66 6f 72 20 70 75 74 74 69 6e 67 20 75 70 |) for putting up| 0000e200 20 77 69 74 68 20 6d 65 20 70 6f 75 6e 64 69 6e | with me poundin| 0000e210 67 20 61 77 61 79 20 61 74 20 61 20 0a 20 20 20 |g away at a . | 0000e220 20 20 20 6b 65 79 62 6f 61 72 64 20 66 6f 72 20 | keyboard for | 0000e230 68 6f 75 72 73 20 77 68 65 6e 20 77 65 20 63 6f |hours when we co| 0000e240 75 6c 64 20 68 61 76 65 20 62 65 65 6e 20 6c 6f |uld have been lo| 0000e250 6f 6b 69 6e 67 20 66 6f 72 20 6e 65 77 20 0a 20 |oking for new . | 0000e260 20 20 20 20 20 66 75 72 6e 69 74 75 72 65 20 69 | furniture i| 0000e270 6e 73 74 65 61 64 2e 20 0a 0a 20 20 20 20 20 20 |nstead. .. | 0000e280 39 20 46 75 74 75 72 65 20 45 6e 68 61 6e 63 65 |9 Future Enhance| 0000e290 6d 65 6e 74 73 20 0a 0a 20 20 20 20 20 20 54 68 |ments .. Th| 0000e2a0 65 20 73 6f 66 74 77 61 72 65 20 77 69 6c 6c 20 |e software will | 0000e2b0 62 65 63 6f 6d 65 20 66 61 73 74 65 72 20 61 6e |become faster an| 0000e2c0 64 20 62 65 20 61 62 6c 65 20 74 6f 20 6c 65 61 |d be able to lea| 0000e2d0 70 20 74 61 6c 6c 20 0a 20 20 20 20 20 20 62 75 |p tall . bu| 0000e2e0 69 6c 64 69 6e 67 73 20 77 69 74 68 20 61 20 73 |ildings with a s| 0000e2f0 69 6e 67 6c 65 20 62 6f 75 6e 64 2e 20 42 75 67 |ingle bound. Bug| 0000e300 73 20 61 6e 64 20 6c 69 6d 69 74 61 74 69 6f 6e |s and limitation| 0000e310 73 20 77 69 6c 6c 20 62 65 63 6f 6d 65 20 0a 20 |s will become . | 0000e320 20 20 20 20 20 66 65 77 65 72 20 61 73 20 77 65 | fewer as we| 0000e330 6c 6c 2e 20 0a 0a 20 20 20 20 20 20 0a 20 20 20 |ll. .. . | 0000e340 20 20 20 2d 20 53 75 70 70 6f 72 74 20 66 6f 72 | - Support for| 0000e350 20 61 75 74 6f 6d 61 74 69 63 20 68 61 6e 64 6c | automatic handl| 0000e360 69 6e 67 20 6f 66 20 6d 6f 72 65 0a 20 20 20 20 |ing of more. | 0000e370 20 20 20 20 63 6f 6d 70 6c 69 63 61 74 65 64 20 | complicated | 0000e380 69 63 6f 6e 20 74 79 70 65 73 2c 20 66 6f 72 20 |icon types, for | 0000e390 65 78 61 6d 70 6c 65 0a 20 20 20 20 20 20 20 20 |example. | 0000e3a0 73 6c 69 64 65 72 73 2c 20 72 6f 74 61 74 69 6e |sliders, rotatin| 0000e3b0 67 20 6b 6e 6f 62 73 20 65 74 63 0a 20 20 20 20 |g knobs etc. | 0000e3c0 20 20 20 20 28 73 74 65 61 64 79 20 6e 6f 77 20 | (steady now | 0000e3d0 64 6f 6e 27 74 20 67 65 74 20 63 61 72 72 69 65 |don't get carrie| 0000e3e0 64 20 61 77 61 79 29 0a 20 20 20 20 20 20 2d 20 |d away). - | 0000e3f0 49 6d 70 6f 72 74 20 61 6e 64 20 64 69 73 70 6c |Import and displ| 0000e400 61 79 20 6f 66 20 44 72 61 77 46 69 6c 65 73 20 |ay of DrawFiles | 0000e410 61 6e 64 0a 20 20 20 20 20 20 20 20 53 70 72 69 |and. Spri| 0000e420 74 65 73 0a 20 20 20 20 20 20 2d 20 49 6e 63 6c |tes. - Incl| 0000e430 75 73 69 6f 6e 20 6f 66 20 6d 6f 72 65 20 64 65 |usion of more de| 0000e440 62 75 67 67 69 6e 67 20 61 69 64 73 0a 20 20 20 |bugging aids. | 0000e450 20 20 20 2d 20 4d 6f 72 65 20 64 72 61 67 20 74 | - More drag t| 0000e460 79 70 65 73 0a 20 20 20 20 20 20 2d 20 41 75 74 |ypes. - Aut| 0000e470 6f 73 63 72 6f 6c 6c 20 68 61 6e 64 6c 65 72 20 |oscroll handler | 0000e480 77 68 65 6e 20 6f 62 6a 65 63 74 20 69 73 0a 20 |when object is. | 0000e490 20 20 20 20 20 20 20 64 72 61 67 67 65 64 20 77 | dragged w| 0000e4a0 69 74 68 69 6e 20 61 20 77 69 6e 64 6f 77 0a 20 |ithin a window. | 0000e4b0 20 20 20 20 20 2d 20 43 6f 6c 6f 75 72 20 70 69 | - Colour pi| 0000e4c0 63 6b 20 64 69 61 6c 6f 67 73 0a 20 20 20 20 20 |ck dialogs. | 0000e4d0 20 2d 20 41 75 74 6f 6d 61 74 69 63 20 68 61 6e | - Automatic han| 0000e4e0 64 6c 69 6e 67 20 6f 66 20 6e 6f 6e 2d 69 63 6f |dling of non-ico| 0000e4f0 6e 20 74 65 78 74 0a 0c 0a 20 20 20 20 20 20 20 |n text... | 0000e500 20 77 69 74 68 69 6e 20 61 20 77 69 6e 64 6f 77 | within a window| 0000e510 20 28 6c 69 6b 65 20 43 20 74 78 74 20 6f 62 6a | (like C txt obj| 0000e520 65 63 74 73 29 0a 20 20 20 20 20 20 2d 20 50 6c |ects). - Pl| 0000e530 61 79 69 6e 67 20 6f 66 20 4d 61 65 73 74 72 6f |aying of Maestro| 0000e540 20 74 75 6e 65 73 20 28 41 72 63 68 57 61 79 20 | tunes (ArchWay | 0000e550 64 6f 65 73 21 29 0a 20 20 20 20 20 20 2d 20 45 |does!). - E| 0000e560 78 74 65 6e 64 69 6e 67 20 6d 65 73 73 61 67 65 |xtending message| 0000e570 20 66 69 6c 65 20 75 73 65 61 67 65 20 74 6f 20 | file useage to | 0000e580 69 63 6f 6e 73 2f 0a 20 20 20 20 20 20 20 20 77 |icons/. w| 0000e590 69 6e 64 6f 77 73 2f 6d 65 6e 75 73 0a 20 20 20 |indows/menus. | 0000e5a0 20 20 20 2d 20 52 65 70 6c 61 79 20 46 69 6c 6d | - Replay Film| 0000e5b0 73 20 28 21 21 21 29 0a 20 20 20 20 20 20 2d 20 |s (!!!). - | 0000e5c0 42 65 74 74 65 72 20 6d 75 6c 74 69 70 6c 65 20 |Better multiple | 0000e5d0 66 69 6c 65 20 62 75 66 66 65 72 73 0a 20 20 20 |file buffers. | 0000e5e0 20 20 20 2d 20 43 6f 6d 70 6c 65 74 65 20 47 65 | - Complete Ge| 0000e5f0 72 6d 61 6e 20 6d 65 73 73 61 67 65 20 66 69 6c |rman message fil| 0000e600 65 73 0a 20 20 20 20 20 20 2d 20 43 68 6f 69 63 |es. - Choic| 0000e610 65 20 6f 66 20 6d 65 73 73 61 67 65 20 66 69 6c |e of message fil| 0000e620 65 20 6c 61 6e 67 75 61 67 65 20 66 72 6f 6d 0a |e language from.| 0000e630 20 20 20 20 20 20 20 20 77 69 74 68 69 6e 20 70 | within p| 0000e640 72 6f 67 72 61 6d 0a 20 20 20 20 20 20 2d 20 41 |rogram. - A| 0000e650 75 74 6f 6d 61 74 69 63 20 61 74 74 61 63 68 69 |utomatic attachi| 0000e660 6e 67 20 6f 66 20 27 68 6f 74 20 6b 65 79 27 20 |ng of 'hot key' | 0000e670 65 76 65 6e 74 73 0a 20 20 20 20 20 20 20 20 62 |events. b| 0000e680 79 20 65 78 61 6d 69 6e 69 6e 67 20 6d 65 6e 75 |y examining menu| 0000e690 20 74 65 78 74 0a 20 20 20 20 20 20 0a 20 20 20 | text. . | 0000e6a0 20 20 20 0a 20 20 20 20 20 20 31 30 20 43 68 61 | . 10 Cha| 0000e6b0 6e 67 65 73 20 53 69 6e 63 65 20 56 31 2e 31 34 |nges Since V1.14| 0000e6c0 20 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 | .. . | 0000e6d0 56 31 2e 32 30 20 2d 20 4e 6f 77 20 75 73 65 73 |V1.20 - Now uses| 0000e6e0 20 4d 65 6e 75 55 74 69 6c 73 20 6d 6f 64 75 6c | MenuUtils modul| 0000e6f0 65 20 66 6f 72 20 6d 65 6e 75 20 68 61 6e 64 6c |e for menu handl| 0000e700 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 |ing. | 0000e710 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 |- Added routine | 0000e720 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 53 65 |PROCshell_IconSe| 0000e730 74 53 65 6c 65 63 74 65 64 0a 20 20 20 20 20 20 |tSelected. | 0000e740 20 20 20 20 20 20 2d 20 41 64 64 65 64 20 72 6f | - Added ro| 0000e750 75 74 69 6e 65 20 50 52 4f 43 73 68 65 6c 6c 5f |utine PROCshell_| 0000e760 49 63 6f 6e 53 65 74 55 6e 73 65 6c 65 63 74 61 |IconSetUnselecta| 0000e770 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 |ble. | 0000e780 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 |- Added routine | 0000e790 46 4e 73 68 65 6c 6c 5f 53 74 72 6f 6e 67 48 6c |FNshell_StrongHl| 0000e7a0 70 49 73 41 76 61 69 6c 61 62 6c 65 0a 20 20 20 |pIsAvailable. | 0000e7b0 20 20 20 20 20 20 20 20 20 2d 20 41 64 64 65 64 | - Added| 0000e7c0 20 72 6f 75 74 69 6e 65 20 46 4e 73 68 65 6c 6c | routine FNshell| 0000e7d0 5f 4d 65 6e 75 4e 65 77 0a 20 20 20 20 20 20 20 |_MenuNew. | 0000e7e0 20 20 20 20 20 2d 20 41 64 64 65 64 20 72 6f 75 | - Added rou| 0000e7f0 74 69 6e 65 20 46 4e 73 68 65 6c 6c 5f 4d 65 6e |tine FNshell_Men| 0000e800 75 41 64 64 0a 20 20 20 20 20 20 20 20 20 20 20 |uAdd. | 0000e810 20 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 | - Added routine| 0000e820 20 46 4e 73 68 65 6c 6c 5f 4d 65 6e 75 44 65 6c | FNshell_MenuDel| 0000e830 65 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 |ete. | 0000e840 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 |- Added routine | 0000e850 46 4e 73 68 65 6c 6c 5f 4d 65 6e 75 43 6f 6c 6f |FNshell_MenuColo| 0000e860 75 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 |urs. | 0000e870 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 |- Added routine | 0000e880 46 4e 73 68 65 6c 6c 5f 4d 65 6e 75 44 6f 74 74 |FNshell_MenuDott| 0000e890 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d |ed. -| 0000e8a0 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 46 | Added routine F| 0000e8b0 4e 73 68 65 6c 6c 5f 4d 65 6e 75 57 72 69 74 61 |Nshell_MenuWrita| 0000e8c0 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 |ble. | 0000e8d0 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 |- Added routine | 0000e8e0 46 4e 73 68 65 6c 6c 5f 4d 65 6e 75 54 69 63 6b |FNshell_MenuTick| 0000e8f0 4f 6e 6c 79 31 0a 20 20 20 20 20 20 20 20 20 20 |Only1. | 0000e900 20 20 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e | - Added routin| 0000e910 65 20 46 4e 73 68 65 6c 6c 5f 4d 65 6e 75 54 69 |e FNshell_MenuTi| 0000e920 63 6b 4f 6e 6c 79 32 0a 20 20 20 20 20 20 20 20 |ckOnly2. | 0000e930 20 20 20 20 2d 20 4d 6f 64 69 66 69 65 64 20 61 | - Modified a| 0000e940 6c 6c 20 6f 74 68 65 72 20 6d 65 6e 75 20 72 6f |ll other menu ro| 0000e950 75 74 69 6e 65 73 0a 20 20 20 20 20 20 20 20 20 |utines. | 0000e960 20 20 20 2d 20 41 64 64 65 64 20 72 6f 75 74 69 | - Added routi| 0000e970 6e 65 20 46 4e 73 68 65 6c 6c 5f 53 74 72 6f 6e |ne FNshell_Stron| 0000e980 67 48 6c 70 49 73 41 76 61 69 6c 61 62 6c 65 0a |gHlpIsAvailable.| 0000e990 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 41 64 | - Ad| 0000e9a0 64 65 64 20 72 6f 75 74 69 6e 65 20 50 52 4f 43 |ded routine PROC| 0000e9b0 73 68 65 6c 6c 5f 41 74 74 61 63 68 50 72 65 51 |shell_AttachPreQ| 0000e9c0 75 69 74 48 61 6e 64 6c 65 72 0a 20 20 20 20 20 |uitHandler. | 0000e9d0 20 20 20 20 20 20 20 2d 20 41 64 64 65 64 20 72 | - Added r| 0000e9e0 6f 75 74 69 6e 65 20 50 52 4f 43 73 68 65 6c 6c |outine PROCshell| 0000e9f0 5f 41 74 74 61 63 68 4f 70 65 6e 57 69 6e 64 6f |_AttachOpenWindo| 0000ea00 77 48 61 6e 64 6c 65 72 0a 20 20 20 20 20 20 20 |wHandler. | 0000ea10 20 20 20 20 20 2d 20 41 64 64 65 64 20 72 6f 75 | - Added rou| 0000ea20 74 69 6e 65 20 50 52 4f 43 73 68 65 6c 6c 5f 41 |tine PROCshell_A| 0000ea30 74 74 61 63 68 43 6c 6f 73 65 57 69 6e 64 6f 77 |ttachCloseWindow| 0000ea40 48 61 6e 64 6c 65 72 0a 20 20 20 20 20 20 20 20 |Handler. | 0000ea50 20 20 20 20 2d 20 41 64 64 65 64 20 72 6f 75 74 | - Added rout| 0000ea60 69 6e 65 20 46 4e 73 68 65 6c 6c 5f 53 70 72 69 |ine FNshell_Spri| 0000ea70 74 65 41 72 65 61 4c 6f 61 64 0a 20 20 20 20 20 |teAreaLoad. | 0000ea80 20 20 20 20 20 20 20 2d 20 41 64 64 65 64 20 72 | - Added r| 0000ea90 6f 75 74 69 6e 65 20 50 52 4f 43 73 68 65 6c 6c |outine PROCshell| 0000eaa0 5f 53 70 72 69 74 65 41 72 65 61 53 61 76 65 0a |_SpriteAreaSave.| 0000eab0 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 41 64 | - Ad| 0000eac0 64 65 64 20 72 6f 75 74 69 6e 65 20 46 4e 73 68 |ded routine FNsh| 0000ead0 65 6c 6c 5f 53 70 72 69 74 65 47 65 74 50 74 72 |ell_SpriteGetPtr| 0000eae0 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 41 |. - A| 0000eaf0 64 64 65 64 20 72 6f 75 74 69 6e 65 20 50 52 4f |dded routine PRO| 0000eb00 43 73 68 65 6c 6c 5f 53 70 72 69 74 65 52 65 6e |Cshell_SpriteRen| 0000eb10 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 |ame. | 0000eb20 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 |- Added routine | 0000eb30 46 4e 73 68 65 6c 6c 5f 4f 53 43 68 65 63 6b 56 |FNshell_OSCheckV| 0000eb40 65 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 |ersion. | 0000eb50 20 20 20 2d 20 41 64 64 65 64 20 72 6f 75 74 69 | - Added routi| 0000eb60 6e 65 20 46 4e 73 68 65 6c 6c 5f 4f 53 43 68 65 |ne FNshell_OSChe| 0000eb70 63 6b 4d 6f 64 75 6c 65 56 65 72 73 69 6f 6e 0a |ckModuleVersion.| 0000eb80 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 41 64 | - Ad| 0000eb90 64 65 64 20 72 6f 75 74 69 6e 65 20 50 52 4f 43 |ded routine PROC| 0000eba0 73 68 65 6c 6c 5f 49 63 6f 6e 53 65 74 4c 65 66 |shell_IconSetLef| 0000ebb0 74 4a 75 73 74 0a 20 20 20 20 20 20 20 20 20 20 |tJust. | 0000ebc0 20 20 2d 20 46 69 78 65 64 20 50 52 4f 43 73 68 | - Fixed PROCsh| 0000ebd0 65 6c 6c 5f 49 63 6f 6e 53 65 74 52 69 67 68 74 |ell_IconSetRight| 0000ebe0 4a 75 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 |Just. | 0000ebf0 20 2d 20 57 72 69 74 61 62 6c 65 20 69 63 6f 6e | - Writable icon| 0000ec00 20 68 61 6e 64 6c 65 72 20 6e 6f 77 20 69 67 6e | handler now ign| 0000ec10 6f 72 65 73 20 75 6e 73 65 6c 65 63 74 61 62 6c |ores unselectabl| 0000ec20 65 20 69 63 6f 6e 73 0a 20 20 20 20 20 20 20 20 |e icons. | 0000ec30 20 20 20 20 20 20 77 68 65 6e 20 6d 6f 76 69 6e | when movin| 0000ec40 67 20 63 61 72 65 74 0a 20 20 20 20 20 20 20 20 |g caret. | 0000ec50 20 20 20 20 2d 20 41 64 64 65 64 20 73 75 70 70 | - Added supp| 0000ec60 6f 72 74 20 66 6f 72 20 52 65 73 46 69 6e 64 20 |ort for ResFind | 0000ec70 28 69 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 69 73 |(internationalis| 0000ec80 61 74 69 6f 6e 20 6f 66 0a 20 20 20 20 20 20 20 |ation of. | 0000ec90 20 20 20 20 20 20 20 6d 65 73 73 61 67 65 73 20 | messages | 0000eca0 65 74 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 |etc). | 0000ecb0 20 20 0a 20 20 20 20 20 20 56 31 2e 32 31 20 2d | . V1.21 -| 0000ecc0 20 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 | Added support f| 0000ecd0 6f 72 20 4a 6f 65 20 54 61 79 6c 6f 72 27 73 20 |or Joe Taylor's | 0000ece0 21 54 68 72 6f 77 42 61 63 6b 20 65 72 72 6f 72 |!ThrowBack error| 0000ecf0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 |. h| 0000ed00 61 6e 64 6c 65 72 20 28 73 65 65 20 41 72 63 68 |andler (see Arch| 0000ed10 69 6d 65 64 65 73 20 57 6f 72 6c 64 20 53 65 70 |imedes World Sep| 0000ed20 20 31 39 39 33 29 0a 20 20 20 20 20 20 20 20 20 | 1993). | 0000ed30 20 20 20 20 0a 20 20 20 20 20 20 56 31 2e 32 32 | . V1.22| 0000ed40 20 2d 20 43 6c 69 63 6b 69 6e 67 20 6f 6e 20 61 | - Clicking on a| 0000ed50 20 27 62 75 6d 70 27 20 69 63 6f 6e 20 77 69 74 | 'bump' icon wit| 0000ed60 68 20 41 44 4a 55 53 54 20 6e 6f 77 20 68 61 73 |h ADJUST now has| 0000ed70 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 | the. | 0000ed80 20 20 6f 70 70 6f 73 69 74 65 20 65 66 66 65 63 | opposite effec| 0000ed90 74 20 74 6f 20 63 6c 69 63 6b 69 6e 67 20 77 69 |t to clicking wi| 0000eda0 74 68 20 53 45 4c 45 43 54 0a 20 20 20 20 20 20 |th SELECT. | 0000edb0 20 20 20 20 20 20 2d 20 49 6d 70 72 6f 76 65 64 | - Improved| 0000edc0 20 65 72 72 6f 72 20 68 61 6e 64 6c 69 6e 67 20 | error handling | 0000edd0 61 6e 64 20 6d 65 73 73 61 67 65 73 0a 20 20 20 |and messages. | 0000ede0 20 20 20 20 20 20 20 20 20 2d 20 50 52 4f 43 73 | - PROCs| 0000edf0 68 65 6c 6c 5f 41 74 74 61 63 68 44 61 74 61 53 |hell_AttachDataS| 0000ee00 61 76 65 20 6e 6f 77 20 61 6c 74 65 72 73 20 69 |ave now alters i| 0000ee10 63 6f 6e 20 62 75 74 74 6f 6e 0a 20 20 20 20 20 |con button. | 0000ee20 20 20 20 20 20 20 20 20 20 74 79 70 65 20 6f 66 | type of| 0000ee30 20 66 69 6c 65 20 69 63 6f 6e 20 74 6f 20 63 6c | file icon to cl| 0000ee40 69 63 6b 2f 64 72 61 67 20 61 6e 64 20 67 65 6e |ick/drag and gen| 0000ee50 65 72 61 74 65 73 20 61 6e 0a 20 20 20 20 20 20 |erates an. | 0000ee60 20 20 20 20 20 20 20 20 65 72 72 6f 72 20 69 66 | error if| 0000ee70 20 74 68 65 20 66 69 6c 65 20 69 63 6f 6e 20 69 | the file icon i| 0000ee80 73 20 6e 6f 74 20 61 20 73 70 72 69 74 65 0a 20 |s not a sprite. | 0000ee90 20 20 20 20 20 20 20 20 20 20 20 2d 20 50 52 4f | - PRO| 0000eea0 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 4d 65 6e |Cshell_AttachMen| 0000eeb0 75 20 6e 6f 77 20 73 65 74 73 20 62 75 74 74 6f |u now sets butto| 0000eec0 6e 20 74 79 70 65 20 6f 66 20 69 63 6f 6e 0a 20 |n type of icon. | 0000eed0 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 20 | to | 0000eee0 33 20 28 43 6c 69 63 6b 29 0a 20 20 20 20 20 20 |3 (Click). | 0000eef0 20 20 20 20 20 20 2d 20 42 75 67 20 66 69 78 20 | - Bug fix | 0000ef00 74 6f 20 6d 65 6e 75 20 61 74 74 61 63 68 20 72 |to menu attach r| 0000ef10 6f 75 74 69 6e 65 20 28 61 20 6d 65 6e 75 20 63 |outine (a menu c| 0000ef20 6f 75 6c 64 20 61 70 70 65 61 72 0a 20 20 20 20 |ould appear. | 0000ef30 20 20 20 20 20 20 20 20 20 20 77 68 65 6e 20 61 | when a| 0000ef40 6e 6f 74 68 65 72 20 65 76 65 6e 74 20 6f 63 63 |nother event occ| 0000ef50 75 72 73 20 73 75 63 68 20 61 73 20 43 6c 69 63 |urs such as Clic| 0000ef60 6b 53 65 6c 65 63 74 29 0a 20 20 20 20 20 20 20 |kSelect). | 0000ef70 20 20 20 20 20 2d 20 41 64 64 65 64 20 72 6f 75 | - Added rou| 0000ef80 74 69 6e 65 20 3c 46 4e 68 65 6c 6c 5f 49 63 6f |tine <FNhell_Ico| 0000ef90 6e 49 73 44 72 61 67 67 61 62 6c 65 0a 20 20 20 |nIsDraggable. | 0000efa0 20 20 20 20 20 20 20 20 20 2d 20 41 64 64 65 64 | - Added| 0000efb0 20 72 6f 75 74 69 6e 65 20 46 4e 73 68 65 6c 6c | routine FNshell| 0000efc0 5f 49 63 6f 6e 49 73 53 70 72 69 74 65 0a 0c 0a |_IconIsSprite...| 0000efd0 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 41 64 | - Ad| 0000efe0 64 65 64 20 72 6f 75 74 69 6e 65 20 46 4e 73 68 |ded routine FNsh| 0000eff0 65 6c 6c 5f 47 65 74 53 74 72 69 6e 67 0a 20 20 |ell_GetString. | 0000f000 20 20 20 20 20 20 20 20 20 20 2d 20 41 64 64 65 | - Adde| 0000f010 64 20 72 6f 75 74 69 6e 65 20 50 52 4f 43 73 68 |d routine PROCsh| 0000f020 65 6c 6c 5f 45 6e 73 75 72 65 0a 20 20 20 20 20 |ell_Ensure. | 0000f030 20 20 20 20 20 20 20 2d 20 41 64 64 65 64 20 72 | - Added r| 0000f040 6f 75 74 69 6e 65 20 50 52 4f 43 73 68 65 6c 6c |outine PROCshell| 0000f050 5f 49 63 6f 6e 50 75 74 44 61 74 61 4e 6f 77 0a |_IconPutDataNow.| 0000f060 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 41 64 | - Ad| 0000f070 64 65 64 20 72 6f 75 74 69 6e 65 20 50 52 4f 43 |ded routine PROC| 0000f080 73 68 65 6c 6c 5f 4d 65 73 73 61 67 65 53 65 6e |shell_MessageSen| 0000f090 64 44 61 74 61 4c 6f 61 64 0a 20 20 20 20 20 20 |dDataLoad. | 0000f0a0 0a 20 20 20 20 20 20 56 31 2e 32 33 20 2d 20 42 |. V1.23 - B| 0000f0b0 75 67 20 66 69 78 20 66 6f 72 20 61 75 74 6f 20 |ug fix for auto | 0000f0c0 70 72 65 73 73 20 6f 66 20 69 63 6f 6e 20 30 20 |press of icon 0 | 0000f0d0 77 68 65 6e 20 52 45 54 55 52 4e 20 69 73 0a 20 |when RETURN is. | 0000f0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 65 | pre| 0000f0f0 73 73 65 64 20 69 6e 20 6c 61 73 74 20 77 72 69 |ssed in last wri| 0000f100 74 61 62 6c 65 20 69 63 6f 6e 0a 20 20 20 20 20 |table icon. | 0000f110 20 0a 20 20 20 20 20 20 56 31 2e 32 34 20 2d 20 | . V1.24 - | 0000f120 42 75 67 20 66 69 78 20 66 6f 72 20 70 61 6e 65 |Bug fix for pane| 0000f130 20 68 61 6e 64 6c 65 72 20 28 70 61 6e 65 20 77 | handler (pane w| 0000f140 61 73 20 6e 6f 74 20 6f 70 65 6e 69 6e 67 20 66 |as not opening f| 0000f150 75 6c 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 |ully. | 0000f160 20 20 20 77 68 65 6e 20 77 69 6d 70 20 61 64 6a | when wimp adj| 0000f170 75 73 74 73 20 70 61 72 65 6e 74 20 77 69 6e 64 |usts parent wind| 0000f180 6f 77 20 63 6f 6f 72 64 73 20 2d 20 69 66 20 74 |ow coords - if t| 0000f190 69 74 6c 65 20 69 73 0a 20 20 20 20 20 20 20 20 |itle is. | 0000f1a0 20 20 20 20 20 20 63 68 61 6e 67 65 64 20 66 6f | changed fo| 0000f1b0 72 20 65 78 61 6d 70 6c 65 29 2e 20 50 61 6e 65 |r example). Pane| 0000f1c0 20 68 61 6e 64 6c 69 6e 67 20 69 73 20 73 74 69 | handling is sti| 0000f1d0 6c 6c 20 6e 6f 74 20 31 30 30 25 0a 20 20 20 20 |ll not 100%. | 0000f1e0 20 20 20 20 20 20 20 20 20 20 77 68 65 6e 20 61 | when a| 0000f1f0 20 6d 6f 64 65 20 63 68 61 6e 67 65 20 65 76 65 | mode change eve| 0000f200 6e 74 20 6f 63 63 75 72 73 20 74 68 6f 75 67 68 |nt occurs though| 0000f210 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 56 31 |. . V1| 0000f220 2e 32 35 20 2d 20 41 64 64 65 64 20 72 6f 75 74 |.25 - Added rout| 0000f230 69 6e 65 20 46 4e 73 68 65 6c 6c 5f 4d 65 6e 75 |ine FNshell_Menu| 0000f240 4d 61 6b 65 46 72 6f 6d 46 69 6c 65 0a 20 20 20 |MakeFromFile. | 0000f250 20 20 20 20 20 20 20 20 20 2d 20 41 64 64 65 64 | - Added| 0000f260 20 72 6f 75 74 69 6e 65 20 46 4e 73 68 65 6c 6c | routine FNshell| 0000f270 5f 42 69 6e 61 72 79 53 65 61 72 63 68 0a 20 20 |_BinarySearch. | 0000f280 20 20 20 20 20 20 20 20 20 20 2d 20 41 64 64 65 | - Adde| 0000f290 64 20 72 6f 75 74 69 6e 65 20 46 4e 73 68 65 6c |d routine FNshel| 0000f2a0 6c 5f 4d 65 6e 75 47 65 74 4e 72 49 74 65 6d 73 |l_MenuGetNrItems| 0000f2b0 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 41 |. - A| 0000f2c0 64 64 65 64 20 72 6f 75 74 69 6e 65 20 46 4e 73 |dded routine FNs| 0000f2d0 68 65 6c 6c 5f 4d 65 6e 75 47 65 74 4e 72 44 6f |hell_MenuGetNrDo| 0000f2e0 74 74 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 |tted. | 0000f2f0 20 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 | - Added routine| 0000f300 20 46 4e 73 68 65 6c 6c 5f 4d 65 6e 75 47 65 74 | FNshell_MenuGet| 0000f310 49 74 65 6d 48 61 6e 64 6c 65 0a 20 20 20 20 20 |ItemHandle. | 0000f320 20 20 20 20 20 20 20 2d 20 41 64 64 65 64 20 72 | - Added r| 0000f330 6f 75 74 69 6e 65 20 46 4e 73 68 65 6c 6c 5f 4d |outine FNshell_M| 0000f340 65 6e 75 47 65 74 49 74 65 6d 48 65 69 67 68 74 |enuGetItemHeight| 0000f350 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 41 |. - A| 0000f360 64 64 65 64 20 72 6f 75 74 69 6e 65 20 46 4e 73 |dded routine FNs| 0000f370 68 65 6c 6c 5f 4d 65 6e 75 47 65 74 49 74 65 6d |hell_MenuGetItem| 0000f380 48 61 6e 64 6c 65 72 0a 20 20 20 20 20 20 20 20 |Handler. | 0000f390 20 20 20 20 2d 20 41 64 64 65 64 20 72 6f 75 74 | - Added rout| 0000f3a0 69 6e 65 20 46 4e 73 68 65 6c 6c 5f 4d 65 6e 75 |ine FNshell_Menu| 0000f3b0 43 61 6c 63 75 6c 61 74 65 48 65 69 67 68 74 0a |CalculateHeight.| 0000f3c0 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 41 64 | - Ad| 0000f3d0 64 65 64 20 72 6f 75 74 69 6e 65 20 46 4e 73 68 |ded routine FNsh| 0000f3e0 65 6c 6c 5f 4d 65 6e 75 47 65 74 54 65 78 74 0a |ell_MenuGetText.| 0000f3f0 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 41 64 | - Ad| 0000f400 64 65 64 20 72 6f 75 74 69 6e 65 20 50 52 4f 43 |ded routine PROC| 0000f410 73 68 65 6c 6c 5f 51 75 69 63 6b 53 6f 72 74 0a |shell_QuickSort.| 0000f420 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 41 64 | - Ad| 0000f430 64 65 64 20 72 6f 75 74 69 6e 65 20 50 52 4f 43 |ded routine PROC| 0000f440 73 68 65 6c 6c 5f 4d 65 6e 75 53 6f 72 74 49 74 |shell_MenuSortIt| 0000f450 65 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 |ems. | 0000f460 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 |- Added routine | 0000f470 50 52 4f 43 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 |PROCshell_Window| 0000f480 43 65 6e 74 72 65 4f 6e 50 6f 69 6e 74 65 72 0a |CentreOnPointer.| 0000f490 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 50 52 | - PR| 0000f4a0 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 50 75 74 44 |OCshell_IconPutD| 0000f4b0 61 74 61 20 6e 6f 77 20 63 68 65 63 6b 73 20 69 |ata now checks i| 0000f4c0 66 20 74 68 65 20 6e 65 77 20 74 65 78 74 0a 20 |f the new text. | 0000f4d0 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 20 | to | 0000f4e0 70 75 74 20 69 6e 74 6f 20 74 68 65 20 69 63 6f |put into the ico| 0000f4f0 6e 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 |n is the same as| 0000f500 20 74 68 65 20 65 78 69 73 74 69 6e 67 0a 20 20 | the existing. | 0000f510 20 20 20 20 20 20 20 20 20 20 20 20 74 65 78 74 | text| 0000f520 2e 20 49 66 20 69 74 20 69 73 2c 20 6e 6f 20 61 |. If it is, no a| 0000f530 63 74 69 6f 6e 20 69 73 20 74 61 6b 65 6e 20 61 |ction is taken a| 0000f540 76 6f 69 64 69 6e 67 20 66 6c 69 63 6b 65 72 69 |voiding flickeri| 0000f550 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 |ng. | 0000f560 20 6f 66 20 74 68 65 20 69 63 6f 6e 0a 20 20 20 | of the icon. | 0000f570 20 20 20 20 20 20 20 20 20 2d 20 27 50 6f 70 75 | - 'Popu| 0000f580 70 27 20 6d 65 6e 75 73 20 28 6d 65 6e 75 73 20 |p' menus (menus | 0000f590 61 74 74 61 63 68 65 64 20 74 6f 20 69 63 6f 6e |attached to icon| 0000f5a0 73 20 69 6e 20 77 69 6e 64 6f 77 73 20 6f 74 68 |s in windows oth| 0000f5b0 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 |er. | 0000f5c0 20 74 68 61 6e 20 74 68 65 20 69 63 6f 6e 62 61 | than the iconba| 0000f5d0 72 29 20 6e 6f 77 20 61 70 70 65 61 72 20 74 6f |r) now appear to| 0000f5e0 20 74 68 65 20 72 69 67 68 74 20 6f 66 20 74 68 | the right of th| 0000f5f0 65 20 69 63 6f 6e 2c 0a 20 20 20 20 20 20 20 20 |e icon,. | 0000f600 20 20 20 20 20 20 74 68 65 20 70 6f 69 6e 74 65 | the pointe| 0000f610 72 20 61 6c 73 6f 20 62 65 69 6e 67 20 72 65 6c |r also being rel| 0000f620 6f 63 61 74 65 64 2e 20 41 44 4a 55 53 54 20 6e |ocated. ADJUST n| 0000f630 6f 20 6c 6f 6e 67 65 72 0a 20 20 20 20 20 20 20 |o longer. | 0000f640 20 20 20 20 20 20 20 6f 70 65 6e 73 20 61 20 27 | opens a '| 0000f650 70 6f 70 75 70 27 20 6d 65 6e 75 20 28 52 65 63 |popup' menu (Rec| 0000f660 6f 6d 6d 65 6e 64 61 74 69 6f 6e 73 20 66 72 6f |ommendations fro| 0000f670 6d 20 74 68 65 20 52 49 53 43 20 4f 53 0a 20 20 |m the RISC OS. | 0000f680 20 20 20 20 20 20 20 20 20 20 20 20 33 20 53 74 | 3 St| 0000f690 79 6c 65 20 47 75 69 64 65 29 0a 20 20 20 20 20 |yle Guide). | 0000f6a0 20 20 20 20 20 20 20 2d 20 42 75 67 20 66 69 78 | - Bug fix| 0000f6b0 20 74 6f 20 6d 65 6e 75 20 6f 70 65 6e 69 6e 67 | to menu opening| 0000f6c0 20 72 6f 75 74 69 6e 65 20 28 4d 45 4e 55 20 73 | routine (MENU s| 0000f6d0 6f 6d 65 74 69 6d 65 73 20 66 61 69 6c 65 64 0a |ometimes failed.| 0000f6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f | to| 0000f6f0 20 6f 70 65 6e 20 61 20 27 70 6f 70 75 70 27 20 | open a 'popup' | 0000f700 6d 65 6e 75 29 0a 20 20 20 20 20 20 20 20 20 20 |menu). | 0000f710 20 20 2d 20 54 41 42 2f 53 48 49 46 54 20 54 41 | - TAB/SHIFT TA| 0000f720 42 20 6e 6f 77 20 6d 6f 76 65 20 63 61 72 65 74 |B now move caret| 0000f730 20 62 65 74 77 65 65 6e 20 77 72 69 74 61 62 6c | between writabl| 0000f740 65 20 69 63 6f 6e 73 2e 0a 20 20 20 20 20 20 20 |e icons.. | 0000f750 20 20 20 20 20 20 20 52 45 54 55 52 4e 20 6e 6f | RETURN no| 0000f760 77 20 6f 6e 6c 79 20 61 63 74 69 76 61 74 65 73 |w only activates| 0000f770 20 69 63 6f 6e 20 30 2c 20 69 74 20 64 6f 65 73 | icon 0, it does| 0000f780 20 6e 6f 74 20 6d 6f 76 65 20 74 68 65 0a 20 20 | not move the. | 0000f790 20 20 20 20 20 20 20 20 20 20 20 20 63 61 72 65 | care| 0000f7a0 74 20 28 53 74 79 6c 65 20 47 75 69 64 65 20 72 |t (Style Guide r| 0000f7b0 65 63 6f 6d 6d 65 6e 64 61 74 69 6f 6e 73 29 0a |ecommendations).| 0000f7c0 20 20 20 20 20 20 0a 20 20 20 20 20 20 56 31 2e | . V1.| 0000f7d0 32 36 20 2d 20 41 64 64 65 64 20 72 6f 75 74 69 |26 - Added routi| 0000f7e0 6e 65 20 50 52 4f 43 73 68 65 6c 6c 5f 57 69 6e |ne PROCshell_Win| 0000f7f0 64 6f 77 53 65 74 54 69 74 6c 65 52 69 67 68 74 |dowSetTitleRight| 0000f800 4a 75 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 |Just. | 0000f810 20 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 | - Added routine| 0000f820 20 50 52 4f 43 73 68 65 6c 6c 5f 57 69 6e 64 6f | PROCshell_Windo| 0000f830 77 53 65 74 54 69 74 6c 65 43 65 6e 74 72 65 4a |wSetTitleCentreJ| 0000f840 75 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 |ust. | 0000f850 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 |- Added routine | 0000f860 50 52 4f 43 73 68 65 6c 6c 5f 57 69 6e 64 6f 77 |PROCshell_Window| 0000f870 43 65 6e 74 72 65 4f 6e 53 63 72 65 65 6e 0a 20 |CentreOnScreen. | 0000f880 20 20 20 20 20 20 20 20 20 20 20 2d 20 41 64 64 | - Add| 0000f890 65 64 20 72 6f 75 74 69 6e 65 20 46 4e 73 68 65 |ed routine FNshe| 0000f8a0 6c 6c 5f 47 65 74 4c 61 73 74 4d 6f 75 73 65 42 |ll_GetLastMouseB| 0000f8b0 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 |utton. | 0000f8c0 20 20 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e | - Added routin| 0000f8d0 65 20 46 4e 73 68 65 6c 6c 5f 47 65 74 4c 61 73 |e FNshell_GetLas| 0000f8e0 74 57 69 6e 64 6f 77 43 6c 69 63 6b 65 64 0a 20 |tWindowClicked. | 0000f8f0 20 20 20 20 20 20 20 20 20 20 20 2d 20 41 64 64 | - Add| 0000f900 65 64 20 72 6f 75 74 69 6e 65 20 46 4e 73 68 65 |ed routine FNshe| 0000f910 6c 6c 5f 47 65 74 4c 61 73 74 49 63 6f 6e 43 6c |ll_GetLastIconCl| 0000f920 69 63 6b 65 64 0a 20 20 20 20 20 20 20 20 20 20 |icked. | 0000f930 20 20 2d 20 52 75 6e 6e 69 6e 67 20 6f 75 74 20 | - Running out | 0000f940 6f 66 20 6d 65 6d 6f 72 79 20 64 6f 65 73 20 6e |of memory does n| 0000f950 6f 74 20 6e 6f 77 20 63 61 75 73 65 20 61 20 66 |ot now cause a f| 0000f960 61 74 61 6c 20 65 72 72 6f 72 0a 20 20 20 20 20 |atal error. | 0000f970 20 20 20 20 20 20 20 20 20 61 6e 64 20 73 68 75 | and shu| 0000f980 74 20 64 6f 77 6e 20 6f 66 20 74 68 65 20 61 70 |t down of the ap| 0000f990 70 6c 69 63 61 74 69 6f 6e 0a 20 20 20 20 20 20 |plication. | 0000f9a0 20 20 20 20 20 20 2d 20 44 6f 75 62 6c 65 20 63 | - Double c| 0000f9b0 6c 69 63 6b 69 6e 67 20 6f 6e 20 61 20 66 69 6c |licking on a fil| 0000f9c0 65 20 27 62 65 6c 6f 6e 67 69 6e 67 27 20 74 6f |e 'belonging' to| 0000f9d0 20 61 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 0a | an application.| 0000f9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f | no| 0000f9f0 77 20 63 61 75 73 65 73 20 74 68 65 20 61 70 70 |w causes the app| 0000fa00 6c 69 63 61 74 69 6f 6e 20 74 6f 20 73 74 61 72 |lication to star| 0000fa10 74 20 75 70 20 61 6e 64 20 6c 6f 61 64 20 74 68 |t up and load th| 0000fa20 65 20 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 |e file. | 0000fa30 20 20 20 2d 20 27 53 70 72 69 74 65 73 32 32 27 | - 'Sprites22'| 0000fa40 20 66 69 6c 65 20 63 6f 6e 74 61 69 6e 69 6e 67 | file containing| 0000fa50 20 68 69 2d 72 65 73 20 73 70 72 69 74 65 73 20 | hi-res sprites | 0000fa60 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 0a 20 20 |automatically. | 0000fa70 20 20 20 20 20 20 20 20 20 20 20 20 64 65 74 65 | dete| 0000fa80 63 74 65 64 20 61 6e 64 20 6c 6f 61 64 65 64 20 |cted and loaded | 0000fa90 69 66 20 74 68 65 20 70 72 6f 67 72 61 6d 20 69 |if the program i| 0000faa0 73 20 73 74 61 72 74 65 64 20 69 6e 20 61 20 68 |s started in a h| 0000fab0 69 2d 72 65 73 0a 20 20 20 20 20 20 20 20 20 20 |i-res. | 0000fac0 20 20 20 20 73 63 72 65 65 6e 20 6d 6f 64 65 0a | screen mode.| 0000fad0 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 42 75 | - Bu| 0000fae0 67 20 66 69 78 20 74 6f 20 50 52 4f 43 73 68 65 |g fix to PROCshe| 0000faf0 6c 6c 5f 57 69 6e 64 6f 77 4d 6f 76 65 54 6f 49 |ll_WindowMoveToI| 0000fb00 63 6f 6e 20 28 77 69 6e 64 6f 77 20 77 61 73 0a |con (window was.| 0000fb10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6f | so| 0000fb20 6d 65 74 69 6d 65 73 20 6d 6f 76 65 64 20 74 6f |metimes moved to| 0000fb30 20 77 72 6f 6e 67 20 70 6f 73 69 74 69 6f 6e 20 | wrong position | 0000fb40 62 65 63 61 75 73 65 20 74 68 65 20 73 63 72 6f |because the scro| 0000fb50 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 |ll. | 0000fb60 20 6f 66 66 73 65 74 20 6f 66 20 74 68 65 20 69 | offset of the i| 0000fb70 63 6f 6e 20 62 61 72 20 77 61 73 20 6e 6f 74 20 |con bar was not | 0000fb80 62 65 69 6e 67 20 74 61 6b 65 6e 20 69 6e 74 6f |being taken into| 0000fb90 20 61 63 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 | account). | 0000fba0 20 20 20 20 20 20 20 20 4e 6f 74 65 3a 20 54 68 | Note: Th| 0000fbb0 69 73 20 66 69 78 20 6f 6e 6c 79 20 66 6f 72 20 |is fix only for | 0000fbc0 52 49 53 43 20 4f 53 20 33 20 75 73 65 72 73 0a |RISC OS 3 users.| 0000fbd0 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 42 75 | - Bu| 0000fbe0 67 20 66 69 78 20 74 6f 20 50 52 4f 43 73 68 65 |g fix to PROCshe| 0000fbf0 6c 6c 5f 49 63 6f 6e 62 61 72 53 65 74 54 65 78 |ll_IconbarSetTex| 0000fc00 74 20 28 6e 65 77 20 74 65 78 74 20 6e 6f 74 20 |t (new text not | 0000fc10 61 6c 77 61 79 73 0a 20 20 20 20 20 20 20 20 20 |always. | 0000fc20 20 20 20 20 20 72 65 64 72 61 77 6e 20 62 65 63 | redrawn bec| 0000fc30 61 75 73 65 20 74 68 65 20 73 63 72 6f 6c 6c 20 |ause the scroll | 0000fc40 6f 66 66 73 65 74 20 6f 66 20 74 68 65 20 69 63 |offset of the ic| 0000fc50 6f 6e 20 62 61 72 20 77 61 73 20 6e 6f 74 0a 20 |on bar was not. | 0000fc60 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 69 | bei| 0000fc70 6e 67 20 74 61 6b 65 6e 20 69 6e 74 6f 20 61 63 |ng taken into ac| 0000fc80 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20 20 |count). | 0000fc90 20 20 20 20 20 4e 6f 74 65 3a 20 54 68 69 73 20 | Note: This | 0000fca0 66 69 78 20 6f 6e 6c 79 20 66 6f 72 20 52 49 53 |fix only for RIS| 0000fcb0 43 20 4f 53 20 33 20 75 73 65 72 73 0a 0c 0a 20 |C OS 3 users... | 0000fcc0 20 20 20 20 20 20 20 20 20 20 20 2d 20 43 6c 69 | - Cli| 0000fcd0 63 6b 20 6f 6e 20 61 20 72 61 64 69 6f 20 69 63 |ck on a radio ic| 0000fce0 6f 6e 20 77 69 74 68 20 41 44 4a 55 53 54 20 73 |on with ADJUST s| 0000fcf0 65 6c 65 63 74 73 20 69 63 6f 6e 20 74 6f 20 61 |elects icon to a| 0000fd00 76 6f 69 64 20 0a 20 20 20 20 20 20 74 68 65 0a |void . the.| 0000fd10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 69 | si| 0000fd20 74 75 61 74 69 6f 6e 20 77 68 65 72 65 20 61 6c |tuation where al| 0000fd30 6c 20 72 61 64 69 6f 20 62 75 74 74 6f 6e 73 20 |l radio buttons | 0000fd40 69 6e 20 61 20 67 72 6f 75 70 20 61 72 65 20 6f |in a group are o| 0000fd50 66 66 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 |ff. . | 0000fd60 56 31 2e 32 37 20 2d 20 42 75 67 20 66 69 78 20 |V1.27 - Bug fix | 0000fd70 74 6f 20 77 72 69 74 61 62 6c 65 20 69 63 6f 6e |to writable icon| 0000fd80 20 68 61 6e 64 6c 65 72 20 28 63 6f 75 6c 64 20 | handler (could | 0000fd90 63 61 75 73 65 20 61 20 63 72 61 73 68 20 69 66 |cause a crash if| 0000fda0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d |. m| 0000fdb0 6f 72 65 20 74 68 61 6e 20 35 20 77 72 69 74 61 |ore than 5 writa| 0000fdc0 62 6c 65 20 69 63 6f 6e 73 20 69 6e 20 6f 6e 65 |ble icons in one| 0000fdd0 20 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 20 | window). | 0000fde0 20 20 20 20 20 2d 20 42 75 67 20 66 69 78 20 74 | - Bug fix t| 0000fdf0 6f 20 74 65 6d 70 6c 61 74 65 20 6c 6f 61 64 69 |o template loadi| 0000fe00 6e 67 20 72 6f 75 74 69 6e 65 20 77 68 69 63 68 |ng routine which| 0000fe10 20 73 6f 6d 65 74 69 6d 65 73 20 64 69 64 20 0a | sometimes did .| 0000fe20 20 20 20 20 20 20 6e 6f 74 0a 20 20 20 20 20 20 | not. | 0000fe30 20 20 20 20 20 20 20 20 61 6c 6c 6f 63 61 74 65 | allocate| 0000fe40 20 65 6e 6f 75 67 68 20 62 75 66 66 65 72 20 73 | enough buffer s| 0000fe50 70 61 63 65 0a 20 20 20 20 20 20 0a 20 20 20 20 |pace. . | 0000fe60 20 20 56 31 2e 32 38 20 2d 20 44 6f 63 75 6d 65 | V1.28 - Docume| 0000fe70 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 64 20 |ntation updated | 0000fe80 66 6f 72 20 50 52 4f 43 73 68 65 6c 6c 5f 51 75 |for PROCshell_Qu| 0000fe90 69 63 6b 53 6f 72 74 20 61 6e 64 0a 20 20 20 20 |ickSort and. | 0000fea0 20 20 20 20 20 20 20 20 20 20 50 52 4f 43 73 68 | PROCsh| 0000feb0 65 6c 6c 5f 4f 70 65 6e 4d 65 6e 75 2e 20 41 64 |ell_OpenMenu. Ad| 0000fec0 64 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f |ded documentatio| 0000fed0 6e 20 66 6f 72 20 44 72 61 77 4c 69 62 0a 20 20 |n for DrawLib. | 0000fee0 20 20 20 20 20 20 20 20 20 20 2d 20 41 64 64 65 | - Adde| 0000fef0 64 20 72 6f 75 74 69 6e 65 20 50 52 4f 43 73 68 |d routine PROCsh| 0000ff00 65 6c 6c 5f 46 6f 6e 74 47 65 74 48 61 6e 64 6c |ell_FontGetHandl| 0000ff10 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 |e. - | 0000ff20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 50 52 |Added routine PR| 0000ff30 4f 43 73 68 65 6c 6c 5f 46 6f 6e 74 53 65 74 43 |OCshell_FontSetC| 0000ff40 6f 6c 6f 75 72 0a 20 20 20 20 20 20 20 20 20 20 |olour. | 0000ff50 20 20 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e | - Added routin| 0000ff60 65 20 46 4e 73 68 65 6c 6c 5f 46 6f 6e 74 46 6f |e FNshell_FontFo| 0000ff70 72 67 65 74 46 6f 6e 74 0a 20 20 20 20 20 20 20 |rgetFont. | 0000ff80 20 20 20 20 20 2d 20 46 69 78 65 64 20 70 72 6f | - Fixed pro| 0000ff90 62 6c 65 6d 20 77 69 74 68 20 61 70 70 6c 69 63 |blem with applic| 0000ffa0 61 74 69 6f 6e 73 20 6c 6f 61 64 69 6e 67 20 66 |ations loading f| 0000ffb0 69 6c 65 73 20 6f 6e 20 61 20 64 6f 75 62 6c 65 |iles on a double| 0000ffc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 |. c| 0000ffd0 6c 69 63 6b 20 69 6e 20 61 20 46 69 6c 65 72 20 |lick in a Filer | 0000ffe0 77 69 6e 64 6f 77 20 77 68 65 6e 20 74 68 65 20 |window when the | 0000fff0 66 69 6c 65 73 20 73 68 6f 75 6c 64 20 68 61 76 |files should hav| 00010000 65 20 62 65 65 6e 0a 20 20 20 20 20 20 20 20 20 |e been. | 00010010 20 20 20 20 20 6c 6f 61 64 65 64 20 62 79 20 61 | loaded by a| 00010020 6e 6f 74 68 65 72 20 61 70 70 6c 69 63 61 74 69 |nother applicati| 00010030 6f 6e 20 65 2e 67 2e 20 21 44 72 61 77 0a 20 20 |on e.g. !Draw. | 00010040 20 20 20 20 0a 20 20 20 20 20 20 56 31 2e 32 39 | . V1.29| 00010050 20 2d 20 42 75 67 20 66 69 78 20 74 6f 20 64 61 | - Bug fix to da| 00010060 74 61 6c 6f 61 64 20 72 6f 75 74 69 6e 65 20 69 |taload routine i| 00010070 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 31 2e 32 |ntroduced in 1.2| 00010080 38 2e 20 44 6f 75 62 6c 65 0a 20 20 20 20 20 20 |8. Double. | 00010090 20 20 20 20 20 20 20 20 63 6c 69 63 6b 20 6c 6f | click lo| 000100a0 61 64 73 20 6e 6f 77 20 6f 6b 0a 20 20 20 20 20 |ads now ok. | 000100b0 20 20 20 20 20 20 20 2d 20 46 69 78 65 64 20 62 | - Fixed b| 000100c0 75 67 20 69 6e 20 46 4e 73 68 65 6c 6c 5f 4f 53 |ug in FNshell_OS| 000100d0 4d 6f 64 75 6c 65 43 68 65 63 6b 56 65 72 73 69 |ModuleCheckVersi| 000100e0 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d |on. -| 000100f0 20 49 6d 70 72 6f 76 65 64 20 53 74 72 6f 6e 67 | Improved Strong| 00010100 48 6c 70 20 69 6e 69 74 69 61 6c 69 73 61 74 69 |Hlp initialisati| 00010110 6f 6e 20 63 6f 64 65 2c 20 6e 6f 77 20 63 68 65 |on code, now che| 00010120 63 6b 73 20 66 69 6c 65 73 20 0a 20 20 20 20 20 |cks files . | 00010130 20 20 20 20 20 20 20 20 20 61 63 74 75 61 6c 6c | actuall| 00010140 79 20 65 78 69 73 74 0a 0a 20 20 20 20 20 20 56 |y exist.. V| 00010150 31 2e 33 30 20 2d 20 41 64 64 65 64 20 50 52 4f |1.30 - Added PRO| 00010160 43 73 68 65 6c 6c 5f 43 61 72 65 74 50 75 74 46 |Cshell_CaretPutF| 00010170 69 72 73 74 49 63 6f 6e 0a 20 20 20 20 20 20 20 |irstIcon. | 00010180 20 20 20 20 20 2d 20 41 64 64 65 64 20 50 52 4f | - Added PRO| 00010190 43 73 68 65 6c 6c 5f 43 61 72 65 74 50 75 74 4c |Cshell_CaretPutL| 000101a0 61 73 74 49 63 6f 6e 0a 20 20 20 20 20 20 20 20 |astIcon. | 000101b0 20 20 20 20 2d 20 41 64 64 65 64 20 50 52 4f 43 | - Added PROC| 000101c0 73 68 65 6c 6c 5f 43 61 72 65 74 50 75 74 4e 65 |shell_CaretPutNe| 000101d0 78 74 49 63 6f 6e 0a 20 20 20 20 20 20 20 20 20 |xtIcon. | 000101e0 20 20 20 2d 20 41 64 64 65 64 20 50 52 4f 43 73 | - Added PROCs| 000101f0 68 65 6c 6c 5f 43 61 72 65 74 50 75 74 50 72 65 |hell_CaretPutPre| 00010200 76 49 63 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 |vIcon. | 00010210 20 20 2d 20 43 54 52 4c 20 43 75 72 73 6f 72 20 | - CTRL Cursor | 00010220 55 70 2f 44 6f 77 6e 20 6d 6f 76 65 20 74 68 65 |Up/Down move the| 00010230 20 63 61 72 65 74 20 74 6f 20 74 68 65 20 66 69 | caret to the fi| 00010240 72 73 74 2f 6c 61 73 74 20 77 72 69 74 61 62 6c |rst/last writabl| 00010250 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |e. | 00010260 69 63 6f 6e 73 20 69 6e 20 61 20 77 69 6e 64 6f |icons in a windo| 00010270 77 20 72 65 73 70 65 63 74 69 76 65 6c 79 |w respectively| 0001027e