DrWimp - desktop programming system.
 Andrew Ayre 1995-98

If updating from older versions of the library, take note of the altered
sections (started with "****") which will point out possible changes in
parameters and/or returned results for existing functions, which are not
backwards compatible.
New user functions which have been added, *must* be added to existing
!RunImage files if using a new version of DrWimp.
Copy the 'blank' ones from the new !RunImage inside !MyApp. New user
functions are also marked by "****".

See also the file Upgrading which lists the non-backwards compatible
changes in more detail.

History of the DrWimp system.


1.00 (29-Mar-95) Limited release for testing and evaluation.


1.01 (04-Apr-95)

--Added  :
           PROCwimp_putmenuitem
           PROCwimp_removemenuitem
           PROCwimp_recreatemenu 
           FNwimp_createmenuarray
           PROCwimp_recreatemenuarray
           PROCwimp_putmenutitle
           PROCwimp_singlepoll
--Altered:
           ****FNwimp_createmenu - extra parameter to set the maximum number
  of items allowed.
           ****FNwimp_iconbar - now returns window handle instead of icon
  handle in the window. In other words, it returns -2.
--Improved all sections relating to indirected menu items. In particular, all
  items longer than 11 characters are now indirected. Used to be items longer
  than 12.
--If iconbar icon has text underneath, then the background is no longer
  filled, spoiling textures.
--The icon positioning vertically has been tweaked.
--Added !FontRun as an example.


1.02 (19-Apr-95)

--Vastly simplified and improved menu selection routines. Now doesn't use the
  rubbish menu decoding SWI. As a result, full stops can now be used in menu
  items. (I was converting item numbers into the item text, then back again!)
--Added !Saver as an example. !RunImage files of examples commented.
--Added text version of manual.
--Altered:
           ****FNwimp_initialise - last (fourth) parameter removed due to
  simplification of menu decoding.
           PROCwimp_iconenable - now works properly, instead of toggling the
  greying out of the icon.
--Refined manual to remove ambiguities.
--Bug fixed. When mode was changed or desktop left, when returning, the panes
  would move behind their 'parent' windows.


1.03 (26-Apr-95) 

--Altered:
           PROCwimp_puticontext - now redraws icon after text has been
  changed, so icons that are not filled don't muck up.
           ****FNwimp_initialise - fourth parameter added to give the minimum
  version number of the OS multiplied by 100, that the application is allowed
  to run on.
           FNwimp_iconbar - adjusted size of bounding box so that icons
  without text below cannot have their tops rubbed out.
           PROCwimp_iconbarsprite - fixed bug that stopped the sprite being
  changed when the icon had no text underneath. When icon changes, DrWimp now
  only updates the icon, and not the entire iconbar.  
--Fixed two bugs that stopped FNwimp_errorchoice from working.


1.04 (16-May-95)

--Fixed bug in PROCwimp_puticontext (introduced in 1.03 by accident) which
  stopped it from working.
--Applications can now be quitted inside PROCwimp_singlepoll, ie. from menu
  choices etc, while using this method of polling.


1.05 (28-May-95)

--Added  :
           PROCwimp_bar - allows manipulation of bars very easy. Useful for
  showing percentage done of an operation.
--Fixed bug in PROCwimp_iconbar that crashed the application when you tried to
  put an icon on the iconbar with no text below it!!
--Added a contents page to the manual.
--Added !Bar example application.


1.06 (15-Jun-95)

--Fixed bug so that when saving a file, it has the correct filetype specified
  in the data_save message, instead of it always being &FFD.
--Also, made sure that the leafname specified in the data_save message is zero
  terminated. I missed this off, but have only just noticed because !Paint is
  the first application that I have saved files from that has complained.
--Fixed bug in PROCwimp_bar that only let it work in windows with handle
  main%!!


1.07 (23-Jul-95)

--Added  :
           PROCwimp_pollidle - if NULL=TRUE then it will call PROCuser_null
  only every so many seconds instead of every time control is passed to the
  app and no events have occured.


1.08 (20-Aug-95)

--Fixed problem with bars (controlled with PROCwimp_bar), in that no bar now
  appears for a bar of zero length.


1.10 (24-Dec-95)

--Added  :
           ****PROCuser_menuopen - called just before the menu is opened. Icon
  pointer was over is passed.
           ****PROCuser_minmenuwidth - return a number guarantees the menu to
  be at least that width in characters.
           PROCwimp_render - renders a drawfile.
           PROCwimp_initdfiles - sets up blocks of memory for use with
  drawfiles.
           FNwimp_measurefile - measures size of drawfile.
           FNwimp_loaddfile - loads drawfile into block of memory.
           PROCwimp_increaseslot - increase wimpslot.


1.11 (10-Feb-96)

--Added start and stop bits so library can be used with BLibII.


1.12 (11-Mar-96)

--Added  :
           PROCwimp_colouricontext - changes colour of text (not if using
  font).
--Fixed problem where pane didn't move if parent window was resized.
--Fixed problem with DrWimp forgetting where to open menu if wimp% block is
  fiddled about with in PROCuser_menuopen.


1.13 (26-Mar-96)

--General cleaning and tidying up.
--Fixed two mistakes with BlibII start and stop bits.


1.14 (24-May-96)

--Fixed a bug in save windows where a line which was hardwired to icon 3.
  This must have happened sometime in the last few versions and should have
  been icon 0, which it is in earlier versions. Therfore save windows would
  appear not to work in that no icons could be dragged.


2.00 (02-Jul-96) First major overhaul since 1.02.
                 Limited release.

--Added  :
           ****FNuser_saveicon - return the icon number of the icon to be
  dragged in the save window. Only use if not using the standard icon 0 as the
  save icon.
           ****FNuser_sliderback - return icon number of slider back icon.
           ****FNuser_slider - return icon number of slider icon.
           ****PROCuser_slidervalue - Percentage of slider being dragged or
  just finished being dragged is passed.
           PROCwimp_putsliderpcent - sets the percentage of a slider.
           FNwimp_getsliderpcent - gets the percentage of a slider.
           FNwimp_resizewindow - resizes work area and visible area to values
  specified.
           FNwimp_getdfilesize - returns width or height of a drawfile in OS
  co-ordinates.
           PROCwimp_renderwindow - renders a drawfile in a window.
           FNwimp_geticonsize - returns width or height of icon in OS
  co-ordinates.
           FNwimp_worktoscreen - converts a windows work coordinates into
  screen coordinates.
           FNwimp_screentowork - converts screen coordinates into a windows
  work coordinates.
           PROCwimp_setcolour - sets the current GCOL colour to the nearest
  possible for the mode when the red, green and blue values are supplied.
           PROCwimp_plottext - plot text in any font, size, foreground and
  background colours.
           FNwimp_createblock - creates a block of memory for string storage.
  Returns a handle for the block.
           PROCwimp_putinblock - puts a string in a block at the specified
  position.
           FNwimp_getfromblock - gets string from specified position in a
  block.
           FNwimp_geticonstate - returns 1 or 0 to denote whether icon is
  selected or not.
           PROCwimp_attachsubmenu - attaches a menu or a window as a submenu
  of a specified menu item.
--Altered:
           PROCwimp_openwindow - can now use 2 as the centre value to centre
  window on the pointer. Backwards compatable.
           ****Changed PROCuser_savedata to FNuser_savedata. Now return a 1 if
  some data was saved or a 0 if none was saved. Allows for validation checks
  in this function to see if any data should be saved or not.
           PROCwimp_iconselect - small change made so that if state is not
  changing then icon is not redrawn.
           PROCwimp_puticontext - small change made so if text is not actually
  changing then the icon is not redrawn.
           PROCwimp_pollsavemessage - removed EVAL.
           PROCwimp_loadwindow - now allows user sprites to be indirected, so
  they are now displayed, and can be changed.
--Made small change of occurances of size to size% in FNwimp_getwindowsize.
--Renamed wimp functions "process" to "wimp_process" and "checkbounds" to
  "wimp_checkbounds", which is what they should have been.
--Added search facility to !Fnc'n'Prc.
--!Fnc'n'Prc is no longer an example application. The addition of the search
  facility meant that large sections of code were non-trivial, and would be
  very hard to follow by anyone not familiar with manipulating blocks of
  memory etc.
--Added sliders. Eg: the ones usually found in colour picker windows where you
  can drag a slider for red, green and blue to set the amounts.
--Added !DrawDisp example application to show drawfiles in windows.
--Added !Slider example application to show sliders and slider ranges.
--Added !PanePain example application to replace !Fnc'n'Prc as a pane example.
--Added !UserDraw example application to show user graphics in windows.
--Added support for DragASprite module. All save boxes will now use it as
  default.
--!!ReadMe!! file tided up and made more verbose.
--Distribution conditions added to !!ReadMe!!.
--Replaced version 1.23 (11-Jul-93) of !TemplEd with version 1.31(25-May-95).
--Fixed bug in PROCwimp_errorchoice to stop it always returning 0 (ie Cancel).
--Added a BASIC linker called !Linker. Purpose written for DrWimp to get
  around the problem of not being able to distribute BlibII. See its own !Help
  file for more details and instructions.
--Moved the manuals and the history file into a "Documents" folder.
--Removed !FontRun example as I thought it had a non-standard way of running
  and would have taken too much effort to update the DrWimp in it and check it
  fully worked.
--Updated version of DrWimp inlcuded with example applications and updated
  comments accordingly.
--Fixed small bug in PROCwimp_menuwrite where the maximum length of text to be
  entered was always character short.
--Added !MenuTrick example application to show dynamic menus, context
  sensitive menus and writeable menu items.
--Added !SprAreas example application to show private sprite areas.
--Added !Blocks example application to show new string block handling.
--Seperated DrWimp from the examples and put in a seperate "system"
  application, so all examples use the same copy saving space.
--Removed BlibII start and stop bits as !Linker does not need them. This
  removed a staggering 7k off DrWimp!! If you want to use BlibII, then it
  includes a utility to add the start at stop bits automatically.
--Major new addition in the form of !Fabricate. Produces copies of the blank
  template application !MyApp, but with options to change the name and add
  some very common features automatically.
--Removed copies of address not in the manual and added seperate "Address"
  file.
--Added !BSquasher utility.
--Removed wimpver% line and moved FNwimp_libversion to top so no lines are
  outside functions any longer.
--Removed FNuser_minmenuwidth, as it seems to have no effect. Strange.
--Added !ESG example application.


2.01 (24-Jul-96)

--I love it when that happens. I have rewritten PROCwimp_pollopenwindow (an
  internal function) so it is now smaller. Removed the now redundant
  PROCwimp_winandpaneback (internal), and hey presto! Multiple panes per
  window are now possible and DrWimp is a few 100 bytes shorter to boot!
  The original pane code which was mainly the two functions mentioned was a
  bit cranky, but after stuggling for several days trying to make it work with
  multiple panes I suddenly had this brainwave. I don't understand why I
  didn't do things this way before...
  PROCuser_openwindow is now called before the window in question is opened so
  the stack ordering of the panes is easily worked out.
--Added brief details of tutorial files to !!ReadMe!! file.
--Added !Multipane example application.
--Fixed bug in FNwimp_getwindowsize where it always returned a 0 for the
  window height.
--Added the Upgrading document which details exactly what needs to be
  changed to what if you are upgrading an application from a previous version.


2.02 (04-Sep-96)

--Added  :
           PROCwimp_closedown - new function to put all the close down code
  in. DrWimp internal only, not to be called.
--Global varaible tblk% did not start with a 'w'. Now fixed.
--Now looses font handles when application is quit instead of leaving them.
  New method of coping with fonts in windows also saves memory. Now just 256
  bytes are required instead of 256 bytes per window template.
--!Fabricate now makes !Boot files.


2.03 (16-Oct-96) Limited release

--Altered:
           PROCwimp_resizewindow - now opens the resized window in its
  current stack position instead of moving it behind all the others.
--Added  :
           ****PROCuser_modechange - called upon mode changes.
           FNwimp_getscreensize - returns dimensions of current screen
  mode in OS coordinates.


2.04 (20-Oct-96)

--Altered:
           PROCwimp_setcolour - localised variable to stop c% getting
  corrupted.
           FNwimp_initialise - 'w' added to start of non-localised variable.
  Now applications are started for RISC OS 3+ so DrWimp can take advantage of
  extra messages, etc.
           PROCwimp_help - internal DrWimp function altered to allow
  interactive help for menu items.
--Added  :
           PROCwimp_deskplottext - Plots some text on the screen at the
  given coordinates using the specified foreground and background colours. The
  function plots the text how the desktop text appears. ie. for machines using
  RISC 3.50+ the text will be in the current desktop font. For other machines
  it will be in the system font.
           ****FNuser_menuhelp - returns interactive help for menu items.
--Updated !UserDraw example application to use new function.
--Added !Toolbar example application.
--Renamed Manual to !Manual so it appears first in the Documents folder.
--Removed stray DrWimp file from !ESG example application.
--Added !UnCrunch utility for StrongARM users to enable them to run the
  utilities.
--Added StrongARM document to tell users about !UnCrunch. Also added a short
  note about StrongARM in the Security document.


2.05 (19-Nov-96)

--Whenever a save window is opened - either by a wimp request, user request or
  as a menu or part of a menu - the caret is placed in the writeable icon (1).
--Added note in manual to start of tutorials section, pointing out that its not
  a good idea to add lines before the PROCwimp_initialise.
--Removed some inconsistencies from the manual and !Fnc'n'Prc.


2.06 (25-Nov-96)

--Added  :
            FNwimp_roundfloat - rounds up or down a floating point number to
  an integer.
--Altered:
            ****PROCwimp_bar - added new fourth parameter to specify whether
  the bar is horizontal or vertical.
--Implementented vertical sliders.
--Updated Slider example application to demonstrate vertical sliders and using
  bump icons with sliders.


2.07 (15-Dec-96) Limited release

--Added  :
            PROCwimp_redrawwindow - forces a window to be redrawn.
            PROCwimp_savedfile - saves a drawfile.
--Now allows files to be loaded in with double-clicks, including if the
  application was run from the double-click.
--Added new version (1.21) of !Crunch which produces StrongARM compatible code.
--Further compressed !Fabricate, !Linker and !Fnc'n'Prc RunImages.
--Replaced !TemplEd 1.31 with 1.32 which is StrongARM compatible.


2.08 (17-Dec-96) Limited release

--Added  :
            PROCwimp_iconbit - allows icon bits to be set and unset.
--Altered:
            PROCwimp_openwindow - specifying a stack position of -3 now
  opens the window in its current stack position.
            PROCwimp_openwindowat - specifying a stack position of -3 now
  opens the window in its current stack position.


2.09 (26-Dec-96)

--Made small change to PROCwimp_dataload - an internal function - to get
  around some sort of problem with !BSquasher not be able to cope in certain
  situations.
--Added new version of Linker (2.00) - now more robust and fixes some bugs
  in the first version. Progress bar added and speed of linking increased.
--When !Fnc'n'Prc changed from version 1.20 to 1.21 the version displayed in
  the info window was not updated by mistake. Now corrected. The !Help file
  has always shown the correct version.
--Increased indirected memory allocation sizes for the purpose and version
  icons in the info windows in the tutorial template files. Same was done of
  the templates file Fabricate produces.


2.10 (09-Mar-97)

--Fixed bug with window opening which left panes in same place when a
  windows resize button was clicked on.


2.11 (08-Apr-97)

--Fixed problem which stopped DrWimp functions being called inside
  FNuser_savedata.
--Removed the StrongARM document as everything should now be
  StrongARM compatible.


3.00 (31-May-97)

--Added  :
            PROCuser_declarefonts - decare fonts to be used in printing.
            PROCuser_print - can be called during printing to construct a
  page.
            FNuser_printing - called during printing to allow status to be
  displayed.
            PROCuser_printerchange - called when the current printer changes.
            FNwimp_screentopaper - converts screen coordinate to paper
  coordinate.
            FNwimp_papertoscreen - converts paper coordinate to screen
  coordinate.
            FNwimp_worktopaper - converts window work coordinate to paper
  coordinate.
            FNwimp_papertowork - converts paper coordinate to window work
  coordinate.
            PROCwimp_print - initiates printing. User speicifies number of
  copies, pages to print, etc.
            FNwimp_pdriverpresent - determines if a printer driver is
  loaded/selected.
            FNwimp_getpdrivername - gets the name of the current printer
  driver.
            FNwimp_getwindowworksize - gives the work size of a window.
            FNwimp_getpapersize - gives the size of the current paper size
  from the printer driver.
            PROCwimp_declaredfilefonts - if a drawfile is to be printed then
  this function will declare all the fonts used in it, ready for printing.
            PROCwimp_printerror - handles printing errors. DrWimp internal
  function. Not to be called.
            FNwimp_gettextsize - gives the size of a string of text in the
  specified font, given as a font name.
            FNwimp_gettextsizeh - gives the size of a string of text in the
  specified font, given as a font handle.
            FNwimp_OStolength - converts an OS unit length into inches or mm.
            FNwimp_lengthtoOS - converts a length in inches or mm into OS
  units.
            PROCwimp_rendersprite - draws a sprite on the screen at the
  specified coordinates.
            PROCwimp_renderwindowsprite - draws a sprite in a window at the
  specified window work area coordinates.
            FNwimp_getspritesize - gives the size of a sprite.
            PROCwimp_plotwindowtext - plots some text in a window in the
  specified font, given as a font name.
            PROCwimp_plotwindowtexth - plots some text in a window in the
  specified font, given as a font handle.
            PROCwimp_declarefont - declares a font specified with a font name,
  for use in printing.
            PROCwimp_declarefonth - declares a font specified with a font
  handle, for use in printing.
            FNwimp_getfont - gets a handle for a font.
            PROCwimp_losefont - forgets about a font.
            PROCwimp_plottexth - plots text on the screen using a font
  specified by a font handle.
            FNwimp_fontcolour - changes the font colour.
            FNwimp_fontunderline - turns underlining on and off.
            FNwimp_fontchangeh - changes the current font, given as a font
  handle.

            FNwimp_createmessagemenu - creates menus from tokens in message
  files.
            PROCwimp_singlepollidle - processes wimp events as normal, but
  doesn't return until it has received a null poll after the specified number
  of seconds.
            PROCwimp_deskplotwindowtext - same as PROCwimp_deskplottext but
  for plotting in windows with a clipping rectangle.
            FNwimp_iswindowopen - checks to see if a window is currently
  open.
--Altered:
            ****PROCwimp_renderwindow - now puts bottom left of drawfile at
  work area coordinates, instead of top left. Also much simplified.
            ****PROCwimp_loadsprites - changed to FNwimp_loadsprites. Now pass
  handle to load sprites at.
            ****PROCwimp_pointer - now works so if second argument is 0 then
  it uses a wimp sprite, otherwise the second argument is a sprite area
  handle.
            ****FNwimp_loadwindow - now works so if third argument is 0 then
  it uses wimp sprites, otherwise the third argument is a sprite area handle.
            PROCwimp_plottext - some variables were not localised. Now fixed.
            PROCwimp_initdfiles - moved some memory reservations to
  FNwimp_initialise.
            FNwimp_messlook0, FNwimp_messlook1, FNwimp_messlook2 - if token
  cannot be found in the messages file then they now return an empty string
  instead of raising an error in DrWimp.
            ****FNuser_saveicon - now PROCuser_saveicon and has extra
  parameters to set the icons numbers of the icon to drag, the writeable icon,
  and the default action (OK) icon of save windows.
            ****FNwimp_createmenu, PROCwimp_putmenuitem,
  PROCwimp_recreatemenu, FNwimp_createmenuarray, PROCwimp_recreatemenuarray -
  before version 2.00 it was normal to use '>' in the string passed to these
  functions to describe menu item or items as having submenus, providing the
  handle to the submenu. This was depriciated from version 2.00 onwards and
  now is removed, and will be ignored.
            ****PROCuser_redraw - added two extra arguments to facilitate
  printing and avoid having to use global variables.
            ****FNuser_loaddata - added two extra arguments to pass window
  work area coordinates that the object was dropped at.
            ****PROCuser_mouseclick - added two extra arguments to pass
  window work area coordinates that the mouse was clicked at.
            PROCwimp_error - fixed bug whereby specifying the title to be
  prefixed with 'Error from' resulted in the title being prefixed with
  'Message from'.
--New version of Fnc'n'Prc.
--Fixed bug with internal DrWimp function PROCwimp_decodemenuentry.
--Fixed template bug with Saver example application.
--Fixed bug whereby dragging any dragable icon in a save window resulted in
  the save icon being dragged.
--Finally removed the EVAL call. The recommended changes necessary to make
  the EVAL redundant were made in the upgrading details for version 2.00
  (02-Jul-96). I have now decided that the old method of allowing submenus to
  be attached at the same time as creating menus should no longer be used. It
  isn't much effort to change to the new (2.00+) method. See also the altered
  functions list above.
--Vastly reduced and simplified the "Security" file due to removal of EVALs.
--Made DrWimp more robust to calling wimp functions inside user functions.
--Removed UserDraw example application.
--Added Drawing example application to replace UserDraw.
--Added FastSlow and SlowFast example applications to show how to switch
  between different speeds of polling.
--Added Messages example application to demonstrate using messages files to
  obtain text, substitutes and automatic creation of menus.
--Added ViewPage example application to demonstrate checking is printer
  driver is loaded and reading paper sizes.
--Added PrintTest example applcation to demonstrate printing and how to use
  all the features of printing.
--Added Grid example application to demonstrate how to draw grids using the
  redraw box for speed.
--Bug fixed in Linker.


3.01 (08-Jun-97)

--Added  :
            FNwimp_createwindow - allows windows to be created to an exact
  specification, as an alternative to loading one in from a templates file.
            PROCwimp_deletewindow - removes a window, closing it if
  necessary. The window handle will then be invalid. Does not allow reuse of
  indirected data memory, but does allow reuse of the window data memory.
            FNwimp_createicon - allows icons to be created to an exact
  specification, as an alternative to loading one in from a templates file.
            PROCwimp_deleteicon - removes an icon, with the option to redraw
  the window to visually remove it as well.
            FNwimp_getscreenres - allows you to find out if the current
  screen is high res or low res.
--Altered:
            PROCwimp_resizewindow - now if resizing a window which is
  closed, FNwimp_iswindowclosed will indicated that it is actually closed, as
  window is closed after resizing (without calling PROCuser_closewindow).
            PROCwimp_recreatemenu - fixed bug which made the menu recreated
  have one too many items, and if this went over the dynamic limit then a
  nasty error was caused.
--Stopped caret being continually placed in save windows when they were
  dragged about.
--Added CodeTemps utility for converting window templates into
  FNwimp_createwindow and FNwimp_createicon calls, so DrWimp can recreate the
  windows. A shortcut to working it all out by hand.
--Added Create example application to show how to create windows with the
  new wimp functions.
--New version of Linker which can cope with bigger libraries.
--For save window error messages which appear when return is pressed or OK
  clicked on, and a pathname isn't present in the writeable icon, the title
  has been changed from "Error from DrWimp" to "Message", to remove the DrWimp
  name from the end user.
--Now loading in a template uses a global temporary font buffer, instead of
  wasting 256 bytes each time on a buffer for each template.
--New version of Func'n'Proc to handle long lists of parameters to functions
  better.


3.02 (21-Sep-97)

--Altered:
            FNwimp_getpapersize - fixed mistakes which caused types 2 and
  3 to return the wrong values.
--New version of !Linker to cope with large libraries and RunImages.


3.50 (23-Jan-98)

--Added  :
            FNwimp_getwindowvisibleOS - returns edges of a window's visible
  area in OS coordinates.
            FNwimp_getwindowvisiblescreen - returns edges of a window's
  visible area in screen coordinates.
            FNuser_quit - place to put all the tidying up code and the
  oppotunity to stop a quit or shutdown if there is any unsaved data.
            PROCwimp_quit - quits the application or causes a desktop
  shutdown. Enables the finished% variable to now be hidden from the
  !RunImage.
            PROCwimp_bindpointer - traps the pointer in a given window.
            PROCwimp_releasepointer - reverses the effect of
  PROCwimp_bindpointer.
            PROCwimp_updatewindow - redraws only a given part of the screen.
            PROCwimp_scroll - allows the application to cause vertical and
  horizontal scrolls of a window.
            PROCuser_initialise - contains all jobs to be done between wimp
  initialisation and polling. Stops the application trying to load data into
  windows and variables that do not exist if a file is loaded by double
  clicking without its application running.
            PROCwimp_resizewindowvisible - resizes the visible area of a
  window without affecting the work area size.
            FNwimp_createdynamic - allows dynamic areas to be created to
  specified sizes and types.
            FNwimp_changedynamic - allows the size of a dynamic area to be
  changed by an amount or set to an absolute amount.
            FNwimp_measuredynamic - returns the current size of a dynamic
  area.
            PROCwimp_deletedynamic - deletes a dynamic area once it is
  finished with.
            FNwimp_geticonenable - returns a value depending on if the icon
  specified is greyed out/disabled or not.
            FNwimp_countsprites - returns the number of sprites in a loaded
  sprite file.
            FNwimp_getspritename - returns the name of a sprite in a loaded
  sprite file.
            PROCwimp_hourglasson - turns on the hourglass.
            PROCwimp_hourglassoff - turns off the hourglass.
            PROCwimp_hourglasspercentage - sets the percentage display on
  the hourglass.
            FNwimp_getpointerposition - returns the position of the pointer
  in screen coordinates.
            PROCwimp_setpointerposition - moves the pointer to a position on
  the screen.
--Altered:
            FNuser_loaddata - -1 is now passed as x and y drop coordinates
  if a file is loaded with a double click.
            FNuser_savedata - error trapping added for when saving a file to
  a write protected media.
            PROCwimp_singlepollidle - timing problem fixed. Now handles
  the application quitting on its own, like PROCwimp_singlepoll.
            PROCwimp_menupopup - can now open menus/windows in the centre of
  the screen. Changed the meaning of the second parameter.
            FNwimp_getpapersize - finally returns the correct values.
            FNwimp_getspritesize - now returns the correct height.
            PROCwimp_render - fixed redraw problem with sprites.
            PROCwimp_renderwindow - fixed redraw problem with sprites.
            FNwimp_getpdrivername - now returns an empty string if the
  printer driver isn't loaded or a name could not be found.
            FNwimp_createicon - now creates icons for all valid button
  types.
            ****PROCwimp_rendersprite - added two new arguments that allow
  sprites to be scaled to any size when they are plotted. Fixed redraw
  problem.
            ****PROCwimp_renderwindowsprite - added two new arguments that
  allow sprites to be scaled to any size when they are plotted in a window.
  Fixed redraw problem.
            ****FNwimp_screentopaper - added new argument for page
  orientation.
            ****FNwimp_papertoscreen - added new argument for page
  orientation.
            ****FNwimp_worktopaper - added new argument for page
  orientation.
            ****FNwimp_papertowork - added new argument for page
  orientation.
            ****PROCwimp_print - added new argument for page orientation.
  Now performs landscape printing.
--In !Toolbar example, comparison between main window and toolbar sizes
  altered to prevent flickering when dragging objects.
--Positioning problem when using the toggle size icon of a window with a
  pane fixed.
--Added !Dynamic example application to show use of dynamic areas.
--Added !Quit example application to demonstrate stopping an application
  quit or desktop shutdown to warn user about unsaved data.
--New version of !Linker that now uses dynamic areas. Has much smaller
  wimpslot as a result. Also tries to avoid running out of line numbers for
  very large BASIC programs. Better LIBRARY call handling.
--Upgraded !Fabricate to handle new arrangement of !RunImage.
--New version of !CodeTemps that can handle templates containing windows
  which use fonts. Generates FNwimp_getfont calls. Can now generate code to
  create icons of any button type. Fixed bug for icons without text or
  sprite.
--Expanded the index in the manual to include terms and key words.
--Added "StrongARM" text file to documents folder for help with running some
  of the utilities.
--Created a new function grouping for pointer related wimp functions.
--Added !Orientate example application to demonstrate printing out portrait
  and landscape pages.
--Added !Animate example application to demonstrate flicker free icon
  animation.


3.51 (21-Jun-98)

--Added:
            FNwimp_reinitmessages - re-initialises the messages file,
  allowing a new or altered messages file to be used.
--Altered:
            PROCwimp_poll - small tweak to improve performance of
  applications (reduces amount of cpu time used).
            FNwimp_gettextsize, FNwimp_gettextsizeh - the height returned
  should now be closer to the actual height, especially when changing font
  sizes in a string, however it is still an approximation and should always be
  an over-estimate.
            PROCwimp_plotwindowtext, PROCwimp_plotwindowtexth - when
  redrawing text in a window, the very top and bottom of the text should no
  longer be clipped off on occasions (due to new way of estimating text height
  detailed above).


EOF
