
HOW TO UPGRADE APPLICATIONS WHICH USE PREVIOUS VERSIONS OF
DR WIMP TO THE LATEST VERSION.



REMEMBER! It is not essential to upgrade existing applications made
with earlier Dr Wimp versions. You only need to upgrade them if you    
want to ensure that they will work with the latest Dr Wimp version.

If you have a Dr Wimp application which you are continually
developing, it probably makes sense to upgrade to the latest Dr Wimp
version just before you start a new phase of the development. In this
way you will have known functionality against which to test 'before'
and 'after' the Dr Wimp upgrade.

Check which version you are using for the application, go down to the
relevant point in this file, then make all the modifications detailed
from then on up to and including the latest Dr Wimp version. i.e. if
you are upgrading from Version 3.59 to 3.62, you MUST go through the
upgrade process for 3.60, 3.61 and 3.62 in turn. Running your
application without making every single modification all the way to
the end will probably result in a failure. 

Notes:
    
ALWAYS START THE UPGRADING PROCESS ON A COPY OF YOUR APPLICATION.
ALWAYS KEEP A COPY OF THE ORIGINAL VERSION IN CASE YOU NEED TO
RE-START THE PROCESS!

Don't forget that as the !RunImage and DrWimp library have increased
in size, it is possible that after upgrading your existing application
it might need a larger WimpSlot to run properly. 'No room', 'Too many
nested loops' or similar errors point to this.

Making the 'Upgrading' changes will just ensure that your application
works with the latest version. Checking the History file and the new
Manual could reveal new features which have been added which could
replace a lot of your code or improve various areas.







REM --------------------------------------------------------------
REM --------------------------------------------------------------
REM --------------------------------------------------------------
5.00 (29-Nov-2008)

In !RunImage:
         
         All occurrences of:
      
          PROCwimp_print(A,B,C,D,E,F,G,H,J,K,L)
          
            to become:
            
            PROCwimp_print(A,B,C,D,E,1,F,G,H,J,K,L)
            
            to maintain current functionality.


Then substitute new DrWimp library.


REM --------------------------------------------------------------
4.91 (08-Jun-2008)

Simply substitute new DrWimp library.


REM --------------------------------------------------------------
4.90 (05-Apr-2008)

In !RunImage:
         
         All occurrences of:
      
          PROCwimp_print(A,B,C,D,E,F,G)
          
            to become:
            
            PROCwimp_print(A,B,C,D,E,F,G,1,1,0,0)
            
            to maintain current functionality.
         
         
         FNwimp_getjpegsize(A,B)
         
            to become:
            
            FNwimp_getjpegsize(A,B,1)
         
            to maintain current functionality.
         
         
         FNwimp_getjpegsizefile(A,B,C)
         
            to become:
            
            FNwimp_getjpegsizefile(A,B,1,C)
         
            to maintain current functionality.
            
            
         PROCwimp_error(A,B,C,D)
         
            to become:
            
            PROCwimp_error(A,B,C,"",0,D,"")
            
            to maintain current functionality.
            
            But, assuming your application uses the main error trap
	    as supplied in Dr Wimp's skeleton !RunImage (Line 70), it
	    is suggested - but is not essential - that you replace the
	    whole line with:
            
            ON ERROR PROCwimp_error(appname$,REPORT$+" at line "+STR$(ERL),
            1,"",0,0,"Quit "+appname$):PROCuser_error:PROCwimp_closedown:END
            
            
         FNwimp_errorchoice(A,B,C)
         
            to become:
            
            FNwimp_errorchoice(A,B,C,2,"",0,1,1,"")
            
            to maintain current functionality, BUT NOTE that the
            return is now 1 or 2 instead of the previous TRUE or FALSE,
            respectively.
            
                       
Then substitute new DrWimp library.


REM --------------------------------------------------------------
4.80 (15-Dec-2007)
         
Substitute new DrWimp library.


REM --------------------------------------------------------------
4.70 (01-Mar-2007)

In !RunImage:

    Change the line:
        
        DEF FNuser_menu(window%,icon%)
    
        to become:
    
        DEF FNuser_menu(window%,icon%,screenx%,screeny%)
        
        
    Change the line:
    
        DEF PROCuser_menuopen(menu%,icon%)
    
        to become:
    
        DEF PROCuser_menuopen(menu%,window%,icon%)
        
    
    Change the line:
    
        DEF PROCuser_overmenuarrow(RETURN nextsubmenu%,parentmenuitem%,x%,y%)
    
        to become:
    
        DEF PROCuser_overmenuarrow(rootmenu%,rootmenuitem%,RETURN nextsubmenu%,nextsubmenunumber%,parentmenuitem%,x%,y%)
        
            
                                      -----------
         
Substitute new DrWimp library.

                                      -----------


REM --------------------------------------------------------------
4.60 (01-Oct-2006)

In !RunImage:

All occurrences of:
      
          PROCwimp_createblock(X,X)
          
            to become:
            
            PROCwimp_createstringblock(X,X,0)
            
            i.e. change name & add extra parameter with value 0 to
            maintain current functionality.
            
          PROCwimp_putinblock(X,X,X)

            to become:
            
            PROCwimp_putinstringblock(X,X,X,0)
            
            i.e. change name & add extra parameter with value 0 to
            maintain current functionality.
            
          FNwimp_getfromblock(X,X)

            to become:
            
            FNwimp_getfromstringblock(X,X,0)
            
            i.e. change name & add extra parameter with value 0 to
            maintain current functionality.
            
            
                                      -----------
         
Substitute new DrWimp library.

                                      -----------

            
            
REM --------------------------------------------------------------
4.50 (01-Jun-2006)

In !RunImage:

All occurrences of:
      
          PROCwimp_setforegroundcolour(X,X,X)
        
            to become:
            
            PROCwimp_setcolour(X,X,X,0)
            
            
          PROCwimp_setbackgroundcolour(X,X,X)
        
            to become:
            
            PROCwimp_setcolour(X,X,X,1)
            

Note description of 'PROCwimp_iconhide' in previous Manual, !Fnc'n'Prc
and FuncProc had the meaning of 'state%=0' and 'state%=1' reversed.


                                      -----------
         
Substitute new DrWimp library.

                                      -----------
         
If using Elixir_07, substitute new version of this Elixir.

           
                                      -----------
         
Note completely revised Manual.

                    

REM --------------------------------------------------------------
4.40 (01-Dec-2005)

In !RunImage:

      Change the application's initialisation line:
      
        task%=FNwimp_initialise(X,X,Y,X)
        
        so that the value of Y is at least 360.
        
        (This change is not necessary if your application does not use
        Dynamic Areas or Drawfiles. However, it needs to be at least
        350 for plotting text in 'desktop font' or if the Colour
        Picker is to be used.)


      All occurrences of:
      
          FNwimp_createdynamic(X,X,Y,X,X)
        
            to become:
          
            FNwimp_createdynamic(X,X,X,X)
            i.e. delete third parameter in original.



          FNwimp_messlook0(X,X)
          
            to become:
          
            FNwimp_messlookup(X,X,"","")
          
          FNwimp_messlook1(X,X,X)
          
            to become:
          
            FNwimp_messlookup(X,X,X,"")
          
          FNwimp_messlookup(X,X,X,X)
          
            to become:
          
            FNwimp_messlookup(X,X,X,X)
            
            
            
          FNwimp_measurefile(X)

            to become:
          
            FNwimp_measurefile(X,0)
            i.e. add extra parameter at end - setting it to 0 to
	    preserve current functionality.
            
            
            
          FNwimp_loadfile(X,X)
          
            to become:
            
            FNwimp_loadfile(X,X.0)
            i.e. add extra parameter at end - setting it to 0 to
	    preserve current functionality.

            
          FNwimp_loadsprites(X,X)
          
            to become:
            
            FNwimp_loadsprites(X,X,0)
            i.e. add extra parameter at end - setting it to 0 to
	    preserve current functionality.
          
          FNwimp_loaddfile(X,X)
          
            to become:
            
            FNwimp_loaddfile(X,X,0)
            i.e. add extra parameter at end - setting it to 0 to
	    preserve current functionality.

          FNwimp_loadjpegfile(X,X)
          
            to become:
            
            FNwimp_loadjpegfile(X,X,0)
            i.e. add extra parameter at end - setting it to 0 to
	    preserve current functionality.

          FNwimp_getjpegsizefile(X,X)
          
            to become:
            
            FNwimp_getjpegsizefile(X,X,0)
            i.e. add extra parameter at end - setting it to 0 to
	    preserve current functionality.
            
            
          PROCwimp_sendfiletoprinter(X)
          
            to become:
            
            PROCwimp_sendfiletoprinter(X,0)
            i.e. add extra parameter at end - setting it to 0 to
	    preserve current functionality.
            
            
          PROCwimp_renderwindowjpegfile(X,X,X,X,X,X,X,X,X,X)
          
            to become:
            
            PROCwimp_renderwindowjpegfile(X,X,X,X,X,X,X,X,X,X,0)
            i.e. add extra parameter at end - setting it to 0 to
	    preserve current functionality.
            
          
          PROCwimp_renderjpegfile(X,X,X,X,X,X,X,X,X)
          
            to become:
            
            PROCwimp_renderjpegfile(X,X,X,X,X,X,X,X,X,0)
            i.e. add extra parameter at end - setting it to 0 to
	    preserve current functionality.
            
         
                                      -----------
         
Substitute new DrWimp library.

                                      -----------
         
If using Elixir_06, substitute new version of this Elixir.


REM --------------------------------------------------------------
4.30 (01-Jul-2005)

In !RunImage:

      All occurrences of:
      
          FNwimp_testobjectpresent(X)
          
          to become:
          
          FNwimp_testobjectpresent(X,0)
          
          i.e. add extra parameter at end - setting it to 0 to
	  preserve current functionality.
      
      
      
          PROCwimp_plotwindowtext(X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X)
      
          to become:
          
          PROCwimp_plotwindowtext(X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,0)
          
          i.e. add extra parameter at end - setting it to 0 to
          preserve current functionality (but could alternatively be
          set to 1, see note below).
          
          
          PROCwimp_plotwindowtexth(X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X)
      
          to become:
          
          PROCwimp_plotwindowtexth(X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,0)
          
          i.e. add extra parameter at end - setting it to 0 to
          preserve current functionality (but could alternatively be
          set to 1, see note below).
          
      
          PROCwimp_plottext(X,X,X,X,X,X,X,X,X,X,X,X,X,X,X)
      
          to become:
          
          PROCwimp_plottext(X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,0)
          
          i.e. add extra parameter at end - setting it to 0 to
          preserve current functionality (but could alternatively be
          set to 1, see note below).
          
          
          PROCwimp_plottexth(X,X,X,X,X,X,X,X,X,X,X,X,X)
      
          to become:
          
          PROCwimp_plottexth(X,X,X,X,X,X,X,X,X,X,X,X,X,0)
          
          i.e. add extra parameter at end - setting it to 0 to
          preserve current functionality (but could alternatively be
          set to 1, see note below).
          
          [Note: In the above four cases, if the text is being plotted
          onto a coloured background or superimposed on a graphic,
          then setting the new parameter to 1 may be more appropriate
          - see Dr Wimp manual Section 2.24.]
          
          
          
          FNwimp_copyfile(X,X,X)
          
          to be renamed and extended as:
          
          FNwimp_copyobject(X,X,X,0,0,0,0)
          
          i.e. rename and add four extra parameters at end - setting
          each of them to 0 to preserve current functionality.
          
          
          
          FNwimp_deletefile(X,X)
          
          to be renamed and extended as:
          
          FNwimp_deleteobject(X,X,0)
          
          i.e. rename and add an extra parameter at end - setting it
          to 0 to preserve current functionality.
          
          
                                      -----------
         
Substitute new DrWimp library.

                                      -----------
         
If using Elixir_02, substitute new version of this Elixir.

          

REM --------------------------------------------------------------
4.20 (01-Feb-2005)

In !RunImage:

      Change DEF PROCuser_draggingicon() to become:
      
          DEF PROCuser_draggingicon(startwindow%,dragicon%,dragbutton%,
               startmousex%,startmousey%,mousex%,mousey%,overwindow%,
               overicon%,dragboxminx%,dragboxminy%,dragboxmaxx%,dragboxmaxy%)
               
          i.e. two additional parameters 'startmousex%' & 'startmousey%'
          
          
      Functionality changes to existing wimp-functions:
          
          PROCwimp_iconbit(): Note that this function will now do
          nothing if the parameter 'bit%' is set to 23 (The 'icon has
          been deleted' bit.) The new wimp-function 'wimp_iconhide()
          has been provided instead.
          ('Toggling' has now also been added to PROCwimp_iconbit()
          but that should not affect the functionality in existing
          applications.)
          
          FNwimp_getjpegsize() & FNwimp_getjpegsizefile(): Note that
          these functions now return the JPEG size as displayed at
          90dpi - irrespective of the JPEG's actual dpi. This gives
          much better consistency when window sizing for displaying
          JPEG images (and does not affect printing).
          
          FNuser_help() & FNuser_menuhelp(): Note that you will now be
          able to return strings of up to a maximum of 235 characters
          in length, which is a few characters more than in the
          previous version.
          
          PROCwimp_resizewindowvisible(): the change should only
          affect windows with panes. Panes should now respond properly
          to visible window resizing.

      
           
                                      -----------
         
Substitute new DrWimp library.


REM --------------------------------------------------------------
4.10 (01-Sep-2004)

Add to !RunImage:

	  DEF FNuser_dragicon(window%,icon%,button%)
	  =0
	  
	  and if your existing application already uses *icon
          dragging* then this new user-function will need to be used
          to identify which draggable icon(s) are actually to be
          dragged - see Manual Section 2.31
	  

In !RunImage:

      All occurrences of:
      
      	  PROCwimp_menuwrite(X,X,X,X)
      	  
      	  replace by:
      	  
      	  PROCwimp_menuwrite(X,X,X,X,"")
      	  
      	  i.e. to preserve current functionality, add a null string as
          a new 5th parameter.
          
          --------
          
          If your existing application uses *icon dragging* - note
          that the value of 'dragicon%' in all three user-functions:
          
          	    PROCuser_seticondragbounds()
          	    PROCuser_draggingicon()
          	    PROCuser_endicondrag()
          	    
          will now be 4 for <select> or 1 for <adjust> (instead of the
          previous 64 or 16, respectively).
          
          --------
          
          Note that the wimp-functions:
          
          	    FNwimp_testobjectpresent()
          	    FNwimp_countdirectoryobjects()
          	    FNwimp_getdirectoryobjectname()
          	    FNwimp_getdirectoryobjecttype()
          	    
          no longer give an error message if, for instance, the object
          cannot be found.
          
                           -----------
         
Substitute new DrWimp library.

         

REM --------------------------------------------------------------
4.00 (01-May-2004)

In !RunImage:

      All occurrences of:
      
          FNwimp_getfont(X,S)
          
          replace by:
          
          FNwimp_getfont(X,S,S)
          
          i.e. to preserve existing functionality, add a new 3rd
          parameter with the same value as the existing 2nd parameter.
          
          ----------------------------
      
          FNwimp_gettextsize(X,X,S,X)
          
          replace by:
          
          FNwimp_gettextsize(X,X,S,S,X,1,1)
          
          i.e. to preserve existing functionality, add a new 4th
          parameter making it the same value as the existing 3rd
          parameter - and then add new 6th & 7th parameters both with
          the value 1.
          
          ----------------------------
          
          FNwimp_gettextsizeh(X,X,X)
          
          replace by:
          
          FNwimp_gettextsize(X,X,X,1,1)
          
          i.e. to preserve existing functionality, add new 4th & 5th
          parameters both with the value 1.
          
          ----------------------------
          
          PROCwimp_plotwindowtext(X,X,X,S,X,X,X,X,X,X,X,X,X,X,X,X)
          
          replace by:
          
          PROCwimp_plotwindowtext(X,X,X,S,S,0,X,X,X,X,X,X,X,X,X,X,X,X,1,1)
          
          i.e. to preserve existing functionality, add a new 5th
          parameter making it the same value as the existing 4th
          parameter. Then add a new 6th parameter with the value 0 -
          and finally add new 19th & 20th parameters both with the
          value 1.
          
          ----------------------------
          
          PROCwimp_plotwindowtexth(X,X,X,X,X,X,X,X,X,X,X,X,X,X,X)
          
          replace by:
          
          PROCwimp_plotwindowtexth(X,X,X,0,X,X,X,X,X,X,X,X,X,X,X,X,1,1)
          
          i.e. to preserve existing functionality, add a new 4th
          parameter with the value 0 - and then add new 17th & 18th
          parameters both with the value 1.
          
          ----------------------------
          
          PROCwimp_plottext(X,X,S,X,X,X,X,X,X,X,X)
          
          replace by:
          
          PROCwimp_plottext(X,X,S,S,0,X,X,X,X,X,X,X,X,1,1)
          
          i.e. to preserve existing functionality, add a new 4th
          parameter making it the same value as the existing 3rd
          parameter. Then add a new 5th parameter with the value 0 -
          and finally add new 14th & 15th parameters both with the
          value 1.
          
          ----------------------------
          
          PROCwimp_plottexth(X,X,X,X,X,X,X,X,X,X)
          
          replace by:
          
          PROCwimp_plottexth(X,X,0,X,X,X,X,X,X,X,X,1,1)
          
          i.e. to preserve existing functionality, add a new 3rd
          parameter with the value 0 - and then add new 12th & 13th
          parameters both with the value 1.
          
          ----------------------------
           
          FNwimp_createwindow(X,X,X,X,X,X,X,X,X,X,X,X,X,X,X)
          
          replace by:
          
          FNwimp_createwindow(X,X,X,X,X,X,X,X,X,X,X,X,X,0,X,X)
          
          i.e. to preserve existing functionality, add a new 14th
          parameter with the value 0.
          
          ----------------------------
      
      
      Note possible functionality change in use of:
      
        PROCuser_iconise()
        
        The default text arrangements have been changed. By default,
        the text beneath the iconised window will now normally be the
        first 10 characters of the title of the window being iconised.
        But if the window has no title or its title includes the word
        "untitled" then the first 10 characters of the application
        name will be used (i.e. the name entered in the 1st parameter
        of FNwimp_initialise).
        The user-function can still be used, as before, to change the
        default text and/or sprite used.
        
        
        PROCwimp_deskplottext()
        PROCwimp_deskplotwindowtext()
        
        Previously, the order of the rgb colour quantities - for both
        foreground and background colours - was not translated
        properly inside the wimp-function. This could produce a
        colour result different from that intended, although not
        necessarily.
        The problem has now been corrected and, on upgrading, an
        existing application might therefore display a different text
        colour than before.
        
                           -----------
         
Substitute new DrWimp library.


REM --------------------------------------------------------------
3.90 (01-Jan-2004)

Add three new user-functions to the !RunImage listing:

      DEF PROCuser_seticondragbounds(startwindow%,dragicon%,dragbutton%,
        startmousex%,startmousey%,RETURN boundsminx%,RETURN boundsminy%,
                                  RETURN boundsmaxx%,RETURN boundsmaxy%)
      ENDPROC
    
      DEF PROCuser_draggingicon(startwindow%,dragicon%,dragbutton%,
        mousex%,mousey%,overwindow%,overicon%,dragboxminx%,dragboxminy%,
                                               dragboxmaxx%,dragboxmaxy%)
      ENDPROC

      DEF PROCuser_endicondrag(startwindow%,dragicon%,dragbutton%,
          startmousex%,startmousey%,dragboxminx%,dragboxminy%,
          dragboxmaxx%,dragboxmaxy%,endwindow%,endicon%,endmousex%,endmousey%)
      ENDPROC
 

In !RunImage:

      All occurrences of:
      
          PROCwimp_putcaret(X,X)
          
          to be replaced with:
          
          PROCwimp_putcaret(X,X,-1)
          
          i.e. add a new 3rd parameter, setting it to -1 to preserve
          current functionality.
          
                   -----------
         
Substitute new DrWimp library.


REM --------------------------------------------------------------
3.81 (10-Aug-2003)

In !RunImage:

      All occurrences of:
      
          PROCwimp_renderpoolsprite(spritename$,X,X,X,X,X,X,X,X)
          and
          PROCwimp_renderwindowpoolsprite(X,spritename$,X,X,X,X,X,X,X,X)
          
          to be replaced, respectively, with:
          
          PROCwimp_rendersprite(spritename$,0,X,X,X,X,X,X,X,X)
          and
          PROCwimp_renderwindowsprite(X,spritename$,0,X,X,X,X,X,X,X,X)
          
          (i.e. essentially using the same parameters but setting the
          extra parameter 'spritearea%' to 0)
          
          There is also a slight change in coding, which is
          hopefully invisible.
          
          -----------
          
          FNwimp_fontcolour(X,X,X)
          
          to become:
          
          FNwimp_fontcolour(X,X,X,255,255,255)
          
          assuming that the text is being displayed on a white
          background. (If the background is the standard Wimp light
          grey window then use 221 instead of 255.)
          
          -----------
          
       Note that internal coding changeshave also been made to:
          
          PROCwimp_resizewindowvisible() - to preserve scroll values.
          
          and
          
          The handling of Panes - to reduce flickering with early ROs.
          
          These two changesare thought to be invisible for most users,
          but if you have an existing application using either of
          these two facilities it would be appreciated if you could
          specifically check and let me know.
          
         -----------
         
Substitute new DrWimp library.
  
         -----------
         
If your existing application was using 'Elixir_01' substitute the new
version (1.01) of DEF PROCwimp_calcredrawlines().
(DEF PROCuser_redrawtextline() need not be changed.)
         
         -----------


REM --------------------------------------------------------------
3.80 (31-Mar-2003)

In !RunImage, change global error trap line:
         
         ON ERROR PROCwimp_error(appname$,REPORT$+" at line "+STR$(ERL),1,1):PROCwimp_closedown:END
         
         to become:
         
         ON ERROR PROCwimp_error(appname$,REPORT$+" at line "+STR$(ERL),1,1):PROCuser_error:PROCwimp_closedown:END        
         
         (i.e. reverse change made in Version 3.64! Sorry about that.)
         
         -----------
         
      All occurrences of:
         
         PROCwimp_opencolourpickerrgb(X , X , X , X , X , X)
         
             Change to become:
             
         PROCwimp_opencolourpickerrgb(X , X , X , X , 1 , X , X)
         
         i.e. add an extra parameter (at the 5th position) and make it
                                               1 to preserve functionality.
         
         -----------
         
         PROCwimp_opencolourpickermodel(X , X , X , X , X , X , X , X)
         
             Change to become:
             
         PROCwimp_opencolourpickermodel(X , X , X , X , X , X , 1 , X , X)
         
         i.e. add an extra parameter (at the 7th position) and make it
                                               1 to preserve functionality.
         
         -----------
         
         PROCwimp_opensubmenucolourpickerrgb(X , X , X , X , X)
         
             Change to become:
             
         PROCwimp_opensubmenucolourpickerrgb(X , X , X , 1 , X , X)
         
         i.e. add an extra parameter (at the 4th position) and make it
                                               1 to preserve functionality.
         
         -----------
         
         PROCwimp_opensubmenucolourpickermodel(X , X , X , X , X , X , X)
         
             Change to become:
             
         PROCwimp_opensubmenucolourpickermodel(X , X , X , X , X , 1 , X , X)
         
         i.e. add an extra parameter (at the 6th position) and make it
                                               1 to preserve functionality.
         
         -----------
         
         FNwimp_createwindow()
         
             Change the 10th parameter (previously 'workcol%' - the
                 background colour of the window work area) to become:
         
             &727131C - to give standard wimp colours.
                  (See Manual Section 2.26 for more details.)
      
         -----------                                                                   
    Substitute new DrWimp library.
         
         
         
REM --------------------------------------------------------------
3.71 (01-Feb-2003)

     No changes needed. Just substitute new DrWimp library.


REM --------------------------------------------------------------
3.70 (01-Jan-2003)

     No changes needed. Just substitute new DrWimp library.
     
     (But note introduction of Dr Wimp's Elixirs
     	    	    	    	    - See Manual Section 2.37)


REM --------------------------------------------------------------
3.64a (08-Oct-2002)

     No changes needed. Just substitute new DrWimp library.


REM --------------------------------------------------------------
3.64 (01-Sep-2002)

     (REMEMBER! It is not essential to upgrade existing applications made
     with earlier Dr Wimp versions. You only need to upgrade them if you
     want to ensure that they will work with the latest Dr Wimp version.)
     
     
     In !RunImage, change global error trap line:
         
         ON ERROR PROCwimp_error(appname$,REPORT$+" at line "+STR$(ERL),1,1):PROCuser_error:PROCwimp_closedown:END
         
         to become:
                 
         ON ERROR PROCwimp_error(appname$,REPORT$+" at line "+STR$(ERL),1,1):PROCwimp_closedown:END
         
         (i.e. delete 'PROCuser_error' which is now included in
         'PROCwimp_closedown'. )
         
         
     No other changes needed. Just substitute new DrWimp library.


REM --------------------------------------------------------------
3.63 (01-Jul-2002)

     (REMEMBER! It is not essential to upgrade existing applications made
     with earlier Dr Wimp versions. You only need to upgrade them if you
     want to ensure that they will work with the latest Dr Wimp version.)  

        In !RunImage, change:
    
            DEF PROCuser_preclosewindow(window%)
            ENDPROC
    
          to:
    
            DEF FNuser_preclosewindow(window%)
            =1
                    
        
        Also, please note that the functionality of:

            DEF PROCuser_menuselection(menu%,item%,font$)

        has change slightly - so that, when a font menu selection
        is made, 'menu%' will now hold the font menu handle rather
        than 0. It is therefore possible (but unlikely) that your
        detailed coding in this user-function might need adjustment.
        
        
        
        Substitute Version 3.63 of DrWimp library for Version 3.62.
                                                                  
REM --------------------------------------------------------------
3.62 (01-Mar-2002)

      Add new user-function definition to !RunImage file:
          
          DEF PROCuser_error
          ENDPROC
          
      Change global error trap line (very near start of !RunImage) to become:
          
       ON ERROR PROCwimp_error(appname$,REPORT$+" at line "+STR$(ERL),1,1):PROCuser_error:PROCwimp_closedown:END
       
       i.e. add the above new user-function to this line. (Take care to make this change accurately.) 



      All occurrences of:
     
          PROCwimp_colouricontext(.... , .... , ....)
     
        Change name AND add new fourth parameter, to become:
         
          PROCwimp_colouricon(.... , .... , .... , 0)
         
         
         
          PROCwimp_recreatemessagemenu(.... , .... , ....)
     
        Add new fourth parameter, to become:
         
          PROCwimp_recreatemessagemenu(.... , .... , ...., "")
            

          
          PROCwimp_menuitemcolour(.... , .... , ....)
     
        Add new fourth parameter, to become:
         
          PROCwimp_menuitemcolour(.... , .... , .... , 0)  
            
            



REM --------------------------------------------------------------
3.61 (01-Nov-2001)

      Use of DEF FNuser_quit() and DEF FNwimp_quit(0).
      
         The functionality of DrWimp when responding to application
         quit and wimp shutdown has been changed.
         If your existing application interrupts quit/closedown in
         order to, say, deal with unsaved data, then you may need to
         alter the coding within DEF FNuser_quit().
         See Manual Section 2.26 for details.
         Otherwise, no changes are necessary.
         
         
      All occurrences of:
                          
         FNwimp_createdynamic(size%,type%,drag%,name$)
          
          add extra parameter as new second parameter
          
          to become:
              
          FNwimp_createdynamic(size%,maxsize%,type%,drag%,name$) 
          
          (If the dynamic area being created will not have its size
          altered during the program run, it is sufficient to make
          'maxsize%' the same value as 'size%' when upgrading.
          Otherwise, see Manual Section 2.27 for details.)
          
          
      All occurrences of:
           
           FNwimp_getdirectoryobjecttype()
           
           Note that the return from this function is now a file-type
           hex string without a leading "&". Also, if the object is a
           file the return will always be a string of 3 characters
           i.e. leading zeros will now be added if necessary.- to make
           it compatible with the form used by the user-functions
           'FNuser_savefiletype()' and 'FNuser_loaddata()'.
           Therefore some minor coding changes will be needed.
       
       
      Other functionality changes with possible 'visibility':
           
           In 'FNuser_loaddata()' the parameter 'ftype$' will now
           always hold a file-type string of 3 characters
           i.e. leading zeros will now be added if necessary.
           
           Attempting to save with a file-type string of more than 3
           characters in 'FNuser_savefiletype()' will now give a
           warning and no action will result.
    
           If UNUSED% is set to TRUE, unused wimp-messages will now be
           passed for Wimp Poll Reason Code 19 as well as the previous
           Reason Codes 17 and 18.

  


REM --------------------------------------------------------------
3.60 (01-August-2001)

     (REMEMBER! It is not essential to upgrade existing applications made
     with earlier Dr Wimp versions. You only need to upgrade them if you
     want to ensure that they will work with the latest Dr Wimp version.)       

      Change in !RunImage:
 
         Add extra parameter to DEF PROCuser_menuselection(menu%,item%)
        
           to become:
             
           DEF PROCuser_menuselection(menu%,item%,font$)
                                                  

      No other changes needed - simply substitute the new version of
      the DrWimp library.
          
  
             
(Don't forget that as the !RunImage and DrWimp library have increased
in size, it is possible that after upgrading your existing application
it might need a larger WimpSlot to run properly. 'No room', 'Too many
nested loops' or similar errors point to this.)
 



REM --------------------------------------------------------------
3.59 (01-April-2001)

     (REMEMBER! It is not essential to upgrade existing applications made
     with earlier Dr Wimp versions. You only need to upgrade them if you
     want to ensure that they will work with the latest Dr Wimp version.)          

      Change in !RunImage:
 
         Change parameter names of
         
           DEF PROCuser_colourpickermodel(model%,value1%,value2%,
                                               value3%,value4%,none%)
        
           to:
             
           DEF PROCuser_colourpickermodel(model%,value1,value2,
                                               value3,value4,none%)
                                                  
              i.e. make 'value' parameters real (floating point).
          
           
         All occurrences of:
        
             FNwimp_geticonstate()
             
             to become:
                 
             FNwimp_geticonselect() - name change only.
             

        All occurrences of:
        
             FNwimp_getwindowsize()
             
             to become:
                 
             FNwimp_getwindowvisiblesize() - name change only.


         All occurrences of:
        
             FNwimp_getwindowvisibleOS()
             
             to become:
                 
             FNwimp_getwindowvisiblework() - name change only.
             
         --------------------------------------------------------------


         All occurrences of:
        
             PROCwimp_iconenable(...,...)
             
             to become:
                 
             PROCwimp_iconenable(...,...,1)    
                
    
            and all occurrences of:
        
             PROCwimp_icondisable(...,...)
             
             to become:
                 
             PROCwimp_iconenable(...,...,0)    

          i.e. combine both into 'PROCwimp_iconenable' with new
               third parameter choosing between enable/disable.
             
         --------------------------------------------------------------

         All occurrences of:
        
             PROCwimp_menuenable(...,...)
             
             to become:
                 
             PROCwimp_menuenable(...,...,1)    
                
    
            and all occurrences of:
        
             PROCwimp_menudisable(...,...)
             
             to become:
                 
             PROCwimp_menuenable(...,...,0)    

          i.e. combine both into 'PROCwimp_menuenable' with new
               third parameter choosing between enable/disable.
               
         --------------------------------------------------------------

         All occurrences of:
        
             PROCwimp_menutickon(...,...)
             
             to become:
                 
             PROCwimp_menutick(...,...,1)    
                
    
            and all occurrences of:
        
             PROCwimp_menutickoff(...,...)
             
             to become:
                 
             PROCwimp_menutick(...,...,0)
                
                  
            and all occurrences of:
        
             PROCwimp_togglemenutick(...,...)
             
             to become:
                 
             PROCwimp_menutick(...,...,2)

          i.e. combine all three into 'PROCwimp_menutick' with new
               third parameter choosing between enable/disable/toggle.
 
         --------------------------------------------------------------

         All occurrences of:
             
              FNwimp_iswindowopen()
              
              Note that the return is now TRUE/FALSE rather than the
              previous 1/0. This may require a minor coding change.
    
         All occurrences of:
             
              FNwimp_pdriverpresent
              
              Note that the return is now TRUE/FALSE rather than the
              previous 1/0. This may require a minor coding change.


         --------------------------------------------------------------
             
         If a window uses *multiple panes* then:
             
            In FNuser_pane(), change return to be the *bottom-most*
            pane, rather than the previous top-most pane - see
            Manual Section 2.6.

         --------------------------------------------------------------
            
         All occurrences of:
             
             PROCwimp_resizewindow()
             
             Note that *visible* window size will no longer change,
             unless a reduced size is necessary. Consequential use
             of 'PROCwimp_resizewindowvisible()' may therefore be needed.  

         --------------------------------------------------------------
         
         All occurrences of:
             
             FNwimp_sigfigsnum() and FNwimp_sigfigsstr()
             
             ** NEED TO BE DELETED ** Dr Wimp no longer includes these
             as they proved to give wrong results and no suitable
             replacements have yet been found.
             (If you have used these, please contact the Author.)



REM --------------------------------------------------------------
3.58 (01-January-2001)          
          
      Change in !RunImage:
          
         Add new user-function:
              
              DEF PROCuser_preclosewindow(window%)
              ENDPROC
              
         Add extra parameter to existing user-function:
              
              DEF PROCuser_wimpmessage(messagenumber%,block%)
              
            to become:
                  
              DEF PROCuser_wimpmessage(messagenumber%,block%,reasoncode%)  

        
         All occurrences of:
            
             PROCwimp_menudottedline(... , ...)
            
             to become:
            
             PROCwimp_menudottedline(... , ... , 1)    
                
          i.e. add a 1 as a new third parameter to maintain current
          functionality. (In general, third parameter will be 0 for
          'dotted line off' and 1 for 'dotted line on')
       
     
        All occurrences of:
            
             PROCwimp_menuwrite(... , ... , ...)
            
             to become:
            
             PROCwimp_menuwrite(... , ... , ... , 1)    
                
         i.e. add a 1 as a new fourth parameter to maintain current
         functionality. (In general, fourth parameter will be 0 for
         'border off' and 1 for 'border on')
       
       
        All occurrences of:
            
             PROCwimp_initmessages(.....)
            
             to become:
            
             MessageFile%=FNwimp_initmessages(.....)
            
             where 'MessageFile% is a handle name (variable) of
             your choice.
            
        
        All occurrences of:
        
             FNwimp_messlook0(...)
             FNwimp_messlook1(... , ...)
             FNwimp_messlook2(... , ... , ...)
             FNwimp_createmessagemenu(... , ... , ...)
             
             to become, respectively:
                  
            
             FNwimp_messlook0(MessageFile% , ...)
             FNwimp_messlook1(MessageFile% , ... , ...)
             FNwimp_messlook2(MessageFile% , ... , ... , ...)
             FNwimp_createmessagemenu(MessageFile% , ... , ... , ...)
                
         i.e. add 'MessageFile%' (or the handle name you used
         above, if different) as a new first parameter to maintain
         current functionality.
         (In general, you can now have multiple Messages files and
         the new first parameter will be the handle of any Messages
         file that you have already initiated.)
       
         
        DELETE all occurrences of:
            
            FNwimp_reinitmessages()
            
         (which are no longer necessary as multiple messages files
         can now be used.)



REM --------------------------------------------------------------
3.57a (08-October-2000)

          Just substitute Version 3.57a of DrWimp library for
          Version 3.57  (Bug-fix in DrWimp library only.)
          
          (If using !Fabricate, also carry out same substitution in
          Utils.!Fabricate.Resources.)
          
          

REM --------------------------------------------------------------
3.57 (01-October-2000)

     Change in !RunImage:
         
         Add extra parameter to PROCuser_wimpmessage(messagenumber%)
         
         to become:
             
             PROCuser_wimpmessage(messagenumber%,block%)
             

         All occurrences of:

           PROCwimp_getdirectorysize()

        to become:

           PROCwimp_countdirectoryobjects()
           
           (N.B. This change was announced for Version 3.56 but, in
        error, was not implemented. Sorry! It is now in Version 3.57)


        All occurrences of:

           PROCwimp_menutick()

        to become:

           PROCwimp_togglemenutick()
           
           
           
        All occurrences of:

           PROCwimp_pollidle() and PROCwimp_singlepollidle()
           
           to have extra parameter added. To maintain functionality
        this parameter should be 1 e.g.
           
           PROCwimp_pollidle(10) to become PROCwimp_pollidle(10,1)
        i.e. 10 seconds.

        
        All occurrences of:

           FNwimp_createwindow() and FNwimp_createicon() will need
        their flags and button type parameter values changed - and an extra
        parameter 'titleflags%' added in the case of FNwimp_createwindow().
        A converter utlity !FlgConv is provided in the Utilities folder for
        this purpose. Also see Manual Section 2.25

        
        All occurrences of:

           PROCwimp_menupopup() note that some very minor changes in
        menu position may occur which may require minor compensatory coding
        adjustment.
        

REM --------------------------------------------------------------
3.56 (01-August-2000)

     Change in !RunImage:

        All occurrences of:

           PROCwimp_getdirectorysize()

        to become:

           PROCwimp_countdirectoryobjects()
           

        All occurrences of
          
           PROCwimp_renderwindow(whan%,dfile%,bx%,by%,minx%,miny%,maxx%,maxy%)
         & PROCwimp_render(dfile%,bx%,by%,xl%,yl%,xh%,yh%)
           
        to have three additional parameters added, to conform with,
        respectively:

          PROCwimp_renderwindow(whan%,dfile%,bx%,by%,minx%,miny%,maxx%,maxy%,
            xscalereal,yscalereal,origin%)
         & PROCwimp_render(dfile%,bx%,by%,xl%,yl%,xh%,yh%,xscalereal,                       yscalereal,origin%)
           
           N.B. To maintain the functionality of the existing application,                  these extra three parameters should all be set to 1.
           
           e.g. PROCwimp_renderwindow(whan%,dfile%,bx%,by%,minx%,miny%,                           maxx%,maxy%)
           
           would become:
               
               PROCwimp_renderwindow(whan%,dfile%,bx%,by%,minx%,miny%,                            maxx%,maxy%,1,1,1)
               
               


REM --------------------------------------------------------------
3.55 (02-April-2000)

  Add the following two new user-functions to !RunImage:
       
       DEF PROCuser_wimpmessage(messagenumber%)
       ENDPROC
       
       DEF PROCuser_iconise(window%,RETURN text$,RETURN sprite$)
       ENDPROC 
       
       (Note: There must be a space after the RETURN!!)
       
  Change all occurrences (normally only one) of 'FNwimp_initialise' in
!RunImage from the old format:
      
      FNwimp_initialise(name$,wimpmem%,iconmem%,ver$,desktopsave%)
      
      to the new format:
      
      FNwimp_initialise(name$,wimpmem%,ver$,desktopsave%)
   
      This means deleting the old third parameter 'iconmem%'.

      Thus, an existing line:
    
        task%=FNwimp_initialise(appname$,7000,7000,300,0)
    
      would be changed to:
        
        task%=FNwimp_initialise(appname$,7000,300,0)  


  If your application loads file data by double-clicking - as opposed to
dragging - then:
    
      Check your coding within 'FNuser_loaddata' to ensure that you
      are using the correct return values of 'window%', 'icon%',
      'workx%' and 'worky%', as shown in Section 3 of the Manual. In
      previous versions there was a difference between the values
      returned when double-clicking a file on start-up and
      double-clicking a file after start-up. Both cases now return the
      values of 0,-1,-1,-1 for 'window%', 'icon%', 'workx%' and
      'worky%' respectively.
      (Dragging cases need no change).
      

(Don't forget that as the !RunImage and DrWimp library have increased
in size, it is possible that after upgrading your existing application
it might need a larger WimpSlot to run properly. 'No room' or similar
errors point to this.)


(Versions 3.55a, 3.55b and 3.55c should all be treated as Version 3.55 above)



REM --------------------------------------------------------------
3.54 (01-Jan-2000)

  Add the following two new user-functions to !RunImage:
      
      DEF PROCuser_colourpickerrgb(red%,green%,blue%,none%)
      ENDPROC
      
      DEF PROCuser_colourpickermodel(model%,value1%,value2%,value3%,value4%,none%)
      ENDPROC


  Change in !RunImage:
      
      Add new fifth parameter to 'FNwimp_initialise' - either 0 or 1.
      To become, for example:
          task%=FNwimp_initialise(appname$,7000,7000,300,0)
      (0 means no response will be made to 'desktop save'; 1 means
       response will be made.)
      
      Change final parameter in 'DEF FNuser_keypress' to an integer
      variable i.e. 'key' to 'key%' to become:
          
          DEF FNuser_keypress(window%,icon%,key%)
      
      Add new third and fourth parameters to 'DEF PROCuser_overmenuarrow'
      and add RETURN to first parameter, to become:
          
          DEF PROCuser_overmenuarrow(RETURN nextsubmenu%,parentmenuitem%,x%,y%)        
            (Note: There must be a space after the RETURN!!)   
          
  Change in !RunImage:
      
      All occurrences of:
          
          NULL
          
        to:
              
          NULL%
      
      All occurrences of:
          
          'FNwimp_get screenres' now need to have a single parameter
           added, for example:
              FNwimp_getscreenres(direction%)
              
           where direction% is 0 for screen x-direction or 1 for
           screen y-direction. Note that the function now returns the
           number of screen pixels in the specified direction (rather
           than the previous somewhat arbitrary 'low-res'/'high-res')
           and your coding will also need to be adjusted for this change.
           
      All occurrences of:
          
          'PROCwimp_setcolour' now need to be changed to:
              
              PROCwimp_setforegroundcolour(...)     
      
          (PROCwimp_setbackgroundcolour(...) is now also available.)
      
      All occurrences of:
          
          'FNwimp_iconbar(...)' now need to have extra parameter added
          in the 3rd position. For example from:
              
              FNwimp_iconbar(sprite$,text$,position%)
              
            to:
                  
              FNwimp_iconbar(sprite$,text$,maxlength%,position%)
              
          If 'text$' is a null string then it does not matter what value
          is assigned to 'maxlength%' (but one must always be present).
          But if 'text$' is not a null string then room will be set aside
          for 'maxlength%' characters or the length of 'text$', whichever
          is the larger. (1 will be added automatically for the terminator.)
          
          
      All occurrences of:
          
          FNwimp_sysvariable(.)
          
        to:
              
          FNwimp_getsysvariable(.)  
                       
       (Note that FNwimp_testsysvariable(.) is now also available to
       check whether a system variable exists.)



REM --------------------------------------------------------------
3.53a (14-Sep-99)

      No changes required, simply substitute new version of DrWimp
library.      
         

REM --------------------------------------------------------------
3.53 (01-Sep-99)

  Add the following new user-function to !RunImage:
       
      DEF PROCuser_overmenuarrow(nextsubmenu%,parentmenuitem%)
      ENDPROC
  
  Change in !RunImage:
      
      DEF PROCuser_slidervalue(window%,icon%,pcent%)
      ... 
      ENDPROC
    
  to: 
    
      DEF PROCuser_slidervalue(window%,icon%,pcent%,dir%)
      ...
      ENDPROC


REM --------------------------------------------------------------
3.52 (01-Sep-98)

  No changes required.


REM --------------------------------------------------------------
3.51 (21-Jun-98)

  No changes required.


REM --------------------------------------------------------------
3.50 (23-Jan-98)

  Add the following user functions to !RunImage:

    DEF FNuser_quit(type%)
    =1

    DEF PROCuser_initialise
    ENDPROC

  Now move all code between FNwimp_initialise and PROCwimp_poll (or other
polling method) into PROCuser_initialise.

  Move all the code between PROCwimp_poll (or other polling method) and END
into FNuser_quit.

  Add the following lines to the start of FNuser_savedata, after any uses
of the LOCAL command already existing:

    LOCAL ERROR
    ON ERROR LOCAL =2

  Change any occurrences of PROCwimp_rendersprite and
PROCwimp_renderwindowsprite so that an extra two arguments are passed:

  Change occurrences of:

    PROCwimp_rendersprite(...)

  to:

    PROCwimp_rendersprite(...,1,1)

  Change occurrences of:

    PROCwimp_renderwindowsprite(...)

  to:

    PROCwimp_renderwindowsprite(...,1,1)

  Change occurrences of:

    finished%=TRUE

  to:

    PROCwimp_quit(0)

Five printing related functions (FNwimp_worktopaper, FNwimp_papertowork,
FNwimp_screentopaper and FNwimp_papertoscreen, PROCwimp_print) need to have
an extra argument added.

  Change occurrences of:

    FNwimp_worktopaper(...)

  to

    FNwimp_worktopaper(...,0)

  Change occurrences of:

    FNwimp_papertowork(...)

  to:

    FNwimp_papertowork(...,0)

  Change occurrences of:

    FNwimp_screentopaper(...)

  to:

    FNwimp_screentopaper(...,0)

  Change occurrences of:

    FNwimp_papertoscreen(...)

  to:

    FNwimp_papertoscreen(...,0)

  Change occurrences of:

    PROCwimp_print(...)

  to:

    PROCwimp_print(...,0)


REM --------------------------------------------------------------        
3.00 (31-May-97)

  Add the new user functions to !RunImage:

    DEF PROCuser_declarefonts
    ENDPROC
    :
    DEF PROCuser_print(xmin%,ymin%,xmax%,ymax%,page%)
    ENDPROC
    :
    DEF FNuser_printing(copy%,page%,totpages%,pagepos%)
    =0
    :
    DEF PROCuser_printerchange
    ENDPROC

  Change the following user function in !RunImage:

    DEF FNuser_saveicon(window%)
    =0

  to:

    DEF PROCuser_saveicon(window%,RETURN drag%,RETURN write%,RETURN ok%)
    ENDPROC

  If you have used this function to change the icon to drag then a general
example of the change you need to make is:

    DEF FNuser_saveicon(window%)
    IF window%=save% =3
    =0

  to:

    DEF PROCuser_saveicon(window%,RETURN drag%,RETURN write%,RETURN ok%)
    IF window%=save% drag%=3
    ENDPROC

  Change occurrences of the following in !RunImage:

    window%=FNwimp_loadwindow(path$,window$,1)

  to:

    window%=FNwimp_loadwindow(path$,window$,0)

  If you have used sprite areas in the application you are upgrading, then
the following changes need to be made. From this version onwards sprite
areas have handles, and in the following changes, the handle is called
"sprites%" but you may use whatever name you wish. a% is an arbitary
variable.

  Change occurrences of the following in !RunImage:

    PROCwimp_loadsprites(path$)

  to:

    size%=FNwimp_measurefile(path$)
    DIM sprites% size%
    a%=FNwimp_loadsprites(path$,sprites%)

  and occurrences of:

    PROCwimp_pointer(pointer%,1,pointer$)

  to:

    PROCwimp_pointer(pointer%,sprites%,pointer$)

  and occurrences of:

    window%=FNwimp_loadwindow(path$,window$,0)

  to:

    window%=FNwimp_loadwindow(path$,window$,sprites%)

  If you are displaying drawfiles in windows in the application that is
being updated, then the following change needs to be made.
  In previous versions of DrWimp, drawfiles were placed with the top left
corner of the drawfile at the work area coordinates specified. From this
version onwards, it is the bottom left corner that is positioned at these
coordinates. It is best to recalculate your coordinates for the positioning
of the drawfile, rather than waste time using the DrWimp functions to
calculate them for you from the width and height of the drawfile.

  If you create any menus where you attach the submenu at the same time by
using '>', like the following line, then it needs to be changed. For
example:

    menu%=FNwimp_createmenu("Main menu/Item 1>sub%/Item 2/Item 3>window%",0)

  changes to:

    menu%=FNwimp_createmenu("Main menu/Item 1/Item 2/Item 3",0)
    PROCwimp_attachsubmenu(menu%,1,sub%)
    PROCwimp_attachsubmenu(menu%,3,window%)

  This also applies to PROCwimp_putmenuitem, PROCwimp_recreatemenu,
FNwimp_createmenuarray and PROCwimp_recreatemenuarray.

  Change in !RunImage:

    DEF PROCuser_redraw(window%,minx%,miny%,maxx%,maxy%)
    ...
    ENDPROC

  to:

    DEF PROCuser_redraw(window%,minx%,miny%,maxx%,maxy%,printing%,page%)
    ...
    ENDPROC

  and:

    DEF FNuser_loaddata(path$,window%,icon%,ftype$)
    ...
    =0

  to:

    DEF FNuser_loaddata(path$,window%,icon%,ftype$,workx%,worky%)
    ...
    =0

  and:

    DEF PROCuser_mouseclick(window%,icon%,button%)
    ...
    ENDPROC

  to:

    DEF PROCuser_mouseclick(window%,icon%,button%,workx%,worky%)
    ...
    ENDPROC

  Note: as DrWimp is now around 15k bigger than the previous version,
applications which were tight on memory may now run out and fail, often with
what seems like an unrelated error. The most common is "too many nested
structures". If after upgrading an application you get errors appearing that
are definately NOT possible due to mistakes made in the upgrading, try
increasing the wimpslot of your application in the !Run file.


        
REM --------------------------------------------------------------        
2.06 (25-Nov-96)

  Change all occurrences of the following in !RunImage:

    PROCwimp_bar(window%,icon%,length%)

  to

    PROCwimp_bar(window%,icon%,length%,0)


        
REM --------------------------------------------------------------
2.04 (20-Oct-96)

  Add the new user function to !RunImage:

    DEF FNuser_menuhelp(menu%,item%)
    =""


        
REM --------------------------------------------------------------
2.03 (15-Oct-96)

  Add the new user function to !RunImage:

    DEF PROCuser_modechange
    ENDPROC



REM --------------------------------------------------------------
2.00 (02-Jul-96)

  Add the following new user functions to !RunImage:

    DEF FNuser_saveicon(window%)
    =0
    :
    DEF FNuser_sliderback(window%,icon%)
    =-1
    :
    DEF FNuser_slider(window%,icon%)
    =-1
    :
    DEF PROCuser_slidervalue(window%,icon%,pcent%)
    ENDPROC

  Change (in !RunImage):

    DEF PROCuser_savedata(path$,window%)
    ...
    ENDPROC

  to

    DEF FNuser_savedata(path$,window%)
    ...
    =1

  Remove the redundant FNuser_minmenuwidth (if you have it).

  I would recommend that you change the way your menus are created if you
want to compress your BASIC files. Here is an example:

    menu%=FNwimp_createmenu("Main menu/Item 1>sub%/Item 2/Item 3>window%",0)

  changes to

    menu%=FNwimp_createmenu("Main menu/Item 1/Item 2/Item 3",0)
    PROCwimp_attachsubmenu(menu%,1,sub%)
    PROCwimp_attachsubmenu(menu%,3,window%)



REM --------------------------------------------------------------
1.10 (24-Dec-95)

  Add the new user function to !RunImage:

    DEF PROCuser_menuopen(menu%,icon%)
    ENDPROC

  (PROCuser_minmenuwidth was also added in this version but removed in a
later version)



REM --------------------------------------------------------------        
1.03 (26-Apr-95)

  Add a fourth parameter to FNwimp_initalise which is the minimum RISC OS
version that you will allow your application to run on multiplied by 100.
Eg: make the fourth parameter 200 for RISC OS 2 and 310 for RISC OS 3.10.

        
        
REM --------------------------------------------------------------        
1.02 (19-Apr-95)

  Remove the last parameter to FNwimp_initialise.
        

REM --------------------------------------------------------------
1.01 (04-Apr-95)

  There is an extra parameter added to FNwimp_createmenu. As dynamic menus
were introduced in this version your application won't be using them so
change all occurrences of FNwimp_createmenu(<string>) to
FNwimp_createmenu(<string>,0)

  FNwimp_iconbar now returns the handle for the iconbar window (-2). So your
call should look like bar%=FNwimp_iconbar(......, and use window%=bar% in
PROCuser_mouseclick or a similar construct for detecting clicks on the
iconbar icon.         

REM --------------------------------------------------------------
REM --------------------------------------------------------------
REM --------------------------------------------------------------

EOF500
