!Widget5 development history. 12-Oct-03 1,42 Converted to be "CPU Mode Neutral" for XScale/Iyonix compatibility. 02-Sep-00 1,41 Added Field Swap process. 17-Apr-00 1,40 Fixed bug in Greyedit window which allowed bars to the left of the first bar to be dragged with strange results. 02-Nov-99 1,39 Fixed Sprite loading to handle images with masks. Added option to apply Sprite's greyscale palette on loading. 01-Jun-99 1,38 Added option to save 24bit images as 15bit Sprites. 05-Nov-98 1,37 Added option to load 15bit Sprites as colour images, converting them into 24bit on loading. 18-Aug-98 1,36 Fixed memory overwrite in save window title setting routine. Fixed memory overwrite when creating 8bit image smaller then greylevel palette. Fixed memory overwrite in CheckBanks when closing process windows by closing the source image window. Added redraw of image window background to black when image is scaled smaller than the minimum window size. Added Add New Image Header dialogue (which does nothing at the moment). 02-Jun-98 1,35 Converted Replace Pixels process to support 16bit grey images. 24-May-98 1,34 Converted Mean, Median, Maximum and Minimum Focal Anaysis processes to support 16bit grey images. 10-May-98 1,33 Converted extract processes to handle 16bit greyscale images. Fixed bug in scale process that caused the bottom row of the resultant image to be garbage. 10-May-98 1,32 Protected 16bit to 8bit grey conversions from divide by zero. Converted copy, convolution and scale processes to handle 16bit greyscale images. Restricted toolbar buttons to only allow processes that support the displayed image type. Fixed bug in multitasking process mask handling that made the first 32 pixels of the first line always outside the mask area. 06-May-98 1,31 Optimised logarithmic 16bit screen translation using approximation to log10 and integer maths. Made (slow) logarithmic 16bit to 8bit greyscale conversion process multitask. 04-May-98 1,30 Added (slow) logarithmic 16bit screen translation. Fixed greylevel display on pixel window for 16bit images. 03-May-98 1,29 Added 16bit translation method to configuration window. Added 16bit translation method selection submenu on image menu. Added separate storage of 16bit translation factors so that mask usage on image info does not invalidate max and min grey values. 01-May-98 1,28 Added optimised full range linear mapping to screen display of 16bit greyscale images and 16bit to 8bit conversion process. 27-Apr-98 1,27 Fixed 16bit greylevel interpretation to handle -ve values. Added 16bit greylevel image information dialog. 25-Apr-98 1,26 Added partial 16bit image screen handling and test 16bit to 8bit greyscale image translation process. 13-Apr-98 1,25 Added Statistical Image Info window for 24bit images. Fixed selection of mask on greyscale Statistical Image Info window, it was reading the Image Info window. 13-Apr-98 1,24 Added Image Info window for 24bit colour images. 05-Apr-98 1,23 Changed the default mask shape so that it is created relative to the image's visible area instead of the whole image. Added 'fit to window' function to image zoom. Added scale to current zoom and window size to scale process. 14-Mar-98 1,22 Added process to create 3 greyscale images with the RGB components of a 24bit colour image. 08-Mar-98 1,21 Added process to create a 24bit colour image from 3 greyscale images. Changed EPIC header comments newline from <10> to <13><10>. 10-Feb-98 1,20 Added loading of Clear image files. Corrected file type of icon in CSV load window. 10-Feb-98 1,19 Added saving of Clear image files. 28-Oct-97 1,18 Finished pixel display for 16bit images. 27-Oct-97 1,17 Corrected greying out of processes and CSV save for 16bit grey images. Added map coordinates to pixel display when rectified Epic image is viewed. Added partial pixel display for 16bit grey images. 18-Oct-97 1,16 Added new 16 bit greyscale image type. Added loading and saving of 16bit greyscale Epic and Sprite images. Fixed divide by zero error in image transfer speed calculation when time is zero. Added 'Autoplace' function to place a loaded image automatically in the next free bank if enabled. 08-Oct-97 1,15 Added 'Ignore 0' and 'Ignore 255' options to 'Image Info' and 'Image Stats' windows. 07-Oct-97 1,14 Added CSV save format for 256 grey images. 18-Sep-97 1,13 Added 'Ignore 0' and 'Ignore 255' options on graphs to stop max height calculation scaling the rest of the bars to a small size if a large number of pixels are black or white. 17-Sep-97 1,12 Put loading times and speeds for all image formats into a info window off the image menu. 02-Sep-97 1,11 Removed IO buffering for Epic files and converted Epic raster load to use a single block read - 2000% speed improvement. 11-Aug-97 1,10 Partial implementation of IO buffering used in loading of Epic files. 03-Aug-97 1,09 Added protection against divide by zero errors in the image statistics code. Added integer floating point Local Region filter to Focal Analysis process for greyscale images only. 23-Jun-97 1,08 Added new larger EPIC header display window (with more fields). 21-Jun-97 1,07 Added Maximise Window option for the image header to the configuration options. Changed ToolWin code so toolbar is dynamically created, definition held by ToolEd is not dynamic yet though! 16-Jun-97 1,06 Added use of y scale factor when altering EPIC map coords in Extract. Added altering of y scale factor when Scale is applied to an EPIC image. Corrected bug in rtrim routines used on EPIC header display, works from end to begining not the other way round. 15-Jun-97 1,05 Added delete and view options to file info window. Fixed Extract process so that destination image size is now correct (was -1 in xy). Added alteration of EPIC top left and bottom right pixel coords on Extract. Added alteration of EPIC image sampling size on Scale. 15-Jun-97 1,04 Reinstated Scale window to the Templates file! Replaced debug output with window for EPIC header view. 01-Jun-97 1,03 Added toolbar icon for extract process. Built using bugfixed Pane2 libarary, no more explosions on mode changes. 31-Mar-97 1,02 Added Extract process. 30-Mar-97 1,01 Added allocation resizing to DynaMem so that comments can be added to the Epic header for each process that is done. 10-Mar-97 1,00 Added saving of Epic images including header. Added copy of header from source to destination image on processes (not mix). 19-Jan-97 0,99 Changed Epic image sprites to that supplied by Jeremy Cook. Converted Epic header import so that info is loaded into a struct rather than a copy of what is in the file. 30-Nov-96 0,98 Fixed sizing of convolution matrix so pane does not cover window bottom border. Disabled graph toolbar button if image not 8bit grey. Disabled save, process and graph functions on menus and toolbar when image is locked as a destination. Added Widget5$Options D to force 24bit mode and also a check for the Deeper module. 26-Oct-96 0,97 Now deallocates header memory on closing image window, oops! 26-Oct-96 0,96 Converted Maximum, Minimum and Local Histogram to 24bit colour processing. Added support for running in eigen 3 modes. Simple load of Epic with header dumped to debug window. 27-Aug-96 0,95 Converted Maximum, Minimum and Local Histogram to mutitasking. 26-Aug-96 0,94 Converted Median to mutitasking. 24-Aug-96 0,93 Converted Mean to multitasking. Implemented progressbar for multitasking processes and removed window border from multitasking process panes. 24-Jun-96 0,92 Improved multitasking/threading polling subsystem so that normal null processing gets a uniform poll interval rather than every time a null event is received. Reduced height of Widget5 icon. Added thread process dispatch routine and implemented convolution as thread. Added configuration options for selection of process progress bar and real-time destination image update. Added stop button on pane and alternative pane with button and progressbar (bar not implemented yet). Added copying of mask sprite so that thread has an independant copy of the mask. Converted Convolution and Scale to multitasking. 16-Jun-96 0,91 Added multitasking/threading polling subsystem with fixed poll interval (no matter what happens). Changed Widget5 icon to new colour one. 18-Apr-96 0,90 Fixed image number text in Mix process. Added "Add Point To End" button to mask drawing toolbar. Fixed crash when closeing last image on Image Flipper. Improved mask redraw when adding and removing points, now only redraws what is needed and not whole mask. Added image lock and unlock functions. 08-Apr-96 0,89 Added mask area buttons and redraw for graphs. Renamed "Cumulative Histogram" to "Ogive Histogram" and added a reverse ogive graph (from 255 to 0 rather than 0 to 255). Added normalisation to the saving of the CSV data for the graphs with an additional scale factor. 25-Feb-96 0,88 Started on MS style toolbar editor. Fixed 24 sprites. Made Convolution, Scale and Focal Analysis processes (Mean and Median) 24bit. Save submenu now only allows sprites to be saved when 24bit. 12-Feb-96 0,87 Added 24bit image support to squashed sprites. Copy, Add and Average support 24bit images. Removed outline font changeing from modechange handler. Added check for RISC OS 3.5 or above to enable 24bit images. Added localised histogram to Focal Analysis process. 29-Jan-96 0,86 Fixed image flipper flip right button. Added support for loading, saving and displaying 24bit sprites. Added check for bpp on sprite load. Added process menu greying for processes that do not support the current image type. Added RGB buttons to processes. Changed clear and save matrix buttons on Convolution. 24-Jan-96 0,85 Made all arrays (except histogram) larger to try and prevent code overwritten crashes. Added image flipper. 14-Jan-96 0,84 Implemented mask areas on stats and image info. Fixed mapping function on replace pixels process. 11-Jan-96 0,83 Added Statistical Info window to complement Image Info and added mask area buttons to both but they are not implemented yet. 30-Dec-95 0,82 Tidied up Common2 window and added masking to Mix process. 23-Dec-95 0,81 Converted Copy, Add, Average, Convolution, Greylevel edit and Focal analysis processes to new mask icons. Greylevel edit is now combined into one window. 26-Sep-95 0,80R Release to micros.hensa.ac.uk and ftp.uni-stuttgart.de 26-Sep-95 0,80 Made greyedit submenus into lookalike subwindows with up/down arrows. 23-Sep-95 0,79 Added popup menu on mask toolbar to copy mask shape from other image banks. 31-Aug-95 0,78 Move point now works using EORed lines when dragging. 30-Aug-95 0,77 Add point now works, adds point beween the two selected points at the mouseclick pos. Added load squashed sprite code and squash workarea now flex rather than malloc. Added error reporting code to squash load/save. Config options added to allow sprite and squashed file to be loaded on doubleclick. 28-Aug-95 0,76 Added save sprite as a squashed file. Selecting delete mask point deselects and points and delete now deletes. Graph data now saved as CSV filetype. Mask redraw does not do whole window anymore. Mask greycoord only shown on move. Select only on move and add. Toggle select only on move. Added variable for second selected point on add. 21-Aug-95 0,75 Made config window scrollable and changed mask tool buttons from text to sprites. 17-Aug-95 0,74 Graph data can be saved and the window fliped between the two sizes. Bar heigh is displayed by either clicking on a bar or using the up and down buttons. 15-Aug-95 0,73 Made both zoom and image info static useing Window_Create and updated on changes. 12-Aug-95 0,72 Added toolbar. 09-Aug-95 0,71 Added signal handlers and atexit that save images and stop postmortem when the prog dies. 08-Aug-95 0,70 Now not possible to have a zoom of 0 and a divide by zero error. Zoom now keeps the centre of the image stationary. Saved sprite has name of leafname of saved filename. Added set palette menu option to imagemenu which is greyed when palette registers != 256 Updated 2d window for 12 image banks. 05-Aug-95 0,69 Max number of image banks is now 12. The greylevel ranges in the percentage cover window are now stored as defaults when the window is closed and entered when a new one is opened. Also in the same process when the window is opened none of the ranges are selected. 04-Aug-95 0,68 Uses Pane2_OpenWindow instead of sending messages for adding pane windows and Pane2_ReadVars to get the offset of the percent pane. 03-Aug-95 0,67 Convolution filters are now stored in alphabetical order in the list. Added greyscale range and distinct greys display to ImageInfo window. Added Levels Slice process that splits greylevel range into a number of parts and uses those ranges to do the false colour and percentages. 31-Jul-95 0,66 Added Percentace Cover process and slice display pane. Mean threshold is now set as default when the process window is closed. 29-Jul-95 0,65 Moved sprite and mask memory management to MMan so that dynamic areas can be used. DrawPath still explicitly uses flex. Added memory management type and process names on titles options to config window. 28-Jul-95 0,64 Zoomwindow when open static can now not be covered by its sprite window. Image windows now show name of process that created them and source image number(s), except when they are new. 24-Jul-95 0,63 Made zoomwindow open as a static window when it's menu option is selected. If created, all Dialog2 windows are deleted before being opened to stop multiple event handlers being installed. 24-Jul-95 0,62 Added Focal Analysis process with mean, median, max and min filters. Updated 2d windows. 22-Jul-95 0,61 Pixel coords now work correct. Added scale and offset to convolution filter. 20-Jul-95 0,60 Added loading and saving of mask path. Clipping of points outside is slightly wrong. No error handling for if memory runs out when loading the path is in place. Added pixel display window which shows the mouse coord in pixels and the grey level and graphical representation of the colour of the pixel as the adjust button is held down. 18-Jul-95 0,59 Implemented Copy Outside option and added it to CheckBanks. Now mask supported by Median and Convolution. Uses triangle for selected point and square for other points. Points can be selected by clicking on them. The coord of the selected point is shown with its grey level. A new file Mask takes some code out of MaskWin. A 3 point second path is provided for when a point is dragged. 16-Jul-95 0,58 Check source and destination banks now updates mask option icon. Added toolbar with buttons and status display. Implemented mask on Copy, Add and Average processes. 14-Jul-95 0,57 DrawPath file for creating and managing paths added. Routines for drawing path in mask sprite and on window in correct place/scale added. 11-Jul-95 0,56 Fixed palette and free failing when closing image window with mask on. Creates simple path and fills it on the sprite. 10-Jul-95 0,55 Added "Add Mask" image window menu item which adds the mask tool pane and creates a 1 bpp mask sprite (and saves it). Problem is that palette for mask sprite is all black. 09-Jul-95 0,54 Added loading of filters into memory by dragging filter file to iconbar icon. Updated 2d windows and !Help file. Changed greylevel edit processes menu to be dislayed with the Menu button rather than as a pop-up. 09-Jul-95 0,53 Finished save convolution filter window implementation. 05-Jul-95 0,52 Fixed loading of matrix to pane window by improving Pane2. Added protection to loading of matrix for invalid files. Removed anchor point bounds checking. Fixed read to EOL so that it handled a clip correctly. Now there can be a gap before the start of the matrix block in the textfile. 04-Jul-95 0,51 Added loading of matrix by dragging file onto window but fails when hits pane window. 03-Jul-95 0,50 Fixed convolution matrix so any size will work correctly, added clear matrix button. Matrix is initialised to 0s when window opens and always set to "User Defined" when size changes. Speed is now 9% slower for 3x3 than with fixed size matrix. Noticed that anchor point has never done anything previously. 02-Jul-95 0,49 Loading of default matrix file, storing of filters in memory and building of filter menu done. Tested convolution by forcing 3x3 but I think rows and cols are swapped. 01-Jul-95 0,48 Convolution matrix is now resizable. 28-Jun-95 0,47 Made start on variable size convolution matrix. 26-Jun-95 0,46 SpriteWin now uses Pane2_ rather than Window_ for open/deletion of windows. Scale and Convolution window code moved out of ProcessWin. 31-May-95 0,45 Now can use DLL DeskLib. 12-May-95 0,44 Speeded up scale over 20 times by going integer 10-May-95 0,43 Changed to work with DeskLib 2.16 07-May-95 0,42 Added saving startup command in Desktop Boot file. 05-May-95 0,41R Release to HENSA 05-May-95 0,41 Increaced title length for common window, stopped last of flickering radios. Wrote proper !Help file. 05-May-95 0,40 Reverted to SetIcon for slider on mixwindow from 0,39 as BlockCopy does not work. 05-May-95 0,39 Stopped all flashing radios. Added gamma and thresholding. 05-May-95 0,38 Smooth and V. Smooth drawing implemented. Added 256 level map written to by processes and updated by drawing. Moved histogram equalization to greylevel edit window. 03-May-95 0,37 Changed greymap process to have maps on popup menu, across display and 2 levels of smooth drawing. Put smooth and real- time options on configure and added full version graphic to config. window, but no drawtype on greymap yet. 03-May-95 0,36 Implemented draw greymap and greymap process 03-May-95 0,35 Added small & large graph config item and implemented them + fixed small bar bug. 03-May-95 0,34 Made image display eigen independant 03-May-95 0,33 Added skeleton greyedit window 02-May-95 0,32 Fixed problem with auto closeing of mix primary and added primary greyedit window. 02-May-95 0,31 Added mix process with secondary source checkbank routine and slider. 01-May-95 0,30 Added Set Widget5$Options X to turn on full version, otherwise no Widget4&5 files. 26-Apr-95 0,29 Optimised sprite access and made it Freeware 20-Mar-95 0,28 Fixed graph so that last bar is drawn, made code even more tidy. Release for MIT Kingston University. 20-Mar-95 0,27 Made code more tidy and added coord clip so that process can go to edge (slower). 20-Mar-95 0,26 Made scale window work and implemented scaling using bilinear interpolation and resampling. 20-Mar-95 0,25 Started on Scale window, but its late and I'm tired so it doesn't do anything. 19-Mar-95 0,24 Added percentage to processes. Added Histogram Equalization. Added grey and cumulative histogram graphs. 18-Mar-95 0,23 Added 3x3 median filter process. 18-Mar-95 0,22 Added convolution process. Made source bank work. Created common basic process window. Added Add and Average processes. 18-Mar-95 0,21 Made Convolution window work + added anchor point. 18-Mar-95 0,20 Made scan dest more robust (checks if close proc is NULL) Added Convolution window. 18-Mar-95 0,19 Added save on return keypress to saveboxes. 17-Mar-95 0,18 Added scan destination banks, skeleton process + copy image process. 16-Mar-95 0,17 Added Configure window. Allow save of 512x512 W4 + load of both types. 16-Mar-95 0,16 Added save Widget4. 16-Mar-95 0,15 Added load Widget4. Save window now common (not Widget5). 16-Mar-95 0,14 Load Sprite and Widget5 finished. Added hourglass to load/save. 16-Mar-95 0,13 Added image info window and added zoom key usage 16-Mar-95 0,12 Load Widget5 finished. Added file too short message. 16-Mar-95 0,11 Load sprite now finished, does not check for 8bit though. 15-Mar-95 0,10 Optimised put and get pixel routines. ARM was no faster than C!! 15-Mar-95 0,09 No more shifting heap problems, phew! 15-Mar-95 0,08 Implemented load to temp images, but attack of the shifting heap!!!! 15-Mar-95 0,07 Put scan free images in sepparate file CheckBanks.c Added Load window. 14-Mar-95 0,06 Added file LoadSave and put routines in for all load and save, but only save sprite works. 14-Mar-95 0,05 Added saveboxes but not implemented save yet. 13-Mar-95 0,04 Added menu to image bank window and implemented zoom. 12-Mar-95 0,03 Speeded up SpriteWin_GetPixel and SpriteWin_PutPixel by over 20 times!! Fixed bug so that caret now does go into X res icon in create window. 12-Mar-95 0,02 Displays any size image from one of 6 banks and has create image window. 11-Mar-95 0,01 Displays 256x256 image in 256 greys with pixel translation table.