home *** CD-ROM | disk | FTP | other *** search
- DrWimp - desktop programming system.
- © Andrew Ayre 1995-97
-
- 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.
-
-
- 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.
-
- EOF
-