Beta Toolbox Module Developer Distribution
------------------------------------------

This distribution comprises:

 		Menu 		0.33
 		TextGadget 	0.11
 		ColourDbox 	0.17
 		ColourMenu 	0.19
 		DCS_Quit 	1.08
 		FileDbox 	1.00
 		FileInfo	0.17
 		FontDbox 	0.16
 		FontMenu 	0.21
 		IconBar 	1.18
 		PrintDbox 	0.14
 		ProgInfo 	0.15
 		SaveAs 		0.15
 		Scale 		0.13
 		ToolAction 	0.15 		
 		Toolbox 	1.43
		Window 		1.54

Incremental changes to these modules since the RISC OS 3.71 ROM freeze
comprise:
  
ColourMenu:

Added tokenisation directives to Messages files.
Made modules open "Resources:$...." not "Resources:....".

DCS:

Updated use of zap_gadget to avoid memory overwrite problem when storing the
message string.

FileDbox:

Imported to CVS from no previous source control - developed for Java
but a general Toolbox module so included here.

FileInfo:

SWI Toolbox_ShowObject calls on objects of this class did not work
correctly when the show-type was "centred" or "near-the-pointer" and the
object needed to deliver a <classname>_AboutToBeShown event.  The actual
behaviour used to be that a "default" show was performed, due to the way
that the module remembered the type of show whilst the client was processing
the event.

FontDbox:

Fixed bug which meant that it was impossible to call FontMenu_SetTick
in a FontMenu_AboutToBeShown event handler.

Ticked font was being processed with strlen and strcpy instead of
string_length and string_copy.  This is now fixed.

FontMenu:

Fixed bug which meant that it was impossible to call FontMenu_SetTick
in a FontMenu_AboutToBeShown event handler.

Ticked font was being processed with strlen and strcpy instead of
string_length and string_copy.  This is now fixed.

IconBar:

Modified to support tall icon bar icons

Added ShowCentred and ShowAtPointer

text+sprite object now correct width. Incremented version number for AW
release

Menu:

adds show-centre support for menu items

Bug fix: ShowAtPointer for objects shown from Menu objects now implemented

Zero-length menu entries caused the Wimp to display oflaoflaofla etc. on
RISC OS 3.7 due to a bad NULL pointer usage in c.auxiliary.
This is now fixed so that an empty menu item is displayed.

PrintDbox:

Added show centre and show at pointer support. incremented version number for
AW release

Memory leak fixed (global_unknown is now freed when module dies)

ProgInfo:

New ProgInfo class version is 1.01.  Module version now 0.10.  (Requires
ResEd 0.42 for editing of ProgInfo objects in Res files).  New resize source
file added for automatic ProgInfo resizing, plus updated resource files to
contain Web site button templates.  
Auto-resize disabled if component IDs in underlying Window object are wrong.

Fixed memory leak which caused URI buffers to be left around when objects
were deleted at task closedown.

German version of Resource file added to CVS.  This is required for anybody
using the German version of RISC OS to prevent weird errors and aborts when
using the updated ProgInfo modules (>0.09)

SWI Toolbox_ShowObject calls on objects of this class did not work
correctly when the show-type was "centred" or "near-the-pointer" and the
object needed to deliver a <classname>_AboutToBeShown event.  The actual
behaviour used to be that a "default" show was performed, due to the way
that the module remembered the type of show whilst the client was processing
the event.


SaveAs:

Workaround for Wimp bug which causes message reference/sender not to be
updated during Wimp_SendMessage calls if message block is in a dynamic
area.

Fixes spurious broadcast DataLoad messages when using the actionbutton to
save an object in type 2 and type 3 save operations.

Scale:

Date declaration added to CMHG header files to ensure date is fixed.

Uses new zap_gadget_string macro to ensure that it increases the buffer
size for the actionbutton gadgets if necessary. Known bug fixed (setting
a large percentage value for one of the preset buttons in a Scale object does
not cause random crashes/machine freezes)

ToolAction:

Release 0.14 - Adds Set/GetPressed method. Assumes new (Ursula) CMHG.

0.15: Added CMHG version detection to automatically switch const qualifiers
on/off on appropriate veneers.

Toolbox:

Toolbox memory allocator now uses a dynamic area under RISC OS 3.5 and later.
New SWI (Toolbox_Memory) added for object modules to access the allocator.

Ensured that filename passed to MessageTrans_OpenFile is stored in RMA.
Made the Toolbox look for Res<territory> then Res, rather than Res then
Res<country>. Ditto for Messages.

Service_ToolboxTaskBorn issued once for each task instead of multiple times for
the same task when new object modules register.

SWI dispatcher fixed to dispatch Toolbox_Memory calls - this prevented
version 1.39 from providing the advertised memory services to the other
object modules.

Object ID validation is now performed by the Toolbox module itself
instead of the slower OS_ValidateAddress SWI call.  This is possible for
both the normal RMA usage and dynamic area usage since the Toolbox
knows the dynamic area address range.

Event ordering problems fixed.  Needs Window 1.51's
co-operation for this to work properly.

New null pointer check added to make sure that the Toolbox module no
longer data aborts if the application's Messages file cannot be found.

Window:

Build process improvements:
  !MkRam,fd7 added to enable RAM builds of all Toolbox modules
  MakeFile tidied up and support for RAM build added
Module now uses Toolbox memory allocation instead of calling OS_Module.

Writable gadgets now generate "No more gadgets" errors rather than
"Invalid component ID" when trying to place the caret into a faded
writable icon and there are no available alternative linked writables.

WindowHasBeenHidden events are now generated consistently for
transiently shown windows. Instead of relying upon a single static
variable indicating which, if any, window is showing transiently, a
shown/hidden counter is kept and pending HasBeenHidden events are
flushed when message_MENUS_CLOSED arrives.  This solves the problems
observed with several Toolbox applications which variously did not
appear to get a HasBeenHidden event for a closed transient or got
duplicate messages (which confused applications wishing to show a
shared window object transiently, wait for it to close, and then open
it again (eg. a dbox asking the user to make a choice).

Second new version for the day - sorry - a second bug thought to lie
elsewhere turned out to be in the Window module too.  Also related to
transient Window objects, this fix stops random pointer dereferencing
when a message_MENUS_DELETED is generated by the Wimp and Window
doesn't know about the window object in its ShowingAsMenu global.

Fixed setpointer - setting the pointer back to default incorrectly set the
shape to pointer 2, rather than 1.

"Wimp dying when Window deletes transiently shown objects" bug fixed

Event ordering for transient submenu objects fixed.
Module now uses srccommit to maintain its version number

Alteration made to handling of SWI Window_PlotGadget so that errors
generated by external gadget modules are detected correctly and the
bounding box of the gadget isn't drawn in addition to the gadget.
Change does not affect gadget modules' API to Window.  Fail-safe
behaviour of drawing the bounding box if Window is not sure whether the
plot call succeeded is retained.

Radio button gadgets didn't cope with being given empty label field,
hence attempted various pieces of memory copying through null pointers
and memory allocation/deallocation of zero lengths blocks.  Its
handling of its text buffer has been altered to bring it into line with
the way all the other built-in gadgets handle their label buffers -
which works.
