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 exsisting functions which are not
backwards compatible.
New user functions which have been added, *must* be added to exsisting
!RunImage files if using a new version of DrWimp. Copy the 'blank' ones from
the new !RunImage. 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.


EOF
